From cc978953157c099395c3953bf0cc538ff5273be6 Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Sat, 13 Jun 2015 16:35:40 +0200 Subject: [PATCH 01/20] Result of running python-modernize -w pyth6 modernize automates most of the changes required to make Python 2 code compatible with Python 3. The resulting code will rely on one additional package: six Some more changes will be required for code such as this one that handes both binary data and text data without always being explicit in the original Python 2 code which is which. The file modernize_output.txt captures the diff of these changes as shown by the modernize call. The file modernize_output_strippeddown.txt is a subset of that previous file (as described in the header of itself). --- examples/reading/rtf15.py | 4 +- examples/reading/sampleWithImage.py | 4 +- examples/reading/xhtml.py | 4 +- examples/writing/latex.py | 4 +- examples/writing/pdf.py | 1 + examples/writing/plaintext.py | 4 +- examples/writing/pythonDoc.py | 4 +- examples/writing/rst.py | 4 +- examples/writing/rtf15.py | 4 +- examples/writing/xhtml.py | 4 +- modernize_output.txt | 500 ++++++++++++++++++++++++++++ modernize_output_strippeddown.txt | 93 ++++++ pyth/__init__.py | 1 + pyth/document.py | 6 +- pyth/encodings/symbol.py | 5 +- pyth/plugins/latex/writer.py | 1 + pyth/plugins/pdf/writer.py | 3 +- pyth/plugins/plaintext/writer.py | 1 + pyth/plugins/python/reader.py | 16 +- pyth/plugins/rst/writer.py | 1 + pyth/plugins/rtf15/reader.py | 4 +- pyth/plugins/rtf15/writer.py | 5 +- pyth/plugins/xhtml/css.py | 1 + pyth/plugins/xhtml/reader.py | 8 +- pyth/plugins/xhtml/writer.py | 4 +- setup.py | 1 + tests/test_readrtf15.py | 8 +- tests/test_readxhtml.py | 1 + tests/test_writelatex.py | 1 + tests/test_writepdf.py | 6 +- 30 files changed, 670 insertions(+), 33 deletions(-) create mode 100644 modernize_output.txt create mode 100644 modernize_output_strippeddown.txt mode change 100755 => 100644 setup.py diff --git a/examples/reading/rtf15.py b/examples/reading/rtf15.py index 2e392ba..b92ae22 100644 --- a/examples/reading/rtf15.py +++ b/examples/reading/rtf15.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import +from __future__ import print_function import sys import os.path @@ -14,4 +16,4 @@ doc = Rtf15Reader.read(open(filename, "rb")) -print XHTMLWriter.write(doc, pretty=True).read() +print(XHTMLWriter.write(doc, pretty=True).read()) diff --git a/examples/reading/sampleWithImage.py b/examples/reading/sampleWithImage.py index 430ea63..7564c79 100644 --- a/examples/reading/sampleWithImage.py +++ b/examples/reading/sampleWithImage.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import +from __future__ import print_function from pyth.plugins.rtf15.reader import Rtf15Reader import sys @@ -8,4 +10,4 @@ doc = Rtf15Reader.read(open(filename, "rb")) -print [x.content for x in doc.content] +print([x.content for x in doc.content]) diff --git a/examples/reading/xhtml.py b/examples/reading/xhtml.py index 413e34e..b1522f4 100644 --- a/examples/reading/xhtml.py +++ b/examples/reading/xhtml.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import +from __future__ import print_function # -*- coding: utf-8 -*- from pyth.plugins.xhtml.reader import XHTMLReader @@ -49,4 +51,4 @@ # Parse the document and then reconstruct it using the xhtml # writer. doc = XHTMLReader.read(content, css) - print XHTMLWriter.write(doc).getvalue() + print(XHTMLWriter.write(doc).getvalue()) diff --git a/examples/writing/latex.py b/examples/writing/latex.py index b1e5912..70e1a30 100644 --- a/examples/writing/latex.py +++ b/examples/writing/latex.py @@ -1,6 +1,8 @@ +from __future__ import absolute_import +from __future__ import print_function from pyth.plugins.latex.writer import LatexWriter import pythonDoc if __name__ == "__main__": doc = pythonDoc.buildDoc() - print LatexWriter.write(doc).getvalue() + print(LatexWriter.write(doc).getvalue()) diff --git a/examples/writing/pdf.py b/examples/writing/pdf.py index 5d31ed1..a0e96df 100644 --- a/examples/writing/pdf.py +++ b/examples/writing/pdf.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # -*- coding: utf-8 -*- from pyth.plugins.rtf15.reader import Rtf15Reader diff --git a/examples/writing/plaintext.py b/examples/writing/plaintext.py index 6c01129..9759cdb 100644 --- a/examples/writing/plaintext.py +++ b/examples/writing/plaintext.py @@ -1,6 +1,8 @@ +from __future__ import absolute_import +from __future__ import print_function from pyth.plugins.plaintext.writer import PlaintextWriter import pythonDoc doc = pythonDoc.buildDoc() -print PlaintextWriter.write(doc).getvalue() +print(PlaintextWriter.write(doc).getvalue()) diff --git a/examples/writing/pythonDoc.py b/examples/writing/pythonDoc.py index 3e60bd6..16f584a 100644 --- a/examples/writing/pythonDoc.py +++ b/examples/writing/pythonDoc.py @@ -1,6 +1,8 @@ +from __future__ import absolute_import # -*- coding: utf-8 -*- from pyth.plugins.python.reader import * +import six def buildDoc(): return PythonReader.read(( @@ -9,7 +11,7 @@ def buildDoc(): u", hee hee hee! ", T(url=u'http://www.google.com') [ u"This seems to work" ] ], L [ - [unicode(word) for word in ("One", "Two", "Three", "Four")] + [six.text_type(word) for word in ("One", "Two", "Three", "Four")] ], L [ u"Introduction", diff --git a/examples/writing/rst.py b/examples/writing/rst.py index 6160fb1..0142687 100644 --- a/examples/writing/rst.py +++ b/examples/writing/rst.py @@ -1,6 +1,8 @@ +from __future__ import absolute_import +from __future__ import print_function from pyth.plugins.rst.writer import RSTWriter import pythonDoc if __name__ == "__main__": doc = pythonDoc.buildDoc() - print RSTWriter.write(doc).getvalue() + print(RSTWriter.write(doc).getvalue()) diff --git a/examples/writing/rtf15.py b/examples/writing/rtf15.py index 683227e..ba6d6a6 100644 --- a/examples/writing/rtf15.py +++ b/examples/writing/rtf15.py @@ -1,6 +1,8 @@ +from __future__ import absolute_import +from __future__ import print_function from pyth.plugins.rtf15.writer import Rtf15Writer import pythonDoc doc = pythonDoc.buildDoc() -print Rtf15Writer.write(doc).getvalue() +print(Rtf15Writer.write(doc).getvalue()) diff --git a/examples/writing/xhtml.py b/examples/writing/xhtml.py index d2d7d55..db411e1 100644 --- a/examples/writing/xhtml.py +++ b/examples/writing/xhtml.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import +from __future__ import print_function from pyth.plugins.xhtml.writer import XHTMLWriter import pythonDoc @@ -17,4 +19,4 @@ if __name__ == "__main__": doc = pythonDoc.buildDoc() - print docTemplate % XHTMLWriter.write(doc, pretty=True).getvalue() + print(docTemplate % XHTMLWriter.write(doc, pretty=True).getvalue()) diff --git a/modernize_output.txt b/modernize_output.txt new file mode 100644 index 0000000..0ac266f --- /dev/null +++ b/modernize_output.txt @@ -0,0 +1,500 @@ +--- pyth6\setup.py (original) ++++ pyth6\setup.py (refactored) +@@ -1,3 +1,4 @@ ++from __future__ import absolute_import + from setuptools import setup, find_packages + + setup(name="pyth", +--- pyth6\examples\reading\rtf15.py (original) ++++ pyth6\examples\reading\rtf15.py (refactored) +@@ -1,3 +1,5 @@ ++from __future__ import absolute_import ++from __future__ import print_function + import sys + import os.path + +@@ -14,4 +16,4 @@ + + doc = Rtf15Reader.read(open(filename, "rb")) + +-print XHTMLWriter.write(doc, pretty=True).read() ++print(XHTMLWriter.write(doc, pretty=True).read()) +--- pyth6\examples\reading\sampleWithImage.py (original) ++++ pyth6\examples\reading\sampleWithImage.py (refactored) +@@ -1,3 +1,5 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.rtf15.reader import Rtf15Reader + import sys + +@@ -8,4 +10,4 @@ + + doc = Rtf15Reader.read(open(filename, "rb")) + +-print [x.content for x in doc.content] ++print([x.content for x in doc.content]) +--- pyth6\examples\reading\xhtml.py (original) ++++ pyth6\examples\reading\xhtml.py (refactored) +@@ -1,3 +1,5 @@ ++from __future__ import absolute_import ++from __future__ import print_function + # -*- coding: utf-8 -*- + + from pyth.plugins.xhtml.reader import XHTMLReader +@@ -49,4 +51,4 @@ + # Parse the document and then reconstruct it using the xhtml + # writer. + doc = XHTMLReader.read(content, css) +- print XHTMLWriter.write(doc).getvalue() ++ print(XHTMLWriter.write(doc).getvalue()) +--- pyth6\examples\writing\latex.py (original) ++++ pyth6\examples\writing\latex.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.latex.writer import LatexWriter + import pythonDoc + + if __name__ == "__main__": + doc = pythonDoc.buildDoc() +- print LatexWriter.write(doc).getvalue() ++ print(LatexWriter.write(doc).getvalue()) +--- pyth6\examples\writing\pdf.py (original) ++++ pyth6\examples\writing\pdf.py (refactored) +@@ -1,3 +1,4 @@ ++from __future__ import absolute_import + # -*- coding: utf-8 -*- + + from pyth.plugins.rtf15.reader import Rtf15Reader +--- pyth6\examples\writing\plaintext.py (original) ++++ pyth6\examples\writing\plaintext.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.plaintext.writer import PlaintextWriter + import pythonDoc + + doc = pythonDoc.buildDoc() + +-print PlaintextWriter.write(doc).getvalue() ++print(PlaintextWriter.write(doc).getvalue()) +--- pyth6\examples\writing\pythonDoc.py (original) ++++ pyth6\examples\writing\pythonDoc.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import + # -*- coding: utf-8 -*- + + from pyth.plugins.python.reader import * ++import six + + def buildDoc(): + return PythonReader.read(( +@@ -9,7 +11,7 @@ + u", hee hee hee! ", T(url=u'http://www.google.com') [ u"This seems to work" ] + ], + L [ +- [unicode(word) for word in ("One", "Two", "Three", "Four")] ++ [six.text_type(word) for word in ("One", "Two", "Three", "Four")] + ], + L [ + u"Introduction", +--- pyth6\examples\writing\rst.py (original) ++++ pyth6\examples\writing\rst.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.rst.writer import RSTWriter + import pythonDoc + + if __name__ == "__main__": + doc = pythonDoc.buildDoc() +- print RSTWriter.write(doc).getvalue() ++ print(RSTWriter.write(doc).getvalue()) +--- pyth6\examples\writing\rtf15.py (original) ++++ pyth6\examples\writing\rtf15.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.rtf15.writer import Rtf15Writer + import pythonDoc + + doc = pythonDoc.buildDoc() + +-print Rtf15Writer.write(doc).getvalue() ++print(Rtf15Writer.write(doc).getvalue()) +--- pyth6\examples\writing\xhtml.py (original) ++++ pyth6\examples\writing\xhtml.py (refactored) +@@ -1,3 +1,5 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.xhtml.writer import XHTMLWriter + import pythonDoc + +@@ -17,4 +19,4 @@ + + if __name__ == "__main__": + doc = pythonDoc.buildDoc() +- print docTemplate % XHTMLWriter.write(doc, pretty=True).getvalue() ++ print(docTemplate % XHTMLWriter.write(doc, pretty=True).getvalue()) +--- pyth6\pyth\__init__.py (original) ++++ pyth6\pyth\__init__.py (refactored) +@@ -1,6 +1,7 @@ + """ + Pyth -- Python text markup and conversion + """ ++from __future__ import absolute_import + + import os.path + +--- pyth6\pyth\document.py (original) ++++ pyth6\pyth\document.py (refactored) +@@ -1,6 +1,8 @@ + """ + Abstract document representation + """ ++from __future__ import absolute_import ++import six + + class _PythBase(object): + +@@ -8,7 +10,7 @@ + self.properties = {} + self.content = [] + +- for (k,v) in properties.iteritems(): ++ for (k,v) in six.iteritems(properties): + self[k] = v + + for item in content: +@@ -70,7 +72,7 @@ + """ + + validProperties = ('bold', 'italic', 'underline', 'url', 'sub', 'super', 'strike') +- contentType = unicode ++ contentType = six.text_type + + def __repr__(self): + return "Text('%s' %s)" % ("".join("[%s]" % r.encode("utf-8") for r in self.content), self.properties) +--- pyth6\pyth\encodings\symbol.py (original) ++++ pyth6\pyth\encodings\symbol.py (refactored) +@@ -1,8 +1,11 @@ + """ + Maps Symbol typeface to Unicode, extracted from http://en.wikipedia.org/wiki/Symbol_(typeface) + """ ++from __future__ import absolute_import + + import codecs ++import six ++from six.moves import map + + decodeTable = { + 33: 33, 34: 8704, 35: 35, 36: 8707, 37: 37, 38: 38, 39: 8717, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, +@@ -22,7 +25,7 @@ + 235: 9123, 236: 9127, 237: 9128, 238: 9129, 239: 9130, 241: 12297, 242: 8747, 243: 8992, 244: 9134, 245: 8993, 246: 9118, + 247: 9119, 248: 9120, 249: 9124, 250: 9125, 251: 9126, 252: 9131, 253: 9132, 254: 9133} + +-encodeTable = dict((v, k) for (k, v) in decodeTable.iteritems()) ++encodeTable = dict((v, k) for (k, v) in six.iteritems(decodeTable)) + + ERROR_STRING = "Ordinal not in range (255)" + +--- pyth6\pyth\plugins\latex\writer.py (original) ++++ pyth6\pyth\plugins\latex\writer.py (refactored) +@@ -4,6 +4,7 @@ + For the moment we generate the latex document from the + reStructuredText writer output. + """ ++from __future__ import absolute_import + + from cStringIO import StringIO + import docutils.core +--- pyth6\pyth\plugins\pdf\writer.py (original) ++++ pyth6\pyth\plugins\pdf\writer.py (refactored) +@@ -1,6 +1,7 @@ + """ + Render documents as Reportlab PDF stories + """ ++from __future__ import absolute_import + + from cStringIO import StringIO + import cgi # For escape() +@@ -75,7 +76,7 @@ + content = cgi.escape(u"".join(text.content)) + + tags = [] +- for prop, value in text.properties.items(): ++ for prop, value in list(text.properties.items()): + if prop == "url": + tags.append((u'' % value, u"")) + if prop in _tagNames: +--- pyth6\pyth\plugins\plaintext\writer.py (original) ++++ pyth6\pyth\plugins\plaintext\writer.py (refactored) +@@ -1,6 +1,7 @@ + """ + Render documents as plaintext. + """ ++from __future__ import absolute_import + + from pyth import document + from pyth.format import PythWriter +--- pyth6\pyth\plugins\python\reader.py (original) ++++ pyth6\pyth\plugins\python\reader.py (refactored) +@@ -1,9 +1,11 @@ + """ + Write Pyth documents straight in Python, a la Nevow's Stan. + """ ++from __future__ import absolute_import + + from pyth.format import PythReader + from pyth.document import * ++import six + + + def _convert(content): +@@ -88,27 +90,23 @@ + def __str__(self): + return "%s(%s) [ %s ]" % ( + self.__class__.__name__, +- ", ".join("%s=%s" % (k, repr(v)) for (k,v) in self.properties.iteritems()), ++ ", ".join("%s=%s" % (k, repr(v)) for (k,v) in six.iteritems(self.properties)), + ", ".join(repr(x) for x in self.content)) + + + +-class P(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class P(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = Paragraph + + +-class LE(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class LE(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = ListEntry + +-class L(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class L(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = List + + +-class T(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class T(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + __repr__ = _PythonBase.__str__ + pythType = Text + +--- pyth6\pyth\plugins\rst\writer.py (original) ++++ pyth6\pyth\plugins\rst\writer.py (refactored) +@@ -1,6 +1,7 @@ + """ + Render documents as reStructuredText. + """ ++from __future__ import absolute_import + + from pyth import document + from pyth.format import PythWriter +--- pyth6\pyth\plugins\rtf15\reader.py (original) ++++ pyth6\pyth\plugins\rtf15\reader.py (refactored) +@@ -6,11 +6,13 @@ + This module is potentially compatible with RTF versions up to 1.9.1, + but may not ignore all necessary control groups. + """ ++from __future__ import absolute_import + import string, re, itertools, struct + + from pyth import document + from pyth.format import PythReader + from pyth.encodings import symbol ++import six + + _CONTROLCHARS = set(string.ascii_letters + string.digits + "-*") + _DIGITS = set(string.digits + "-") +@@ -543,7 +545,7 @@ + def handle_control_symbol(self, symbol): + # Ignore ~, -, and _, since they are optional crap. + if symbol in '\\{}': +- self.content.append(unicode(symbol)) ++ self.content.append(six.text_type(symbol)) + + + def handle_u(self, codepoint): +--- pyth6\pyth\plugins\rtf15\writer.py (original) ++++ pyth6\pyth\plugins\rtf15\writer.py (refactored) +@@ -3,11 +3,14 @@ + + http://www.biblioscape.com/rtf15_spec.htm + """ ++from __future__ import absolute_import + + from pyth import document + from pyth.format import PythWriter + + from cStringIO import StringIO ++import six ++from six.moves import range + + + # XXX Todo -- Make these parameters +@@ -97,7 +100,7 @@ + + def _getFontTable(self): + output = [r'{\fonttbl'] +- for i, (fontFamily, fontName) in enumerate(self.fonts.iteritems()): ++ for i, (fontFamily, fontName) in enumerate(six.iteritems(self.fonts)): + output.append(r'{\f%d\f%s %s;}' % (i, fontFamily, fontName)) + if fontFamily == self.fontFamily: + self.fontNumber = i +--- pyth6\pyth\plugins\xhtml\css.py (original) ++++ pyth6\pyth\plugins\xhtml\css.py (refactored) +@@ -3,6 +3,7 @@ + Parse a css document into a python class that can be used to apply the + style to a BeautifulSoup document. + """ ++from __future__ import absolute_import + + import re + +--- pyth6\pyth\plugins\xhtml\reader.py (original) ++++ pyth6\pyth\plugins\xhtml\reader.py (refactored) +@@ -1,12 +1,14 @@ + """ + Read documents from xhtml + """ ++from __future__ import absolute_import + + import BeautifulSoup + + from pyth import document + from pyth.format import PythReader + from pyth.plugins.xhtml.css import CSS ++import six + + + class XHTMLReader(PythReader): +@@ -53,15 +55,15 @@ + # Join the block elements lines into a single long line + for tag in ['p', 'li']: + for node in soup.findAll(tag): +- text = unicode(node) ++ text = six.text_type(node) + lines = [x.strip() for x in text.splitlines()] + text = ' '.join(lines) + node.replaceWith(BeautifulSoup.BeautifulSoup(text)) +- soup = BeautifulSoup.BeautifulSoup(unicode(soup)) ++ soup = BeautifulSoup.BeautifulSoup(six.text_type(soup)) + # replace all
tag by newline character + for node in soup.findAll('br'): + node.replaceWith("\n") +- soup = BeautifulSoup.BeautifulSoup(unicode(soup)) ++ soup = BeautifulSoup.BeautifulSoup(six.text_type(soup)) + return soup + + def is_bold(self, node): +--- pyth6\pyth\plugins\xhtml\writer.py (original) ++++ pyth6\pyth\plugins\xhtml\writer.py (refactored) +@@ -1,6 +1,7 @@ + """ + Render documents as XHTML fragments + """ ++from __future__ import absolute_import + + + +@@ -8,6 +9,7 @@ + from pyth.format import PythWriter + + from cStringIO import StringIO ++import six + + + _tagNames = { +@@ -160,7 +162,7 @@ + def attrString(self): + return " ".join( + '%s="%s"' % (k, quoteAttr(v)) +- for (k, v) in self.attrs.iteritems()) ++ for (k, v) in six.iteritems(self.attrs)) + + + def __repr__(self): +--- pyth6\tests\test_readrtf15.py (original) ++++ pyth6\tests\test_readrtf15.py (refactored) +@@ -1,9 +1,12 @@ ++from __future__ import absolute_import ++from __future__ import print_function + import unittest + import os.path + import glob + + import pyth.document + from pyth.plugins.rtf15.reader import Rtf15Reader ++import six + + class TestRtfMeta(type): + def __new__(meta, name, bases, dict): +@@ -20,13 +23,12 @@ + for path in files: + name = os.path.splitext(os.path.basename(path))[0] + dict["test_%s" % name] = gen_file_test(path, name) +- print path, name ++ print(path, name) + + return type.__new__(meta, name, bases, dict) + + +-class TestRtfFile(unittest.TestCase): +- __metaclass__ = TestRtfMeta ++class TestRtfFile(six.with_metaclass(TestRtfMeta, unittest.TestCase)): + pass + + +--- pyth6\tests\test_readxhtml.py (original) ++++ pyth6\tests\test_readxhtml.py (refactored) +@@ -2,6 +2,7 @@ + """ + Unit tests of the xhtml reader. + """ ++from __future__ import absolute_import + + import unittest + +--- pyth6\tests\test_writelatex.py (original) ++++ pyth6\tests\test_writelatex.py (refactored) +@@ -1,6 +1,7 @@ + """ + unit tests of the latex writer + """ ++from __future__ import absolute_import + + import unittest + import subprocess +--- pyth6\tests\test_writepdf.py (original) ++++ pyth6\tests\test_writepdf.py (refactored) +@@ -1,6 +1,8 @@ + """ + unit tests of the pdf writer + """ ++from __future__ import absolute_import ++from __future__ import print_function + + import unittest + import subprocess +@@ -35,7 +37,7 @@ + try: + proc = subprocess.Popen(command, stdout=subprocess.PIPE) + except OSError: +- print "Make sure that pdftohtml is installed" ++ print("Make sure that pdftohtml is installed") + raise + ret = proc.communicate()[0] + return ret +@@ -87,7 +89,7 @@ + def test_rst(self): + doc = PythonReader.read(P[u"the-text"]) + pdf = PDFWriter.write(doc).getvalue() +- print pdf ++ print(pdf) + html = self.pdf_to_html(pdf) + assert "the-text" in html, html + diff --git a/modernize_output_strippeddown.txt b/modernize_output_strippeddown.txt new file mode 100644 index 0000000..7591189 --- /dev/null +++ b/modernize_output_strippeddown.txt @@ -0,0 +1,93 @@ +This is the output of + python-modernize -w pyth6 >pyth6/modernize_output.txt +minus all blocks containing only the following: +- 'from __future__ import' additions +- 'import six' additions +- print statements rewritten into print function calls +- mentions of six.iteritems +- mentions of six.text_type + +--- pyth6\pyth\encodings\symbol.py (original) ++++ pyth6\pyth\encodings\symbol.py (refactored) +@@ -1,8 +1,11 @@ + """ + Maps Symbol typeface to Unicode, extracted from http://en.wikipedia.org/wiki/Symbol_(typeface) + """ ++from __future__ import absolute_import + + import codecs ++import six ++from six.moves import map + + decodeTable = { + 33: 33, 34: 8704, 35: 35, 36: 8707, 37: 37, 38: 38, 39: 8717, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, +--- pyth6\pyth\plugins\python\reader.py (original) ++++ pyth6\pyth\plugins\python\reader.py (refactored) +@@ -88,27 +90,23 @@ + def __str__(self): + return "%s(%s) [ %s ]" % ( + self.__class__.__name__, +- ", ".join("%s=%s" % (k, repr(v)) for (k,v) in self.properties.iteritems()), ++ ", ".join("%s=%s" % (k, repr(v)) for (k,v) in six.iteritems(self.properties)), + ", ".join(repr(x) for x in self.content)) + + + +-class P(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class P(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = Paragraph + + +-class LE(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class LE(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = ListEntry + +-class L(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class L(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = List + + +-class T(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class T(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + __repr__ = _PythonBase.__str__ + pythType = Text + +--- pyth6\pyth\plugins\rtf15\writer.py (original) ++++ pyth6\pyth\plugins\rtf15\writer.py (refactored) +@@ -3,11 +3,14 @@ + + http://www.biblioscape.com/rtf15_spec.htm + """ ++from __future__ import absolute_import + + from pyth import document + from pyth.format import PythWriter + + from cStringIO import StringIO ++import six ++from six.moves import range + + + # XXX Todo -- Make these parameters +--- pyth6\tests\test_readrtf15.py (original) ++++ pyth6\tests\test_readrtf15.py (refactored) +@@ -20,13 +23,12 @@ + for path in files: + name = os.path.splitext(os.path.basename(path))[0] + dict["test_%s" % name] = gen_file_test(path, name) +- print path, name ++ print(path, name) + + return type.__new__(meta, name, bases, dict) + + +-class TestRtfFile(unittest.TestCase): +- __metaclass__ = TestRtfMeta ++class TestRtfFile(six.with_metaclass(TestRtfMeta, unittest.TestCase)): + pass + + diff --git a/pyth/__init__.py b/pyth/__init__.py index b40c3df..b153b33 100644 --- a/pyth/__init__.py +++ b/pyth/__init__.py @@ -1,6 +1,7 @@ """ Pyth -- Python text markup and conversion """ +from __future__ import absolute_import import os.path diff --git a/pyth/document.py b/pyth/document.py index 864d519..0afa7cc 100644 --- a/pyth/document.py +++ b/pyth/document.py @@ -1,6 +1,8 @@ """ Abstract document representation """ +from __future__ import absolute_import +import six class _PythBase(object): @@ -8,7 +10,7 @@ def __init__(self, properties={}, content=[]): self.properties = {} self.content = [] - for (k,v) in properties.iteritems(): + for (k,v) in six.iteritems(properties): self[k] = v for item in content: @@ -70,7 +72,7 @@ class Text(_PythBase): """ validProperties = ('bold', 'italic', 'underline', 'url', 'sub', 'super', 'strike') - contentType = unicode + contentType = six.text_type def __repr__(self): return "Text('%s' %s)" % ("".join("[%s]" % r.encode("utf-8") for r in self.content), self.properties) diff --git a/pyth/encodings/symbol.py b/pyth/encodings/symbol.py index 1289b85..5d3dfe2 100644 --- a/pyth/encodings/symbol.py +++ b/pyth/encodings/symbol.py @@ -1,8 +1,11 @@ """ Maps Symbol typeface to Unicode, extracted from http://en.wikipedia.org/wiki/Symbol_(typeface) """ +from __future__ import absolute_import import codecs +import six +from six.moves import map decodeTable = { 33: 33, 34: 8704, 35: 35, 36: 8707, 37: 37, 38: 38, 39: 8717, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, @@ -22,7 +25,7 @@ 235: 9123, 236: 9127, 237: 9128, 238: 9129, 239: 9130, 241: 12297, 242: 8747, 243: 8992, 244: 9134, 245: 8993, 246: 9118, 247: 9119, 248: 9120, 249: 9124, 250: 9125, 251: 9126, 252: 9131, 253: 9132, 254: 9133} -encodeTable = dict((v, k) for (k, v) in decodeTable.iteritems()) +encodeTable = dict((v, k) for (k, v) in six.iteritems(decodeTable)) ERROR_STRING = "Ordinal not in range (255)" diff --git a/pyth/plugins/latex/writer.py b/pyth/plugins/latex/writer.py index 113bc41..8f24854 100644 --- a/pyth/plugins/latex/writer.py +++ b/pyth/plugins/latex/writer.py @@ -4,6 +4,7 @@ For the moment we generate the latex document from the reStructuredText writer output. """ +from __future__ import absolute_import from cStringIO import StringIO import docutils.core diff --git a/pyth/plugins/pdf/writer.py b/pyth/plugins/pdf/writer.py index 6721b40..e3cee10 100644 --- a/pyth/plugins/pdf/writer.py +++ b/pyth/plugins/pdf/writer.py @@ -1,6 +1,7 @@ """ Render documents as Reportlab PDF stories """ +from __future__ import absolute_import from cStringIO import StringIO import cgi # For escape() @@ -75,7 +76,7 @@ def _text(self, text): content = cgi.escape(u"".join(text.content)) tags = [] - for prop, value in text.properties.items(): + for prop, value in list(text.properties.items()): if prop == "url": tags.append((u'' % value, u"")) if prop in _tagNames: diff --git a/pyth/plugins/plaintext/writer.py b/pyth/plugins/plaintext/writer.py index 9dd8bfd..49c48cc 100644 --- a/pyth/plugins/plaintext/writer.py +++ b/pyth/plugins/plaintext/writer.py @@ -1,6 +1,7 @@ """ Render documents as plaintext. """ +from __future__ import absolute_import from pyth import document from pyth.format import PythWriter diff --git a/pyth/plugins/python/reader.py b/pyth/plugins/python/reader.py index a8bdbcb..9b0bcfc 100644 --- a/pyth/plugins/python/reader.py +++ b/pyth/plugins/python/reader.py @@ -1,9 +1,11 @@ """ Write Pyth documents straight in Python, a la Nevow's Stan. """ +from __future__ import absolute_import from pyth.format import PythReader from pyth.document import * +import six def _convert(content): @@ -88,27 +90,23 @@ def __getitem__(self, item): def __str__(self): return "%s(%s) [ %s ]" % ( self.__class__.__name__, - ", ".join("%s=%s" % (k, repr(v)) for (k,v) in self.properties.iteritems()), + ", ".join("%s=%s" % (k, repr(v)) for (k,v) in six.iteritems(self.properties)), ", ".join(repr(x) for x in self.content)) -class P(_PythonBase): - __metaclass__ = _MetaPythonBase() +class P(six.with_metaclass(_MetaPythonBase(), _PythonBase)): pythType = Paragraph -class LE(_PythonBase): - __metaclass__ = _MetaPythonBase() +class LE(six.with_metaclass(_MetaPythonBase(), _PythonBase)): pythType = ListEntry -class L(_PythonBase): - __metaclass__ = _MetaPythonBase() +class L(six.with_metaclass(_MetaPythonBase(), _PythonBase)): pythType = List -class T(_PythonBase): - __metaclass__ = _MetaPythonBase() +class T(six.with_metaclass(_MetaPythonBase(), _PythonBase)): __repr__ = _PythonBase.__str__ pythType = Text diff --git a/pyth/plugins/rst/writer.py b/pyth/plugins/rst/writer.py index d330ac1..48042e0 100644 --- a/pyth/plugins/rst/writer.py +++ b/pyth/plugins/rst/writer.py @@ -1,6 +1,7 @@ """ Render documents as reStructuredText. """ +from __future__ import absolute_import from pyth import document from pyth.format import PythWriter diff --git a/pyth/plugins/rtf15/reader.py b/pyth/plugins/rtf15/reader.py index 7a74162..c920948 100644 --- a/pyth/plugins/rtf15/reader.py +++ b/pyth/plugins/rtf15/reader.py @@ -6,11 +6,13 @@ This module is potentially compatible with RTF versions up to 1.9.1, but may not ignore all necessary control groups. """ +from __future__ import absolute_import import string, re, itertools, struct from pyth import document from pyth.format import PythReader from pyth.encodings import symbol +import six _CONTROLCHARS = set(string.ascii_letters + string.digits + "-*") _DIGITS = set(string.digits + "-") @@ -543,7 +545,7 @@ def handle_ansi_escape(self, code): def handle_control_symbol(self, symbol): # Ignore ~, -, and _, since they are optional crap. if symbol in '\\{}': - self.content.append(unicode(symbol)) + self.content.append(six.text_type(symbol)) def handle_u(self, codepoint): diff --git a/pyth/plugins/rtf15/writer.py b/pyth/plugins/rtf15/writer.py index bf00511..9e80ddf 100644 --- a/pyth/plugins/rtf15/writer.py +++ b/pyth/plugins/rtf15/writer.py @@ -3,11 +3,14 @@ http://www.biblioscape.com/rtf15_spec.htm """ +from __future__ import absolute_import from pyth import document from pyth.format import PythWriter from cStringIO import StringIO +import six +from six.moves import range # XXX Todo -- Make these parameters @@ -97,7 +100,7 @@ def _writeHeader(self): def _getFontTable(self): output = [r'{\fonttbl'] - for i, (fontFamily, fontName) in enumerate(self.fonts.iteritems()): + for i, (fontFamily, fontName) in enumerate(six.iteritems(self.fonts)): output.append(r'{\f%d\f%s %s;}' % (i, fontFamily, fontName)) if fontFamily == self.fontFamily: self.fontNumber = i diff --git a/pyth/plugins/xhtml/css.py b/pyth/plugins/xhtml/css.py index e2fe5be..f807b6d 100644 --- a/pyth/plugins/xhtml/css.py +++ b/pyth/plugins/xhtml/css.py @@ -3,6 +3,7 @@ Parse a css document into a python class that can be used to apply the style to a BeautifulSoup document. """ +from __future__ import absolute_import import re diff --git a/pyth/plugins/xhtml/reader.py b/pyth/plugins/xhtml/reader.py index 775bf58..3d5bc8c 100644 --- a/pyth/plugins/xhtml/reader.py +++ b/pyth/plugins/xhtml/reader.py @@ -1,12 +1,14 @@ """ Read documents from xhtml """ +from __future__ import absolute_import import BeautifulSoup from pyth import document from pyth.format import PythReader from pyth.plugins.xhtml.css import CSS +import six class XHTMLReader(PythReader): @@ -53,15 +55,15 @@ def format(self, soup): # Join the block elements lines into a single long line for tag in ['p', 'li']: for node in soup.findAll(tag): - text = unicode(node) + text = six.text_type(node) lines = [x.strip() for x in text.splitlines()] text = ' '.join(lines) node.replaceWith(BeautifulSoup.BeautifulSoup(text)) - soup = BeautifulSoup.BeautifulSoup(unicode(soup)) + soup = BeautifulSoup.BeautifulSoup(six.text_type(soup)) # replace all
tag by newline character for node in soup.findAll('br'): node.replaceWith("\n") - soup = BeautifulSoup.BeautifulSoup(unicode(soup)) + soup = BeautifulSoup.BeautifulSoup(six.text_type(soup)) return soup def is_bold(self, node): diff --git a/pyth/plugins/xhtml/writer.py b/pyth/plugins/xhtml/writer.py index 37bca07..b61c8e5 100644 --- a/pyth/plugins/xhtml/writer.py +++ b/pyth/plugins/xhtml/writer.py @@ -1,6 +1,7 @@ """ Render documents as XHTML fragments """ +from __future__ import absolute_import @@ -8,6 +9,7 @@ from pyth.format import PythWriter from cStringIO import StringIO +import six _tagNames = { @@ -160,7 +162,7 @@ def render(self, target): def attrString(self): return " ".join( '%s="%s"' % (k, quoteAttr(v)) - for (k, v) in self.attrs.iteritems()) + for (k, v) in six.iteritems(self.attrs)) def __repr__(self): diff --git a/setup.py b/setup.py old mode 100755 new mode 100644 index 8b2433a..5d72c59 --- a/setup.py +++ b/setup.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import from setuptools import setup, find_packages setup(name="pyth", diff --git a/tests/test_readrtf15.py b/tests/test_readrtf15.py index e29d283..53224cf 100644 --- a/tests/test_readrtf15.py +++ b/tests/test_readrtf15.py @@ -1,9 +1,12 @@ +from __future__ import absolute_import +from __future__ import print_function import unittest import os.path import glob import pyth.document from pyth.plugins.rtf15.reader import Rtf15Reader +import six class TestRtfMeta(type): def __new__(meta, name, bases, dict): @@ -20,13 +23,12 @@ def test(self): for path in files: name = os.path.splitext(os.path.basename(path))[0] dict["test_%s" % name] = gen_file_test(path, name) - print path, name + print(path, name) return type.__new__(meta, name, bases, dict) -class TestRtfFile(unittest.TestCase): - __metaclass__ = TestRtfMeta +class TestRtfFile(six.with_metaclass(TestRtfMeta, unittest.TestCase)): pass diff --git a/tests/test_readxhtml.py b/tests/test_readxhtml.py index 978c277..5038834 100644 --- a/tests/test_readxhtml.py +++ b/tests/test_readxhtml.py @@ -2,6 +2,7 @@ """ Unit tests of the xhtml reader. """ +from __future__ import absolute_import import unittest diff --git a/tests/test_writelatex.py b/tests/test_writelatex.py index 58a6ce8..5ce0b95 100644 --- a/tests/test_writelatex.py +++ b/tests/test_writelatex.py @@ -1,6 +1,7 @@ """ unit tests of the latex writer """ +from __future__ import absolute_import import unittest import subprocess diff --git a/tests/test_writepdf.py b/tests/test_writepdf.py index 9cddad7..95008e3 100644 --- a/tests/test_writepdf.py +++ b/tests/test_writepdf.py @@ -1,6 +1,8 @@ """ unit tests of the pdf writer """ +from __future__ import absolute_import +from __future__ import print_function import unittest import subprocess @@ -35,7 +37,7 @@ def pdf_to_html(self, pdf): try: proc = subprocess.Popen(command, stdout=subprocess.PIPE) except OSError: - print "Make sure that pdftohtml is installed" + print("Make sure that pdftohtml is installed") raise ret = proc.communicate()[0] return ret @@ -87,7 +89,7 @@ def test_latex(self): def test_rst(self): doc = PythonReader.read(P[u"the-text"]) pdf = PDFWriter.write(doc).getvalue() - print pdf + print(pdf) html = self.pdf_to_html(pdf) assert "the-text" in html, html From 600b7aac4990bdad1eae356c2aeebccdee1caedb Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Sun, 28 Jun 2015 13:27:27 +0200 Subject: [PATCH 02/20] I have repaired many of the bytes-vs-str issues in pyth\plugins\rtf15\reader.py pyth\plugins\xhtml\writer.py The former in particular was tricky because most strings have to be handled as bytestrings -- but not all of them. See http://pythonhosted.org/six/ These two now appear to work for ASCII and 8-bit non-ASCII characters in the RTF file, at least for a simple RTF file. Complex files and true Unicode remain to be seen. --- README | 22 + py3migration/STATUS.txt | 32 ++ py3migration/modernize_output.txt | 500 ++++++++++++++++++ .../modernize_output_strippeddown.txt | 93 ++++ pyth/plugins/rtf15/reader.py | 113 ++-- pyth/plugins/xhtml/writer.py | 15 +- setup.py | 7 +- 7 files changed, 726 insertions(+), 56 deletions(-) create mode 100644 py3migration/STATUS.txt create mode 100644 py3migration/modernize_output.txt create mode 100644 py3migration/modernize_output_strippeddown.txt diff --git a/README b/README index 65817ce..24d5055 100644 --- a/README +++ b/README @@ -54,3 +54,25 @@ the tests directory and invoke nosetest from there (make sure that pyth module is in PYTHONPATH). .. _python nose: http://code.google.com/p/python-nose/ + + +Python 3 migration +================== + +The code was originally written for Python 2. +It has been upgraded to Python 3 compatibility via 'modernize'. +This does not mean it will actually work! + +pyth.plugins.rtf15.reader has been debugged and appears to work correctly. +pyth.plugins.xhtml.writer has been debugged and appears to work correctly. +Everything else: unknown! +See directory py3migration for a bit more detail. + + +Limitations +=========== + +pyth.plugins.rtf15.reader: bulleted or enumerated items will be returned +as plain paragraphs (no indentation, no bullets). + +Other: (to be documented) diff --git a/py3migration/STATUS.txt b/py3migration/STATUS.txt new file mode 100644 index 0000000..cc6337e --- /dev/null +++ b/py3migration/STATUS.txt @@ -0,0 +1,32 @@ +as of 2015-06-28: + +I have made the code nearly python2/python3-duocompatible by calling +python-modernize. +Comitted. + +I have inserted requires = ['six'] into setup.py +Not committed. + +I have then repaired many of the bytes-vs-str issues in +pyth\plugins\rtf15\reader.py. +Dito for pyth\plugins\xhtml\writer.py. +The former in particular was tricky because most strings have to be handled +as bytestrings -- but not all of them. +See http://pythonhosted.org/six/ + +These two now appear to work for ASCII and 8-bit non-ASCII characters in the RTF file, +at least for a simple RTF file. +Complex files and true Unicode remains to be seen. + +TO DO: + +Establish a set of system-level test cases, +with various input files with the relevant RTF features +(paragraphs, line breaks, page breaks, various characters, fonts, + bold, italics, underline, hyperlink) +and coming from MS Word, Wordpad, OpenOffice. + +Introduce proper handling of itemized lists (well, that is a +new feature actually). + +Debug the other plugins. \ No newline at end of file diff --git a/py3migration/modernize_output.txt b/py3migration/modernize_output.txt new file mode 100644 index 0000000..0ac266f --- /dev/null +++ b/py3migration/modernize_output.txt @@ -0,0 +1,500 @@ +--- pyth6\setup.py (original) ++++ pyth6\setup.py (refactored) +@@ -1,3 +1,4 @@ ++from __future__ import absolute_import + from setuptools import setup, find_packages + + setup(name="pyth", +--- pyth6\examples\reading\rtf15.py (original) ++++ pyth6\examples\reading\rtf15.py (refactored) +@@ -1,3 +1,5 @@ ++from __future__ import absolute_import ++from __future__ import print_function + import sys + import os.path + +@@ -14,4 +16,4 @@ + + doc = Rtf15Reader.read(open(filename, "rb")) + +-print XHTMLWriter.write(doc, pretty=True).read() ++print(XHTMLWriter.write(doc, pretty=True).read()) +--- pyth6\examples\reading\sampleWithImage.py (original) ++++ pyth6\examples\reading\sampleWithImage.py (refactored) +@@ -1,3 +1,5 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.rtf15.reader import Rtf15Reader + import sys + +@@ -8,4 +10,4 @@ + + doc = Rtf15Reader.read(open(filename, "rb")) + +-print [x.content for x in doc.content] ++print([x.content for x in doc.content]) +--- pyth6\examples\reading\xhtml.py (original) ++++ pyth6\examples\reading\xhtml.py (refactored) +@@ -1,3 +1,5 @@ ++from __future__ import absolute_import ++from __future__ import print_function + # -*- coding: utf-8 -*- + + from pyth.plugins.xhtml.reader import XHTMLReader +@@ -49,4 +51,4 @@ + # Parse the document and then reconstruct it using the xhtml + # writer. + doc = XHTMLReader.read(content, css) +- print XHTMLWriter.write(doc).getvalue() ++ print(XHTMLWriter.write(doc).getvalue()) +--- pyth6\examples\writing\latex.py (original) ++++ pyth6\examples\writing\latex.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.latex.writer import LatexWriter + import pythonDoc + + if __name__ == "__main__": + doc = pythonDoc.buildDoc() +- print LatexWriter.write(doc).getvalue() ++ print(LatexWriter.write(doc).getvalue()) +--- pyth6\examples\writing\pdf.py (original) ++++ pyth6\examples\writing\pdf.py (refactored) +@@ -1,3 +1,4 @@ ++from __future__ import absolute_import + # -*- coding: utf-8 -*- + + from pyth.plugins.rtf15.reader import Rtf15Reader +--- pyth6\examples\writing\plaintext.py (original) ++++ pyth6\examples\writing\plaintext.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.plaintext.writer import PlaintextWriter + import pythonDoc + + doc = pythonDoc.buildDoc() + +-print PlaintextWriter.write(doc).getvalue() ++print(PlaintextWriter.write(doc).getvalue()) +--- pyth6\examples\writing\pythonDoc.py (original) ++++ pyth6\examples\writing\pythonDoc.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import + # -*- coding: utf-8 -*- + + from pyth.plugins.python.reader import * ++import six + + def buildDoc(): + return PythonReader.read(( +@@ -9,7 +11,7 @@ + u", hee hee hee! ", T(url=u'http://www.google.com') [ u"This seems to work" ] + ], + L [ +- [unicode(word) for word in ("One", "Two", "Three", "Four")] ++ [six.text_type(word) for word in ("One", "Two", "Three", "Four")] + ], + L [ + u"Introduction", +--- pyth6\examples\writing\rst.py (original) ++++ pyth6\examples\writing\rst.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.rst.writer import RSTWriter + import pythonDoc + + if __name__ == "__main__": + doc = pythonDoc.buildDoc() +- print RSTWriter.write(doc).getvalue() ++ print(RSTWriter.write(doc).getvalue()) +--- pyth6\examples\writing\rtf15.py (original) ++++ pyth6\examples\writing\rtf15.py (refactored) +@@ -1,6 +1,8 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.rtf15.writer import Rtf15Writer + import pythonDoc + + doc = pythonDoc.buildDoc() + +-print Rtf15Writer.write(doc).getvalue() ++print(Rtf15Writer.write(doc).getvalue()) +--- pyth6\examples\writing\xhtml.py (original) ++++ pyth6\examples\writing\xhtml.py (refactored) +@@ -1,3 +1,5 @@ ++from __future__ import absolute_import ++from __future__ import print_function + from pyth.plugins.xhtml.writer import XHTMLWriter + import pythonDoc + +@@ -17,4 +19,4 @@ + + if __name__ == "__main__": + doc = pythonDoc.buildDoc() +- print docTemplate % XHTMLWriter.write(doc, pretty=True).getvalue() ++ print(docTemplate % XHTMLWriter.write(doc, pretty=True).getvalue()) +--- pyth6\pyth\__init__.py (original) ++++ pyth6\pyth\__init__.py (refactored) +@@ -1,6 +1,7 @@ + """ + Pyth -- Python text markup and conversion + """ ++from __future__ import absolute_import + + import os.path + +--- pyth6\pyth\document.py (original) ++++ pyth6\pyth\document.py (refactored) +@@ -1,6 +1,8 @@ + """ + Abstract document representation + """ ++from __future__ import absolute_import ++import six + + class _PythBase(object): + +@@ -8,7 +10,7 @@ + self.properties = {} + self.content = [] + +- for (k,v) in properties.iteritems(): ++ for (k,v) in six.iteritems(properties): + self[k] = v + + for item in content: +@@ -70,7 +72,7 @@ + """ + + validProperties = ('bold', 'italic', 'underline', 'url', 'sub', 'super', 'strike') +- contentType = unicode ++ contentType = six.text_type + + def __repr__(self): + return "Text('%s' %s)" % ("".join("[%s]" % r.encode("utf-8") for r in self.content), self.properties) +--- pyth6\pyth\encodings\symbol.py (original) ++++ pyth6\pyth\encodings\symbol.py (refactored) +@@ -1,8 +1,11 @@ + """ + Maps Symbol typeface to Unicode, extracted from http://en.wikipedia.org/wiki/Symbol_(typeface) + """ ++from __future__ import absolute_import + + import codecs ++import six ++from six.moves import map + + decodeTable = { + 33: 33, 34: 8704, 35: 35, 36: 8707, 37: 37, 38: 38, 39: 8717, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, +@@ -22,7 +25,7 @@ + 235: 9123, 236: 9127, 237: 9128, 238: 9129, 239: 9130, 241: 12297, 242: 8747, 243: 8992, 244: 9134, 245: 8993, 246: 9118, + 247: 9119, 248: 9120, 249: 9124, 250: 9125, 251: 9126, 252: 9131, 253: 9132, 254: 9133} + +-encodeTable = dict((v, k) for (k, v) in decodeTable.iteritems()) ++encodeTable = dict((v, k) for (k, v) in six.iteritems(decodeTable)) + + ERROR_STRING = "Ordinal not in range (255)" + +--- pyth6\pyth\plugins\latex\writer.py (original) ++++ pyth6\pyth\plugins\latex\writer.py (refactored) +@@ -4,6 +4,7 @@ + For the moment we generate the latex document from the + reStructuredText writer output. + """ ++from __future__ import absolute_import + + from cStringIO import StringIO + import docutils.core +--- pyth6\pyth\plugins\pdf\writer.py (original) ++++ pyth6\pyth\plugins\pdf\writer.py (refactored) +@@ -1,6 +1,7 @@ + """ + Render documents as Reportlab PDF stories + """ ++from __future__ import absolute_import + + from cStringIO import StringIO + import cgi # For escape() +@@ -75,7 +76,7 @@ + content = cgi.escape(u"".join(text.content)) + + tags = [] +- for prop, value in text.properties.items(): ++ for prop, value in list(text.properties.items()): + if prop == "url": + tags.append((u'' % value, u"")) + if prop in _tagNames: +--- pyth6\pyth\plugins\plaintext\writer.py (original) ++++ pyth6\pyth\plugins\plaintext\writer.py (refactored) +@@ -1,6 +1,7 @@ + """ + Render documents as plaintext. + """ ++from __future__ import absolute_import + + from pyth import document + from pyth.format import PythWriter +--- pyth6\pyth\plugins\python\reader.py (original) ++++ pyth6\pyth\plugins\python\reader.py (refactored) +@@ -1,9 +1,11 @@ + """ + Write Pyth documents straight in Python, a la Nevow's Stan. + """ ++from __future__ import absolute_import + + from pyth.format import PythReader + from pyth.document import * ++import six + + + def _convert(content): +@@ -88,27 +90,23 @@ + def __str__(self): + return "%s(%s) [ %s ]" % ( + self.__class__.__name__, +- ", ".join("%s=%s" % (k, repr(v)) for (k,v) in self.properties.iteritems()), ++ ", ".join("%s=%s" % (k, repr(v)) for (k,v) in six.iteritems(self.properties)), + ", ".join(repr(x) for x in self.content)) + + + +-class P(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class P(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = Paragraph + + +-class LE(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class LE(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = ListEntry + +-class L(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class L(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = List + + +-class T(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class T(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + __repr__ = _PythonBase.__str__ + pythType = Text + +--- pyth6\pyth\plugins\rst\writer.py (original) ++++ pyth6\pyth\plugins\rst\writer.py (refactored) +@@ -1,6 +1,7 @@ + """ + Render documents as reStructuredText. + """ ++from __future__ import absolute_import + + from pyth import document + from pyth.format import PythWriter +--- pyth6\pyth\plugins\rtf15\reader.py (original) ++++ pyth6\pyth\plugins\rtf15\reader.py (refactored) +@@ -6,11 +6,13 @@ + This module is potentially compatible with RTF versions up to 1.9.1, + but may not ignore all necessary control groups. + """ ++from __future__ import absolute_import + import string, re, itertools, struct + + from pyth import document + from pyth.format import PythReader + from pyth.encodings import symbol ++import six + + _CONTROLCHARS = set(string.ascii_letters + string.digits + "-*") + _DIGITS = set(string.digits + "-") +@@ -543,7 +545,7 @@ + def handle_control_symbol(self, symbol): + # Ignore ~, -, and _, since they are optional crap. + if symbol in '\\{}': +- self.content.append(unicode(symbol)) ++ self.content.append(six.text_type(symbol)) + + + def handle_u(self, codepoint): +--- pyth6\pyth\plugins\rtf15\writer.py (original) ++++ pyth6\pyth\plugins\rtf15\writer.py (refactored) +@@ -3,11 +3,14 @@ + + http://www.biblioscape.com/rtf15_spec.htm + """ ++from __future__ import absolute_import + + from pyth import document + from pyth.format import PythWriter + + from cStringIO import StringIO ++import six ++from six.moves import range + + + # XXX Todo -- Make these parameters +@@ -97,7 +100,7 @@ + + def _getFontTable(self): + output = [r'{\fonttbl'] +- for i, (fontFamily, fontName) in enumerate(self.fonts.iteritems()): ++ for i, (fontFamily, fontName) in enumerate(six.iteritems(self.fonts)): + output.append(r'{\f%d\f%s %s;}' % (i, fontFamily, fontName)) + if fontFamily == self.fontFamily: + self.fontNumber = i +--- pyth6\pyth\plugins\xhtml\css.py (original) ++++ pyth6\pyth\plugins\xhtml\css.py (refactored) +@@ -3,6 +3,7 @@ + Parse a css document into a python class that can be used to apply the + style to a BeautifulSoup document. + """ ++from __future__ import absolute_import + + import re + +--- pyth6\pyth\plugins\xhtml\reader.py (original) ++++ pyth6\pyth\plugins\xhtml\reader.py (refactored) +@@ -1,12 +1,14 @@ + """ + Read documents from xhtml + """ ++from __future__ import absolute_import + + import BeautifulSoup + + from pyth import document + from pyth.format import PythReader + from pyth.plugins.xhtml.css import CSS ++import six + + + class XHTMLReader(PythReader): +@@ -53,15 +55,15 @@ + # Join the block elements lines into a single long line + for tag in ['p', 'li']: + for node in soup.findAll(tag): +- text = unicode(node) ++ text = six.text_type(node) + lines = [x.strip() for x in text.splitlines()] + text = ' '.join(lines) + node.replaceWith(BeautifulSoup.BeautifulSoup(text)) +- soup = BeautifulSoup.BeautifulSoup(unicode(soup)) ++ soup = BeautifulSoup.BeautifulSoup(six.text_type(soup)) + # replace all
tag by newline character + for node in soup.findAll('br'): + node.replaceWith("\n") +- soup = BeautifulSoup.BeautifulSoup(unicode(soup)) ++ soup = BeautifulSoup.BeautifulSoup(six.text_type(soup)) + return soup + + def is_bold(self, node): +--- pyth6\pyth\plugins\xhtml\writer.py (original) ++++ pyth6\pyth\plugins\xhtml\writer.py (refactored) +@@ -1,6 +1,7 @@ + """ + Render documents as XHTML fragments + """ ++from __future__ import absolute_import + + + +@@ -8,6 +9,7 @@ + from pyth.format import PythWriter + + from cStringIO import StringIO ++import six + + + _tagNames = { +@@ -160,7 +162,7 @@ + def attrString(self): + return " ".join( + '%s="%s"' % (k, quoteAttr(v)) +- for (k, v) in self.attrs.iteritems()) ++ for (k, v) in six.iteritems(self.attrs)) + + + def __repr__(self): +--- pyth6\tests\test_readrtf15.py (original) ++++ pyth6\tests\test_readrtf15.py (refactored) +@@ -1,9 +1,12 @@ ++from __future__ import absolute_import ++from __future__ import print_function + import unittest + import os.path + import glob + + import pyth.document + from pyth.plugins.rtf15.reader import Rtf15Reader ++import six + + class TestRtfMeta(type): + def __new__(meta, name, bases, dict): +@@ -20,13 +23,12 @@ + for path in files: + name = os.path.splitext(os.path.basename(path))[0] + dict["test_%s" % name] = gen_file_test(path, name) +- print path, name ++ print(path, name) + + return type.__new__(meta, name, bases, dict) + + +-class TestRtfFile(unittest.TestCase): +- __metaclass__ = TestRtfMeta ++class TestRtfFile(six.with_metaclass(TestRtfMeta, unittest.TestCase)): + pass + + +--- pyth6\tests\test_readxhtml.py (original) ++++ pyth6\tests\test_readxhtml.py (refactored) +@@ -2,6 +2,7 @@ + """ + Unit tests of the xhtml reader. + """ ++from __future__ import absolute_import + + import unittest + +--- pyth6\tests\test_writelatex.py (original) ++++ pyth6\tests\test_writelatex.py (refactored) +@@ -1,6 +1,7 @@ + """ + unit tests of the latex writer + """ ++from __future__ import absolute_import + + import unittest + import subprocess +--- pyth6\tests\test_writepdf.py (original) ++++ pyth6\tests\test_writepdf.py (refactored) +@@ -1,6 +1,8 @@ + """ + unit tests of the pdf writer + """ ++from __future__ import absolute_import ++from __future__ import print_function + + import unittest + import subprocess +@@ -35,7 +37,7 @@ + try: + proc = subprocess.Popen(command, stdout=subprocess.PIPE) + except OSError: +- print "Make sure that pdftohtml is installed" ++ print("Make sure that pdftohtml is installed") + raise + ret = proc.communicate()[0] + return ret +@@ -87,7 +89,7 @@ + def test_rst(self): + doc = PythonReader.read(P[u"the-text"]) + pdf = PDFWriter.write(doc).getvalue() +- print pdf ++ print(pdf) + html = self.pdf_to_html(pdf) + assert "the-text" in html, html + diff --git a/py3migration/modernize_output_strippeddown.txt b/py3migration/modernize_output_strippeddown.txt new file mode 100644 index 0000000..7591189 --- /dev/null +++ b/py3migration/modernize_output_strippeddown.txt @@ -0,0 +1,93 @@ +This is the output of + python-modernize -w pyth6 >pyth6/modernize_output.txt +minus all blocks containing only the following: +- 'from __future__ import' additions +- 'import six' additions +- print statements rewritten into print function calls +- mentions of six.iteritems +- mentions of six.text_type + +--- pyth6\pyth\encodings\symbol.py (original) ++++ pyth6\pyth\encodings\symbol.py (refactored) +@@ -1,8 +1,11 @@ + """ + Maps Symbol typeface to Unicode, extracted from http://en.wikipedia.org/wiki/Symbol_(typeface) + """ ++from __future__ import absolute_import + + import codecs ++import six ++from six.moves import map + + decodeTable = { + 33: 33, 34: 8704, 35: 35, 36: 8707, 37: 37, 38: 38, 39: 8717, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, +--- pyth6\pyth\plugins\python\reader.py (original) ++++ pyth6\pyth\plugins\python\reader.py (refactored) +@@ -88,27 +90,23 @@ + def __str__(self): + return "%s(%s) [ %s ]" % ( + self.__class__.__name__, +- ", ".join("%s=%s" % (k, repr(v)) for (k,v) in self.properties.iteritems()), ++ ", ".join("%s=%s" % (k, repr(v)) for (k,v) in six.iteritems(self.properties)), + ", ".join(repr(x) for x in self.content)) + + + +-class P(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class P(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = Paragraph + + +-class LE(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class LE(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = ListEntry + +-class L(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class L(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + pythType = List + + +-class T(_PythonBase): +- __metaclass__ = _MetaPythonBase() ++class T(six.with_metaclass(_MetaPythonBase(), _PythonBase)): + __repr__ = _PythonBase.__str__ + pythType = Text + +--- pyth6\pyth\plugins\rtf15\writer.py (original) ++++ pyth6\pyth\plugins\rtf15\writer.py (refactored) +@@ -3,11 +3,14 @@ + + http://www.biblioscape.com/rtf15_spec.htm + """ ++from __future__ import absolute_import + + from pyth import document + from pyth.format import PythWriter + + from cStringIO import StringIO ++import six ++from six.moves import range + + + # XXX Todo -- Make these parameters +--- pyth6\tests\test_readrtf15.py (original) ++++ pyth6\tests\test_readrtf15.py (refactored) +@@ -20,13 +23,12 @@ + for path in files: + name = os.path.splitext(os.path.basename(path))[0] + dict["test_%s" % name] = gen_file_test(path, name) +- print path, name ++ print(path, name) + + return type.__new__(meta, name, bases, dict) + + +-class TestRtfFile(unittest.TestCase): +- __metaclass__ = TestRtfMeta ++class TestRtfFile(six.with_metaclass(TestRtfMeta, unittest.TestCase)): + pass + + diff --git a/pyth/plugins/rtf15/reader.py b/pyth/plugins/rtf15/reader.py index c920948..2581673 100644 --- a/pyth/plugins/rtf15/reader.py +++ b/pyth/plugins/rtf15/reader.py @@ -5,6 +5,12 @@ This module is potentially compatible with RTF versions up to 1.9.1, but may not ignore all necessary control groups. + +RTF is 8-bit based. Therefore, all input data is represented as +a binary string (with b prefix for literals). +Output data is unicode. +Python-related constants, pyth-internal constants and error messages are plain strings +(i.e. byte strings in Python 2, Unicode strings in Python 3): """ from __future__ import absolute_import import string, re, itertools, struct @@ -14,8 +20,8 @@ from pyth.encodings import symbol import six -_CONTROLCHARS = set(string.ascii_letters + string.digits + "-*") -_DIGITS = set(string.digits + "-") +_CONTROLCHARS = b'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-*' +_DIGITS = b'0123456789-' _CODEPAGES = { @@ -98,7 +104,7 @@ def __init__(self, source, errors='strict', clean_paragraphs=True): def go(self): self.source.seek(0) - if self.source.read(5) != r"{\rtf": + if self.source.read(5) != br"{\rtf": from pyth.errors import WrongFileType raise WrongFileType("Doesn't look like an RTF file") @@ -119,17 +125,19 @@ def parse(self): if not next: break - if next in '\r\n': + if next in b'\r\n': continue - if next == '{': + if next == b'{': subGroup = Group(self, self.group, self.charsetTable) self.stack.append(subGroup) subGroup.skip = self.group.skip self.group.flushChars() self.group = subGroup - elif next == '}': + elif next == b'}': subGroup = self.stack.pop() self.group = self.stack[-1] + if self.group.specialMeaning == 'FONT_TABLE': + subGroup.ignore() # else font names may appear as text subGroup.finalize() if subGroup.specialMeaning == 'FONT_TABLE': @@ -141,43 +149,47 @@ def parse(self): # inside groups we don't care about anyway continue - elif next == '\\': + elif next == b'\\': control, digits = self.getControl() self.group.handle(control, digits) + elif next == b';': + self.group.char(next) # within-group text else: - self.group.char(next) + self.group.char(next) # within-group text def getControl(self): - chars = [] - digits = [] - current = chars - first = True + chars = [] # for output 1 + digits = [] # for output 2 + current = chars # what part we are reading + first = True # true during first char only while True: next = self.source.read(1) if not next: break - if first and next in '\\{}': - chars.extend("control_symbol") + if first and next in b'\\{}': + chars.extend(b"control_symbol") digits.append(next) break - if first and next in '\r\n': + if first and next in b'\r\n': # Special-cased in RTF, equivalent to a \par - chars.extend("par") + chars.extend(b"par") break first = False - if next == "'": + if next == b"'": # ANSI escape, takes two hex digits - chars.extend("ansi_escape") - digits.extend(self.source.read(2)) + #chars.extend(b"ansi_escape") + chars.append(b"ansi_escape") + #digits.extend(self.source.read(2)) + digits.append(self.source.read(2)) break - if next == ' ': + if next == b' ': # Don't rewind, the space is just a delimiter break @@ -191,7 +203,7 @@ def getControl(self): current.append(next) - return "".join(chars), "".join(digits) + return b"".join(chars), b"".join(digits) def build(self): @@ -230,7 +242,7 @@ def flushRun(self): if self.isImage: self.block.content.append( document.Image(self.propStack[-1].copy(), - [str("".join(self.run))])) + [b"".join(self.run)])) self.isImage = False else: self.block.content.append( @@ -295,6 +307,12 @@ def flushParagraph(self): def handle_unicode(self, bit): + # text strings in Python 2 + self.run.append(bit) + + + def handle_str(self, bit): + # text strings in Python 3 self.run.append(bit) @@ -314,13 +332,14 @@ def handle_Para(self, para): prevListLevel = self.listLevel self.listLevel = para.listLevel - if self.listLevel > prevListLevel: - l = document.List() - self.listStack.append(l) + if prevListLevel is not None and self.listLevel is not None: + if self.listLevel > prevListLevel: + l = document.List() + self.listStack.append(l) - elif self.listLevel < prevListLevel: - l = self.listStack.pop() - self.listStack[-1].append(l) + elif self.listLevel < prevListLevel: + l = self.listStack.pop() + self.listStack[-1].append(l) self.block = None @@ -388,28 +407,28 @@ def __init__(self, reader, parent=None, charsetTable=None): def flushChars(self): - chars = "".join(self.charBuffer).decode(self.charset, self.reader.errors) + chars = b"".join(self.charBuffer).decode(self.charset, self.reader.errors) self.content.append(chars) self.charBuffer = [] def handle(self, control, digits): - if self.charBuffer and control != "ansi_escape": + if self.charBuffer and control != b"ansi_escape": # end of a text range self.flushChars() - if control == '*': + if control == b'*': self.destination = True return - if self.image and control in ['emfblip', 'pngblip', 'jpegblip', 'macpict', 'pmmetafile', 'wmetafile', - 'dibitmap', 'wbitmap', 'wbmbitspixel', 'wbmplanes', 'wbmwidthbytes', - 'picw', 'pich', 'picwgoal', 'pichgoal', 'picscalex', 'picscaley', - 'picscaled', 'piccropt', 'piccropb', 'piccropr', 'piccropl', 'picbmp', - 'picbpp', 'bin', 'blipupi', 'blipuid', 'bliptag', 'wbitmap']: + if self.image and control in [b'emfblip', b'pngblip', b'jpegblip', b'macpict', b'pmmetafile', b'wmetafile', + b'dibitmap', b'wbitmap', b'wbmbitspixel', b'wbmplanes', b'wbmwidthbytes', + b'picw', b'pich', b'picwgoal', b'pichgoal', b'picscalex', b'picscaley', + b'picscaled', b'piccropt', b'piccropb', b'piccropr', b'piccropl', b'picbmp', + b'picbpp', b'bin', b'blipupi', b'blipuid', b'bliptag', b'wbitmap']: self.content.append(ImageMarker(control, digits)) return - handler = getattr(self, 'handle_%s' % control, None) + handler = getattr(self, 'handle_%s' % control.decode('ascii'), None) if handler is None: return @@ -531,10 +550,10 @@ def handle_ansi_escape(self, code): if uni_code is None: char = u'?' else: - char = unichr(uni_code) + char = six.unichr(uni_code) else: - char = chr(code) + char = six.int2byte(code) if not self.isPcData: self.char(char) return @@ -551,18 +570,18 @@ def handle_control_symbol(self, symbol): def handle_u(self, codepoint): codepoint = int(codepoint) try: - char = unichr(codepoint % 2**16) + char = six.unichr(codepoint % 2**16) except ValueError: - if self.reader.errors == 'replace': - char = '?' + if self.reader.errors == b'replace': + char = b'?' else: raise self.content.append(char) - self.skipCount = self.props.get('unicode_skip', 1) + self.skipCount = self.props.get(b'unicode_skip', 1) def handle_uc(self, skipBytes): - self.props['unicode_skip'] = int(skipBytes) + self.props[b'unicode_skip'] = int(skipBytes) def handle_par(self): @@ -584,7 +603,7 @@ def handle_line(self): def handle_b(self, onOff=None): - val = onOff in (None, "", "1") + val = onOff in (None, b"", b"1") self.content.append(ReadableMarker("bold", val)) @@ -677,7 +696,7 @@ def finalize(): except: return u"" - match = re.match(ur'HYPERLINK "(.*)"', destination) + match = re.match(r'HYPERLINK "(.*)"', destination) if match: content.skip = False self.content = [ReadableMarker("url", match.group(1)), @@ -768,7 +787,7 @@ class Pop(ReadableMarker): name = "Pop" -# Yes, yes, I know, I'll clean it up later. +# Use singleton objects for the dataless markers: Reset = Reset() Push = Push() Pop = Pop() diff --git a/pyth/plugins/xhtml/writer.py b/pyth/plugins/xhtml/writer.py index b61c8e5..b53d046 100644 --- a/pyth/plugins/xhtml/writer.py +++ b/pyth/plugins/xhtml/writer.py @@ -3,12 +3,9 @@ """ from __future__ import absolute_import - - from pyth import document from pyth.format import PythWriter -from cStringIO import StringIO import six @@ -24,7 +21,7 @@ class XHTMLWriter(PythWriter): @classmethod def write(klass, document, target=None, cssClasses=True, pretty=False): if target is None: - target = StringIO() + target = six.BytesIO() writer = XHTMLWriter(document, target, cssClasses, pretty) final = writer.go() @@ -145,18 +142,20 @@ def render(self, target): attrString = self.attrString() if attrString: attrString = " " + attrString - target.write('<%s%s>' % (self.tag, attrString)) + target.write(('<%s%s>' % (self.tag, attrString)).encode("utf-8")) for c in self.content: if isinstance(c, Tag): c.render(target) elif c is _prettyBreak: - target.write('\n') + target.write(b'\n') else: - target.write(quoteText(c).encode("utf-8").replace('\n', '
')) + if type(c) != six.text_type: + c = six.text_type(c) + target.write(quoteText(c).encode("utf-8").replace(b'\n', b'
')) if self.tag is not None: - target.write('' % self.tag) + target.write(('' % self.tag).encode("utf-8")) def attrString(self): diff --git a/setup.py b/setup.py index 5d72c59..5a79b43 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup(name="pyth", - version="0.6.0", + version="0.7.0", packages = find_packages(), zip_safe = False, @@ -19,6 +19,7 @@ "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", "Topic :: Office/Business", "Topic :: Software Development :: Libraries", "Topic :: Text Editors :: Word Processors", @@ -26,4 +27,8 @@ "Topic :: Text Processing :: Markup", "Topic :: Text Processing :: Filters", ], + + requires = [ + "six", + ], ) From caef7b71e312c95511f534db41072db0a57cdaeb Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Sat, 11 Jul 2015 17:33:42 +0200 Subject: [PATCH 03/20] corrected remaining mistakes in rtf15/reader It should now work correctly. --- pyth/plugins/rtf15/reader.py | 14 +++++++++----- pyth/plugins/xhtml/writer.py | 11 +++++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pyth/plugins/rtf15/reader.py b/pyth/plugins/rtf15/reader.py index 2581673..7b5e1b7 100644 --- a/pyth/plugins/rtf15/reader.py +++ b/pyth/plugins/rtf15/reader.py @@ -164,19 +164,21 @@ def getControl(self): current = chars # what part we are reading first = True # true during first char only while True: - next = self.source.read(1) + next = self.source.read(1) # str in Python 2, bytes in Python 3 if not next: break if first and next in b'\\{}': - chars.extend(b"control_symbol") + #chars.extend(b"control_symbol") + chars.append(b"control_symbol") digits.append(next) break if first and next in b'\r\n': # Special-cased in RTF, equivalent to a \par - chars.extend(b"par") + #chars.extend(b"par") + chars.append(b"par") break first = False @@ -563,8 +565,10 @@ def handle_ansi_escape(self, code): def handle_control_symbol(self, symbol): # Ignore ~, -, and _, since they are optional crap. - if symbol in '\\{}': - self.content.append(six.text_type(symbol)) + assert len(symbol) == 1 + if symbol in b'\\{}': + #self.content.append(six.text_type(symbol)) + self.content.append(symbol.decode("ascii")) def handle_u(self, codepoint): diff --git a/pyth/plugins/xhtml/writer.py b/pyth/plugins/xhtml/writer.py index b53d046..7865e21 100644 --- a/pyth/plugins/xhtml/writer.py +++ b/pyth/plugins/xhtml/writer.py @@ -180,3 +180,14 @@ def quoteAttr(text): return quoteText(text).replace( u'"', u""").replace( u"'", u"'") + + +def write_html_file(filename, bytescontent, print_msg=True): + # used in examples and in tests + with open(filename, "wb") as out: + out.write(b"\n") + out.write(b"\n") + out.write(bytescontent) + out.write(b"\n") + if print_msg: + print("##### wrote RTF as XHTML to", filename) From d369a3601f46d9744749811db6190625febe1d2c Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Sat, 11 Jul 2015 17:38:08 +0200 Subject: [PATCH 04/20] examples/reading/rtf15.py can now generate reference test output --- examples/reading/rtf15.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/examples/reading/rtf15.py b/examples/reading/rtf15.py index b92ae22..7e9f53f 100644 --- a/examples/reading/rtf15.py +++ b/examples/reading/rtf15.py @@ -4,16 +4,22 @@ import os.path from pyth.plugins.rtf15.reader import Rtf15Reader -from pyth.plugins.xhtml.writer import XHTMLWriter +from pyth.plugins.xhtml.writer import XHTMLWriter, write_html_file +numargs = len(sys.argv) - 1 -if len(sys.argv) > 1: - filename = sys.argv[1] +if numargs not in [1, 2]: + print("usage: rtf15 inputfile.rtf [outputdir]") else: - filename = os.path.normpath(os.path.join( - os.path.dirname(__file__), - '../../tests/rtfs/sample.rtf')) - -doc = Rtf15Reader.read(open(filename, "rb")) - -print(XHTMLWriter.write(doc, pretty=True).read()) + inputfile = sys.argv[1] + doc = Rtf15Reader.read(open(inputfile, "rb")) + the_output = XHTMLWriter.write(doc, pretty=True).read() + if numargs == 1: + print("") + print(the_output) + else: + basename = os.path.basename(inputfile) + outputdir = sys.argv[2] + outputfile = os.path.join(outputdir, + os.path.splitext(basename)[0] + ".html") + write_html_file(outputfile, the_output, print_msg=True) From f226808d7deac900fab8e26c2f7e3cc7aec31440 Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Sat, 11 Jul 2015 17:43:18 +0200 Subject: [PATCH 05/20] established end-to-end tests for Rtf15Reader They are based on pairs of files with the same basename in directories tests/rtfs (inputfiles) and tests/rtf-as-html (reference outputfiles) The unittest test method for each pair is created dynamically by test_readrtf15.py and will write the actual output to yet another file with that same basename in directory tests/currentoutput (files holding actual outputs). Those files are deleted only if the test succeeds and so can be used for analysis if the test fails. --- tests/currentoutput/README.txt | 7 + tests/rtf-as-html/README.txt | 20 ++ tests/rtf-as-html/a.html | 6 + tests/rtf-as-html/ansi.html | 10 + tests/rtf-as-html/cjk.html | 6 + tests/rtf-as-html/minimal.html | 8 + tests/rtf-as-html/msword-quotes-fonts.html | 8 + tests/rtf-as-html/sample.html | 34 ++++ tests/rtf-as-html/wordpad-bold-italics.html | 6 + tests/rtf-as-html/zh-cn.html | 22 +++ tests/rtfs/a.rtf | Bin 0 -> 235 bytes tests/rtfs/minimal.rtf | 4 + tests/rtfs/msword-quotes-fonts.rtf | 199 ++++++++++++++++++++ tests/rtfs/wordpad-bold-italics.rtf | Bin 0 -> 232 bytes tests/test_readrtf15.py | 79 +++++--- 15 files changed, 380 insertions(+), 29 deletions(-) create mode 100644 tests/currentoutput/README.txt create mode 100644 tests/rtf-as-html/README.txt create mode 100644 tests/rtf-as-html/a.html create mode 100644 tests/rtf-as-html/ansi.html create mode 100644 tests/rtf-as-html/cjk.html create mode 100644 tests/rtf-as-html/minimal.html create mode 100644 tests/rtf-as-html/msword-quotes-fonts.html create mode 100644 tests/rtf-as-html/sample.html create mode 100644 tests/rtf-as-html/wordpad-bold-italics.html create mode 100644 tests/rtf-as-html/zh-cn.html create mode 100644 tests/rtfs/a.rtf create mode 100644 tests/rtfs/minimal.rtf create mode 100644 tests/rtfs/msword-quotes-fonts.rtf create mode 100644 tests/rtfs/wordpad-bold-italics.rtf diff --git a/tests/currentoutput/README.txt b/tests/currentoutput/README.txt new file mode 100644 index 0000000..97314fc --- /dev/null +++ b/tests/currentoutput/README.txt @@ -0,0 +1,7 @@ + README for pyth/tests/currentoutput +===================================== + +This directory contains files created during a system-level test +by the test routines. +If the test fails, the respective file is useful for debugging. +These files should not be checked into git. diff --git a/tests/rtf-as-html/README.txt b/tests/rtf-as-html/README.txt new file mode 100644 index 0000000..99b58a0 --- /dev/null +++ b/tests/rtf-as-html/README.txt @@ -0,0 +1,20 @@ + README for pyth/tests/rtf-as-html +=================================== + +This directory contains the reference output for test runs +of the RTF reader pyth.plugins.rtf15.reader files. + +The idea for creating these reference files is to +- turn the read results into XHTML, +- wrap that into a proper HTML document file, +- load that file in a web browser, and +- inspect the results visually in comparison to the + original RTF source. + +The content of these files was found correct in this manner +with respect to the current implementation expectation. +Test runs will create corresponding output and compare the +file contents. + +See the top-level README for current limitations. + diff --git a/tests/rtf-as-html/a.html b/tests/rtf-as-html/a.html new file mode 100644 index 0000000..9453b94 --- /dev/null +++ b/tests/rtf-as-html/a.html @@ -0,0 +1,6 @@ + + +
+

nörmal bold italics bolditalics

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/ansi.html b/tests/rtf-as-html/ansi.html new file mode 100644 index 0000000..6065dfb --- /dev/null +++ b/tests/rtf-as-html/ansi.html @@ -0,0 +1,10 @@ + + +
+

Apostrophe: `

+ +

Quotation mark: ' “

+ +

` ~ ! @ # $ % ^ & * ( ) - _ = + [ { ] } \ | ; : ' “ , < . > / ?

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/cjk.html b/tests/rtf-as-html/cjk.html new file mode 100644 index 0000000..6596888 --- /dev/null +++ b/tests/rtf-as-html/cjk.html @@ -0,0 +1,6 @@ + + +
+

協議

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/minimal.html b/tests/rtf-as-html/minimal.html new file mode 100644 index 0000000..aa9d89b --- /dev/null +++ b/tests/rtf-as-html/minimal.html @@ -0,0 +1,8 @@ + + +
+

This is

+ +

some bold text.

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/msword-quotes-fonts.html b/tests/rtf-as-html/msword-quotes-fonts.html new file mode 100644 index 0000000..ebea131 --- /dev/null +++ b/tests/rtf-as-html/msword-quotes-fonts.html @@ -0,0 +1,8 @@ + + +
+

Hello, world!

+ +

"Straight quotes", »french quotes«, “unicode double quotes”, „german quotes‟.

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/sample.html b/tests/rtf-as-html/sample.html new file mode 100644 index 0000000..b012514 --- /dev/null +++ b/tests/rtf-as-html/sample.html @@ -0,0 +1,34 @@ + + +
+

Louis J. Ptáček, M.D.

+ +

Italics, accented letters, em dashes: Ptáček collaborated with Jones. what is called familial advanced sleep-phase syndrome (FASPS)—or very early risers—and has found almost 90 families. Novel players in presynaptic vesicle trafficking. To identify mutations in novel genes as well as genes that have previously been implicated in SV trafficking, we used the eyeless-FLP/FRT system to carry out four chemical mutagenesis screens. with apparent normal eye morphology (300,000 flies) for their ability to phototax (retained 10,000).

+ +

Lots of Greek letters and symbols:
The combined incidence of α and κ and β and φ and ≥ and détected µm and ± and á and ã and ü and ‰ and — and © and … and δ and λ and κ and de novo rearrangements that are mediated by segmental duplications is estimated at 1/1,000 live births. ← arrows → fraction ⅝ symbol ≥ This includes 3 percent of ~130 regions of the human genome that we believe show a predilection–to–segmental–aneusomy.

+ +

These are accented letters: ϋ ό ë é è å ě

+ +

Hyperlinks: In collaboration with the laboratories of (HHMI, Carnegie Institution of Washington), Roger Hoskins (Lawrence Berkeley National Laboratory), and via ΦC31-mediated integration ().

+ +

Pamela J. Björkman, Ph.D.

+ +

Subscripts and superscripts: the polymeric immunoglobulin receptor (CO2), which CO2 transports polymeric antibodies into secretions, and gE-gI, a viral Fc receptor for IgG. H2O is not H2O or V0.

+ +

Bulleted list:

+ +

In Vitro Reconstitution of Ca2+-Triggered Synaptic Vesicle Fusion

+ +

CNTs bind with high specificity

+ +

at neuromuscular junctions

+ +

The molecular details of the toxin-cell

+ +

recognition has been elusive

+ +

determined at 2.15-Å resolution

+ +

The 6.7-Å map of the Escherichia coli is actually visible as "bumps." Both α-helices and β-sheets

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/wordpad-bold-italics.html b/tests/rtf-as-html/wordpad-bold-italics.html new file mode 100644 index 0000000..3f06dfc --- /dev/null +++ b/tests/rtf-as-html/wordpad-bold-italics.html @@ -0,0 +1,6 @@ + + +
+

normal bold italics bolditalics

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/zh-cn.html b/tests/rtf-as-html/zh-cn.html new file mode 100644 index 0000000..2e4f0d3 --- /dev/null +++ b/tests/rtf-as-html/zh-cn.html @@ -0,0 +1,22 @@ + + +
+

{0>PowerDirector needs to install Content Pack Premium before loading your project from PowerDirector Mobile.<}0{>威力导演需要安装内容套件进阶版才能从手机版威力导演加载您的项目。<0}

+ +

Enu: Content Pack Premium

+ +

Deu: Premium Inhaltspaket

+ +

Esp: Paquete de Contenido Premium

+ +

Fra: Pack de Contenu Premium

+ +

Ita: Pacchetto Contenuti Premium

+ +

Chs: 内容套件进阶版

+ +

Cht: 內容套件進階版

+ +

Kor: 프리미엄 구성팩

+
+ \ No newline at end of file diff --git a/tests/rtfs/a.rtf b/tests/rtfs/a.rtf new file mode 100644 index 0000000000000000000000000000000000000000..9b37b080d11d5c53a1e49ef245a02e109215bc8d GIT binary patch literal 235 zcmXwzJ#ND=3`RQ}$Q`s5$PiGfoeUl`_Xgi0TarUmkpqco2E%ucY_tIJ_y_QDL6)Fl zQ{f%sW74KGa6Sau7;Ty~edz^ZP9j6B1tBDk2;;)T@JMjkTv>w0Jw95MOivz0lk z?-Im27S)|veKIvVP5p{r_OBmKuElfIc-ZVvtRX^)=5nsQKci@D_RB6T#;AnPaL#ud d6$UlT(bY^~#Zvua`Jeu^`;NBTho=7Z@dic>P|*MY literal 0 HcmV?d00001 diff --git a/tests/rtfs/minimal.rtf b/tests/rtfs/minimal.rtf new file mode 100644 index 0000000..1318aa4 --- /dev/null +++ b/tests/rtfs/minimal.rtf @@ -0,0 +1,4 @@ +{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard +This is \par +some {\b bold} text.\par +} \ No newline at end of file diff --git a/tests/rtfs/msword-quotes-fonts.rtf b/tests/rtfs/msword-quotes-fonts.rtf new file mode 100644 index 0000000..a07408a --- /dev/null +++ b/tests/rtfs/msword-quotes-fonts.rtf @@ -0,0 +1,199 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f166\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f299\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f300\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f302\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f303\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f304\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f305\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f306\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f307\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f299\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f300\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f302\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f303\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f304\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f305\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f306\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f307\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f669\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f670\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f672\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f673\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f676\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f677\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\f1959\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f1960\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f1962\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f1963\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;} +{\f1966\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f1967\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} +{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);} +{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0; +\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 }{\*\defpap +\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 +\af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} +{\*\rsidtbl \rsid656671\rsid1598277\rsid7410800\rsid10105401\rsid10633277\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz} +{\operator Prechelt, Lutz}{\creatim\yr2015\mo6\dy27\hr11\min55}{\revtim\yr2015\mo6\dy28\hr12\min28}{\version2}{\edmins0}{\nofpages1}{\nofwords13}{\nofchars79}{\*\company FU Berlin, FBs IMP}{\nofcharsws91}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.m +icrosoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot7410800\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7410800\charrsid10105401 Hello}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10633277 ,}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7410800\charrsid10105401 world!}{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10633277 +\par }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\insrsid10105401\charrsid10105401 "Straight quotes",}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10105401\charrsid10105401 }{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \f166\fs26\insrsid10105401\charrsid10105401 \'bb}{ +\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \fs26\insrsid10105401\charrsid10105401 french quotes}{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \f166\fs26\insrsid10105401\charrsid10105401 \'ab}{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \fs26\insrsid10105401\charrsid10105401 , }{ +\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 \f0\fs28\insrsid10105401\charrsid10633277 \'93unicode double quotes\'94,}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f166\insrsid10105401 }{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f166\fs32\insrsid10105401\charrsid10105401 \'84 +german quotes\u8223\'3f}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f166\fs32\insrsid10633277 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f166\insrsid10105401\charrsid10633277 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid; +\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid; +\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1; +\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1; +\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; +\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2; +\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3; +\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b06f +353a8db1d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/wordpad-bold-italics.rtf b/tests/rtfs/wordpad-bold-italics.rtf new file mode 100644 index 0000000000000000000000000000000000000000..bd25bbf589dbfd4757e1c84e3c9f661df8ee36a7 GIT binary patch literal 232 zcmXwzI}U>|3_v?0afi$ukdu}&Fm~<@yabX^t0ADov;*Sq4XBl@=bz-~6(c)|IwU&K z&x2I8LSvnSonD7Q!bPs=roi0!TmZU29$o*`FH XXFw9fS>C7r^w%Cc*bkRQe(LlEWz Date: Sun, 12 Jul 2015 20:42:28 +0200 Subject: [PATCH 06/20] some cleanup of rtf15/reader.py --- pyth/plugins/rtf15/reader.py | 44 ++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/pyth/plugins/rtf15/reader.py b/pyth/plugins/rtf15/reader.py index 7b5e1b7..dd5ceac 100644 --- a/pyth/plugins/rtf15/reader.py +++ b/pyth/plugins/rtf15/reader.py @@ -120,20 +120,20 @@ def go(self): def parse(self): while True: - next = self.source.read(1) + nextbyte = self.source.read(1) - if not next: + if not nextbyte: break - if next in b'\r\n': + if nextbyte in b'\r\n': continue - if next == b'{': + if nextbyte == b'{': subGroup = Group(self, self.group, self.charsetTable) self.stack.append(subGroup) subGroup.skip = self.group.skip self.group.flushChars() self.group = subGroup - elif next == b'}': + elif nextbyte == b'}': subGroup = self.stack.pop() self.group = self.stack[-1] if self.group.specialMeaning == 'FONT_TABLE': @@ -149,61 +149,55 @@ def parse(self): # inside groups we don't care about anyway continue - elif next == b'\\': + elif nextbyte == b'\\': control, digits = self.getControl() self.group.handle(control, digits) - elif next == b';': - self.group.char(next) # within-group text else: - self.group.char(next) # within-group text + self.group.char(nextbyte) # within-group text def getControl(self): chars = [] # for output 1 digits = [] # for output 2 current = chars # what part we are reading - first = True # true during first char only + is_first = True # true during first char only while True: - next = self.source.read(1) # str in Python 2, bytes in Python 3 + nextbyte = self.source.read(1) # str in Python 2, bytes in Python 3 - if not next: + if not nextbyte: break - if first and next in b'\\{}': - #chars.extend(b"control_symbol") + if is_first and nextbyte in b'\\{}': chars.append(b"control_symbol") - digits.append(next) + digits.append(nextbyte) break - if first and next in b'\r\n': + if is_first and nextbyte in b'\r\n': # Special-cased in RTF, equivalent to a \par - #chars.extend(b"par") chars.append(b"par") break - first = False + is_first = False - if next == b"'": + if nextbyte == b"'": # ANSI escape, takes two hex digits - #chars.extend(b"ansi_escape") chars.append(b"ansi_escape") - #digits.extend(self.source.read(2)) digits.append(self.source.read(2)) break - if next == b' ': + if nextbyte == b' ': # Don't rewind, the space is just a delimiter break - if next not in _CONTROLCHARS: + if nextbyte not in _CONTROLCHARS: # Rewind, it's a meaningful character self.source.seek(-1, 1) break - if next in _DIGITS: + if nextbyte in _DIGITS: current = digits - current.append(next) + current.append(nextbyte) return b"".join(chars), b"".join(digits) From e6029748ea6b68dac187db90841c25d4ee24224c Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Sun, 12 Jul 2015 20:52:51 +0200 Subject: [PATCH 07/20] documentation update --- .gitignore | 1 + README | 8 +- modernize_output.txt | 500 ------------------------------ modernize_output_strippeddown.txt | 93 ------ py3migration/STATUS.txt | 23 +- 5 files changed, 21 insertions(+), 604 deletions(-) delete mode 100644 modernize_output.txt delete mode 100644 modernize_output_strippeddown.txt diff --git a/.gitignore b/.gitignore index f55c0f9..352b67c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *~ +*.bak *.py[co] *.egg-info \ No newline at end of file diff --git a/README b/README index 24d5055..ac003a0 100644 --- a/README +++ b/README @@ -30,7 +30,7 @@ Design principles * Ignore unsupported information in input formats (e.g. page layout) * Ignore font issues -- output in a single font. -* Ignore specific text sizes -- support relative sizes (bigger, littler) only. Output in a single base size. +* Ignore specific text sizes, but maintain italics, boldface, subscript/superscript * Have no dependencies unless they are written in Python, and work * Make it easy to add support for new formats, by using an architecture based on *plugins* and *adapters*. @@ -63,10 +63,12 @@ The code was originally written for Python 2. It has been upgraded to Python 3 compatibility via 'modernize'. This does not mean it will actually work! -pyth.plugins.rtf15.reader has been debugged and appears to work correctly. -pyth.plugins.xhtml.writer has been debugged and appears to work correctly. +pyth.plugins.rtf15.reader has been debugged and now appears to work correctly. +pyth.plugins.xhtml.writer has been debugged and now appears to work correctly. Everything else: unknown! See directory py3migration for a bit more detail. +(If you find something is broken that worked before, please +either fix it or stick to pyth version 0.6.0.) Limitations diff --git a/modernize_output.txt b/modernize_output.txt deleted file mode 100644 index 0ac266f..0000000 --- a/modernize_output.txt +++ /dev/null @@ -1,500 +0,0 @@ ---- pyth6\setup.py (original) -+++ pyth6\setup.py (refactored) -@@ -1,3 +1,4 @@ -+from __future__ import absolute_import - from setuptools import setup, find_packages - - setup(name="pyth", ---- pyth6\examples\reading\rtf15.py (original) -+++ pyth6\examples\reading\rtf15.py (refactored) -@@ -1,3 +1,5 @@ -+from __future__ import absolute_import -+from __future__ import print_function - import sys - import os.path - -@@ -14,4 +16,4 @@ - - doc = Rtf15Reader.read(open(filename, "rb")) - --print XHTMLWriter.write(doc, pretty=True).read() -+print(XHTMLWriter.write(doc, pretty=True).read()) ---- pyth6\examples\reading\sampleWithImage.py (original) -+++ pyth6\examples\reading\sampleWithImage.py (refactored) -@@ -1,3 +1,5 @@ -+from __future__ import absolute_import -+from __future__ import print_function - from pyth.plugins.rtf15.reader import Rtf15Reader - import sys - -@@ -8,4 +10,4 @@ - - doc = Rtf15Reader.read(open(filename, "rb")) - --print [x.content for x in doc.content] -+print([x.content for x in doc.content]) ---- pyth6\examples\reading\xhtml.py (original) -+++ pyth6\examples\reading\xhtml.py (refactored) -@@ -1,3 +1,5 @@ -+from __future__ import absolute_import -+from __future__ import print_function - # -*- coding: utf-8 -*- - - from pyth.plugins.xhtml.reader import XHTMLReader -@@ -49,4 +51,4 @@ - # Parse the document and then reconstruct it using the xhtml - # writer. - doc = XHTMLReader.read(content, css) -- print XHTMLWriter.write(doc).getvalue() -+ print(XHTMLWriter.write(doc).getvalue()) ---- pyth6\examples\writing\latex.py (original) -+++ pyth6\examples\writing\latex.py (refactored) -@@ -1,6 +1,8 @@ -+from __future__ import absolute_import -+from __future__ import print_function - from pyth.plugins.latex.writer import LatexWriter - import pythonDoc - - if __name__ == "__main__": - doc = pythonDoc.buildDoc() -- print LatexWriter.write(doc).getvalue() -+ print(LatexWriter.write(doc).getvalue()) ---- pyth6\examples\writing\pdf.py (original) -+++ pyth6\examples\writing\pdf.py (refactored) -@@ -1,3 +1,4 @@ -+from __future__ import absolute_import - # -*- coding: utf-8 -*- - - from pyth.plugins.rtf15.reader import Rtf15Reader ---- pyth6\examples\writing\plaintext.py (original) -+++ pyth6\examples\writing\plaintext.py (refactored) -@@ -1,6 +1,8 @@ -+from __future__ import absolute_import -+from __future__ import print_function - from pyth.plugins.plaintext.writer import PlaintextWriter - import pythonDoc - - doc = pythonDoc.buildDoc() - --print PlaintextWriter.write(doc).getvalue() -+print(PlaintextWriter.write(doc).getvalue()) ---- pyth6\examples\writing\pythonDoc.py (original) -+++ pyth6\examples\writing\pythonDoc.py (refactored) -@@ -1,6 +1,8 @@ -+from __future__ import absolute_import - # -*- coding: utf-8 -*- - - from pyth.plugins.python.reader import * -+import six - - def buildDoc(): - return PythonReader.read(( -@@ -9,7 +11,7 @@ - u", hee hee hee! ", T(url=u'http://www.google.com') [ u"This seems to work" ] - ], - L [ -- [unicode(word) for word in ("One", "Two", "Three", "Four")] -+ [six.text_type(word) for word in ("One", "Two", "Three", "Four")] - ], - L [ - u"Introduction", ---- pyth6\examples\writing\rst.py (original) -+++ pyth6\examples\writing\rst.py (refactored) -@@ -1,6 +1,8 @@ -+from __future__ import absolute_import -+from __future__ import print_function - from pyth.plugins.rst.writer import RSTWriter - import pythonDoc - - if __name__ == "__main__": - doc = pythonDoc.buildDoc() -- print RSTWriter.write(doc).getvalue() -+ print(RSTWriter.write(doc).getvalue()) ---- pyth6\examples\writing\rtf15.py (original) -+++ pyth6\examples\writing\rtf15.py (refactored) -@@ -1,6 +1,8 @@ -+from __future__ import absolute_import -+from __future__ import print_function - from pyth.plugins.rtf15.writer import Rtf15Writer - import pythonDoc - - doc = pythonDoc.buildDoc() - --print Rtf15Writer.write(doc).getvalue() -+print(Rtf15Writer.write(doc).getvalue()) ---- pyth6\examples\writing\xhtml.py (original) -+++ pyth6\examples\writing\xhtml.py (refactored) -@@ -1,3 +1,5 @@ -+from __future__ import absolute_import -+from __future__ import print_function - from pyth.plugins.xhtml.writer import XHTMLWriter - import pythonDoc - -@@ -17,4 +19,4 @@ - - if __name__ == "__main__": - doc = pythonDoc.buildDoc() -- print docTemplate % XHTMLWriter.write(doc, pretty=True).getvalue() -+ print(docTemplate % XHTMLWriter.write(doc, pretty=True).getvalue()) ---- pyth6\pyth\__init__.py (original) -+++ pyth6\pyth\__init__.py (refactored) -@@ -1,6 +1,7 @@ - """ - Pyth -- Python text markup and conversion - """ -+from __future__ import absolute_import - - import os.path - ---- pyth6\pyth\document.py (original) -+++ pyth6\pyth\document.py (refactored) -@@ -1,6 +1,8 @@ - """ - Abstract document representation - """ -+from __future__ import absolute_import -+import six - - class _PythBase(object): - -@@ -8,7 +10,7 @@ - self.properties = {} - self.content = [] - -- for (k,v) in properties.iteritems(): -+ for (k,v) in six.iteritems(properties): - self[k] = v - - for item in content: -@@ -70,7 +72,7 @@ - """ - - validProperties = ('bold', 'italic', 'underline', 'url', 'sub', 'super', 'strike') -- contentType = unicode -+ contentType = six.text_type - - def __repr__(self): - return "Text('%s' %s)" % ("".join("[%s]" % r.encode("utf-8") for r in self.content), self.properties) ---- pyth6\pyth\encodings\symbol.py (original) -+++ pyth6\pyth\encodings\symbol.py (refactored) -@@ -1,8 +1,11 @@ - """ - Maps Symbol typeface to Unicode, extracted from http://en.wikipedia.org/wiki/Symbol_(typeface) - """ -+from __future__ import absolute_import - - import codecs -+import six -+from six.moves import map - - decodeTable = { - 33: 33, 34: 8704, 35: 35, 36: 8707, 37: 37, 38: 38, 39: 8717, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, -@@ -22,7 +25,7 @@ - 235: 9123, 236: 9127, 237: 9128, 238: 9129, 239: 9130, 241: 12297, 242: 8747, 243: 8992, 244: 9134, 245: 8993, 246: 9118, - 247: 9119, 248: 9120, 249: 9124, 250: 9125, 251: 9126, 252: 9131, 253: 9132, 254: 9133} - --encodeTable = dict((v, k) for (k, v) in decodeTable.iteritems()) -+encodeTable = dict((v, k) for (k, v) in six.iteritems(decodeTable)) - - ERROR_STRING = "Ordinal not in range (255)" - ---- pyth6\pyth\plugins\latex\writer.py (original) -+++ pyth6\pyth\plugins\latex\writer.py (refactored) -@@ -4,6 +4,7 @@ - For the moment we generate the latex document from the - reStructuredText writer output. - """ -+from __future__ import absolute_import - - from cStringIO import StringIO - import docutils.core ---- pyth6\pyth\plugins\pdf\writer.py (original) -+++ pyth6\pyth\plugins\pdf\writer.py (refactored) -@@ -1,6 +1,7 @@ - """ - Render documents as Reportlab PDF stories - """ -+from __future__ import absolute_import - - from cStringIO import StringIO - import cgi # For escape() -@@ -75,7 +76,7 @@ - content = cgi.escape(u"".join(text.content)) - - tags = [] -- for prop, value in text.properties.items(): -+ for prop, value in list(text.properties.items()): - if prop == "url": - tags.append((u'' % value, u"")) - if prop in _tagNames: ---- pyth6\pyth\plugins\plaintext\writer.py (original) -+++ pyth6\pyth\plugins\plaintext\writer.py (refactored) -@@ -1,6 +1,7 @@ - """ - Render documents as plaintext. - """ -+from __future__ import absolute_import - - from pyth import document - from pyth.format import PythWriter ---- pyth6\pyth\plugins\python\reader.py (original) -+++ pyth6\pyth\plugins\python\reader.py (refactored) -@@ -1,9 +1,11 @@ - """ - Write Pyth documents straight in Python, a la Nevow's Stan. - """ -+from __future__ import absolute_import - - from pyth.format import PythReader - from pyth.document import * -+import six - - - def _convert(content): -@@ -88,27 +90,23 @@ - def __str__(self): - return "%s(%s) [ %s ]" % ( - self.__class__.__name__, -- ", ".join("%s=%s" % (k, repr(v)) for (k,v) in self.properties.iteritems()), -+ ", ".join("%s=%s" % (k, repr(v)) for (k,v) in six.iteritems(self.properties)), - ", ".join(repr(x) for x in self.content)) - - - --class P(_PythonBase): -- __metaclass__ = _MetaPythonBase() -+class P(six.with_metaclass(_MetaPythonBase(), _PythonBase)): - pythType = Paragraph - - --class LE(_PythonBase): -- __metaclass__ = _MetaPythonBase() -+class LE(six.with_metaclass(_MetaPythonBase(), _PythonBase)): - pythType = ListEntry - --class L(_PythonBase): -- __metaclass__ = _MetaPythonBase() -+class L(six.with_metaclass(_MetaPythonBase(), _PythonBase)): - pythType = List - - --class T(_PythonBase): -- __metaclass__ = _MetaPythonBase() -+class T(six.with_metaclass(_MetaPythonBase(), _PythonBase)): - __repr__ = _PythonBase.__str__ - pythType = Text - ---- pyth6\pyth\plugins\rst\writer.py (original) -+++ pyth6\pyth\plugins\rst\writer.py (refactored) -@@ -1,6 +1,7 @@ - """ - Render documents as reStructuredText. - """ -+from __future__ import absolute_import - - from pyth import document - from pyth.format import PythWriter ---- pyth6\pyth\plugins\rtf15\reader.py (original) -+++ pyth6\pyth\plugins\rtf15\reader.py (refactored) -@@ -6,11 +6,13 @@ - This module is potentially compatible with RTF versions up to 1.9.1, - but may not ignore all necessary control groups. - """ -+from __future__ import absolute_import - import string, re, itertools, struct - - from pyth import document - from pyth.format import PythReader - from pyth.encodings import symbol -+import six - - _CONTROLCHARS = set(string.ascii_letters + string.digits + "-*") - _DIGITS = set(string.digits + "-") -@@ -543,7 +545,7 @@ - def handle_control_symbol(self, symbol): - # Ignore ~, -, and _, since they are optional crap. - if symbol in '\\{}': -- self.content.append(unicode(symbol)) -+ self.content.append(six.text_type(symbol)) - - - def handle_u(self, codepoint): ---- pyth6\pyth\plugins\rtf15\writer.py (original) -+++ pyth6\pyth\plugins\rtf15\writer.py (refactored) -@@ -3,11 +3,14 @@ - - http://www.biblioscape.com/rtf15_spec.htm - """ -+from __future__ import absolute_import - - from pyth import document - from pyth.format import PythWriter - - from cStringIO import StringIO -+import six -+from six.moves import range - - - # XXX Todo -- Make these parameters -@@ -97,7 +100,7 @@ - - def _getFontTable(self): - output = [r'{\fonttbl'] -- for i, (fontFamily, fontName) in enumerate(self.fonts.iteritems()): -+ for i, (fontFamily, fontName) in enumerate(six.iteritems(self.fonts)): - output.append(r'{\f%d\f%s %s;}' % (i, fontFamily, fontName)) - if fontFamily == self.fontFamily: - self.fontNumber = i ---- pyth6\pyth\plugins\xhtml\css.py (original) -+++ pyth6\pyth\plugins\xhtml\css.py (refactored) -@@ -3,6 +3,7 @@ - Parse a css document into a python class that can be used to apply the - style to a BeautifulSoup document. - """ -+from __future__ import absolute_import - - import re - ---- pyth6\pyth\plugins\xhtml\reader.py (original) -+++ pyth6\pyth\plugins\xhtml\reader.py (refactored) -@@ -1,12 +1,14 @@ - """ - Read documents from xhtml - """ -+from __future__ import absolute_import - - import BeautifulSoup - - from pyth import document - from pyth.format import PythReader - from pyth.plugins.xhtml.css import CSS -+import six - - - class XHTMLReader(PythReader): -@@ -53,15 +55,15 @@ - # Join the block elements lines into a single long line - for tag in ['p', 'li']: - for node in soup.findAll(tag): -- text = unicode(node) -+ text = six.text_type(node) - lines = [x.strip() for x in text.splitlines()] - text = ' '.join(lines) - node.replaceWith(BeautifulSoup.BeautifulSoup(text)) -- soup = BeautifulSoup.BeautifulSoup(unicode(soup)) -+ soup = BeautifulSoup.BeautifulSoup(six.text_type(soup)) - # replace all
tag by newline character - for node in soup.findAll('br'): - node.replaceWith("\n") -- soup = BeautifulSoup.BeautifulSoup(unicode(soup)) -+ soup = BeautifulSoup.BeautifulSoup(six.text_type(soup)) - return soup - - def is_bold(self, node): ---- pyth6\pyth\plugins\xhtml\writer.py (original) -+++ pyth6\pyth\plugins\xhtml\writer.py (refactored) -@@ -1,6 +1,7 @@ - """ - Render documents as XHTML fragments - """ -+from __future__ import absolute_import - - - -@@ -8,6 +9,7 @@ - from pyth.format import PythWriter - - from cStringIO import StringIO -+import six - - - _tagNames = { -@@ -160,7 +162,7 @@ - def attrString(self): - return " ".join( - '%s="%s"' % (k, quoteAttr(v)) -- for (k, v) in self.attrs.iteritems()) -+ for (k, v) in six.iteritems(self.attrs)) - - - def __repr__(self): ---- pyth6\tests\test_readrtf15.py (original) -+++ pyth6\tests\test_readrtf15.py (refactored) -@@ -1,9 +1,12 @@ -+from __future__ import absolute_import -+from __future__ import print_function - import unittest - import os.path - import glob - - import pyth.document - from pyth.plugins.rtf15.reader import Rtf15Reader -+import six - - class TestRtfMeta(type): - def __new__(meta, name, bases, dict): -@@ -20,13 +23,12 @@ - for path in files: - name = os.path.splitext(os.path.basename(path))[0] - dict["test_%s" % name] = gen_file_test(path, name) -- print path, name -+ print(path, name) - - return type.__new__(meta, name, bases, dict) - - --class TestRtfFile(unittest.TestCase): -- __metaclass__ = TestRtfMeta -+class TestRtfFile(six.with_metaclass(TestRtfMeta, unittest.TestCase)): - pass - - ---- pyth6\tests\test_readxhtml.py (original) -+++ pyth6\tests\test_readxhtml.py (refactored) -@@ -2,6 +2,7 @@ - """ - Unit tests of the xhtml reader. - """ -+from __future__ import absolute_import - - import unittest - ---- pyth6\tests\test_writelatex.py (original) -+++ pyth6\tests\test_writelatex.py (refactored) -@@ -1,6 +1,7 @@ - """ - unit tests of the latex writer - """ -+from __future__ import absolute_import - - import unittest - import subprocess ---- pyth6\tests\test_writepdf.py (original) -+++ pyth6\tests\test_writepdf.py (refactored) -@@ -1,6 +1,8 @@ - """ - unit tests of the pdf writer - """ -+from __future__ import absolute_import -+from __future__ import print_function - - import unittest - import subprocess -@@ -35,7 +37,7 @@ - try: - proc = subprocess.Popen(command, stdout=subprocess.PIPE) - except OSError: -- print "Make sure that pdftohtml is installed" -+ print("Make sure that pdftohtml is installed") - raise - ret = proc.communicate()[0] - return ret -@@ -87,7 +89,7 @@ - def test_rst(self): - doc = PythonReader.read(P[u"the-text"]) - pdf = PDFWriter.write(doc).getvalue() -- print pdf -+ print(pdf) - html = self.pdf_to_html(pdf) - assert "the-text" in html, html - diff --git a/modernize_output_strippeddown.txt b/modernize_output_strippeddown.txt deleted file mode 100644 index 7591189..0000000 --- a/modernize_output_strippeddown.txt +++ /dev/null @@ -1,93 +0,0 @@ -This is the output of - python-modernize -w pyth6 >pyth6/modernize_output.txt -minus all blocks containing only the following: -- 'from __future__ import' additions -- 'import six' additions -- print statements rewritten into print function calls -- mentions of six.iteritems -- mentions of six.text_type - ---- pyth6\pyth\encodings\symbol.py (original) -+++ pyth6\pyth\encodings\symbol.py (refactored) -@@ -1,8 +1,11 @@ - """ - Maps Symbol typeface to Unicode, extracted from http://en.wikipedia.org/wiki/Symbol_(typeface) - """ -+from __future__ import absolute_import - - import codecs -+import six -+from six.moves import map - - decodeTable = { - 33: 33, 34: 8704, 35: 35, 36: 8707, 37: 37, 38: 38, 39: 8717, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, ---- pyth6\pyth\plugins\python\reader.py (original) -+++ pyth6\pyth\plugins\python\reader.py (refactored) -@@ -88,27 +90,23 @@ - def __str__(self): - return "%s(%s) [ %s ]" % ( - self.__class__.__name__, -- ", ".join("%s=%s" % (k, repr(v)) for (k,v) in self.properties.iteritems()), -+ ", ".join("%s=%s" % (k, repr(v)) for (k,v) in six.iteritems(self.properties)), - ", ".join(repr(x) for x in self.content)) - - - --class P(_PythonBase): -- __metaclass__ = _MetaPythonBase() -+class P(six.with_metaclass(_MetaPythonBase(), _PythonBase)): - pythType = Paragraph - - --class LE(_PythonBase): -- __metaclass__ = _MetaPythonBase() -+class LE(six.with_metaclass(_MetaPythonBase(), _PythonBase)): - pythType = ListEntry - --class L(_PythonBase): -- __metaclass__ = _MetaPythonBase() -+class L(six.with_metaclass(_MetaPythonBase(), _PythonBase)): - pythType = List - - --class T(_PythonBase): -- __metaclass__ = _MetaPythonBase() -+class T(six.with_metaclass(_MetaPythonBase(), _PythonBase)): - __repr__ = _PythonBase.__str__ - pythType = Text - ---- pyth6\pyth\plugins\rtf15\writer.py (original) -+++ pyth6\pyth\plugins\rtf15\writer.py (refactored) -@@ -3,11 +3,14 @@ - - http://www.biblioscape.com/rtf15_spec.htm - """ -+from __future__ import absolute_import - - from pyth import document - from pyth.format import PythWriter - - from cStringIO import StringIO -+import six -+from six.moves import range - - - # XXX Todo -- Make these parameters ---- pyth6\tests\test_readrtf15.py (original) -+++ pyth6\tests\test_readrtf15.py (refactored) -@@ -20,13 +23,12 @@ - for path in files: - name = os.path.splitext(os.path.basename(path))[0] - dict["test_%s" % name] = gen_file_test(path, name) -- print path, name -+ print(path, name) - - return type.__new__(meta, name, bases, dict) - - --class TestRtfFile(unittest.TestCase): -- __metaclass__ = TestRtfMeta -+class TestRtfFile(six.with_metaclass(TestRtfMeta, unittest.TestCase)): - pass - - diff --git a/py3migration/STATUS.txt b/py3migration/STATUS.txt index cc6337e..f05146c 100644 --- a/py3migration/STATUS.txt +++ b/py3migration/STATUS.txt @@ -14,19 +14,26 @@ The former in particular was tricky because most strings have to be handled as bytestrings -- but not all of them. See http://pythonhosted.org/six/ -These two now appear to work for ASCII and 8-bit non-ASCII characters in the RTF file, -at least for a simple RTF file. -Complex files and true Unicode remains to be seen. +These two now appear to work correctly for simple RTF files (without +images, tables, headers etc). +Complex files remain to be tested. -TO DO: - -Establish a set of system-level test cases, +I have established a set of system-level test cases, with various input files with the relevant RTF features (paragraphs, line breaks, page breaks, various characters, fonts, bold, italics, underline, hyperlink) and coming from MS Word, Wordpad, OpenOffice. +They are handled correctly (as per comparison with how +MS Word 2013 shows them) with one exception. + +TO DO: + +- For tests/rtfs/zh-cn, the conversion produces some additional +text that is not shown in MS Word 2013. +The RTF is very complicated, so I am not sure whether this is +a defect or maybe the RTF is incorrect (but even then...). -Introduce proper handling of itemized lists (well, that is a +- Introduce proper handling of itemized lists (well, that is a new feature actually). -Debug the other plugins. \ No newline at end of file +- Debug the other plugins. \ No newline at end of file From 1cd7d46d48c5956d39c9debc7c2fccecdb26714b Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Sat, 18 Jul 2015 20:38:51 +0200 Subject: [PATCH 08/20] encodings/symbol.py: py3-migrated and improved - performed changes needed to run under Python 3 - fixed one mistake in decodeTable - added blank to the codes list - improved the error message - added two more test cases: - msword-symbol.rtf - wordpad-symbol.rtf - neither of them works correctly, see 'Limitations' section in top-level README - therefore, the corresponding 'correct' outputs are empty files (to make the automated tests fail) --- .gitattributes | 1 + README | 12 +- pyth/encodings/symbol.py | 12 +- tests/rtf-as-html/msword-symbol.html | 0 tests/rtf-as-html/wordpad-symbol.html | 0 tests/rtfs/msword-symbol.rtf | 271 ++++++++++++++++++++++++++ tests/rtfs/wordpad-symbol.rtf | Bin 0 -> 963 bytes 7 files changed, 289 insertions(+), 7 deletions(-) create mode 100644 .gitattributes create mode 100644 tests/rtf-as-html/msword-symbol.html create mode 100644 tests/rtf-as-html/wordpad-symbol.html create mode 100644 tests/rtfs/msword-symbol.rtf create mode 100644 tests/rtfs/wordpad-symbol.rtf diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c9d44ad --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.rtf eol=crlf diff --git a/README b/README index ac003a0..299966e 100644 --- a/README +++ b/README @@ -74,7 +74,15 @@ either fix it or stick to pyth version 0.6.0.) Limitations =========== -pyth.plugins.rtf15.reader: bulleted or enumerated items will be returned -as plain paragraphs (no indentation, no bullets). +pyth.plugins.rtf15.reader: +- bulleted or enumerated items will be returned + as plain paragraphs (no indentation, no bullets). +- cannot cope with Symbol font correctly: + - from MS Word: lower-coderange characters (greek mostly) work + - from MS Word: higher-coderange characters are missing, because + Word encodes them in a horribly complicated manner not supported + by pyth currently + - from Wordpad: lower- and higher-coderange characters come out in + the wrong encoding (ANSI, I think) Other: (to be documented) diff --git a/pyth/encodings/symbol.py b/pyth/encodings/symbol.py index 5d3dfe2..2dbe1a3 100644 --- a/pyth/encodings/symbol.py +++ b/pyth/encodings/symbol.py @@ -8,12 +8,13 @@ from six.moves import map decodeTable = { + 32: 32, 33: 33, 34: 8704, 35: 35, 36: 8707, 37: 37, 38: 38, 39: 8717, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, 47: 47, 48: 48, 49: 49, 50: 50, 51: 51, 52: 52, 53: 53, 54: 54, 55: 55, 56: 56, 57: 57, 58: 58, 59: 59, 60: 60, 61: 61, 62: 62, 63: 63, 64: 8773, 65: 913, 66: 914, 67: 935, 68: 916, 69: 917, 70: 934, 71: 915, 72: 919, 73: 921, 74: 977, 75: 922, 76: 923, 77: 924, 78: 925, 79: 927, 80: 928, 81: 920, 82: 929, 83: 931, 84: 932, 85: 933, 86: 962, 87: 937, 88: 926, 89: 936, 90: 918, 91: 91, 92: 8756, 93: 93, 94: 8869, 95: 95, 96: 63717, 97: 945, 98: 946, 99: 967, 100: 948, - 101: 949, 102: 966, 103: 947, 104: 951, 105: 953, 106: 981, 107: 954, 108: 955, 109: 956, 110: 957, 111: 959, 112: 960, + 101: 949, 102: 981, 103: 947, 104: 951, 105: 953, 106: 966, 107: 954, 108: 955, 109: 956, 110: 957, 111: 959, 112: 960, 113: 952, 114: 961, 115: 963, 116: 964, 117: 965, 118: 982, 119: 969, 120: 958, 121: 968, 122: 950, 123: 123, 124: 124, 125: 125, 126: 126, 160: 8364, 161: 978, 162: 697, 163: 8804, 164: 8260, 165: 8734, 166: 402, 167: 9827, 168: 9830, 169: 9829, 170: 9824, 171: 8596, 172: 8592, 173: 8593, 174: 8594, 175: 8595, 176: 176, 177: 177, 178: 698, 179: 8805, @@ -27,19 +28,20 @@ encodeTable = dict((v, k) for (k, v) in six.iteritems(decodeTable)) -ERROR_STRING = "Ordinal not in range (255)" +ERROR_STRING = "Ordinal not in known range 32-254" def symbol_decode(input, errors='strict'): chars = [] - for (i, c) in enumerate(input): + #for (i, c) in enumerate(input): + for i in range(len(input)): try: - chars.append(decodeTable[ord(c)]) + chars.append(decodeTable[six.indexbytes(input, i)]) except KeyError: if errors == 'replace': chars.append(ord(u'?')) else: raise UnicodeDecodeError("symbol", input, i, i+1, ERROR_STRING) - return (u"".join(map(unichr, chars)), len(input)) + return (u"".join(map(six.unichr, chars)), len(input)) def symbol_encode(input, errors='strict'): diff --git a/tests/rtf-as-html/msword-symbol.html b/tests/rtf-as-html/msword-symbol.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/wordpad-symbol.html b/tests/rtf-as-html/wordpad-symbol.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtfs/msword-symbol.rtf b/tests/rtfs/msword-symbol.rtf new file mode 100644 index 0000000..1089994 --- /dev/null +++ b/tests/rtfs/msword-symbol.rtf @@ -0,0 +1,271 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;} +{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f299\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f300\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f302\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f303\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f304\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f305\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f306\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f307\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f669\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f670\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f672\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f673\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f676\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f677\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} +{\*\rsidtbl \rsid1598277\rsid9521046\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz}{\operator Prechelt, Lutz} +{\creatim\yr2015\mo7\dy18\hr19\min7}{\revtim\yr2015\mo7\dy18\hr19\min17}{\version1}{\edmins0}{\nofpages1}{\nofwords47}{\nofchars271}{\*\company FU Berlin, FBs IMP}{\nofcharsws317}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/ +2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot9521046\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 Symbol font a-z: }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'61\'62 +\'63\'64\'65\'66\'67\'68\'69\'6a\'6b\'6c\'6d\'6e\'6f\'70\'71\'72\'73\'74\'75\'76\'77\'78\'79\'7a\line }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 Symbol font }{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1031\langfe1033\langnp1031\insrsid9521046 A-Z}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 : }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'41\'42\'43\'44\'45\'46\'47\'48\'49 +\'4a\'4b\'4c\'4d\'4e\'4f\'50\'51\'52\'53\'54\'55\'56\'57\'58\'59\'5a\line }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 Ditto bold italics bolditalics: }{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\b\f3\lang1031\langfe1033\langnp1031\insrsid9521046\charrsid9521046 \'41\'42\'43\'44\'45\'46}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'20}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\i\f3\lang1031\langfe1033\langnp1031\insrsid9521046\charrsid9521046 \'47\'48\'49\'4a\'4b\'4c}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'20}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\b\i\f3\lang1031\langfe1033\langnp1031\insrsid9521046\charrsid9521046 \'4d\'4e\'4f\'50\'51\'52}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\i\f3\lang1031\langfe1033\langnp1031\insrsid9521046\charrsid9521046 \'20}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\b\i\f3\lang1031\langfe1033\langnp1031\insrsid9521046\charrsid9521046 \'53\'54\'55\'56\'57\'58\'59\'5a}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 Symbol font }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 Shift 1-9}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1031\langfe1033\langnp1031\insrsid9521046 : }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'21\'22\'a7\'24\'25\'26\'2f\'28\'29\'3d\'3f\'2c\'2e\'2d\'3b\'3a\'5f\'2b\'2a\'23\'27\'7b\'7d\'5b\'5d\line }{\rtlch\fcs1 +\af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 Symbol font}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid9521046 higher codes: }{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 161 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 162 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 163 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 164 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'20}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 165 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 166 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 167 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 168 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 169 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 170 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 171 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 172 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 173 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 174 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 175 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 176 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 177 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 178 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 179 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 180 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 181 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 182 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'20}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 185 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 186 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 187 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 188 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 189 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 190 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 191 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 192 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 193 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 194 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 195 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 196 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 198 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 199 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 200 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 201 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 202 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'20}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 203 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 204 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 205 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 206 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 207 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 208 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 209 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 211 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 213 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 214 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 215 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 216 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 217 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 218 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 219 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 220 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 221 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'20}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 222 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 223 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 224 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 225 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 226 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 227 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 228 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 229 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 230 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 231 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 233 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 234 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 235 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 236 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 237 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 238 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 239 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 \'20}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 241 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 243 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 244 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 245 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 246 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 247 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 248 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 249 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 250 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 251 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 252 \\f "Symbol" + \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 253 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\f3\lang1031\langfe1033\langnp1031\insrsid9521046 {\field{\*\fldinst SYMBOL 254 \\f "Symbol" \\s 11}{\fldrslt\f3\fs22}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f3\lang1031\langfe1033\langnp1031\insrsid656671\charrsid9521046 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b043 +afaa7dc1d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/wordpad-symbol.rtf b/tests/rtfs/wordpad-symbol.rtf new file mode 100644 index 0000000000000000000000000000000000000000..33d1f7bf8d0cf25c951969032078ca35e56311c3 GIT binary patch literal 963 zcmZwGX>Zd&5C&jASL%OQPD3HVc5~2H2$hzba)q-jLVL_4OC3A)ZW`Js|DAW^G!h6Y zW7&$IcV>5!xvT?cQkC8~#@@_6IF{klbsB)O4+u2-lRfeDo+@zBI%y}<)QlI9M z%}CXrLMjea;dJfx7I-O>TvuaN{_|2U2Ipg470Y*EOIQ3aV6nL|ms@g3CDkfawK(z| z$hsi9?M~Lt@#$vi-a?)^nw_}PcI4D#a-wQ0y~=v2^hI2UFUHd%V3s&@e%V~awFuR^ z*cBL5C~dIP;mG|uDaK_rIjwz|p3Q!rU&z9h1iTu$ar>>~#_c~oIDGQ-+4C1KU%fth z^Y-2Q4}*`NK7aZ8?Rf1DT?m!HdaZB)yJP(FVRerf9S3NFq)vs9PBeki#V3vDCR(hs zb&Bueim=+vjb=NW$p$0GL1e9+X1=S}WTN^vZr-|o`_98h_u8$!-Jf^2t|xLX7vFz0 zGp=?lPnSE^@2z(%9(-T&-&;0v!x7cORF*t?T>d!XX(uXHj@m|b1TI}v57kFKK<%Iu zN}~+Qq6oz@!I~0{0F3~R0Np{sYk1v9mO}Mpp)8Kn7$$24reZd%5NDSei%tO|JX_A8s`| literal 0 HcmV?d00001 From 6f0a3a805121e4b5e1d234642c39112bc1469770 Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Mon, 20 Jul 2015 11:37:40 +0200 Subject: [PATCH 09/20] completely reorganized the RTF-to-XHTML-based tests I have thrown out the complex test files (except the interesting zh-cn.rtf) as well as the overly simple or redundant test files and have introduced a set of simple tests (not covering too much functionality at once) and a regular naming of the test files. The file names in tests/rtfs now consist of two parts: program-testcontent.rtf where program is one of - msword: Microsoft Word from Microsoft Office 2013 on Windows 7 - librewriter: Writer from LibreOffice 4.4 on Windows 7 - wordpad: Microsoft Wordpad on Windows 7 and testcontent is a name describing roughly what functionality is tested in the file. The corresponding found-to-be-correct test outputs are in tests/rtf-as-html/*.html where these outputs have been truncated to zero bytes for test cases with errors in their output. --- tests/rtf-as-html/README.txt | 4 + tests/rtf-as-html/ansi.html | 10 - tests/rtf-as-html/librewriter-8bit.html | 14 + .../{a.html => librewriter-bold-italics.html} | 2 +- .../{cjk.html => librewriter-cjk.html} | 0 tests/rtf-as-html/librewriter-hyperlink.html | 0 tests/rtf-as-html/librewriter-lists.html | 0 .../rtf-as-html/librewriter-quotes-fonts.html | 10 + tests/rtf-as-html/msword-8bit.html | 14 + .../{minimal.html => msword-cjk.html} | 4 +- tests/rtf-as-html/msword-hyperlink.html | 0 tests/rtf-as-html/msword-lists.html | 0 tests/rtf-as-html/msword-quotes-fonts.html | 4 +- tests/rtf-as-html/sample.html | 34 --- tests/rtf-as-html/wordpad-8bit.html | 0 tests/rtf-as-html/wordpad-cjk.html | 0 tests/rtf-as-html/wordpad-lists.html | 0 tests/rtf-as-html/wordpad-quotes-fonts.html | 10 + tests/rtf-as-html/zh-cn.html | 22 -- tests/rtfs/ansi.rtf | 19 -- tests/rtfs/cjk.rtf | 197 -------------- tests/rtfs/librewriter-8bit.rtf | 41 +++ tests/rtfs/librewriter-bold-italics.rtf | 39 +++ tests/rtfs/librewriter-cjk.rtf | 33 +++ tests/rtfs/librewriter-hyperlink.rtf | 36 +++ tests/rtfs/librewriter-lists.rtf | 75 ++++++ tests/rtfs/librewriter-quotes-fonts.rtf | 58 +++++ tests/rtfs/minimal.rtf | 4 - tests/rtfs/msword-8bit.rtf | 211 +++++++++++++++ tests/rtfs/msword-cjk.rtf | 213 +++++++++++++++ tests/rtfs/msword-hyperlink.rtf | 208 +++++++++++++++ tests/rtfs/msword-lists.rtf | 242 ++++++++++++++++++ tests/rtfs/msword-quotes-fonts.rtf | 48 ++-- tests/rtfs/sample.rtf | 54 ---- tests/rtfs/wordpad-8bit.rtf | Bin 0 -> 501 bytes tests/rtfs/{a.rtf => wordpad-cjk.rtf} | Bin 235 -> 228 bytes tests/rtfs/wordpad-lists.rtf | Bin 0 -> 1211 bytes tests/rtfs/wordpad-quotes-fonts.rtf | Bin 0 -> 689 bytes tests/rtfs/~$word-8bit.rtf | Bin 0 -> 162 bytes 39 files changed, 1242 insertions(+), 364 deletions(-) delete mode 100644 tests/rtf-as-html/ansi.html create mode 100644 tests/rtf-as-html/librewriter-8bit.html rename tests/rtf-as-html/{a.html => librewriter-bold-italics.html} (50%) rename tests/rtf-as-html/{cjk.html => librewriter-cjk.html} (100%) create mode 100644 tests/rtf-as-html/librewriter-hyperlink.html create mode 100644 tests/rtf-as-html/librewriter-lists.html create mode 100644 tests/rtf-as-html/librewriter-quotes-fonts.html create mode 100644 tests/rtf-as-html/msword-8bit.html rename tests/rtf-as-html/{minimal.html => msword-cjk.html} (62%) create mode 100644 tests/rtf-as-html/msword-hyperlink.html create mode 100644 tests/rtf-as-html/msword-lists.html delete mode 100644 tests/rtf-as-html/sample.html create mode 100644 tests/rtf-as-html/wordpad-8bit.html create mode 100644 tests/rtf-as-html/wordpad-cjk.html create mode 100644 tests/rtf-as-html/wordpad-lists.html create mode 100644 tests/rtf-as-html/wordpad-quotes-fonts.html delete mode 100644 tests/rtf-as-html/zh-cn.html delete mode 100644 tests/rtfs/ansi.rtf delete mode 100644 tests/rtfs/cjk.rtf create mode 100644 tests/rtfs/librewriter-8bit.rtf create mode 100644 tests/rtfs/librewriter-bold-italics.rtf create mode 100644 tests/rtfs/librewriter-cjk.rtf create mode 100644 tests/rtfs/librewriter-hyperlink.rtf create mode 100644 tests/rtfs/librewriter-lists.rtf create mode 100644 tests/rtfs/librewriter-quotes-fonts.rtf delete mode 100644 tests/rtfs/minimal.rtf create mode 100644 tests/rtfs/msword-8bit.rtf create mode 100644 tests/rtfs/msword-cjk.rtf create mode 100644 tests/rtfs/msword-hyperlink.rtf create mode 100644 tests/rtfs/msword-lists.rtf delete mode 100644 tests/rtfs/sample.rtf create mode 100644 tests/rtfs/wordpad-8bit.rtf rename tests/rtfs/{a.rtf => wordpad-cjk.rtf} (54%) create mode 100644 tests/rtfs/wordpad-lists.rtf create mode 100644 tests/rtfs/wordpad-quotes-fonts.rtf create mode 100644 tests/rtfs/~$word-8bit.rtf diff --git a/tests/rtf-as-html/README.txt b/tests/rtf-as-html/README.txt index 99b58a0..99cb416 100644 --- a/tests/rtf-as-html/README.txt +++ b/tests/rtf-as-html/README.txt @@ -16,5 +16,9 @@ with respect to the current implementation expectation. Test runs will create corresponding output and compare the file contents. +For tests that fail (i.e. where the visual inspection finds +relevant differences), the file deposited here is empty. + See the top-level README for current limitations. +Anything documented there is no longer considered a failure. diff --git a/tests/rtf-as-html/ansi.html b/tests/rtf-as-html/ansi.html deleted file mode 100644 index 6065dfb..0000000 --- a/tests/rtf-as-html/ansi.html +++ /dev/null @@ -1,10 +0,0 @@ - - -
-

Apostrophe: `

- -

Quotation mark: ' “

- -

` ~ ! @ # $ % ^ & * ( ) - _ = + [ { ] } \ | ; : ' “ , < . > / ?

-
- \ No newline at end of file diff --git a/tests/rtf-as-html/librewriter-8bit.html b/tests/rtf-as-html/librewriter-8bit.html new file mode 100644 index 0000000..c6bf449 --- /dev/null +++ b/tests/rtf-as-html/librewriter-8bit.html @@ -0,0 +1,14 @@ + + +
+

ASCII: ABCDEFG abcdefg ?!"$%&/{}[]#+*~

+ +

Latin 1+9 (western european): ÁÂÃÄÅÆ úûüœß ¿ €

+ +

Latin 2 (middle european): Ð Ă

+ +

Latin 5 (Cyrillic): Ƃ

+ +

Latin 7 (Greek): ΣΩ δεπτ

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/a.html b/tests/rtf-as-html/librewriter-bold-italics.html similarity index 50% rename from tests/rtf-as-html/a.html rename to tests/rtf-as-html/librewriter-bold-italics.html index 9453b94..0a73e16 100644 --- a/tests/rtf-as-html/a.html +++ b/tests/rtf-as-html/librewriter-bold-italics.html @@ -1,6 +1,6 @@
-

nörmal bold italics bolditalics

+

Normal bold italics bolditalics.

\ No newline at end of file diff --git a/tests/rtf-as-html/cjk.html b/tests/rtf-as-html/librewriter-cjk.html similarity index 100% rename from tests/rtf-as-html/cjk.html rename to tests/rtf-as-html/librewriter-cjk.html diff --git a/tests/rtf-as-html/librewriter-hyperlink.html b/tests/rtf-as-html/librewriter-hyperlink.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/librewriter-lists.html b/tests/rtf-as-html/librewriter-lists.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/librewriter-quotes-fonts.html b/tests/rtf-as-html/librewriter-quotes-fonts.html new file mode 100644 index 0000000..eadc1ba --- /dev/null +++ b/tests/rtf-as-html/librewriter-quotes-fonts.html @@ -0,0 +1,10 @@ + + +
+

Hello, world! Liberation Serif 12

+ +

Normal, bold, italics, bolditalics Liberation Serif 11.

+ +

"Straight quotes Arial 12", 'single quotes DejaVu Sans 12', »french quotes DevaVu Sans Mono 13«, “unicode double quotes Times New Roman 14”, „german quotes DejaVu Serif 16‟.

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/msword-8bit.html b/tests/rtf-as-html/msword-8bit.html new file mode 100644 index 0000000..c6bf449 --- /dev/null +++ b/tests/rtf-as-html/msword-8bit.html @@ -0,0 +1,14 @@ + + +
+

ASCII: ABCDEFG abcdefg ?!"$%&/{}[]#+*~

+ +

Latin 1+9 (western european): ÁÂÃÄÅÆ úûüœß ¿ €

+ +

Latin 2 (middle european): Ð Ă

+ +

Latin 5 (Cyrillic): Ƃ

+ +

Latin 7 (Greek): ΣΩ δεπτ

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/minimal.html b/tests/rtf-as-html/msword-cjk.html similarity index 62% rename from tests/rtf-as-html/minimal.html rename to tests/rtf-as-html/msword-cjk.html index aa9d89b..6596888 100644 --- a/tests/rtf-as-html/minimal.html +++ b/tests/rtf-as-html/msword-cjk.html @@ -1,8 +1,6 @@
-

This is

- -

some bold text.

+

協議

\ No newline at end of file diff --git a/tests/rtf-as-html/msword-hyperlink.html b/tests/rtf-as-html/msword-hyperlink.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/msword-lists.html b/tests/rtf-as-html/msword-lists.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/msword-quotes-fonts.html b/tests/rtf-as-html/msword-quotes-fonts.html index ebea131..9025e0c 100644 --- a/tests/rtf-as-html/msword-quotes-fonts.html +++ b/tests/rtf-as-html/msword-quotes-fonts.html @@ -3,6 +3,8 @@

Hello, world!

-

"Straight quotes", »french quotes«, “unicode double quotes”, „german quotes‟.

+

Normal, bold, italics, bolditalics Calibri

+ +

"Straight quotes Arial 12", »french quotes Courier New 13«, “unicode double quotes Times New Roman 14”, „german quotes Verdana 16‟.

\ No newline at end of file diff --git a/tests/rtf-as-html/sample.html b/tests/rtf-as-html/sample.html deleted file mode 100644 index b012514..0000000 --- a/tests/rtf-as-html/sample.html +++ /dev/null @@ -1,34 +0,0 @@ - - -
-

Louis J. Ptáček, M.D.

- -

Italics, accented letters, em dashes: Ptáček collaborated with Jones. what is called familial advanced sleep-phase syndrome (FASPS)—or very early risers—and has found almost 90 families. Novel players in presynaptic vesicle trafficking. To identify mutations in novel genes as well as genes that have previously been implicated in SV trafficking, we used the eyeless-FLP/FRT system to carry out four chemical mutagenesis screens. with apparent normal eye morphology (300,000 flies) for their ability to phototax (retained 10,000).

- -

Lots of Greek letters and symbols:
The combined incidence of α and κ and β and φ and ≥ and détected µm and ± and á and ã and ü and ‰ and — and © and … and δ and λ and κ and de novo rearrangements that are mediated by segmental duplications is estimated at 1/1,000 live births. ← arrows → fraction ⅝ symbol ≥ This includes 3 percent of ~130 regions of the human genome that we believe show a predilection–to–segmental–aneusomy.

- -

These are accented letters: ϋ ό ë é è å ě

- -

Hyperlinks: In collaboration with the laboratories of (HHMI, Carnegie Institution of Washington), Roger Hoskins (Lawrence Berkeley National Laboratory), and via ΦC31-mediated integration ().

- -

Pamela J. Björkman, Ph.D.

- -

Subscripts and superscripts: the polymeric immunoglobulin receptor (CO2), which CO2 transports polymeric antibodies into secretions, and gE-gI, a viral Fc receptor for IgG. H2O is not H2O or V0.

- -

Bulleted list:

- -

In Vitro Reconstitution of Ca2+-Triggered Synaptic Vesicle Fusion

- -

CNTs bind with high specificity

- -

at neuromuscular junctions

- -

The molecular details of the toxin-cell

- -

recognition has been elusive

- -

determined at 2.15-Å resolution

- -

The 6.7-Å map of the Escherichia coli is actually visible as "bumps." Both α-helices and β-sheets

-
- \ No newline at end of file diff --git a/tests/rtf-as-html/wordpad-8bit.html b/tests/rtf-as-html/wordpad-8bit.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/wordpad-cjk.html b/tests/rtf-as-html/wordpad-cjk.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/wordpad-lists.html b/tests/rtf-as-html/wordpad-lists.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/wordpad-quotes-fonts.html b/tests/rtf-as-html/wordpad-quotes-fonts.html new file mode 100644 index 0000000..16adaf5 --- /dev/null +++ b/tests/rtf-as-html/wordpad-quotes-fonts.html @@ -0,0 +1,10 @@ + + +
+

Hello, world! Calibri 10

+ +

Normal, bold, italics, bolditalics Calibri 11

+ +

"Straight quotes Arial 12", 'single quotes Tahoma 11', »french quotes Courier New 13«, “unicode double quotes Times New Roman 14”, „german quotes Verdana 16‟.

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/zh-cn.html b/tests/rtf-as-html/zh-cn.html deleted file mode 100644 index 2e4f0d3..0000000 --- a/tests/rtf-as-html/zh-cn.html +++ /dev/null @@ -1,22 +0,0 @@ - - -
-

{0>PowerDirector needs to install Content Pack Premium before loading your project from PowerDirector Mobile.<}0{>威力导演需要安装内容套件进阶版才能从手机版威力导演加载您的项目。<0}

- -

Enu: Content Pack Premium

- -

Deu: Premium Inhaltspaket

- -

Esp: Paquete de Contenido Premium

- -

Fra: Pack de Contenu Premium

- -

Ita: Pacchetto Contenuti Premium

- -

Chs: 内容套件进阶版

- -

Cht: 內容套件進階版

- -

Kor: 프리미엄 구성팩

-
- \ No newline at end of file diff --git a/tests/rtfs/ansi.rtf b/tests/rtfs/ansi.rtf deleted file mode 100644 index ac83449..0000000 --- a/tests/rtfs/ansi.rtf +++ /dev/null @@ -1,19 +0,0 @@ -{\rtf1\ansi\deff0\adeflang1025 -{\fonttbl{\f0\froman\fprq2\fcharset128 Times New Roman;}{\f1\froman\fprq2\fcharset128 Times New Roman;}{\f2\fswiss\fprq2\fcharset128 Arial;}{\f3\fnil\fprq2\fcharset128 Arial Unicode MS;}} -{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} -{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9\snext1 Normal;} -{\s2\sb240\sa120\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs28\lang1081\ltrch\dbch\langfe2052\hich\f2\fs28\lang9\loch\f2\fs28\lang9\sbasedon1\snext3 Heading;} -{\s3\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9\sbasedon1\snext3 Body Text;} -{\s4\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9\sbasedon3\snext4 List;} -{\s5\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ai\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\i\loch\f0\fs24\lang9\i\sbasedon1\snext5 caption;} -{\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9\sbasedon1\snext6 Index;} -} -{\info{\author Boris Shemigon}{\creatim\yr2011\mo6\dy30\hr11\min11}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern3300}}\deftab709 -{\*\pgdsctbl -{\pgdsc0\pgdscuse195\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}} -\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc -\pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9 {\rtlch \ltrch\loch\f0\fs24\lang9\i0\b0 Apostrophe: `} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9 {\rtlch \ltrch\loch\f0\fs24\lang9\i0\b0 Quotation mark: ' \'81\'67} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9 -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9 {\rtlch \ltrch\loch\f0\fs24\lang9\i0\b0 ` ~ ! @ # $ % ^ & * ( ) - _ = + [ \{ ] \} \\ | ; : ' \'81\'67 , < . > / ?} -\par } \ No newline at end of file diff --git a/tests/rtfs/cjk.rtf b/tests/rtfs/cjk.rtf deleted file mode 100644 index fc82bf9..0000000 --- a/tests/rtfs/cjk.rtf +++ /dev/null @@ -1,197 +0,0 @@ -{\rtf1\adeflang1025\ansi\ansicpg1251\uc1\adeff0\deff0\stshfdbch0\stshfloch39\stshfhich39\stshfbi39\deflang1049\deflangfe1049\themelang1049\themelangfe0\themelangcs1025{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} -{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ????????\'a7\'de\'a1\'ec\'a7\'a1?\'a1\'ec\'a7\'c0?\'a7\'de???\'a1\'ec\'a7\'c0?\'a7\'de\'a1\'ec???\'a7\'de\'a1\'ec\'a7\'a1?};} -{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ????????\'a7\'de\'a1\'ec\'a7\'a1?\'a1\'ec\'a7\'c0?\'a7\'de???\'a1\'ec\'a7\'c0?\'a7\'de\'a1\'ec???\'a7\'de\'a1\'ec\'a7\'a1?};} -{\f39\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria{\*\falt Palatino Linotype};}{\f40\fbidi \fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@SimSun{\*\falt @Batang};} -{\f42\fbidi \fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Lucida Grande{\*\falt Courier New};}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} -{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria{\*\falt Palatino Linotype};} -{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} -{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri{\*\falt Century Gothic};} -{\fbiminor\f31507\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} -{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} -{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} -{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} -{\f177\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt ????????\'a7\'de\'a1\'ec\'a7\'a1?\'a1\'ec\'a7\'c0?\'a7\'de???\'a1\'ec\'a7\'c0?\'a7\'de\'a1\'ec???\'a7\'de\'a1\'ec\'a7\'a1?};} -{\f177\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt ????????\'a7\'de\'a1\'ec\'a7\'a1?\'a1\'ec\'a7\'c0?\'a7\'de???\'a1\'ec\'a7\'c0?\'a7\'de\'a1\'ec???\'a7\'de\'a1\'ec\'a7\'a1?};} -{\f435\fbidi \froman\fcharset238\fprq2 Cambria CE{\*\falt Palatino Linotype};}{\f436\fbidi \froman\fcharset204\fprq2 Cambria Cyr{\*\falt Palatino Linotype};}{\f438\fbidi \froman\fcharset161\fprq2 Cambria Greek{\*\falt Palatino Linotype};} -{\f439\fbidi \froman\fcharset162\fprq2 Cambria Tur{\*\falt Palatino Linotype};}{\f442\fbidi \froman\fcharset186\fprq2 Cambria Baltic{\*\falt Palatino Linotype};}{\f443\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese){\*\falt Palatino Linotype};} -{\f447\fbidi \fnil\fcharset0\fprq2 @SimSun Western{\*\falt @Batang};}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE{\*\falt Palatino Linotype};} -{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr{\*\falt Palatino Linotype};}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek{\*\falt Palatino Linotype};} -{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur{\*\falt Palatino Linotype};}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic{\*\falt Palatino Linotype};} -{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese){\*\falt Palatino Linotype};}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE{\*\falt Century Gothic};} -{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr{\*\falt Century Gothic};}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek{\*\falt Century Gothic};} -{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur{\*\falt Century Gothic};}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic{\*\falt Century Gothic};} -{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese){\*\falt Century Gothic};}{\fbiminor\f31578\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\fbiminor\f31579\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;} -{\fbiminor\f31581\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\fbiminor\f31582\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\fbiminor\f31583\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);} -{\fbiminor\f31584\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\fbiminor\f31585\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\fbiminor\f31586\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255; -\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0; -\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f39 }{\*\defpap \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{ -\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \f39\fs24\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive -\sunhideused \spriority1 Default Paragraph Font;}{\* -\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv -\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs20\alang1025 \ltrch\fcs0 \f39\fs20\lang1049\langfe1049\cgrid\langnp1049\langfenp1049 \snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 -\additive \rtlch\fcs1 \af0 \ltrch\fcs0 \fs18 \sbasedon10 \ssemihidden \sunhideused annotation reference;}{\s16\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 -\f39\fs24\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 \sbasedon0 \snext16 \slink17 \ssemihidden \sunhideused annotation text;}{\*\cs17 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \fs24\lang1049\langfe0\langnp1049\langfenp0 -\sbasedon10 \slink16 \slocked \ssemihidden \'d2\'e5\'ea\'f1\'f2 \'ef\'f0\'e8\'ec\'e5\'f7\'e0\'ed\'e8\'ff \'c7\'ed\'e0\'ea;}{\s18\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs20\alang1025 -\ltrch\fcs0 \b\f39\fs20\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 \sbasedon16 \snext16 \slink19 \ssemihidden \sunhideused annotation subject;}{\*\cs19 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \b\fs24\lang1049\langfe0\langnp1049\langfenp0 -\sbasedon17 \slink18 \slocked \ssemihidden \'d2\'e5\'ec\'e0 \'ef\'f0\'e8\'ec\'e5\'f7\'e0\'ed\'e8\'ff \'c7\'ed\'e0\'ea;}{\s20\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs18\alang1025 \ltrch\fcs0 -\f42\fs18\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 \sbasedon0 \snext20 \slink21 \ssemihidden \sunhideused Balloon Text;}{\*\cs21 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \f42\fs18\lang1049\langfe0\langnp1049\langfenp0 -\sbasedon10 \slink20 \slocked \ssemihidden \'d2\'e5\'ea\'f1\'f2 \'e2\'fb\'ed\'ee\'f1\'ea\'e8 \'c7\'ed\'e0\'ea;}{\*\cs22 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 \sbasedon10 \styrsid1315994 Hyperlink;}{ -\s23\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f0\hich\af0\dbch\af13\cgrid\langnp1033\langfenp2052 -\sbasedon0 \snext23 \spriority0 \styrsid1315994 Normal + Justified,After: 6 pt;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid285499\rsid883691\rsid1315994\rsid1448965\rsid1473632\rsid2116145\rsid2236454\rsid2585517\rsid2839812 -\rsid3220691\rsid3344199\rsid3364183\rsid3499786\rsid4606158\rsid5652249\rsid6122415\rsid6895244\rsid7238852\rsid7815021\rsid8149825\rsid8194455\rsid8338592\rsid8916959\rsid9128280\rsid9136317\rsid9986322\rsid10093901\rsid10114966\rsid10508456 -\rsid10647182\rsid10831578\rsid10899364\rsid11293666\rsid11609041\rsid11809353\rsid12598372\rsid12741170\rsid12920528\rsid12938974\rsid12992613\rsid13108349\rsid13195034\rsid13315480\rsid13381510\rsid14357409\rsid15405067\rsid15953389\rsid15996949} -{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac1\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Berney Richert}{\operator Dmitry Zaytsev}{\creatim\yr2014\mo5\dy20\hr13\min26} -{\revtim\yr2015\mo5\dy15\hr10\min52}{\version8}{\edmins11}{\nofpages1}{\nofwords0}{\nofchars2}{\*\company Kaspersky LAB}{\nofcharsws2}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}} -\paperw11906\paperh16838\margl1701\margr850\margt1134\margb1134\gutter0\ltrsect -\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen -\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin450\dgvorigin0\dghshow1\dgvshow1 -\jexpand\viewkind5\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct -\asianbrkrule\rsidroot873741\newtblstyruls\nogrowautofit\viewbksp1\utinl \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0\stylesortmethod0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1 -\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5 -\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang -{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11609041 \rtlch\fcs1 \af0\afs24\alang1025 -\ltrch\fcs0 \f39\fs24\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 {\rtlch\fcs1 \af13\afs20 \ltrch\fcs0 \fs20\lang3076\langfe1028\loch\af13\hich\af13\dbch\af13\langnp3076\langfenp1028\insrsid8338592\charrsid3220691 \loch\af13\hich\af13\dbch\f13 -\uc2\u21332\'85\'66\loch\af13\hich\af13\dbch\f13 \u-29840\'d7\'68}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\lang1049\langfe1028\langfenp1028\insrsid10831578\charrsid12741170 -\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a -9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad -5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 -b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 -0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 -a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f -c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 -0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 -a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 -6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b -4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b -4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100a55e7d2dc7060000d71b0000160000007468656d652f7468656d652f -7468656d65312e786d6cec59cf6e1b4518bf23f10ea3bdb7b113278da33a55ecd80db469a3d82dea71bc1eef4e33bbb39a1927f5ad4a8f482044411ca8045c38 -2020528bb8b4efe03e43a0088ad457e09b99ddf54ebca1491b4105cd21de9dfd7dffffcc37bb172fdd8918da2542521e37bceaf98a8748ecf3018d838677a3d7 -39b7ec21a9703cc08cc7a4e18d89f42eadbefbce45bca242121104f4b15cc10d2f542a59999b933e2c63799e27248667432e22ace05604730381f7806fc4e6e6 -2b95a5b908d3d843318e80ede49bc94f93c79303747d38a43ef15633fe6d06426225f582cf4457732719d1d74ff72707932793479383a777e1fa09fc7e6c6807 -3b554d21c7b2c504dac5ace181e801dfeb913bca430c4b050f1a5ec5fc7973ab17e7f04a4ac4d431b405ba8ef94be95282c1cebc9129827e2eb4daa9d52face7 -fc0d80a9595cbbdd6eb5ab393f03c0be0f965b5d8a3c6b9de56a33e35900d9cb59deadca62a5e6e20bfc176674ae379bcdc57aaa8b656a40f6b236835fae2cd5 -d6e61dbc0159fce20cbed65c6bb5961cbc0159fcd20cbe73a1be5473f10614321aefcca075403b9d947b0e1972b6510a5f06f87225854f51900d79b66911431e -ab93e65e846f73d101024dc8b0a23152e3840cb10f89dec2515f50ac05e215820b4fec922f6796b46c247d4113d5f0de4f3014cd94df8bc7dfbf78fc101dee3f -3adcfff9f0debdc3fd1f2d23876a03c74191eaf9b79ffcf9e02efae3e157cfef7f568e9745fcaf3f7cf8cb934fcb81504e53759e7d7ef0dba383675f7cf4fb77 -f74be06b02f78bf01e8d8844d7c81edae6111866bce26a4efae27414bd10d322c55a1c481c632da5847f5b850efada18b3343a8e1e4de27af0a680765206bc3c -baed28dc0dc548d112c957c2c8016e72ce9a5c947ae18a965570736f1407e5c2c5a888dbc678b74c760bc74e7cdba304fa6a96968ee1ad90386a6e311c2b1c90 -9828a49ff11d424aacbb45a9e3d74dea0b2ef950a15b1435312d75498ff69d6c9a126dd008e2322eb319e2edf866f3266a725666f53ad975915015989528df23 -cc71e3653c52382a63d9c3112b3afc2a56619992ddb1f08bb8b65410e980308eda03226519cd7501f616827e0543072b0dfb261b472e5228ba53c6f32ae6bc88 -5ce73bad10474919b64be3b0887d4fee408a62b4c555197c93bb15a2ef210e383e36dc372971c2fdf26e7083068e4ad304d14f46a22496970977f2b73b66434c -4cab8126eff4ea88c67fd7b81985ce6d259c5de38656f9eccb07257abfa92d7b0d76afb29ad938d2a88fc31d6dcf2d2e06f4cdefceeb78146f112888d92dea6d -737edb9cbdff7c733eae9ecfbe254fbb3034683d8bd8c1db8ce1d189a7f02165acabc68c5c95661097b0170d3ab0a8f998432ac94f69490897bab241a0830b04 -36344870f501556137c4090cf1554f330964ca3a9028e1120e9366b994b7c6c34140d9a3e8a23ea4d84e22b1dae403bbbca097b3b348cec66815980370266841 -3338a9b0850b2953b0ed558455b55227965635aa9926e948cb4dd62e36877870796e1a2ce6de842107c168045e5e82d7045a341c7e302303ed771ba32c2c260a -67192219e2014963a4ed9e8d51d50429cb951943b41d3619f4c1f2255e2b48ab6bb6af21ed24412a8aab1d232e8bdeeb4429cbe0699480dbd1726471b138598c -f61a5e7d717ed1433e4e1ade10cecd7019251075a9e74acc02783fe52b61d3fea5c56caa7c1acd7a66985b0455783562fd3e63b0d3071221d53a96a14d0df328 -4d01166b4956fff94570eb591950d28d4ea6c5c23224c3bfa605f8d10d2d190e89af8ac12eac68dfd9dbb495f29122a21b0ef6509f8dc43686f0eb54057b0654 -c2eb0fd311f40dbcbbd3de368fdce69c165df18d99c1d975cc9210a7ed56976856c9166e1a52ae83b92ba807b695ea6e8c3bbd29a6e4cfc894621affcf4cd1fb -09bc8d5818e808f8f0365960a42ba5e171a1420e5d2809a9df11304898de01d902ef7fe1312415bcd336bf82ecea5f5b739687296b3854aa6d1a2041613f52a1 -20640bda92c9be9730aba67b9765c9524626a30aeacac4aadd27bb84f5740f5cd27bbb87424875d34dd236607047f3cfbd4f2ba81fe821a7586f4e27cbf75e5b -03fff4e4638b198c72fbb0196832ffe72ae6e3c17457b5f4863cdb7b8b86e807d331ab965505082b6c05f5b4ec5f5185536eb5b663cd583cbf982907519cb518 -16f3812881774a48ff83fd8f0a9fd9af237a43edf16de8ad083e6e6866903690d5e7ece0817483b48b7d189ceca24d26cdcaba361d9db4d7b2cdfa8c27dd5cee -11676bcd4e12ef533a3b1fce5c714e2d9ea5b3530f3bbeb66bc7ba1a227bb4446169981d6c4c60cc97b5e2972fdebf0d815e876f0823a6a44926f88e2530ccd0 -5d530750fc56a2215dfd0b0000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c73 -2f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761 -be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f9 -80ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca -5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e7465 -6e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c73 -2f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f -7468656d654d616e616765722e786d6c504b01022d0014000600080000002100a55e7d2dc7060000d71b00001600000000000000000000000000d60200007468 -656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d10900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cc0a00000000} -{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d -617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 -6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 -656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} -{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdpriority59 \lsdlocked0 Table Grid; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdlocked0 No Spacing;\lsdqformat1 \lsdpriority1 \lsdlocked0 Medium Grid 2;\lsdpriority60 \lsdlocked0 Medium Grid 3;\lsdpriority61 \lsdlocked0 Dark List; -\lsdpriority62 \lsdlocked0 Colorful Shading;\lsdpriority63 \lsdlocked0 Colorful List;\lsdpriority64 \lsdlocked0 Colorful Grid;\lsdpriority65 \lsdlocked0 Light Shading Accent 1;\lsdpriority66 \lsdlocked0 Light List Accent 1; -\lsdpriority67 \lsdlocked0 Light Grid Accent 1;\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 1;\lsdpriority71 \lsdlocked0 Revision; -\lsdqformat1 \lsdpriority72 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority73 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority60 \lsdlocked0 Intense Quote;\lsdpriority61 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority62 \lsdlocked0 Medium Grid 1 Accent 1; -\lsdpriority63 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority64 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority65 \lsdlocked0 Dark List Accent 1;\lsdqformat1 \lsdpriority34 \lsdlocked0 Colorful List Accent 1; -\lsdqformat1 \lsdpriority29 \lsdlocked0 Colorful Grid Accent 1;\lsdqformat1 \lsdpriority30 \lsdlocked0 Light Shading Accent 2;\lsdpriority66 \lsdlocked0 Light List Accent 2;\lsdpriority67 \lsdlocked0 Light Grid Accent 2; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 2; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority61 \lsdlocked0 Dark List Accent 2;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 2; -\lsdpriority63 \lsdlocked0 Colorful List Accent 2;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority65 \lsdlocked0 Light Shading Accent 3;\lsdpriority66 \lsdlocked0 Light List Accent 3;\lsdpriority67 \lsdlocked0 Light Grid Accent 3; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 3; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority61 \lsdlocked0 Dark List Accent 3;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 3; -\lsdpriority63 \lsdlocked0 Colorful List Accent 3;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority65 \lsdlocked0 Light Shading Accent 4;\lsdpriority66 \lsdlocked0 Light List Accent 4;\lsdpriority67 \lsdlocked0 Light Grid Accent 4; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 4; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority61 \lsdlocked0 Dark List Accent 4;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 4; -\lsdpriority63 \lsdlocked0 Colorful List Accent 4;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority65 \lsdlocked0 Light Shading Accent 5;\lsdpriority66 \lsdlocked0 Light List Accent 5;\lsdpriority67 \lsdlocked0 Light Grid Accent 5; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 5; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority61 \lsdlocked0 Dark List Accent 5;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 5; -\lsdpriority63 \lsdlocked0 Colorful List Accent 5;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority65 \lsdlocked0 Light Shading Accent 6;\lsdpriority66 \lsdlocked0 Light List Accent 6;\lsdpriority67 \lsdlocked0 Light Grid Accent 6; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 6; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority61 \lsdlocked0 Dark List Accent 6;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 6; -\lsdpriority63 \lsdlocked0 Colorful List Accent 6;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority65 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority66 \lsdlocked0 Intense Emphasis; -\lsdqformat1 \lsdpriority67 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority68 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority69 \lsdlocked0 Book Title;\lsdpriority70 \lsdlocked0 Bibliography; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority71 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; -\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; -\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; -\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; -\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; -\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; -\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; -\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; -\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; -\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; -\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; -\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; -\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; -\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; -\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; -\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; -\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; -\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; -\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; -\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; -\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; -\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; -\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; -\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; -\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 -4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 -d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000007050 -840ce48ed001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000105000000000000}} diff --git a/tests/rtfs/librewriter-8bit.rtf b/tests/rtfs/librewriter-8bit.rtf new file mode 100644 index 0000000..fa6d447 --- /dev/null +++ b/tests/rtfs/librewriter-8bit.rtf @@ -0,0 +1,41 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon15\snext16\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af5\dbch\af6\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon15\snext16\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af5\dbch\af6\afs28\ab\loch\f4\fs28 Heading 3;} +{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;} +{\s16\sbasedon0\snext16\sl288\slmult1\sb0\sa140 Text Body;} +{\s17\sbasedon16\snext17\sl288\slmult1\sb0\sa140\dbch\af7 List;} +{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Caption;} +{\s19\sbasedon0\snext19\noline\dbch\af7 Index;} +{\s20\sbasedon0\snext20\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s21\sbasedon15\snext16\qc\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs56\ab\loch\f4\fs56 Title;} +{\s22\sbasedon15\snext16\qc\sb60\sa120\keepn\dbch\af5\dbch\af6\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy20\hr10\min57}{\revtim\yr2015\mo7\dy20\hr10\min58}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +ASCII: ABCDEFG abcdefg ?!"$%&/\{\}[]#+*~} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Latin 1+9 (western european): \u193\'c1\u194\'c2\u195\'c3\u196\'c4\u197\'c5\u198\'c6 \u250\'fa\u251\'fb\u252\'fc\u339\'9c\u223\'df \u191\'bf \u8364\'80} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Latin 2 (middle european): \u208\'d0 \u258\'3f } +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Latin 5 (Cyrillic): \u386\'3f} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Latin 7 (Greek): \u931\'3f\u937\'3f \u948\'3f\u949\'3f\u960\'3f\u964\'3f} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-bold-italics.rtf b/tests/rtfs/librewriter-bold-italics.rtf new file mode 100644 index 0000000..e04dcca --- /dev/null +++ b/tests/rtfs/librewriter-bold-italics.rtf @@ -0,0 +1,39 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon15\snext16\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af5\dbch\af6\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon15\snext16\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af5\dbch\af6\afs28\ab\loch\f4\fs28 Heading 3;} +{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;} +{\s16\sbasedon0\snext16\sl288\slmult1\sb0\sa140 Text Body;} +{\s17\sbasedon16\snext17\sl288\slmult1\sb0\sa140\dbch\af7 List;} +{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Caption;} +{\s19\sbasedon0\snext19\noline\dbch\af7 Index;} +{\s20\sbasedon0\snext20\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s21\sbasedon15\snext16\qc\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs56\ab\loch\f4\fs56 Title;} +{\s22\sbasedon15\snext16\qc\sb60\sa120\keepn\dbch\af5\dbch\af6\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy20\hr10\min31}{\revtim\yr2015\mo7\dy20\hr10\min32}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Normal }{\b\ab\rtlch \ltrch\loch +bold}{\rtlch \ltrch\loch + }{\i\ai\rtlch \ltrch\loch +italics}{\rtlch \ltrch\loch + }{\i\b\ai\ab\rtlch \ltrch\loch +bolditalics}{\rtlch \ltrch\loch +.} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-cjk.rtf b/tests/rtfs/librewriter-cjk.rtf new file mode 100644 index 0000000..993d44e --- /dev/null +++ b/tests/rtfs/librewriter-cjk.rtf @@ -0,0 +1,33 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon15\snext16\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af5\dbch\af6\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon15\snext16\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af5\dbch\af6\afs28\ab\loch\f4\fs28 Heading 3;} +{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;} +{\s16\sbasedon0\snext16\sl288\slmult1\sb0\sa140 Text Body;} +{\s17\sbasedon16\snext17\sl288\slmult1\sb0\sa140\dbch\af7 List;} +{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Caption;} +{\s19\sbasedon0\snext19\noline\dbch\af7 Index;} +{\s20\sbasedon0\snext20\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s21\sbasedon15\snext16\qc\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs56\ab\loch\f4\fs56 Title;} +{\s22\sbasedon15\snext16\qc\sb60\sa120\keepn\dbch\af5\dbch\af6\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy20\hr10\min27}{\revtim\yr2015\mo7\dy20\hr10\min28}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\dbch +\u21332\'3f\u35696\'3f} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-hyperlink.rtf b/tests/rtfs/librewriter-hyperlink.rtf new file mode 100644 index 0000000..13e0648 --- /dev/null +++ b/tests/rtfs/librewriter-hyperlink.rtf @@ -0,0 +1,36 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon16\snext17\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon16\snext17\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af5\dbch\af6\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon16\snext17\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af5\dbch\af6\afs28\ab\loch\f4\fs28 Heading 3;} +{\*\cs15\snext15\cf2\ul\ulc0\langfe255\alang255\lang255 Internet Link;} +{\s16\sbasedon0\snext17\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;} +{\s17\sbasedon0\snext17\sl288\slmult1\sb0\sa140 Text Body;} +{\s18\sbasedon17\snext18\sl288\slmult1\sb0\sa140\dbch\af7 List;} +{\s19\sbasedon0\snext19\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Caption;} +{\s20\sbasedon0\snext20\noline\dbch\af7 Index;} +{\s21\sbasedon0\snext21\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s22\sbasedon16\snext17\qc\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs56\ab\loch\f4\fs56 Title;} +{\s23\sbasedon16\snext17\qc\sb60\sa120\keepn\dbch\af5\dbch\af6\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy20\hr11\min8}{\revtim\yr2015\mo7\dy20\hr11\min9}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +This is a }{{\field{\*\fldinst HYPERLINK "http://www.example.com/~page?arg=value;arg2=v2" }{\fldrslt {\cf2\ul\ulc0\langfe255\alang255\lang255\rtlch \ltrch\loch +hyperlink}{}}}\rtlch \ltrch\loch +.} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-lists.rtf b/tests/rtfs/librewriter-lists.rtf new file mode 100644 index 0000000..f3b6b33 --- /dev/null +++ b/tests/rtfs/librewriter-lists.rtf @@ -0,0 +1,75 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq0\fcharset2 OpenSymbol{\*\falt Arial Unicode MS};}{\f6\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f7\fnil\fprq2\fcharset0 Mangal;}{\f8\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon17\snext18\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af6\dbch\af7\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon17\snext18\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af6\dbch\af7\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon17\snext18\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af6\dbch\af7\afs28\ab\loch\f4\fs28 Heading 3;} +{\*\cs15\snext15\dbch\af5\dbch\af5\loch\f5 Bullets;} +{\*\cs16\snext16 Numbering Symbols;} +{\s17\sbasedon0\snext18\sb240\sa120\keepn\dbch\af6\dbch\af7\afs28\loch\f4\fs28 Heading;} +{\s18\sbasedon0\snext18\sl288\slmult1\sb0\sa140 Text Body;} +{\s19\sbasedon18\snext19\sl288\slmult1\sb0\sa140\dbch\af8 List;} +{\s20\sbasedon0\snext20\sb120\sa120\noline\i\dbch\af8\afs24\ai\fs24 Caption;} +{\s21\sbasedon0\snext21\noline\dbch\af8 Index;} +{\s22\sbasedon0\snext22\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s23\sbasedon17\snext18\qc\sb240\sa120\keepn\b\dbch\af6\dbch\af7\afs56\ab\loch\f4\fs56 Title;} +{\s24\sbasedon17\snext18\qc\sb60\sa120\keepn\dbch\af6\dbch\af7\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +{\list\listtemplateid2 +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li720} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9702 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li1080} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9642 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li1440} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li1800} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9702 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li2160} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9642 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li2520} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li2880} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9702 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li3240} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9642 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li3600}\listid2} +{\list\listtemplateid3 +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\fi-360\li720} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\fi-360\li1080} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\fi-360\li1440} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\fi-360\li1800} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\fi-360\li2160} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\fi-360\li2520} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\fi-360\li2880} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'07.;}{\levelnumbers\'01;}\fi-360\li3240} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'08.;}{\levelnumbers\'01;}\fi-360\li3600}\listid3} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy19\hr15\min38}{\revtim\yr2015\mo7\dy19\hr15\min43}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Plain paragraph.} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u8226\'95\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +Ul item one} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u8226\'95\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +ul item two (this one with a longer line to see what a continuation line will look like that is likely, if not sure, to result here)} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u9702\'3f\tab}\ilvl1\ls2 \li1080\ri0\lin1080\rin0\fi-360{\rtlch \ltrch\loch +ul ul item one} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u9702\'3f\tab}\ilvl1\ls2 \li1080\ri0\lin1080\rin0\fi-360{\rtlch \ltrch\loch +ul ul item two} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u8226\'95\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +ul item three} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Second plain paragraph.\line Second line after a linebreak.} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain 1.\tab}\ilvl0\ls3 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +Ol item one} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain 2.\tab}\ilvl0\ls3 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +ol item two} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain 1.\tab}\ilvl1\ls3 \li1080\ri0\lin1080\rin0\fi-360{\rtlch \ltrch\loch +ol ol item one (in Writer numbered '1.')} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +END.} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-quotes-fonts.rtf b/tests/rtfs/librewriter-quotes-fonts.rtf new file mode 100644 index 0000000..576d04c --- /dev/null +++ b/tests/rtfs/librewriter-quotes-fonts.rtf @@ -0,0 +1,58 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\froman\fprq0\fcharset128 Liberation Serif{\*\falt Times New Roman};}{\f6\fswiss\fprq2\fcharset128 Arial;}{\f7\fswiss\fprq2\fcharset128 DejaVu Sans;}{\f8\fmodern\fprq1\fcharset128 DejaVu Sans Mono;}{\f9\froman\fprq2\fcharset128 Times New Roman;}{\f10\froman\fprq2\fcharset128 DejaVu Serif;}{\f11\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f12\fnil\fprq2\fcharset0 Mangal;}{\f13\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af11\dbch\af12\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon15\snext16\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af11\dbch\af12\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon15\snext16\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af11\dbch\af12\afs28\ab\loch\f4\fs28 Heading 3;} +{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af11\dbch\af12\afs28\loch\f4\fs28 Heading;} +{\s16\sbasedon0\snext16\sl288\slmult1\sb0\sa140 Text Body;} +{\s17\sbasedon16\snext17\sl288\slmult1\sb0\sa140\dbch\af13 List;} +{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af13\afs24\ai\fs24 Caption;} +{\s19\sbasedon0\snext19\noline\dbch\af13 Index;} +{\s20\sbasedon0\snext20\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s21\sbasedon15\snext16\qc\sb240\sa120\keepn\b\dbch\af11\dbch\af12\afs56\ab\loch\f4\fs56 Title;} +{\s22\sbasedon15\snext16\qc\sb60\sa120\keepn\dbch\af11\dbch\af12\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy19\hr16\min1}{\revtim\yr2015\mo7\dy19\hr16\min25}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Hello, world! Liberation Serif 12} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031{\afs22\rtlch \ltrch\loch\fs22 +Normal, }{\b\afs22\ab\rtlch \ltrch\loch\fs22 +bold}{\afs22\rtlch \ltrch\loch\fs22 +, }{\i\afs22\ai\rtlch \ltrch\loch\fs22 +italics}{\afs22\rtlch \ltrch\loch\fs22 +, }{\i\b\afs22\ai\ab\rtlch \ltrch\loch\fs22 +bolditalics}{\afs22\rtlch \ltrch\loch\fs22 + Liberation Serif 11.} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031\rtlch \ltrch\loch + +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch\loch\f6 +"Straight quotes Arial 12",}{\rtlch \ltrch\loch\loch\f7 + 'single quotes }{\rtlch \ltrch\loch\loch\f7 +DejaVu Sans}{\rtlch \ltrch\loch\loch\f7 + 1}{\rtlch \ltrch\loch\loch\f7 +2}{\rtlch \ltrch\loch\loch\f7 +',}{\afs26\rtlch \ltrch\loch\fs26\loch\f8 + \u187\'3ffrench quotes }{\afs26\rtlch \ltrch\loch\fs26\loch\f8 +DevaVu Sans Mono}{\afs26\rtlch \ltrch\loch\fs26\loch\f8 + 13\u171\'3f,}{\afs28\rtlch \ltrch\loch\fs28\loch\f9 + \uc2 \u8220\'81\'67unicode double quotes Times New Roman 14\u8221\'81\'68,\uc1 }{\afs32\rtlch \ltrch\loch\fs32\loch\f10 + \u8222\'3fgerman quotes }{\afs32\rtlch \ltrch\loch\fs32\loch\f10 +DejaVu Serif}{\afs32\rtlch \ltrch\loch\fs32\loch\f10 + 16\u8223\'3f}{\rtlch \ltrch\loch +.} +\par } \ No newline at end of file diff --git a/tests/rtfs/minimal.rtf b/tests/rtfs/minimal.rtf deleted file mode 100644 index 1318aa4..0000000 --- a/tests/rtfs/minimal.rtf +++ /dev/null @@ -1,4 +0,0 @@ -{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard -This is \par -some {\b bold} text.\par -} \ No newline at end of file diff --git a/tests/rtfs/msword-8bit.rtf b/tests/rtfs/msword-8bit.rtf new file mode 100644 index 0000000..2a3eae3 --- /dev/null +++ b/tests/rtfs/msword-8bit.rtf @@ -0,0 +1,211 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f695\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f696\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f698\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f699\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f702\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f703\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} +{\*\rsidtbl \rsid1598277\rsid6581997\rsid12398161\rsid12731110}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz}{\operator Prechelt, Lutz} +{\creatim\yr2015\mo7\dy20\hr10\min38}{\revtim\yr2015\mo7\dy20\hr10\min57}{\version2}{\edmins0}{\nofpages1}{\nofwords24}{\nofchars141}{\*\company FU Berlin, FBs IMP}{\nofcharsws164}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word +/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot6581997\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid6581997 ASCII: ABCDEFG abcdefg}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid12731110 + ?!"$%&/\{\}[]#+*~}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid656671 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6581997\charrsid6581997 Latin 1+9 (western european): \'c1\'c2\'c3\'c4\'c5\'c6 \'fa\'fb\'fc\'9c\'df \'bf }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6581997 \'80}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid6581997\charrsid6581997 +\par Latin 2 (middle european): }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 \'d0 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f31568\insrsid12731110\charrsid12731110 \'c3}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid6581997 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 Latin 5 (Cyrillic): }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 \u386\'3f}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 +\par Latin 7 (Greek): }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f31571\insrsid12731110 \'d3\'d9}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f31571\insrsid12731110 \'e4\'e5\'f0\'f4}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid12731110\charrsid12731110 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000010ed +060bcac2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/msword-cjk.rtf b/tests/rtfs/msword-cjk.rtf new file mode 100644 index 0000000..a416cd5 --- /dev/null +++ b/tests/rtfs/msword-cjk.rtf @@ -0,0 +1,213 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt SimSun};}{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt SimSun};} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f104\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@SimSun{\*\falt @Batang};} +{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\f328\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f329\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\f331\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f332\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\f333\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f334\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\f335\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f336\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f460\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};} +{\f460\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f698\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f699\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f701\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;} +{\f702\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f705\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f706\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f1370\fbidi \fnil\fcharset0\fprq2 @SimSun Western{\*\falt @Batang};} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} +{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);} +{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} +{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} +{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} +{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0; +\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 +}{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 +\rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} +{\*\rsidtbl \rsid1598277\rsid2129023\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz}{\operator Prechelt, Lutz} +{\creatim\yr2015\mo7\dy20\hr10\min26}{\revtim\yr2015\mo7\dy20\hr10\min26}{\version1}{\edmins0}{\nofpages1}{\nofwords0}{\nofchars2}{\*\company FU Berlin, FBs IMP}{\nofcharsws2}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003 +/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot2129023\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af13\afs20 \ltrch\fcs0 \fs20\lang3076\langfe1028\loch\af13\hich\af13\dbch\af13\langnp3076\langfenp1028\insrsid2129023\charrsid3220691 \loch\af13\hich\af13\dbch\f13 \uc2\u21332 +\'85\'66\u-29840\'d7\'68}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid656671 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000303e +decbc5c2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/msword-hyperlink.rtf b/tests/rtfs/msword-hyperlink.rtf new file mode 100644 index 0000000..d1c2aa9 --- /dev/null +++ b/tests/rtfs/msword-hyperlink.rtf @@ -0,0 +1,208 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f695\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f696\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f698\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f699\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f702\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f703\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\chyperlink\ctint255\cshade255\red5\green99\blue193;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 \additive +\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf17 \sbasedon10 \sunhideused \styrsid983678 Hyperlink;}}{\*\rsidtbl \rsid983678\rsid1598277\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440 +\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz}{\operator Prechelt, Lutz}{\creatim\yr2015\mo7\dy20\hr11\min4}{\revtim\yr2015\mo7\dy20\hr11\min7}{\version1}{\edmins0}{\nofpages1}{\nofwords12}{\nofchars73}{\*\company FU Berlin, FBs IMP}{\nofcharsws84} +{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot983678\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid983678 This is a }{\field{\*\fldinst {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid983678 +HYPERLINK "http://www.example.com/~page?arg=value;arg2=v2" }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid983678 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7600000068007400740070003a002f002f007700770077002e006500780061006d0070006c0065002e0063006f006d002f007e0070006100670065003f006100720067003d00760061006c00750065003b0061007200 +670032003d00760032000000795881f43b1d7f48af2c825dc485276300000000a5ab0000}}}{\fldrslt {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cs15\ul\cf17\lang1031\langfe1033\langnp1031\insrsid983678\charrsid983678 hyperlink}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid983678 .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1031\langfe1033\langnp1031\insrsid656671\charrsid983678 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000000023 +c57fcbc2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/msword-lists.rtf b/tests/rtfs/msword-lists.rtf new file mode 100644 index 0000000..27fdfaf --- /dev/null +++ b/tests/rtfs/msword-lists.rtf @@ -0,0 +1,242 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;} +{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f59\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f60\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} +{\f62\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f63\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f64\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f65\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} +{\f66\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f67\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f417\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{ +\s15\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext15 \sqformat \spriority34 \styrsid15357058 List Paragraph;}}{\*\listtable{\list\listtemplateid-937505194\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext +\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;} +\f2\fbias0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 +\fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\lin2880 } +{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative +\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\lin6480 }{\listname ;}\listid805126674}{\list\listtemplateid-729661720\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698703\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext +\leveltemplateid67698713\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698715\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698703\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698713\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698715\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698703\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698713\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698715\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li6480\lin6480 }{\listname ;}\listid1814789581}}{\*\listoverridetable{\listoverride\listid805126674\listoverridecount0\ls1}{\listoverride\listid1814789581 +\listoverridecount0\ls2}}{\*\rsidtbl \rsid1598277\rsid12398161\rsid15357058}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz} +{\operator Prechelt, Lutz}{\creatim\yr2015\mo7\dy19\hr15\min15}{\revtim\yr2015\mo7\dy19\hr15\min17}{\version1}{\edmins0}{\nofpages1}{\nofwords30}{\nofchars177}{\*\company FU Berlin, FBs IMP}{\nofcharsws206}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas +.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot15357058\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid15357058 Plain paragraph}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid656671 +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s15\ql \fi-360\li720\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0\pararsid15357058\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 +\ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid15357058 ul item one +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}ul item two +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af2\afs22 \ltrch\fcs0 \f2\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \hich\af2\dbch\af31506\loch\f2 o\tab}}\pard \ltrpar\s15\ql \fi-360\li1440\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls1\ilvl1\adjustright\rin0\lin1440\itap0\pararsid15357058\contextualspace {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid15357058 ul ul item one +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af2\afs22 \ltrch\fcs0 \f2\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \hich\af2\dbch\af31506\loch\f2 o\tab}ul ul item two +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}}\pard \ltrpar\s15\ql \fi-360\li720\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0\pararsid15357058\contextualspace {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid15357058 ul item three +\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15357058 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid15357058\charrsid15357058 Second plain paragraph.\line Second line after a linebreak. +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid15357058 \hich\af31506\dbch\af31506\loch\f31506 1.\tab}}\pard\plain \ltrpar\s15\ql \fi-360\li720\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid15357058\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 +\ltrch\fcs0 \insrsid15357058 ol item one +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid15357058 \hich\af31506\dbch\af31506\loch\f31506 2.\tab}ol item two +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid15357058 \hich\af31506\dbch\af31506\loch\f31506 a.\tab}}\pard \ltrpar\s15\ql \fi-360\li1440\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls2\ilvl1\adjustright\rin0\lin1440\itap0\pararsid15357058\contextualspace {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid15357058 ol ol item one (in Word numbered 'a.') +\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15357058 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid15357058 END.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid15357058\charrsid15357058 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000010d6 +6e5525c2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/msword-quotes-fonts.rtf b/tests/rtfs/msword-quotes-fonts.rtf index a07408a..500a870 100644 --- a/tests/rtfs/msword-quotes-fonts.rtf +++ b/tests/rtfs/msword-quotes-fonts.rtf @@ -1,16 +1,21 @@ -{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f166\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} +{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} {\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} {\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} {\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} -{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f299\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f300\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f302\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f303\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f304\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f305\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f306\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f307\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f299\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f300\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f302\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f303\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f304\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f305\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f306\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f307\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f669\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f670\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} -{\f672\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f673\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f676\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f677\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} -{\f1959\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f1960\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f1962\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f1963\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;} -{\f1966\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f1967\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f335\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f336\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;} +{\f338\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f339\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f340\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f341\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);} +{\f342\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f343\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f345\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f346\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} +{\f348\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f349\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f350\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f351\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} +{\f352\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f353\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f345\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f346\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} +{\f348\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f349\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f350\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f351\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} +{\f352\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f353\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f695\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f696\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f698\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f699\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f702\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f703\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\f715\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f716\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f718\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f719\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;} +{\f722\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f723\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} {\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} {\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} {\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} @@ -36,9 +41,9 @@ \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 \widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} -{\*\rsidtbl \rsid656671\rsid1598277\rsid7410800\rsid10105401\rsid10633277\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz} -{\operator Prechelt, Lutz}{\creatim\yr2015\mo6\dy27\hr11\min55}{\revtim\yr2015\mo6\dy28\hr12\min28}{\version2}{\edmins0}{\nofpages1}{\nofwords13}{\nofchars79}{\*\company FU Berlin, FBs IMP}{\nofcharsws91}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.m -icrosoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +{\*\rsidtbl \rsid656671\rsid1598277\rsid3224959\rsid7410800\rsid10105401\rsid10633277\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info +{\author Prechelt, Lutz}{\operator Prechelt, Lutz}{\creatim\yr2015\mo6\dy27\hr11\min55}{\revtim\yr2015\mo7\dy19\hr16\min1}{\version3}{\edmins0}{\nofpages1}{\nofwords28}{\nofchars161}{\*\company FU Berlin, FBs IMP}{\nofcharsws188}{\vern57439}} +{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen \expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 \jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct @@ -49,10 +54,15 @@ icrosoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr14 {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7410800\charrsid10105401 Hello}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10633277 ,}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7410800\charrsid10105401 world!}{ \rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10633277 -\par }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\insrsid10105401\charrsid10105401 "Straight quotes",}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10105401\charrsid10105401 }{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \f166\fs26\insrsid10105401\charrsid10105401 \'bb}{ -\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \fs26\insrsid10105401\charrsid10105401 french quotes}{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \f166\fs26\insrsid10105401\charrsid10105401 \'ab}{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \fs26\insrsid10105401\charrsid10105401 , }{ -\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 \f0\fs28\insrsid10105401\charrsid10633277 \'93unicode double quotes\'94,}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f166\insrsid10105401 }{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f166\fs32\insrsid10105401\charrsid10105401 \'84 -german quotes\u8223\'3f}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f166\fs32\insrsid10633277 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f166\insrsid10105401\charrsid10633277 +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3224959 Normal, }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid3224959\charrsid3224959 bold}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3224959 , }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid3224959\charrsid3224959 italics}{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3224959 , }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\i\insrsid3224959\charrsid3224959 bolditalics}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3224959 Calibri +\par }{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid10105401\charrsid3224959 "Straight quotes}{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid3224959\charrsid3224959 Arial}{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid3224959 12}{\rtlch\fcs1 +\af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid10105401\charrsid3224959 "}{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid3224959 ,}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10105401\charrsid10105401 }{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 +\f2\fs26\insrsid10105401\charrsid3224959 \'bbfrench quotes}{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 \f2\fs26\insrsid3224959\charrsid3224959 Courier}{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 \f2\fs26\insrsid3224959 New}{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 +\f2\fs26\insrsid3224959\charrsid3224959 13}{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 \f2\fs26\insrsid10105401\charrsid3224959 \'ab,}{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \fs26\insrsid10105401\charrsid10105401 }{\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 +\f0\fs28\insrsid10105401\charrsid10633277 \'93unicode double quotes}{\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 \f0\fs28\insrsid3224959 Times New Roman 14}{\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 \f0\fs28\insrsid10105401\charrsid10633277 \'94,}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \f39\insrsid10105401 }{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f39\fs32\insrsid10105401\charrsid10105401 \'84german quotes}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f39\fs32\insrsid3224959 Verdana 16}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 +\f39\fs32\insrsid10105401\charrsid10105401 \u8223\'3f}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f39\fs32\insrsid10633277 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f39\insrsid10105401\charrsid10633277 \par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a 9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad 5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 @@ -192,8 +202,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b06f -353a8db1d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000070e4 +90692bc2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/sample.rtf b/tests/rtfs/sample.rtf deleted file mode 100644 index 5bdbeb8..0000000 --- a/tests/rtfs/sample.rtf +++ /dev/null @@ -1,54 +0,0 @@ -{\rtf1\ansi\deff1\adeflang1025 -{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Calibri;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\fnil\fprq0\fcharset128 Symbol;}{\f4\fmodern\fprq1\fcharset128 Courier New;}{\f5\fnil\fprq0\fcharset128 Wingdings;}{\f6\fnil\fprq2\fcharset0 DejaVu Sans;}{\f7\fnil\fprq2\fcharset0 ;}{\f8\fnil\fprq2\fcharset0 Courier New;}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red128\green128\blue128;} -{\stylesheet{\s1\sa200\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\snext1 Normal;} -{\s2\sb240\sa120\keepn\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af6\afs28\lang1025\ltrch\dbch\langfe1033\hich\f2\fs28\lang1033\loch\f2\fs28\lang1033\sbasedon1\snext3 Heading;} -{\s3\sa120\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon1\snext3 Body Text;} -{\s4\sa120\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon3\snext4 List;} -{\s5\sb120\sa120\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs24\lang1025\ai\ltrch\dbch\af6\langfe1033\hich\f1\fs24\lang1033\i\loch\f1\fs24\lang1033\i\sbasedon1\snext5 caption;} -{\s6\sa200\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon1\snext6 Index;} -{\s7\li720\ri0\lin720\rin0\fi0\sa200\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon1\snext7 List Paragraph;} -{\*\cs9\cf0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 Default Paragraph Font;} -{\*\cs10\cf0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 DocumentMap;} -{\*\cs11\cf0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 No List;} -{\*\cs12\cf0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon9 storyhead;} -{\*\cs13\cf2\ul\ulc0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon9 Internet link;} -{\*\cs14\cf0\rtlch\af8\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 ListLabel 1;} -}{\*\listtable{\list\listtemplateid1 -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f3\fi-360\li720} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f8\f4\fi-360\li1440} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f5\fi-360\li2160} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f3\fi-360\li2880} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f8\f4\fi-360\li3600} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f5\fi-360\li4320} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f3\fi-360\li5040} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f8\f4\fi-360\li5760} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f5\fi-360\li6480}\listid1} -}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls0}} - -{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709 -{\*\pgdsctbl -{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\pgdscnxt0 Standard;}} -\paperh15840\paperw12240\margl1440\margr1440\margt1440\margb1440\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc -\pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0\ltrch\dbch\hich\b\loch\b Louis J. Pt\'e1\u269\'3fek, M.D.} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\ltrch\dbch\hich\b\loch\b Italics, accented letters, em dashes:}}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 Pt\'e1\u269\'3fek collaborated with Jones. what is called familial advanced sleep-phase syndrome (FASPS)\'97or very early risers\'97and has found almost 90 families.{\rtlch\ltrch\dbch\hich\i\loch\i Novel players in presynaptic vesicle trafficking.} To identify mutatio -ns in novel genes as well as genes that have previously been implicated in SV trafficking, we used the eyeless-FLP/FRT system to carry out four chemical mutagenesis screens. with apparent normal eye morphology (300,000 flies) for their ability to phototax -(retained 10,000).} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\ltrch\dbch\hich\b\loch\b Lots of Greek letters and symbols: }}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\rtlch\ltrch\dbch\hich\b\loch\b \line }The combined incidence of \u945\'3f and \u954\'3f and \u946\'3f and \u966\'3f and \u8805\'3f and d\'e9tected \'b5m and \'b1 and \'e1 and \'e3 and \'fc and \'89 and \'97 and \'a9 and \'85 and \u948\'3f and \u955\'3f and \u954\'3f and de novo rearrangements that are mediated by segmental duplications is estimated at - 1/1,000 live births. \u8592\'3f arrows \u8594\'3f fraction \u8541\'3f symbol \u8805\'3f This includes 3 percent of ~130 regions of the human genome that we believe show a predilection\'96to\'96segmental\'96aneusomy.} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 These are {\ltrch\dbch\hich\b\loch\b accented letters}: \u971\'3f \u972\'3f \'eb \'e9 \'e8 \'e5 \u283\'3f} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\ltrch\dbch\hich\b\loch\b Hyperlinks:}}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 In collaboration with the laboratories of {\field{\*\fldinst HYPERLINK "http://www.hhmi.org/research/investigators/spradling.html" }{\fldrslt \*\cs13\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 Allan Spradling}} (HHMI, Carnegie Institution of Washington), Roger Hoskins (Lawrence Berkeley National Laboratory), and {\field{\*\fldinst HYPERLINK "http://www.hhmi.org/research/groupleaders/rubin.html" }{\fldrslt \*\cs13\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 Gerald Rubin}} via \u934\'3fC31-mediated integration ({\field{\*\fldinst HYPERLINK "http://flypush.imgen.bcm.tmc.edu/lab/pacman.html" }{\fldrslt \*\cs13\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 http://flypush.imgen.bcm.tmc.edu/lab/pa -cman.html}}).} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0\ltrch\dbch\hich\b\loch\b Pamela J. Bj\'f6rkman, Ph.D.} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\ltrch\dbch\hich\b\loch\b Subscripts and superscripts:}}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 the polymeric immunoglobulin receptor (CO{{\*\updnprop5801}\dn9 2}), which CO{{\*\updnprop5801}\up9 2} transports polymeric antibodies into secretions, and gE-gI, a viral Fc receptor for IgG. H{{\*\updnprop5801}\dn9 2}O is not H{{\*\updnprop5801}\up9 2}O or V{{\*\updnprop5801}\dn9 0}.} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0\ltrch\dbch\hich\b\loch\b Bulleted list:} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\rtlch\ltrch\dbch\hich\b\loch\b In Vitro Reconstitution of Ca}}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{{\*\updnprop5801}\up9\rtlch\ltrch\dbch\hich\b\loch\b 2+}{\rtlch\ltrch\dbch\hich\b\loch\b -Triggered Synaptic Vesicle Fusion}} -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 CNTs bind with high specificity } -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 at neuromuscular junctions } -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 The molecular details of the toxin-cell } -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 recognition has been elusive } -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 determined at 2.15-\'c5 resolution} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 The 6.7-\'c5 map of the {\rtlch\ltrch\dbch\hich\i\loch\i Escherichia coli} is actually visible as "bumps." Both \u945\'3f-helices and \u946\'3f-sheets} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 -\par } \ No newline at end of file diff --git a/tests/rtfs/wordpad-8bit.rtf b/tests/rtfs/wordpad-8bit.rtf new file mode 100644 index 0000000000000000000000000000000000000000..8d0cf911b4a1795a3214094de481a7ce3cdb175f GIT binary patch literal 501 zcmY+BOK$=p6otF?SJ3BJO)N0Z_*xh{ZH-C0>aw>BW&le>Gz``>X8PNEaZ^n=H-wLz zdoCQn2hBjZ+8j%@T{50=kV>ToRc!v2oW;y%EP3r(1SSqKy2pdn{Y8{j`fn>ct>v3Eeqmu@{joPn_lYQ7#47S2c zs0F7KYRd;X*7eQ?1~K~Jn6~De%-)N|VoYX_#nbc4oQSf*>6T=Ad3AGp_W%cIK0dFz zo!{u!dKJMq!nz~U-m5w&?}*y@%~lC_KPHf1+oa;C6xBy%s2qV7s1j8{GD1m>hh;27 zdg9DUdu^n&>fBaR5+4w4$;su6w2L2atTk0^zDtMs^aKw`d+wE5MW!*6#7uI89Tf&s R7!3a_(f#-kakQp&@drJVqI3WN literal 0 HcmV?d00001 diff --git a/tests/rtfs/a.rtf b/tests/rtfs/wordpad-cjk.rtf similarity index 54% rename from tests/rtfs/a.rtf rename to tests/rtfs/wordpad-cjk.rtf index 9b37b080d11d5c53a1e49ef245a02e109215bc8d..053dbbb8788bd36996c95a12572c7549a6ab8274 100644 GIT binary patch delta 80 zcmaFO_=ItSi@US>{AT5?8WQE_UCfr4{lPG(Y3rgd%Y g#K36j7@)}Rm;Ty0CN%=VgLXD delta 87 zcmaFD_?mHo3$KBKb7D?rQc3=@TN!Ey#M1&KwxT(!Jh3;-`f9UTAw diff --git a/tests/rtfs/wordpad-lists.rtf b/tests/rtfs/wordpad-lists.rtf new file mode 100644 index 0000000000000000000000000000000000000000..bcd240e5fe841b74037e132495ec5718ed91806e GIT binary patch literal 1211 zcmcJPO>f&U42E~kui#GU3e1p{rWugizHS?abwDq=(6*ciRU|>8`?0|PeUy`+*qR`h z6%Yj4q{J8GLv3}UPHOboj$0E~Qq7faP1lLCJM=3lW^${$;E8I-hR~h2PIt{3Q#K^v z6FOTbyBydl|8^?4dD_&$Er(&U)t7o@yh%tQ!MEIzX)VFLx{{URHJ4&J=zD7(?yPUG zbl*rFF||6Q5<+LE7T3IQdPhrGZR|(^~D(5ES;jNCI%p(H zShLJa{>#hVyV?;O?2Mk18c$+8@kn(E9|qmo_p@uEon0u_@KOo%4lJ1s1aHQ)$1)yb z=pnp@G$}ru)OJXHM&2Rpl@y*U9<7tvm2d3Y(L&#tCioWOzrA+W8`wKX8=0&G2<4+r z2JepYAV5|xaR}{G;Xyp}z*Z(q%v@wZnmry^G12GY2q)nXpmymGAtx#?VD|rHo&<$O z9CR=!aN+w+ZIWqWI;*C@vvnI%8?k-+?wQ}CO}f|zPBZ-c^%Xjv^fDdxH{a!KrVJRP s;fDh#0QZy1;9^5PI;eZ+Oo`ww^PEC?VAy3+u6Aj^eE+;_10oX)dt98U;fFY<;l&-#bvdN>)N6 z;63J{Z%&wsV9Y+Aq69^;&xN$_lr%`hwtFYaJ+mEk8f3C*-wntq$4WuS=j z>V#i$GQlKSVuByp7NcE(&3fQ#L2JX=!x{fLb9{9{4>*q;-(=F5rCTL;kP42P_lQ&n(Kjze`s~*Ch z#TGlIY%*coUtJ&Q1Mjhus=8?gS?thjF(@zuFcdMQG9)u(0LdJn7&2h=Jt}mR wfuTc)!HpplsMZOnrU Date: Wed, 5 Aug 2015 11:21:12 -0400 Subject: [PATCH 10/20] uncommited files?? --- tests/rtfs/wordpad-bold-italics.rtf | Bin 232 -> 229 bytes tests/rtfs/wordpad-symbol.rtf | Bin 963 -> 958 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/rtfs/wordpad-bold-italics.rtf b/tests/rtfs/wordpad-bold-italics.rtf index bd25bbf589dbfd4757e1c84e3c9f661df8ee36a7..73c1cb1fced0bdb2ce7517db3f1d858978d0793c 100644 GIT binary patch delta 14 VcmaFC_>^%%z{J3bEL^o*3;-+c1h@bI delta 18 ZcmaFL_=0gl03+|jfQf9pT(!Jh3;;Va1mOSx diff --git a/tests/rtfs/wordpad-symbol.rtf b/tests/rtfs/wordpad-symbol.rtf index 33d1f7bf8d0cf25c951969032078ca35e56311c3..b6f4f893bc9d16114ef5f37980905c42208fbc34 100644 GIT binary patch delta 34 qcmX@izK?yv%#E|u7&jkee9I`r6_b;gmu?=DW)xG9Sj1J!#Q*^7Lkt4| delta 41 xcmdnTewcm2Oh(>~Gu0Rwc{lH8e9I`x%N3K8n3rxIlV%iCkXXdaRm;o8000~H3`PI| From c4e54bb200cae8ce5f0ac967ae840631f9a266f1 Mon Sep 17 00:00:00 2001 From: Lex Berezhny Date: Wed, 5 Aug 2015 13:02:37 -0400 Subject: [PATCH 11/20] python3 support fixes --- pyth/plugins/plaintext/writer.py | 21 +++++++++++---------- pyth/plugins/rtf15/reader.py | 4 ++-- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/pyth/plugins/plaintext/writer.py b/pyth/plugins/plaintext/writer.py index 49c48cc..9adab08 100644 --- a/pyth/plugins/plaintext/writer.py +++ b/pyth/plugins/plaintext/writer.py @@ -6,22 +6,23 @@ from pyth import document from pyth.format import PythWriter -from cStringIO import StringIO +from io import StringIO class PlaintextWriter(PythWriter): @classmethod - def write(klass, document, target=None, newline="\n"): + def write(klass, document, target=None, encoding="utf-8", newline="\n"): if target is None: target = StringIO() - writer = PlaintextWriter(document, target, newline) + writer = PlaintextWriter(document, target, encoding, newline.encode(encoding)) return writer.go() - def __init__(self, doc, target, newline): + def __init__(self, doc, target, encoding, newline): self.document = doc self.target = target + self.encoding = encoding self.newline = newline self.indent = -1 self.paragraphDispatch = { @@ -34,7 +35,7 @@ def go(self): for (i, paragraph) in enumerate(self.document.content): handler = self.paragraphDispatch[paragraph.__class__] handler(paragraph) - self.target.write("\n") + self.target.write(self.newline) # Heh heh, remove final paragraph spacing self.target.seek(-2, 1) @@ -48,13 +49,13 @@ def paragraph(self, paragraph, prefix=""): content = [] for text in paragraph.content: content.append(u"".join(text.content)) - content = u"".join(content).encode("utf-8") + content = u"".join(content).encode(self.encoding) - for line in content.split("\n"): - self.target.write(" " * self.indent) - self.target.write(prefix) + for line in content.splitlines(): + self.target.write(" ".encode(self.encoding) * self.indent) + self.target.write(prefix.encode(self.encoding)) self.target.write(line) - self.target.write("\n") + self.target.write(self.newline) if prefix: prefix = " " diff --git a/pyth/plugins/rtf15/reader.py b/pyth/plugins/rtf15/reader.py index dd5ceac..9829f14 100644 --- a/pyth/plugins/rtf15/reader.py +++ b/pyth/plugins/rtf15/reader.py @@ -632,11 +632,11 @@ def handle_ilvl(self, level): def handle_up(self, amount): self.content.append(ReadableMarker("super", True)) - def handle_super(self): + def handle_super(self, amount): self.content.append(ReadableMarker("super", True)) #Turns off superscripting or subscripting - def handle_nosupersub(self): + def handle_nosupersub(self, amount): self.content.append(ReadableMarker("sub", False)) self.content.append(ReadableMarker("super", False)) From 5fe8e354ad80f24cbeba6fd76ac496743dc64c5c Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Mon, 20 Jul 2015 11:37:40 +0200 Subject: [PATCH 12/20] late final touches, setup.py version set to 0.7.dev77 --- pyth/plugins/xhtml/writer.py | 2 - setup.py | 2 +- tests/rtf-as-html/README.txt | 4 + tests/rtf-as-html/ansi.html | 10 - tests/rtf-as-html/librewriter-8bit.html | 14 + .../{a.html => librewriter-bold-italics.html} | 2 +- .../{cjk.html => librewriter-cjk.html} | 0 tests/rtf-as-html/librewriter-hyperlink.html | 0 tests/rtf-as-html/librewriter-lists.html | 0 .../rtf-as-html/librewriter-quotes-fonts.html | 10 + tests/rtf-as-html/msword-8bit.html | 14 + .../{minimal.html => msword-cjk.html} | 4 +- tests/rtf-as-html/msword-hyperlink.html | 0 tests/rtf-as-html/msword-lists.html | 0 tests/rtf-as-html/msword-quotes-fonts.html | 4 +- tests/rtf-as-html/sample.html | 34 --- tests/rtf-as-html/wordpad-8bit.html | 0 tests/rtf-as-html/wordpad-cjk.html | 0 tests/rtf-as-html/wordpad-lists.html | 0 tests/rtf-as-html/wordpad-quotes-fonts.html | 10 + tests/rtf-as-html/zh-cn.html | 22 -- tests/rtfs/ansi.rtf | 19 -- tests/rtfs/cjk.rtf | 197 -------------- tests/rtfs/librewriter-8bit.rtf | 41 +++ tests/rtfs/librewriter-bold-italics.rtf | 39 +++ tests/rtfs/librewriter-cjk.rtf | 33 +++ tests/rtfs/librewriter-hyperlink.rtf | 36 +++ tests/rtfs/librewriter-lists.rtf | 75 ++++++ tests/rtfs/librewriter-quotes-fonts.rtf | 58 +++++ tests/rtfs/minimal.rtf | 4 - tests/rtfs/msword-8bit.rtf | 211 +++++++++++++++ tests/rtfs/msword-cjk.rtf | 213 +++++++++++++++ tests/rtfs/msword-hyperlink.rtf | 208 +++++++++++++++ tests/rtfs/msword-lists.rtf | 242 ++++++++++++++++++ tests/rtfs/msword-quotes-fonts.rtf | 48 ++-- tests/rtfs/sample.rtf | 54 ---- tests/rtfs/wordpad-8bit.rtf | Bin 0 -> 501 bytes tests/rtfs/wordpad-bold-italics.rtf | Bin 232 -> 229 bytes tests/rtfs/{a.rtf => wordpad-cjk.rtf} | Bin 235 -> 228 bytes tests/rtfs/wordpad-lists.rtf | Bin 0 -> 1211 bytes tests/rtfs/wordpad-quotes-fonts.rtf | Bin 0 -> 689 bytes tests/rtfs/wordpad-symbol.rtf | Bin 963 -> 958 bytes 42 files changed, 1243 insertions(+), 367 deletions(-) delete mode 100644 tests/rtf-as-html/ansi.html create mode 100644 tests/rtf-as-html/librewriter-8bit.html rename tests/rtf-as-html/{a.html => librewriter-bold-italics.html} (50%) rename tests/rtf-as-html/{cjk.html => librewriter-cjk.html} (100%) create mode 100644 tests/rtf-as-html/librewriter-hyperlink.html create mode 100644 tests/rtf-as-html/librewriter-lists.html create mode 100644 tests/rtf-as-html/librewriter-quotes-fonts.html create mode 100644 tests/rtf-as-html/msword-8bit.html rename tests/rtf-as-html/{minimal.html => msword-cjk.html} (62%) create mode 100644 tests/rtf-as-html/msword-hyperlink.html create mode 100644 tests/rtf-as-html/msword-lists.html delete mode 100644 tests/rtf-as-html/sample.html create mode 100644 tests/rtf-as-html/wordpad-8bit.html create mode 100644 tests/rtf-as-html/wordpad-cjk.html create mode 100644 tests/rtf-as-html/wordpad-lists.html create mode 100644 tests/rtf-as-html/wordpad-quotes-fonts.html delete mode 100644 tests/rtf-as-html/zh-cn.html delete mode 100644 tests/rtfs/ansi.rtf delete mode 100644 tests/rtfs/cjk.rtf create mode 100644 tests/rtfs/librewriter-8bit.rtf create mode 100644 tests/rtfs/librewriter-bold-italics.rtf create mode 100644 tests/rtfs/librewriter-cjk.rtf create mode 100644 tests/rtfs/librewriter-hyperlink.rtf create mode 100644 tests/rtfs/librewriter-lists.rtf create mode 100644 tests/rtfs/librewriter-quotes-fonts.rtf delete mode 100644 tests/rtfs/minimal.rtf create mode 100644 tests/rtfs/msword-8bit.rtf create mode 100644 tests/rtfs/msword-cjk.rtf create mode 100644 tests/rtfs/msword-hyperlink.rtf create mode 100644 tests/rtfs/msword-lists.rtf delete mode 100644 tests/rtfs/sample.rtf create mode 100644 tests/rtfs/wordpad-8bit.rtf rename tests/rtfs/{a.rtf => wordpad-cjk.rtf} (54%) create mode 100644 tests/rtfs/wordpad-lists.rtf create mode 100644 tests/rtfs/wordpad-quotes-fonts.rtf diff --git a/pyth/plugins/xhtml/writer.py b/pyth/plugins/xhtml/writer.py index 7865e21..5f0a5c5 100644 --- a/pyth/plugins/xhtml/writer.py +++ b/pyth/plugins/xhtml/writer.py @@ -1,8 +1,6 @@ """ Render documents as XHTML fragments """ -from __future__ import absolute_import - from pyth import document from pyth.format import PythWriter diff --git a/setup.py b/setup.py index 5a79b43..950867a 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup(name="pyth", - version="0.7.0", + version="0.7.dev77", packages = find_packages(), zip_safe = False, diff --git a/tests/rtf-as-html/README.txt b/tests/rtf-as-html/README.txt index 99b58a0..99cb416 100644 --- a/tests/rtf-as-html/README.txt +++ b/tests/rtf-as-html/README.txt @@ -16,5 +16,9 @@ with respect to the current implementation expectation. Test runs will create corresponding output and compare the file contents. +For tests that fail (i.e. where the visual inspection finds +relevant differences), the file deposited here is empty. + See the top-level README for current limitations. +Anything documented there is no longer considered a failure. diff --git a/tests/rtf-as-html/ansi.html b/tests/rtf-as-html/ansi.html deleted file mode 100644 index 6065dfb..0000000 --- a/tests/rtf-as-html/ansi.html +++ /dev/null @@ -1,10 +0,0 @@ - - -
-

Apostrophe: `

- -

Quotation mark: ' “

- -

` ~ ! @ # $ % ^ & * ( ) - _ = + [ { ] } \ | ; : ' “ , < . > / ?

-
- \ No newline at end of file diff --git a/tests/rtf-as-html/librewriter-8bit.html b/tests/rtf-as-html/librewriter-8bit.html new file mode 100644 index 0000000..c6bf449 --- /dev/null +++ b/tests/rtf-as-html/librewriter-8bit.html @@ -0,0 +1,14 @@ + + +
+

ASCII: ABCDEFG abcdefg ?!"$%&/{}[]#+*~

+ +

Latin 1+9 (western european): ÁÂÃÄÅÆ úûüœß ¿ €

+ +

Latin 2 (middle european): Ð Ă

+ +

Latin 5 (Cyrillic): Ƃ

+ +

Latin 7 (Greek): ΣΩ δεπτ

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/a.html b/tests/rtf-as-html/librewriter-bold-italics.html similarity index 50% rename from tests/rtf-as-html/a.html rename to tests/rtf-as-html/librewriter-bold-italics.html index 9453b94..0a73e16 100644 --- a/tests/rtf-as-html/a.html +++ b/tests/rtf-as-html/librewriter-bold-italics.html @@ -1,6 +1,6 @@
-

nörmal bold italics bolditalics

+

Normal bold italics bolditalics.

\ No newline at end of file diff --git a/tests/rtf-as-html/cjk.html b/tests/rtf-as-html/librewriter-cjk.html similarity index 100% rename from tests/rtf-as-html/cjk.html rename to tests/rtf-as-html/librewriter-cjk.html diff --git a/tests/rtf-as-html/librewriter-hyperlink.html b/tests/rtf-as-html/librewriter-hyperlink.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/librewriter-lists.html b/tests/rtf-as-html/librewriter-lists.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/librewriter-quotes-fonts.html b/tests/rtf-as-html/librewriter-quotes-fonts.html new file mode 100644 index 0000000..eadc1ba --- /dev/null +++ b/tests/rtf-as-html/librewriter-quotes-fonts.html @@ -0,0 +1,10 @@ + + +
+

Hello, world! Liberation Serif 12

+ +

Normal, bold, italics, bolditalics Liberation Serif 11.

+ +

"Straight quotes Arial 12", 'single quotes DejaVu Sans 12', »french quotes DevaVu Sans Mono 13«, “unicode double quotes Times New Roman 14”, „german quotes DejaVu Serif 16‟.

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/msword-8bit.html b/tests/rtf-as-html/msword-8bit.html new file mode 100644 index 0000000..c6bf449 --- /dev/null +++ b/tests/rtf-as-html/msword-8bit.html @@ -0,0 +1,14 @@ + + +
+

ASCII: ABCDEFG abcdefg ?!"$%&/{}[]#+*~

+ +

Latin 1+9 (western european): ÁÂÃÄÅÆ úûüœß ¿ €

+ +

Latin 2 (middle european): Ð Ă

+ +

Latin 5 (Cyrillic): Ƃ

+ +

Latin 7 (Greek): ΣΩ δεπτ

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/minimal.html b/tests/rtf-as-html/msword-cjk.html similarity index 62% rename from tests/rtf-as-html/minimal.html rename to tests/rtf-as-html/msword-cjk.html index aa9d89b..6596888 100644 --- a/tests/rtf-as-html/minimal.html +++ b/tests/rtf-as-html/msword-cjk.html @@ -1,8 +1,6 @@
-

This is

- -

some bold text.

+

協議

\ No newline at end of file diff --git a/tests/rtf-as-html/msword-hyperlink.html b/tests/rtf-as-html/msword-hyperlink.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/msword-lists.html b/tests/rtf-as-html/msword-lists.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/msword-quotes-fonts.html b/tests/rtf-as-html/msword-quotes-fonts.html index ebea131..9025e0c 100644 --- a/tests/rtf-as-html/msword-quotes-fonts.html +++ b/tests/rtf-as-html/msword-quotes-fonts.html @@ -3,6 +3,8 @@

Hello, world!

-

"Straight quotes", »french quotes«, “unicode double quotes”, „german quotes‟.

+

Normal, bold, italics, bolditalics Calibri

+ +

"Straight quotes Arial 12", »french quotes Courier New 13«, “unicode double quotes Times New Roman 14”, „german quotes Verdana 16‟.

\ No newline at end of file diff --git a/tests/rtf-as-html/sample.html b/tests/rtf-as-html/sample.html deleted file mode 100644 index b012514..0000000 --- a/tests/rtf-as-html/sample.html +++ /dev/null @@ -1,34 +0,0 @@ - - -
-

Louis J. Ptáček, M.D.

- -

Italics, accented letters, em dashes: Ptáček collaborated with Jones. what is called familial advanced sleep-phase syndrome (FASPS)—or very early risers—and has found almost 90 families. Novel players in presynaptic vesicle trafficking. To identify mutations in novel genes as well as genes that have previously been implicated in SV trafficking, we used the eyeless-FLP/FRT system to carry out four chemical mutagenesis screens. with apparent normal eye morphology (300,000 flies) for their ability to phototax (retained 10,000).

- -

Lots of Greek letters and symbols:
The combined incidence of α and κ and β and φ and ≥ and détected µm and ± and á and ã and ü and ‰ and — and © and … and δ and λ and κ and de novo rearrangements that are mediated by segmental duplications is estimated at 1/1,000 live births. ← arrows → fraction ⅝ symbol ≥ This includes 3 percent of ~130 regions of the human genome that we believe show a predilection–to–segmental–aneusomy.

- -

These are accented letters: ϋ ό ë é è å ě

- -

Hyperlinks: In collaboration with the laboratories of (HHMI, Carnegie Institution of Washington), Roger Hoskins (Lawrence Berkeley National Laboratory), and via ΦC31-mediated integration ().

- -

Pamela J. Björkman, Ph.D.

- -

Subscripts and superscripts: the polymeric immunoglobulin receptor (CO2), which CO2 transports polymeric antibodies into secretions, and gE-gI, a viral Fc receptor for IgG. H2O is not H2O or V0.

- -

Bulleted list:

- -

In Vitro Reconstitution of Ca2+-Triggered Synaptic Vesicle Fusion

- -

CNTs bind with high specificity

- -

at neuromuscular junctions

- -

The molecular details of the toxin-cell

- -

recognition has been elusive

- -

determined at 2.15-Å resolution

- -

The 6.7-Å map of the Escherichia coli is actually visible as "bumps." Both α-helices and β-sheets

-
- \ No newline at end of file diff --git a/tests/rtf-as-html/wordpad-8bit.html b/tests/rtf-as-html/wordpad-8bit.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/wordpad-cjk.html b/tests/rtf-as-html/wordpad-cjk.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/wordpad-lists.html b/tests/rtf-as-html/wordpad-lists.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-html/wordpad-quotes-fonts.html b/tests/rtf-as-html/wordpad-quotes-fonts.html new file mode 100644 index 0000000..16adaf5 --- /dev/null +++ b/tests/rtf-as-html/wordpad-quotes-fonts.html @@ -0,0 +1,10 @@ + + +
+

Hello, world! Calibri 10

+ +

Normal, bold, italics, bolditalics Calibri 11

+ +

"Straight quotes Arial 12", 'single quotes Tahoma 11', »french quotes Courier New 13«, “unicode double quotes Times New Roman 14”, „german quotes Verdana 16‟.

+
+ \ No newline at end of file diff --git a/tests/rtf-as-html/zh-cn.html b/tests/rtf-as-html/zh-cn.html deleted file mode 100644 index 2e4f0d3..0000000 --- a/tests/rtf-as-html/zh-cn.html +++ /dev/null @@ -1,22 +0,0 @@ - - -
-

{0>PowerDirector needs to install Content Pack Premium before loading your project from PowerDirector Mobile.<}0{>威力导演需要安装内容套件进阶版才能从手机版威力导演加载您的项目。<0}

- -

Enu: Content Pack Premium

- -

Deu: Premium Inhaltspaket

- -

Esp: Paquete de Contenido Premium

- -

Fra: Pack de Contenu Premium

- -

Ita: Pacchetto Contenuti Premium

- -

Chs: 内容套件进阶版

- -

Cht: 內容套件進階版

- -

Kor: 프리미엄 구성팩

-
- \ No newline at end of file diff --git a/tests/rtfs/ansi.rtf b/tests/rtfs/ansi.rtf deleted file mode 100644 index ac83449..0000000 --- a/tests/rtfs/ansi.rtf +++ /dev/null @@ -1,19 +0,0 @@ -{\rtf1\ansi\deff0\adeflang1025 -{\fonttbl{\f0\froman\fprq2\fcharset128 Times New Roman;}{\f1\froman\fprq2\fcharset128 Times New Roman;}{\f2\fswiss\fprq2\fcharset128 Arial;}{\f3\fnil\fprq2\fcharset128 Arial Unicode MS;}} -{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} -{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9\snext1 Normal;} -{\s2\sb240\sa120\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs28\lang1081\ltrch\dbch\langfe2052\hich\f2\fs28\lang9\loch\f2\fs28\lang9\sbasedon1\snext3 Heading;} -{\s3\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9\sbasedon1\snext3 Body Text;} -{\s4\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9\sbasedon3\snext4 List;} -{\s5\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ai\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\i\loch\f0\fs24\lang9\i\sbasedon1\snext5 caption;} -{\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9\sbasedon1\snext6 Index;} -} -{\info{\author Boris Shemigon}{\creatim\yr2011\mo6\dy30\hr11\min11}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern3300}}\deftab709 -{\*\pgdsctbl -{\pgdsc0\pgdscuse195\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}} -\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc -\pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9 {\rtlch \ltrch\loch\f0\fs24\lang9\i0\b0 Apostrophe: `} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9 {\rtlch \ltrch\loch\f0\fs24\lang9\i0\b0 Quotation mark: ' \'81\'67} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9 -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang9\loch\f0\fs24\lang9 {\rtlch \ltrch\loch\f0\fs24\lang9\i0\b0 ` ~ ! @ # $ % ^ & * ( ) - _ = + [ \{ ] \} \\ | ; : ' \'81\'67 , < . > / ?} -\par } \ No newline at end of file diff --git a/tests/rtfs/cjk.rtf b/tests/rtfs/cjk.rtf deleted file mode 100644 index fc82bf9..0000000 --- a/tests/rtfs/cjk.rtf +++ /dev/null @@ -1,197 +0,0 @@ -{\rtf1\adeflang1025\ansi\ansicpg1251\uc1\adeff0\deff0\stshfdbch0\stshfloch39\stshfhich39\stshfbi39\deflang1049\deflangfe1049\themelang1049\themelangfe0\themelangcs1025{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} -{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ????????\'a7\'de\'a1\'ec\'a7\'a1?\'a1\'ec\'a7\'c0?\'a7\'de???\'a1\'ec\'a7\'c0?\'a7\'de\'a1\'ec???\'a7\'de\'a1\'ec\'a7\'a1?};} -{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ????????\'a7\'de\'a1\'ec\'a7\'a1?\'a1\'ec\'a7\'c0?\'a7\'de???\'a1\'ec\'a7\'c0?\'a7\'de\'a1\'ec???\'a7\'de\'a1\'ec\'a7\'a1?};} -{\f39\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria{\*\falt Palatino Linotype};}{\f40\fbidi \fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@SimSun{\*\falt @Batang};} -{\f42\fbidi \fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Lucida Grande{\*\falt Courier New};}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} -{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria{\*\falt Palatino Linotype};} -{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} -{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri{\*\falt Century Gothic};} -{\fbiminor\f31507\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} -{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} -{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} -{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} -{\f177\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt ????????\'a7\'de\'a1\'ec\'a7\'a1?\'a1\'ec\'a7\'c0?\'a7\'de???\'a1\'ec\'a7\'c0?\'a7\'de\'a1\'ec???\'a7\'de\'a1\'ec\'a7\'a1?};} -{\f177\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt ????????\'a7\'de\'a1\'ec\'a7\'a1?\'a1\'ec\'a7\'c0?\'a7\'de???\'a1\'ec\'a7\'c0?\'a7\'de\'a1\'ec???\'a7\'de\'a1\'ec\'a7\'a1?};} -{\f435\fbidi \froman\fcharset238\fprq2 Cambria CE{\*\falt Palatino Linotype};}{\f436\fbidi \froman\fcharset204\fprq2 Cambria Cyr{\*\falt Palatino Linotype};}{\f438\fbidi \froman\fcharset161\fprq2 Cambria Greek{\*\falt Palatino Linotype};} -{\f439\fbidi \froman\fcharset162\fprq2 Cambria Tur{\*\falt Palatino Linotype};}{\f442\fbidi \froman\fcharset186\fprq2 Cambria Baltic{\*\falt Palatino Linotype};}{\f443\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese){\*\falt Palatino Linotype};} -{\f447\fbidi \fnil\fcharset0\fprq2 @SimSun Western{\*\falt @Batang};}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE{\*\falt Palatino Linotype};} -{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr{\*\falt Palatino Linotype};}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek{\*\falt Palatino Linotype};} -{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur{\*\falt Palatino Linotype};}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic{\*\falt Palatino Linotype};} -{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese){\*\falt Palatino Linotype};}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} -{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} -{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} -{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} -{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE{\*\falt Century Gothic};} -{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr{\*\falt Century Gothic};}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek{\*\falt Century Gothic};} -{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur{\*\falt Century Gothic};}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic{\*\falt Century Gothic};} -{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese){\*\falt Century Gothic};}{\fbiminor\f31578\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\fbiminor\f31579\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;} -{\fbiminor\f31581\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\fbiminor\f31582\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\fbiminor\f31583\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);} -{\fbiminor\f31584\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\fbiminor\f31585\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\fbiminor\f31586\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255; -\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0; -\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f39 }{\*\defpap \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{ -\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \f39\fs24\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive -\sunhideused \spriority1 Default Paragraph Font;}{\* -\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv -\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs20\alang1025 \ltrch\fcs0 \f39\fs20\lang1049\langfe1049\cgrid\langnp1049\langfenp1049 \snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 -\additive \rtlch\fcs1 \af0 \ltrch\fcs0 \fs18 \sbasedon10 \ssemihidden \sunhideused annotation reference;}{\s16\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 -\f39\fs24\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 \sbasedon0 \snext16 \slink17 \ssemihidden \sunhideused annotation text;}{\*\cs17 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \fs24\lang1049\langfe0\langnp1049\langfenp0 -\sbasedon10 \slink16 \slocked \ssemihidden \'d2\'e5\'ea\'f1\'f2 \'ef\'f0\'e8\'ec\'e5\'f7\'e0\'ed\'e8\'ff \'c7\'ed\'e0\'ea;}{\s18\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs20\alang1025 -\ltrch\fcs0 \b\f39\fs20\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 \sbasedon16 \snext16 \slink19 \ssemihidden \sunhideused annotation subject;}{\*\cs19 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \b\fs24\lang1049\langfe0\langnp1049\langfenp0 -\sbasedon17 \slink18 \slocked \ssemihidden \'d2\'e5\'ec\'e0 \'ef\'f0\'e8\'ec\'e5\'f7\'e0\'ed\'e8\'ff \'c7\'ed\'e0\'ea;}{\s20\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs18\alang1025 \ltrch\fcs0 -\f42\fs18\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 \sbasedon0 \snext20 \slink21 \ssemihidden \sunhideused Balloon Text;}{\*\cs21 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \f42\fs18\lang1049\langfe0\langnp1049\langfenp0 -\sbasedon10 \slink20 \slocked \ssemihidden \'d2\'e5\'ea\'f1\'f2 \'e2\'fb\'ed\'ee\'f1\'ea\'e8 \'c7\'ed\'e0\'ea;}{\*\cs22 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 \sbasedon10 \styrsid1315994 Hyperlink;}{ -\s23\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f0\hich\af0\dbch\af13\cgrid\langnp1033\langfenp2052 -\sbasedon0 \snext23 \spriority0 \styrsid1315994 Normal + Justified,After: 6 pt;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid285499\rsid883691\rsid1315994\rsid1448965\rsid1473632\rsid2116145\rsid2236454\rsid2585517\rsid2839812 -\rsid3220691\rsid3344199\rsid3364183\rsid3499786\rsid4606158\rsid5652249\rsid6122415\rsid6895244\rsid7238852\rsid7815021\rsid8149825\rsid8194455\rsid8338592\rsid8916959\rsid9128280\rsid9136317\rsid9986322\rsid10093901\rsid10114966\rsid10508456 -\rsid10647182\rsid10831578\rsid10899364\rsid11293666\rsid11609041\rsid11809353\rsid12598372\rsid12741170\rsid12920528\rsid12938974\rsid12992613\rsid13108349\rsid13195034\rsid13315480\rsid13381510\rsid14357409\rsid15405067\rsid15953389\rsid15996949} -{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac1\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Berney Richert}{\operator Dmitry Zaytsev}{\creatim\yr2014\mo5\dy20\hr13\min26} -{\revtim\yr2015\mo5\dy15\hr10\min52}{\version8}{\edmins11}{\nofpages1}{\nofwords0}{\nofchars2}{\*\company Kaspersky LAB}{\nofcharsws2}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}} -\paperw11906\paperh16838\margl1701\margr850\margt1134\margb1134\gutter0\ltrsect -\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen -\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin450\dgvorigin0\dghshow1\dgvshow1 -\jexpand\viewkind5\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct -\asianbrkrule\rsidroot873741\newtblstyruls\nogrowautofit\viewbksp1\utinl \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0\stylesortmethod0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1 -\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5 -\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang -{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11609041 \rtlch\fcs1 \af0\afs24\alang1025 -\ltrch\fcs0 \f39\fs24\lang1049\langfe1033\cgrid\langnp1049\langfenp1033 {\rtlch\fcs1 \af13\afs20 \ltrch\fcs0 \fs20\lang3076\langfe1028\loch\af13\hich\af13\dbch\af13\langnp3076\langfenp1028\insrsid8338592\charrsid3220691 \loch\af13\hich\af13\dbch\f13 -\uc2\u21332\'85\'66\loch\af13\hich\af13\dbch\f13 \u-29840\'d7\'68}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\lang1049\langfe1028\langfenp1028\insrsid10831578\charrsid12741170 -\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a -9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad -5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 -b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 -0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 -a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f -c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 -0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 -a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 -6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b -4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b -4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100a55e7d2dc7060000d71b0000160000007468656d652f7468656d652f -7468656d65312e786d6cec59cf6e1b4518bf23f10ea3bdb7b113278da33a55ecd80db469a3d82dea71bc1eef4e33bbb39a1927f5ad4a8f482044411ca8045c38 -2020528bb8b4efe03e43a0088ad457e09b99ddf54ebca1491b4105cd21de9dfd7dffffcc37bb172fdd8918da2542521e37bceaf98a8748ecf3018d838677a3d7 -39b7ec21a9703cc08cc7a4e18d89f42eadbefbce45bca242121104f4b15cc10d2f542a59999b933e2c63799e27248667432e22ace05604730381f7806fc4e6e6 -2b95a5b908d3d843318e80ede49bc94f93c79303747d38a43ef15633fe6d06426225f582cf4457732719d1d74ff72707932793479383a777e1fa09fc7e6c6807 -3b554d21c7b2c504dac5ace181e801dfeb913bca430c4b050f1a5ec5fc7973ab17e7f04a4ac4d431b405ba8ef94be95282c1cebc9129827e2eb4daa9d52face7 -fc0d80a9595cbbdd6eb5ab393f03c0be0f965b5d8a3c6b9de56a33e35900d9cb59deadca62a5e6e20bfc176674ae379bcdc57aaa8b656a40f6b236835fae2cd5 -d6e61dbc0159fce20cbed65c6bb5961cbc0159fcd20cbe73a1be5473f10614321aefcca075403b9d947b0e1972b6510a5f06f87225854f51900d79b66911431e -ab93e65e846f73d101024dc8b0a23152e3840cb10f89dec2515f50ac05e215820b4fec922f6796b46c247d4113d5f0de4f3014cd94df8bc7dfbf78fc101dee3f -3adcfff9f0debdc3fd1f2d23876a03c74191eaf9b79ffcf9e02efae3e157cfef7f568e9745fcaf3f7cf8cb934fcb81504e53759e7d7ef0dba383675f7cf4fb77 -f74be06b02f78bf01e8d8844d7c81edae6111866bce26a4efae27414bd10d322c55a1c481c632da5847f5b850efada18b3343a8e1e4de27af0a680765206bc3c -baed28dc0dc548d112c957c2c8016e72ce9a5c947ae18a965570736f1407e5c2c5a888dbc678b74c760bc74e7cdba304fa6a96968ee1ad90386a6e311c2b1c90 -9828a49ff11d424aacbb45a9e3d74dea0b2ef950a15b1435312d75498ff69d6c9a126dd008e2322eb319e2edf866f3266a725666f53ad975915015989528df23 -cc71e3653c52382a63d9c3112b3afc2a56619992ddb1f08bb8b65410e980308eda03226519cd7501f616827e0543072b0dfb261b472e5228ba53c6f32ae6bc88 -5ce73bad10474919b64be3b0887d4fee408a62b4c555197c93bb15a2ef210e383e36dc372971c2fdf26e7083068e4ad304d14f46a22496970977f2b73b66434c -4cab8126eff4ea88c67fd7b81985ce6d259c5de38656f9eccb07257abfa92d7b0d76afb29ad938d2a88fc31d6dcf2d2e06f4cdefceeb78146f112888d92dea6d -737edb9cbdff7c733eae9ecfbe254fbb3034683d8bd8c1db8ce1d189a7f02165acabc68c5c95661097b0170d3ab0a8f998432ac94f69490897bab241a0830b04 -36344870f501556137c4090cf1554f330964ca3a9028e1120e9366b994b7c6c34140d9a3e8a23ea4d84e22b1dae403bbbca097b3b348cec66815980370266841 -3338a9b0850b2953b0ed558455b55227965635aa9926e948cb4dd62e36877870796e1a2ce6de842107c168045e5e82d7045a341c7e302303ed771ba32c2c260a -67192219e2014963a4ed9e8d51d50429cb951943b41d3619f4c1f2255e2b48ab6bb6af21ed24412a8aab1d232e8bdeeb4429cbe0699480dbd1726471b138598c -f61a5e7d717ed1433e4e1ade10cecd7019251075a9e74acc02783fe52b61d3fea5c56caa7c1acd7a66985b0455783562fd3e63b0d3071221d53a96a14d0df328 -4d01166b4956fff94570eb591950d28d4ea6c5c23224c3bfa605f8d10d2d190e89af8ac12eac68dfd9dbb495f29122a21b0ef6509f8dc43686f0eb54057b0654 -c2eb0fd311f40dbcbbd3de368fdce69c165df18d99c1d975cc9210a7ed56976856c9166e1a52ae83b92ba807b695ea6e8c3bbd29a6e4cfc894621affcf4cd1fb -09bc8d5818e808f8f0365960a42ba5e171a1420e5d2809a9df11304898de01d902ef7fe1312415bcd336bf82ecea5f5b739687296b3854aa6d1a2041613f52a1 -20640bda92c9be9730aba67b9765c9524626a30aeacac4aadd27bb84f5740f5cd27bbb87424875d34dd236607047f3cfbd4f2ba81fe821a7586f4e27cbf75e5b -03fff4e4638b198c72fbb0196832ffe72ae6e3c17457b5f4863cdb7b8b86e807d331ab965505082b6c05f5b4ec5f5185536eb5b663cd583cbf982907519cb518 -16f3812881774a48ff83fd8f0a9fd9af237a43edf16de8ad083e6e6866903690d5e7ece0817483b48b7d189ceca24d26cdcaba361d9db4d7b2cdfa8c27dd5cee -11676bcd4e12ef533a3b1fce5c714e2d9ea5b3530f3bbeb66bc7ba1a227bb4446169981d6c4c60cc97b5e2972fdebf0d815e876f0823a6a44926f88e2530ccd0 -5d530750fc56a2215dfd0b0000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c73 -2f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761 -be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f9 -80ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca -5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e7465 -6e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c73 -2f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f -7468656d654d616e616765722e786d6c504b01022d0014000600080000002100a55e7d2dc7060000d71b00001600000000000000000000000000d60200007468 -656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d10900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cc0a00000000} -{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d -617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 -6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 -656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} -{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdpriority59 \lsdlocked0 Table Grid; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdlocked0 No Spacing;\lsdqformat1 \lsdpriority1 \lsdlocked0 Medium Grid 2;\lsdpriority60 \lsdlocked0 Medium Grid 3;\lsdpriority61 \lsdlocked0 Dark List; -\lsdpriority62 \lsdlocked0 Colorful Shading;\lsdpriority63 \lsdlocked0 Colorful List;\lsdpriority64 \lsdlocked0 Colorful Grid;\lsdpriority65 \lsdlocked0 Light Shading Accent 1;\lsdpriority66 \lsdlocked0 Light List Accent 1; -\lsdpriority67 \lsdlocked0 Light Grid Accent 1;\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 1;\lsdpriority71 \lsdlocked0 Revision; -\lsdqformat1 \lsdpriority72 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority73 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority60 \lsdlocked0 Intense Quote;\lsdpriority61 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority62 \lsdlocked0 Medium Grid 1 Accent 1; -\lsdpriority63 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority64 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority65 \lsdlocked0 Dark List Accent 1;\lsdqformat1 \lsdpriority34 \lsdlocked0 Colorful List Accent 1; -\lsdqformat1 \lsdpriority29 \lsdlocked0 Colorful Grid Accent 1;\lsdqformat1 \lsdpriority30 \lsdlocked0 Light Shading Accent 2;\lsdpriority66 \lsdlocked0 Light List Accent 2;\lsdpriority67 \lsdlocked0 Light Grid Accent 2; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 2; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority61 \lsdlocked0 Dark List Accent 2;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 2; -\lsdpriority63 \lsdlocked0 Colorful List Accent 2;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority65 \lsdlocked0 Light Shading Accent 3;\lsdpriority66 \lsdlocked0 Light List Accent 3;\lsdpriority67 \lsdlocked0 Light Grid Accent 3; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 3; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority61 \lsdlocked0 Dark List Accent 3;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 3; -\lsdpriority63 \lsdlocked0 Colorful List Accent 3;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority65 \lsdlocked0 Light Shading Accent 4;\lsdpriority66 \lsdlocked0 Light List Accent 4;\lsdpriority67 \lsdlocked0 Light Grid Accent 4; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 4; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority61 \lsdlocked0 Dark List Accent 4;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 4; -\lsdpriority63 \lsdlocked0 Colorful List Accent 4;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority65 \lsdlocked0 Light Shading Accent 5;\lsdpriority66 \lsdlocked0 Light List Accent 5;\lsdpriority67 \lsdlocked0 Light Grid Accent 5; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 5; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority61 \lsdlocked0 Dark List Accent 5;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 5; -\lsdpriority63 \lsdlocked0 Colorful List Accent 5;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority65 \lsdlocked0 Light Shading Accent 6;\lsdpriority66 \lsdlocked0 Light List Accent 6;\lsdpriority67 \lsdlocked0 Light Grid Accent 6; -\lsdpriority68 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority69 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority70 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority71 \lsdlocked0 Medium List 2 Accent 6; -\lsdpriority72 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority73 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority60 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority61 \lsdlocked0 Dark List Accent 6;\lsdpriority62 \lsdlocked0 Colorful Shading Accent 6; -\lsdpriority63 \lsdlocked0 Colorful List Accent 6;\lsdpriority64 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority65 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority66 \lsdlocked0 Intense Emphasis; -\lsdqformat1 \lsdpriority67 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority68 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority69 \lsdlocked0 Book Title;\lsdpriority70 \lsdlocked0 Bibliography; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority71 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; -\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; -\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; -\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; -\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; -\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; -\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; -\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; -\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; -\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; -\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; -\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; -\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; -\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; -\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; -\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; -\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; -\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; -\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; -\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; -\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; -\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; -\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; -\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; -\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 -4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 -d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000007050 -840ce48ed001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000105000000000000}} diff --git a/tests/rtfs/librewriter-8bit.rtf b/tests/rtfs/librewriter-8bit.rtf new file mode 100644 index 0000000..fa6d447 --- /dev/null +++ b/tests/rtfs/librewriter-8bit.rtf @@ -0,0 +1,41 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon15\snext16\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af5\dbch\af6\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon15\snext16\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af5\dbch\af6\afs28\ab\loch\f4\fs28 Heading 3;} +{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;} +{\s16\sbasedon0\snext16\sl288\slmult1\sb0\sa140 Text Body;} +{\s17\sbasedon16\snext17\sl288\slmult1\sb0\sa140\dbch\af7 List;} +{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Caption;} +{\s19\sbasedon0\snext19\noline\dbch\af7 Index;} +{\s20\sbasedon0\snext20\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s21\sbasedon15\snext16\qc\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs56\ab\loch\f4\fs56 Title;} +{\s22\sbasedon15\snext16\qc\sb60\sa120\keepn\dbch\af5\dbch\af6\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy20\hr10\min57}{\revtim\yr2015\mo7\dy20\hr10\min58}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +ASCII: ABCDEFG abcdefg ?!"$%&/\{\}[]#+*~} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Latin 1+9 (western european): \u193\'c1\u194\'c2\u195\'c3\u196\'c4\u197\'c5\u198\'c6 \u250\'fa\u251\'fb\u252\'fc\u339\'9c\u223\'df \u191\'bf \u8364\'80} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Latin 2 (middle european): \u208\'d0 \u258\'3f } +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Latin 5 (Cyrillic): \u386\'3f} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Latin 7 (Greek): \u931\'3f\u937\'3f \u948\'3f\u949\'3f\u960\'3f\u964\'3f} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-bold-italics.rtf b/tests/rtfs/librewriter-bold-italics.rtf new file mode 100644 index 0000000..e04dcca --- /dev/null +++ b/tests/rtfs/librewriter-bold-italics.rtf @@ -0,0 +1,39 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon15\snext16\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af5\dbch\af6\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon15\snext16\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af5\dbch\af6\afs28\ab\loch\f4\fs28 Heading 3;} +{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;} +{\s16\sbasedon0\snext16\sl288\slmult1\sb0\sa140 Text Body;} +{\s17\sbasedon16\snext17\sl288\slmult1\sb0\sa140\dbch\af7 List;} +{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Caption;} +{\s19\sbasedon0\snext19\noline\dbch\af7 Index;} +{\s20\sbasedon0\snext20\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s21\sbasedon15\snext16\qc\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs56\ab\loch\f4\fs56 Title;} +{\s22\sbasedon15\snext16\qc\sb60\sa120\keepn\dbch\af5\dbch\af6\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy20\hr10\min31}{\revtim\yr2015\mo7\dy20\hr10\min32}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Normal }{\b\ab\rtlch \ltrch\loch +bold}{\rtlch \ltrch\loch + }{\i\ai\rtlch \ltrch\loch +italics}{\rtlch \ltrch\loch + }{\i\b\ai\ab\rtlch \ltrch\loch +bolditalics}{\rtlch \ltrch\loch +.} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-cjk.rtf b/tests/rtfs/librewriter-cjk.rtf new file mode 100644 index 0000000..993d44e --- /dev/null +++ b/tests/rtfs/librewriter-cjk.rtf @@ -0,0 +1,33 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon15\snext16\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af5\dbch\af6\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon15\snext16\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af5\dbch\af6\afs28\ab\loch\f4\fs28 Heading 3;} +{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;} +{\s16\sbasedon0\snext16\sl288\slmult1\sb0\sa140 Text Body;} +{\s17\sbasedon16\snext17\sl288\slmult1\sb0\sa140\dbch\af7 List;} +{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Caption;} +{\s19\sbasedon0\snext19\noline\dbch\af7 Index;} +{\s20\sbasedon0\snext20\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s21\sbasedon15\snext16\qc\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs56\ab\loch\f4\fs56 Title;} +{\s22\sbasedon15\snext16\qc\sb60\sa120\keepn\dbch\af5\dbch\af6\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy20\hr10\min27}{\revtim\yr2015\mo7\dy20\hr10\min28}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\dbch +\u21332\'3f\u35696\'3f} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-hyperlink.rtf b/tests/rtfs/librewriter-hyperlink.rtf new file mode 100644 index 0000000..13e0648 --- /dev/null +++ b/tests/rtfs/librewriter-hyperlink.rtf @@ -0,0 +1,36 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon16\snext17\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon16\snext17\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af5\dbch\af6\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon16\snext17\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af5\dbch\af6\afs28\ab\loch\f4\fs28 Heading 3;} +{\*\cs15\snext15\cf2\ul\ulc0\langfe255\alang255\lang255 Internet Link;} +{\s16\sbasedon0\snext17\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;} +{\s17\sbasedon0\snext17\sl288\slmult1\sb0\sa140 Text Body;} +{\s18\sbasedon17\snext18\sl288\slmult1\sb0\sa140\dbch\af7 List;} +{\s19\sbasedon0\snext19\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Caption;} +{\s20\sbasedon0\snext20\noline\dbch\af7 Index;} +{\s21\sbasedon0\snext21\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s22\sbasedon16\snext17\qc\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs56\ab\loch\f4\fs56 Title;} +{\s23\sbasedon16\snext17\qc\sb60\sa120\keepn\dbch\af5\dbch\af6\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy20\hr11\min8}{\revtim\yr2015\mo7\dy20\hr11\min9}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +This is a }{{\field{\*\fldinst HYPERLINK "http://www.example.com/~page?arg=value;arg2=v2" }{\fldrslt {\cf2\ul\ulc0\langfe255\alang255\lang255\rtlch \ltrch\loch +hyperlink}{}}}\rtlch \ltrch\loch +.} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-lists.rtf b/tests/rtfs/librewriter-lists.rtf new file mode 100644 index 0000000..f3b6b33 --- /dev/null +++ b/tests/rtfs/librewriter-lists.rtf @@ -0,0 +1,75 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq0\fcharset2 OpenSymbol{\*\falt Arial Unicode MS};}{\f6\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f7\fnil\fprq2\fcharset0 Mangal;}{\f8\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon17\snext18\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af6\dbch\af7\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon17\snext18\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af6\dbch\af7\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon17\snext18\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af6\dbch\af7\afs28\ab\loch\f4\fs28 Heading 3;} +{\*\cs15\snext15\dbch\af5\dbch\af5\loch\f5 Bullets;} +{\*\cs16\snext16 Numbering Symbols;} +{\s17\sbasedon0\snext18\sb240\sa120\keepn\dbch\af6\dbch\af7\afs28\loch\f4\fs28 Heading;} +{\s18\sbasedon0\snext18\sl288\slmult1\sb0\sa140 Text Body;} +{\s19\sbasedon18\snext19\sl288\slmult1\sb0\sa140\dbch\af8 List;} +{\s20\sbasedon0\snext20\sb120\sa120\noline\i\dbch\af8\afs24\ai\fs24 Caption;} +{\s21\sbasedon0\snext21\noline\dbch\af8 Index;} +{\s22\sbasedon0\snext22\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s23\sbasedon17\snext18\qc\sb240\sa120\keepn\b\dbch\af6\dbch\af7\afs56\ab\loch\f4\fs56 Title;} +{\s24\sbasedon17\snext18\qc\sb60\sa120\keepn\dbch\af6\dbch\af7\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +{\list\listtemplateid2 +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li720} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9702 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li1080} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9642 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li1440} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li1800} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9702 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li2160} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9642 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li2520} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li2880} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9702 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li3240} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u9642 ?;}{\levelnumbers;}\f5\dbch\af5\fi-360\li3600}\listid2} +{\list\listtemplateid3 +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\fi-360\li720} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\fi-360\li1080} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\fi-360\li1440} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\fi-360\li1800} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\fi-360\li2160} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\fi-360\li2520} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\fi-360\li2880} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'07.;}{\levelnumbers\'01;}\fi-360\li3240} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'08.;}{\levelnumbers\'01;}\fi-360\li3600}\listid3} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy19\hr15\min38}{\revtim\yr2015\mo7\dy19\hr15\min43}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Plain paragraph.} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u8226\'95\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +Ul item one} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u8226\'95\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +ul item two (this one with a longer line to see what a continuation line will look like that is likely, if not sure, to result here)} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u9702\'3f\tab}\ilvl1\ls2 \li1080\ri0\lin1080\rin0\fi-360{\rtlch \ltrch\loch +ul ul item one} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u9702\'3f\tab}\ilvl1\ls2 \li1080\ri0\lin1080\rin0\fi-360{\rtlch \ltrch\loch +ul ul item two} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain \dbch\af5\dbch\af5\loch\f5 \u8226\'95\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +ul item three} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Second plain paragraph.\line Second line after a linebreak.} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain 1.\tab}\ilvl0\ls3 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +Ol item one} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain 2.\tab}\ilvl0\ls3 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch +ol item two} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\listtext\pard\plain 1.\tab}\ilvl1\ls3 \li1080\ri0\lin1080\rin0\fi-360{\rtlch \ltrch\loch +ol ol item one (in Writer numbered '1.')} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af9\langfe2052\dbch\af7\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +END.} +\par } \ No newline at end of file diff --git a/tests/rtfs/librewriter-quotes-fonts.rtf b/tests/rtfs/librewriter-quotes-fonts.rtf new file mode 100644 index 0000000..576d04c --- /dev/null +++ b/tests/rtfs/librewriter-quotes-fonts.rtf @@ -0,0 +1,58 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\froman\fprq0\fcharset128 Liberation Serif{\*\falt Times New Roman};}{\f6\fswiss\fprq2\fcharset128 Arial;}{\f7\fswiss\fprq2\fcharset128 DejaVu Sans;}{\f8\fmodern\fprq1\fcharset128 DejaVu Sans Mono;}{\f9\froman\fprq2\fcharset128 Times New Roman;}{\f10\froman\fprq2\fcharset128 DejaVu Serif;}{\f11\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f12\fnil\fprq2\fcharset0 Mangal;}{\f13\fnil\fprq0\fcharset128 Mangal;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031 Normal;} +{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af11\dbch\af12\afs36\ab\loch\f4\fs36 Heading 1;} +{\s2\sbasedon15\snext16\ilvl1\outlinelevel1\sb200\sa120\keepn\b\dbch\af11\dbch\af12\afs32\ab\loch\f4\fs32 Heading 2;} +{\s3\sbasedon15\snext16\ilvl2\outlinelevel2\sb140\sa120\keepn\b\dbch\af11\dbch\af12\afs28\ab\loch\f4\fs28 Heading 3;} +{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af11\dbch\af12\afs28\loch\f4\fs28 Heading;} +{\s16\sbasedon0\snext16\sl288\slmult1\sb0\sa140 Text Body;} +{\s17\sbasedon16\snext17\sl288\slmult1\sb0\sa140\dbch\af13 List;} +{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af13\afs24\ai\fs24 Caption;} +{\s19\sbasedon0\snext19\noline\dbch\af13 Index;} +{\s20\sbasedon0\snext20\li567\ri567\lin567\rin567\fi0\sb0\sa283 Quotations;} +{\s21\sbasedon15\snext16\qc\sb240\sa120\keepn\b\dbch\af11\dbch\af12\afs56\ab\loch\f4\fs56 Title;} +{\s22\sbasedon15\snext16\qc\sb60\sa120\keepn\dbch\af11\dbch\af12\afs36\loch\f4\fs36 Subtitle;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/4.4.4.3$Windows_x86 LibreOffice_project/2c39ebcf046445232b798108aa8a7e7d89552ea8}{\info{\creatim\yr2015\mo7\dy19\hr16\min1}{\revtim\yr2015\mo7\dy19\hr16\min25}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab709 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Style;}} +\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch +Hello, world! Liberation Serif 12} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031{\afs22\rtlch \ltrch\loch\fs22 +Normal, }{\b\afs22\ab\rtlch \ltrch\loch\fs22 +bold}{\afs22\rtlch \ltrch\loch\fs22 +, }{\i\afs22\ai\rtlch \ltrch\loch\fs22 +italics}{\afs22\rtlch \ltrch\loch\fs22 +, }{\i\b\afs22\ai\ab\rtlch \ltrch\loch\fs22 +bolditalics}{\afs22\rtlch \ltrch\loch\fs22 + Liberation Serif 11.} +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031\rtlch \ltrch\loch + +\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af14\langfe2052\dbch\af12\afs24\alang1081\loch\f3\fs24\lang1031{\rtlch \ltrch\loch\loch\f6 +"Straight quotes Arial 12",}{\rtlch \ltrch\loch\loch\f7 + 'single quotes }{\rtlch \ltrch\loch\loch\f7 +DejaVu Sans}{\rtlch \ltrch\loch\loch\f7 + 1}{\rtlch \ltrch\loch\loch\f7 +2}{\rtlch \ltrch\loch\loch\f7 +',}{\afs26\rtlch \ltrch\loch\fs26\loch\f8 + \u187\'3ffrench quotes }{\afs26\rtlch \ltrch\loch\fs26\loch\f8 +DevaVu Sans Mono}{\afs26\rtlch \ltrch\loch\fs26\loch\f8 + 13\u171\'3f,}{\afs28\rtlch \ltrch\loch\fs28\loch\f9 + \uc2 \u8220\'81\'67unicode double quotes Times New Roman 14\u8221\'81\'68,\uc1 }{\afs32\rtlch \ltrch\loch\fs32\loch\f10 + \u8222\'3fgerman quotes }{\afs32\rtlch \ltrch\loch\fs32\loch\f10 +DejaVu Serif}{\afs32\rtlch \ltrch\loch\fs32\loch\f10 + 16\u8223\'3f}{\rtlch \ltrch\loch +.} +\par } \ No newline at end of file diff --git a/tests/rtfs/minimal.rtf b/tests/rtfs/minimal.rtf deleted file mode 100644 index 1318aa4..0000000 --- a/tests/rtfs/minimal.rtf +++ /dev/null @@ -1,4 +0,0 @@ -{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard -This is \par -some {\b bold} text.\par -} \ No newline at end of file diff --git a/tests/rtfs/msword-8bit.rtf b/tests/rtfs/msword-8bit.rtf new file mode 100644 index 0000000..2a3eae3 --- /dev/null +++ b/tests/rtfs/msword-8bit.rtf @@ -0,0 +1,211 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f695\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f696\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f698\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f699\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f702\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f703\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} +{\*\rsidtbl \rsid1598277\rsid6581997\rsid12398161\rsid12731110}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz}{\operator Prechelt, Lutz} +{\creatim\yr2015\mo7\dy20\hr10\min38}{\revtim\yr2015\mo7\dy20\hr10\min57}{\version2}{\edmins0}{\nofpages1}{\nofwords24}{\nofchars141}{\*\company FU Berlin, FBs IMP}{\nofcharsws164}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word +/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot6581997\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid6581997 ASCII: ABCDEFG abcdefg}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid12731110 + ?!"$%&/\{\}[]#+*~}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid656671 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6581997\charrsid6581997 Latin 1+9 (western european): \'c1\'c2\'c3\'c4\'c5\'c6 \'fa\'fb\'fc\'9c\'df \'bf }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6581997 \'80}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid6581997\charrsid6581997 +\par Latin 2 (middle european): }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 \'d0 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f31568\insrsid12731110\charrsid12731110 \'c3}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid6581997 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 Latin 5 (Cyrillic): }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 \u386\'3f}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 +\par Latin 7 (Greek): }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f31571\insrsid12731110 \'d3\'d9}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12731110 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \f31571\insrsid12731110 \'e4\'e5\'f0\'f4}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid12731110\charrsid12731110 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000010ed +060bcac2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/msword-cjk.rtf b/tests/rtfs/msword-cjk.rtf new file mode 100644 index 0000000..a416cd5 --- /dev/null +++ b/tests/rtfs/msword-cjk.rtf @@ -0,0 +1,213 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt SimSun};}{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt SimSun};} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f104\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@SimSun{\*\falt @Batang};} +{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};} +{\f328\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f329\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\f331\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f332\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\f333\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f334\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\f335\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f336\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f460\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};} +{\f460\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f698\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f699\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f701\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;} +{\f702\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f705\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f706\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f1370\fbidi \fnil\fcharset0\fprq2 @SimSun Western{\*\falt @Batang};} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} +{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);} +{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};} +{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};} +{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};} +{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};} +{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};} +{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};} +{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0; +\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 +}{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 +\rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} +{\*\rsidtbl \rsid1598277\rsid2129023\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz}{\operator Prechelt, Lutz} +{\creatim\yr2015\mo7\dy20\hr10\min26}{\revtim\yr2015\mo7\dy20\hr10\min26}{\version1}{\edmins0}{\nofpages1}{\nofwords0}{\nofchars2}{\*\company FU Berlin, FBs IMP}{\nofcharsws2}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003 +/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot2129023\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af13\afs20 \ltrch\fcs0 \fs20\lang3076\langfe1028\loch\af13\hich\af13\dbch\af13\langnp3076\langfenp1028\insrsid2129023\charrsid3220691 \loch\af13\hich\af13\dbch\f13 \uc2\u21332 +\'85\'66\u-29840\'d7\'68}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid656671 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000303e +decbc5c2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/msword-hyperlink.rtf b/tests/rtfs/msword-hyperlink.rtf new file mode 100644 index 0000000..d1c2aa9 --- /dev/null +++ b/tests/rtfs/msword-hyperlink.rtf @@ -0,0 +1,208 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f695\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f696\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f698\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f699\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f702\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f703\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\chyperlink\ctint255\cshade255\red5\green99\blue193;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 \additive +\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf17 \sbasedon10 \sunhideused \styrsid983678 Hyperlink;}}{\*\rsidtbl \rsid983678\rsid1598277\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440 +\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz}{\operator Prechelt, Lutz}{\creatim\yr2015\mo7\dy20\hr11\min4}{\revtim\yr2015\mo7\dy20\hr11\min7}{\version1}{\edmins0}{\nofpages1}{\nofwords12}{\nofchars73}{\*\company FU Berlin, FBs IMP}{\nofcharsws84} +{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot983678\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid983678 This is a }{\field{\*\fldinst {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid983678 +HYPERLINK "http://www.example.com/~page?arg=value;arg2=v2" }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid983678 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7600000068007400740070003a002f002f007700770077002e006500780061006d0070006c0065002e0063006f006d002f007e0070006100670065003f006100720067003d00760061006c00750065003b0061007200 +670032003d00760032000000795881f43b1d7f48af2c825dc485276300000000a5ab0000}}}{\fldrslt {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cs15\ul\cf17\lang1031\langfe1033\langnp1031\insrsid983678\charrsid983678 hyperlink}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid983678 .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1031\langfe1033\langnp1031\insrsid656671\charrsid983678 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000000023 +c57fcbc2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/msword-lists.rtf b/tests/rtfs/msword-lists.rtf new file mode 100644 index 0000000..27fdfaf --- /dev/null +++ b/tests/rtfs/msword-lists.rtf @@ -0,0 +1,242 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;} +{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f59\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f60\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} +{\f62\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f63\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f64\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f65\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} +{\f66\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f67\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f417\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{ +\s15\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext15 \sqformat \spriority34 \styrsid15357058 List Paragraph;}}{\*\listtable{\list\listtemplateid-937505194\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext +\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;} +\f2\fbias0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 +\fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\lin2880 } +{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative +\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\lin6480 }{\listname ;}\listid805126674}{\list\listtemplateid-729661720\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698703\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext +\leveltemplateid67698713\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698715\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698703\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698713\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698715\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698703\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698713\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698715\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li6480\lin6480 }{\listname ;}\listid1814789581}}{\*\listoverridetable{\listoverride\listid805126674\listoverridecount0\ls1}{\listoverride\listid1814789581 +\listoverridecount0\ls2}}{\*\rsidtbl \rsid1598277\rsid12398161\rsid15357058}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz} +{\operator Prechelt, Lutz}{\creatim\yr2015\mo7\dy19\hr15\min15}{\revtim\yr2015\mo7\dy19\hr15\min17}{\version1}{\edmins0}{\nofpages1}{\nofwords30}{\nofchars177}{\*\company FU Berlin, FBs IMP}{\nofcharsws206}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas +.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot15357058\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid15357058 Plain paragraph}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid656671 +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s15\ql \fi-360\li720\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0\pararsid15357058\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 +\ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid15357058 ul item one +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}ul item two +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af2\afs22 \ltrch\fcs0 \f2\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \hich\af2\dbch\af31506\loch\f2 o\tab}}\pard \ltrpar\s15\ql \fi-360\li1440\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls1\ilvl1\adjustright\rin0\lin1440\itap0\pararsid15357058\contextualspace {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid15357058 ul ul item one +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af2\afs22 \ltrch\fcs0 \f2\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \hich\af2\dbch\af31506\loch\f2 o\tab}ul ul item two +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\lang1031\langfe1033\langnp1031\insrsid15357058 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}}\pard \ltrpar\s15\ql \fi-360\li720\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0\pararsid15357058\contextualspace {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1031\langfe1033\langnp1031\insrsid15357058 ul item three +\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15357058 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid15357058\charrsid15357058 Second plain paragraph.\line Second line after a linebreak. +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid15357058 \hich\af31506\dbch\af31506\loch\f31506 1.\tab}}\pard\plain \ltrpar\s15\ql \fi-360\li720\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid15357058\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 +\ltrch\fcs0 \insrsid15357058 ol item one +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid15357058 \hich\af31506\dbch\af31506\loch\f31506 2.\tab}ol item two +\par {\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid15357058 \hich\af31506\dbch\af31506\loch\f31506 a.\tab}}\pard \ltrpar\s15\ql \fi-360\li1440\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls2\ilvl1\adjustright\rin0\lin1440\itap0\pararsid15357058\contextualspace {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid15357058 ol ol item one (in Word numbered 'a.') +\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15357058 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid15357058 END.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid15357058\charrsid15357058 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000010d6 +6e5525c2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/msword-quotes-fonts.rtf b/tests/rtfs/msword-quotes-fonts.rtf index a07408a..500a870 100644 --- a/tests/rtfs/msword-quotes-fonts.rtf +++ b/tests/rtfs/msword-quotes-fonts.rtf @@ -1,16 +1,21 @@ -{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f166\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} +{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} {\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} {\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} {\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} -{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f299\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f300\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f302\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f303\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f304\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f305\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f306\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f307\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f299\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f300\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f302\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f303\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f304\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f305\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f306\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f307\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f669\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f670\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} -{\f672\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f673\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f676\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f677\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} -{\f1959\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f1960\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f1962\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f1963\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;} -{\f1966\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f1967\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f325\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f326\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f328\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f329\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f330\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f331\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f332\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f333\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f335\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f336\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;} +{\f338\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f339\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f340\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f341\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);} +{\f342\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f343\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f345\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f346\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} +{\f348\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f349\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f350\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f351\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} +{\f352\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f353\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f345\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f346\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} +{\f348\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f349\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f350\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f351\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} +{\f352\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f353\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f695\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f696\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f698\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f699\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f702\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f703\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\f715\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f716\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f718\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f719\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;} +{\f722\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f723\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} {\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} {\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} {\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} @@ -36,9 +41,9 @@ \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 \widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} -{\*\rsidtbl \rsid656671\rsid1598277\rsid7410800\rsid10105401\rsid10633277\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Prechelt, Lutz} -{\operator Prechelt, Lutz}{\creatim\yr2015\mo6\dy27\hr11\min55}{\revtim\yr2015\mo6\dy28\hr12\min28}{\version2}{\edmins0}{\nofpages1}{\nofwords13}{\nofchars79}{\*\company FU Berlin, FBs IMP}{\nofcharsws91}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.m -icrosoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +{\*\rsidtbl \rsid656671\rsid1598277\rsid3224959\rsid7410800\rsid10105401\rsid10633277\rsid12398161}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info +{\author Prechelt, Lutz}{\operator Prechelt, Lutz}{\creatim\yr2015\mo6\dy27\hr11\min55}{\revtim\yr2015\mo7\dy19\hr16\min1}{\version3}{\edmins0}{\nofpages1}{\nofwords28}{\nofchars161}{\*\company FU Berlin, FBs IMP}{\nofcharsws188}{\vern57439}} +{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen \expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 \jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct @@ -49,10 +54,15 @@ icrosoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr14 {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7410800\charrsid10105401 Hello}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10633277 ,}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7410800\charrsid10105401 world!}{ \rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10633277 -\par }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\insrsid10105401\charrsid10105401 "Straight quotes",}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10105401\charrsid10105401 }{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \f166\fs26\insrsid10105401\charrsid10105401 \'bb}{ -\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \fs26\insrsid10105401\charrsid10105401 french quotes}{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \f166\fs26\insrsid10105401\charrsid10105401 \'ab}{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \fs26\insrsid10105401\charrsid10105401 , }{ -\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 \f0\fs28\insrsid10105401\charrsid10633277 \'93unicode double quotes\'94,}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f166\insrsid10105401 }{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f166\fs32\insrsid10105401\charrsid10105401 \'84 -german quotes\u8223\'3f}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f166\fs32\insrsid10633277 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f166\insrsid10105401\charrsid10633277 +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3224959 Normal, }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid3224959\charrsid3224959 bold}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3224959 , }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid3224959\charrsid3224959 italics}{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3224959 , }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\i\insrsid3224959\charrsid3224959 bolditalics}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3224959 Calibri +\par }{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid10105401\charrsid3224959 "Straight quotes}{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid3224959\charrsid3224959 Arial}{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid3224959 12}{\rtlch\fcs1 +\af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid10105401\charrsid3224959 "}{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid3224959 ,}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10105401\charrsid10105401 }{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 +\f2\fs26\insrsid10105401\charrsid3224959 \'bbfrench quotes}{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 \f2\fs26\insrsid3224959\charrsid3224959 Courier}{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 \f2\fs26\insrsid3224959 New}{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 +\f2\fs26\insrsid3224959\charrsid3224959 13}{\rtlch\fcs1 \af2\afs26 \ltrch\fcs0 \f2\fs26\insrsid10105401\charrsid3224959 \'ab,}{\rtlch\fcs1 \af0\afs26 \ltrch\fcs0 \fs26\insrsid10105401\charrsid10105401 }{\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 +\f0\fs28\insrsid10105401\charrsid10633277 \'93unicode double quotes}{\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 \f0\fs28\insrsid3224959 Times New Roman 14}{\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 \f0\fs28\insrsid10105401\charrsid10633277 \'94,}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \f39\insrsid10105401 }{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f39\fs32\insrsid10105401\charrsid10105401 \'84german quotes}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f39\fs32\insrsid3224959 Verdana 16}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 +\f39\fs32\insrsid10105401\charrsid10105401 \u8223\'3f}{\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \f39\fs32\insrsid10633277 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f39\insrsid10105401\charrsid10633277 \par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a 9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad 5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 @@ -192,8 +202,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b06f -353a8db1d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000070e4 +90692bc2d001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/rtfs/sample.rtf b/tests/rtfs/sample.rtf deleted file mode 100644 index 5bdbeb8..0000000 --- a/tests/rtfs/sample.rtf +++ /dev/null @@ -1,54 +0,0 @@ -{\rtf1\ansi\deff1\adeflang1025 -{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Calibri;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\fnil\fprq0\fcharset128 Symbol;}{\f4\fmodern\fprq1\fcharset128 Courier New;}{\f5\fnil\fprq0\fcharset128 Wingdings;}{\f6\fnil\fprq2\fcharset0 DejaVu Sans;}{\f7\fnil\fprq2\fcharset0 ;}{\f8\fnil\fprq2\fcharset0 Courier New;}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red128\green128\blue128;} -{\stylesheet{\s1\sa200\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\snext1 Normal;} -{\s2\sb240\sa120\keepn\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af6\afs28\lang1025\ltrch\dbch\langfe1033\hich\f2\fs28\lang1033\loch\f2\fs28\lang1033\sbasedon1\snext3 Heading;} -{\s3\sa120\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon1\snext3 Body Text;} -{\s4\sa120\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon3\snext4 List;} -{\s5\sb120\sa120\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs24\lang1025\ai\ltrch\dbch\af6\langfe1033\hich\f1\fs24\lang1033\i\loch\f1\fs24\lang1033\i\sbasedon1\snext5 caption;} -{\s6\sa200\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon1\snext6 Index;} -{\s7\li720\ri0\lin720\rin0\fi0\sa200\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon1\snext7 List Paragraph;} -{\*\cs9\cf0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 Default Paragraph Font;} -{\*\cs10\cf0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 DocumentMap;} -{\*\cs11\cf0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 No List;} -{\*\cs12\cf0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon9 storyhead;} -{\*\cs13\cf2\ul\ulc0\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033\sbasedon9 Internet link;} -{\*\cs14\cf0\rtlch\af8\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 ListLabel 1;} -}{\*\listtable{\list\listtemplateid1 -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f3\fi-360\li720} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f8\f4\fi-360\li1440} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f5\fi-360\li2160} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f3\fi-360\li2880} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f8\f4\fi-360\li3600} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f5\fi-360\li4320} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f3\fi-360\li5040} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f8\f4\fi-360\li5760} -{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f5\fi-360\li6480}\listid1} -}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls0}} - -{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709 -{\*\pgdsctbl -{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\pgdscnxt0 Standard;}} -\paperh15840\paperw12240\margl1440\margr1440\margt1440\margb1440\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc -\pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0\ltrch\dbch\hich\b\loch\b Louis J. Pt\'e1\u269\'3fek, M.D.} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\ltrch\dbch\hich\b\loch\b Italics, accented letters, em dashes:}}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 Pt\'e1\u269\'3fek collaborated with Jones. what is called familial advanced sleep-phase syndrome (FASPS)\'97or very early risers\'97and has found almost 90 families.{\rtlch\ltrch\dbch\hich\i\loch\i Novel players in presynaptic vesicle trafficking.} To identify mutatio -ns in novel genes as well as genes that have previously been implicated in SV trafficking, we used the eyeless-FLP/FRT system to carry out four chemical mutagenesis screens. with apparent normal eye morphology (300,000 flies) for their ability to phototax -(retained 10,000).} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\ltrch\dbch\hich\b\loch\b Lots of Greek letters and symbols: }}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\rtlch\ltrch\dbch\hich\b\loch\b \line }The combined incidence of \u945\'3f and \u954\'3f and \u946\'3f and \u966\'3f and \u8805\'3f and d\'e9tected \'b5m and \'b1 and \'e1 and \'e3 and \'fc and \'89 and \'97 and \'a9 and \'85 and \u948\'3f and \u955\'3f and \u954\'3f and de novo rearrangements that are mediated by segmental duplications is estimated at - 1/1,000 live births. \u8592\'3f arrows \u8594\'3f fraction \u8541\'3f symbol \u8805\'3f This includes 3 percent of ~130 regions of the human genome that we believe show a predilection\'96to\'96segmental\'96aneusomy.} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 These are {\ltrch\dbch\hich\b\loch\b accented letters}: \u971\'3f \u972\'3f \'eb \'e9 \'e8 \'e5 \u283\'3f} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\ltrch\dbch\hich\b\loch\b Hyperlinks:}}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 In collaboration with the laboratories of {\field{\*\fldinst HYPERLINK "http://www.hhmi.org/research/investigators/spradling.html" }{\fldrslt \*\cs13\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 Allan Spradling}} (HHMI, Carnegie Institution of Washington), Roger Hoskins (Lawrence Berkeley National Laboratory), and {\field{\*\fldinst HYPERLINK "http://www.hhmi.org/research/groupleaders/rubin.html" }{\fldrslt \*\cs13\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 Gerald Rubin}} via \u934\'3fC31-mediated integration ({\field{\*\fldinst HYPERLINK "http://flypush.imgen.bcm.tmc.edu/lab/pacman.html" }{\fldrslt \*\cs13\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 http://flypush.imgen.bcm.tmc.edu/lab/pa -cman.html}}).} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0\ltrch\dbch\hich\b\loch\b Pamela J. Bj\'f6rkman, Ph.D.} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\ltrch\dbch\hich\b\loch\b Subscripts and superscripts:}}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 the polymeric immunoglobulin receptor (CO{{\*\updnprop5801}\dn9 2}), which CO{{\*\updnprop5801}\up9 2} transports polymeric antibodies into secretions, and gE-gI, a viral Fc receptor for IgG. H{{\*\updnprop5801}\dn9 2}O is not H{{\*\updnprop5801}\up9 2}O or V{{\*\updnprop5801}\dn9 0}.} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0\ltrch\dbch\hich\b\loch\b Bulleted list:} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{\rtlch\ltrch\dbch\hich\b\loch\b In Vitro Reconstitution of Ca}}{\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0{{\*\updnprop5801}\up9\rtlch\ltrch\dbch\hich\b\loch\b 2+}{\rtlch\ltrch\dbch\hich\b\loch\b -Triggered Synaptic Vesicle Fusion}} -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 CNTs bind with high specificity } -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 at neuromuscular junctions } -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 The molecular details of the toxin-cell } -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 recognition has been elusive } -\par \pard\plain {\listtext\pard\plain \li1440\ri0\lin1440\rin0\fi-360 \u61623\'3f\tab}\ilvl0 \ltrpar\s7\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li1440\ri0\lin1440\rin0\fi-360\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 determined at 2.15-\'c5 resolution} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 {\rtlch \ltrch\loch\f1\fs22\lang1033\i0\b0 The 6.7-\'c5 map of the {\rtlch\ltrch\dbch\hich\i\loch\i Escherichia coli} is actually visible as "bumps." Both \u945\'3f-helices and \u946\'3f-sheets} -\par \pard\plain \ltrpar\s1\sl276\slmult1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\ql\rtlch\af7\afs22\lang1025\ltrch\dbch\af6\langfe1033\hich\f1\fs22\lang1033\loch\f1\fs22\lang1033 -\par } \ No newline at end of file diff --git a/tests/rtfs/wordpad-8bit.rtf b/tests/rtfs/wordpad-8bit.rtf new file mode 100644 index 0000000000000000000000000000000000000000..8d0cf911b4a1795a3214094de481a7ce3cdb175f GIT binary patch literal 501 zcmY+BOK$=p6otF?SJ3BJO)N0Z_*xh{ZH-C0>aw>BW&le>Gz``>X8PNEaZ^n=H-wLz zdoCQn2hBjZ+8j%@T{50=kV>ToRc!v2oW;y%EP3r(1SSqKy2pdn{Y8{j`fn>ct>v3Eeqmu@{joPn_lYQ7#47S2c zs0F7KYRd;X*7eQ?1~K~Jn6~De%-)N|VoYX_#nbc4oQSf*>6T=Ad3AGp_W%cIK0dFz zo!{u!dKJMq!nz~U-m5w&?}*y@%~lC_KPHf1+oa;C6xBy%s2qV7s1j8{GD1m>hh;27 zdg9DUdu^n&>fBaR5+4w4$;su6w2L2atTk0^zDtMs^aKw`d+wE5MW!*6#7uI89Tf&s R7!3a_(f#-kakQp&@drJVqI3WN literal 0 HcmV?d00001 diff --git a/tests/rtfs/wordpad-bold-italics.rtf b/tests/rtfs/wordpad-bold-italics.rtf index bd25bbf589dbfd4757e1c84e3c9f661df8ee36a7..73c1cb1fced0bdb2ce7517db3f1d858978d0793c 100644 GIT binary patch delta 14 VcmaFC_>^%%z{J3bEL^o*3;-+c1h@bI delta 18 ZcmaFL_=0gl03+|jfQf9pT(!Jh3;;Va1mOSx diff --git a/tests/rtfs/a.rtf b/tests/rtfs/wordpad-cjk.rtf similarity index 54% rename from tests/rtfs/a.rtf rename to tests/rtfs/wordpad-cjk.rtf index 9b37b080d11d5c53a1e49ef245a02e109215bc8d..053dbbb8788bd36996c95a12572c7549a6ab8274 100644 GIT binary patch delta 80 zcmaFO_=ItSi@US>{AT5?8WQE_UCfr4{lPG(Y3rgd%Y g#K36j7@)}Rm;Ty0CN%=VgLXD delta 87 zcmaFD_?mHo3$KBKb7D?rQc3=@TN!Ey#M1&KwxT(!Jh3;-`f9UTAw diff --git a/tests/rtfs/wordpad-lists.rtf b/tests/rtfs/wordpad-lists.rtf new file mode 100644 index 0000000000000000000000000000000000000000..bcd240e5fe841b74037e132495ec5718ed91806e GIT binary patch literal 1211 zcmcJPO>f&U42E~kui#GU3e1p{rWugizHS?abwDq=(6*ciRU|>8`?0|PeUy`+*qR`h z6%Yj4q{J8GLv3}UPHOboj$0E~Qq7faP1lLCJM=3lW^${$;E8I-hR~h2PIt{3Q#K^v z6FOTbyBydl|8^?4dD_&$Er(&U)t7o@yh%tQ!MEIzX)VFLx{{URHJ4&J=zD7(?yPUG zbl*rFF||6Q5<+LE7T3IQdPhrGZR|(^~D(5ES;jNCI%p(H zShLJa{>#hVyV?;O?2Mk18c$+8@kn(E9|qmo_p@uEon0u_@KOo%4lJ1s1aHQ)$1)yb z=pnp@G$}ru)OJXHM&2Rpl@y*U9<7tvm2d3Y(L&#tCioWOzrA+W8`wKX8=0&G2<4+r z2JepYAV5|xaR}{G;Xyp}z*Z(q%v@wZnmry^G12GY2q)nXpmymGAtx#?VD|rHo&<$O z9CR=!aN+w+ZIWqWI;*C@vvnI%8?k-+?wQ}CO}f|zPBZ-c^%Xjv^fDdxH{a!KrVJRP s;fDh#0QZy1;9^5PI;eZ+Oo`ww^PEC?VAy3+u6Aj^eE+;_10oX)dt98U;fFY<;l&-#bvdN>)N6 z;63J{Z%&wsV9Y+Aq69^;&xN$_lr%`hwtFYaJ+mEk8f3C*-wntq$4WuS=j z>V#i$GQlKSVuByp7NcE(&3fQ#L2JX=!x{fLb9{9{4>*q;-(=F5rCTL;kP42P_lQ&n(Kjze`s~*Ch z#TGlIY%*coUtJ&Q1Mjhus=8?gS?thj~Gu0Rwc{lH8e9I`x%N3K8n3rxIlV%iCkXXdaRm;o8000~H3`PI| From 96ffe961ab08deca9ca318e483aa8abe24cc1934 Mon Sep 17 00:00:00 2001 From: randlet Date: Fri, 19 Aug 2016 15:11:01 -0400 Subject: [PATCH 13/20] fix PlaintextWriter encoding --- pyth/plugins/plaintext/writer.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pyth/plugins/plaintext/writer.py b/pyth/plugins/plaintext/writer.py index 9adab08..ccc5636 100644 --- a/pyth/plugins/plaintext/writer.py +++ b/pyth/plugins/plaintext/writer.py @@ -15,7 +15,7 @@ def write(klass, document, target=None, encoding="utf-8", newline="\n"): if target is None: target = StringIO() - writer = PlaintextWriter(document, target, encoding, newline.encode(encoding)) + writer = PlaintextWriter(document, target, encoding, newline) return writer.go() @@ -32,13 +32,13 @@ def __init__(self, doc, target, encoding, newline): def go(self): + np = len(self.document.content) for (i, paragraph) in enumerate(self.document.content): handler = self.paragraphDispatch[paragraph.__class__] handler(paragraph) - self.target.write(self.newline) + if i < np - 1: + self.target.write(self.newline) - # Heh heh, remove final paragraph spacing - self.target.seek(-2, 1) self.target.truncate() self.target.seek(0) @@ -48,12 +48,12 @@ def go(self): def paragraph(self, paragraph, prefix=""): content = [] for text in paragraph.content: - content.append(u"".join(text.content)) - content = u"".join(content).encode(self.encoding) - + content.append("".join(text.content)) + content = "".join(content) + for line in content.splitlines(): - self.target.write(" ".encode(self.encoding) * self.indent) - self.target.write(prefix.encode(self.encoding)) + self.target.write(" " * self.indent) + self.target.write(prefix) self.target.write(line) self.target.write(self.newline) if prefix: prefix = " " @@ -61,7 +61,7 @@ def paragraph(self, paragraph, prefix=""): def list(self, list, prefix=None): self.indent += 1 - for (i, entry) in enumerate(list.content): + for (i, entry) in enumerate(list.content): for (j, paragraph) in enumerate(entry.content): prefix = "* " if j == 0 else " " handler = self.paragraphDispatch[paragraph.__class__] @@ -71,4 +71,4 @@ def list(self, list, prefix=None): - + From 0f02c7260efcb9164c029b9f3a9ab63ac5dddd2e Mon Sep 17 00:00:00 2001 From: Roberto Ulloa Date: Tue, 1 Aug 2017 11:49:59 +0200 Subject: [PATCH 14/20] plaintext seems to work now --- README | 1 + 1 file changed, 1 insertion(+) diff --git a/README b/README index 299966e..3318b7d 100644 --- a/README +++ b/README @@ -65,6 +65,7 @@ This does not mean it will actually work! pyth.plugins.rtf15.reader has been debugged and now appears to work correctly. pyth.plugins.xhtml.writer has been debugged and now appears to work correctly. +pyth.plugins.plaintext.writer has been debugged and now appears to work correctly. Everything else: unknown! See directory py3migration for a bit more detail. (If you find something is broken that worked before, please From 1c4cd24c9bc890cf18be2ec982d657f0197997d6 Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Fri, 8 Sep 2017 19:19:11 +0200 Subject: [PATCH 15/20] done a small bit of further Python 3 porting work --- README => README.md | 30 ++++++++++++++++++------------ examples/reading/xhtml.py | 2 +- pyth/plugins/latex/writer.py | 2 +- pyth/plugins/pdf/writer.py | 2 +- pyth/plugins/plaintext/writer.py | 4 +++- pyth/plugins/rst/writer.py | 7 ++++--- pyth/plugins/rtf15/writer.py | 6 +++--- pyth/plugins/xhtml/reader.py | 12 ++++++------ pyth/plugins/xhtml/writer.py | 10 +++++++--- tests/rtfs/~$word-8bit.rtf | Bin 162 -> 0 bytes tests/test_writelatex.py | 5 ----- tests/test_writepdf.py | 8 ++++---- 12 files changed, 48 insertions(+), 40 deletions(-) rename README => README.md (77%) delete mode 100644 tests/rtfs/~$word-8bit.rtf diff --git a/README b/README.md similarity index 77% rename from README rename to README.md index 3318b7d..55ab7cd 100644 --- a/README +++ b/README.md @@ -15,18 +15,16 @@ Pyth is intended to make it easy to convert marked-up text between different com * Very little else -Formats I initially want to support are: +Formats that have (very varying) degrees of support are +* plain text * xhtml * rtf -* pdf (output) +* pdf (output only) -These three formats cover web, Word / OpenOffice, and print. - - -Design principles -================= +Design principles/goals +======================= * Ignore unsupported information in input formats (e.g. page layout) * Ignore font issues -- output in a single font. @@ -60,16 +58,17 @@ Python 3 migration ================== The code was originally written for Python 2. -It has been upgraded to Python 3 compatibility via 'modernize'. +It has been partially(!) upgraded to Python 3 compatibility (starting via 'modernize'). This does not mean it will actually work! pyth.plugins.rtf15.reader has been debugged and now appears to work correctly. pyth.plugins.xhtml.writer has been debugged and now appears to work correctly. pyth.plugins.plaintext.writer has been debugged and now appears to work correctly. -Everything else: unknown! +Everything else is unknown (or definitely broken on Python 3: even many +of the tests fail) See directory py3migration for a bit more detail. -(If you find something is broken that worked before, please -either fix it or stick to pyth version 0.6.0.) +(If you find something is broken on Python 2 that worked before, please +either fix it or simply stick to pyth version 0.6.0.) Limitations @@ -86,4 +85,11 @@ pyth.plugins.rtf15.reader: - from Wordpad: lower- and higher-coderange characters come out in the wrong encoding (ANSI, I think) -Other: (to be documented) +pyth.plugins.xhtml.writer: +- very limited functionality + +pyth.plugins.plaintext.writer: +- very very limited functionality + +Others: +- will not work on Python 3 without some porting love-and-care diff --git a/examples/reading/xhtml.py b/examples/reading/xhtml.py index b1522f4..8da4136 100644 --- a/examples/reading/xhtml.py +++ b/examples/reading/xhtml.py @@ -6,7 +6,7 @@ from pyth.plugins.xhtml.writer import XHTMLWriter import xhtml -from cStringIO import StringIO +from six import StringIO # A simple xhtml document with limited features. content = StringIO(r""" diff --git a/pyth/plugins/latex/writer.py b/pyth/plugins/latex/writer.py index 8f24854..1369350 100644 --- a/pyth/plugins/latex/writer.py +++ b/pyth/plugins/latex/writer.py @@ -6,7 +6,7 @@ """ from __future__ import absolute_import -from cStringIO import StringIO +from six import StringIO import docutils.core from pyth import document diff --git a/pyth/plugins/pdf/writer.py b/pyth/plugins/pdf/writer.py index e3cee10..be45290 100644 --- a/pyth/plugins/pdf/writer.py +++ b/pyth/plugins/pdf/writer.py @@ -3,7 +3,7 @@ """ from __future__ import absolute_import -from cStringIO import StringIO +from six import StringIO import cgi # For escape() from pyth import document diff --git a/pyth/plugins/plaintext/writer.py b/pyth/plugins/plaintext/writer.py index ccc5636..2a0c349 100644 --- a/pyth/plugins/plaintext/writer.py +++ b/pyth/plugins/plaintext/writer.py @@ -1,12 +1,14 @@ """ Render documents as plaintext. +Very scruffy and not very powerful. +Should probably be modified to generate markdown syntax. """ from __future__ import absolute_import from pyth import document from pyth.format import PythWriter -from io import StringIO +from six import StringIO class PlaintextWriter(PythWriter): diff --git a/pyth/plugins/rst/writer.py b/pyth/plugins/rst/writer.py index 48042e0..de42c44 100644 --- a/pyth/plugins/rst/writer.py +++ b/pyth/plugins/rst/writer.py @@ -2,11 +2,12 @@ Render documents as reStructuredText. """ from __future__ import absolute_import +import six +from six import StringIO from pyth import document from pyth.format import PythWriter -from cStringIO import StringIO class RSTWriter(PythWriter): @@ -50,9 +51,9 @@ def text(self, text): if 'italic' in text.properties: return u"*%s*" % ret if 'sub' in text.properties: - return ur"\ :sub:`%s`\ " % ret + return six.u(r"\ :sub:`%s`\ " % ret) if 'super' in text.properties: - return ur"\ :sup:`%s`\ " % ret + return six.u(r"\ :sup:`%s`\ " % ret) return ret def paragraph(self, paragraph, prefix=""): diff --git a/pyth/plugins/rtf15/writer.py b/pyth/plugins/rtf15/writer.py index 9e80ddf..9f4235f 100644 --- a/pyth/plugins/rtf15/writer.py +++ b/pyth/plugins/rtf15/writer.py @@ -8,7 +8,7 @@ from pyth import document from pyth.format import PythWriter -from cStringIO import StringIO +from six import StringIO import six from six.moves import range @@ -237,9 +237,9 @@ def _text(self, text): props = [] if 'super' in text.properties: - self.target.write('{\up9 ') + self.target.write(r'{\up9 ') elif 'sub' in text.properties: - self.target.write('{\dn9 ') + self.target.write(r'{\dn9 ') for prop in text.properties: if prop in _styleFlags: diff --git a/pyth/plugins/xhtml/reader.py b/pyth/plugins/xhtml/reader.py index 3d5bc8c..fc27f86 100644 --- a/pyth/plugins/xhtml/reader.py +++ b/pyth/plugins/xhtml/reader.py @@ -3,12 +3,12 @@ """ from __future__ import absolute_import -import BeautifulSoup +from bs4 import BeautifulSoup +import six from pyth import document from pyth.format import PythReader from pyth.plugins.xhtml.css import CSS -import six class XHTMLReader(PythReader): @@ -25,10 +25,10 @@ def __init__(self, source, css_source=None, encoding="utf-8", link_callback=None self.link_callback = link_callback def go(self): - soup = BeautifulSoup.BeautifulSoup(self.source, - convertEntities=BeautifulSoup.BeautifulSoup.HTML_ENTITIES, - fromEncoding=self.encoding, - smartQuotesTo=None) + soup = BeautifulSoup(self.source, + convertEntities=BeautifulSoup.BeautifulSoup.HTML_ENTITIES, + fromEncoding=self.encoding, + smartQuotesTo=None) # Make sure the document content doesn't use multi-lines soup = self.format(soup) doc = document.Document() diff --git a/pyth/plugins/xhtml/writer.py b/pyth/plugins/xhtml/writer.py index 5f0a5c5..eeb5edb 100644 --- a/pyth/plugins/xhtml/writer.py +++ b/pyth/plugins/xhtml/writer.py @@ -25,8 +25,8 @@ def write(klass, document, target=None, cssClasses=True, pretty=False): final = writer.go() final.seek(0) - # Doesn't work all that well -- appends an tag, - # and puts line breaks in unusual places for HTML. + # The following doesn't work too well; it appends an tag, + # and puts line breaks in unusual places for HTML: #if pretty: # content = final.read() # final.seek(0) @@ -181,7 +181,11 @@ def quoteAttr(text): def write_html_file(filename, bytescontent, print_msg=True): - # used in examples and in tests + """ + Helper function for testing etc. + Wraps the HTML fragment generated by the Writer in a complete document. + Writes that document to a file. + """ with open(filename, "wb") as out: out.write(b"\n") out.write(b"\n") diff --git a/tests/rtfs/~$word-8bit.rtf b/tests/rtfs/~$word-8bit.rtf deleted file mode 100644 index 9d4a3772be37d073afec9e7d89b4e2cfba6e598e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmd<}DJ`i|2q;QT&PdHEVIUIlGWal*GL$e>F(@zuFcdMQG9)u(0LdJn7&2h=Jt}mR wfuTc)!HpplsMZOnrU Date: Fri, 8 Sep 2017 19:20:56 +0200 Subject: [PATCH 16/20] test_readrtf15.py extended and much improved --- .gitignore | 3 +- tests/rtf-as-txt/librewriter-8bit.txt | 0 tests/rtf-as-txt/librewriter-bold-italics.txt | 1 + tests/rtf-as-txt/librewriter-cjk.txt | 0 tests/rtf-as-txt/librewriter-hyperlink.txt | 0 tests/rtf-as-txt/librewriter-lists.txt | 0 tests/rtf-as-txt/librewriter-quotes-fonts.txt | 0 tests/rtf-as-txt/msword-8bit.txt | 0 tests/rtf-as-txt/msword-cjk.txt | 0 tests/rtf-as-txt/msword-hyperlink.txt | 0 tests/rtf-as-txt/msword-lists.txt | 0 tests/rtf-as-txt/msword-quotes-fonts.txt | 0 tests/rtf-as-txt/msword-symbol.txt | 0 tests/rtf-as-txt/wordpad-8bit.txt | 0 tests/rtf-as-txt/wordpad-bold-italics.txt | 1 + tests/rtf-as-txt/wordpad-cjk.txt | 0 tests/rtf-as-txt/wordpad-lists.txt | 0 tests/rtf-as-txt/wordpad-quotes-fonts.txt | 0 tests/rtf-as-txt/wordpad-symbol.txt | 0 tests/test_readrtf15.py | 46 +++++++++++++------ 20 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 tests/rtf-as-txt/librewriter-8bit.txt create mode 100644 tests/rtf-as-txt/librewriter-bold-italics.txt create mode 100644 tests/rtf-as-txt/librewriter-cjk.txt create mode 100644 tests/rtf-as-txt/librewriter-hyperlink.txt create mode 100644 tests/rtf-as-txt/librewriter-lists.txt create mode 100644 tests/rtf-as-txt/librewriter-quotes-fonts.txt create mode 100644 tests/rtf-as-txt/msword-8bit.txt create mode 100644 tests/rtf-as-txt/msword-cjk.txt create mode 100644 tests/rtf-as-txt/msword-hyperlink.txt create mode 100644 tests/rtf-as-txt/msword-lists.txt create mode 100644 tests/rtf-as-txt/msword-quotes-fonts.txt create mode 100644 tests/rtf-as-txt/msword-symbol.txt create mode 100644 tests/rtf-as-txt/wordpad-8bit.txt create mode 100644 tests/rtf-as-txt/wordpad-bold-italics.txt create mode 100644 tests/rtf-as-txt/wordpad-cjk.txt create mode 100644 tests/rtf-as-txt/wordpad-lists.txt create mode 100644 tests/rtf-as-txt/wordpad-quotes-fonts.txt create mode 100644 tests/rtf-as-txt/wordpad-symbol.txt diff --git a/.gitignore b/.gitignore index 352b67c..b661fef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *~ *.bak *.py[co] -*.egg-info \ No newline at end of file +*.egg-info +tests/currentoutput/ diff --git a/tests/rtf-as-txt/librewriter-8bit.txt b/tests/rtf-as-txt/librewriter-8bit.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/librewriter-bold-italics.txt b/tests/rtf-as-txt/librewriter-bold-italics.txt new file mode 100644 index 0000000..3e1583e --- /dev/null +++ b/tests/rtf-as-txt/librewriter-bold-italics.txt @@ -0,0 +1 @@ +Normal bold italics bolditalics. diff --git a/tests/rtf-as-txt/librewriter-cjk.txt b/tests/rtf-as-txt/librewriter-cjk.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/librewriter-hyperlink.txt b/tests/rtf-as-txt/librewriter-hyperlink.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/librewriter-lists.txt b/tests/rtf-as-txt/librewriter-lists.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/librewriter-quotes-fonts.txt b/tests/rtf-as-txt/librewriter-quotes-fonts.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/msword-8bit.txt b/tests/rtf-as-txt/msword-8bit.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/msword-cjk.txt b/tests/rtf-as-txt/msword-cjk.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/msword-hyperlink.txt b/tests/rtf-as-txt/msword-hyperlink.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/msword-lists.txt b/tests/rtf-as-txt/msword-lists.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/msword-quotes-fonts.txt b/tests/rtf-as-txt/msword-quotes-fonts.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/msword-symbol.txt b/tests/rtf-as-txt/msword-symbol.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/wordpad-8bit.txt b/tests/rtf-as-txt/wordpad-8bit.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/wordpad-bold-italics.txt b/tests/rtf-as-txt/wordpad-bold-italics.txt new file mode 100644 index 0000000..cfb80fa --- /dev/null +++ b/tests/rtf-as-txt/wordpad-bold-italics.txt @@ -0,0 +1 @@ +normal bold italics bolditalics diff --git a/tests/rtf-as-txt/wordpad-cjk.txt b/tests/rtf-as-txt/wordpad-cjk.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/wordpad-lists.txt b/tests/rtf-as-txt/wordpad-lists.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/wordpad-quotes-fonts.txt b/tests/rtf-as-txt/wordpad-quotes-fonts.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/rtf-as-txt/wordpad-symbol.txt b/tests/rtf-as-txt/wordpad-symbol.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_readrtf15.py b/tests/test_readrtf15.py index e6f09a9..0acecf5 100644 --- a/tests/test_readrtf15.py +++ b/tests/test_readrtf15.py @@ -1,3 +1,9 @@ +""" +Creates many variants of the same kind of test dynamically, based on +test input files (and usually corresponding reference output files). +Tests with no reference output will then be skipped. +Tests with empty reference output will be marked as expectedFailure. +""" from __future__ import absolute_import from __future__ import print_function import glob @@ -7,6 +13,7 @@ from pyth.plugins.rtf15.reader import Rtf15Reader from pyth.plugins.xhtml.writer import XHTMLWriter, write_html_file +from pyth.plugins.plaintext.writer import PlaintextWriter class TestRtfHTML(unittest.TestCase): pass # will be filled dynamically now: @@ -15,29 +22,32 @@ class TestRtfHTML(unittest.TestCase): # there is one end2end test case per test input file mydir = os.path.abspath(os.path.dirname(__file__)) rtfinputsdir = os.path.join(mydir, "rtfs") -referenceoutputdir = os.path.join(mydir, "rtf-as-html") testoutputdir = os.path.join(mydir, "currentoutput") inputfilenames = glob.glob(os.path.join(rtfinputsdir, "*.rtf")) -def gen_file_test(basename, testclass): +def gen_file_test(basename, testclass, writer="either 'html' or 'txt'"): """creates one test method and adds it to testclass""" + referenceoutputdir = os.path.join(mydir, "rtf-as-%s" % writer) + referencefilename = os.path.join(referenceoutputdir, + "%s.%s" % (basename, writer)) def testmethod(self): # the test method to be added inputfilename = os.path.join(rtfinputsdir, basename+".rtf") - outputfilename = os.path.join(testoutputdir, basename+".html") - referencefilename = os.path.join(referenceoutputdir, basename+".html") + outputfilename = os.path.join(testoutputdir, + "%s.%s" % (basename, writer)) #--- obtain reference output or skip test: - try: - with open(referencefilename, "rb") as input: - the_referenceoutput = input.read() - except OSError: - print("no", referencefilename, ": skipped") - return # TODO: not so great: it will count as a correct test + with open(referencefilename, "rb") as input: + the_referenceoutput = input.read() #--- read and convert RTF: with open(inputfilename, "rb") as input: document = Rtf15Reader.read(input) - the_testoutput = XHTMLWriter.write(document, pretty=True).read() + if writer == 'html': + the_testoutput = XHTMLWriter.write(document, pretty=True).read() + write_html_file(outputfilename, the_testoutput, print_msg=False) + elif writer == 'txt': + with open(outputfilename, "wt") as f: + PlaintextWriter.write(document, f) + #--- compute test output: - write_html_file(outputfilename, the_testoutput, print_msg=False) with open(outputfilename, "rb") as input: the_testoutput = input.read() #--- check outcome: @@ -45,13 +55,21 @@ def testmethod(self): # the test method to be added os.remove(outputfilename) # assert will succeed, so it is no longer needed self.assertEqual(the_testoutput, the_referenceoutput) - methodname = "test_" + basename.replace('-', '_') # create Python identifier + methodname = "test_%s_%s" % ( # create Python identifier + basename.replace('-', '_'), writer) + if not os.path.exists(referencefilename): + # this test cannot be executed because of a missing outcome expectation: + testmethod = unittest.skip("no reference output found")(testmethod) + elif not os.path.getsize(referencefilename): + # this test is expected to fail, as indicated by empty reference output: + testmethod = unittest.expectedFailure(testmethod) setattr(testclass, methodname, testmethod) # add test method to test class object #--- create one test method per RTF input file: for inputfilename in inputfilenames: basename = os.path.splitext(os.path.basename(inputfilename))[0] - gen_file_test(basename, TestRtfHTML) + gen_file_test(basename, TestRtfHTML, "html") + gen_file_test(basename, TestRtfHTML, "txt") if __name__ == '__main__': From 0f571e7ffa70876042e069084a86c7a0a4a93d99 Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Fri, 8 Sep 2017 19:21:42 +0200 Subject: [PATCH 17/20] *** Version 0.7 *** --- README.md | 38 +++++++++++++++++++++++++------------- setup.py | 7 +++---- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 55ab7cd..ea2e3b6 100644 --- a/README.md +++ b/README.md @@ -40,19 +40,6 @@ Examples See http://github.com/brendonh/pyth/tree/master/examples/ -Unit tests -========== - -The sources contains some unit tests (written using python unittest -module) in the 'tests' directory. - -To run the tests we can either run them individually as python script, -either use `python nose`_. If using nose then we just need to go into -the tests directory and invoke nosetest from there (make sure that -pyth module is in PYTHONPATH). - -.. _python nose: http://code.google.com/p/python-nose/ - Python 3 migration ================== @@ -93,3 +80,28 @@ pyth.plugins.plaintext.writer: Others: - will not work on Python 3 without some porting love-and-care + + +Tests +===== + +Don't try to run them all, it's frustrating. +`py.test -v test_readrtf15.py` is a good way to run the least frustrating +subset of them. +It is normal that most others will fail on Python 3. +`test_readrtf15.py` generates test cases dynamically based on +existing input files in `tests/rtfs` and +existing reference output files in `tests/rtf-as-html` and `tests/rtf-as-html`. +The empty or missing output files indicate where functionality is missing, +which nicely indicates possible places to jump in if you want to help. + + +Dependencies +============ + +Only the most important two of the dependencies, +are actually declared in `setup.py`, because the others are large, yet +are required only in pyth components not yet ported to Python 3. +They are: +- `reportlab` for PDFWriter +- `docutils` for LatexWriter \ No newline at end of file diff --git a/setup.py b/setup.py index 950867a..f8533a5 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup(name="pyth", - version="0.7.dev77", + version="0.7", packages = find_packages(), zip_safe = False, @@ -16,8 +16,6 @@ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", - "Programming Language :: Python :: 2.5", - "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Office/Business", @@ -29,6 +27,7 @@ ], requires = [ - "six", + "beautifulsoup4", + "six", ], ) From 1806716a5595b1dc64f863dcf970fbd326ebd40f Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Fri, 8 Sep 2017 19:35:25 +0200 Subject: [PATCH 18/20] Version 0.7: README is now README.md --- README.md | 9 ++++----- setup.py | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ea2e3b6..db910d2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ -======================================== pyth - Python text markup and conversion ======================================== @@ -17,10 +16,10 @@ Pyth is intended to make it easy to convert marked-up text between different com Formats that have (very varying) degrees of support are -* plain text -* xhtml -* rtf -* pdf (output only) +* Plain text +* XHTML +* RTF (Rich Text Format) +* PDF (output only) Design principles/goals diff --git a/setup.py b/setup.py index f8533a5..05a387b 100644 --- a/setup.py +++ b/setup.py @@ -9,8 +9,8 @@ description="Python text markup and conversion", author="Brendon Hogger", author_email="brendonh@gmail.com", - url="http://wiki.github.com/brendonh/pyth", - long_description=open('README').read(), + url="http://github.com/prechelt/pyth", + long_description=open('README.md').read(), classifiers = [ "Development Status :: 5 - Production/Stable", From c94af6d869b9387f8b7d60b327e57a8ee3e516ae Mon Sep 17 00:00:00 2001 From: Lutz Prechelt Date: Wed, 20 Feb 2019 16:40:19 +0100 Subject: [PATCH 19/20] pyth3 0.7.0, uploaded to PyPI --- README.md | 9 +++++---- setup.py | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index db910d2..e8b17f1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ -pyth - Python text markup and conversion -======================================== +pyth3 - Python text markup and conversion +========================================= Pyth is intended to make it easy to convert marked-up text between different common formats. +This is a (rather incomplete so far) port of pyth 0.6.0 to Python 3. *Marked-up text* means text which has: @@ -36,7 +37,7 @@ Design principles/goals Examples ======== -See http://github.com/brendonh/pyth/tree/master/examples/ +See directory `examples`. @@ -103,4 +104,4 @@ are actually declared in `setup.py`, because the others are large, yet are required only in pyth components not yet ported to Python 3. They are: - `reportlab` for PDFWriter -- `docutils` for LatexWriter \ No newline at end of file +- `docutils` for LatexWriter diff --git a/setup.py b/setup.py index 05a387b..fd92b06 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from __future__ import absolute_import from setuptools import setup, find_packages -setup(name="pyth", +setup(name="pyth3", version="0.7", packages = find_packages(), zip_safe = False, @@ -11,6 +11,7 @@ author_email="brendonh@gmail.com", url="http://github.com/prechelt/pyth", long_description=open('README.md').read(), + long_description_content_type="text/markdown", classifiers = [ "Development Status :: 5 - Production/Stable", From 5b8ba49aa6435f98c966823060151dd7f4d9c0f1 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 16 Jul 2020 13:57:39 +0200 Subject: [PATCH 20/20] fix signature of handle_super in rtf parser No argument is allowed for \super (like for \sub, contrary to \up and \dn). (This has already been fixed in the python2 version.) --- pyth/plugins/rtf15/reader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyth/plugins/rtf15/reader.py b/pyth/plugins/rtf15/reader.py index 9829f14..80a3169 100644 --- a/pyth/plugins/rtf15/reader.py +++ b/pyth/plugins/rtf15/reader.py @@ -632,7 +632,7 @@ def handle_ilvl(self, level): def handle_up(self, amount): self.content.append(ReadableMarker("super", True)) - def handle_super(self, amount): + def handle_super(self): self.content.append(ReadableMarker("super", True)) #Turns off superscripting or subscripting