summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/mime/testdata
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/domain/mime/testdata')
-rw-r--r--framework/src/domain/mime/testdata/alternative-notext.mbox22
-rw-r--r--framework/src/domain/mime/testdata/alternative-notext.mbox.html17
-rw-r--r--framework/src/domain/mime/testdata/alternative-notext.mbox.tree2
-rw-r--r--framework/src/domain/mime/testdata/alternative.mbox28
-rw-r--r--framework/src/domain/mime/testdata/alternative.mbox.html17
-rw-r--r--framework/src/domain/mime/testdata/alternative.mbox.tree2
-rw-r--r--framework/src/domain/mime/testdata/attachment.mbox1384
-rw-r--r--framework/src/domain/mime/testdata/cid-links-forwarded-inline.mbox763
-rw-r--r--framework/src/domain/mime/testdata/cid-links.mbox1384
-rw-r--r--framework/src/domain/mime/testdata/details/forward-openpgp-signed-encrypted.mbox.html84
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-encoded.mbox.html38
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-encrypted+signed.mbox.html55
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html80
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-encrypted-attachment.mbox.html69
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-encrypted-non-encrypted-attachment.mbox.html72
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-encrypted-partially-signed-attachments.mbox.html102
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-inline-charset-encrypted.mbox.html50
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-inline-signed.mbox.html38
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-signed-base64-mailman-footer.mbox.html81
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-signed-encrypted-two-attachments.mbox.html91
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-signed-encrypted.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-signed-mailinglist+old.mbox.html97
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-signed-mailinglist.mbox.html68
-rw-r--r--framework/src/domain/mime/testdata/details/openpgp-signed-two-attachments.mbox.html74
-rw-r--r--framework/src/domain/mime/testdata/details/signed-forward-openpgp-signed-encrypted.mbox.html111
-rw-r--r--framework/src/domain/mime/testdata/details/smime-opaque-enc+sign.mbox.html60
-rw-r--r--framework/src/domain/mime/testdata/details/smime-opaque-sign.mbox.html43
-rw-r--r--framework/src/domain/mime/testdata/details/smime-signed-encrypted.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox53
-rw-r--r--framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox.html51
-rw-r--r--framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox.tree10
-rw-r--r--framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox69
-rw-r--r--framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox.html81
-rw-r--r--framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox.tree9
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html61
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-attachment.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-non-encrypted-attachment.mbox.html61
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-partially-signed-attachments.mbox.html84
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-two-attachments.mbox.html34
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-signed-apple.mbox.html50
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-signed-encrypted-two-attachments.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-signed-mailinglist+additional-children.mbox.html52
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-signed-no-protocol.mbox.html28
-rw-r--r--framework/src/domain/mime/testdata/headeronly/openpgp-signed-two-attachments.mbox.html41
-rw-r--r--framework/src/domain/mime/testdata/headeronly/smime-signed-apple.mbox.html50
-rw-r--r--framework/src/domain/mime/testdata/hidden/encapsulated-with-attachment.mbox.html43
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html61
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-encrypted-attachment.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-encrypted-noData.mbox.html10
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-encrypted-non-encrypted-attachment.mbox.html61
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-encrypted-partially-signed-attachments.mbox.html84
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-encrypted-two-attachments.mbox.html34
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-signed-apple.mbox.html50
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-signed-encrypted-two-attachments.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-signed-mailinglist+additional-children.mbox.html44
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-signed-no-protocol.mbox.html28
-rw-r--r--framework/src/domain/mime/testdata/hidden/openpgp-signed-two-attachments.mbox.html41
-rw-r--r--framework/src/domain/mime/testdata/hidden/smime-signed-apple.mbox.html50
-rw-r--r--framework/src/domain/mime/testdata/html.mbox15
-rw-r--r--framework/src/domain/mime/testdata/html.mbox.html17
-rw-r--r--framework/src/domain/mime/testdata/html.mbox.tree2
-rw-r--r--framework/src/domain/mime/testdata/htmlonly.mbox21
-rw-r--r--framework/src/domain/mime/testdata/htmlonly.mbox.html12
-rw-r--r--framework/src/domain/mime/testdata/htmlonly.mbox.tree2
-rw-r--r--framework/src/domain/mime/testdata/htmlonlyexternal.mbox21
-rw-r--r--framework/src/domain/mime/testdata/iconic/openpgp-encrypted-partially-signed-attachments.mbox.html92
-rw-r--r--framework/src/domain/mime/testdata/iconic/openpgp-encrypted-two-attachments.mbox.html50
-rw-r--r--framework/src/domain/mime/testdata/iconic/openpgp-signed-encrypted-two-attachments.mbox.html74
-rw-r--r--framework/src/domain/mime/testdata/iconic/openpgp-signed-two-attachments.mbox.html57
-rw-r--r--framework/src/domain/mime/testdata/inlined/encapsulated-with-attachment.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/inlined/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html90
-rw-r--r--framework/src/domain/mime/testdata/inlined/openpgp-encrypted-attachment.mbox.html74
-rw-r--r--framework/src/domain/mime/testdata/inlined/openpgp-encrypted-non-encrypted-attachment.mbox.html74
-rw-r--r--framework/src/domain/mime/testdata/inlined/openpgp-signed-apple.mbox.html63
-rw-r--r--framework/src/domain/mime/testdata/inlined/openpgp-signed-mailinglist+additional-children.mbox.html67
-rw-r--r--framework/src/domain/mime/testdata/inlined/smime-signed-apple.mbox.html63
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox33
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox.html36
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox55
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox.html24
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox.tree3
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted.mbox29
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.html26
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.inProgress.html24
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.tree3
-rw-r--r--framework/src/domain/mime/testdata/inlinepgpgencrypted-error.mbox55
-rw-r--r--framework/src/domain/mime/testdata/mailheader.css512
-rw-r--r--framework/src/domain/mime/testdata/no-content-type.mbox7
-rw-r--r--framework/src/domain/mime/testdata/no-content-type.mbox.html14
-rw-r--r--framework/src/domain/mime/testdata/no-content-type.mbox.tree3
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encoded.mbox33
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encoded.mbox.html35
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encoded.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox46
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox.html52
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox.tree5
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox52
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox.html39
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox.tree7
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox115
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html77
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.tree11
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox57
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox.html66
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox.tree8
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox48
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox.html34
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox.tree5
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox17
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox.html19
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox114
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox.html69
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox.tree9
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox91
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox.html99
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox.tree12
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox42
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox.html64
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox.tree9
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted.mbox36
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted.mbox.html31
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted.mbox.inProgress.html24
-rw-r--r--framework/src/domain/mime/testdata/openpgp-encrypted.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox40
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.html47
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.inProgress.html24
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-encrypted+nonenc.mbox31
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-signed-broken.mbox26
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-signed.mbox26
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.html35
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.inProgress.html22
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.tree3
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox34
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox.html47
-rw-r--r--framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-apple.mbox129
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.inProgress.html49
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.tree3
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox117
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox.html78
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox.tree7
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox52
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox.html88
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox.tree10
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox47
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox.html55
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox.tree5
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox126
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox.html60
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox.tree10
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox67
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox.html94
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox.tree13
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox121
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.html65
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.inProgress.html56
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.tree7
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox35
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox.html36
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox.tree5
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox54
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox.html71
-rw-r--r--framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox.tree9
-rw-r--r--framework/src/domain/mime/testdata/plaintext.mbox13
-rw-r--r--framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox92
-rw-r--r--framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox.html105
-rw-r--r--framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox.tree10
-rw-r--r--framework/src/domain/mime/testdata/smime-cert.mbox24
-rw-r--r--framework/src/domain/mime/testdata/smime-cert.mbox.html10
-rw-r--r--framework/src/domain/mime/testdata/smime-cert.mbox.tree2
-rw-r--r--framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox23
-rw-r--r--framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox.html31
-rw-r--r--framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/smime-encrypted.mbox22
-rw-r--r--framework/src/domain/mime/testdata/smime-encrypted.mbox.html31
-rw-r--r--framework/src/domain/mime/testdata/smime-encrypted.mbox.inProgress.html24
-rw-r--r--framework/src/domain/mime/testdata/smime-encrypted.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox37
-rw-r--r--framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox.html57
-rw-r--r--framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox.tree5
-rw-r--r--framework/src/domain/mime/testdata/smime-opaque-sign.mbox25
-rw-r--r--framework/src/domain/mime/testdata/smime-opaque-sign.mbox.html40
-rw-r--r--framework/src/domain/mime/testdata/smime-opaque-sign.mbox.inProgress.html22
-rw-r--r--framework/src/domain/mime/testdata/smime-opaque-sign.mbox.tree4
-rw-r--r--framework/src/domain/mime/testdata/smime-opaque-signed-encrypted-attachment.mbox50
-rw-r--r--framework/src/domain/mime/testdata/smime-signed-apple.mbox197
-rw-r--r--framework/src/domain/mime/testdata/smime-signed-apple.mbox.html58
-rw-r--r--framework/src/domain/mime/testdata/smime-signed-apple.mbox.inProgress.html49
-rw-r--r--framework/src/domain/mime/testdata/smime-signed-apple.mbox.tree3
-rw-r--r--framework/src/domain/mime/testdata/smime-signed-encrypted.mbox38
-rw-r--r--framework/src/domain/mime/testdata/smime-signed-encrypted.mbox.html55
-rw-r--r--framework/src/domain/mime/testdata/smime-signed-encrypted.mbox.tree5
-rw-r--r--framework/src/domain/mime/testdata/text+html-maillinglist.mbox163
-rw-r--r--framework/src/domain/mime/testdata/text+html-maillinglist.mbox.html38
-rw-r--r--framework/src/domain/mime/testdata/text+html-maillinglist.mbox.tree5
199 files changed, 12554 insertions, 0 deletions
diff --git a/framework/src/domain/mime/testdata/alternative-notext.mbox b/framework/src/domain/mime/testdata/alternative-notext.mbox
new file mode 100644
index 00000000..86026437
--- /dev/null
+++ b/framework/src/domain/mime/testdata/alternative-notext.mbox
@@ -0,0 +1,22 @@
1Return-Path: <konqi@example.org>
2Date: Wed, 8 Jun 2016 20:34:44 -0700
3From: Konqi <konqi@example.org>
4To: konqi@kde.org
5Subject: A random subject with a empty text alternative contenttype
6MIME-Version: 1.0
7Content-Type: multipart/alternative;
8 boundary="----=_Part_12345678_12345678"
9
10
11------=_Part_12345678_12345678
12Content-Transfer-Encoding: 7Bit
13Content-Type: text/html; charset="windows-1252"
14
15<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
16<html><head><meta name="qrichtext" content="1" /><style type="text/css">
17p, li { white-space: pre-wrap; }
18</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
19<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p></body></html>
20
21
22------=_Part_12345678_12345678--
diff --git a/framework/src/domain/mime/testdata/alternative-notext.mbox.html b/framework/src/domain/mime/testdata/alternative-notext.mbox.html
new file mode 100644
index 00000000..41db4eab
--- /dev/null
+++ b/framework/src/domain/mime/testdata/alternative-notext.mbox.html
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div style="position: relative">
11 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
12 </div>
13 </div>
14 </div>
15 </div>
16 </body>
17</html>
diff --git a/framework/src/domain/mime/testdata/alternative-notext.mbox.tree b/framework/src/domain/mime/testdata/alternative-notext.mbox.tree
new file mode 100644
index 00000000..0de07281
--- /dev/null
+++ b/framework/src/domain/mime/testdata/alternative-notext.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mime/testdata/alternative.mbox b/framework/src/domain/mime/testdata/alternative.mbox
new file mode 100644
index 00000000..6522c34b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/alternative.mbox
@@ -0,0 +1,28 @@
1Return-Path: <konqi@example.org>
2Date: Wed, 8 Jun 2016 20:34:44 -0700
3From: Konqi <konqi@example.org>
4To: konqi@kde.org
5Subject: A random subject with alternative contenttype
6MIME-Version: 1.0
7Content-Type: multipart/alternative;
8 boundary="----=_Part_12345678_12345678"
9
10
11------=_Part_12345678_12345678
12Content-Type: text/plain; charset=utf-8
13Content-Transfer-Encoding: quoted-printable
14
15If you can see this text it means that your email client couldn't display o=
16ur newsletter properly.
17Please visit this link to view the newsletter on our website: http://www.go=
18g.com/newsletter/
19
20
21------=_Part_12345678_12345678
22Content-Transfer-Encoding: 7Bit
23Content-Type: text/html; charset="windows-1252"
24
25<html><body><p><span>HTML</span> text</p></body></html>
26
27
28------=_Part_12345678_12345678--
diff --git a/framework/src/domain/mime/testdata/alternative.mbox.html b/framework/src/domain/mime/testdata/alternative.mbox.html
new file mode 100644
index 00000000..2fe886f1
--- /dev/null
+++ b/framework/src/domain/mime/testdata/alternative.mbox.html
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att2"/>
9 <div id="attachmentDiv2">
10 <div style="position: relative">
11 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
12 </div>
13 </div>
14 </div>
15 </div>
16 </body>
17</html>
diff --git a/framework/src/domain/mime/testdata/alternative.mbox.tree b/framework/src/domain/mime/testdata/alternative.mbox.tree
new file mode 100644
index 00000000..0de07281
--- /dev/null
+++ b/framework/src/domain/mime/testdata/alternative.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mime/testdata/attachment.mbox b/framework/src/domain/mime/testdata/attachment.mbox
new file mode 100644
index 00000000..9c3610a7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/attachment.mbox
@@ -0,0 +1,1384 @@
1Message-ID: <851f01d15e53$31734730$790bc9ad@info>
2From: "OculusLab" <info@findermanze.co.ua>
3To: <info@example.org>
4Subject: CID links for images
5Date: Wed, 03 Feb 2016 07:19:17 +0200
6MIME-Version: 1.0
7Content-Type: multipart/mixed;
8 type="multipart/alternative";
9 boundary="----=_NextPart_000_000F_01D15E52.0BD654A0"
10X-MSMail-Priority: Normal
11X-Mailer: Microsoft Windows Live Mail 14.0.8117.416
12X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416
13
14 This is a multi-part message in MIME format.
15
16------=_NextPart_000_000F_01D15E52.0BD654A0
17Content-Type: multipart/alternative;
18 boundary="----=_NextPart_000_0010_01D15E52.0BD654A0"
19
20------=_NextPart_000_0010_01D15E52.0BD654A0
21Content-Type: text/plain;
22 charset="windows-1251"
23Content-Transfer-Encoding: quoted-printable
24
25=0D=0A=0D=0A=0D=0A=0D=0ASuperkombipackung f&#252;r nur 45 Euro=0D=
26=0A=0D=0A
27------=_NextPart_000_0010_01D15E52.0BD654A0
28Content-Type: text/html;
29 charset="windows-1251"
30Content-Transfer-Encoding: quoted-printable
31
32<HTML><HEAD>=0D=0A<META http-equiv=3D"Content-Type" content=3D"te=
33xt/html; charset=3Dwindows-1251">=0D=0A</HEAD>=0D=0A<BODY bgColor=
34=3D#ffffff>=0D=0A<DIV align=3Dcenter><FONT size=3D2 face=3DArial>=
35<A =0D=0Ahref=3D"http://intenices.co.ua/drugs-store/index.html"><=
36STRONG><FONT =0D=0Asize=3D4>Superkombipackung f&#252;r nur 45 Eur=
37o</FONT></STRONG></A><BR><BR><A =0D=0Ahref=3D"http://intenices.co=
38.ua/drugs-store/index.html"><IMG border=3D0 hspace=3D0 alt=3D""=20=
39src=3D"cid:9359201d15e53f31a68c307b3369b6@info" width=3D650 heigh=
40t=3D763></A></FONT></DIV></BODY></HTML>
41
42------=_NextPart_000_0010_01D15E52.0BD654A0--
43
44------=_NextPart_000_000F_01D15E52.0BD654A0
45Content-Type: image/jpeg;
46 name="aqnaozisxya.jpeg"
47Content-Transfer-Encoding: base64
48Content-ID: <9359201d15e53f31a68c307b3369b6@info>
49
50/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMqaHR0cDov
51L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
52aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
53OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAxNCA3OS4xNTE0ODEsIDIwMTMvMDMvMTMtMTI6
54MDk6MTUgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
55OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
56bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6
57Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUu
58Y29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBo
59b3Rvc2hvcCBDQyAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjdCRTg5MTBD
60OUNGMTFFNUJBOTdEMkQyNzU0ODI3RDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjdCRTg5
61MTFDOUNGMTFFNUJBOTdEMkQyNzU0ODI3RDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5z
62dGFuY2VJRD0ieG1wLmlpZDpCN0JFODkwRUM5Q0YxMUU1QkE5N0QyRDI3NTQ4MjdENyIgc3RSZWY6
63ZG9jdW1lbnRJRD0ieG1wLmRpZDpCN0JFODkwRkM5Q0YxMUU1QkE5N0QyRDI3NTQ4MjdENyIvPiA8
64L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0i
65ciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwM
66DAwMEAwODxAPDgwTExQUExMcGxsbHB8fHx8fHx8fHx8BBwcHDQwNGBAQGBoVERUaHx8fHx8fHx8f
67Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH//AABEIAvsCigMBEQACEQED
68EQH/xADJAAEAAgMBAQEAAAAAAAAAAAAAAwQBAgUGBwgBAQEBAQEBAQAAAAAAAAAAAAABAgMEBQYQ
69AAEEAgEDAgQCBAgKCQMACwIAAQMEEQUSIRMGMUFRIjIUYXGBQhUHkaGxUiMzFhfB0WJy0+OkZZVW
708ILSsyQ0lFU24UN1U4MlssJzhLQ1djcRAQABAgMEBQkFBwQBBAIDAAABEQIhMQNBUWEScYGRoQTw
71scHRIjJSYhPhQpKyFfFygqIzUwXCI2Nzk9JDsxSDNPLD0//aAAwDAQACEQMRAD8A/VKAgICAgICA
72gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA
73gICAgICAgICAgICAgICAgICAg1y6Bl0DLoGXQMugZdBrIZMBOz9WZBpWkM68Zk+SIWd3QS8nQOTo
74HJ0Dk6BydA5OgcnQOToGXQMugZdAy6Bl0DLoGXQMugOT4dAYnwyA7ughaWTPqgkIyaNnz16INQkN
753bL+6BJIbHhn6INozJ2fL+6DbLoI5JDYmZn6KDJGTR8s9VQiM39Xyg1GWRy6v0ygkMiYXdn6sghG
76aRxd8/yItGAnldupfxMoUZ70nx/kQO9J8f5EKAzSO3r/ABMhRnuyfH+RCg0snXqgNNI/v/Igd2T4
77/wAiDLSyfFCjDSyfH+RUZ7snx/kUBpTz6oMd2TPr/Igz3JPj/Igy0knx/kQY7smX6oMd2T4/yIMj
78Kb+6B3T5O2eiVKHdP4oUO5J8UqtGHlk5Yz/IpUoz3ZPiqUO7J8UKDynluqIy8h/FA7h/FKlApDZv
79VAaU/ilSjPcP4oDyHjOUGO4eG6oUZ5l8UGeZY9VUatIePVRR5Dz6pUoyxnn1QBkN3fqgy5l8UQYy
80+KDcXd2fPxVGUBBqgICAgICDSb+qL8nQR0//ACkP+YyEpkBAQEBAQEBEEBAQEBAQEBAL0dAb0ZFH
819HQQD6oJJP6pv0INY/Vvz/wIMS/1n8CCSL6X/N0G6CKT62UGS/qv0/4VQhQRh9Tfmglm/qyQQD9D
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
2906/oo2w6Iy3oisug1QYRGW9UVsiCKwgwgICDCAgwgyyCnfiCRmYxYhJsOzrF00lu3Fw7Ol6u8J4b+
291aX+NI1Fmxz5YZIvkkbBN8PgukTViYom1sxMfa9Xd8MuV8OlsvSRBxFh+H8qwqYWVgSMqyytDUzYR
292cnfDN1d/wZQeQ2Ft7Vo5f1fQG/yW9F2tjBiZVSdlWXpfH6ghSad2/pJny7v8GfDKDqY9kG3p0Qbe
29335oCDP4INmUBAd8MgrkOCz8VpGweuP4FBszoMOzKg3wRWRfOVEbCitmUGyAoMICAgINx9EVlAQao
294CAgwgICDDogisIMOyDCDCBhBhAQYwgYQZwgccoMPGLoNeyPwZBloRb2QSMDMg2ZsIMogg1k+h0FM
295v6+D/Of+R1Wdq6/oo2wiMt6IrLoNVRhRGW9UVsiCKwgwgwgygwgwgINZJBBsv1z6MpMrEOfanPPM
296vpb1b4MuV0u1sNc8myyzRXK2kfUT/Q66acsakMaOtztFM/pE2G/zn/xLWpLNr0IsuTaRmWkbsqg6
297DjeQX+3C1YH+eX6/wD/6rdsJMudrNTLaxJJmOv8AH3L/ADf8a6ObuHq6nZEBiBhB+RM45d2/P1QW
298w6C2McW6fL6N+hBI2PX+BQFUG9VFbfigMg2woDvhkGj/ABVRgmz/AIFRoPq6Df2yorHtj4KoIp+s
299ojLP1RWzOg3ZQZ9lBrl1FMqh1QMug3D0/Sg2QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
300QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
301QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
302QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
303QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
304QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
305QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
306QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
307QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
308QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
309QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
310QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
311QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
312QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
313QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
314QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
315QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
316QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQRWbVWpAdi1MEFeNsyTS
317kwALZx1InZmQYK5TG2FMp42tyAUsddzFpCAHZiMQzycWcmZ3SPMSji2urmnGCK5BJOTyCMQSARu8
318BMMrMLPn+jJ2Yvg/qkYk4eXX5sVpSZpFRW12zo7LXwbGlL3adgGkhlwQZB/fBsJN+llq6KZm2nGn
319Zglq2q1uvHZqzBYryixRTRExgQv6OJDlnZJigRWq0ss0MUwSS13YZ4xJnKMiFiZjZuou4uztn2U2
320VEiAg5Nvy3xinParWNrVG3SiOe1TaUDsBHGHcMngF3l6B830+ibK7PKPOR70W7ZdSKWOWIJY35Ry
321CxA/plibLeqt1sxNJS26JisbWyiiAgIIq1uraAjrTRzgBlEZRkxsxxvxMHcXfBCTYdvZNlTglQEB
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
354flm71A2J56MNalbhGzNLYMJLBThIwyTEZ8X7AvxzhvbCxGNld10x1cts+mVuwujjbXvl5zYy+XbX
355beQFSmgqz6myMVOWfaWagV42ijkCSWnFBJDOEju7uUpPnqLccJo0pbM7bprtyupThh141qupjM2x
356uw64z40nqwpTOZayW/tN/ToWthcarLb34zBDZmichgtRDEHOMhNhjYvl4u2PRumVNOIm3/8AHE/z
357yt8zFf3rf/irPf61WntPJNiep0zSPYidtoLFNsbOuksFRvPXjZ7NaKaYzCEcuOW5Z5PnCsRXH5NO
358fxRjNOzhFcsWbvZrEZc90dlKRXt4+znnX1taHyQfBZ68uyrBvGinhh2DTPLEB8yCHnMQRuRAPETJ
359wzyy+FnUpMxT5a7K5Vpu5tnS1ZhM148adPR5nl696y26qeOWf2lqfuLEY7VpNjLbEmOCeSAa9xze
360aPvHE/JmcH+VmZm5delsRdjsjm4YxyduF1fOxdM2xxmmPCebHhjHLltdCzpq9jzDY1gvXGjraSDt
361yw25QlYxs2WHnNGQym4Y9DJ8/rZXGb5jTvujOJj8s7MnaLY5rLdk83+jr8typqJ9h5FJWO9sLkbS
362+M0LxBVsS1h+6lKZyl/oSDr09PR/dn6Lr4n2PqzH3bsOyXPQ9qNOJ281eNJsVKG08r8lepDzHuNp
363aF2P/wDaVnVk8tmMnlsM1aCbvMJszOJvxH+b8y1q2ct19MKXzEbaRSJjCevppwY07sLYnHDtxmM+
364im7PbhSv39nHtBnnKK7sw3FA5TrvmKadtETu8b4H5TP06LF11ImbY/vU7IdIt2XT93Tr/wCWXZ8K
365/tRbk0e6ltQfa34yLYEW0s2nsucLlxipyV4oIJI5Wy4xE3FmJnyul1ttszbspht2xjXdTqmuTnE3
366XRXKa48N8U8pwzl3LGykr+W7sLFooacOor2IxORxjB2lsNJIzO/Fn6DyL8l5b5/2r99f9OHe9Fse
3673Zxr57XmfHmvbmKlHc2d9hbxfX237NueEnsyPLmYijISI/lbOX+b9bK7+K9n6sx927DhhLloY8kT
368tm6vbazrdjY8i1ks27vz1wq6ClejCCxJTA5LUEhzWJHhKPm3IGHiWQb4dVnxdsWxqU2XXW9VIphx
369mZ7MDw0zN1kT013zzTHdERP8XQ7QbG7rf3RVr9J+Nqvp4Dikxy4P2BzJxf14N836F18VFdaYnCJv
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
482gkD6gLD9CH3Z0nKuw20ZrWq1qvHZqyhPXlFiimiJjAhf0cSHLOysxQSKAgIK02ypQ7Ctr5JONy2E
483sleLiT8hh49x+TNxbj3B9XSMa8CcIrxp559CygICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
484AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgION5nsL2u8V2l6g/G3Xrmc
485R45cMN1k4v68GyWPwUwmYicIm62J6JmInuWK40is0mkb5phHXLx/kwjrquz19C/Zu07vjuxtWgs2
486JLeCjABhmE5SNwaRpDbiLsL46N0V1MromKcs29VZnDu27uLWh71k1xm7tjfwph2tNtJd00FiGnet
4878bfjF66by2JZHCzVGFo5YeRYhfEz9I+LenToumvnqcLre+bq+aHLwsf0p34T2W+XnN1sdx48xy62
4883ZszWtBZvSNamksM1iucAtMAydwY8DOTkICwvj6VdSI5r4yiL7I6IuuuiceiOpnSmZtsuzmYu66W
489xMd+HGubt+JU9/X2wzTzwfsu1UeRoW2tnaSSysYOE8b2YYe2HEiYmB+PUejJdSImJzrGzLOvHdnu
490IrNJ8p9H7XK8mtWNLutvqKhPHL5dHC+rJv1bhENS0Tf5kJRy/od1zssi+OScou/kmt135buu6HW6
4917kmNThT+KPd7a06LUVvlU1HkloL9ija8ZJq2mpxTyRwxxw14yrCdcSaOfvkX/wBwSznA4wt88zy3
492Zzffj+OlOHs0nfjXczZZETyThbbbGP8ADWbuqa8PZ6Vye92rXl+z2dq+0GreLs1q1iSNou7Qi59s
493GIQzykd255ES+bo/VZiPZimMzfNvfbTy3LF2MTOyyLp6pvr5striW9hvtZftUCmlpwsOqtFD+07G
494xkjaTYhHIRzTsJxscb4IGJwx+lb06TdSdl8Rlvtuw44xGbN2Vd9l89lMeGc5eh293a3F7yPyHXan
495YM0kFfU4qlZKAXI5rBTwhIHJ4ZZohZuQjy9PwdYs92JnH257OS3zTjTpavwmNnsf6vKHm9luNpBs
496aBaitdju0G2cF+G5O9+esDDSOc60hnL9w4RnzASP6untxWraYzM+zNueX36eeM8cMcUpNKRHtRfF
497I2TPJdMfsw6s3U8kvxyUrRaK1bsNqNVFabZzbexVhYZBkOGZmBpfupC45LujwfDD8Vi+Zt5rqUpd
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
546jtmnTkupNKzti7V/PZ5orPVlOT0c1TyansNfQt3nqUbmzrAFSrtLV6wIFWtPMx2LEcMzRyvGDiOX
547w7O4u3TGbaTMRPz8PuxTLbE17WcYtmY3W8fvxj2TR6jwyWcZd9rjnlng1mxevUKxIc0rRHWhn4lL
548I5SHgpiw5O74UnGy2ds17rro80E4XzGz2e+HDmK74tWksAVHd+PXdm0jg+RuDNdtN9JN3Y7BRyH0
549bAPhvXopp48lk9ET319c9a6n3ro646IpMeiI6nKi2fkew3LacJHnry29wYDNsbOuKQq9xgCILFeO
550aXEUb5aMXFsfgKacVtid1sd911Z45R0V4rqzS6YjbMfksmnCtZnjTPOvo70e1j/dbt4trYitXY9f
551fA5oJXnFxEZWAXlIInMxBmEycWyTOsa8xSKfL24VnrdPDRMakfvelxNrJb09OSLW7G3L9z43et2+
5525YkleKWCKP7exFksQuTmbM0fEXx6dF115xvjdMds3Th1x5nLwkRMac75iOqm7hh24rA2NnV29a/t
553Dt2qFqzTgo3aN82CApRjjaCzRcgjPlLnmeDLBe2Om6RzzbGdb+iac09VIjthyif9uLvlt6caY8az
554P2Oz51XG4VPW1JrUe7vc46hVrlusEMTYea1KFeWITaJnbjy9ScR91wsit3Db0euco7crXeZpbXs4
555z6ozn1y4W22NrVeMeeQvsrAya0QioWJ7BvMGaELRuMhFy5HJl8t6ln3XS2eabJpnqf64w7O4i2k0
556/wCP/wBWPaj30myebym9Hs7sE+tua4KAxWDGKJpYq3c/ocvGfPuPkZBIffGcqaf3eOpNvVWIYr7P
557Rpc3X7fqem8bGap5RvdW1mxPTgip2IRszSWCA52laTicrkTCXbZ+OcN7MykY2dF0x1ctk+mS7C+O
558NtevmuhFvqFEPPvGLwV4huyvciltMAtKQDWJxAjxycWd+jZTSmk3Rvsn82masVi2fnj8uo4G9Y/2
559R+8LvY/aP3Mf2P8A+k/8rB9lw9/6/PDH6+VdLLT/AOzHp5//AEU/hav966uX0+7lur/NV3vPbkEm
560maoE8RlXu6wtvBzFyjqyW4+byiz5ECEXzno7ZTT/AKls7Oae3lnl668vczj9Oa+9yf8A8u6qOO3r
561qXlXlFq4QDqoa+uOdybkH3Y91+g4fMvDs4Zmz9OPZS2aWceeafhty6697V0Vvj9zH8V32rviGvvN
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
690QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
691QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
692QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
693QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
694QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
695QEBAQEBAQEBAQEBAQEBAQEBBpPPBXgknnkGGCIXOWWR2EAAWyRET9GZm9XdJlYiuEI5r9GGsNqax
696FHWNwYJzMRB3kdhDBO+H5OTMPxVpNabWYmJiuxOoqhqt7rdqU7UDklCuXApnhmCEny4v2pTAY5cO
697Ls7xkWFaYRO8nCaL6gICAghu3qVGsdq7Yiq1o+sk8xjHGLfiROzMlViHP/tf4k1H9oftuh9hzaL7
698v7qHs9x2d2DucuPLDP0yrNswzE16l6hsdfsao29faiuVTzwsQGMsb46Pgwd2dJiYzImJyVZvJvG4
699KA7GbbU4tecjwhcOxEMLyM7s4NI5ceTcX6Z9lN3Fd/DPgqD574MYmQ+RawhjblI7Xa7sI5Ycv8/R
700skzK8spzQsz+V+LV6le7PuKMNO3n7WzJZhGKXD4ftm5cSx+DpNs1ptImJiux0YZoZogmhMZIpGYo
7015AdiEhfqzs7dHZ0mKZrE1Qa3aUdnXezRk71djONpeJCJFGTiTg5M3Ict0Iej+zpTCJ34m2Y3LSgI
702Kmz2+p1VdrO0uwUK5EwDNZlCEHN2d2FiNxbOGfonAba/Z67ZVmta61DcrE7sM9eQZY3dvXBA7srM
703TGaRMSsqKjmtVoCiGeYIinPtQMZMLnI7OXAM/UWBd8N8EjcJEFbY7Klrar27snarsccbnxIvmmkG
704IGwLO/UzZkjGYjbJsmd0V7DY7Klrar27snarsccbnxIvmmkGIGwLO/UzZkjGYjbJsmd0V7FlAQVr
705OypVrVSpPJwsXjOOqHEn5lGDyE2WZ2bAC79UiK4cK+aPTBM0ivGnl2LKAgIKG13+h1DRvttlV17T
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
930bdNduV1KcMOvGtW7qzPL8sU64z40nqwpTOZ7fn+ugvWfF45zmFi2og7155q74KrO74KE4yzkWw+c
931t1+LrGn/AFP4bvMsz/tz/D+a3y73Ifb26/i8IFflG0/kw0gc5zeYom2rD2eRFzJux+r/ADfwW9P2
932rtPjbNfwXenvNSKRqU2Up/K73hEctgtnfs2rNicNlsK0QSzyFEEIWiYQGLl2/l49Hdss3Rnx0WY/
933p28bfTK3+/MbqfkteY8xcdjo/MrexuzxS62Z6lOoFmWCEI+1EUfOEDGOV5ikd8yMXwb0V0c9Odt1
9348d2pTzRXvTU+/GyLJ77K17a27sOlnd7jff2mu6qvM5VLW0grO0tyakAj+zAmGALEQTSQ92Tr8gs5
935P0z8ymlFYx+fum3tpEzNC+aREx8NvfN+PdEV49Ex67xWtt6usvV9xZido55Ow0duS4deB4xLty2Z
93644ZCISciZzbPF26upq0mzqms5bZ80YdS2RMXZbsM/KrztefbeJ09LqXjo7vXyOVfTWYWeO0xhBJJ
937GZRv3QkywYOQDH1zhNS+Zrsvi2Z4YRu2d+4stjOvszdFf4rt+2mfVVV2UMc/7uquyLZ2bN7avrZb
938JnORi8pXIHN4oTco4e2RY4xizfzsrrdbFutbbHuxfH7a8ezcxZdM2XXThdy3YbvZu9nq7cE+2nva
939i9vYat629LUDqttiaxNMTRlPK1wOchGbxlDBng78W9mWLJikTOXPNvVNtsd03VW+MZiNtkz12zM4
940dNKUhTDfeQFZjrNZnll31gNzqwYyFxpxNLK9YcOzsDhXhY2+Mr/FZmJttnD2tO2Znrtw6aXzMdFs
941N4TNa0tvmLY6roiZj96z2u1UCfy8/FP7QjeihC1rLctucdrasSTSPTkMexUOCKGtLFMLPiIm4sxN
9421W9aItrEZbO2Ma50p1TXJNCt91szGPNFfTbTynDOXoqtFtt5JTenbvgGuCG1uZxv3OycxRs8VRoO
94372OrYkl+T0w36zrU+zddP3a3RHTt6rfP+7MONuNlvxTETPR67vNWdsS7Wxt2IvONNB3jjqTUb7nF
944ydozkjOu4u454uQi5Y+DZXKyntV3R55r6He73Y/e/wBMvJaK1a3VrRQS7O3JStyb8pCr2pY+7HDe
945EYP6WMhPiAP8jiTYbo3Rbtt3/wBqyevBm6aTd/2U6uW5L4/cu7ezrdPs79kKUUe0dpY7EteawdG+
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
1024/wDHE/ztasVik/Fblx0q+XXvl7HzStuLEFGPWl3Gadzt0I7Z0J7MLRk3GKxH84uJuJuzO2cYd2XO
1025PexypPox8t7Wzy7HkPHBpXvJrG0qftEp4NQMletau2HkeavctRFFJwlcJgEwYW5chf16u7u+r7pt
1026077o+WYw32YYeXBIti66yJw9q6Jx3TZt8t05UUZP7UW/DZN1Lag+1v6q4WwItpZtPZc6UhcYqcle
1027KCCSOVsuMRNxZiZ8q69tttbdmFNv3oxrup1TXJfDzddfbOU80V4b4p5ThnK95DVlq0LeujtW5q2x
10288YvW7EUtiY/6es0LAUbcv6JnaZ2II+Iu3qyviP8A3Plut75ur5oZ8J/7U/Fh3W+Vc3vfGqNanoqs
1029daSWSKSIJWOeeayWSBvQ5jkLj8GZ8fBTxk43Rur6XPw8exE74jzPn3jJWtV454fc1tmzavXo5Ip9
1030ec5nDJCFaWX5YHftx9qQAbkIs/sTvlNa6YrT+3XriLad+HW78sTdMzh/uTHbfNe6t3UgCfy8/FP7
1031QjeihC1rLctucdrasSTSPTkMexUOCKGtLFMLPiIm4sxN1V1oi2sRls7YxrnSnVNcmdCt91szGPNF
1032fTbTynDOXtPKLtuDxClainkik7+t704mQlwO1C0nImfPEhd2LPt6rV0R9aI2c0+lz0Zro128nocH
1033yzcXv2t5JXp7GaJq0eiAWgldnhknvyDLxZndhI43Hl06tjPRY0ory126tOrlt9NW9TD/AMV09eKW
10349BuodlvdFqL8riMettQR3LkzSE88szWIIrRvLLF3Qr4Hj9L/AE4UtxtiZ2XzHVyRPXSZr0LdhPTb
1035381PsdzxHZV21GxcorsB62eSO5Wu2CuyRmEQSEMU7nKUgcSZ2yWcu7dPRTWuiLObZSenCZj0Jp21
1036v5duHe8La2+3qVWsVJrNWrtdJsbcLz7Se7aPt12khneIm7dYxz/9k8dcezK6kTHNbOdsR1e1EZ57
1037+lvSui6+y6Mrr+6kzl1Rxjreu0rWaPlWtqjcs2IdnqJbdobM8k7PPBJXEZAaRyGPLTlkQYR/Bdb4
1038iupHwzFOvnr5oeeyZ5bLtt1a9keXnUvIZPItn5be1NVxGKnSgnqC+zs6wuUryMc7NWgm77CQsLib
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
1069RkMpTaMWFikkfkZvjGSJ3y7+6nBVKx4147Z2AbGxqqc2wB2ILkleIphcfR2kcXJsfmrbMxkTjmnP
1070Uao9gGyOlAWxjB4wuvEDziD5yLSO3Nh6+mVIwrxzJxpwQVvGvHasc0VbVU4IrBjLYCOvEAySRlyA
1071zYRZiISbLO/o6tZw4ZExjM721rQaK3VKpb1tWxVOQpzrywxnGUpu5FI4ELi5O7u7l6qbuBXPini1
1072uuiminiqwxzwRfbwyjGLGEOWftCTNlgyLfK3TorWceKUwpuWFFEBAQEBAQEBAQEBAQEBAQEBAQEB
1073AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1074AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1075AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1076AQEBAQEBAQEBAQEBAQEBAQEBBX2Owqa6hYv3JGiqVYymnlfL8QBuRPhuvoykysRWXJi8qleGeezp
1077b9KvFAdkJrL1AjMI25O3NrBDE7t1/puH44w61dFM/L0Jb7UxTb5dPcvyb/SQ2KtWxfrV7lwRKrUl
1078miGWTl6cA5ZP/q5V5ZrMRsZi7CJ2Ss3b1KjWO1dsR1asTZlnmMY4xb0yRE7MyzVuIVD8l8cCpFcP
1079a0xqTAUkNh7ETRmEbsJkJ8uLiLkzO7emVeWa02+vJImsVhuO+0ZSyQjsapSwjJJLG00bkAQlwlIm
1080zlmAvlJ39H9VNldh6f2oYvJtNZjqy0LUF+vbsfahPWnrnG0nAjxl5B5PgfpDkX4Yy7XlmtOFexKx
1081SZ3fsVdz5jqaNK1NVnr37FKevBbqRThziexOEGZGHm4ceecO3XCWxWbd100qs4V3xbM9kVdGpu9L
1082cqzW6d+tZq13IZ7EM0ZxxuDZJjMXcR4t65UnCKzkRjNNqKLybxuamN2La05KZG8Q2QsRFE8gi5uD
1083GxceTCLu7Z9FZiYzIxyW6GwobCqFuhZit1ZM9uxAYyxlh8PgwdxfDpMTGaRMS1/ams7Pf+7h7Pd+
108437vcDj3ufa7XLOOfc+Tj68unqkRlxWcK8EIeQaE7wUA2VUr0jmIVGnjeUiid2kZo+XJ3Bxdi6dEi
1085K5E4Zsx77Ry7I9XFsap7OPLyURmjecWZsvmJn5t/AkRWKxkTNJpKz93U78lfvR9+IGllh5NzGMnd
1086hMhzlhdxfD/g6lcK7Fp3qNjyjxqtFHNY21KGKUI5YpJLEQiUcue2Yu5MzifF+L+/sryzWm1K4V2K
10875+ZeOx+Sf2dluxRbJ4opowkliHuPMRCMYM58yk+Xlx4+js/ults3Vps/b3bUumLaV+99nnrh0Sth
10885F4+c9qANnUKeiJSXomnjc4AD6ilHlkGH3clNldi0xptbRb3STEIxbCtIRzPWARmjJ3nYO48TYfq
1089fD5uPrjqryz5cM+xKx5u/Lt2LyiiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
1090AgICAgICAgICAgICAgICAgICAgICAgICAgp7mOrLqrcVuqV2rJEQT1AHmUgE2CFhy2css3RE5tWz
1091MTg+eXK20OltaOgfb2dGeovR2KmzgsM4WHiYa0dV7cYWpCL5mdmchxj3wt31m2ebhTfWuOWym80a
1092RfZTD2sd1P20yRj47dkl2ut21jcwR7Y4jgjoVa8sM0X28YAJWDqzFXkiKNx/pJQZuhMu3NHNhnbf
1093M/zTdE8cKccKbnCyJi2K5TZEfy0mKdNZ3Y76vTeeUNjMekt15LYVKFspbhUYorFkGKE4wlCGWKw0
1094nAi6sMblh8t6LjZNL6z8Mx11j0RMfZV0mPYpG+OyK+mk9W+jl6XQDF5XqdhCOwuV5v2lamubGuEJ
1095DNMFUGfthDX7PPtlhijEnfk/XOVu2aVjCPY/119KXYxX5o7rbo9XcgtaHbSeKbMK9eeGZ/IJr08c
1096McbWJqwXnk5RjOJBI/BmIGIXYsYWbJpGnXZGPD3vTMTv2w3fFZviNsW0/DZWOvGN2/ahtaGzat09
1097jrrG2uWrV+EZ7mwqjV7XZqWwCTshXqGzCUosUhhh/lZn6KXRNKRSK239s2xHoS2YznGnL2RfbPrT
1098WKr2f3f1NGGnsjsNf+z4bcB1ZOLOFqDv8JHHhMJcCMijcmx1LC63XROrbfHu80dUbursYtibbLrZ
1099xu5buueWcevtxZ8u0e5s7ndHRhsDWcNLPI9eMHKYa1icpxhaYThkkAGAuLs+cM2OrLnpzSImf7l0
11009tkRE/i82GMNXxXCPgp/NWnXFY68cGv7CazttZtIS2uzebaVSuTbKoFZhGtWtMJ9ka1Qm4vILPIY
1101Yf5WYui3ZPLdGUR7c9c2xHoScbZ30tj+eJ9b0/ilWzX2Xk3dhOGGbaPLWchcRMCqV+RhlvmZ5GLq
11023vlYj+nbH7357lu9+Z4W+Z5axFsIta2kbXXZLgeSRXDkCvK8DVj2jWWmabHbIe2/zMLuQ/rMzM7r
1103WjnZPw2zE9PJdHl6zWyv+aIp/KmfT3h0U3CjKNovKht9IiaR4f2oLvN0bPDs5fl6cfwU0p/p12W3
1104flv+w1cfqcYtp1RZ6YWNBFfp+Rw0deNqxqHs2rFuDY0DhemUvcNzr3XGMJecp8eLOZcS+rDJpzW3
1105HZbERv2YTHR5jU97DObsd3T5b9i9tTsa7yzYWypWrMOx1kNeo9WCSZnngknIozIGcYstMOCkcR/F
1106cborp327Zx/lp5bdzrbPtWTsivnhyPDtJcjep95QkBx8UoUyeaImxKzy92H5m6G2W5B6+mV38XNY
11071qbbsOOEuXh8J067Ju89rXxqttqRatrNe3BPe8ao0IrH280nZuQ9xyGdwEuy491nzJhvXqr4mOad
1108WLc7prHZdtTRpbGnMxhbN1eubaeZyg8ctTeKfZznu5dvqdZbiDWyVII6wTSU5ICGOeKrF9wJkXys
1109ExkT8XJvVTWuia3W7cONKxNKcKbqbmtCJi62Lpyuiftr1znNccX0FhpVKugrzaqSwbFHHWKOuJjT
1110kaAv6U3fHZHDOHJvd8e6upNdWafNj6OvvcdOKaVtY+HDjv6ncXJ2EBAQEBAQEBAQEBAQEBAQEBAQ
1111EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
1112EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
1113EBAQEBAQEBAQEBAQEHLk8m00E1kLdqGpHWk7Tzzz1xApBi70gt/SOQlGHzExiL46+nVemPCakxE2
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
11743TERWkThM283L0x6JZ+pGOOEV/l97snDv2uuO01hRRTDcgeKeV4IJGkBxOVncXjB84I+QE3FuvR1
11755fo31mKTWIrls39DXNHZ66efDpVv7TeN/tMtV+1af7UF2EqH3EX3DOX0s8XLnl/boun/ANTW5Ofk
1176u5PipNO3Im6IwlvV8g0NvYz6yrsqtjZVmzZpRTxnPG2cfPGJOY9fiyl/htW2yL7rbosnKaTSeiSb
1177oiabTa7/AEWoaJ9tsquvacuED25o4GMv5odwh5P19GU0fDaurX6dt11M6RM+YmYiKzk52p898T2u
117862Wmo7KvLf1T4sxDNC7vgWKRwFjc3GLkwmXHDF09WdejW/xuvpadupdbMW35YT1bKY7N8YpzRzcu
117939uHTgvVPJfHLlGe/U2tOzRqu42bcViI4onH6mkkEnEXb3y643+E1bLotusui67KJiaz0Qc8Y45Z
11808GtryvxepUe5a3FGvUaV672JbMIRtML4KLmRMPNvcfVWzwetddy22XTdStItmtN/RxXmjHgvT3ad
1181eodyxPHDUAe4diQxGMQxnk5u7CzfiuNundddyxEzdu2nNFK7EFHd6XYPZahfrW3pn27jQTRydk2b
1182PGTg78Hx7Et6nh9SynNbdbzZViYr0byJrNNrjbb95Xg+t057c9zTsUgsBU517MBs88hMLR8ubAxC
1183z8iyXQWd36MvXo/4nxOpqRpxZdF1K42zlvy6uM4JN0Umfh8qdM7HoadypdqxW6c8dmpODSQWISGS
1184MwJsiQGLuJM7ejsvDqad1l023RMXRnE5rExOSVYUQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
1185QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQfH6+m8obU6vZx6yb7+LdWS1tKYH
1186/ovvJ7MklywOP6MXOQer9Wjbp1NxX6m7X0ee6yb45Z0reaY28ttkRbbvnCf4uFtXGYml9fapfWOP
1187t4dXLSInZ7U5UWLvht4bfkuvgqWD1oamAZrZA7lfsRjZn7YiLZkeSxZeSbDYd8D15Ozc9Px1vLpX
1188zMc/1JpHwR7FteFLbaW9uyG9O2fqxWaxMRX8V3N2+zHC3D4Up6DyOSz4xsGpShubk5STTOLOOurx
11890Za9cZXfLM8QWDPh15Sk7fT1aR4jSiNWzmj6dsfjmb7brqdPLEV2WRE5uFsXcls7ptinCLbs8vvU
1190uu/DnEJ/HdbY081izZ1V2XXanaTwaanFC8k8012ftFedicfkCKT+tJ/R5SfPR35+J1Y1YiIvti+/
1191TibpmaREWxXk6ZmPdjdZDrdbSbt0Uu/enljt9c7OVJtru4jt+VlHrLtjyC0ceu0krVJTrxU5o444
11925Rn49ngM8hyzMxcunVsCymjp6c26VbrY0ordf7UVm6JmZimdeWIttwpunFZvm2+bqV5Y9njhXqmb
1193sJ4RGaSppb2po+SbTV6wyt6jXjp/F6xA7SFBRruTPExMz/01g3bp9TAP4LOpr26t2nZfd7Opfz6k
11948brtvRbHVWTR04tuiJxiyIjpnOZ68LZrtiXLvQ7UtRTq+Pa++NbxfTST66xYqywyzX5onqxFHFMw
1195SFLFH3yISFnciH4r02XWfUuu1brK62rEXRF0TEWRPNNZjCkzyxExOUTuYtm7kikVuxumuFbojCJ/
1196eumu7DDhbafU2NjSipa/YBo/GKJTNwpWBuPav5rBIEJg1h5I4e8cmY+T8mLr78uW+2y6brrPqa11
1197Pet5eW32piZieWkzyxGNMKYLb92Ixp7c14ViK76zMz0wueF6HyAtTJrm2dqpqqIQQ6Da/YwU9l2W
1198H+mjlhtwSiwZEG5FABE7P09Hfl4/xOl9Tn5Lbr7qzfbzzdZXZMTbdHH70xHcacTGEe7TbnWs16cN
1199vGVeWvty8s7+pkv3LBtX12+rbfXca01OsUnOeK00deHlIxk7DE5C5O2QFs43F1n0KXxZbGN1k2X+
12001F00pE21unCmd1JpHvTtt0TExSfaikcKVxyymk9dIzVKB2S8V0Ut/W7D7Wzs5bnllT7G0c7TSDJY
1201GJ4Gi7s0AWCjDlGBC4i36uV11LbY174tusrbpxbpzz20pFLa1rS26beaaTMTWd7M1mLsM7sf3dlN
1202+EW2zStba5rl/QX9zvClsa+SGhv7lQLcJg7M2t1InOD2GZnESs2DYOBde30fqzi3LS8TbpadIuib
1203tK26Y/f1KW+z+7bjWPvZbJm3xWsxti2zqrN108ImK2+qrWfVbS75lugtXt1rJZXCrrI6FKrNTPXj
1204CD9LVmnZiiIpSk5g8oO+G+V8MrbrWWeHspbpXxndzXXRdz1n7tt9szhSk8s9OazMxfXKlOWnf0TX
1205DZhEL1imO00ui8aqay7Bpo7rVbn30Tg70tS7uJH65CzLDGI8scwd3xhcbdT6epqa111s6nLzRyz9
12067U9NsTNae7MJFnJp/Ttrst6ts9FIm2u+cN7h+R6va2rdzYyQX6WrvbWOpckoVO/bHXayCRq7/anD
1207ZeSOS65F0hLIOPTj1Xr8JrWW222RNl19unN0c11Lee+Yr7XNbSYs+aPartNW2azSPht/hxumY655
1208ZjGsRK4OkOr5ho7lqTb7OveN7E+wtVQd2mqRvDRhlio1oBhD/wAZLJzmAcODcnbouf8A9jm0NS22
1209NOybYpFsXbLprfMTfdPNPsWxS2ZwnDazdbldjNZiJw2W1ujClfemOzc+mL889AgICAgICAgICAgI
1210CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgrbLV6
1211zaUpKGzqQ3qM3HvVbMYTRHxJjHkBsQvghZ2y3qumlrX6d0XWTNt0bYmk9sJMVzcL+7D92v8Aylpv
1212+H1f9Gvb+seM/vav47vWz9O3dB/dh+7X/lLTf8Pq/wCjT9Y8Z/e1fx3es+nbug/uw/dr/wApab/h
12139X/Rp+seM/vav47vWfTt3Qf3Yfu1/wCUtN/w+r/o0/WPGf3tX8d3rPp27oP7sP3a/wDKWm/4fV/0
1214afrHjP72r+O71n07d0H92H7tf+UtN/w+r/o0/WPGf3tX8d3rPp27oR2P3UfuxsRPFJ4pqRF/V46U
1215ERdP8qMBL+Nat/zXjLZrGtqfiun0n07d0Nov3WfuzijGMfE9O4i2Gc6NYy/SRA5P+l1J/wAz4yZr
12169bU/Hd6yNO3c2/uw/dr/AMpab/h9X/RqfrHjP72r+O71n07d0H92H7tf+UtN/wAPq/6NP1jxn97V
1217/Hd6z6du6D+7D92v/KWm/wCH1f8ARp+seM/vav47vWfTt3Qf3Yfu1/5S03/D6v8Ao0/WPGf3tX8d
12183rPp27oP7sP3a/8AKWm/4fV/0afrHjP72r+O71n07d0H92H7tf8AlLTf8Pq/6NP1jxn97V/Hd6z6
1219du6D+7D92v8Aylpv+H1f9Gn6x4z+9q/ju9Z9O3dCWr+7r931SzDaq+MamvarmMsE8VGsEkcgPyEw
1220IQZxIXbLOyzf/lfFXRNt2rqTE4TE33Y968lu56FeBoQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1221BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1222BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1223BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1224BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1225BAQEBAQEHwOx5Z5NPMcpbS0Lm7u4xzGAtn2YRdmZl+ijw+nEU5YfBnXvmc5R/wBpvJP/AHa5/wCo
1226l/7Sv0NP4Y7E+tf8U9p/abyT/wB2uf8AqJf+0n0NP4Y7D61/xT2n9pvJP/drn/qJf+0n0NP4Y7D6
12271/xT2n9pvJP/AHa5/wCol/7SfQ0/hjsPrX/FPaf2m8k/92uf+ol/7SfQ0/hjsPrX/FPaf2m8k/8A
1228drn/AKiX/tJ9DT+GOw+tf8U9p/abyT/3a5/6iX/tJ9DT+GOw+tf8U9p/abyT/wB2uf8AqJf+0n0N
1229P4Y7D61/xT2n9pvJP/drn/qJf+0n0NP4Y7D61/xT2n9pvJP/AHa5/wCol/7SfQ0/hjsPrX/FPaf2
1230m8k/92uf+ol/7SfQ0/hjsPrX/FPaf2m8k/8Adrn/AKiX/tJ9DT+GOw+tf8U9q/s7PneraMr9u/XG
1231XrGRTyOz++MsTtn8Fzst0b/di2ep0vnVtzme1VLd+WjWGyWwvtXMnAJnmm4OTerMXLGVv6WlWlLa
12329EMfU1KVrNEX9pvJP/drn/qJf+0r9DT+GOxPrX/FPaf2m8k/92uf+ol/7SfQ0/hjsPrX/FPaf2m8
1233k/8Adrn/AKiX/tJ9DT+GOw+tf8U9r0n7vfI95N5RWqWb09ivYGQZI5pCkb5YyNnbk74fI+y8vjNG
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
1264ojMcUUY8YwEB9cCzM38SCxSu2qVqO1VkeKxE/KOQfVn/AEqXWxdFJyW26bZrC5F5Hu4tpJtI7Zjf
1265lZ2knwLu7OzNh2duOOjeyxOjZNvLTBuNa6LuauLnyyyTSnLKTnJITkZv1dyd8u7rpEUwc5mrVUEH
1266pf3c/wDzPX//AK7/ALiReTxv9KerzvT4T+pHlsfbV8F9oQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1267AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHzqf9z0JTGUG0KOJ3dwjKHm4t
12687M5dwc/wL6cf5KaY29750/4+K4Sj/ub/AN7/AOz/AOtV/Uvl7/sT9P8Am7vtP7m/97/7P/rU/Uvl
12697/sP0/5u77T+5v8A3v8A7P8A61P1L5e/7D9P+bu+0/ub/wB7/wCz/wCtT9S+Xv8AsP0/5u77T+5v
1270/e/+z/61P1L5e/7D9P8Am7vtP7m/97/7P/rU/Uvl7/sP0/5u77T+5v8A3v8A7P8A61P1L5e/7D9P
1271+bu+0/ub/wB7/wCz/wCtT9S+Xv8AsP0/5u77T+5v/e/+z/61P1L5e/7D9P8Am7vtP7m/97/7P/rU
1272/Uvl7/sP0/5u77T+5v8A3v8A7P8A61P1L5e/7D9P+bu+0/ub/wB7/wCz/wCtT9S+Xv8AsP0/5u77
1273T+5v/e/+z/61P1L5e/7D9P8Am7vtP7m/97/7P/rU/Uvl7/sP0/5u77T+5v8A3v8A7P8A61P1L5e/
12747D9P+bu+0/ub/wB7/wCz/wCtT9S+Xv8AsP0/5u77T+5v/e/+z/61P1L5e/7D9P8Am7vtdbxj928O
1275k2obE7z2pIhJogaPtszmLi7v8x5+V3XHX8bOpby0o7aPg4surWr2a8L2CAgICAgICAgICAgICAgI
1276CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1277CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1278CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1279CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1280CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1281CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1282CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1283CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1284CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1285CAg81e2k4bO1Bc2MmpjEhGiXaB4ZGcWdzOWQDbPJ8cWIVLcemq3YTwWp/IJ42tzQ1WsUte/C3Y7n
1286A3cWYpHij4kxcGfrkm/BWu2cImfs86RGzOaObb2F79sSDBMZB+0K4RxvIQg4lTc+D4zgSLq/T8VL
1287axH/AJO6PQzM17LfzJaHk9uHSUbGxaD7i5gYJDnaICwzuRyu8YjGzM36vLK3dnEcPRDUbZ4+mU1b
1288yyW5NDWp1Yp7EhzAZDYZ4WeFgLIyiBchIZG/Vz+CzGPZXvokzTy4OrrNi9/XDaGLhI/MShd84kjJ
1289wIeXTLch9VLpwrG6rUZ0nZLj6baTWZoQtbSSHYvkrGrlhjib0fIxcgE34+vLmSXTERMxjgzPHDFF
1290B5pG1ODrCU/24zzfd2Y4CflniIYjZjN+P80W9Fq7Du81ViPPPno7w3pbGthu0YwkaYBlAZzeJmAm
12915dSEJerN+Cl8csls1UNV5FPdsV4pagwjaGY4ZQleQSCFxFjbIRvg+XT8PzVjHsie1JmnbRQs+TMN
12923W2jY44j+9h+1AnJ5ZIpBijZm+VnIn9PhlZsmteNsU65W7CZj4bvRLo/tC5PalrSMdOavUaxIMRx
1293yNyl5Mw5OJ+ocOjt0+LOpdNIun4f2/YtsVutjf8AsQQ+SXZghatSGUyox3jeSbhhj5Nw6Rvkvl+D
1294N+S1dNOadlv7WbMaRtmvc5m122ztzy2qeQrQ6wb1dvuJInZz5FzMABxkceGOBPx/hUuw5uExC2zW
1295kb6+h0ZfILNIaUuxHg0leaYxgNjEu2MbjnlEBcic8MzOzN+Ptu6PauiNn/qozZNYifLKq7T2189m
1296FC5TCucld7AkEzy4ZiEeJM4B1+b2d1N/Bd072m12ttjuVKEDSyVoHksTHK8TBzZ+DBgDciwLv7N+
1297K53T7My6WR7UcXNr+S/Y1az2jKR3oVJGeSQBEpZicMkRDyb0yREbtj2XW7O796ndMuVuUdE+j1pG
129882heT7dhrFY7gg0gWmKrgwImd52Do/yO3Hh6rMY+XR62pwSWvLftzeGSOtHajj7s0c1sIxdnd+Ax
1299E4v3HIRz6N6tlSufDtWIy4n9rZDhtW4KTHRqDFLLKUvE3jmjGTIhwLJCxdWcm/Napv8AiozE1yzp
1300Xz+pd8mt262llmpS9mw5QjHLxYsdyUQd8Ezt6Es0nmiN8rF0Urwq5ZeUywlTktl2xhitNsoBYXfv
1301V+DMzO/plyyPX3VrEzMxlSKdd1PsSk5ce6kykDzSN7EcJRwSObxu51rIziASSDETm7AOCEjHp6P8
1302VYis08tvqJmkV8vKnmT/ANrIn+4YaxOcNoa0Y8usgETs8o9Pbtn0/BZrhE9PdHN5qNTGMx0d8086
1303lc8huXtK9qAI4YTKuQzV7PckDlPG3bkFhBwJxJ8szv8ABaiPbtifihi6cJpulOXmdcp2CFq5xnM9
1304aJnsi07nycBJ4WEnYHP3znHXisTNba8PtbnCtdirW3fkp6vSzuEBHcnEDN5cPKzgb4MWhxH9PqOV
13050p7UR8voZrhPT/qot3fMq9SWcDavio4haB7IjK5YZzaGJxzIw59+OfZZjHtp6FmJ66OjqtpZvyWH
1306+2GKtBLLA0rycjIoj45YODdHb4l/jSMoneld3lhVVu+R2a82w40mkraxw+4leXiTiYCbuAcHy4sX
1307o5N+aW4xEzvotNkbq+f1MFv5Q2dmjFGViyU4RVojMQDDwtKZchDkIi3rnk+fRLcY67u6nrSu3hHf
1308X1IZdluY95MwVmN46ISyVSncYmdpJMkDsBZcmbpkW/HCkTS26d0x5lpWYjp9CSludlc3UY1wjfXT
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
1369oz5YFj4tlnEvwVv9qvGvekRSI6PMpQeGQQ1RrDYdopIPt7zCDD3uOXjkbr8hg/v16dFZn0dsUxX7
1370eydi3Y02yt0nq3L4yNmJxIIOGe3IMmTyZZJ+GPl4t19Eifaid01SYwpwXIdf29pZv9zP3McUfbxj
1371j2nN85z1zz+CkYV6fQt2Mxwj0q2x1ezuR2Kz3gGlZZxMHg5SiBNghCTmw/k7g6lK5rWmSu/i7BaK
13723Vs9mwMkclYnDmwMELQEBtybmxC3xZ1qs9899PUzEYU4R3V9br1orQRO1mZppSd3cgDtg34COSfH
13735k6zdFYosOTrvHLFcKMNm4M9bXZKvGEXbdzcXFiMnM88WJ8MzMrdj00okx56+lnW+OT6+WqcFsS7
1374Ncathjid+4Am5s44NuBfM/ryVnGsbJp3RQp5575aweN2oKtWKO6LSa83KhN2eogTOxBK3PEjOL46
1375cUrOE7aU83qXf01dMfvYKkhzO92x1fhCIRZ9uICZ4b/rH+lZvisUIeaqUNhXq6aD9mXS/ZBEXL/w
1376TdzlGcfp92/H68+6t/tT/Dy+b1GyY33V75lX1ms3mqCL9nU7YSdgILXdjpyBJ2nfgYi10HAmYnb6
1377nb8FZmvd5oj0H2981drRRXYtlemnp2o2vPGZSz/aswvFEMfXszSO7lxz0BmSMLacZntSmNeHr9bu
1378qKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
1379AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
1380AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
1381D//Z
1382------=_NextPart_000_000F_01D15E52.0BD654A0--
1383
1384
diff --git a/framework/src/domain/mime/testdata/cid-links-forwarded-inline.mbox b/framework/src/domain/mime/testdata/cid-links-forwarded-inline.mbox
new file mode 100644
index 00000000..dd8090e6
--- /dev/null
+++ b/framework/src/domain/mime/testdata/cid-links-forwarded-inline.mbox
@@ -0,0 +1,763 @@
1Return-Path: <dude@dude.com>
2Received: from imapb020.mykolab.com ([unix socket])
3 by imapb020.mykolab.com (Cyrus 2.5.10-49-g2e214b4-Kolab-2.5.10-8.1.el7.kolab_14) with LMTPA;
4 Mon, 29 May 2017 13:42:50 +0200
5X-Sieve: CMU Sieve 2.4
6Received: from mx03.mykolab.com (unknown [10.20.7.101])
7 by imapb020.mykolab.com (Postfix) with ESMTPS id E4E1A158687A1
8 for <test1@kolab.org>; Mon, 29 May 2017 13:42:50 +0200 (CEST)
9MIME-Version: 1.0
10Content-Type: multipart/mixed;
11 boundary="=_27fc263db229c1c3abb1f95bbef8358d"
12Date: Mon, 29 May 2017 13:42:50 +0200
13From: "Dude, The" <dude@dude.com>
14To: test1@kolab.org
15Subject: Fwd: Html Hello (inlin)
16In-Reply-To: <a1777ec781546ccc5dcd4918a5e4e03d@info>
17References: <a1777ec781546ccc5dcd4918a5e4e03d@info>
18Message-ID: <46b164308eb6056361c866932a740a3c@info>
19X-Sender: dude@dude.com
20
21--=_27fc263db229c1c3abb1f95bbef8358d
22Content-Type: multipart/alternative;
23 boundary="=_b3e300e5b818a05994848f3575fd7d36"
24
25--=_b3e300e5b818a05994848f3575fd7d36
26Content-Transfer-Encoding: 7bit
27Content-Type: text/plain; charset=US-ASCII
28
29Hi
30
31-------- Original Message --------
32
33 SUBJECT:
34 Html Hello
35
36 DATE:
37 2017-05-28 15:13
38
39 FROM:
40 "Dude, The" <dude@dude.com>
41
42 TO:
43 dude@dude.com
44
45THIS is a test.
46--=_b3e300e5b818a05994848f3575fd7d36
47Content-Type: multipart/related;
48 boundary="=_7bed2b6150a4de304dd8cd8fd523f674"
49
50--=_7bed2b6150a4de304dd8cd8fd523f674
51Content-Transfer-Encoding: quoted-printable
52Content-Type: text/html; charset=UTF-8
53
54<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; charset=
55=3DUTF-8" /></head><body style=3D'font-size: 10pt; font-family: Verdana,Gen=
56eva,sans-serif'>
57<p>Hi</p>
58<p>-------- Original Message --------</p>
59<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
60<tbody>
61<tr>
62<th align=3D"right" valign=3D"baseline" nowrap=3D"nowrap">Subject:</th>
63<td>Html Hello</td>
64</tr>
65<tr>
66<th align=3D"right" valign=3D"baseline" nowrap=3D"nowrap">Date:</th>
67<td>2017-05-28 15:13</td>
68</tr>
69<tr>
70<th align=3D"right" valign=3D"baseline" nowrap=3D"nowrap">From:</th>
71<td>"Dude, The" &lt;dude@dude.ch&gt;</td>
72</tr>
73<tr>
74<th align=3D"right" valign=3D"baseline" nowrap=3D"nowrap">To:</th>
75<td>dude@dude.ch</td>
76</tr>
77</tbody>
78</table>
79<p>&nbsp;</p>
80<!-- html ignored --><!-- head ignored --><!-- meta ignored -->
81<p><strong>This</strong> is a test.</p>
82<p>&nbsp;</p>
83<p><img src=3D"cid:1496058170592c093a661dd956000502@info" alt=3D"" =
84width=3D"612" height=3D"600" /></p>
85<div>&nbsp;</div>
86<div>&nbsp;</div>
87</body></html>
88
89--=_7bed2b6150a4de304dd8cd8fd523f674
90Content-Transfer-Encoding: base64
91Content-ID: <1496058170592c093a661dd956000502@info>
92Content-Type: image/jpeg;
93 name=aEwOdgN_700b_v1.jpg
94Content-Disposition: inline;
95 filename=aEwOdgN_700b_v1.jpg;
96 size=84625
97
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
diff --git a/framework/src/domain/mime/testdata/cid-links.mbox b/framework/src/domain/mime/testdata/cid-links.mbox
new file mode 100644
index 00000000..40ff5282
--- /dev/null
+++ b/framework/src/domain/mime/testdata/cid-links.mbox
@@ -0,0 +1,1384 @@
1Message-ID: <851f01d15e53$31734730$790bc9ad@info>
2From: "OculusLab" <info@findermanze.co.ua>
3To: <info@example.org>
4Subject: CID links for images
5Date: Wed, 03 Feb 2016 07:19:17 +0200
6MIME-Version: 1.0
7Content-Type: multipart/related;
8 type="multipart/alternative";
9 boundary="----=_NextPart_000_000F_01D15E52.0BD654A0"
10X-MSMail-Priority: Normal
11X-Mailer: Microsoft Windows Live Mail 14.0.8117.416
12X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416
13
14 This is a multi-part message in MIME format.
15
16------=_NextPart_000_000F_01D15E52.0BD654A0
17Content-Type: multipart/alternative;
18 boundary="----=_NextPart_000_0010_01D15E52.0BD654A0"
19
20------=_NextPart_000_0010_01D15E52.0BD654A0
21Content-Type: text/plain;
22 charset="windows-1251"
23Content-Transfer-Encoding: quoted-printable
24
25=0D=0A=0D=0A=0D=0A=0D=0ASuperkombipackung f&#252;r nur 45 Euro=0D=
26=0A=0D=0A
27------=_NextPart_000_0010_01D15E52.0BD654A0
28Content-Type: text/html;
29 charset="windows-1251"
30Content-Transfer-Encoding: quoted-printable
31
32<HTML><HEAD>=0D=0A<META http-equiv=3D"Content-Type" content=3D"te=
33xt/html; charset=3Dwindows-1251">=0D=0A</HEAD>=0D=0A<BODY bgColor=
34=3D#ffffff>=0D=0A<DIV align=3Dcenter><FONT size=3D2 face=3DArial>=
35<A =0D=0Ahref=3D"http://intenices.co.ua/drugs-store/index.html"><=
36STRONG><FONT =0D=0Asize=3D4>Superkombipackung f&#252;r nur 45 Eur=
37o</FONT></STRONG></A><BR><BR><A =0D=0Ahref=3D"http://intenices.co=
38.ua/drugs-store/index.html"><IMG border=3D0 hspace=3D0 alt=3D""=20=
39src=3D"cid:9359201d15e53f31a68c307b3369b6@info" width=3D650 heigh=
40t=3D763></A></FONT></DIV></BODY></HTML>
41
42------=_NextPart_000_0010_01D15E52.0BD654A0--
43
44------=_NextPart_000_000F_01D15E52.0BD654A0
45Content-Type: image/jpeg;
46 name="aqnaozisxya.jpeg"
47Content-Transfer-Encoding: base64
48Content-ID: <9359201d15e53f31a68c307b3369b6@info>
49
50/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMqaHR0cDov
51L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
52aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
53OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAxNCA3OS4xNTE0ODEsIDIwMTMvMDMvMTMtMTI6
54MDk6MTUgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
55OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
56bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6
57Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUu
58Y29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBo
59b3Rvc2hvcCBDQyAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjdCRTg5MTBD
60OUNGMTFFNUJBOTdEMkQyNzU0ODI3RDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjdCRTg5
61MTFDOUNGMTFFNUJBOTdEMkQyNzU0ODI3RDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5z
62dGFuY2VJRD0ieG1wLmlpZDpCN0JFODkwRUM5Q0YxMUU1QkE5N0QyRDI3NTQ4MjdENyIgc3RSZWY6
63ZG9jdW1lbnRJRD0ieG1wLmRpZDpCN0JFODkwRkM5Q0YxMUU1QkE5N0QyRDI3NTQ4MjdENyIvPiA8
64L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0i
65ciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwM
66DAwMEAwODxAPDgwTExQUExMcGxsbHB8fHx8fHx8fHx8BBwcHDQwNGBAQGBoVERUaHx8fHx8fHx8f
67Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH//AABEIAvsCigMBEQACEQED
68EQH/xADJAAEAAgMBAQEAAAAAAAAAAAAAAwQBAgUGBwgBAQEBAQEBAQAAAAAAAAAAAAABAgMEBQYQ
69AAEEAgEDAgQCBAgKCQMACwIAAQMEEQUSIRMGMUFRIjIUYXGBQhUHkaGxUiMzFhfB0WJy0+OkZZVW
708ILSsyQ0lFU24UN1U4MlssJzhLQ1djcRAQABAgMEBQkFBwQBBAIDAAABEQIhMQNBUWEScYGRoQTw
71scHRIjJSYhPhQpKyFfFygqIzUwXCI2Nzk9JDsxSDNPLD0//aAAwDAQACEQMRAD8A/VKAgICAgICA
72gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA
73gICAgICAgICAgICAgICAgICAg1y6Bl0DLoGXQMugZdBrIZMBOz9WZBpWkM68Zk+SIWd3QS8nQOTo
74HJ0Dk6BydA5OgcnQOToGXQMugZdAy6Bl0DLoGXQMugOT4dAYnwyA7ughaWTPqgkIyaNnz16INQkN
753bL+6BJIbHhn6INozJ2fL+6DbLoI5JDYmZn6KDJGTR8s9VQiM39Xyg1GWRy6v0ygkMiYXdn6sghG
76aRxd8/yItGAnldupfxMoUZ70nx/kQO9J8f5EKAzSO3r/ABMhRnuyfH+RCg0snXqgNNI/v/Igd2T4
77/wAiDLSyfFCjDSyfH+RUZ7snx/kUBpTz6oMd2TPr/Igz3JPj/Igy0knx/kQY7smX6oMd2T4/yIMj
78Kb+6B3T5O2eiVKHdP4oUO5J8UqtGHlk5Yz/IpUoz3ZPiqUO7J8UKDynluqIy8h/FA7h/FKlApDZv
79VAaU/ilSjPcP4oDyHjOUGO4eG6oUZ5l8UGeZY9VUatIePVRR5Dz6pUoyxnn1QBkN3fqgy5l8UQYy
80+KDcXd2fPxVGUBBqgICAgICDSb+qL8nQR0//ACkP+YyEpkBAQEBAQEBEEBAQEBAQEBAL0dAb0ZFH
819HQQD6oJJP6pv0INY/Vvz/wIMS/1n8CCSL6X/N0G6CKT62UGS/qv0/4VQhQRh9Tfmglm/qyQQD9D
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
2906/oo2w6Iy3oisug1QYRGW9UVsiCKwgwgICDCAgwgyyCnfiCRmYxYhJsOzrF00lu3Fw7Ol6u8J4b+
291aX+NI1Fmxz5YZIvkkbBN8PgukTViYom1sxMfa9Xd8MuV8OlsvSRBxFh+H8qwqYWVgSMqyytDUzYR
292cnfDN1d/wZQeQ2Ft7Vo5f1fQG/yW9F2tjBiZVSdlWXpfH6ghSad2/pJny7v8GfDKDqY9kG3p0Qbe
29335oCDP4INmUBAd8MgrkOCz8VpGweuP4FBszoMOzKg3wRWRfOVEbCitmUGyAoMICAgINx9EVlAQao
294CAgwgICDDogisIMOyDCDCBhBhAQYwgYQZwgccoMPGLoNeyPwZBloRb2QSMDMg2ZsIMogg1k+h0FM
295v6+D/Of+R1Wdq6/oo2wiMt6IrLoNVRhRGW9UVsiCKwgwgwgygwgwgINZJBBsv1z6MpMrEOfanPPM
296vpb1b4MuV0u1sNc8myyzRXK2kfUT/Q66acsakMaOtztFM/pE2G/zn/xLWpLNr0IsuTaRmWkbsqg6
297DjeQX+3C1YH+eX6/wD/6rdsJMudrNTLaxJJmOv8AH3L/ADf8a6ObuHq6nZEBiBhB+RM45d2/P1QW
298w6C2McW6fL6N+hBI2PX+BQFUG9VFbfigMg2woDvhkGj/ABVRgmz/AIFRoPq6Df2yorHtj4KoIp+s
299ojLP1RWzOg3ZQZ9lBrl1FMqh1QMug3D0/Sg2QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
300QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
301QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
302QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
303QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
304QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
305QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
306QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
307QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
308QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
309QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
310QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
311QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
312QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
313QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
314QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
315QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
316QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQRWbVWpAdi1MEFeNsyTS
317kwALZx1InZmQYK5TG2FMp42tyAUsddzFpCAHZiMQzycWcmZ3SPMSji2urmnGCK5BJOTyCMQSARu8
318BMMrMLPn+jJ2Yvg/qkYk4eXX5sVpSZpFRW12zo7LXwbGlL3adgGkhlwQZB/fBsJN+llq6KZm2nGn
319Zglq2q1uvHZqzBYryixRTRExgQv6OJDlnZJigRWq0ss0MUwSS13YZ4xJnKMiFiZjZuou4uztn2U2
320VEiAg5Nvy3xinParWNrVG3SiOe1TaUDsBHGHcMngF3l6B830+ibK7PKPOR70W7ZdSKWOWIJY35Ry
321CxA/plibLeqt1sxNJS26JisbWyiiAgIIq1uraAjrTRzgBlEZRkxsxxvxMHcXfBCTYdvZNlTglQEB
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
354flm71A2J56MNalbhGzNLYMJLBThIwyTEZ8X7AvxzhvbCxGNld10x1cts+mVuwujjbXvl5zYy+XbX
355beQFSmgqz6myMVOWfaWagV42ijkCSWnFBJDOEju7uUpPnqLccJo0pbM7bprtyupThh141qupjM2x
356uw64z40nqwpTOZayW/tN/ToWthcarLb34zBDZmichgtRDEHOMhNhjYvl4u2PRumVNOIm3/8AHE/z
357yt8zFf3rf/irPf61WntPJNiep0zSPYidtoLFNsbOuksFRvPXjZ7NaKaYzCEcuOW5Z5PnCsRXH5NO
358fxRjNOzhFcsWbvZrEZc90dlKRXt4+znnX1taHyQfBZ68uyrBvGinhh2DTPLEB8yCHnMQRuRAPETJ
359wzyy+FnUpMxT5a7K5Vpu5tnS1ZhM148adPR5nl696y26qeOWf2lqfuLEY7VpNjLbEmOCeSAa9xze
360aPvHE/JmcH+VmZm5delsRdjsjm4YxyduF1fOxdM2xxmmPCebHhjHLltdCzpq9jzDY1gvXGjraSDt
361yw25QlYxs2WHnNGQym4Y9DJ8/rZXGb5jTvujOJj8s7MnaLY5rLdk83+jr8typqJ9h5FJWO9sLkbS
362+M0LxBVsS1h+6lKZyl/oSDr09PR/dn6Lr4n2PqzH3bsOyXPQ9qNOJ281eNJsVKG08r8lepDzHuNp
363aF2P/wDaVnVk8tmMnlsM1aCbvMJszOJvxH+b8y1q2ct19MKXzEbaRSJjCevppwY07sLYnHDtxmM+
364im7PbhSv39nHtBnnKK7sw3FA5TrvmKadtETu8b4H5TP06LF11ImbY/vU7IdIt2XT93Tr/wCWXZ8K
365/tRbk0e6ltQfa34yLYEW0s2nsucLlxipyV4oIJI5Wy4xE3FmJnyul1ttszbspht2xjXdTqmuTnE3
366XRXKa48N8U8pwzl3LGykr+W7sLFooacOor2IxORxjB2lsNJIzO/Fn6DyL8l5b5/2r99f9OHe9Fse
3673Zxr57XmfHmvbmKlHc2d9hbxfX237NueEnsyPLmYijISI/lbOX+b9bK7+K9n6sx927DhhLloY8kT
368tm6vbazrdjY8i1ks27vz1wq6ClejCCxJTA5LUEhzWJHhKPm3IGHiWQb4dVnxdsWxqU2XXW9VIphx
369mZ7MDw0zN1kT013zzTHdERP8XQ7QbG7rf3RVr9J+Nqvp4Dikxy4P2BzJxf14N836F18VFdaYnCJv
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
482gkD6gLD9CH3Z0nKuw20ZrWq1qvHZqyhPXlFiimiJjAhf0cSHLOysxQSKAgIK02ypQ7Ctr5JONy2E
483sleLiT8hh49x+TNxbj3B9XSMa8CcIrxp559CygICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
484AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgION5nsL2u8V2l6g/G3Xrmc
485R45cMN1k4v68GyWPwUwmYicIm62J6JmInuWK40is0mkb5phHXLx/kwjrquz19C/Zu07vjuxtWgs2
486JLeCjABhmE5SNwaRpDbiLsL46N0V1MromKcs29VZnDu27uLWh71k1xm7tjfwph2tNtJd00FiGnet
4878bfjF66by2JZHCzVGFo5YeRYhfEz9I+LenToumvnqcLre+bq+aHLwsf0p34T2W+XnN1sdx48xy62
4883ZszWtBZvSNamksM1iucAtMAydwY8DOTkICwvj6VdSI5r4yiL7I6IuuuiceiOpnSmZtsuzmYu66W
489xMd+HGubt+JU9/X2wzTzwfsu1UeRoW2tnaSSysYOE8b2YYe2HEiYmB+PUejJdSImJzrGzLOvHdnu
490IrNJ8p9H7XK8mtWNLutvqKhPHL5dHC+rJv1bhENS0Tf5kJRy/od1zssi+OScou/kmt135buu6HW6
4917kmNThT+KPd7a06LUVvlU1HkloL9ija8ZJq2mpxTyRwxxw14yrCdcSaOfvkX/wBwSznA4wt88zy3
492Zzffj+OlOHs0nfjXczZZETyThbbbGP8ADWbuqa8PZ6Vye92rXl+z2dq+0GreLs1q1iSNou7Qi59s
493GIQzykd255ES+bo/VZiPZimMzfNvfbTy3LF2MTOyyLp6pvr5striW9hvtZftUCmlpwsOqtFD+07G
494xkjaTYhHIRzTsJxscb4IGJwx+lb06TdSdl8Rlvtuw44xGbN2Vd9l89lMeGc5eh293a3F7yPyHXan
495YM0kFfU4qlZKAXI5rBTwhIHJ4ZZohZuQjy9PwdYs92JnH257OS3zTjTpavwmNnsf6vKHm9luNpBs
496aBaitdju0G2cF+G5O9+esDDSOc60hnL9w4RnzASP6untxWraYzM+zNueX36eeM8cMcUpNKRHtRfF
497I2TPJdMfsw6s3U8kvxyUrRaK1bsNqNVFabZzbexVhYZBkOGZmBpfupC45LujwfDD8Vi+Zt5rqUpd
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
546jtmnTkupNKzti7V/PZ5orPVlOT0c1TyansNfQt3nqUbmzrAFSrtLV6wIFWtPMx2LEcMzRyvGDiOX
547w7O4u3TGbaTMRPz8PuxTLbE17WcYtmY3W8fvxj2TR6jwyWcZd9rjnlng1mxevUKxIc0rRHWhn4lL
548I5SHgpiw5O74UnGy2ds17rro80E4XzGz2e+HDmK74tWksAVHd+PXdm0jg+RuDNdtN9JN3Y7BRyH0
549bAPhvXopp48lk9ET319c9a6n3ro646IpMeiI6nKi2fkew3LacJHnry29wYDNsbOuKQq9xgCILFeO
550aXEUb5aMXFsfgKacVtid1sd911Z45R0V4rqzS6YjbMfksmnCtZnjTPOvo70e1j/dbt4trYitXY9f
551fA5oJXnFxEZWAXlIInMxBmEycWyTOsa8xSKfL24VnrdPDRMakfvelxNrJb09OSLW7G3L9z43et2+
5525YkleKWCKP7exFksQuTmbM0fEXx6dF115xvjdMds3Th1x5nLwkRMac75iOqm7hh24rA2NnV29a/t
553Dt2qFqzTgo3aN82CApRjjaCzRcgjPlLnmeDLBe2Om6RzzbGdb+iac09VIjthyif9uLvlt6caY8az
554P2Oz51XG4VPW1JrUe7vc46hVrlusEMTYea1KFeWITaJnbjy9ScR91wsit3Db0euco7crXeZpbXs4
555z6ozn1y4W22NrVeMeeQvsrAya0QioWJ7BvMGaELRuMhFy5HJl8t6ln3XS2eabJpnqf64w7O4i2k0
556/wCP/wBWPaj30myebym9Hs7sE+tua4KAxWDGKJpYq3c/ocvGfPuPkZBIffGcqaf3eOpNvVWIYr7P
557Rpc3X7fqem8bGap5RvdW1mxPTgip2IRszSWCA52laTicrkTCXbZ+OcN7MykY2dF0x1ctk+mS7C+O
558NtevmuhFvqFEPPvGLwV4huyvciltMAtKQDWJxAjxycWd+jZTSmk3Rvsn82masVi2fnj8uo4G9Y/2
559R+8LvY/aP3Mf2P8A+k/8rB9lw9/6/PDH6+VdLLT/AOzHp5//AEU/hav966uX0+7lur/NV3vPbkEm
560maoE8RlXu6wtvBzFyjqyW4+byiz5ECEXzno7ZTT/AKls7Oae3lnl668vczj9Oa+9yf8A8u6qOO3r
561qXlXlFq4QDqoa+uOdybkH3Y91+g4fMvDs4Zmz9OPZS2aWceeafhty6697V0Vvj9zH8V32rviGvvN
562Y2u8uwvTl3cwTR0CxyihijaKPu46d02bkfw6D7K05bYt21mZ6Z2dVOuapM1urspER1Vx7+yjgeRb
563q5U0f7wpCvSV5ahM1A3lICi7lGF4+y+WcOUjvx4+pfimljyf9lP54w7O5uY9qf8Arr+ZX382waLz
564bZhsLkc+k7M+tjjsShDGYUYpnZ4hJgMTL6hNnH8Mq6f3eOpTq5rY9LnGMRH/AB16/bx7vWg8uJtl
565oPMLuxuzxTa6X7SnTCzLBAEfaiKPnCBjHK8xSO+ZGL4N6JpRSdOYznUju1KeaK96TMzF1co0/PZW
566vbW3q6XqP3lDz8OmHuPFys0G7o4Yhzdh+Zss7Zb8WWbP6ln70NR7l37l35Zec8i2W10dza67U25p
567qP8A+zO/Nctyl9qduwcczfdSNYkiE4xD2fhnkzMlntUifjmOn2K07acZrSq3ezFYz5a/zRFadE3c
568PZyzrS38HmerOk0IVrFgdlXl1OsPY2NgYyvTtsbyWLUcMvA8C4i74yz9Wz0sTFY30v2bOWO2Yxns
569hIjCa5ezt289vZudjWWIdvc02uLa3pNbapWrssz2Ja1me6EwDJEZwmBxdjkX9CBMzfDAqzEVuplb
570FvL0Tze1xyjGd+WTPNNIrnMzzcJilLeG3p5c86wa6xe3F7x+lY2VwqRtuo3mgnkrlahqWI4q0hyQ
571uBO/DrzF2d/jh3znOJnb9O2euaYt3YViP7lP5bpmOqcOrez4zY2Qf2QvS7G3Zn2v3UF5p5jOM44o
572JTj/AKLpEJC8Q/Ow8n/Wd0unCf8Aq5uv2Oz3pwyZvinVqTb1e325RnireM1rtqHxH7jbbKT9tUrJ
5737PNyb+l7QgUbC7FmJxd/qi4m/wCsT9Vuac0xs5Inr9n15ZNXznP/ACTb1e36vUjp7PyTYtpNQ0j2
574IpIti/KbY2ddJOdS52Ix+6rRTTGUcTZccty+p84Wbfax+TTn8Ue1NOmnCK5Ys3YViPjvjsnCK9v4
575c8629ZS3dzZ2dbudtOZ1NQMgvr707RtI1u0EZvKDVyOQIwETdxbk7fMzrGpdSy+6M45e3lxwypM4
5760ydLLfattnKZu7K2UiueFel6KkT+Q/u0rPtLf2xbbVRtbuM4hxKxAzEfXAt1JdPE2RGpMRsuw7cI
577c/D3zSJny4uDvNvvNRSt6e+FOS22lvz6zba7nBLENaIW+aEubwsTkPEgldst6LGpdzRdMYTFK9dz
578poW8t1kZ280R3eXbxUhseYbeXayVbENezqziCrPY2lqoMAfbxSjLNUjgkhnCVyInKUnz1ZuOF3pE
579XV+ea7cIumKcPZ68a1eeyZm2I+SO+3PjSerDLOZ9N55e20R6ShT4jFsrRQWTK1LRYsQmYRNZhjmk
580jeQx6OLZfHHLZXCyK30+WZ747cJmacODrMzFldtYjtr6aRXj1x5Xa2PKtVFYq2thwePX7yWtFWuz
5812yhGOvXOIZbEoQyHJGZmQEQ8mF26pdMTE7+WOH3/AFYS6aVvtW7pvt/LdXqmYq9LpWs0fKtbVG5Z
582sQ7PUS27Q2Z5J2eeCSuIyA0jkMeWnLIgwj+C7XxFdSPhmKdfPXzQ81kzy2Xbbq17I8vO3c2b9417
583viEl8dXC+gjnLgD/ADy/ctGTCbi7l2u47C78cdHXGz3bqZ82P7tIp1V5ut2v962vu0n8VceulKdf
584F52Tfb3c78dNFr61HElxrUEG0sUgs2qzwtyG3WrDObiEmeHEct1fPFastiYrsphw9q+Jw6bf5ssW
585brpjDjSfw23Rjsz/AJc98+spbu5s7Ot3O2nM6moGQX196do2ka3aCM3lBq5HIEYCJu4tydvmZ1jU
586upZfdGccvby44ZUmcaZOllvtW2zlM3dlbKRXPCvSp0Np5X5K9SHmPcbS0Lsf/wC0rOrJ5bMZPLYZ
587q0E3eYTZmcTfiP8AN+ZdtWzluvphS+YjbSKRMYT19NODjp3YWxOOHbjMZ9FN2e3ClgJNzJqPL7t7
588aTS7HV0geCSnZlCqMxakCklhEHjYhKQnMeTYZ/mZmfquerMRZM2xT27o6q24O2jbPPZbO63813lK
589vR2F4PMbcFuaSro7dui1q/DI4yHb+wrvBBKbOxRxyuz5Jn+YsB0Z+vWIisx899I2T+yMYjb1UnhW
590eS2f+O2s8K3enOdnfFltvefd6vaa9546Wx20tNyubKaQphZ5RMB17icEQCYfK4uxizNlurrlp7I+
591KyZ/lrEzOzZlhsdNSc/lmI/mi2cNu3Ppe1KbdyabYPtalapI0MnbGrZktC48Hy5FJBW4v+GHXHxF
592Pp3dE+Z00K/Ujph5Ce9tYvEPCKFLiMWyirwWTO1JRYuNNzji+5hjmkjeQh6cGy+OOWyvZrxXXuj9
5936e+O3CZmnCux5tGaaMT0R1Y+mkdfXEMtDzCBnC5K1/X0jsHJqqG4sBdhiIYijI7ZjVln7b9z5ZCH
594oQ5csLjN9sRWd2dON2zLKkfwzhjLtFszhG2ct+EbenHrU9aFQtb5tvaFu+M7UQs05ZbdkZMTamMx
595kkiaTtvJn0Lj8rt8uMK6sTZZMbee6O+3y6F0aX6lk7OW3810dflOeLpX9g2imjke/fs1bWksW9qD
596WTmlAw7Iwzw90nGAjeQ2bjxD3x8q1qR7V9sRhzWxHTN0xSu6e6mDnpT7Fl857eiLazhww6aubY2m
597/wBXtZ9UU50KdkNeVl32U2ylrR2LbwyS96yLFCRg/HAk4t9TOpZEXTSfi6Pu3TSueMxHHHiXTNsc
5980fDPnsitMsIm6d2HBc81/aGl3OmHRHNakgq7DvlLMduxBAT1Xmkj7xGcsghkgAz/AIvlWbJiZu5s
599LeWKz/F5VnZm6THsxTGeaKRvnlv8t3Rm2sS7Xabc9Vp7P3Ouq62rY1tiXb26UsjTdzlac4IZys9R
600FnaQuLfzfmVmJ9qZwmLqb6YRMYZb8ca07cRMezGcTFema4xXhhhFKV6KXP3f6wv7Qby5etHY2gHT
601exJBasFVkOWhC8kgwubREBHy4O4dG6DjGFqZiLZ5YpHPd6Em2eaK58kee+PLjjm7kLBJ+8C9JO7Z
602p6qs1bl6CNieZ5ybPx7EefyXO2nJdPzY9ERh55dLory/xf6fLrcvZhJF5dpSiOvPDJWuBo4Kgdp6
6037dgXeSV2KRpoy4sLOPARd26E+HbN3Ny3x9/kn80YdPqmlCsTyzPu88flux8/bm5/j+Psv3c9j/zf
604bl+94/Xx+yP7ruf/ANVw55/Xx7r0XU+pdT3eTDo5rOXuycpryY+99Tv9uvpdPy6TZx+c+Llra8Fm
60512NkzRWZjrx8eMGX5hFYfP4cFy0s7/3Y/M6X+7H78flved8h1l/RauTXSWel3WeRXbdaByGs0krR
606yCAA/qMfcdhd2+L9M4WJmOWY+Gy380eXRg66Xvxd8Wpb+W71VnjihO9tYtzYoUuIxbLYU4LJnako
607sXHURnHF9zDHNJG8hD04Nl8cctleiYrdMfNqT329uEzNOFdjy2zTTtn5LI6q3+mkdfXHUpUd+/kO
608t0222EgVZP2kTVaOxszGMQBVKOKe0415yMDkMhd/mYXZuT9c4tpNeFvR9/1YcXSaxHTdH5bq9sxX
609yhKVqzY/dsVmxKc93W3zGnPIWZSOlsihg5G/VyIQYCd/XL59VI97TnbdyV/iiIu7plJwjUjdz06o
610mY7Jp2PQ+bnWHWRATWJb88rQ6yrVt2aZS2DZ2FjOtJEXbFsmeejCzuucRMzERn5o2z1fZtbwpMzl
611HlEdf2zk4+mG1otpsNbe2s9iKlpa05Wbc8hs8ry2XmmZ5SJ268Wzno3Fs9GV1rq6d8xsnDf7uHb5
61210rfasrtrXtt8zz9OfZ7DUhNPtL4nW8Rp3w7VqaPlbdpn75uBM5l8jZ5Pgv1mfouviZ5J1Jj7t8U
6137J2M+Hjm+nE/em6vbb63pvHTuQeS6+I7tmyGy0z3bg2JSkF7ASRMxxg/yRZaUsjGIj+Ct9sRN9sZ
614WzbTr56+aHGy6Ztsu23RNf5fX60G0fcv+8q1Hq6tS0UujhCZrsxwgIvambPEIZ+5+Ivx/Ncbbeay
615+Jym6Pyy73TSbJ/e/wBCvqtNb1W2HSjctWotJoqk1etHNLBFLZCefBOEZN0Lgw8XfDj0LOFrU1PZ
616vujOKU2/dny6cS22K2xOEXTfWnTb5q4OKE/l5+Kf2hG9FCFrWW5bc47W1YkmkenIY9iocEUNaWKY
617WfERNxZibqta0RbWIy2dsY1zpTqmuSaFb7rZmMeaK+m2nlOGcuwNjZ1dvWv7Q7dqhas04KN2jfNg
618gKUY42gs0XIIz5S55ngywXtjpukc82xnW/omnNPVSI7YcYn/AG4u+W3pxpjxrM/Y7PmW6l8c2NHe
619SyyFrCinp26zETh3nDvVjYPTmRxPFn1fmzLhFZmbY966PZ/ejZ1xM/heikTETOEWzj+7OFeqadsu
620Rr6l6a1a1vkG2t15NXra9oZIrUsGZbHdOzYIgIe4Ecg8BA8gLN9PVa1Ji226637s8sdEW20mm+6a
6211306WLK3XWxMe97VOM3T7Nflinb0IdZLs/ILMT7G9cgI/HKV04qs81RvuZDmzLxiIHZ/lbp6P6Oz
6224ZNf2I1JjO2cOHsy1p0mbIziZu64ibaPQVILvlX7s60U9jtXNxqou7Z45ZpJ4WcicWceju/VlvxN
623vLqTT7t3mmtPQ5+Hu9nHdMcd1ena8l5K/kklncjHWq1rtLxu1DYHXTSTNkzB67E5RQOJ8AlcAw+G
6249+qzE2zzTPuzfp1r0zzdPszHN1N2RMTZEZxF1OyKfzZdE7np4JKUXmuvlpFGFANFKVkwdmiGJpoX
625quT+jCw93h+HJWZp9Sbt9vb7dft6nOyK26cR83mt9NFeaxr7Pku/sW5YZtZNoq0lKZyE4jrEVh7B
626AWXFxf5OTt7cVx1YmNK+Pvc3X7scvfzU41d7JrqadMse3mivdRyvGml42f7Q4z/ZXX5+49eHCb7z
627PL/K4c/+rldvGUpq0z5583s9/NTjVy8LnpbqT+aP9PK9p4Z95/ZDSfe8vvPsK33Hc+vudoeXLPvn
6281W/E0+pdTfLnoe5DsLg7NJ4ILEEkE8YzQSi4SxSMxAYE2CEhfo7O3qzpMLE0xhS1fjnj2peR9Vq6
629mveVmaV6sEULmzejF2xHP6VZumYpLMREYo4/FfF469itHp6QVrbsVuAa0TBKTejyCw4N/wA1K4RG
6305dtdstj8a8cOjBQPVUyo1i7lao9eJ4ozbL8gj48Rfr6syvNNa1xhOWKTGyUv7E0v7T/av7PrftPH
631H7/sx9/jjGO7jnjHT1UjCJjZKzjnsZi02nijeOKjXjjeFqzgMQMzwM7u0WGb6G5P8vp1ScVrjXyx
632z7WlPQaGlDFBT1tWtDDL34YoYY4xCZ2ce4IiLMx8XduTdVeaWaR2rcNWtAcxwwhEdg+5OQCwvIfF
633g5m7fUXEWbL+zKbKLxUovGvHYti+zi1VOPZO7u94a8TT5Lo791h59fzViZiKQTjjLa1oNFbqlUt6
6342rYqnIU515YYzjKU3cikcCFxcnd3dy9VN3ArnxWXpU3pvSeCN6bx9l6zgPaeN248OGOPHj0xjCTN
635cy3DLBVq+O+P1IbMFXWVK8N1na5FFBGAzM7OztKIizHlndvmVmaxSciMJrGYHj2gDYDsg1lQdiLc
636RutBG07DjjhpGHnjHT1TmnHilIw4MbTxrx3byBJtdVT2EkTOMZ2q8UxCLvl2F5BLDKRhNYWccGsn
637i3jMrg8uopG8UH2sTlXifjXxx7I5HpHjpx9Frmmta4ylMKLR6vWSNO0lSE2skB2WKMH7hRszAR5b
6385nFgHGfTDLNfX171p5qdW7oxShVrBYksBEA2JmEZpmFmMxDPBiJursPJ8Z9MoKN7xjxq/dG9e1NK
6393dDiwWp68Uko8HyODIXJuL+nVW2ZtywS6InPFal12vmtRW5qsUluDLQWDASkBn9eBu3If0KRgs4s
640tr6DTzztWiae0Ix2ZeA85QBnYRkLGSYeT4Z/imymw4q8nj+hk1r6uTW1T1rvyeiUEbwO7Pyz2nHh
6419XX0SZr1HpNV49oNR3f2Trauv73HvfawRwc+OePLtiOccnxlam6ZilUi2C74/ob1h7N3W1bVl43g
642eeaCOQ3iLLFHyIXfi+eo+ikTTJZxTSavWSBajkqQnHdbFwCjB2mZhYMSs7fP8jMPze3RSJ89evef
643s6kFzx3x+7Z+6u6ypZs8O135oI5JO2/6nIhd+PX0ViZjJJjCmxat0qdyuVa3BHZrk7OUMoCYO4ux
644DkSZ26EzOyixggp6TTUqR0adCtWpS8nkqwwhHEXNsFyAWYX5e/RLprmRhNYza09BoaUMUFPW1a0M
645MvfhihhjjEJnZx7giIszHxd25N1V5pSkdrFrx3x+3DLBb1lSxDPL9xNFLBGYnNhm7pCQuxHhscn6
646qRs4L6VkaFETgkGvEJ1QeKsbALPGBYYgB8fKL8WyzfBlZnOd6Uwo1j1mtjGuMdSEBqOT1WGMWaJy
647ZxJ48N8uWJ2fCnqp1bujCFn01695DrNbA1doakMTVBcKjBGI9oSbBDHhvkZ8dWZWp669e/vlDZ0G
648itUmoWtbVnosbyNVlhjOLmTuTlwIXHk5E75x7qbuBv4p4tdr4S5xVYYy7Q1+QRiL9kMuMWWb6B5P
649gfRJxrXbnxIwpTY2CjSCmNEK8Y0hjaEarALRNGzcWBgxx446Ywl082eJbhkp0vGfG6MFiClqadWC
6502LhbihrxRhKLs7OMgiLMbYd/VWZmYpJGE1jNJPodHYt17k+uqzW6jM1SxJDGUkTD6ds3bkGPwSLp
651rM7ZSkUpshYuUqV6sdW7XjtVZWxJBMAyRk3rghJnZ1KNRKuGg0QV46wa6qNaGOSCKBoY2AIpsd2M
652RYcMJ4+YW6P7qzNc0jDLp61hqVNp452gjaeGN4YpWAeYRk4uQCWMsLuA5ZvgyVnHilIpEbkWy1Gp
6532kDV9nSgvQM/JobMQTBn48TYmyoqKXxzx6bXBrJtXUk10bs8dI4IigF29HaNx4N/ArMzM1nMjCKQ
654sRa7Xwlziqwxl2hr8gjEX7IZcYss30DyfA+ik41rtz4kYUpsVrPjnj1qCtXtaupPXpMzU4ZYIjCF
655hZmZohIXYMMzfSrzTXm270phTYslrteQ2RKrCQ3WxcZ4xdpm4dvEvT5/kbj83t0U2UWJpNWkmn1E
656kNiCSjXOG3x+6iKIHGXgLCPcF2wXERZmz7MrWe+vXv6SIp2U6t3QiDx3x+O4d4NZUC7IbSyWhgja
657UpBzxNzYeTk2Xw+UiaZJML5gBgQGLEBM7ELtlnZ+js7OszFcJaiaK82r1k1D9nTVIZNfwGP7M4wK
658HgOOI9t248Wx0bCt01ms5pbhkqS+KeLTVq9WbT0ZK1TP2kB1oSCLL5fti44Dr8Feaa12pSKU2I99
6594rqdtVuM9aCLY2qc1KPZPCBzRBNGQfKXylxbl9PJlmYwmN+bdk0utn4ckup8a0erpnVp0KsITgwW
660+zBHG07sPF3kYW+bPX1yumpdzTO7c56dvLEb42tqnjnj1OE4amrqVoZAeKSOKCIBKMndyB2EWZxd
6613y7LMzXNqMMYS09JpqQwDSoVqw1mMazQxBG0bSuzyMHFm4sbi3LHqk3TKUhDP4x41PBDBPqaUsFc
662ykrxHXiIIzMuREAuOBci6u7e6RNJrGxZxrxWC1OqLYhsipQFsYweOO68QPOIPnIjJjmw9fTKRNK0
6632pMVpwyVb2kefdUttXn7FisJwWRcOYz1pME8ZfMOHExYhLrjr06pbhXdMebLzz2rOMRvicPT2+eI
664S67x/Q6yWWbW62rSmn/r5K0EcRH1z87gIuX6UrNKbCYxrtTwa7X17E1mCrFFZsYexOACJyO3pzJm
665yX6VIyoS3kqVZLEVmSGM7MDEMExCzmDSY5sBO2R5cWzj1SMBpa12vtvm1VisO0ckLPLGJ/0czM0g
666fMz/ACmwtyb390WJRy6XTzQ2IJaFeSC1x+6iOICCXgLCPcF2wXERZmz7Mk459PWkYZbqdW5mrp9T
667UGuNWlXrjUEwqtFEANEEjs5jHxZuLE4tlm9VZunNIiMlK/45BakoRRuFbWVLL3Z6MUTC007E8gER
668M7MzNM/cL5ckWHz65WzSa7opHDZ5sIW7GJjfn5cdvDDat7TRaTbxhHtdfW2EcTuUQWoY5mF3bDuL
669SMWHU21NlEI+LeMDHViHUUhjouT0gavEwwub8ieJuPycn6vxVmZnPo6iIosR6fUxxvHHSrhG8A1H
670AYgZvtwzxhwzf1bcnwPp1Uumta7cyMKU2JQo0gljmCvGM0UfYikYBYhid2fti7NlhyLdPTorWceP
671l6UiIw4MtUqtae20MbWyBoiscW7jxs7kwOeOXFid3wpCstVrNZK00INaIGiKfi3ceMXchBy9eLOT
672uzfigpj474+E9qcNZUGe8JR3ZWgjY5wP6hlLjk2L3Yk2U2Fca7QPHtAGwHZBrKg7EW4jdaCNp2HH
673HDSMPPGOnqrzTjxSkYcFuzUq2ou1ahjniYhNo5RYx5ATEBYJnbIkzOz+zqRnVVfY6TTbMoS2VCtd
674KuXKB7EMcrxl8Q5sXF+nskTSaxmTjFNix9nU752OxH9xJG0JzcR5lGLu7A5Yy4s5O+PxSmExvI2c
675GI6VOOoNKOCMKYRtCFYQFomjZuLAwM3Hjx6Ywl3tVrjUtwywR67VavWVvtdbTgo1suXYrRhEHJ/V
676+IMLZdWZmc0iIjIr6rV1opoa9OCGKw5FYjjjARkcmwTmzMzFn3ypOMUnJqJxrtanptOcNaA6NcoK
677XH7OJ4gcYeDYHtDjAcWbpxV5prXazSKU2JLeu19x4nt1YrLwF3IHlATcDb9YeTPxf8WUjCarOVFh
678AQaTzwV4JJ55BhgiFzllkdhAAFskRE/RmZvV3SZWIrhDna3yvxbaWftdZuKN6zxc+xWswzHxb1Li
679BE+Gytcs7meaN7qLKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
680ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDiec//AArf/wD463/3BrnqZdnnddD+
681pb0w8/O3llX93t2zNsaxhHpjOo1KrNWsRyNBkC7z2p8uLN7A3Xr0Xp8RMRfNfj/1YuHg4rFm6keZ
682X8u3lkLUkdO+YkPi2zuOEMzs7SN2OzPgX+pvm4H+eFjUin1OF1nnur6GvD4/SrtntwhZCmUu41On
683tX7wUblCW/LI1yxHLYtD2QcWmAwMBACc+3G4i+c4XS+I57/lpTrm6s8aUiMcq9DlZdM2WT8WfVEU
684jrxnfPL0ut4bugm01YLt4ZppbNytr5ZjFpbUVaeQYzH07hdoGJ3Fuv1LE4xE7ZtiZ7se/vdJik3b
685oup9nVNY6npFhRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
686EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBpPBBYgkgnjGaCUXCWKRmIDAmwQkL9HZ29WdJh
687YmmMObrvEvFdZO9jXaajSsOLg81etDEbgXqPIBF8P8FZumYozyxWrev4x43WjKKtqacEZhJEYR14
688gEo5sd0HYRbIycW5N746pMzMU8sF212pr+m1GxqjU2FGvcqA7OFexEEsbOLYZ2A2cWwpM412kYRS
689Mkj67XuVY3qwuVLP2Zdscw5Hg/afHyZD5fl9uitZrXalMKbFhRRAQEBAQEBAQEBAQEBAQEBAQEBA
690QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
691QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
692QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
693QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
694QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
695QEBAQEBAQEBAQEBAQEBAQEBBpPPBXgknnkGGCIXOWWR2EAAWyRET9GZm9XdJlYiuEI5r9GGsNqax
696FHWNwYJzMRB3kdhDBO+H5OTMPxVpNabWYmJiuxOoqhqt7rdqU7UDklCuXApnhmCEny4v2pTAY5cO
697Ls7xkWFaYRO8nCaL6gICAghu3qVGsdq7Yiq1o+sk8xjHGLfiROzMlViHP/tf4k1H9oftuh9hzaL7
698v7qHs9x2d2DucuPLDP0yrNswzE16l6hsdfsao29faiuVTzwsQGMsb46Pgwd2dJiYzImJyVZvJvG4
699KA7GbbU4tecjwhcOxEMLyM7s4NI5ceTcX6Z9lN3Fd/DPgqD574MYmQ+RawhjblI7Xa7sI5Ycv8/R
700skzK8spzQsz+V+LV6le7PuKMNO3n7WzJZhGKXD4ftm5cSx+DpNs1ptImJiux0YZoZogmhMZIpGYo
7015AdiEhfqzs7dHZ0mKZrE1Qa3aUdnXezRk71djONpeJCJFGTiTg5M3Ict0Iej+zpTCJ34m2Y3LSgI
702Kmz2+p1VdrO0uwUK5EwDNZlCEHN2d2FiNxbOGfonAba/Z67ZVmta61DcrE7sM9eQZY3dvXBA7srM
703TGaRMSsqKjmtVoCiGeYIinPtQMZMLnI7OXAM/UWBd8N8EjcJEFbY7Klrar27snarsccbnxIvmmkG
704IGwLO/UzZkjGYjbJsmd0V7DY7Klrar27snarsccbnxIvmmkGIGwLO/UzZkjGYjbJsmd0V7FlAQVr
705OypVrVSpPJwsXjOOqHEn5lGDyE2WZ2bAC79UiK4cK+aPTBM0ivGnl2LKAgIKG13+h1DRvttlV17T
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
930bdNduV1KcMOvGtW7qzPL8sU64z40nqwpTOZ7fn+ugvWfF45zmFi2og7155q74KrO74KE4yzkWw+c
931t1+LrGn/AFP4bvMsz/tz/D+a3y73Ifb26/i8IFflG0/kw0gc5zeYom2rD2eRFzJux+r/ADfwW9P2
932rtPjbNfwXenvNSKRqU2Up/K73hEctgtnfs2rNicNlsK0QSzyFEEIWiYQGLl2/l49Hdss3Rnx0WY/
933p28bfTK3+/MbqfkteY8xcdjo/MrexuzxS62Z6lOoFmWCEI+1EUfOEDGOV5ikd8yMXwb0V0c9Odt1
9348d2pTzRXvTU+/GyLJ77K17a27sOlnd7jff2mu6qvM5VLW0grO0tyakAj+zAmGALEQTSQ92Tr8gs5
935P0z8ymlFYx+fum3tpEzNC+aREx8NvfN+PdEV49Ex67xWtt6usvV9xZido55Ow0duS4deB4xLty2Z
93644ZCISciZzbPF26upq0mzqms5bZ80YdS2RMXZbsM/KrztefbeJ09LqXjo7vXyOVfTWYWeO0xhBJJ
937GZRv3QkywYOQDH1zhNS+Zrsvi2Z4YRu2d+4stjOvszdFf4rt+2mfVVV2UMc/7uquyLZ2bN7avrZb
938JnORi8pXIHN4oTco4e2RY4xizfzsrrdbFutbbHuxfH7a8ezcxZdM2XXThdy3YbvZu9nq7cE+2nva
939i9vYat629LUDqttiaxNMTRlPK1wOchGbxlDBng78W9mWLJikTOXPNvVNtsd03VW+MZiNtkz12zM4
940dNKUhTDfeQFZjrNZnll31gNzqwYyFxpxNLK9YcOzsDhXhY2+Mr/FZmJttnD2tO2Znrtw6aXzMdFs
941N4TNa0tvmLY6roiZj96z2u1UCfy8/FP7QjeihC1rLctucdrasSTSPTkMexUOCKGtLFMLPiIm4sxN
9421W9aItrEZbO2Ma50p1TXJNCt91szGPNFfTbTynDOXoqtFtt5JTenbvgGuCG1uZxv3OycxRs8VRoO
94372OrYkl+T0w36zrU+zddP3a3RHTt6rfP+7MONuNlvxTETPR67vNWdsS7Wxt2IvONNB3jjqTUb7nF
944ydozkjOu4u454uQi5Y+DZXKyntV3R55r6He73Y/e/wBMvJaK1a3VrRQS7O3JStyb8pCr2pY+7HDe
945EYP6WMhPiAP8jiTYbo3Rbtt3/wBqyevBm6aTd/2U6uW5L4/cu7ezrdPs79kKUUe0dpY7EteawdG+
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
1024/wDHE/ztasVik/Fblx0q+XXvl7HzStuLEFGPWl3Gadzt0I7Z0J7MLRk3GKxH84uJuJuzO2cYd2XO
1025PexypPox8t7Wzy7HkPHBpXvJrG0qftEp4NQMletau2HkeavctRFFJwlcJgEwYW5chf16u7u+r7pt
1026077o+WYw32YYeXBIti66yJw9q6Jx3TZt8t05UUZP7UW/DZN1Lag+1v6q4WwItpZtPZc6UhcYqcle
1027KCCSOVsuMRNxZiZ8q69tttbdmFNv3oxrup1TXJfDzddfbOU80V4b4p5ThnK95DVlq0LeujtW5q2x
10288YvW7EUtiY/6es0LAUbcv6JnaZ2II+Iu3qyviP8A3Plut75ur5oZ8J/7U/Fh3W+Vc3vfGqNanoqs
1029daSWSKSIJWOeeayWSBvQ5jkLj8GZ8fBTxk43Rur6XPw8exE74jzPn3jJWtV454fc1tmzavXo5Ip9
1030ec5nDJCFaWX5YHftx9qQAbkIs/sTvlNa6YrT+3XriLad+HW78sTdMzh/uTHbfNe6t3UgCfy8/FP7
1031QjeihC1rLctucdrasSTSPTkMexUOCKGtLFMLPiIm4sxN1V1oi2sRls7YxrnSnVNcmdCt91szGPNF
1032fTbTynDOXtPKLtuDxClainkik7+t704mQlwO1C0nImfPEhd2LPt6rV0R9aI2c0+lz0Zro128nocH
1033yzcXv2t5JXp7GaJq0eiAWgldnhknvyDLxZndhI43Hl06tjPRY0ory126tOrlt9NW9TD/AMV09eKW
10349BuodlvdFqL8riMettQR3LkzSE88szWIIrRvLLF3Qr4Hj9L/AE4UtxtiZ2XzHVyRPXSZr0LdhPTb
1035381PsdzxHZV21GxcorsB62eSO5Wu2CuyRmEQSEMU7nKUgcSZ2yWcu7dPRTWuiLObZSenCZj0Jp21
1036v5duHe8La2+3qVWsVJrNWrtdJsbcLz7Se7aPt12khneIm7dYxz/9k8dcezK6kTHNbOdsR1e1EZ57
1037+lvSui6+y6Mrr+6kzl1Rxjreu0rWaPlWtqjcs2IdnqJbdobM8k7PPBJXEZAaRyGPLTlkQYR/Bdb4
1038iupHwzFOvnr5oeeyZ5bLtt1a9keXnUvIZPItn5be1NVxGKnSgnqC+zs6wuUryMc7NWgm77CQsLib
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
1069RkMpTaMWFikkfkZvjGSJ3y7+6nBVKx4147Z2AbGxqqc2wB2ILkleIphcfR2kcXJsfmrbMxkTjmnP
1070Uao9gGyOlAWxjB4wuvEDziD5yLSO3Nh6+mVIwrxzJxpwQVvGvHasc0VbVU4IrBjLYCOvEAySRlyA
1071zYRZiISbLO/o6tZw4ZExjM721rQaK3VKpb1tWxVOQpzrywxnGUpu5FI4ELi5O7u7l6qbuBXPini1
1072uuiminiqwxzwRfbwyjGLGEOWftCTNlgyLfK3TorWceKUwpuWFFEBAQEBAQEBAQEBAQEBAQEBAQEB
1073AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1074AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1075AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1076AQEBAQEBAQEBAQEBAQEBAQEBBX2Owqa6hYv3JGiqVYymnlfL8QBuRPhuvoykysRWXJi8qleGeezp
1077b9KvFAdkJrL1AjMI25O3NrBDE7t1/puH44w61dFM/L0Jb7UxTb5dPcvyb/SQ2KtWxfrV7lwRKrUl
1078miGWTl6cA5ZP/q5V5ZrMRsZi7CJ2Ss3b1KjWO1dsR1asTZlnmMY4xb0yRE7MyzVuIVD8l8cCpFcP
1079a0xqTAUkNh7ETRmEbsJkJ8uLiLkzO7emVeWa02+vJImsVhuO+0ZSyQjsapSwjJJLG00bkAQlwlIm
1080zlmAvlJ39H9VNldh6f2oYvJtNZjqy0LUF+vbsfahPWnrnG0nAjxl5B5PgfpDkX4Yy7XlmtOFexKx
1081SZ3fsVdz5jqaNK1NVnr37FKevBbqRThziexOEGZGHm4ceecO3XCWxWbd100qs4V3xbM9kVdGpu9L
1082cqzW6d+tZq13IZ7EM0ZxxuDZJjMXcR4t65UnCKzkRjNNqKLybxuamN2La05KZG8Q2QsRFE8gi5uD
1083GxceTCLu7Z9FZiYzIxyW6GwobCqFuhZit1ZM9uxAYyxlh8PgwdxfDpMTGaRMS1/ams7Pf+7h7Pd+
108437vcDj3ufa7XLOOfc+Tj68unqkRlxWcK8EIeQaE7wUA2VUr0jmIVGnjeUiid2kZo+XJ3Bxdi6dEi
1085K5E4Zsx77Ry7I9XFsap7OPLyURmjecWZsvmJn5t/AkRWKxkTNJpKz93U78lfvR9+IGllh5NzGMnd
1086hMhzlhdxfD/g6lcK7Fp3qNjyjxqtFHNY21KGKUI5YpJLEQiUcue2Yu5MzifF+L+/sryzWm1K4V2K
10875+ZeOx+Sf2dluxRbJ4opowkliHuPMRCMYM58yk+Xlx4+js/ults3Vps/b3bUumLaV+99nnrh0Sth
10885F4+c9qANnUKeiJSXomnjc4AD6ilHlkGH3clNldi0xptbRb3STEIxbCtIRzPWARmjJ3nYO48TYfq
1089fD5uPrjqryz5cM+xKx5u/Lt2LyiiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
1090AgICAgICAgICAgICAgICAgICAgICAgICAgp7mOrLqrcVuqV2rJEQT1AHmUgE2CFhy2css3RE5tWz
1091MTg+eXK20OltaOgfb2dGeovR2KmzgsM4WHiYa0dV7cYWpCL5mdmchxj3wt31m2ebhTfWuOWym80a
1092RfZTD2sd1P20yRj47dkl2ut21jcwR7Y4jgjoVa8sM0X28YAJWDqzFXkiKNx/pJQZuhMu3NHNhnbf
1093M/zTdE8cKccKbnCyJi2K5TZEfy0mKdNZ3Y76vTeeUNjMekt15LYVKFspbhUYorFkGKE4wlCGWKw0
1094nAi6sMblh8t6LjZNL6z8Mx11j0RMfZV0mPYpG+OyK+mk9W+jl6XQDF5XqdhCOwuV5v2lamubGuEJ
1095DNMFUGfthDX7PPtlhijEnfk/XOVu2aVjCPY/119KXYxX5o7rbo9XcgtaHbSeKbMK9eeGZ/IJr08c
1096McbWJqwXnk5RjOJBI/BmIGIXYsYWbJpGnXZGPD3vTMTv2w3fFZviNsW0/DZWOvGN2/ahtaGzat09
1097jrrG2uWrV+EZ7mwqjV7XZqWwCTshXqGzCUosUhhh/lZn6KXRNKRSK239s2xHoS2YznGnL2RfbPrT
1098WKr2f3f1NGGnsjsNf+z4bcB1ZOLOFqDv8JHHhMJcCMijcmx1LC63XROrbfHu80dUbursYtibbLrZ
1099xu5buueWcevtxZ8u0e5s7ndHRhsDWcNLPI9eMHKYa1icpxhaYThkkAGAuLs+cM2OrLnpzSImf7l0
11009tkRE/i82GMNXxXCPgp/NWnXFY68cGv7CazttZtIS2uzebaVSuTbKoFZhGtWtMJ9ka1Qm4vILPIY
1101Yf5WYui3ZPLdGUR7c9c2xHoScbZ30tj+eJ9b0/ilWzX2Xk3dhOGGbaPLWchcRMCqV+RhlvmZ5GLq
11023vlYj+nbH7357lu9+Z4W+Z5axFsIta2kbXXZLgeSRXDkCvK8DVj2jWWmabHbIe2/zMLuQ/rMzM7r
1103WjnZPw2zE9PJdHl6zWyv+aIp/KmfT3h0U3CjKNovKht9IiaR4f2oLvN0bPDs5fl6cfwU0p/p12W3
1104flv+w1cfqcYtp1RZ6YWNBFfp+Rw0deNqxqHs2rFuDY0DhemUvcNzr3XGMJecp8eLOZcS+rDJpzW3
1105HZbERv2YTHR5jU97DObsd3T5b9i9tTsa7yzYWypWrMOx1kNeo9WCSZnngknIozIGcYstMOCkcR/F
1106cborp327Zx/lp5bdzrbPtWTsivnhyPDtJcjep95QkBx8UoUyeaImxKzy92H5m6G2W5B6+mV38XNY
11071qbbsOOEuXh8J067Ju89rXxqttqRatrNe3BPe8ao0IrH280nZuQ9xyGdwEuy491nzJhvXqr4mOad
1108WLc7prHZdtTRpbGnMxhbN1eubaeZyg8ctTeKfZznu5dvqdZbiDWyVII6wTSU5ICGOeKrF9wJkXys
1109ExkT8XJvVTWuia3W7cONKxNKcKbqbmtCJi62Lpyuiftr1znNccX0FhpVKugrzaqSwbFHHWKOuJjT
1110kaAv6U3fHZHDOHJvd8e6upNdWafNj6OvvcdOKaVtY+HDjv6ncXJ2EBAQEBAQEBAQEBAQEBAQEBAQ
1111EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
1112EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
1113EBAQEBAQEBAQEBAQEHLk8m00E1kLdqGpHWk7Tzzz1xApBi70gt/SOQlGHzExiL46+nVemPCakxE2
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
11743TERWkThM283L0x6JZ+pGOOEV/l97snDv2uuO01hRRTDcgeKeV4IJGkBxOVncXjB84I+QE3FuvR1
11755fo31mKTWIrls39DXNHZ66efDpVv7TeN/tMtV+1af7UF2EqH3EX3DOX0s8XLnl/boun/ANTW5Ofk
1176u5PipNO3Im6IwlvV8g0NvYz6yrsqtjZVmzZpRTxnPG2cfPGJOY9fiyl/htW2yL7rbosnKaTSeiSb
1177oiabTa7/AEWoaJ9tsquvacuED25o4GMv5odwh5P19GU0fDaurX6dt11M6RM+YmYiKzk52p898T2u
117862Wmo7KvLf1T4sxDNC7vgWKRwFjc3GLkwmXHDF09WdejW/xuvpadupdbMW35YT1bKY7N8YpzRzcu
117939uHTgvVPJfHLlGe/U2tOzRqu42bcViI4onH6mkkEnEXb3y643+E1bLotusui67KJiaz0Qc8Y45Z
11808GtryvxepUe5a3FGvUaV672JbMIRtML4KLmRMPNvcfVWzwetddy22XTdStItmtN/RxXmjHgvT3ad
1181eodyxPHDUAe4diQxGMQxnk5u7CzfiuNundddyxEzdu2nNFK7EFHd6XYPZahfrW3pn27jQTRydk2b
1182PGTg78Hx7Et6nh9SynNbdbzZViYr0byJrNNrjbb95Xg+t057c9zTsUgsBU517MBs88hMLR8ubAxC
1183z8iyXQWd36MvXo/4nxOpqRpxZdF1K42zlvy6uM4JN0Umfh8qdM7HoadypdqxW6c8dmpODSQWISGS
1184MwJsiQGLuJM7ejsvDqad1l023RMXRnE5rExOSVYUQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
1185QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQfH6+m8obU6vZx6yb7+LdWS1tKYH
1186/ovvJ7MklywOP6MXOQer9Wjbp1NxX6m7X0ee6yb45Z0reaY28ttkRbbvnCf4uFtXGYml9fapfWOP
1187t4dXLSInZ7U5UWLvht4bfkuvgqWD1oamAZrZA7lfsRjZn7YiLZkeSxZeSbDYd8D15Ozc9Px1vLpX
1188zMc/1JpHwR7FteFLbaW9uyG9O2fqxWaxMRX8V3N2+zHC3D4Up6DyOSz4xsGpShubk5STTOLOOurx
11890Za9cZXfLM8QWDPh15Sk7fT1aR4jSiNWzmj6dsfjmb7brqdPLEV2WRE5uFsXcls7ptinCLbs8vvU
1190uu/DnEJ/HdbY081izZ1V2XXanaTwaanFC8k8012ftFedicfkCKT+tJ/R5SfPR35+J1Y1YiIvti+/
1191TibpmaREWxXk6ZmPdjdZDrdbSbt0Uu/enljt9c7OVJtru4jt+VlHrLtjyC0ceu0krVJTrxU5o444
11925Rn49ngM8hyzMxcunVsCymjp6c26VbrY0ordf7UVm6JmZimdeWIttwpunFZvm2+bqV5Y9njhXqmb
1193sJ4RGaSppb2po+SbTV6wyt6jXjp/F6xA7SFBRruTPExMz/01g3bp9TAP4LOpr26t2nZfd7Opfz6k
11948brtvRbHVWTR04tuiJxiyIjpnOZ68LZrtiXLvQ7UtRTq+Pa++NbxfTST66xYqywyzX5onqxFHFMw
1195SFLFH3yISFnciH4r02XWfUuu1brK62rEXRF0TEWRPNNZjCkzyxExOUTuYtm7kikVuxumuFbojCJ/
1196eumu7DDhbafU2NjSipa/YBo/GKJTNwpWBuPav5rBIEJg1h5I4e8cmY+T8mLr78uW+2y6brrPqa11
1197Pet5eW32piZieWkzyxGNMKYLb92Ixp7c14ViK76zMz0wueF6HyAtTJrm2dqpqqIQQ6Da/YwU9l2W
1198H+mjlhtwSiwZEG5FABE7P09Hfl4/xOl9Tn5Lbr7qzfbzzdZXZMTbdHH70xHcacTGEe7TbnWs16cN
1199vGVeWvty8s7+pkv3LBtX12+rbfXca01OsUnOeK00deHlIxk7DE5C5O2QFs43F1n0KXxZbGN1k2X+
12001F00pE21unCmd1JpHvTtt0TExSfaikcKVxyymk9dIzVKB2S8V0Ut/W7D7Wzs5bnllT7G0c7TSDJY
1201GJ4Gi7s0AWCjDlGBC4i36uV11LbY174tusrbpxbpzz20pFLa1rS26beaaTMTWd7M1mLsM7sf3dlN
1202+EW2zStba5rl/QX9zvClsa+SGhv7lQLcJg7M2t1InOD2GZnESs2DYOBde30fqzi3LS8TbpadIuib
1203tK26Y/f1KW+z+7bjWPvZbJm3xWsxti2zqrN108ImK2+qrWfVbS75lugtXt1rJZXCrrI6FKrNTPXj
1204CD9LVmnZiiIpSk5g8oO+G+V8MrbrWWeHspbpXxndzXXRdz1n7tt9szhSk8s9OazMxfXKlOWnf0TX
1205DZhEL1imO00ui8aqay7Bpo7rVbn30Tg70tS7uJH65CzLDGI8scwd3xhcbdT6epqa111s6nLzRyz9
12067U9NsTNae7MJFnJp/Ttrst6ts9FIm2u+cN7h+R6va2rdzYyQX6WrvbWOpckoVO/bHXayCRq7/anD
1207ZeSOS65F0hLIOPTj1Xr8JrWW222RNl19unN0c11Lee+Yr7XNbSYs+aPartNW2azSPht/hxumY655
1208ZjGsRK4OkOr5ho7lqTb7OveN7E+wtVQd2mqRvDRhlio1oBhD/wAZLJzmAcODcnbouf8A9jm0NS22
1209NOybYpFsXbLprfMTfdPNPsWxS2ZwnDazdbldjNZiJw2W1ujClfemOzc+mL889AgICAgICAgICAgI
1210CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgrbLV6
1211zaUpKGzqQ3qM3HvVbMYTRHxJjHkBsQvghZ2y3qumlrX6d0XWTNt0bYmk9sJMVzcL+7D92v8Aylpv
1212+H1f9Gvb+seM/vav47vWz9O3dB/dh+7X/lLTf8Pq/wCjT9Y8Z/e1fx3es+nbug/uw/dr/wApab/h
12139X/Rp+seM/vav47vWfTt3Qf3Yfu1/wCUtN/w+r/o0/WPGf3tX8d3rPp27oP7sP3a/wDKWm/4fV/0
1214afrHjP72r+O71n07d0H92H7tf+UtN/w+r/o0/WPGf3tX8d3rPp27oR2P3UfuxsRPFJ4pqRF/V46U
1215ERdP8qMBL+Nat/zXjLZrGtqfiun0n07d0Nov3WfuzijGMfE9O4i2Gc6NYy/SRA5P+l1J/wAz4yZr
12169bU/Hd6yNO3c2/uw/dr/AMpab/h9X/RqfrHjP72r+O71n07d0H92H7tf+UtN/wAPq/6NP1jxn97V
1217/Hd6z6du6D+7D92v/KWm/wCH1f8ARp+seM/vav47vWfTt3Qf3Yfu1/5S03/D6v8Ao0/WPGf3tX8d
12183rPp27oP7sP3a/8AKWm/4fV/0afrHjP72r+O71n07d0H92H7tf8AlLTf8Pq/6NP1jxn97V/Hd6z6
1219du6D+7D92v8Aylpv+H1f9Gn6x4z+9q/ju9Z9O3dCWr+7r931SzDaq+MamvarmMsE8VGsEkcgPyEw
1220IQZxIXbLOyzf/lfFXRNt2rqTE4TE33Y968lu56FeBoQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1221BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1222BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1223BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1224BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1225BAQEBAQEHwOx5Z5NPMcpbS0Lm7u4xzGAtn2YRdmZl+ijw+nEU5YfBnXvmc5R/wBpvJP/AHa5/wCo
1226l/7Sv0NP4Y7E+tf8U9p/abyT/wB2uf8AqJf+0n0NP4Y7D61/xT2n9pvJP/drn/qJf+0n0NP4Y7D6
12271/xT2n9pvJP/AHa5/wCol/7SfQ0/hjsPrX/FPaf2m8k/92uf+ol/7SfQ0/hjsPrX/FPaf2m8k/8A
1228drn/AKiX/tJ9DT+GOw+tf8U9p/abyT/3a5/6iX/tJ9DT+GOw+tf8U9p/abyT/wB2uf8AqJf+0n0N
1229P4Y7D61/xT2n9pvJP/drn/qJf+0n0NP4Y7D61/xT2n9pvJP/AHa5/wCol/7SfQ0/hjsPrX/FPaf2
1230m8k/92uf+ol/7SfQ0/hjsPrX/FPaf2m8k/8Adrn/AKiX/tJ9DT+GOw+tf8U9q/s7PneraMr9u/XG
1231XrGRTyOz++MsTtn8Fzst0b/di2ep0vnVtzme1VLd+WjWGyWwvtXMnAJnmm4OTerMXLGVv6WlWlLa
12329EMfU1KVrNEX9pvJP/drn/qJf+0r9DT+GOxPrX/FPaf2m8k/92uf+ol/7SfQ0/hjsPrX/FPaf2m8
1233k/8Adrn/AKiX/tJ9DT+GOw+tf8U9r0n7vfI95N5RWqWb09ivYGQZI5pCkb5YyNnbk74fI+y8vjNG
1234yNOZiIiYenwmtdN8RM1fXF8Z9YQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1235BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEH5tX6l+cEBB6zUeI07/iFrbs8534pHiggBx4E+RYWdnF
1236y9T+K8Ov4m6zUttilJp53q8PoRfZdM521/LVH5R47pvH9fUrzTSz+QWRY5IAMGhiDPUybg5Y/VHr
12371f8AJNHxN2pqTFsexG3y8qNanh7dPTrd707PLc69b929WXxRtiUs37VOuViOuxAwP05C3Fx5fTj3
12389Vy1fHTbqcuHLE4+lvQ8HF9lds5ehx/GvGdfs9DuNjZOVpddEUkIRkIiTjGR/NyEn9R9l38V4i7T
1239m2I2z6nPwPh41tSbZ+Xvr6jR+Ma+94lt9zOczWNeMpRRgQsD8ImNuWRJ/X4Omv4i6zUttjK6Y89G
1240dDRi+y6Z2R6F69414nqvHdZttg+xmO+MeY6hV+hnHzfpKwfL0/nLnPiNSdWbLYjCvdLrGhpxpxfd
1241M4tNB454ttqe32TtsIKGuFjjAyr98hGJzPLCxhnIvx+ZNbxGppxbWI5pXw/h9PW1Jttmcre2Zu7s
1242I73Np1fEtntdfQ10WziezOIWJLZVWZo3Z/o7Tm/LOPVsLrz6sRM3cuET2vNfGnhy1rN1sdUzR6De
1243fu3pUthrBqyzyULU417REQOYET9HZ2Bm6/i3qvPoeOm6taVpWOp6fEeEiyIm34oieuY8ux5XyvVV
1244dTv7eurEZQ13BhKV2cn5Rib54sLfrfBevwurOpZzS4+K0Y07oiNzsa6ebY+CbWtNIUp6+aGxFzdy
1245dgL5SZs+2MrlfEW61sx97BqyZu0ronY6u0teIv8Au+qwQzSE4G516/Ie60755MfT6R5rjp26v1pm
1246Y/Y633af0Yh47baKzrKtCawY878TzDA2eYBn5XLP872Xt09WL5mI2PHfpTbETO1zV2cxB6X93P8A
12478z1//wCu/wC4kXk8b/Snq870+E/qR5bH21fBfaEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1248AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBB+bV+pfnBAQfT/CtmWr/AHf3NgMbSvXn
1249I+2Xo/UGf+VfI8dbXVtjfSO99DwE00753Vnsthr5H4lX8iv6/fat+5X2BxDe69WBsNz/AA4i3F2+
1250KeH1vo81l2zGOn7W/Eaf1rYvt6O/0bXVbyfRj52OtFrn3UcbUWx2WpM7s0v87u8vQfTHsvPZo3Xa
1251U3YUnHjhWPW76mrZZfbbtjD8VPVDnaahXp3PKPGe4ME10Sejz6MQTRkw8fjx5suurdN+lZfny59V
1252PPRNCml4mZn73LMds18/cphTl8X/AHfberuCCC3se5FVrsYkZlJG0Y44u+f5z/BvVb1dSNXWs5Ma
1253THnq46WlOnp382GE+ZY8j3e41Pg3j0urtFUllGEJJBCM3cew5YxKMjerfBLdK3U8RfF2WM98LOpN
1254mhbMZ1j0sfu+u7q9qfIrYzlY3EzM8MxNGLvM0RNH0YQjbqze2PinjdO2yLLYyx88M/46/n1rpv8A
1255kr/MowQefD5BpJPJpjkrtbEYBL7Rm7js7v0riJeg+66W/RpdyZ8s78nHWnW9nny57d2dXoNXvwbz
1256rc6K2/KGWaKany9BkCCMnFvzxyb8WXm+jXQtvjOK9nNL1fVpr3WzldTt5YeD/eH/APMtl+cX/cAv
1257f/j/AOlHTPncP8j78fu+tjwrYdjYy0Dqncr7SJ600ETsxuz9eQ5dm6dVvxVlba1pNuLh4e+k0pXm
1258d+rofDH3D0I6Wzlv135yVD7WMDh/mfLNxfp7rz3a2ry81baS726WnzUpdV5PybbWtpurNmyDwkxP
1259GED/AP2xB8MH6Pf8V7NDTiyyIh5da+brpmXLXZyEHpf3c/8AzPX/AP67/uJF5PG/0p6vO9PhP6ke
1260Wx9tXwX2hAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
1261BAQEBAQEBAQEBAQfm1fqX5wQEGhxRGQkYCRA+Qd2Z3Z/wypQqxJXgkJikjEybozkLO/8alIWstgj
1262jjHgAsIN6CLMzfwMqjEcMMYuMYCAv6iLMzP/AAJQqxHXgjd3jjEHf1cRZv5EiKEyz2ou53eA9x2x
1263zw3LH5pQqSQxSszSgJs3VmJmds/pSYqRLWOrWjLlHCAF6ZEWZ8foSkLWWwRRRhwABAP5oszN1/Bk
1264ojMcUUY8YwEB9cCzM38SCxSu2qVqO1VkeKxE/KOQfVn/AEqXWxdFJyW26bZrC5F5Hu4tpJtI7Zjf
1265lZ2knwLu7OzNh2duOOjeyxOjZNvLTBuNa6LuauLnyyyTSnLKTnJITkZv1dyd8u7rpEUwc5mrVUEH
1266pf3c/wDzPX//AK7/ALiReTxv9KerzvT4T+pHlsfbV8F9oQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
1267AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHzqf9z0JTGUG0KOJ3dwjKHm4t
12687M5dwc/wL6cf5KaY29750/4+K4Sj/ub/AN7/AOz/AOtV/Uvl7/sT9P8Am7vtP7m/97/7P/rU/Uvl
12697/sP0/5u77T+5v8A3v8A7P8A61P1L5e/7D9P+bu+0/ub/wB7/wCz/wCtT9S+Xv8AsP0/5u77T+5v
1270/e/+z/61P1L5e/7D9P8Am7vtP7m/97/7P/rU/Uvl7/sP0/5u77T+5v8A3v8A7P8A61P1L5e/7D9P
1271+bu+0/ub/wB7/wCz/wCtT9S+Xv8AsP0/5u77T+5v/e/+z/61P1L5e/7D9P8Am7vtP7m/97/7P/rU
1272/Uvl7/sP0/5u77T+5v8A3v8A7P8A61P1L5e/7D9P+bu+0/ub/wB7/wCz/wCtT9S+Xv8AsP0/5u77
1273T+5v/e/+z/61P1L5e/7D9P8Am7vtP7m/97/7P/rU/Uvl7/sP0/5u77T+5v8A3v8A7P8A61P1L5e/
12747D9P+bu+0/ub/wB7/wCz/wCtT9S+Xv8AsP0/5u77T+5v/e/+z/61P1L5e/7D9P8Am7vtdbxj928O
1275k2obE7z2pIhJogaPtszmLi7v8x5+V3XHX8bOpby0o7aPg4surWr2a8L2CAgICAgICAgICAgICAgI
1276CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1277CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1278CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1279CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1280CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1281CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1282CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1283CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1284CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
1285CAg81e2k4bO1Bc2MmpjEhGiXaB4ZGcWdzOWQDbPJ8cWIVLcemq3YTwWp/IJ42tzQ1WsUte/C3Y7n
1286A3cWYpHij4kxcGfrkm/BWu2cImfs86RGzOaObb2F79sSDBMZB+0K4RxvIQg4lTc+D4zgSLq/T8VL
1287axH/AJO6PQzM17LfzJaHk9uHSUbGxaD7i5gYJDnaICwzuRyu8YjGzM36vLK3dnEcPRDUbZ4+mU1b
1288yyW5NDWp1Yp7EhzAZDYZ4WeFgLIyiBchIZG/Vz+CzGPZXvokzTy4OrrNi9/XDaGLhI/MShd84kjJ
1289wIeXTLch9VLpwrG6rUZ0nZLj6baTWZoQtbSSHYvkrGrlhjib0fIxcgE34+vLmSXTERMxjgzPHDFF
1290B5pG1ODrCU/24zzfd2Y4CflniIYjZjN+P80W9Fq7Du81ViPPPno7w3pbGthu0YwkaYBlAZzeJmAm
12915dSEJerN+Cl8csls1UNV5FPdsV4pagwjaGY4ZQleQSCFxFjbIRvg+XT8PzVjHsie1JmnbRQs+TMN
12923W2jY44j+9h+1AnJ5ZIpBijZm+VnIn9PhlZsmteNsU65W7CZj4bvRLo/tC5PalrSMdOavUaxIMRx
1293yNyl5Mw5OJ+ocOjt0+LOpdNIun4f2/YtsVutjf8AsQQ+SXZghatSGUyox3jeSbhhj5Nw6Rvkvl+D
1294N+S1dNOadlv7WbMaRtmvc5m122ztzy2qeQrQ6wb1dvuJInZz5FzMABxkceGOBPx/hUuw5uExC2zW
1295kb6+h0ZfILNIaUuxHg0leaYxgNjEu2MbjnlEBcic8MzOzN+Ptu6PauiNn/qozZNYifLKq7T2189m
1296FC5TCucld7AkEzy4ZiEeJM4B1+b2d1N/Bd072m12ttjuVKEDSyVoHksTHK8TBzZ+DBgDciwLv7N+
1297K53T7My6WR7UcXNr+S/Y1az2jKR3oVJGeSQBEpZicMkRDyb0yREbtj2XW7O796ndMuVuUdE+j1pG
129882heT7dhrFY7gg0gWmKrgwImd52Do/yO3Hh6rMY+XR62pwSWvLftzeGSOtHajj7s0c1sIxdnd+Ax
1299E4v3HIRz6N6tlSufDtWIy4n9rZDhtW4KTHRqDFLLKUvE3jmjGTIhwLJCxdWcm/Napv8AiozE1yzp
1300Xz+pd8mt262llmpS9mw5QjHLxYsdyUQd8Ezt6Es0nmiN8rF0Urwq5ZeUywlTktl2xhitNsoBYXfv
1301V+DMzO/plyyPX3VrEzMxlSKdd1PsSk5ce6kykDzSN7EcJRwSObxu51rIziASSDETm7AOCEjHp6P8
1302VYis08tvqJmkV8vKnmT/ANrIn+4YaxOcNoa0Y8usgETs8o9Pbtn0/BZrhE9PdHN5qNTGMx0d8086
1303lc8huXtK9qAI4YTKuQzV7PckDlPG3bkFhBwJxJ8szv8ABaiPbtifihi6cJpulOXmdcp2CFq5xnM9
1304aJnsi07nycBJ4WEnYHP3znHXisTNba8PtbnCtdirW3fkp6vSzuEBHcnEDN5cPKzgb4MWhxH9PqOV
13050p7UR8voZrhPT/qot3fMq9SWcDavio4haB7IjK5YZzaGJxzIw59+OfZZjHtp6FmJ66OjqtpZvyWH
1306+2GKtBLLA0rycjIoj45YODdHb4l/jSMoneld3lhVVu+R2a82w40mkraxw+4leXiTiYCbuAcHy4sX
1307o5N+aW4xEzvotNkbq+f1MFv5Q2dmjFGViyU4RVojMQDDwtKZchDkIi3rnk+fRLcY67u6nrSu3hHf
1308X1IZdluY95MwVmN46ISyVSncYmdpJMkDsBZcmbpkW/HCkTS26d0x5lpWYjp9CSludlc3UY1wjfXT
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
1369oz5YFj4tlnEvwVv9qvGvekRSI6PMpQeGQQ1RrDYdopIPt7zCDD3uOXjkbr8hg/v16dFZn0dsUxX7
1370eydi3Y02yt0nq3L4yNmJxIIOGe3IMmTyZZJ+GPl4t19Eifaid01SYwpwXIdf29pZv9zP3McUfbxj
1371j2nN85z1zz+CkYV6fQt2Mxwj0q2x1ezuR2Kz3gGlZZxMHg5SiBNghCTmw/k7g6lK5rWmSu/i7BaK
13723Vs9mwMkclYnDmwMELQEBtybmxC3xZ1qs9899PUzEYU4R3V9br1orQRO1mZppSd3cgDtg34COSfH
13735k6zdFYosOTrvHLFcKMNm4M9bXZKvGEXbdzcXFiMnM88WJ8MzMrdj00okx56+lnW+OT6+WqcFsS7
1374Ncathjid+4Am5s44NuBfM/ryVnGsbJp3RQp5575aweN2oKtWKO6LSa83KhN2eogTOxBK3PEjOL46
1375cUrOE7aU83qXf01dMfvYKkhzO92x1fhCIRZ9uICZ4b/rH+lZvisUIeaqUNhXq6aD9mXS/ZBEXL/w
1376TdzlGcfp92/H68+6t/tT/Dy+b1GyY33V75lX1ms3mqCL9nU7YSdgILXdjpyBJ2nfgYi10HAmYnb6
1377nb8FZmvd5oj0H2981drRRXYtlemnp2o2vPGZSz/aswvFEMfXszSO7lxz0BmSMLacZntSmNeHr9bu
1378qKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
1379AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
1380AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
1381D//Z
1382------=_NextPart_000_000F_01D15E52.0BD654A0--
1383
1384
diff --git a/framework/src/domain/mime/testdata/details/forward-openpgp-signed-encrypted.mbox.html b/framework/src/domain/mime/testdata/details/forward-openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..9a81f103
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/forward-openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,84 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">bla bla bla</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <table cellspacing="1" cellpadding="1" class="encr">
27 <tr class="encrH">
28 <td dir="ltr">Encrypted message</td>
29 </tr>
30 <tr class="encrB">
31 <td>
32 <div style="position: relative; word-wrap: break-word">
33 <a name="att"/>
34 <div id="attachmentDiv">
35 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
36 <tr class="signOkKeyOkH">
37 <td dir="ltr">
38 <table cellspacing="0" cellpadding="0" width="100%">
39 <tr>
40 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
41 <td align="right" valign="top" nowrap="nowrap">
42 <a href="kmail:hideSignatureDetails">Hide Details</a>
43 </td>
44 </tr>
45 <tr>
46 <td align="right" valign="bottom" nowrap="nowrap"/>
47 </tr>
48 </table>
49 </td>
50 </tr>
51 <tr class="signOkKeyOkB">
52 <td>
53 <a name="att1"/>
54 <div id="attachmentDiv1">
55 <div class="noquote">
56 <div dir="ltr">encrypted message text</div>
57 </div>
58 </div>
59 </td>
60 </tr>
61 <tr class="signOkKeyOkH">
62 <td dir="ltr">End of signed message</td>
63 </tr>
64 </table>
65 </div>
66 </div>
67 </td>
68 </tr>
69 <tr class="encrH">
70 <td dir="ltr">End of encrypted message</td>
71 </tr>
72 </table>
73 </div>
74 </td>
75 </tr>
76 <tr class="rfc822H">
77 <td dir="ltr">End of encapsulated message</td>
78 </tr>
79 </table>
80 </div>
81 </div>
82 </div>
83 </body>
84</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-encoded.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-encoded.mbox.html
new file mode 100644
index 00000000..65d5f95e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-encoded.mbox.html
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed on 12/21/15 3:46 PM with unknown key <a href="kmail:showCertificate#gpg ### OpenPGP ### E68031D299A6527C">0xE68031D299A6527C</a>.<br/>The validity of the signature cannot be verified.<br/>Status:<i>No public key to verify the signature</i></td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signWarnB">
25 <td>
26 <div class="noquote">
27 <div dir="ltr">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.</div>
28 </div>
29 </td>
30 </tr>
31 <tr class="signWarnH">
32 <td dir="ltr">End of signed message</td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </body>
38</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-encrypted+signed.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-encrypted+signed.mbox.html
new file mode 100644
index 00000000..96361c30
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-encrypted+signed.mbox.html
@@ -0,0 +1,55 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
20 <td align="right" valign="top" nowrap="nowrap">
21 <a href="kmail:hideSignatureDetails">Hide Details</a>
22 </td>
23 </tr>
24 <tr>
25 <td align="right" valign="bottom" nowrap="nowrap"/>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <div style="position: relative; word-wrap: break-word">
33 <a name="att"/>
34 <div id="attachmentDiv">
35 <div class="noquote">
36 <div dir="ltr">encrypted message text</div>
37 </div>
38 </div>
39 </div>
40 </td>
41 </tr>
42 <tr class="signOkKeyOkH">
43 <td dir="ltr">End of signed message</td>
44 </tr>
45 </table>
46 </td>
47 </tr>
48 <tr class="encrH">
49 <td dir="ltr">End of encrypted message</td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </body>
55</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..cc6bf03e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,80 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
25 <td align="right" valign="top" nowrap="nowrap">
26 <a href="kmail:hideSignatureDetails">Hide Details</a>
27 </td>
28 </tr>
29 <tr>
30 <td align="right" valign="bottom" nowrap="nowrap"/>
31 </tr>
32 </table>
33 </td>
34 </tr>
35 <tr class="signOkKeyOkB">
36 <td>
37 <a name="att1"/>
38 <div id="attachmentDiv1">
39 <a name="att1.1"/>
40 <div id="attachmentDiv1.1">
41 <div class="noquote">
42 <div dir="ltr">test text</div>
43 </div>
44 </div>
45 <a name="att1.2"/>
46 <div id="attachmentDiv1.2">
47 <hr/>
48 <div>
49 <a href="attachment:1:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>file.txt</a>
50 </div>
51 <div/>
52 </div>
53 </div>
54 </td>
55 </tr>
56 <tr class="signOkKeyOkH">
57 <td dir="ltr">End of signed message</td>
58 </tr>
59 </table>
60 </div>
61 </div>
62 </td>
63 </tr>
64 <tr class="encrH">
65 <td dir="ltr">End of encrypted message</td>
66 </tr>
67 </table>
68 </div>
69 <a name="att2"/>
70 <div id="attachmentDiv2">
71 <hr/>
72 <div>
73 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
74 </div>
75 <div/>
76 </div>
77 </div>
78 </div>
79 </body>
80</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..61bf5d28
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,69 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <a name="att1"/>
36 <div id="attachmentDiv1">
37 <a name="att1.1"/>
38 <div id="attachmentDiv1.1">
39 <div class="noquote">
40 <div dir="ltr">test text</div>
41 </div>
42 </div>
43 <a name="att1.2"/>
44 <div id="attachmentDiv1.2">
45 <hr/>
46 <div>
47 <a href="attachment:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>file.txt</a>
48 </div>
49 <div/>
50 </div>
51 </div>
52 </td>
53 </tr>
54 <tr class="signOkKeyOkH">
55 <td dir="ltr">End of signed message</td>
56 </tr>
57 </table>
58 </div>
59 </div>
60 </td>
61 </tr>
62 <tr class="encrH">
63 <td dir="ltr">End of encrypted message</td>
64 </tr>
65 </table>
66 </div>
67 </div>
68 </body>
69</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..8d8bde0d
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,72 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
25 <td align="right" valign="top" nowrap="nowrap">
26 <a href="kmail:hideSignatureDetails">Hide Details</a>
27 </td>
28 </tr>
29 <tr>
30 <td align="right" valign="bottom" nowrap="nowrap"/>
31 </tr>
32 </table>
33 </td>
34 </tr>
35 <tr class="signOkKeyOkB">
36 <td>
37 <a name="att1"/>
38 <div id="attachmentDiv1">
39 <a name="att1.1"/>
40 <div id="attachmentDiv1.1">
41 <div class="noquote">
42 <div dir="ltr">test text</div>
43 </div>
44 </div>
45 </div>
46 </td>
47 </tr>
48 <tr class="signOkKeyOkH">
49 <td dir="ltr">End of signed message</td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </td>
55 </tr>
56 <tr class="encrH">
57 <td dir="ltr">End of encrypted message</td>
58 </tr>
59 </table>
60 </div>
61 <a name="att2"/>
62 <div id="attachmentDiv2">
63 <hr/>
64 <div>
65 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
66 </div>
67 <div/>
68 </div>
69 </div>
70 </div>
71 </body>
72</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..1716b841
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,102 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
25 <td align="right" valign="top" nowrap="nowrap">
26 <a href="kmail:hideSignatureDetails">Hide Details</a>
27 </td>
28 </tr>
29 <tr>
30 <td align="right" valign="bottom" nowrap="nowrap"/>
31 </tr>
32 </table>
33 </td>
34 </tr>
35 <tr class="signOkKeyOkB">
36 <td>
37 <a name="att1"/>
38 <div id="attachmentDiv1">
39 <a name="att1.1"/>
40 <div id="attachmentDiv1.1">
41 <div class="noquote">
42 <div dir="ltr">This is the main body.</div>
43 </div>
44 </div>
45 <a name="att1.2"/>
46 <div id="attachmentDiv1.2">
47 <table cellspacing="1" class="textAtm">
48 <tr class="textAtmH">
49 <td dir="ltr">attachment1.txt</td>
50 </tr>
51 <tr class="textAtmB">
52 <td>
53 <div class="noquote">
54 <div dir="ltr">This is a signed attachment.</div>
55 </div>
56 </td>
57 </tr>
58 </table>
59 </div>
60 </div>
61 </td>
62 </tr>
63 <tr class="signOkKeyOkH">
64 <td dir="ltr">End of signed message</td>
65 </tr>
66 </table>
67 </div>
68 </div>
69 </td>
70 </tr>
71 <tr class="encrH">
72 <td dir="ltr">End of encrypted message</td>
73 </tr>
74 </table>
75 </div>
76 <a name="att2"/>
77 <div id="attachmentDiv2">
78 <table cellspacing="1" cellpadding="1" class="encr">
79 <tr class="encrH">
80 <td dir="ltr">Encrypted message</td>
81 </tr>
82 <tr class="encrB">
83 <td>
84 <div style="position: relative; word-wrap: break-word">
85 <a name="att"/>
86 <div id="attachmentDiv">
87 <div class="noquote">
88 <div dir="ltr">This is an unsigned attachment.</div>
89 </div>
90 </div>
91 </div>
92 </td>
93 </tr>
94 <tr class="encrH">
95 <td dir="ltr">End of encrypted message</td>
96 </tr>
97 </table>
98 </div>
99 </div>
100 </div>
101 </body>
102</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-inline-charset-encrypted.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-inline-charset-encrypted.mbox.html
new file mode 100644
index 00000000..c2fa2fee
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-inline-charset-encrypted.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
20 <td align="right" valign="top" nowrap="nowrap">
21 <a href="kmail:hideSignatureDetails">Hide Details</a>
22 </td>
23 </tr>
24 <tr>
25 <td align="right" valign="bottom" nowrap="nowrap"/>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <div class="noquote">
33 <div dir="ltr">asdasd asd asd asdf sadf sdaf sadf öäü</div>
34 </div>
35 </td>
36 </tr>
37 <tr class="signOkKeyOkH">
38 <td dir="ltr">End of signed message</td>
39 </tr>
40 </table>
41 </td>
42 </tr>
43 <tr class="encrH">
44 <td dir="ltr">End of encrypted message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-inline-signed.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-inline-signed.mbox.html
new file mode 100644
index 00000000..00a9dc5b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-inline-signed.mbox.html
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signOkKeyOkB">
25 <td>
26 <div class="noquote">
27 <div dir="ltr">ohno öäü</div>
28 </div>
29 </td>
30 </tr>
31 <tr class="signOkKeyOkH">
32 <td dir="ltr">End of signed message</td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </body>
38</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-signed-base64-mailman-footer.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-signed-base64-mailman-footer.mbox.html
new file mode 100644
index 00000000..c10cecd8
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-signed-base64-mailman-footer.mbox.html
@@ -0,0 +1,81 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signWarn">
11 <tr class="signWarnH">
12 <td dir="ltr">
13 <table cellspacing="0" cellpadding="0" width="100%">
14 <tr>
15 <td rowspan="2">Message was signed on 8/22/15 9:31 AM with unknown key <a href="kmail:showCertificate#gpg ### OpenPGP ### 7F96CCD64D12D247">0x7F96CCD64D12D247</a>.<br/>The validity of the signature cannot be verified.<br/>Status:<i>No public key to verify the signature</i></td>
16 <td align="right" valign="top" nowrap="nowrap">
17 <a href="kmail:hideSignatureDetails">Hide Details</a>
18 </td>
19 </tr>
20 <tr>
21 <td align="right" valign="bottom" nowrap="nowrap"/>
22 </tr>
23 </table>
24 </td>
25 </tr>
26 <tr class="signWarnB">
27 <td>
28 <a name="att1.1"/>
29 <div id="attachmentDiv1.1">
30 <div class="noquote">
31 <div dir="ltr">Hi,</div>
32 <br/>
33 <div dir="ltr">I've talked to Ben, the current Phabricator test setup would actually be&nbsp;</div>
34 <div dir="ltr">usable for "production" use for task/project management for us, without&nbsp;</div>
35 <div dir="ltr">causing the sysadmins unreasonable trouble when migrating to the full&nbsp;</div>
36 <div dir="ltr">production deployment of Phabricator eventually.</div>
37 <br/>
38 <div dir="ltr">Phabricator project layout it orthogonal to repo layout, so we can structure&nbsp;</div>
39 <div dir="ltr">this however we want. Among other teams I see at least the following layouts:</div>
40 <div dir="ltr">- single project for everything</div>
41 <div dir="ltr">- a project per release</div>
42 <div dir="ltr">- a project per component/module (ie. close to the repo layout)</div>
43 <br/>
44 <div dir="ltr">How do we want to structure this?</div>
45 <br/>
46 <div dir="ltr">I would start with a single project to not fragment this too much, as we have&nbsp;</div>
47 <div dir="ltr">a relatively small team actually looking into this, so everyone is looking at&nbsp;</div>
48 <div dir="ltr">most sub-projects anyway. And should we eventually hit scaling limits, we can&nbsp;</div>
49 <div dir="ltr">always expand this I think.</div>
50 <br/>
51 <div dir="ltr">We of course should also talk about what we actually want to put in there. My&nbsp;</div>
52 <div dir="ltr">current motivation is having a place to collect the tasks for getting more of&nbsp;</div>
53 <div dir="ltr">the former pimlibs into KF5, and anything else I run into on the way there&nbsp;</div>
54 <div dir="ltr">that we eventually should clean up/improve.</div>
55 <br/>
56 <div dir="ltr">regards,</div>
57 <div dir="ltr">Volker</div>
58 </div>
59 </div>
60 </td>
61 </tr>
62 <tr class="signWarnH">
63 <td dir="ltr">End of signed message</td>
64 </tr>
65 </table>
66 </div>
67 <a name="att2"/>
68 <div id="attachmentDiv2">
69 <div class="noquote">
70 <div dir="ltr">_______________________________________________</div>
71 <div dir="ltr">KDE PIM mailing list <a href="mailto:kde-pim@kde.org">kde-pim@kde.org</a></div>
72 <div dir="ltr">
73 <a href="https://mail.kde.org/mailman/listinfo/kde-pim">https://mail.kde.org/mailman/listinfo/kde-pim</a>
74 </div>
75 <div dir="ltr">KDE PIM home page at <a href="http://pim.kde.org/">http://pim.kde.org/</a></div>
76 </div>
77 </div>
78 </div>
79 </div>
80 </body>
81</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..2c02a22c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,91 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <a name="att1"/>
36 <div id="attachmentDiv1">
37 <a name="att1.1"/>
38 <div id="attachmentDiv1.1">
39 <div class="noquote">
40 <div dir="ltr">this is the main body</div>
41 </div>
42 </div>
43 <a name="att1.2"/>
44 <div id="attachmentDiv1.2">
45 <table cellspacing="1" class="textAtm">
46 <tr class="textAtmH">
47 <td dir="ltr">attachment1.txt</td>
48 </tr>
49 <tr class="textAtmB">
50 <td>
51 <div class="noquote">
52 <div dir="ltr">this is one attachment</div>
53 </div>
54 </td>
55 </tr>
56 </table>
57 </div>
58 <a name="att1.3"/>
59 <div id="attachmentDiv1.3">
60 <table cellspacing="1" class="textAtm">
61 <tr class="textAtmH">
62 <td dir="ltr">attachment2.txt</td>
63 </tr>
64 <tr class="textAtmB">
65 <td>
66 <div class="noquote">
67 <div dir="ltr">this is the second attachment</div>
68 </div>
69 </td>
70 </tr>
71 </table>
72 </div>
73 </div>
74 </td>
75 </tr>
76 <tr class="signOkKeyOkH">
77 <td dir="ltr">End of signed message</td>
78 </tr>
79 </table>
80 </div>
81 </div>
82 </td>
83 </tr>
84 <tr class="encrH">
85 <td dir="ltr">End of encrypted message</td>
86 </tr>
87 </table>
88 </div>
89 </div>
90 </body>
91</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-signed-encrypted.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..d3a7a0ce
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <a name="att1"/>
36 <div id="attachmentDiv1">
37 <div class="noquote">
38 <div dir="ltr">encrypted message text</div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-signed-mailinglist+old.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-signed-mailinglist+old.mbox.html
new file mode 100644
index 00000000..e7da94db
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-signed-mailinglist+old.mbox.html
@@ -0,0 +1,97 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <div style="position: relative; word-wrap: break-word">
9 <a name="att"/>
10 <div id="attachmentDiv">
11 <div class="noquote">
12 <div dir="ltr">Oh man a header :)</div>
13 <br/>
14 </div>
15 </div>
16 </div>
17 <div style="position: relative; word-wrap: break-word">
18 <a name="att"/>
19 <div id="attachmentDiv">
20 <table cellspacing="1" cellpadding="1" class="rfc822">
21 <tr class="rfc822H">
22 <td dir="ltr">
23 <a href="attachment:e1:1?place=body">Encapsulated message</a>
24 </td>
25 </tr>
26 <tr class="rfc822B">
27 <td>
28 <a name="att1"/>
29 <div id="attachmentDiv1">
30 <table cellspacing="1" cellpadding="1" class="signWarn">
31 <tr class="signWarnH">
32 <td dir="ltr">
33 <table cellspacing="0" cellpadding="0" width="100%">
34 <tr>
35 <td rowspan="2">Message was signed on 4/8/13 9:51 AM with unknown key <a href="kmail:showCertificate#gpg ### OpenPGP ### D6B72EB1A7F1DB43">0xD6B72EB1A7F1DB43</a>.<br/>The validity of the signature cannot be verified.<br/>Status:<i>No public key to verify the signature</i></td>
36 <td align="right" valign="top" nowrap="nowrap">
37 <a href="kmail:hideSignatureDetails">Hide Details</a>
38 </td>
39 </tr>
40 <tr>
41 <td align="right" valign="bottom" nowrap="nowrap"/>
42 </tr>
43 </table>
44 </td>
45 </tr>
46 <tr class="signWarnB">
47 <td>
48 <a name="att1.1"/>
49 <div id="attachmentDiv1.1">
50 <div class="noquote">
51 <div dir="ltr">hi..</div>
52 <br/>
53 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
54 <div dir="ltr">activities_optional</div>
55 <br/>
56 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
57 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
58 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
59 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
60 <br/>
61 <div dir="ltr">--&nbsp;</div>
62 <div dir="ltr">Aaron J. Seigo</div>
63 </div>
64 </div>
65 </td>
66 </tr>
67 <tr class="signWarnH">
68 <td dir="ltr">End of signed message</td>
69 </tr>
70 </table>
71 </div>
72 </td>
73 </tr>
74 <tr class="rfc822H">
75 <td dir="ltr">End of encapsulated message</td>
76 </tr>
77 </table>
78 </div>
79 </div>
80 <div style="position: relative; word-wrap: break-word">
81 <a name="att"/>
82 <div id="attachmentDiv">
83 <div class="noquote">
84 <div dir="ltr">Plasma-devel mailing list</div>
85 <div dir="ltr">
86 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
87 </div>
88 <div dir="ltr">
89 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
90 </div>
91 </div>
92 </div>
93 </div>
94 </div>
95 </div>
96 </body>
97</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-signed-mailinglist.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-signed-mailinglist.mbox.html
new file mode 100644
index 00000000..f5b20b6d
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-signed-mailinglist.mbox.html
@@ -0,0 +1,68 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signWarn">
11 <tr class="signWarnH">
12 <td dir="ltr">
13 <table cellspacing="0" cellpadding="0" width="100%">
14 <tr>
15 <td rowspan="2">Message was signed on 4/8/13 9:51 AM with unknown key <a href="kmail:showCertificate#gpg ### OpenPGP ### D6B72EB1A7F1DB43">0xD6B72EB1A7F1DB43</a>.<br/>The validity of the signature cannot be verified.<br/>Status:<i>No public key to verify the signature</i></td>
16 <td align="right" valign="top" nowrap="nowrap">
17 <a href="kmail:hideSignatureDetails">Hide Details</a>
18 </td>
19 </tr>
20 <tr>
21 <td align="right" valign="bottom" nowrap="nowrap"/>
22 </tr>
23 </table>
24 </td>
25 </tr>
26 <tr class="signWarnB">
27 <td>
28 <a name="att1.1"/>
29 <div id="attachmentDiv1.1">
30 <div class="noquote">
31 <div dir="ltr">hi..</div>
32 <br/>
33 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
34 <div dir="ltr">activities_optional</div>
35 <br/>
36 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
37 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
38 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
39 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
40 <br/>
41 <div dir="ltr">--&nbsp;</div>
42 <div dir="ltr">Aaron J. Seigo</div>
43 </div>
44 </div>
45 </td>
46 </tr>
47 <tr class="signWarnH">
48 <td dir="ltr">End of signed message</td>
49 </tr>
50 </table>
51 </div>
52 <a name="att2"/>
53 <div id="attachmentDiv2">
54 <div class="noquote">
55 <div dir="ltr">_______________________________________________</div>
56 <div dir="ltr">Plasma-devel mailing list</div>
57 <div dir="ltr">
58 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
59 </div>
60 <div dir="ltr">
61 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
62 </div>
63 </div>
64 </div>
65 </div>
66 </div>
67 </body>
68</html>
diff --git a/framework/src/domain/mime/testdata/details/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mime/testdata/details/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..1432aa44
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,74 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signOkKeyOkB">
25 <td>
26 <a name="att1"/>
27 <div id="attachmentDiv1">
28 <a name="att1.1"/>
29 <div id="attachmentDiv1.1">
30 <div class="noquote">
31 <div dir="ltr">this is the main body text</div>
32 </div>
33 </div>
34 <a name="att1.2"/>
35 <div id="attachmentDiv1.2">
36 <table cellspacing="1" class="textAtm">
37 <tr class="textAtmH">
38 <td dir="ltr">attachment1.txt</td>
39 </tr>
40 <tr class="textAtmB">
41 <td>
42 <div class="noquote">
43 <div dir="ltr">this is attachment one</div>
44 </div>
45 </td>
46 </tr>
47 </table>
48 </div>
49 <a name="att1.3"/>
50 <div id="attachmentDiv1.3">
51 <table cellspacing="1" class="textAtm">
52 <tr class="textAtmH">
53 <td dir="ltr">attachment2.txt</td>
54 </tr>
55 <tr class="textAtmB">
56 <td>
57 <div class="noquote">
58 <div dir="ltr">this is attachment two</div>
59 </div>
60 </td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </td>
66 </tr>
67 <tr class="signOkKeyOkH">
68 <td dir="ltr">End of signed message</td>
69 </tr>
70 </table>
71 </div>
72 </div>
73 </body>
74</html>
diff --git a/framework/src/domain/mime/testdata/details/signed-forward-openpgp-signed-encrypted.mbox.html b/framework/src/domain/mime/testdata/details/signed-forward-openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..b960f318
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/signed-forward-openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,111 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signOkKeyOkB">
25 <td>
26 <a name="att1"/>
27 <div id="attachmentDiv1">
28 <a name="att1.1"/>
29 <div id="attachmentDiv1.1">
30 <div class="noquote">
31 <div dir="ltr">bla bla bla</div>
32 </div>
33 </div>
34 <a name="att1.2"/>
35 <div id="attachmentDiv1.2">
36 <table cellspacing="1" cellpadding="1" class="rfc822">
37 <tr class="rfc822H">
38 <td dir="ltr">
39 <a href="attachment:1.2.1?place=body">Encapsulated message</a>
40 </td>
41 </tr>
42 <tr class="rfc822B">
43 <td>
44 <a name="att1.2.1"/>
45 <div id="attachmentDiv1.2.1">
46 <table cellspacing="1" cellpadding="1" class="encr">
47 <tr class="encrH">
48 <td dir="ltr">Encrypted message</td>
49 </tr>
50 <tr class="encrB">
51 <td>
52 <div style="position: relative; word-wrap: break-word">
53 <a name="att"/>
54 <div id="attachmentDiv">
55 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
56 <tr class="signOkKeyOkH">
57 <td dir="ltr">
58 <table cellspacing="0" cellpadding="0" width="100%">
59 <tr>
60 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
61 <td align="right" valign="top" nowrap="nowrap">
62 <a href="kmail:hideSignatureDetails">Hide Details</a>
63 </td>
64 </tr>
65 <tr>
66 <td align="right" valign="bottom" nowrap="nowrap"/>
67 </tr>
68 </table>
69 </td>
70 </tr>
71 <tr class="signOkKeyOkB">
72 <td>
73 <a name="att1"/>
74 <div id="attachmentDiv1">
75 <div class="noquote">
76 <div dir="ltr">encrypted message text</div>
77 </div>
78 </div>
79 </td>
80 </tr>
81 <tr class="signOkKeyOkH">
82 <td dir="ltr">End of signed message</td>
83 </tr>
84 </table>
85 </div>
86 </div>
87 </td>
88 </tr>
89 <tr class="encrH">
90 <td dir="ltr">End of encrypted message</td>
91 </tr>
92 </table>
93 </div>
94 </td>
95 </tr>
96 <tr class="rfc822H">
97 <td dir="ltr">End of encapsulated message</td>
98 </tr>
99 </table>
100 </div>
101 </div>
102 </td>
103 </tr>
104 <tr class="signOkKeyOkH">
105 <td dir="ltr">End of signed message</td>
106 </tr>
107 </table>
108 </div>
109 </div>
110 </body>
111</html>
diff --git a/framework/src/domain/mime/testdata/details/smime-opaque-enc+sign.mbox.html b/framework/src/domain/mime/testdata/details/smime-opaque-enc+sign.mbox.html
new file mode 100644
index 00000000..d6345a7c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/smime-opaque-enc+sign.mbox.html
@@ -0,0 +1,60 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test%40example.com">test@example.com</a> on 1/10/13 3:48 PM with key <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">0x4CC658E3212B49DC</a><br/>&nbsp;<br/>Status:<i>Good signature.</i><br/>&nbsp;<br/><u>Warning:</u> Sender's mail address is not stored in the <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">certificate</a> used for signing.<br/>sender: <br/>stored: test@example.com</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <div style="position: relative; word-wrap: break-word">
36 <a name="att"/>
37 <div id="attachmentDiv">
38 <div class="noquote">
39 <div dir="ltr">Encrypted and signed mail.</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </body>
60</html>
diff --git a/framework/src/domain/mime/testdata/details/smime-opaque-sign.mbox.html b/framework/src/domain/mime/testdata/details/smime-opaque-sign.mbox.html
new file mode 100644
index 00000000..248b93ff
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/smime-opaque-sign.mbox.html
@@ -0,0 +1,43 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed by <a href="mailto:test%40example.com">test@example.com</a> on 1/10/13 3:48 PM with key <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">0x4CC658E3212B49DC</a><br/>&nbsp;<br/>Status:<i>Good signature.</i></td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signOkKeyOkB">
25 <td>
26 <div style="position: relative; word-wrap: break-word">
27 <a name="att"/>
28 <div id="attachmentDiv">
29 <div class="noquote">
30 <div dir="ltr">A simple signed only test.</div>
31 </div>
32 </div>
33 </div>
34 </td>
35 </tr>
36 <tr class="signOkKeyOkH">
37 <td dir="ltr">End of signed message</td>
38 </tr>
39 </table>
40 </div>
41 </div>
42 </body>
43</html>
diff --git a/framework/src/domain/mime/testdata/details/smime-signed-encrypted.mbox.html b/framework/src/domain/mime/testdata/details/smime-signed-encrypted.mbox.html
new file mode 100644
index 00000000..6e811632
--- /dev/null
+++ b/framework/src/domain/mime/testdata/details/smime-signed-encrypted.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test%40example.com">test@example.com</a> on 9/8/10 3:51 PM with key <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">0x4CC658E3212B49DC</a><br/>&nbsp;<br/>Status:<i>Good signature.</i><br/>&nbsp;<br/><u>Warning:</u> Sender's mail address is not stored in the <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">certificate</a> used for signing.<br/>sender: <br/>stored: test@example.com</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <a name="att1"/>
36 <div id="attachmentDiv1">
37 <div class="noquote">
38 <div dir="ltr">encrypted message text</div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox b/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox
new file mode 100644
index 00000000..885b9d1b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox
@@ -0,0 +1,53 @@
1From: Thomas McGuire <dontspamme@gmx.net>
2Subject: Fwd: Test with attachment
3Date: Wed, 5 Aug 2009 10:58:27 +0200
4MIME-Version: 1.0
5Content-Type: Multipart/Mixed;
6 boundary="Boundary-00=_zmUeKB+A8hGfCVZ"
7
8
9--Boundary-00=_zmUeKB+A8hGfCVZ
10Content-Type: text/plain;
11 charset="iso-8859-15"
12Content-Transfer-Encoding: 7bit
13Content-Disposition: inline
14
15This is the first encapsulating message.
16
17--Boundary-00=_zmUeKB+A8hGfCVZ
18Content-Type: message/rfc822;
19 name="forwarded message"
20Content-Transfer-Encoding: 7bit
21Content-Description: Thomas McGuire <dontspamme@gmx.net>: Test with attachment
22Content-Disposition: inline
23
24From: Thomas McGuire <dontspamme@gmx.net>
25Subject: Test with attachment
26Date: Wed, 5 Aug 2009 10:57:58 +0200
27MIME-Version: 1.0
28Content-Type: Multipart/Mixed;
29 boundary="Boundary-00=_WmUeKQpGb0DHyx1"
30
31--Boundary-00=_WmUeKQpGb0DHyx1
32Content-Type: text/plain;
33 charset="us-ascii"
34Content-Transfer-Encoding: 7bit
35Content-Disposition: inline
36
37
38
39
40This is the second encapsulated message.
41
42--Boundary-00=_WmUeKQpGb0DHyx1
43Content-Type: text/plain;
44 name="attachment.txt"
45Content-Transfer-Encoding: 7bit
46Content-Disposition: attachment;
47 filename="attachment.txt"
48
49This is an attachment.
50
51--Boundary-00=_WmUeKQpGb0DHyx1--
52
53--Boundary-00=_zmUeKB+A8hGfCVZ--
diff --git a/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox.html b/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox.html
new file mode 100644
index 00000000..aa3d1090
--- /dev/null
+++ b/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox.html
@@ -0,0 +1,51 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">This is the first encapsulating message.</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <a name="att2.1.1"/>
27 <div id="attachmentDiv2.1.1">
28 <div class="noquote">
29 <div dir="ltr">This is the second encapsulated message.</div>
30 </div>
31 </div>
32 <a name="att2.1.2"/>
33 <div id="attachmentDiv2.1.2">
34 <hr/>
35 <div>
36 <a href="attachment:2.1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment.txt</a>
37 </div>
38 <div/>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="rfc822H">
44 <td dir="ltr">End of encapsulated message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </div>
50 </body>
51</html>
diff --git a/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox.tree b/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox.tree
new file mode 100644
index 00000000..050414a2
--- /dev/null
+++ b/framework/src/domain/mime/testdata/encapsulated-with-attachment.mbox.tree
@@ -0,0 +1,10 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
5 * MimeTreeParser::EncapsulatedRfc822MessagePart
6 * MimeTreeParser::MimeMessagePart
7 * MimeTreeParser::AttachmentMessagePart
8 * MimeTreeParser::MessagePart
9 * MimeTreeParser::AttachmentMessagePart
10 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox b/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox
new file mode 100644
index 00000000..1c166940
--- /dev/null
+++ b/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox
@@ -0,0 +1,69 @@
1From test@kolab.org Wed, 08 Sep 2010 17:52:37 +0200
2From: OpenPGP Test <test@kolab.org>
3Subject: Fwd: OpenPGP signed and encrypted
4Date: Wed, 08 Sep 2010 17:52:37 +0200
5User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
6MIME-Version: 1.0
7Content-Type: multipart/mixed; boundary="nextPart2148910.9CGjQOYhYJ"
8Content-Transfer-Encoding: 7Bit
9
10
11--nextPart2148910.9CGjQOYhYJ
12Content-Transfer-Encoding: 7Bit
13Content-Type: text/plain; charset="us-ascii"
14
15bla bla bla
16--nextPart2148910.9CGjQOYhYJ
17Content-Type: message/rfc822
18Content-Disposition: inline; filename="forwarded message"
19Content-Description: OpenPGP Test <test@kolab.org>: OpenPGP signed and encrypted
20
21From: OpenPGP Test <test@kolab.org>
22To: test@kolab.org
23Subject: OpenPGP signed and encrypted
24Date: Tue, 07 Sep 2010 18:08:44 +0200
25User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
26MIME-Version: 1.0
27Content-Type: multipart/encrypted; boundary="nextPart25203163.0xtB501Z4V"; protocol="application/pgp-encrypted"
28Content-Transfer-Encoding: 7Bit
29
30
31--nextPart25203163.0xtB501Z4V
32Content-Type: application/pgp-encrypted
33Content-Disposition: attachment
34
35Version: 1
36--nextPart25203163.0xtB501Z4V
37Content-Type: application/octet-stream
38Content-Disposition: inline; filename="msg.asc"
39
40-----BEGIN PGP MESSAGE-----
41Version: GnuPG v2.0.15 (GNU/Linux)
42
43hQEMAwzOQ1qnzNo7AQf7BFYWaGiCTGtXY59bSh3LCXNnWZejblYALxIUNXOFEXbm
44y/YA95FmQsy3U5HRCAJV/DY1PEaJz1RTm9bcdIpDC3Ab2YzSwmOwV5fcoUOB2df4
45KjX19Q+2F3JxpPQ0N1gHf4dKfIu19LH+CKeFzUN13aJs5J4A5wlj+NjJikxzmxDS
46kDtNYndynPmo9DJQcsUFw3gpvx5HaHvx1cT4mAB2M5cd2l+vN1jYbaWb0x5Zq41z
47mRNI89aPieC3rcM2289m68fGloNbYvi8mZJu5RrI4Tbi/D7Rjm1y63lHgVV6AN88
48XAzRiedOeF99LoTBulrJdtT8AAgCs8nCetcWpIffdtLpAZiZkzHmYOU7nqGxqpRk
49OVeUTrCn9DW2SMmHjaP4IiKnMvzEycu5F4a72+V1LeMIhMSjTRTq+ZE2PTaqH59z
50QsMn7Nb6GlOICbTptRKNNtyJKO7xXlpT7YtvNKnCyEOkH2XrYH7GvpYCiuQ0/o+7
51SxV436ZejiYIg6DQDXJCoa2DXimGp0C10Jh0HwX0BixpoNtwEjkGRYcX6P/JzkH0
52oBood4Ly+Tiu6iVDisrK3AVGYpIzCrKkE9qULTw4R/jFKR2tcCqGb7Fxtk2LV7Md
533S+DyOKrvKQ5GNwbp9OE97pwk+Lr1JS3UAvj5f6BR+1PVNcC0i0wWkgwDjPh1eGD
54enMQmorE6+N0uHtH2F4fOxo/TbbA3+zhI25kVW3bO03xyUl/cmQZeb52nvfOvtOo
55gSb2j6bPkzljDMPEzrtJjbFtGHJbPfUQYJgZv9OE2EQIqpg6goIw279alBq6GLIX
56pkO+dRmztzjcDyhcLxMuQ4cTizel/0J/bU7U6lvwHSyZVbT4Ev+opG5K70Hbqbwr
57NZcgdWXbSeesxGM/oQaMeSurOevxVl+/zrTVAek61aRRd1baAYqgi2pf2V7y4oK3
58qkdxzmoFpRdNlfrQW65NZWnHOi9rC9XxANIwnVn3kRcDf+t2K4PrFluI157lXM/o
59wX91j88fazysbJlQ6TjsApO9ETiPOFEBqouxCTtCZzlUgyVG8jpIjdHWFnagHeXH
60+lXNdYjxnTWTjTxMOZC9ySMpXkjWdFI1ecxVwu6Ik6RX51rvBJAAXWP75yUjPKJ4
61rRi5oQl/VLl0QznO7lvgMPtUwgDVNWO/r7Kn9B387h9fAJZ/kWFAEDW2yhAzABqO
62rCNKDzBPgfAwCnikCpMoCbOL7SU8BdbzQHD8/Lkv4m0pzliHQ/KkGF710koBzTmF
63N7+wk9pwIuvcrEBQj567
64=GV0c
65-----END PGP MESSAGE-----
66
67--nextPart25203163.0xtB501Z4V--
68
69--nextPart2148910.9CGjQOYhYJ--
diff --git a/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox.html b/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..7632ec39
--- /dev/null
+++ b/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,81 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">bla bla bla</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <table cellspacing="1" cellpadding="1" class="encr">
27 <tr class="encrH">
28 <td dir="ltr">Encrypted message</td>
29 </tr>
30 <tr class="encrB">
31 <td>
32 <div style="position: relative; word-wrap: break-word">
33 <a name="att"/>
34 <div id="attachmentDiv">
35 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
36 <tr class="signOkKeyOkH">
37 <td dir="ltr">
38 <table cellspacing="0" cellpadding="0" width="100%">
39 <tr>
40 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
41 <td align="right">
42 <a href="kmail:showSignatureDetails">Show Details</a>
43 </td>
44 </tr>
45 </table>
46 </td>
47 </tr>
48 <tr class="signOkKeyOkB">
49 <td>
50 <a name="att1"/>
51 <div id="attachmentDiv1">
52 <div class="noquote">
53 <div dir="ltr">encrypted message text</div>
54 </div>
55 </div>
56 </td>
57 </tr>
58 <tr class="signOkKeyOkH">
59 <td dir="ltr">End of signed message</td>
60 </tr>
61 </table>
62 </div>
63 </div>
64 </td>
65 </tr>
66 <tr class="encrH">
67 <td dir="ltr">End of encrypted message</td>
68 </tr>
69 </table>
70 </div>
71 </td>
72 </tr>
73 <tr class="rfc822H">
74 <td dir="ltr">End of encapsulated message</td>
75 </tr>
76 </table>
77 </div>
78 </div>
79 </div>
80 </body>
81</html>
diff --git a/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox.tree b/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox.tree
new file mode 100644
index 00000000..324156db
--- /dev/null
+++ b/framework/src/domain/mime/testdata/forward-openpgp-signed-encrypted.mbox.tree
@@ -0,0 +1,9 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
5 * MimeTreeParser::EncapsulatedRfc822MessagePart
6 * MimeTreeParser::EncryptedMessagePart
7 * MimeTreeParser::SignedMessagePart
8 * MimeTreeParser::TextMessagePart
9 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..73c4d2d7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </div>
60 </body>
61</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..d5e4550e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">test text</div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..73c4d2d7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </div>
60 </body>
61</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..ebad7354
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,84 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">This is the main body.</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 <a name="att2"/>
59 <div id="attachmentDiv2">
60 <table cellspacing="1" cellpadding="1" class="encr">
61 <tr class="encrH">
62 <td dir="ltr">Encrypted message</td>
63 </tr>
64 <tr class="encrB">
65 <td>
66 <div style="position: relative; word-wrap: break-word">
67 <a name="att"/>
68 <div id="attachmentDiv">
69 <div class="noquote">
70 <div dir="ltr">This is an unsigned attachment.</div>
71 </div>
72 </div>
73 </div>
74 </td>
75 </tr>
76 <tr class="encrH">
77 <td dir="ltr">End of encrypted message</td>
78 </tr>
79 </table>
80 </div>
81 </div>
82 </div>
83 </body>
84</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..4cdeaa63
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-encrypted-two-attachments.mbox.html
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">this is the main body part</div>
21 </div>
22 </div>
23 </div>
24 </div>
25 </td>
26 </tr>
27 <tr class="encrH">
28 <td dir="ltr">End of encrypted message</td>
29 </tr>
30 </table>
31 </div>
32 </div>
33 </body>
34</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-signed-apple.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-apple.mbox.html
new file mode 100644
index 00000000..330b02a1
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-apple.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">
30 <div class="">pre attachment</div>
31 </div>
32 </div>
33 <a name="att1.2.3"/>
34 <div id="attachmentDiv1.2.3">
35 <div style="position: relative">
36 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
37 </div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signWarnH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..83b7a66c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">this is the main body</div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-signed-mailinglist+additional-children.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-mailinglist+additional-children.mbox.html
new file mode 100644
index 00000000..25b1ad04
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-mailinglist+additional-children.mbox.html
@@ -0,0 +1,52 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.1"/>
11 <div id="attachmentDiv1.1">
12 <div class="noquote">
13 <div dir="ltr">hi..</div>
14 <br/>
15 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
16 <div dir="ltr">activities_optional</div>
17 <br/>
18 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
19 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
20 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
21 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
22 <br/>
23 <div dir="ltr">--&nbsp;</div>
24 <div dir="ltr">Aaron J. Seigo</div>
25 </div>
26 </div>
27 <a name="att1.2"/>
28 <div id="attachmentDiv1.2">
29 <hr/>
30 <div>
31 <a href="attachment:1.2?place=body"><img align="center" height="48" width="48" src="file:application-pgp-signature.svg" border="0" style="max-width: 100%" alt=""/>signature.asc</a>
32 </div>
33 <div>This is a digitally signed message part.</div>
34 </div>
35 </div>
36 <a name="att2"/>
37 <div id="attachmentDiv2">
38 <div class="noquote">
39 <div dir="ltr">_______________________________________________</div>
40 <div dir="ltr">Plasma-devel mailing list</div>
41 <div dir="ltr">
42 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
43 </div>
44 <div dir="ltr">
45 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
46 </div>
47 </div>
48 </div>
49 </div>
50 </div>
51 </body>
52</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-signed-no-protocol.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-no-protocol.mbox.html
new file mode 100644
index 00000000..bdac52b6
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-no-protocol.mbox.html
@@ -0,0 +1,28 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">hi..</div>
12 <br/>
13 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
14 <div dir="ltr">activities_optional</div>
15 <br/>
16 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
17 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
18 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
19 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
20 <br/>
21 <div dir="ltr">--&nbsp;</div>
22 <div dir="ltr">Aaron J. Seigo</div>
23 </div>
24 </div>
25 </div>
26 </div>
27 </body>
28</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..027097f7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,41 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">this is the main body text</div>
29 </div>
30 </div>
31 </div>
32 </td>
33 </tr>
34 <tr class="signOkKeyOkH">
35 <td dir="ltr">End of signed message</td>
36 </tr>
37 </table>
38 </div>
39 </div>
40 </body>
41</html>
diff --git a/framework/src/domain/mime/testdata/headeronly/smime-signed-apple.mbox.html b/framework/src/domain/mime/testdata/headeronly/smime-signed-apple.mbox.html
new file mode 100644
index 00000000..9554bb39
--- /dev/null
+++ b/framework/src/domain/mime/testdata/headeronly/smime-signed-apple.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signErr">
9 <tr class="signErrH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Invalid signature.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signErrB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
30 </div>
31 <a name="att1.2.3"/>
32 <div id="attachmentDiv1.2.3">
33 <div style="position: relative">
34 <blockquote type="cite" class="">
35 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
36 </blockquote>
37 </div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signErrH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mime/testdata/hidden/encapsulated-with-attachment.mbox.html b/framework/src/domain/mime/testdata/hidden/encapsulated-with-attachment.mbox.html
new file mode 100644
index 00000000..42f5ecd7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/encapsulated-with-attachment.mbox.html
@@ -0,0 +1,43 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">This is the first encapsulating message.</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <a name="att2.1.1"/>
27 <div id="attachmentDiv2.1.1">
28 <div class="noquote">
29 <div dir="ltr">This is the second encapsulated message.</div>
30 </div>
31 </div>
32 </div>
33 </td>
34 </tr>
35 <tr class="rfc822H">
36 <td dir="ltr">End of encapsulated message</td>
37 </tr>
38 </table>
39 </div>
40 </div>
41 </div>
42 </body>
43</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..73c4d2d7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </div>
60 </body>
61</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..d5e4550e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">test text</div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-noData.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-noData.mbox.html
new file mode 100644
index 00000000..166812fe
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-noData.mbox.html
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv"/>
8 </div>
9 </body>
10</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..73c4d2d7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </div>
60 </body>
61</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..ebad7354
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,84 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">This is the main body.</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 <a name="att2"/>
59 <div id="attachmentDiv2">
60 <table cellspacing="1" cellpadding="1" class="encr">
61 <tr class="encrH">
62 <td dir="ltr">Encrypted message</td>
63 </tr>
64 <tr class="encrB">
65 <td>
66 <div style="position: relative; word-wrap: break-word">
67 <a name="att"/>
68 <div id="attachmentDiv">
69 <div class="noquote">
70 <div dir="ltr">This is an unsigned attachment.</div>
71 </div>
72 </div>
73 </div>
74 </td>
75 </tr>
76 <tr class="encrH">
77 <td dir="ltr">End of encrypted message</td>
78 </tr>
79 </table>
80 </div>
81 </div>
82 </div>
83 </body>
84</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..4cdeaa63
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-encrypted-two-attachments.mbox.html
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">this is the main body part</div>
21 </div>
22 </div>
23 </div>
24 </div>
25 </td>
26 </tr>
27 <tr class="encrH">
28 <td dir="ltr">End of encrypted message</td>
29 </tr>
30 </table>
31 </div>
32 </div>
33 </body>
34</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-signed-apple.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-signed-apple.mbox.html
new file mode 100644
index 00000000..330b02a1
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-signed-apple.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">
30 <div class="">pre attachment</div>
31 </div>
32 </div>
33 <a name="att1.2.3"/>
34 <div id="attachmentDiv1.2.3">
35 <div style="position: relative">
36 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
37 </div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signWarnH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..83b7a66c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">this is the main body</div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-signed-mailinglist+additional-children.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-signed-mailinglist+additional-children.mbox.html
new file mode 100644
index 00000000..1f0da385
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-signed-mailinglist+additional-children.mbox.html
@@ -0,0 +1,44 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.1"/>
11 <div id="attachmentDiv1.1">
12 <div class="noquote">
13 <div dir="ltr">hi..</div>
14 <br/>
15 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
16 <div dir="ltr">activities_optional</div>
17 <br/>
18 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
19 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
20 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
21 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
22 <br/>
23 <div dir="ltr">--&nbsp;</div>
24 <div dir="ltr">Aaron J. Seigo</div>
25 </div>
26 </div>
27 </div>
28 <a name="att2"/>
29 <div id="attachmentDiv2">
30 <div class="noquote">
31 <div dir="ltr">_______________________________________________</div>
32 <div dir="ltr">Plasma-devel mailing list</div>
33 <div dir="ltr">
34 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
35 </div>
36 <div dir="ltr">
37 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
38 </div>
39 </div>
40 </div>
41 </div>
42 </div>
43 </body>
44</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-signed-no-protocol.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-signed-no-protocol.mbox.html
new file mode 100644
index 00000000..bdac52b6
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-signed-no-protocol.mbox.html
@@ -0,0 +1,28 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">hi..</div>
12 <br/>
13 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
14 <div dir="ltr">activities_optional</div>
15 <br/>
16 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
17 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
18 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
19 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
20 <br/>
21 <div dir="ltr">--&nbsp;</div>
22 <div dir="ltr">Aaron J. Seigo</div>
23 </div>
24 </div>
25 </div>
26 </div>
27 </body>
28</html>
diff --git a/framework/src/domain/mime/testdata/hidden/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mime/testdata/hidden/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..027097f7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,41 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">this is the main body text</div>
29 </div>
30 </div>
31 </div>
32 </td>
33 </tr>
34 <tr class="signOkKeyOkH">
35 <td dir="ltr">End of signed message</td>
36 </tr>
37 </table>
38 </div>
39 </div>
40 </body>
41</html>
diff --git a/framework/src/domain/mime/testdata/hidden/smime-signed-apple.mbox.html b/framework/src/domain/mime/testdata/hidden/smime-signed-apple.mbox.html
new file mode 100644
index 00000000..9554bb39
--- /dev/null
+++ b/framework/src/domain/mime/testdata/hidden/smime-signed-apple.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signErr">
9 <tr class="signErrH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Invalid signature.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signErrB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
30 </div>
31 <a name="att1.2.3"/>
32 <div id="attachmentDiv1.2.3">
33 <div style="position: relative">
34 <blockquote type="cite" class="">
35 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
36 </blockquote>
37 </div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signErrH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mime/testdata/html.mbox b/framework/src/domain/mime/testdata/html.mbox
new file mode 100644
index 00000000..bf5c685d
--- /dev/null
+++ b/framework/src/domain/mime/testdata/html.mbox
@@ -0,0 +1,15 @@
1From foo@example.com Thu, 26 May 2011 01:16:54 +0100
2From: Thomas McGuire <foo@example.com>
3Subject: HTML test
4Date: Thu, 26 May 2011 01:16:54 +0100
5Message-ID: <1501334.pROlBb7MZF@herrwackelpudding.localhost>
6X-KMail-Transport: GMX
7X-KMail-Fcc: 28
8X-KMail-Drafts: 7
9X-KMail-Templates: 9
10User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
11MIME-Version: 1.0
12Content-Transfer-Encoding: 7Bit
13Content-Type: text/html; charset="windows-1252"
14
15<html><body><p><span>HTML</span> text</p></body></html> \ No newline at end of file
diff --git a/framework/src/domain/mime/testdata/html.mbox.html b/framework/src/domain/mime/testdata/html.mbox.html
new file mode 100644
index 00000000..2fe886f1
--- /dev/null
+++ b/framework/src/domain/mime/testdata/html.mbox.html
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att2"/>
9 <div id="attachmentDiv2">
10 <div style="position: relative">
11 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
12 </div>
13 </div>
14 </div>
15 </div>
16 </body>
17</html>
diff --git a/framework/src/domain/mime/testdata/html.mbox.tree b/framework/src/domain/mime/testdata/html.mbox.tree
new file mode 100644
index 00000000..0de07281
--- /dev/null
+++ b/framework/src/domain/mime/testdata/html.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mime/testdata/htmlonly.mbox b/framework/src/domain/mime/testdata/htmlonly.mbox
new file mode 100644
index 00000000..e45b1c4d
--- /dev/null
+++ b/framework/src/domain/mime/testdata/htmlonly.mbox
@@ -0,0 +1,21 @@
1From foo@example.com Thu, 26 May 2011 01:16:54 +0100
2From: Thomas McGuire <foo@example.com>
3Subject: HTML test
4Date: Thu, 26 May 2011 01:16:54 +0100
5Message-ID: <1501334.pROlBb7MZF@herrwackelpudding.localhost>
6X-KMail-Transport: GMX
7X-KMail-Fcc: 28
8X-KMail-Drafts: 7
9X-KMail-Templates: 9
10User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
11MIME-Version: 1.0
12Content-Type: text/html
13Content-Transfer-Encoding: 7Bit
14
15<html>
16<head>
17</head>
18<body>
19<b>SOME</b> HTML text.
20</body>
21</html>
diff --git a/framework/src/domain/mime/testdata/htmlonly.mbox.html b/framework/src/domain/mime/testdata/htmlonly.mbox.html
new file mode 100644
index 00000000..1143f2cf
--- /dev/null
+++ b/framework/src/domain/mime/testdata/htmlonly.mbox.html
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <div style="position: relative"><b>SOME</b> HTML text.</div>
9 </div>
10 </div>
11 </body>
12</html>
diff --git a/framework/src/domain/mime/testdata/htmlonly.mbox.tree b/framework/src/domain/mime/testdata/htmlonly.mbox.tree
new file mode 100644
index 00000000..a4c3191b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/htmlonly.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::HtmlMessagePart
diff --git a/framework/src/domain/mime/testdata/htmlonlyexternal.mbox b/framework/src/domain/mime/testdata/htmlonlyexternal.mbox
new file mode 100644
index 00000000..4eb3e2c3
--- /dev/null
+++ b/framework/src/domain/mime/testdata/htmlonlyexternal.mbox
@@ -0,0 +1,21 @@
1From foo@example.com Thu, 26 May 2011 01:16:54 +0100
2From: Thomas McGuire <foo@example.com>
3Subject: HTML test
4Date: Thu, 26 May 2011 01:16:54 +0100
5Message-ID: <1501334.pROlBb7MZF@herrwackelpudding.localhost>
6X-KMail-Transport: GMX
7X-KMail-Fcc: 28
8X-KMail-Drafts: 7
9X-KMail-Templates: 9
10User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
11MIME-Version: 1.0
12Content-Type: text/html
13Content-Transfer-Encoding: 7Bit
14
15<html>
16<head>
17</head>
18<body>
19<b>SOME</b> HTML text. <img src="http://example.org/test.img" >
20</body>
21</html>
diff --git a/framework/src/domain/mime/testdata/iconic/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mime/testdata/iconic/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..b6f734c2
--- /dev/null
+++ b/framework/src/domain/mime/testdata/iconic/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,92 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">This is the main body.</div>
40 </div>
41 </div>
42 <a name="att1.2"/>
43 <div id="attachmentDiv1.2">
44 <hr/>
45 <div>
46 <a href="attachment:1:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment1.txt</a>
47 </div>
48 <div/>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="signOkKeyOkH">
54 <td dir="ltr">End of signed message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </td>
60 </tr>
61 <tr class="encrH">
62 <td dir="ltr">End of encrypted message</td>
63 </tr>
64 </table>
65 </div>
66 <a name="att2"/>
67 <div id="attachmentDiv2">
68 <table cellspacing="1" cellpadding="1" class="encr">
69 <tr class="encrH">
70 <td dir="ltr">Encrypted message</td>
71 </tr>
72 <tr class="encrB">
73 <td>
74 <div style="position: relative; word-wrap: break-word">
75 <a name="att"/>
76 <div id="attachmentDiv">
77 <div class="noquote">
78 <div dir="ltr">This is an unsigned attachment.</div>
79 </div>
80 </div>
81 </div>
82 </td>
83 </tr>
84 <tr class="encrH">
85 <td dir="ltr">End of encrypted message</td>
86 </tr>
87 </table>
88 </div>
89 </div>
90 </div>
91 </body>
92</html>
diff --git a/framework/src/domain/mime/testdata/iconic/openpgp-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/iconic/openpgp-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..7f0b7abd
--- /dev/null
+++ b/framework/src/domain/mime/testdata/iconic/openpgp-encrypted-two-attachments.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">this is the main body part</div>
21 </div>
22 </div>
23 <a name="att2"/>
24 <div id="attachmentDiv2">
25 <hr/>
26 <div>
27 <a href="attachment:e0:2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment1.txt</a>
28 </div>
29 <div/>
30 </div>
31 <a name="att3"/>
32 <div id="attachmentDiv3">
33 <hr/>
34 <div>
35 <a href="attachment:e0:3?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment2.txt</a>
36 </div>
37 <div/>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="encrH">
44 <td dir="ltr">End of encrypted message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mime/testdata/iconic/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/iconic/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..8d6b5814
--- /dev/null
+++ b/framework/src/domain/mime/testdata/iconic/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,74 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">this is the main body</div>
38 </div>
39 </div>
40 <a name="att1.2"/>
41 <div id="attachmentDiv1.2">
42 <hr/>
43 <div>
44 <a href="attachment:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment1.txt</a>
45 </div>
46 <div/>
47 </div>
48 <a name="att1.3"/>
49 <div id="attachmentDiv1.3">
50 <hr/>
51 <div>
52 <a href="attachment:e0:1.3?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment2.txt</a>
53 </div>
54 <div/>
55 </div>
56 </div>
57 </td>
58 </tr>
59 <tr class="signOkKeyOkH">
60 <td dir="ltr">End of signed message</td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </td>
66 </tr>
67 <tr class="encrH">
68 <td dir="ltr">End of encrypted message</td>
69 </tr>
70 </table>
71 </div>
72 </div>
73 </body>
74</html>
diff --git a/framework/src/domain/mime/testdata/iconic/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mime/testdata/iconic/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..73dbc5f4
--- /dev/null
+++ b/framework/src/domain/mime/testdata/iconic/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,57 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">this is the main body text</div>
29 </div>
30 </div>
31 <a name="att1.2"/>
32 <div id="attachmentDiv1.2">
33 <hr/>
34 <div>
35 <a href="attachment:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment1.txt</a>
36 </div>
37 <div/>
38 </div>
39 <a name="att1.3"/>
40 <div id="attachmentDiv1.3">
41 <hr/>
42 <div>
43 <a href="attachment:1.3?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment2.txt</a>
44 </div>
45 <div/>
46 </div>
47 </div>
48 </td>
49 </tr>
50 <tr class="signOkKeyOkH">
51 <td dir="ltr">End of signed message</td>
52 </tr>
53 </table>
54 </div>
55 </div>
56 </body>
57</html>
diff --git a/framework/src/domain/mime/testdata/inlined/encapsulated-with-attachment.mbox.html b/framework/src/domain/mime/testdata/inlined/encapsulated-with-attachment.mbox.html
new file mode 100644
index 00000000..26d3dd60
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlined/encapsulated-with-attachment.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">This is the first encapsulating message.</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <a name="att2.1.1"/>
27 <div id="attachmentDiv2.1.1">
28 <div class="noquote">
29 <div dir="ltr">This is the second encapsulated message.</div>
30 </div>
31 </div>
32 <a name="att2.1.2"/>
33 <div id="attachmentDiv2.1.2">
34 <table cellspacing="1" class="textAtm">
35 <tr class="textAtmH">
36 <td dir="ltr">attachment.txt</td>
37 </tr>
38 <tr class="textAtmB">
39 <td>
40 <div class="noquote">
41 <div dir="ltr">This is an attachment.</div>
42 </div>
43 </td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </td>
49 </tr>
50 <tr class="rfc822H">
51 <td dir="ltr">End of encapsulated message</td>
52 </tr>
53 </table>
54 </div>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..49e503f1
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,90 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 <a name="att1.2"/>
43 <div id="attachmentDiv1.2">
44 <table cellspacing="1" class="textAtm">
45 <tr class="textAtmH">
46 <td dir="ltr">file.txt</td>
47 </tr>
48 <tr class="textAtmB">
49 <td>
50 <div class="noquote">
51 <div dir="ltr">some plain ascii text...</div>
52 <br/>
53 </div>
54 </td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </td>
60 </tr>
61 <tr class="signOkKeyOkH">
62 <td dir="ltr">End of signed message</td>
63 </tr>
64 </table>
65 </div>
66 </div>
67 </td>
68 </tr>
69 <tr class="encrH">
70 <td dir="ltr">End of encrypted message</td>
71 </tr>
72 </table>
73 </div>
74 <a name="att2"/>
75 <div id="attachmentDiv2">
76 <hr/>
77 <div>
78 <a href="attachment:2?place=body">
79 <img align="center" src="file:image.png" border="0" style="max-width: 100%"/>
80 </a>
81 </div>
82 <div>
83 <a href="attachment:2?place=body">image.png</a>
84 </div>
85 <div/>
86 </div>
87 </div>
88 </div>
89 </body>
90</html>
diff --git a/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..67897491
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,74 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">test text</div>
38 </div>
39 </div>
40 <a name="att1.2"/>
41 <div id="attachmentDiv1.2">
42 <table cellspacing="1" class="textAtm">
43 <tr class="textAtmH">
44 <td dir="ltr">file.txt</td>
45 </tr>
46 <tr class="textAtmB">
47 <td>
48 <div class="noquote">
49 <div dir="ltr">some plain ascii text...</div>
50 <br/>
51 </div>
52 </td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </td>
58 </tr>
59 <tr class="signOkKeyOkH">
60 <td dir="ltr">End of signed message</td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </td>
66 </tr>
67 <tr class="encrH">
68 <td dir="ltr">End of encrypted message</td>
69 </tr>
70 </table>
71 </div>
72 </div>
73 </body>
74</html>
diff --git a/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..6091ee5a
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlined/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,74 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 <a name="att2"/>
59 <div id="attachmentDiv2">
60 <hr/>
61 <div>
62 <a href="attachment:2?place=body">
63 <img align="center" src="file:image.png" border="0" style="max-width: 100%"/>
64 </a>
65 </div>
66 <div>
67 <a href="attachment:2?place=body">image.png</a>
68 </div>
69 <div/>
70 </div>
71 </div>
72 </div>
73 </body>
74</html>
diff --git a/framework/src/domain/mime/testdata/inlined/openpgp-signed-apple.mbox.html b/framework/src/domain/mime/testdata/inlined/openpgp-signed-apple.mbox.html
new file mode 100644
index 00000000..092d5e1c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlined/openpgp-signed-apple.mbox.html
@@ -0,0 +1,63 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">
30 <div class="">pre attachment</div>
31 </div>
32 </div>
33 <a name="att1.2.2"/>
34 <div id="attachmentDiv1.2.2">
35 <hr/>
36 <div>
37 <a href="attachment:1.2.2?place=body">
38 <img align="center" src="file:image.png" border="0" style="max-width: 100%"/>
39 </a>
40 </div>
41 <div>
42 <a href="attachment:1.2.2?place=body">image.png</a>
43 </div>
44 <div/>
45 </div>
46 <a name="att1.2.3"/>
47 <div id="attachmentDiv1.2.3">
48 <div style="position: relative">
49 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
50 </div>
51 </div>
52 </div>
53 </div>
54 </td>
55 </tr>
56 <tr class="signWarnH">
57 <td dir="ltr">End of signed message</td>
58 </tr>
59 </table>
60 </div>
61 </div>
62 </body>
63</html>
diff --git a/framework/src/domain/mime/testdata/inlined/openpgp-signed-mailinglist+additional-children.mbox.html b/framework/src/domain/mime/testdata/inlined/openpgp-signed-mailinglist+additional-children.mbox.html
new file mode 100644
index 00000000..cc49cbcc
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlined/openpgp-signed-mailinglist+additional-children.mbox.html
@@ -0,0 +1,67 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.1"/>
11 <div id="attachmentDiv1.1">
12 <div class="noquote">
13 <div dir="ltr">hi..</div>
14 <br/>
15 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
16 <div dir="ltr">activities_optional</div>
17 <br/>
18 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
19 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
20 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
21 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
22 <br/>
23 <div dir="ltr">--&nbsp;</div>
24 <div dir="ltr">Aaron J. Seigo</div>
25 </div>
26 </div>
27 <a name="att1.2"/>
28 <div id="attachmentDiv1.2">
29 <hr/>
30 <div>
31 <a href="attachment:1.2?place=body"><img align="center" height="48" width="48" src="file:application-pgp-signature.svg" border="0" style="max-width: 100%" alt=""/>signature.asc</a>
32 </div>
33 <div>This is a digitally signed message part.</div>
34 </div>
35 <a name="att1.3"/>
36 <div id="attachmentDiv1.3">
37 <table cellspacing="1" class="textAtm">
38 <tr class="textAtmH">
39 <td dir="ltr">broken.attachment</td>
40 </tr>
41 <tr class="textAtmB">
42 <td>
43 <div class="noquote">
44 <div dir="ltr">Let's break a signed message - This messageblock should not be here :D</div>
45 </div>
46 </td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 <a name="att2"/>
52 <div id="attachmentDiv2">
53 <div class="noquote">
54 <div dir="ltr">_______________________________________________</div>
55 <div dir="ltr">Plasma-devel mailing list</div>
56 <div dir="ltr">
57 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
58 </div>
59 <div dir="ltr">
60 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
61 </div>
62 </div>
63 </div>
64 </div>
65 </div>
66 </body>
67</html>
diff --git a/framework/src/domain/mime/testdata/inlined/smime-signed-apple.mbox.html b/framework/src/domain/mime/testdata/inlined/smime-signed-apple.mbox.html
new file mode 100644
index 00000000..d3f3eeb3
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlined/smime-signed-apple.mbox.html
@@ -0,0 +1,63 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signErr">
9 <tr class="signErrH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Invalid signature.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signErrB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
30 </div>
31 <a name="att1.2.2"/>
32 <div id="attachmentDiv1.2.2">
33 <hr/>
34 <div>
35 <a href="attachment:1.2.2?place=body">
36 <img align="center" src="file:image.png" border="0" style="max-width: 100%"/>
37 </a>
38 </div>
39 <div>
40 <a href="attachment:1.2.2?place=body">image.png</a>
41 </div>
42 <div/>
43 </div>
44 <a name="att1.2.3"/>
45 <div id="attachmentDiv1.2.3">
46 <div style="position: relative">
47 <blockquote type="cite" class="">
48 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
49 </blockquote>
50 </div>
51 </div>
52 </div>
53 </div>
54 </td>
55 </tr>
56 <tr class="signErrH">
57 <td dir="ltr">End of signed message</td>
58 </tr>
59 </table>
60 </div>
61 </div>
62 </body>
63</html>
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox b/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox
new file mode 100644
index 00000000..c05a7e69
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox
@@ -0,0 +1,33 @@
1From test@kolab.org Wed, 25 May 2011 23:49:40 +0100
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: inlinepgpencrypted
5Date: Wed, 25 May 2011 23:49:40 +0100
6Message-ID: <1786696.yKXrOjjflF@herrwackelpudding.localhost>
7X-KMail-Transport: GMX
8X-KMail-Fcc: 28
9X-KMail-Drafts: 7
10X-KMail-Templates: 9
11User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
12MIME-Version: 1.0
13Content-Transfer-Encoding: 7Bit
14Content-Type: text/plain; charset="us-ascii"
15
16-----BEGIN PGP MESSAGE-----
17Version: GnuPG v2.0.15 (GNU/Linux)
18
19hQEMAwzOQ1qnzNo7AQf/a3aNTLpQBfcUr+4AKsZQLj4h6z7e7a5AaCW8AG0wrbxN
20kBYB7E5jdZh45DX/99gvoZslthWryUCX2kKZ3LtIllxKVjqNuK5hSt+SAuKkwiMR
21Xcbf1KFKENKupgGSO9B2NJRbjoExdJ+fC3mGXnO3dT7xJJAo3oLE8Nivu+Bj1peY
22E1wCf+vcTwVHFrA7SV8eMRb9Z9wBXmU8Q8e9ekJ7ZsRX3tMeBs6jvscVvfMf6DYY
23N14snZBZuGNKT9a3DPny7IC1S0lHcaam34ogWwMi3FxPGJt/Lg52kARlkF5TDhcP
24N6H0EB/iqDRjOOUoEVm8um5XOSR1FpEiAdD0DON3y9JPATnrYq7sgYZz3BVImYY+
25N/jV8fEiN0a34pcOq8NQedMuOsJHNBS5MtbQH/kJLq0MXBpXekGlHo4MKw0trISc
26Rw3pW6/BFfhPJLni29g9tw==
27=fRFW
28-----END PGP MESSAGE-----
29
30_______________________________________________
31test mailing list
32test@lists.kde.org
33http://kde.org
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox.html b/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox.html
new file mode 100644
index 00000000..8af2b1c6
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox.html
@@ -0,0 +1,36 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div class="noquote">
15 <div dir="ltr">some random text</div>
16 </div>
17 </td>
18 </tr>
19 <tr class="encrH">
20 <td dir="ltr">End of encrypted message</td>
21 </tr>
22 </table>
23 <div class="noquote">
24 <div dir="ltr">_______________________________________________</div>
25 <div dir="ltr">test mailing list</div>
26 <div dir="ltr">
27 <a href="mailto:test@lists.kde.org">test@lists.kde.org</a>
28 </div>
29 <div dir="ltr">
30 <a href="http://kde.org">http://kde.org</a>
31 </div>
32 </div>
33 </div>
34 </div>
35 </body>
36</html>
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox.tree b/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox.tree
new file mode 100644
index 00000000..018f5c33
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted-appendix.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox b/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox
new file mode 100644
index 00000000..529b4d3b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox
@@ -0,0 +1,55 @@
1From test@kolab.org Wed, 25 May 2011 23:49:40 +0100
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: inlinepgpencrypted - no seckey
5Date: Wed, 25 May 2011 23:49:40 +0100
6Message-ID: <1786696.yKXrOjjflF@herrwackelpudding.localhost>
7X-KMail-Transport: GMX
8X-KMail-Fcc: 28
9X-KMail-Drafts: 7
10X-KMail-Templates: 9
11User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
12MIME-Version: 1.0
13Content-Transfer-Encoding: 7Bit
14Content-Type: text/plain; charset="us-ascii"
15
16-----BEGIN PGP MESSAGE-----
17Version: GnuPG v2
18
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
533Qu241eOBdb6
54=J3lb
55-----END PGP MESSAGE-----
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox.html b/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox.html
new file mode 100644
index 00000000..a4427e01
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message (decryption not possible)<br/>Reason: Crypto plug-in "OpenPGP" could not decrypt the data.<br/>Error: Decryption failed</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;">No secret key found to encrypt the message. It is encrypted for following keys:<br/><a href="kmail:showCertificate#gpg ### OpenPGP ### 553D4262DA4BADF2">0x553D4262DA4BADF2</a><br/><a href="kmail:showCertificate#gpg ### OpenPGP ### F6E6A3D126C630E0">0xF6E6A3D126C630E0</a></div>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox.tree b/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox.tree
new file mode 100644
index 00000000..6680b8bc
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted-error.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox b/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox
new file mode 100644
index 00000000..b581602c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox
@@ -0,0 +1,29 @@
1From test@kolab.org Wed, 25 May 2011 23:49:40 +0100
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: inlinepgpencrypted
5Date: Wed, 25 May 2011 23:49:40 +0100
6Message-ID: <1786696.yKXrOjjflF@herrwackelpudding.localhost>
7X-KMail-Transport: GMX
8X-KMail-Fcc: 28
9X-KMail-Drafts: 7
10X-KMail-Templates: 9
11User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
12MIME-Version: 1.0
13Content-Transfer-Encoding: 7Bit
14Content-Type: text/plain; charset="us-ascii"
15
16-----BEGIN PGP MESSAGE-----
17Version: GnuPG v2.0.15 (GNU/Linux)
18
19hQEMAwzOQ1qnzNo7AQf/a3aNTLpQBfcUr+4AKsZQLj4h6z7e7a5AaCW8AG0wrbxN
20kBYB7E5jdZh45DX/99gvoZslthWryUCX2kKZ3LtIllxKVjqNuK5hSt+SAuKkwiMR
21Xcbf1KFKENKupgGSO9B2NJRbjoExdJ+fC3mGXnO3dT7xJJAo3oLE8Nivu+Bj1peY
22E1wCf+vcTwVHFrA7SV8eMRb9Z9wBXmU8Q8e9ekJ7ZsRX3tMeBs6jvscVvfMf6DYY
23N14snZBZuGNKT9a3DPny7IC1S0lHcaam34ogWwMi3FxPGJt/Lg52kARlkF5TDhcP
24N6H0EB/iqDRjOOUoEVm8um5XOSR1FpEiAdD0DON3y9JPATnrYq7sgYZz3BVImYY+
25N/jV8fEiN0a34pcOq8NQedMuOsJHNBS5MtbQH/kJLq0MXBpXekGlHo4MKw0trISc
26Rw3pW6/BFfhPJLni29g9tw==
27=fRFW
28-----END PGP MESSAGE-----
29
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.html b/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.html
new file mode 100644
index 00000000..1f695bdf
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.html
@@ -0,0 +1,26 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div class="noquote">
15 <div dir="ltr">some random text</div>
16 </div>
17 </td>
18 </tr>
19 <tr class="encrH">
20 <td dir="ltr">End of encrypted message</td>
21 </tr>
22 </table>
23 </div>
24 </div>
25 </body>
26</html>
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.inProgress.html b/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.inProgress.html
new file mode 100644
index 00000000..e5eb55d0
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.inProgress.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Please wait while the message is being decrypted...</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;"/>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.tree b/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.tree
new file mode 100644
index 00000000..6680b8bc
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpencrypted.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
diff --git a/framework/src/domain/mime/testdata/inlinepgpgencrypted-error.mbox b/framework/src/domain/mime/testdata/inlinepgpgencrypted-error.mbox
new file mode 100644
index 00000000..529b4d3b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/inlinepgpgencrypted-error.mbox
@@ -0,0 +1,55 @@
1From test@kolab.org Wed, 25 May 2011 23:49:40 +0100
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: inlinepgpencrypted - no seckey
5Date: Wed, 25 May 2011 23:49:40 +0100
6Message-ID: <1786696.yKXrOjjflF@herrwackelpudding.localhost>
7X-KMail-Transport: GMX
8X-KMail-Fcc: 28
9X-KMail-Drafts: 7
10X-KMail-Templates: 9
11User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
12MIME-Version: 1.0
13Content-Transfer-Encoding: 7Bit
14Content-Type: text/plain; charset="us-ascii"
15
16-----BEGIN PGP MESSAGE-----
17Version: GnuPG v2
18
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
533Qu241eOBdb6
54=J3lb
55-----END PGP MESSAGE-----
diff --git a/framework/src/domain/mime/testdata/mailheader.css b/framework/src/domain/mime/testdata/mailheader.css
new file mode 100644
index 00000000..10181957
--- /dev/null
+++ b/framework/src/domain/mime/testdata/mailheader.css
@@ -0,0 +1,512 @@
1div.header {
2 margin-bottom: 10pt ! important;
3}
4
5table.textAtm {
6 margin-top: 10pt ! important;
7 margin-bottom: 10pt ! important;
8}
9
10tr.textAtmH,
11tr.textAtmB,
12tr.rfc822B {
13 font-weight: normal ! important;
14}
15
16tr.signInProgressH,
17tr.rfc822H,
18tr.encrH,
19tr.signOkKeyOkH,
20tr.signOkKeyBadH,
21tr.signWarnH,
22tr.signErrH {
23 font-weight: bold ! important;
24}
25
26tr.textAtmH td,
27tr.textAtmB td {
28 padding: 3px ! important;
29}
30
31table.rfc822 {
32 width: 100% ! important;
33 border: solid 1px black ! important;
34 margin-top: 10pt ! important;
35 margin-bottom: 10pt ! important;
36}
37
38table.textAtm,
39table.encr,
40table.signWarn,
41table.signErr,
42table.signOkKeyBad,
43table.signOkKeyOk,
44table.signInProgress,
45div.fancy.header table {
46 width: 100% ! important;
47 border-width: 0px ! important;
48 line-height: normal;
49}
50
51div.htmlWarn {
52 margin: 0px 5% ! important;
53 padding: 10px ! important;
54 text-align: left ! important;
55 line-height: normal;
56}
57
58div.fancy.header > div {
59 font-weight: bold ! important;
60 padding: 4px ! important;
61 line-height: normal;
62}
63
64div.fancy.header table {
65 padding: 2px ! important;
66 text-align: left ! important;
67 border-collapse: separate ! important;
68}
69
70div.fancy.header table th {
71 font-family: "Sans Serif" ! important;
72 font-size: 0px ! important;
73
74 padding: 0px ! important;
75 white-space: nowrap ! important;
76 border-spacing: 0px ! important;
77 text-align: left ! important;
78 vertical-align: top ! important;
79 background-color: #d6d2d0 ! important;
80 color: #221f1e ! important;
81 border: 1px ! important;
82}
83
84div.fancy.header table td {
85 font-family: "Sans Serif" ! important;
86 font-size: 0px ! important;
87
88 padding: 0px ! important;
89 border-spacing: 0px ! important;
90 text-align: left ! important;
91 vertical-align: top ! important;
92 width: 100% ! important;
93 background-color: #d6d2d0 ! important;
94 color: #221f1e ! important;
95 border: 1px ! important;
96}
97
98div.fancy.header table a:hover {
99 background-color: transparent ! important;
100}
101
102span.pimsmileytext {
103 position: absolute;
104 top: 0px;
105 left: 0px;
106 visibility: hidden;
107}
108
109img.pimsmileyimg {
110}
111
112div.quotelevelmark {
113 position: absolute;
114 margin-left:-10px;
115}
116
117@media screen {
118
119body {
120 font-family: "Sans Serif" ! important;
121 font-size: 0px ! important;
122 color: #1f1c1b ! important;
123 background-color: #ffffff ! important;
124}
125
126a {
127 color: #0057ae ! important;
128 text-decoration: none ! important;
129}
130
131a.white {
132 color: white ! important;
133}
134
135a.black {
136 color: black ! important;
137}
138
139table.textAtm { background-color: #1f1c1b ! important; }
140
141tr.textAtmH {
142 background-color: #ffffff ! important;
143 font-family: "Sans Serif" ! important;
144 font-size: 0px ! important;
145}
146
147tr.textAtmB {
148 background-color: #ffffff ! important;
149}
150
151table.signInProgress,
152table.rfc822 {
153 background-color: #ffffff ! important;
154}
155
156tr.signInProgressH,
157tr.rfc822H {
158 font-family: "Sans Serif" ! important;
159 font-size: 0px ! important;
160}
161
162table.encr {
163 background-color: #0069cc ! important;
164}
165
166tr.encrH {
167 background-color: #0080ff ! important;
168 color: #ffffff ! important;
169 font-family: "Sans Serif" ! important;
170 font-size: 0px ! important;
171}
172
173tr.encrB { background-color: #e0f0ff ! important; }
174
175table.signOkKeyOk {
176 background-color: #33cc33 ! important;
177}
178
179tr.signOkKeyOkH {
180 background-color: #40ff40 ! important;
181 color: #27ae60 ! important;
182 font-family: "Sans Serif" ! important;
183 font-size: 0px ! important;
184}
185
186tr.signOkKeyOkB { background-color: #e8ffe8 ! important; }
187
188table.signOkKeyBad {
189 background-color: #cccc33 ! important;
190}
191
192tr.signOkKeyBadH {
193 background-color: #ffff40 ! important;
194 color: #f67400 ! important;
195 font-family: "Sans Serif" ! important;
196 font-size: 0px ! important;
197}
198
199tr.signOkKeyBadB { background-color: #ffffe8 ! important; }
200
201table.signWarn {
202 background-color: #cccc33 ! important;
203}
204
205tr.signWarnH {
206 background-color: #ffff40 ! important;
207 color: #f67400 ! important;
208 font-family: "Sans Serif" ! important;
209 font-size: 0px ! important;
210}
211
212tr.signWarnB { background-color: #ffffe8 ! important; }
213
214table.signErr {
215 background-color: #cc0000 ! important;
216}
217
218tr.signErrH {
219 background-color: #ff0000 ! important;
220 color: #da4453 ! important;
221 font-family: "Sans Serif" ! important;
222 font-size: 0px ! important;
223}
224
225tr.signErrB { background-color: #ffe0e0 ! important; }
226
227div.htmlWarn {
228 border: 2px solid #ff4040 ! important;
229 line-height: normal;
230}
231
232div.header {
233 font-family: "Sans Serif" ! important;
234 font-size: 0px ! important;
235}
236
237div.fancy.header > div {
238 background-color: #43ace8 ! important;
239 color: #ffffff ! important;
240 border: solid #221f1e 1px ! important;
241 line-height: normal;
242}
243
244div.fancy.header > div a[href] { color: #ffffff ! important; }
245
246div.fancy.header > div a[href]:hover { text-decoration: underline ! important; }
247
248div.fancy.header > div.spamheader {
249 background-color: #cdcdcd ! important;
250 border-top: 0px ! important;
251 padding: 3px ! important;
252 color: black ! important;
253 font-weight: bold ! important;
254 font-size: smaller ! important;
255}
256
257div.fancy.header > table.outer {
258 background-color: #d6d2d0 ! important;
259 color: #221f1e ! important;
260 border-bottom: solid #221f1e 1px ! important;
261 border-left: solid #221f1e 1px ! important;
262 border-right: solid #221f1e 1px ! important;
263}
264
265div.senderpic{
266 padding: 0px ! important;
267 font-size:0.8em ! important;
268 border:1px solid #b3aba7 ! important;
269 background-color:#d6d2d0 ! important;
270}
271
272div.senderstatus{
273 text-align:center ! important;
274}
275
276div.quotelevel1 {
277 color: #008000 ! important;
278 font-style: italic ! important;
279}
280
281div.quotelevel2 {
282 color: #007000 ! important;
283 font-style: italic ! important;
284}
285
286div.quotelevel3 {
287 color: #006000 ! important;
288 font-style: italic ! important;
289}
290
291div.deepquotelevel1 {
292 color: #008000 ! important;
293 font-style: italic ! important;
294}
295
296div.deepquotelevel2 {
297 color: #007000 ! important;
298 font-style: italic ! important;
299}
300
301div.deepquotelevel3 {
302 color: #006000 ! important;
303 font-style: italic ! important;
304}
305
306blockquote {
307 margin: 4pt 0 4pt 0;
308 padding: 0 0 0 1em;
309 border-left: 2px solid #008000;
310 unicode-bidi: -webkit-plaintext
311}
312
313blockquote blockquote {
314 margin: 4pt 0 4pt 0;
315 padding: 0 0 0 1em;
316 border-left: 2px solid #007000;
317 unicode-bidi: -webkit-plaintext
318}
319
320blockquote blockquote blockquote {
321 margin: 4pt 0 4pt 0;
322 padding: 0 0 0 1em;
323 border-left: 2px solid #006000;
324 unicode-bidi: -webkit-plaintext
325}
326
327blockquote blockquote blockquote blockquote {
328 margin: 4pt 0 4pt 0;
329 padding: 0 0 0 1em;
330 border-left: 2px solid #008000;
331 unicode-bidi: -webkit-plaintext
332}
333
334blockquote blockquote blockquote blockquote blockquote {
335 margin: 4pt 0 4pt 0;
336 padding: 0 0 0 1em;
337 border-left: 2px solid #007000;
338 unicode-bidi: -webkit-plaintext
339}
340
341blockquote blockquote blockquote blockquote blockquote blockquote {
342 margin: 4pt 0 4pt 0;
343 padding: 0 0 0 1em;
344 border-left: 2px solid #006000;
345 unicode-bidi: -webkit-plaintext
346}
347
348blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
349 margin: 4pt 0 4pt 0;
350 padding: 0 0 0 1em;
351 border-left: 2px solid #008000;
352 unicode-bidi: -webkit-plaintext
353}
354
355blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
356 margin: 4pt 0 4pt 0;
357 padding: 0 0 0 1em;
358 border-left: 2px solid #007000;
359 unicode-bidi: -webkit-plaintext
360}
361
362blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
363 margin: 4pt 0 4pt 0;
364 padding: 0 0 0 1em;
365 border-left: 2px solid #006000;
366 unicode-bidi: -webkit-plaintext
367}
368
369.quotemarks{
370 color:transparent;
371 font-size:0px;
372}
373
374}
375@media print {
376
377body {
378 font-family: "Sans Serif" ! important;
379 font-size: 9pt ! important;
380 color: #000000 ! important;
381 background-color: #ffffff ! important
382}
383
384tr.textAtmH,
385tr.signInProgressH,
386tr.rfc822H,
387tr.encrH,
388tr.signOkKeyOkH,
389tr.signOkKeyBadH,
390tr.signWarnH,
391tr.signErrH,
392div.header {
393 font-family: "Sans Serif" ! important;
394 font-size: 9pt ! important;
395}
396
397div.fancy.header > div {
398 background-color: #d6d2d0 ! important;
399 color: #221f1e ! important;
400 padding: 4px ! important;
401 border: solid #221f1e 1px ! important;
402 line-height: normal;
403}
404
405div.fancy.header > div a[href] { color: #221f1e ! important; }
406
407div.fancy.header > table.outer{
408 background-color: #d6d2d0 ! important;
409 color: #221f1e ! important;
410 border-bottom: solid #221f1e 1px ! important;
411 border-left: solid #221f1e 1px ! important;
412 border-right: solid #221f1e 1px ! important;
413}
414
415div.spamheader {
416 display:none ! important;
417}
418
419div.htmlWarn {
420 border: 2px solid #ffffff ! important;
421 line-height: normal;
422}
423
424div.senderpic{
425 font-size:0.8em ! important;
426 border:1px solid black ! important;
427 background-color:#d6d2d0 ! important;
428}
429
430div.senderstatus{
431 text-align:center ! important;
432}
433
434div.noprint {
435 display:none ! important;
436}
437
438blockquote {
439 margin: 4pt 0 4pt 0;
440 padding: 0 0 0 1em;
441 border-left: 2px solid #008000;
442 unicode-bidi: -webkit-plaintext
443}
444
445blockquote blockquote {
446 margin: 4pt 0 4pt 0;
447 padding: 0 0 0 1em;
448 border-left: 2px solid #007000;
449 unicode-bidi: -webkit-plaintext
450}
451
452blockquote blockquote blockquote {
453 margin: 4pt 0 4pt 0;
454 padding: 0 0 0 1em;
455 border-left: 2px solid #006000;
456 unicode-bidi: -webkit-plaintext
457}
458
459blockquote blockquote blockquote blockquote {
460 margin: 4pt 0 4pt 0;
461 padding: 0 0 0 1em;
462 border-left: 2px solid #008000;
463 unicode-bidi: -webkit-plaintext
464}
465
466blockquote blockquote blockquote blockquote blockquote {
467 margin: 4pt 0 4pt 0;
468 padding: 0 0 0 1em;
469 border-left: 2px solid #007000;
470 unicode-bidi: -webkit-plaintext
471}
472
473blockquote blockquote blockquote blockquote blockquote blockquote {
474 margin: 4pt 0 4pt 0;
475 padding: 0 0 0 1em;
476 border-left: 2px solid #006000;
477 unicode-bidi: -webkit-plaintext
478}
479
480blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
481 margin: 4pt 0 4pt 0;
482 padding: 0 0 0 1em;
483 border-left: 2px solid #008000;
484 unicode-bidi: -webkit-plaintext
485}
486
487blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
488 margin: 4pt 0 4pt 0;
489 padding: 0 0 0 1em;
490 border-left: 2px solid #007000;
491 unicode-bidi: -webkit-plaintext
492}
493
494blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
495 margin: 4pt 0 4pt 0;
496 padding: 0 0 0 1em;
497 border-left: 2px solid #006000;
498 unicode-bidi: -webkit-plaintext
499}
500
501.quotemarks{
502 color:transparent;
503 font-size:0px;
504}
505
506.quotemarksemptyline{
507 color:transparent;
508 font-size:0px;
509 line-height: 12pt;
510}
511
512}
diff --git a/framework/src/domain/mime/testdata/no-content-type.mbox b/framework/src/domain/mime/testdata/no-content-type.mbox
new file mode 100644
index 00000000..ad050d8c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/no-content-type.mbox
@@ -0,0 +1,7 @@
1From: hans@example.com
2To: karl@example.com
3Subject: Simple Mail Without Content-Type Header
4Date: Sat, 15 May 2010 10:52:24 +0200
5MIME-Version: 1.0
6
7asdfasdf \ No newline at end of file
diff --git a/framework/src/domain/mime/testdata/no-content-type.mbox.html b/framework/src/domain/mime/testdata/no-content-type.mbox.html
new file mode 100644
index 00000000..9e3eb752
--- /dev/null
+++ b/framework/src/domain/mime/testdata/no-content-type.mbox.html
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <div class="noquote">
9 <div dir="ltr">asdfasdf</div>
10 </div>
11 </div>
12 </div>
13 </body>
14</html>
diff --git a/framework/src/domain/mime/testdata/no-content-type.mbox.tree b/framework/src/domain/mime/testdata/no-content-type.mbox.tree
new file mode 100644
index 00000000..c003ec97
--- /dev/null
+++ b/framework/src/domain/mime/testdata/no-content-type.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encoded.mbox b/framework/src/domain/mime/testdata/openpgp-encoded.mbox
new file mode 100644
index 00000000..168c8dc4
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encoded.mbox
@@ -0,0 +1,33 @@
1Content-Type: text/plain; charset="us-ascii"
2Content-Transfer-Encoding: 7bit
3
4-----BEGIN PGP MESSAGE-----
5Version: GnuPG v2
6
7owGdk31MlVUcx5G3jClvI1JH7GiOil0uYJATBW8FK6HkDtBJI93heQ6Xk8/L9Tnn
8XExALDfJQaJutl4UzUoCIxDwos0XTLktqJaJkJE5QAU3yMKpkRqdc+GC/dsfz/bs
9ec7v+/v+Pr/v2TnbxytgxvUt8T99cCirZEa9zw/5fopuIHX1xsjjr4gXgO2EqUDW
10+WdAMAVQRdQEJF0jSKKIMgNAGdsxkbBmA0jB1AxSdQ1JAAIZQxUo/BgjZpCN5Kn6
11SVEVMgPzX69CJCENEqFqYwgo2MYUCKAENjCu4MAOZBgQCNH/9NUoAoVIkw1kTLfl
126qquKJhMeDYDqwERQRoVf9yOkI2/KTgfGbp4J5R3ViGlvGTKoANTiABk3I4ZrORF
13FGsSlhmXmTSJNKyaAKPArhsUAjc1oECOAcOHbXp8samehJOAhsSAAxViSUzKFGpg
14CSPCoWm6BiiXFNb/9waeRxqCmuhpM6ADy5P+zGAVBbyAHwYF/CQxATtTHFiDXIP7
15Uu3IEPZMDytieYokUhQOEpENTLCRuEegYYLFERXatMm5+dIoINCGBVIzeJEZMB8L
16mzK043xG3OimUQvHwF4IDUT5kqc5FyBmw1yJd1AAFtZkjKh7BN7GAd07nkSK+ayG
175gEpOEoSUwnUPPQFc13GfOGGTjwfPcFSMQ8aF3OnbRoIDxJUEGGQ43PvyyjUNYm5
18R+L+dQnzGg1SXeCw8wDTiemoG4YIIH/s0OCjY5E/VRfsTLyESO61GVgW++c1qlBd
19oQGDUYNre9xPB0NcEnFZJoPppi4o83gU8MxxFCK9Ewvk94bz4Lk2B2z3jvD1mhHg
205e/nLW60V8CjwZ7LTpKCxjNIzhNRXcER/6RVXUzaGdocqGY3vd+5LO7+qSV3pdFP
21+s6tv3Jp8EZg+V9qza9zKhf4b3xn4MfVSYOW+qaihPsHrc3O5hpzXCV77sROqxWw
22vbfaOrpClvTszr8+8pVc/ELc0aeOm+856kqfDYNZmUXt33+Y1nLT4nvH0tomz47f
23tfzP+dlpQW8vRj3v+qcXyXpef3Hvldy2gfECZ3LMGdMomlsR8fQm42zMcLh3eW1N
24Xszwqt5dLXimuVk6vb+/etNN8xgeuhoWeb79myzXg9jUv11xbQ8OR9/wnXP7QGzj
25kWN+v+RpX58qa2dbTr2VeMn/aPJrOZ3ZYS0dW7s6dhcu/3lzT1DdhS8zGgIrynIH
26tjkf21tmXtZ8pOjj/a7xsahsEGKxLG4h+St9Oj9ace1kn1+vdWl06+nEvhPlOWnh
275OVrw1nzTv6+pjo3K9Vr3YFZeZmu6K1jA2OW7M96Bs85ChL23ck95Cx5/bfuHeX3
28wktCXYN1/fvWpxxIfyk2/pm0N4bCRyrfS8z13VPNMr6rckbuP1YS2rp0z27X/FEy
29FPHm4OHHv7iXsuaPg5dpg6XWN9B/SG/81Bq8tv5WwMjFRVUZId6Rn+sL68uudls3
30z+vMvLwwrdw5t+Pb5ISuppDUVkvmme4nTahhwYX7setmpdxt29ZeO5MFPFK6Pep2
31+nlHdfFa78ZFpSMV/Q1n/wU=
32=zzr4
33-----END PGP MESSAGE-----
diff --git a/framework/src/domain/mime/testdata/openpgp-encoded.mbox.html b/framework/src/domain/mime/testdata/openpgp-encoded.mbox.html
new file mode 100644
index 00000000..585bb4f0
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encoded.mbox.html
@@ -0,0 +1,35 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <div class="noquote">
24 <div dir="ltr">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.</div>
25 </div>
26 </td>
27 </tr>
28 <tr class="signWarnH">
29 <td dir="ltr">End of signed message</td>
30 </tr>
31 </table>
32 </div>
33 </div>
34 </body>
35</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encoded.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encoded.mbox.tree
new file mode 100644
index 00000000..ea8223fd
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encoded.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox
new file mode 100644
index 00000000..fbe5ce7f
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox
@@ -0,0 +1,46 @@
1From test@kolab.org Wed, 08 Sep 2010 17:02:52 +0200
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: OpenPGP encrypted
5Date: Wed, 08 Sep 2010 17:02:52 +0200
6User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
7MIME-Version: 1.0
8Content-Type: multipart/encrypted; boundary="nextPart1357031.ppLHckZtsp"; protocol="application/pgp-encrypted"
9Content-Transfer-Encoding: 7Bit
10
11
12--nextPart1357031.ppLHckZtsp
13Content-Type: application/pgp-encrypted
14Content-Disposition: attachment
15
16Version: 1
17--nextPart1357031.ppLHckZtsp
18Content-Type: application/octet-stream
19Content-Disposition: inline; filename="msg.asc"
20
21-----BEGIN PGP MESSAGE-----
22Version: GnuPG v2
23
24hQEMAwzOQ1qnzNo7AQgAkQI925mOOybpzcGcjUE7jmfMVoUvJW6Br9Zx9UEtko5H
25fdmnrrUhFDyhBdwcg2E6AChipNcJjZhdX17lNAO0kI2IoPJAEkX9lyhjoiVEH/M8
26xmJEKFRejYzefx0S8esKyqqtfAmMKfsA5HmKRY8iDmQnI5d/FKhkcqLTJYo7fQyL
27rEEycdr5PU5OJbMtE5+8+kbmG8PywjiCCad68FXakXIEFyWX1A99W/0ScWtqrqDB
28kuQSdxJs4aAZWopxGKxDobt/qVyG6W6+PUnLx3eg80KytcWNxLJRV7WEJMj4OYCU
29JdHrh4J1DTTRbuRmqx9de3fBDFHNNZpJP43UJYJWtoSMAxiZbYU0+6KtAQQAnRxD
30XNwzBSmPk9NG3HYf/RleTAS8/fMp3D973Y3VF5JV72ljWqZO/1o/3RIpD0pl5nSE
31nI0wPyncmPvAgQl5EAKTdYonKLuMCTbQ4eT7vkOdfA/HUxgaoE8ppH/OYXDDiqz/
322GlNCCHcaQcVWwkHbWWgyhd/VvB7Mt9PVqPgTsHSwQ4BZf/JDwWe3MDAg21Raryf
33dN4ZmWUzd3osDIRyy8H2hZL9vgZ3r0auIP6DMyYrPf3yTj9ApZeBiIpgBvqMwvR/
348si6r1JaXr48KRCxAkn9fIXe2jMwQE2bk5tYDrTXY868V3DA5iKq1dgXUSn0tzG3
350x9pjaOFkwxm0wtlpwnhZREJ9/ieIY7hy6p7CDpq4ZGRh8jQta4tWrjxN0wly+Dh
36a9TjzHzgTh9BTh7vjcDLitOQFL5NcCQtK717FQ5Z1DRnkHDVLPoyPnW+5sllOVr9
37UcqNXwrPbrtElFjHULL5Y1pem1+AE6nCAtlvCAc7cil6QDsU508sOXW7BhTWATIU
38tGHg/nIC0qVs24LR3MyYrwvfXL2JOkN/IK/g+0bbs6DMYVYaEOjcjqtidxWuLsE5
39aFEwlUFzcTcSauW+AOKwH+YFihRnlh9+4taaZxGZeutb12D5u8eEk+3nyVcsdogY
40k/nT6ElN8i/Z2vgcxL6ABvB+g/bZmp/eCJphDNYc00lP8NMC4EEJvTZL438ThJ3j
41wz0Qo4PlV0/OMXYxP2iZup2/rCe+pkmc9Gyz3Mkal4/9bBtIgP9cWBR7JZLMrK50
42KO4+NtrZYEY4JXRJlAo=
43=1lYB
44-----END PGP MESSAGE-----
45
46--nextPart1357031.ppLHckZtsp--
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox.html
new file mode 100644
index 00000000..54c58b85
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox.html
@@ -0,0 +1,52 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
20 <td align="right">
21 <a href="kmail:showSignatureDetails">Show Details</a>
22 </td>
23 </tr>
24 </table>
25 </td>
26 </tr>
27 <tr class="signOkKeyOkB">
28 <td>
29 <div style="position: relative; word-wrap: break-word">
30 <a name="att"/>
31 <div id="attachmentDiv">
32 <div class="noquote">
33 <div dir="ltr">encrypted message text</div>
34 </div>
35 </div>
36 </div>
37 </td>
38 </tr>
39 <tr class="signOkKeyOkH">
40 <td dir="ltr">End of signed message</td>
41 </tr>
42 </table>
43 </td>
44 </tr>
45 <tr class="encrH">
46 <td dir="ltr">End of encrypted message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </body>
52</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox.tree
new file mode 100644
index 00000000..7d5bbeb7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted+signed.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox
new file mode 100644
index 00000000..f5d083ff
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox
@@ -0,0 +1,52 @@
1Received: from konqi
2From: "Konqui" <konqi@example.org>
3To: "Bird" <bird@example.org>
4Subject: gpg problem 1/2
5Date: Tue, 22 Mar 2016 17:09:18 +0100
6Message-ID: <123456@example.org>
7Accept-Language: de-DE, en-US
8Content-Language: en-US
9Content-Type: multipart/mixed;
10 boundary="_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_"
11MIME-Version: 1.0
12
13
14--_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_
15Content-Type: text/plain; charset="us-ascii"
16
17
18--_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_
19Content-Type: application/pgp-encrypted;
20 name="PGPMIME Versions Identification"
21Content-Description: PGP/MIME Versions Identification
22Content-Disposition: attachment; filename="PGPMIME Versions Identification";
23 size=77; creation-date="Tue, 22 Mar 2016 16:09:18 GMT";
24 modification-date="Tue, 22 Mar 2016 16:09:18 GMT"
25Content-ID: <D82BB3DF89947646AD6C4C24C8C54BAC@example.org>
26Content-Transfer-Encoding: base64
27
28VmVyc2lvbjogMQ0NCg==
29
30--_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_
31Content-Type: application/octet-stream; name="encrypted.asc"
32Content-Description: OpenPGP encrypted message.asc
33Content-Disposition: attachment; filename="encrypted.asc"; size=872;
34 creation-date="Tue, 22 Mar 2016 16:09:18 GMT";
35 modification-date="Tue, 22 Mar 2016 16:09:18 GMT"
36Content-ID: <58A712E65AB1824AB726904A6449178F@example.org>
37Content-Transfer-Encoding: base64
38
39LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tClZlcnNpb246IEdudVBHIHYxCkNvbW1lbnQ6IFVz
40aW5nIEdudVBHIHdpdGggSWNlZG92ZSAtIGh0dHA6Ly93d3cuZW5pZ21haWwubmV0LwoKaEl3REdK
41bHRoVFQ3b3EwQkEvOU50TExYYmlJSlZTNnBPeW53RWVTem5yUUs3a1lWbGE4Uk00My8vSkVDQ2tH
42SgphekVhU0J6bmFiQnY2ZXBhRm1RdFZITE1YbENiWm5NbVc5bG95cVBCZk1vQW1zNmtLS0JkRy9q
43cWh1czg5aVhFCitzZVhuZ0MyMzNWYS9nWk1iMkR4T3FJb2tWTmZqOXRwUjd4UTh3Uy9qSFREaUxO
44YzFHT1FDN2t1NDJ6MmJOTEEKSVFGUkQvcWJCRno4OWhVNHdQNGNZb0F5c09uRURvakZyc3JuQ2lk
45VEhKT0pybmRNNlBQVXRIL2pRQ3lmci9FRwoydFNwSndZS3ZtVDZseTN5cWFHTEJ0UlBJeGl2K2RN
46ZSs3eXcwdDQwcWJqdnZhVEdhdkVyRUJKRUtYNWVXYlROCi9zamFqSHBVSHFzNlNJaU1oZUg5ZHIr
47V2Z6Rk9OdFZiUEVnR1JtT0VSaGxnVGwvbkxvODZBWnBqSnJvSUdLSkoKdFRIQ2NvUUdBV0crTjd3
48ckNFMVJ4UjBra01zNG5Sb3pqMFRMdTZaeVhNcytIMDYzTWV3VFBOeE5BaVFUMU5iaQp1ZEtXbWZM
49Qmx4bjA2cCtKRHpVS3hqOFBGd09iZGJ4VHZBQ3piQXZCWTFhSE1RPT0KPW1MbDMKLS0tLS1FTkQg
50UEdQIE1FU1NBR0UtLS0tLQoK
51
52--_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_--
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox.html
new file mode 100644
index 00000000..ca8d7fbb
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox.html
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1"/>
10 <a name="att2"/>
11 <div id="attachmentDiv2">
12 <table cellspacing="1" cellpadding="1" class="encr">
13 <tr class="encrH">
14 <td dir="ltr">Encrypted message</td>
15 </tr>
16 <tr class="encrB">
17 <td>
18 <div style="position: relative; word-wrap: break-word">
19 <a name="att"/>
20 <div id="attachmentDiv">
21 <a name="att1"/>
22 <div id="attachmentDiv1">
23 <div class="noquote">
24 <div dir="ltr">test</div>
25 </div>
26 </div>
27 </div>
28 </div>
29 </td>
30 </tr>
31 <tr class="encrH">
32 <td dir="ltr">End of encrypted message</td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </body>
39</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox.tree
new file mode 100644
index 00000000..8ef3df2d
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-applemail.mbox.tree
@@ -0,0 +1,7 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::EncryptedMessagePart
5 * MimeTreeParser::MimeMessagePart
6 * MimeTreeParser::TextMessagePart
7 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox
new file mode 100644
index 00000000..2d9726ea
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox
@@ -0,0 +1,115 @@
1From test@kolab.org Fri May 01 15:12:47 2015
2From: testkey <test@kolab.org>
3To: you@you.com
4Subject: enc & non enc attachment
5Date: Fri, 01 May 2015 17:12:47 +0200
6Message-ID: <13897561.XENKdJMSlR@tabin.local>
7X-KMail-Identity: 1197256126
8User-Agent: KMail/4.13.0.1 (Linux/3.19.1-towo.1-siduction-amd64; KDE/4.14.2; x86_64; git-cd33034; 2015-04-11)
9MIME-Version: 1.0
10Content-Type: multipart/mixed; boundary="nextPart1939768.sIoLGH0PD8"
11Content-Transfer-Encoding: 7Bit
12
13This is a multi-part message in MIME format.
14
15--nextPart1939768.sIoLGH0PD8
16Content-Type: multipart/encrypted; boundary="nextPart2814166.CHKktCGlQ3"; protocol="application/pgp-encrypted"
17
18
19--nextPart2814166.CHKktCGlQ3
20Content-Type: application/pgp-encrypted
21Content-Disposition: attachment
22Content-Transfer-Encoding: 7Bit
23
24Version: 1
25--nextPart2814166.CHKktCGlQ3
26Content-Type: application/octet-stream
27Content-Disposition: inline; filename="msg.asc"
28Content-Transfer-Encoding: 7Bit
29
30-----BEGIN PGP MESSAGE-----
31Version: GnuPG v2
32
33hIwDGJlthTT7oq0BA/9cXFQ6mN9Vxnc2B9M10odS3/6z1tsIY9oJdsiOjpfxqapX
34P7nOzR/jNWdFQanXoG1SjAcY2FeZEN0c3SkxEM6R5QVF1vMh/Xsni1clI+peZyVT
35Z4OSU74YCfYLg+cgDnPCF3kyNPVe6Z1pnfWOCZNCG3rpApw6UVLN63ScWC6eQIUB
36DAMMzkNap8zaOwEIANKHn1svvj+hBOIZYf8R+q2Bw7cd4xEChiJ7uQLnD98j0Fh1
3785v7/8JbZx6rEDDenPp1mCciDodb0aCmi0XLuzJz2ANGTVflfq+ZA+v1pwLksWCs
380YcHLEjOJzjr3KKmvu6wqnun5J2yV69K3OW3qTTGhNvcYZulqQ617pPa48+sFCgh
39nM8TMAD0ElVEwmMtrS3AWoJz52Af+R3YzpAnX8NzV317/JG+b6e2ksl3tR7TWp1q
402FOqC1sXAxuv+DIz4GgRfaK1+xYr2ckkg+H/3HJqa5LmJ7rGCyv+Epfp9u+OvdBG
41PBvuCtO3tm0crmnttMw57Gy35BKutRf/8MpBj/nS6QFX0t7XOLeL4Me7/a2H20wz
42HZsuRGDXMCh0lL0FYCBAwdbbYvvy0gz/5iaNvoADtaIu+VtbFNrTUN0SwuL+AIFS
43+WIiaSbFt4Ng3t9YmqL6pqB7fjxI10S+PK0s7ABqe4pgbzUWWt1yzBcxfk8l/47Q
44JrlvcE7HuDOhNOHfZIgUP2Dbeu+pVvHIJbmLsNWpl4s+nHhoxc9HrVhYG/MTZtQ3
45kkUWviegO6mwEZjQvgBxjWib7090sCxkO847b8A93mfQNHnuy2ZEEJ+9xyk7nIWs
464RsiNR8pYc/SMvdocyAvQMH/qSvmn/IFJ+jHhtT8UJlXJ0bHvXTHjHMqBp6fP69z
47Jh1ERadWQdMaTkzQ+asl+kl/x3p6RZP8MEVbZIl/3pcV+xiFCYcFu2TETKMtbW+b
48NYOlrltFxFDvyu3WeNNp0g9k0nFpD/T1OXHRBRcbUDWE4QF6NWTm6NO9wy2UYHCi
497QTSecBWgMaw7cUdwvnW6chIVoov1pm69BI9D0PoV76zCI7KzpiDsTFxdilKwbQf
50K/PDnv9Adx3ERh0/F8llBHrj2UGsRs4aHSEBDBJIHDCp8+lqtsRcINQBKEU3qIjt
51wf5vizdaVIgQnsD2z8QmBQ7QCCipI0ur6GKl+YWDDOSDLDUs9dK4A6xo/4Q0bsnI
52rH63ti5HslGq6uArfFkewH2MWff/8Li3uGEqzpK5NhP5UpbArelK+QaQQP5SdsmW
53XFwUqDS4QTCKNJXw/5SQMl8UE10l2Xaav3TkiOYTcBcvPNDovYgnMyRff/tTeFa8
5483STkvpGtkULkCntp22fydv5rg6DZ7eJrYfC2oZXdM87hHhUALUO6Y/VtVmNdNYw
55F3Uim4PDuLIKt+mFqRtFqnWm+5X/AslC31qLkjH+Fbb83TY+mC9gbIn7CZGJRCjn
56zzzMX2h15V/VHzNUgx9V/h28T0/z25FxoozZiJxpmhOtqoxMHp+y6nXXfMoIAD1D
57963Pc7u1HS0ny54A7bqc6KKd4W9IF7HkXn3SoBwCyn0IOPoKQTDD8mW3lbBI6+h9
58vP+MAQpfD8s+3VZ9r7OKYCVmUv47ViTRlf428Co6WT7rTHjGM09tqz826fTOXA==
59=6Eu9
60-----END PGP MESSAGE-----
61
62--nextPart2814166.CHKktCGlQ3--
63
64--nextPart1939768.sIoLGH0PD8
65Content-Disposition: attachment; filename="image.png"
66Content-Transfer-Encoding: base64
67Content-Type: image/png; name="image.png"
68
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
112o/0d59+Lh3Y1HHcAAAAASUVORK5CYII=
113
114--nextPart1939768.sIoLGH0PD8--
115
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..092a3440
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,77 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 <a name="att1.2"/>
43 <div id="attachmentDiv1.2">
44 <hr/>
45 <div>
46 <a href="attachment:1:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>file.txt</a>
47 </div>
48 <div/>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="signOkKeyOkH">
54 <td dir="ltr">End of signed message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </td>
60 </tr>
61 <tr class="encrH">
62 <td dir="ltr">End of encrypted message</td>
63 </tr>
64 </table>
65 </div>
66 <a name="att2"/>
67 <div id="attachmentDiv2">
68 <hr/>
69 <div>
70 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
71 </div>
72 <div/>
73 </div>
74 </div>
75 </div>
76 </body>
77</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.tree
new file mode 100644
index 00000000..473f0b10
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.tree
@@ -0,0 +1,11 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
5 * MimeTreeParser::MimeMessagePart
6 * MimeTreeParser::TextMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
10 * MimeTreeParser::AttachmentMessagePart
11 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox
new file mode 100644
index 00000000..4204fb0b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox
@@ -0,0 +1,57 @@
1From test@kolab.org Fri May 01 15:13:18 2015
2From: testkey <test@kolab.org>
3To: you@you.com
4Subject: enc attachment
5Date: Fri, 01 May 2015 17:13:18 +0200
6Message-ID: <2401407.XhOc2XYoOt@tabin.local>
7X-KMail-Identity: 1197256126
8User-Agent: KMail/4.13.0.1 (Linux/3.19.1-towo.1-siduction-amd64; KDE/4.14.2; x86_64; git-cd33034; 2015-04-11)
9MIME-Version: 1.0
10Content-Type: multipart/encrypted; boundary="nextPart4793536.cjk9hKXLQ5"; protocol="application/pgp-encrypted"
11
12
13--nextPart4793536.cjk9hKXLQ5
14Content-Type: application/pgp-encrypted
15Content-Disposition: attachment
16Content-Transfer-Encoding: 7Bit
17
18Version: 1
19--nextPart4793536.cjk9hKXLQ5
20Content-Type: application/octet-stream
21Content-Disposition: inline; filename="msg.asc"
22Content-Transfer-Encoding: 7Bit
23
24-----BEGIN PGP MESSAGE-----
25Version: GnuPG v2
26
27hIwDGJlthTT7oq0BBACLMnR5Mln6JGCccvqZCgM3qUkFWZ7a33b7Nl2g5lSOLX6q
28dlGOr/0jAuqdkRwCDTom3hsrH2vf1kARTSST+5cewngS2CgBTAwwc8JymEagTkKf
29VK/tTnM6G7puMVkwuafpuRggyJAUYvjktgUKOUaXtuxX71g0NagAFQGqlvGuq4UB
30DAMMzkNap8zaOwEH+wWSs5xdV1x37T11EnUvkhoOMu+uId2U7NEx2JdQ/FGJZdti
31mtqfM9GKTtQlGVcn3ISH7Wmrw3x0bsOLuW7oxkU4xIS3tVvibxaaWdmponN5TUai
32Dr4LCTEmG7+jLNopF6V4zPmpQ9YxMwQOm8ITml+auNOg9EtHxavwr3Xd1hOYA92N
331bkOiHzmb9hQtUy1GfRRk91tRqtRPoaamczLxWV9yROFDRNuSSbZ8oBU/K4YgSTL
34D+/FhCt6MxV0DQzp+UCSL7ZsMx+ldPnZK44Udd17+U3xQDDUffo6cSg6FAF425Rh
35v3ZQP0j7LtSIwDh2Rxc+Is4DuSmfZksL5nLPH5nS6QGJnsVEqVcZgQPktl1Zaeil
36x/6WaWruuJm92G2fd9x2/giTLZnk918BVi/n00xR/n4bnSQmmFhXVqAVjGlG6Tr9
37dxej8dSiFdxO8ZjFe5tguQw76xlCu/9MxmSXTP7Mfvm4jqdcjUOINwHOzR/h2T62
38ZlrmqoxMHm4RN0PQ334tSzQXD4gcoUHL+xq62ATt7/jx0p0pIXPmPVUFopCk8k1E
39m2ErPLnyfGLd4LNZRL03oP0jCjX6Q/LFWLTjCIdU6+aM6nT26CZy98yZV0SRGyhu
40qYxN0aVW+RatmDRWWtouOJllQouQ7ZaqmjHLgyOj32/oT8cYUWWdFswSsnMhJjxb
41r6iajUeAZgiN+zqwgf6j1Z8/mMvb+yirP+Rn9ME1fq3XSYHlnIOxKNBa+St8DdaP
42/ZvrkwNTpVp1GmaZLBXdqdeLmflJ4U/X7wphZGR3sgjOwj0oYotX1Zb8OrtlP5WC
43VXhhrt40e7Ilt2B0x7Xe9DWKByDCqrQUhwxwTS3miiKH9G1VEcHko70O98RjKJQ3
44I4VW6e/Gqv2zAMiiOu1MBTeGfPQItca4bUrVzhKjm27twtZD4wLSQDTQECxrCWHC
45BFAdzvsIry0FIXoO6Vh16Hojq+YZ8tpmknGfpg0pnuRvAdDWU+0uuECXDE0UZFWC
462g3Bs2Dn2BYYyrI6X92swHz8qP3JvdxN0dpsYMkMdHN4yWXJogNSfXzy2udf0A4P
47NNZMOonhlwH+DBRfcWS0A/j0/fdDCDzR5Ca5dbX7lL4EscbBeoCP1JJyVoOp6DUc
48ICuHJGGrnpNdG9DMa97tqpyGRHTAwI3lJXPKTDEHN9v9XobIyndFgi/tcPLZ7QWz
499mN94NKLmeYWjrMiRbNQk8BYXR9K17SHb4BkIMdBxRsJjgMEC8qniUH64Nnf8/x4
50yaRCuUo0bkHDE3AqCzZE1R0he66dDkfOIz+mLwcpG8jZWjFm7sXAflBe3jvIc0lm
51NyWQ1WnMkP83fWm/+YqrLLf+tTQtievRPeS1Dd/7v9yqUWEmQ0pUOj3MNf9Ej2KI
52vu5ap7fHIevcBn42BPwQgSnp4YmXEY0ir5Ccwogusnt7QliNSRmkN6Jap4AF
53=AVJ4
54-----END PGP MESSAGE-----
55
56--nextPart4793536.cjk9hKXLQ5--
57
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..2b266b02
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,66 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">test text</div>
38 </div>
39 </div>
40 <a name="att1.2"/>
41 <div id="attachmentDiv1.2">
42 <hr/>
43 <div>
44 <a href="attachment:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>file.txt</a>
45 </div>
46 <div/>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="signOkKeyOkH">
52 <td dir="ltr">End of signed message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </td>
58 </tr>
59 <tr class="encrH">
60 <td dir="ltr">End of encrypted message</td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </body>
66</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox.tree
new file mode 100644
index 00000000..f433fd45
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-attachment.mbox.tree
@@ -0,0 +1,8 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::MimeMessagePart
5 * MimeTreeParser::TextMessagePart
6 * MimeTreeParser::MessagePart
7 * MimeTreeParser::AttachmentMessagePart
8 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox
new file mode 100644
index 00000000..9afd17e3
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox
@@ -0,0 +1,48 @@
1From you@you.com Sat, 29 Mar 2014 15:04:21 +0100
2FCC: imap://hefee%40netzguerilla.net@mail.netzguerilla.net/Sent
3X-Identity-Key: id1
4X-Account-Key: account4
5Message-ID: <5336D2E5.6010602@you.com>
6Date: Sat, 29 Mar 2014 15:04:21 +0100
7From: you <you@you.com>
8X-Mozilla-Draft-Info: internal/draft; vcard=0; receipt=0; DSN=0; uuencode=0
9User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.4.0
10MIME-Version: 1.0
11To: test@kolab.com
12Subject: test
13X-Enigmail-Version: 1.6
14X-Enigmail-Draft-Status: 515
15X-Enigmail-Draft-Status: 739
16Content-Type: multipart/encrypted;
17 protocol="application/pgp-encrypted";
18 boundary="23VWJ4jAoB40SD17lh6TOBXK3fQSEGNu5"
19
20This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)
21--23VWJ4jAoB40SD17lh6TOBXK3fQSEGNu5
22Content-Type: application/pgp-encrypted
23Content-Description: PGP/MIME version identification
24
25Version: 1
26
27--23VWJ4jAoB40SD17lh6TOBXK3fQSEGNu5
28Content-Type: application/octet-stream; name="encrypted.asc"
29Content-Description: OpenPGP encrypted message
30Content-Disposition: inline; filename="encrypted.asc"
31
32-----BEGIN PGP MESSAGE-----
33Version: GnuPG v1
34Comment: Using GnuPG with Icedove - http://www.enigmail.net/
35
36hIwDGJlthTT7oq0BA/9NtLLXbiIJVS6pOynwEeSznrQK7kYVla8RM43//JECCkGJ
37azEaSBznabBv6epaFmQtVHLMXlCbZnMmW9loyqPBfMoAms6kKKBdG/jqhus89iXE
38+seXngC233Va/gZMb2DxOqIokVNfj9tpR7xQ8wS/jHTDiLNc1GOQC7ku42z2bNLA
39IQFRD/qbBFz89hU4wP4cYoAysOnEDojFrsrnCidTHJOJrndM6PPUtH/jQCyfr/EG
402tSpJwYKvmT6ly3yqaGLBtRPIxiv+dMe+7yw0t40qbjvvaTGavErEBJEKX5eWbTN
41/sjajHpUHqs6SIiMheH9dr+WfzFONtVbPEgGRmOERhlgTl/nLo86AZpjJroIGKJJ
42tTHCcoQGAWG+N7wrCE1RxR0kkMs4nRozj0TLu6ZyXMs+H063MewTPNxNAiQT1Nbi
43udKWmfLBlxn06p+JDzUKxj8PFwObdbxTvACzbAvBY1aHMQ==
44=mLl3
45-----END PGP MESSAGE-----
46
47--23VWJ4jAoB40SD17lh6TOBXK3fQSEGNu5--
48
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox.html
new file mode 100644
index 00000000..09d904bb
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox.html
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">test</div>
21 </div>
22 </div>
23 </div>
24 </div>
25 </td>
26 </tr>
27 <tr class="encrH">
28 <td dir="ltr">End of encrypted message</td>
29 </tr>
30 </table>
31 </div>
32 </div>
33 </body>
34</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox.tree
new file mode 100644
index 00000000..009ba99a
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-enigmail1.6.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox
new file mode 100644
index 00000000..c4f14226
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox
@@ -0,0 +1,17 @@
1From test@kolab.org Wed, 08 Sep 2010 17:02:52 +0200
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: OpenPGP encrypted
5Date: Wed, 08 Sep 2010 17:02:52 +0200
6User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
7MIME-Version: 1.0
8Content-Type: multipart/encrypted; boundary="nextPart1357031.ppLHckZtsp"; protocol="application/pgp-encrypted"
9Content-Transfer-Encoding: 7Bit
10
11--nextPart1357031.ppLHckZtsp
12Content-Type: application/pgp-encrypted
13Content-Disposition: attachment
14
15Version: 1
16
17--nextPart1357031.ppLHckZtsp--
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox.html
new file mode 100644
index 00000000..52196784
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox.html
@@ -0,0 +1,19 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <hr/>
11 <div>
12 <a href="attachment:1?place=body"><img align="center" height="48" width="48" src="file:application-pgp-encrypted.svg" border="0" style="max-width: 100%" alt=""/>Unnamed</a>
13 </div>
14 <div/>
15 </div>
16 </div>
17 </div>
18 </body>
19</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox.tree
new file mode 100644
index 00000000..79a20c8d
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-noData.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::AttachmentMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox
new file mode 100644
index 00000000..2957bf3c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox
@@ -0,0 +1,114 @@
1From test@kolab.org Fri May 01 15:13:51 2015
2From: testkey <test@kolab.org>
3To: you@you.com
4Subject: non enc attachment
5Date: Fri, 01 May 2015 17:13:51 +0200
6Message-ID: <20157069.RcaNBhWVXx@tabin.local>
7X-KMail-Identity: 1197256126
8User-Agent: KMail/4.13.0.1 (Linux/3.19.1-towo.1-siduction-amd64; KDE/4.14.2; x86_64; git-cd33034; 2015-04-11)
9MIME-Version: 1.0
10Content-Type: multipart/mixed; boundary="nextPart1612969.Xqz3IcFXZ3"
11Content-Transfer-Encoding: 7Bit
12
13This is a multi-part message in MIME format.
14
15--nextPart1612969.Xqz3IcFXZ3
16Content-Type: multipart/encrypted; boundary="nextPart2213427.hvfAsaxZ1O"; protocol="application/pgp-encrypted"
17
18
19--nextPart2213427.hvfAsaxZ1O
20Content-Type: application/pgp-encrypted
21Content-Disposition: attachment
22Content-Transfer-Encoding: 7Bit
23
24Version: 1
25--nextPart2213427.hvfAsaxZ1O
26Content-Type: application/octet-stream
27Content-Disposition: inline; filename="msg.asc"
28Content-Transfer-Encoding: 7Bit
29
30-----BEGIN PGP MESSAGE-----
31Version: GnuPG v2
32
33hIwDGJlthTT7oq0BBACdvp3PFrRx6vxZhxt06LqyaO7+SWBbVUr7GOa3QaYCCBm+
34/KTUZEfhPuGVcsVpJKZbPsUKVhYfvYpDAsZu3TehmKflobWAV/cCIK2BkQB744pd
35oaCtTj7pmCO05Zt5Uo/tXbrgceuW+/huwn2DO2fk4MUBsluH3fMbvccZJnR3yoUB
36DAMMzkNap8zaOwEIAOTKI8Bh3NhfuJdWDsjv+UT6E4kf/zg3D95mJ+3gK8kHFXdd
37YyEKaMsYx64kSwm1KcjsJ4gWykJlB34YDDfcIrnbgO2QRss9GhgOcUtLr0KNcY+0
38OJ4sbNmI8I3XssMb4rHtDrcXc0ODd0v/C/Lw2VfUdN+bBY4EetG096OPiZ4R41kF
39Rj95nhO8tpoJx9VltegCdZI2AxtykOYvUaLFyYqCoKMmQwqGjdaUv1CeMnxUIPsn
40A/x6TQ0AjpZ5IfMqO7QmOv3ACFo5/Ur93NauOK6szg/zdih9OxUL0Qid3nZQQwqA
41J9ZChTcUgdjQo8EjpWLy0oXR9uLSHcLwRo3OdRzS6QEz7Dus6hmpEal3zTZFj2NR
42mK38tpp+eWhzSAFAx8tyImz8SU2N2o7xQHlEdlWYGeIQg0embMnmMv6WJVWhYahb
43x5OTfHCGwHFsLhZDmtaNhAVMlYdqxKXoR45H9cmGNPpU5kN5Ckjr6I+I51cfgAOE
441vF54jYHXd1btfGrwAyKWBfFVQFPWjuIUdsEl8zDjNTmcCCbA77tEGohSqDi+WWL
45LyYw5g/uwwZ+5OzeRdjAJ+9xtJ+WXhnDUffG8GgGgZWBQD+S2Ix4lZ2NcAeyLPt/
46cXeDHkPUXj7cjm0hl7SvBKzR6X4EEWO/hh19mxngd4+e19q6Qm4K2QMfTwQQyNED
47whBkRXhcXcRxWlb/ICwFDIgxKLJko5HVTknBJDllNdm6l2C4Y9/IY2imqXni8xZX
48zQfAkDOBlfouUrHbPuBCRdCLmp7BgbanCaJDvgYGBvXEgjMKpV3bezTfm4Ugwiyk
49dJfMu/4XftZy7XqoFuDheNXuQ5JobpvVDaiTQ0EWHpHeX3TZ0xa8i1FO6ANLakUp
50aVFWzYl91bxbNHIcPh278neyi+LNWWT6TvkCwcbUYUfuIySOwfSUJAHDIJOx50Ha
51If0fNQDtF4o9mDFwXDwVf8e2zx5NjheqgYX/qIWjFE2cCCkUM4UkNrkYBOiwnh9F
52RJz4M6wKPhZT34MBlTKgwDbypDp+XYnM2HunzIDXCAigYsD/AuLNeFwsIPiXWJ47
53oXamEJxyqS9G0t/iy7+1mbNiFct7pvHt6QUKZ9aXSXj3MkQuWjjVNvMz6KocTSyL
54AeWQNYuvA5NkyZOA5+VU1ma3wn7IAXYkgw+OMvcz9VNevXNg956ZnGbb47Fqppp+
55MjK2ptM1UzIEnHxXtq3KFrXG1AzzhyFnKIjsiDpFTlMGTT9pRGnK8zyYXYPEgpwW
56874A5auLFOvhwPSNMhMai+XSoE3P+zZDqhXMYU8c49O+SeOtISg3Iy5tXuIPlIps
577k0KA60hPulMYBQLtZ/yDO/gXhkeWaw=
58=EJZ6
59-----END PGP MESSAGE-----
60
61--nextPart2213427.hvfAsaxZ1O--
62
63--nextPart1612969.Xqz3IcFXZ3
64Content-Disposition: attachment; filename="image.png"
65Content-Transfer-Encoding: base64
66Content-Type: image/png; name="image.png"
67
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
111o/0d59+Lh3Y1HHcAAAAASUVORK5CYII=
112
113--nextPart1612969.Xqz3IcFXZ3--
114
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..e20a9568
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,69 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 <a name="att2"/>
59 <div id="attachmentDiv2">
60 <hr/>
61 <div>
62 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
63 </div>
64 <div/>
65 </div>
66 </div>
67 </div>
68 </body>
69</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox.tree
new file mode 100644
index 00000000..c2a6ad01
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-non-encrypted-attachment.mbox.tree
@@ -0,0 +1,9 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
5 * MimeTreeParser::MimeMessagePart
6 * MimeTreeParser::TextMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox
new file mode 100644
index 00000000..222b5936
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox
@@ -0,0 +1,91 @@
1From: firstname.lastname@example.com
2To: test@kolab.org
3Subject: OpenPGP encrypted one signed and one unsigned attachment
4Date: Sun, 30 Aug 2015 12:08:40 +0200
5Message-ID: <1737262.ESByPkoaL9@vkpc5>
6X-KMail-Identity: 402312391
7X-KMail-Dictionary: en_US
8User-Agent: KMail/5.0.42 pre (Linux/3.16.6-2-desktop; KDE/5.14.0; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: multipart/mixed; boundary="nextPart2760349.k2GQmrcl5a"
11Content-Transfer-Encoding: 7Bit
12
13This is a multi-part message in MIME format.
14
15--nextPart2760349.k2GQmrcl5a
16Content-Type: multipart/encrypted; boundary="nextPart2260160.XvshVD34ka"; protocol="application/pgp-encrypted"
17
18--nextPart2260160.XvshVD34ka
19Content-Type: application/pgp-encrypted
20Content-Disposition: attachment
21Content-Transfer-Encoding: 7Bit
22
23Version: 1
24--nextPart2260160.XvshVD34ka
25Content-Type: application/octet-stream
26Content-Disposition: inline; filename="msg.asc"
27Content-Transfer-Encoding: 7Bit
28
29-----BEGIN PGP MESSAGE-----
30Version: GnuPG v2
31
32hQEMAwzOQ1qnzNo7AQgAooa+Peu1t5aiX4WvssEnRlapkr62/49/Dbz5assvshdr
33o9zOC+89Qr5P/ea+tC1MO7ek/DfyL9C4EzOMp/r08GeInLqWMc9qLZO//YaT2JUp
340IZFbpUQ4C2zjXMRuy/PMrltHuCfsvhvHX1YAHp/xjRsKpQoE3mSDzz5sc8/Hj9n
352eoKoCEW1rgt2qHtV4DD6lvUPo42LMZclJ9GqfoD7WLoEH9ebRLhXr3D00j6xBfy
36//nooAhzQSW8b7GZth4Qc7DKAZMhuEly/kp07nhuPd1fMJDEAB/zh9EYlgnn3STb
37MCdtFs6kMC24uA2eDCH330Bn9OzzWnsVU9ae4XiKnNLpAeactSFRKKvGytBQaloq
38Gvn1+D0Xmw6OsSmRJ84DzKqG4E6bzE+XhMEMnLlqDvZDsOtU/sCGvMK0MM3y5B7M
39ONqWLN3ng3zrGPec5gqfvnWgKpANUrbJkzS8LNjv4hwoKh0tFpghWQiefG0Z9Hw1
40UaYbFwvaFgXcm72oBkynDCleWjQ2vnDE4P38PldqZbAW/Pw1q6Yq8m9MhS1VpbI5
41WBjuRQhgQvMG0LY0gR/3Qor5tX9ASllWnPfWYVuOiSOAe5Hsp7BmELXkWftHii7k
42YW0Qim7jleDaY1MGfFr0vrO/PiYxGTb+4IUyUgEBYEpxa9ozUoeftF6JbHPuEZI0
43ENX8aIVJ9FnpssrR5HlpXieF12ec9ZFeV7mAwcucJ3RXuDcQHQTHgEbfnzTsaEpL
44Hxs+6euOCJXhKOYVrsAlB4IxK0OQm4XHiZ7WBp5Jp7rlSHltdxFpSnHIfqngyCA4
45L+c/gsUEVbNI++iOOhOKVT47XIf+s/xa1Y4XghGbHIA3/pQphYo4U5dTeLoX0OWI
4664tPxliQTKuJ+NAv9Km2bDgvlvn83jsc94THi5u+fIdDEGp7pgoQNXR69Lkz1bsA
47Hh9xqKzVloHu4SsT3OGX+bfTO3jUh8ieU/4tflZMrJ9RkEfE08PzTnopT08FppFx
48QWpHv/fwyJf6Cw1IevM5pVLAShg0sbCPF/xsYTjSyWNib1wFtxkmv5MToCFwkxi5
49b1yT23BNlV5RV6wcjmrum7p2fMwPjbt8X6z+pgUtkD7zImBWeYddMjgSjOFuFEjF
50gpfVoV3OIvMPZMe2jqWsjnjujHJr2z5IZn3A7WI0b4SIDP0sGwsTBiogKqcBNWpn
51O4MKUq9JwC0K/MY7yS1MCLoHfwU18z19Es/flaAgwtXk8IWIcjkkumAwNl+y8Q+I
52+8AFGdiXTKld9QVwCKnMS3QivHPuFNL8rfcWKsr1nOhOEhaO+zD94eOOiCbwiXGr
53E6WsewNCVQUN4bxAXl2vRi+9WRctLy7bsuIL5dgUz0CMYkQ+dDmrBflD0nyC
54=TGNA
55-----END PGP MESSAGE-----
56
57--nextPart2260160.XvshVD34ka--
58
59--nextPart2760349.k2GQmrcl5a
60Content-Type: multipart/encrypted; boundary="nextPart22530242.iRl14SoP0Q"; protocol="application/pgp-encrypted"
61
62--nextPart22530242.iRl14SoP0Q
63Content-Type: application/pgp-encrypted
64Content-Disposition: attachment
65Content-Transfer-Encoding: 7Bit
66
67Version: 1
68--nextPart22530242.iRl14SoP0Q
69Content-Type: application/octet-stream
70Content-Disposition: inline; filename="msg.asc"
71Content-Transfer-Encoding: 7Bit
72
73-----BEGIN PGP MESSAGE-----
74Version: GnuPG v2
75
76hQEMAwzOQ1qnzNo7AQgAtA94bBRwgpo64zcyh+4dzt0Pr2pmNjiS4ZX+a/xzYCmD
77oS1a26s/LVZH+aJYC13l1kEu+6YjKn+ruQvMfhihOxglHBLjmUO17TPFC05AReSn
78amMqPbgS6mOwhlBJHrBa/SVwkxmbMaNBUJ/KxRXFtTW/V4pPWImRvI9mnmpo8fHy
79ZLvVAI3hGe7vPG5Vbdi5/Iu/JzqwlglVsP82gYpLlx7HhWGF4gmTGc6YBwFtzEvS
80eqFtKRDqN60bo4HnNLOEnMaWlYPTpt3QibLWWIbtpA1Gb0Q/1NvDnn3Lyj8H+0WV
818H6Ks9/cvAuoAMOad6y4gDJb+K/AS7Ha+08/3lMYG9LAAgGe8Qocxg1W3ha1o0Ph
82YSfV2ooebsLiHjwspjYpsX5ijnRj6uNGp5Dt28EIo1ANF+oDiSKEwAMGPBtcnqaO
83FWXy39dP3VXE73nsO+dyTidaATFBlYg+IpPTDSFTgsk7XDV973EpdXvOkBEp/vBv
84EZknuZFOkS0v5QHk9Y/hhlSLACTIEWQpBiFGOwUVSZFXLEY5zQNTbQdRbz3ZYcE9
85mIFzD9Ujw6tIJIOFazhwr9SxxyeaAygWeg4ifmmdhAsmFYum
86=WsAv
87-----END PGP MESSAGE-----
88
89--nextPart22530242.iRl14SoP0Q--
90
91--nextPart2760349.k2GQmrcl5a--
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..c0b9d79e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,99 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">This is the main body.</div>
40 </div>
41 </div>
42 <a name="att1.2"/>
43 <div id="attachmentDiv1.2">
44 <table cellspacing="1" class="textAtm">
45 <tr class="textAtmH">
46 <td dir="ltr">attachment1.txt</td>
47 </tr>
48 <tr class="textAtmB">
49 <td>
50 <div class="noquote">
51 <div dir="ltr">This is a signed attachment.</div>
52 </div>
53 </td>
54 </tr>
55 </table>
56 </div>
57 </div>
58 </td>
59 </tr>
60 <tr class="signOkKeyOkH">
61 <td dir="ltr">End of signed message</td>
62 </tr>
63 </table>
64 </div>
65 </div>
66 </td>
67 </tr>
68 <tr class="encrH">
69 <td dir="ltr">End of encrypted message</td>
70 </tr>
71 </table>
72 </div>
73 <a name="att2"/>
74 <div id="attachmentDiv2">
75 <table cellspacing="1" cellpadding="1" class="encr">
76 <tr class="encrH">
77 <td dir="ltr">Encrypted message</td>
78 </tr>
79 <tr class="encrB">
80 <td>
81 <div style="position: relative; word-wrap: break-word">
82 <a name="att"/>
83 <div id="attachmentDiv">
84 <div class="noquote">
85 <div dir="ltr">This is an unsigned attachment.</div>
86 </div>
87 </div>
88 </div>
89 </td>
90 </tr>
91 <tr class="encrH">
92 <td dir="ltr">End of encrypted message</td>
93 </tr>
94 </table>
95 </div>
96 </div>
97 </div>
98 </body>
99</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox.tree
new file mode 100644
index 00000000..5cb83749
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-partially-signed-attachments.mbox.tree
@@ -0,0 +1,12 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
5 * MimeTreeParser::MimeMessagePart
6 * MimeTreeParser::TextMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
10 * MimeTreeParser::EncryptedMessagePart
11 * MimeTreeParser::TextMessagePart
12 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox
new file mode 100644
index 00000000..c53e0916
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox
@@ -0,0 +1,42 @@
1From: firstname.lastname@example.com
2To: test@kolab.org
3Subject: OpenPGP encrypted with 2 text attachments
4Date: Sun, 30 Aug 2015 12:05:17 +0200
5Message-ID: <1505824.VT0nqpAGu0@vkpc5>
6X-KMail-Identity: 402312391
7X-KMail-Dictionary: en_US
8User-Agent: KMail/5.0.42 pre (Linux/3.16.6-2-desktop; KDE/5.14.0; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: multipart/encrypted; boundary="nextPart3335835.KxmPgziKxd"; protocol="application/pgp-encrypted"
11
12--nextPart3335835.KxmPgziKxd
13Content-Type: application/pgp-encrypted
14Content-Disposition: attachment
15Content-Transfer-Encoding: 7Bit
16
17Version: 1
18--nextPart3335835.KxmPgziKxd
19Content-Type: application/octet-stream
20Content-Disposition: inline; filename="msg.asc"
21Content-Transfer-Encoding: 7Bit
22
23-----BEGIN PGP MESSAGE-----
24Version: GnuPG v2
25
26hQEMAwzOQ1qnzNo7AQgA6tTJs017mI+xuhjcSTr3F5X/rJghq0oaXbjk1K0W33p+
27jsEyPTbuUIvI2a+5xHJ3BV+gnnO0Xosz57tGTF/eVAySnGiMse5cu2RQR9b/9EkC
28uzt3tIChyub3GUODG3yzXqkhSiwIImvedWgnJYTJ7eeBkWdizVT0b0byiG2d7Hjq
29hzYzyPJRwuoE36hryDsFycAhPfSsQAirxDJXk4HTsfBCmz7tzJhtt4wKc7z5m8fq
30y+jddnDADq5+tykJS6zemJOzgU3AOQyVJbmsx2vTV1CJdpKPHvTTgghpAaSuVbg0
31tR9BX1nPnA/bgX/V7C+3PwuCvB0ZKmv5d8kaGaTwO9LAhQGaWTfhG1cyy+MJhXdR
32rH63PMkZh/lrvj7qJYofI5iVoe1CiMaX44BiwKVclGf7bEFdzc2NSRvvTSzisN3T
33nSzydEttuEY5jGagQQNT1l1l4I8HAtUgwGtkKZVTAUL6iKHYAqzB77sRs33UJy4k
34ZSIWFnSY8l+HLG+MYKsYCGsvJHkxEHnMiS1EZcmpUFhxOGQpiF2rJ4qnL2jbFWbA
359N1O5N1N/DJ/YKjwgy/jVVj6AOCrBZrxvKKt2mtG/wVX0F/KSKiEd8mgrLIx1udw
36tibiDAJmDxUk8K0lAdOHBrzBChvysiT/QxCJFcSY6FE99Rral+BWjeyAIQQWvc2B
37cEceZCtzjCOrwvoJwl2uEX+51nmMp+z1EoeyyhmUZZ4y65yOg4P6KGXGcLmIjSbH
38IhsSls1jRkSrypf/wcEd6o7KZdeYbfA=
39=Sud3
40-----END PGP MESSAGE-----
41
42--nextPart3335835.KxmPgziKxd--
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..cca4c455
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox.html
@@ -0,0 +1,64 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">this is the main body part</div>
21 </div>
22 </div>
23 <a name="att2"/>
24 <div id="attachmentDiv2">
25 <table cellspacing="1" class="textAtm">
26 <tr class="textAtmH">
27 <td dir="ltr">attachment1.txt</td>
28 </tr>
29 <tr class="textAtmB">
30 <td>
31 <div class="noquote">
32 <div dir="ltr">this is the first attachment</div>
33 </div>
34 </td>
35 </tr>
36 </table>
37 </div>
38 <a name="att3"/>
39 <div id="attachmentDiv3">
40 <table cellspacing="1" class="textAtm">
41 <tr class="textAtmH">
42 <td dir="ltr">attachment2.txt</td>
43 </tr>
44 <tr class="textAtmB">
45 <td>
46 <div class="noquote">
47 <div dir="ltr">this is the second attachment</div>
48 </div>
49 </td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </div>
55 </td>
56 </tr>
57 <tr class="encrH">
58 <td dir="ltr">End of encrypted message</td>
59 </tr>
60 </table>
61 </div>
62 </div>
63 </body>
64</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox.tree
new file mode 100644
index 00000000..71a67b58
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted-two-attachments.mbox.tree
@@ -0,0 +1,9 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted.mbox b/framework/src/domain/mime/testdata/openpgp-encrypted.mbox
new file mode 100644
index 00000000..5102fa78
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted.mbox
@@ -0,0 +1,36 @@
1From test@kolab.org Wed, 08 Sep 2010 17:02:52 +0200
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: OpenPGP encrypted
5Date: Wed, 08 Sep 2010 17:02:52 +0200
6User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
7MIME-Version: 1.0
8Content-Type: multipart/encrypted; boundary="nextPart1357031.ppLHckZtsp"; protocol="application/pgp-encrypted"
9Content-Transfer-Encoding: 7Bit
10
11
12--nextPart1357031.ppLHckZtsp
13Content-Type: application/pgp-encrypted
14Content-Disposition: attachment
15
16Version: 1
17--nextPart1357031.ppLHckZtsp
18Content-Type: application/octet-stream
19Content-Disposition: inline; filename="msg.asc"
20
21-----BEGIN PGP MESSAGE-----
22Version: GnuPG v2.0.15 (GNU/Linux)
23
24hQEMAwzOQ1qnzNo7AQgAtWfDWWI2JUGuptpackiIxpWViEEpGAeruETubiIPwxNb
25DNmXrMDhbm/zIbPntIGWJDgUMfABZCUgmlJLWhsceDTt+tXnWGha2VYrN2/WsF6/
26Pqs/TavTvMIJQHDaIH5yDDCaMoq/mGSbcu7go2H8Sw7aBEYlM8jGlqc1HziXnZ1q
273vDiA+4qWfvbNoSRo1kb9Pcq997yg6WqZXH2hJ7cp+hIQ4uTP1/+qgYHMvfPlzQk
28XcDguGbIer88ELhuR5622unGBAB4dqp+5w6n9c6rrCH81qhV4W0nqSEvj1tBj78S
29ZTi6VBAo5eS0e3iOJqMpwUZz6hQUpJw2wnNRGvLgI9KZAag0HkgPdMeANowg7vpE
30L4nU7B0ybhswA2Y7QT/wwCDZu9N1JGeBmy0dgy4sA38Ki27rn2/lIaP0j14JycwM
31RTJ1uwI+ZuQiwXlyYtdFZJWe8nraWARch0oKqhaR7aSsxGWo63eiGEQhkQCBFBb3
32Vg0nNCZRBauEqIESEW5EV2zrJqdfNYcz+f9IP125dnQEKgLZ6FxTt3+v
33=mhNl
34-----END PGP MESSAGE-----
35
36--nextPart1357031.ppLHckZtsp--
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.html b/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.html
new file mode 100644
index 00000000..ba0976cd
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.html
@@ -0,0 +1,31 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <div class="noquote">
18 <div dir="ltr">encrypted message text</div>
19 </div>
20 </div>
21 </div>
22 </td>
23 </tr>
24 <tr class="encrH">
25 <td dir="ltr">End of encrypted message</td>
26 </tr>
27 </table>
28 </div>
29 </div>
30 </body>
31</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.inProgress.html b/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.inProgress.html
new file mode 100644
index 00000000..e5eb55d0
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.inProgress.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Please wait while the message is being decrypted...</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;"/>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.tree b/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.tree
new file mode 100644
index 00000000..82f705c2
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-encrypted.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox b/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox
new file mode 100644
index 00000000..8bd06910
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox
@@ -0,0 +1,40 @@
1From test@example.com Thu, 17 Oct 2013 02:13:03 +0200
2Return-Path: <test@example.com>
3Delivered-To: you@you.com
4Received: from localhost (localhost [127.0.0.1])
5 by test@example.com (Postfix) with ESMTP id B30D8120030
6 for <you@you.com>; Thu, 17 Oct 2013 02:13:05 +0200 (CEST)
7From: test <test@example.com>
8To: you@you.com
9Subject: charset
10Date: Thu, 17 Oct 2013 02:13:03 +0200
11Message-ID: <4081645.yGjUJ4o4Se@example.local>
12User-Agent: KMail/4.12 pre (Linux/3.11-4.towo-siduction-amd64; KDE/4.11.2; x86_64; git-f7f14e3; 2013-10-15)
13MIME-Version: 1.0
14Content-Transfer-Encoding: 7Bit
15Content-Type: text/plain; charset="ISO-8859-15"
16
17-----BEGIN PGP MESSAGE-----
18Version: GnuPG v2.0.22 (GNU/Linux)
19
20hIwDGJlthTT7oq0BBACbaRZudMigMTetPZNRgkfEXv4QQowR1jborw0dcgKKqMQ1
216o67NkpxvmXKGJTfTVCLBX3nk6FKYo6NwlPCyU7X9X0DDk8hvaBdR9wGfrdm5YWX
22GKOzcqJY1EypiMsspXeZvjzEW7O8I956c3vBb/2pM3xqYEK1kh8+d9bVH+cjf4UB
23DAMMzkNap8zaOwEH/1rPShyYL8meJN+/GGgS8+Nf1BW5pSHdAPCg0dnX4QCLEx7u
24GkBU6N4JGYayaCBofibOLacQPhYZdnR5Xb/Pvrx03GrzyzyDp0WyeI9nGNfkani7
25sCRWbzlMPsEvGEvJVnMLNRSk4xhPIWumL4APkw+Mgi6mf+Br8z0RhfnGwyMA53Mr
26pG9VQKlq3v7/aaN40pMjAsxiytcHS515jXrb3Ko4pWbTlAr/eytOEfkLRJgSOpQT
27BY7lWs+UQJqiG8Yn65vS9LMDNJgX9EOGx77Z4u9wvv4ZieOxzgbHGg5kYCoae7ba
28hxZeNjYKscH+E6epbOxM/wlTdr4UTiiW9dMsH0zSwMUB891gToeXq+LDGEPTKVSX
29tsJm4HS/kISJBwrCI4EUqWZML6xQ427NkZGmF2z/sD3kmL66GjspIKnb4zHmXacp
3084n2KrI9s7p6AnKnQjsxvB/4/lpXPCIY5GH7KjySEJiMsHECzeN1dJSL6keykBsx
31DtmYDA+dhZ6UWbwzx/78+mjNREhyp/UiSAmLzlJh89OH/xelAPvKcIosYwz4cY9N
32wjralTmL+Y0aHKeZJOeqPLaXADcPFiZrCNPCH65Ey5GEtDpjLpEbjVbykPV9+YkK
337JKW6bwMraOl5zmAoR77PWMo3IoYb9q4GuqDr1V2ZGlb7eMH1gj1nfgfVintKC1X
343jFfy7aK6LIQDVKEwbi0SxVXTKStuliVUy5oX4woDOxmTEotJf1QlKZpn5oF20UP
35tumYrp0SPoP8Bo4EVRVaLupduI5cYce1q/kFj9Iho/wk56MoG9PxMMfsH7oKg3AA
36CqQ6/kM4oJNdN5xIf1EH5HeaNFkDy1jlLznnhwVAZKPo/9ffpg==
37=bPqu
38-----END PGP MESSAGE-----
39
40
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.html b/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.html
new file mode 100644
index 00000000..344dc237
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.html
@@ -0,0 +1,47 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
20 <td align="right">
21 <a href="kmail:showSignatureDetails">Show Details</a>
22 </td>
23 </tr>
24 </table>
25 </td>
26 </tr>
27 <tr class="signOkKeyOkB">
28 <td>
29 <div class="noquote">
30 <div dir="ltr">asdasd asd asd asdf sadf sdaf sadf öäü</div>
31 </div>
32 </td>
33 </tr>
34 <tr class="signOkKeyOkH">
35 <td dir="ltr">End of signed message</td>
36 </tr>
37 </table>
38 </td>
39 </tr>
40 <tr class="encrH">
41 <td dir="ltr">End of encrypted message</td>
42 </tr>
43 </table>
44 </div>
45 </div>
46 </body>
47</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.inProgress.html b/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.inProgress.html
new file mode 100644
index 00000000..e5eb55d0
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.inProgress.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Please wait while the message is being decrypted...</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;"/>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.tree b/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.tree
new file mode 100644
index 00000000..ea8223fd
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-charset-encrypted.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-encrypted+nonenc.mbox b/framework/src/domain/mime/testdata/openpgp-inline-encrypted+nonenc.mbox
new file mode 100644
index 00000000..b98dc336
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-encrypted+nonenc.mbox
@@ -0,0 +1,31 @@
1From test@kolab.org Wed, 25 May 2011 23:49:40 +0100
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: inlinepgpencrypted + non enc text
5Date: Wed, 25 May 2011 23:49:40 +0100
6Message-ID: <1786696.yKXrOjjflF@herrwackelpudding.localhost>
7X-KMail-Transport: GMX
8X-KMail-Fcc: 28
9X-KMail-Drafts: 7
10X-KMail-Templates: 9
11User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
12MIME-Version: 1.0
13Content-Transfer-Encoding: 7Bit
14Content-Type: text/plain; charset="us-ascii"
15
16Not encrypted not signed :(
17
18-----BEGIN PGP MESSAGE-----
19Version: GnuPG v2.0.15 (GNU/Linux)
20
21hQEMAwzOQ1qnzNo7AQf/a3aNTLpQBfcUr+4AKsZQLj4h6z7e7a5AaCW8AG0wrbxN
22kBYB7E5jdZh45DX/99gvoZslthWryUCX2kKZ3LtIllxKVjqNuK5hSt+SAuKkwiMR
23Xcbf1KFKENKupgGSO9B2NJRbjoExdJ+fC3mGXnO3dT7xJJAo3oLE8Nivu+Bj1peY
24E1wCf+vcTwVHFrA7SV8eMRb9Z9wBXmU8Q8e9ekJ7ZsRX3tMeBs6jvscVvfMf6DYY
25N14snZBZuGNKT9a3DPny7IC1S0lHcaam34ogWwMi3FxPGJt/Lg52kARlkF5TDhcP
26N6H0EB/iqDRjOOUoEVm8um5XOSR1FpEiAdD0DON3y9JPATnrYq7sgYZz3BVImYY+
27N/jV8fEiN0a34pcOq8NQedMuOsJHNBS5MtbQH/kJLq0MXBpXekGlHo4MKw0trISc
28Rw3pW6/BFfhPJLni29g9tw==
29=fRFW
30-----END PGP MESSAGE-----
31
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-signed-broken.mbox b/framework/src/domain/mime/testdata/openpgp-inline-signed-broken.mbox
new file mode 100644
index 00000000..fc0d2df9
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-signed-broken.mbox
@@ -0,0 +1,26 @@
1From: test <test@kolab.org>
2To: you@you.de
3Subject: test
4Date: Tue, 25 Aug 2015 16:47:10 +0200
5Message-ID: <1662097.O9NVKTC5pT@11b508545ba2>
6X-KMail-Identity: 1428848833
7User-Agent: KMail/4.13.0.3 (Linux/4.1.0-rc5-siduction-amd64; KDE/4.14.3; x86_64; git-7c86098; 2015-08-23)
8MIME-Version: 1.0
9Content-Transfer-Encoding: quoted-printable
10Content-Type: text/plain; charset="iso-8859-1"
11
12-----BEGIN PGP SIGNED MESSAGE-----
13Hash: SHA256
14
15ohno break it =F6=E4=FC
16-----BEGIN PGP SIGNATURE-----
17Version: GnuPG v2
18
19iQEcBAEBCAAGBQJV3H/vAAoJEI2YYMWPJG3mEZQH/2mbCDa60risTUsomEecasc7
20kIc8Ch+OjZwlEQWKEiFbpLCMVjMwf0oGFcpc/dqnIyIqeVvF6Em+v7iqKuyAaihu
217ZxxC816tDDI7UIpmyWu39McqGB/2hoA/q+QAMgBiaIuMwYJK9Aw08hXzoCds6O7
22Uor2Y6kMSwEiRnTSYvQHdoaZY3F9SFTLPgjvwfSu7scvp7xvH7bAVIqGGfkLjXpP
23OFkDhEqUI7ORwD5cvvzEu57XmbGB7Nj5LRCGcTq6IlaGeN6Pw5+hOdd6MQ4iISwy
24870msP9NvktURnfXYC3fYnJaK/eUln7LYCBl/k04Z/3Um6dMYyQGh63oGv/2qxQ=3D
25=3D4ctb
26-----END PGP SIGNATURE-----
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox b/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox
new file mode 100644
index 00000000..6099a51f
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox
@@ -0,0 +1,26 @@
1From: test <test@kolab.org>
2To: you@you.de
3Subject: test
4Date: Tue, 25 Aug 2015 16:47:10 +0200
5Message-ID: <1662097.O9NVKTC5pT@11b508545ba2>
6X-KMail-Identity: 1428848833
7User-Agent: KMail/4.13.0.3 (Linux/4.1.0-rc5-siduction-amd64; KDE/4.14.3; x86_64; git-7c86098; 2015-08-23)
8MIME-Version: 1.0
9Content-Transfer-Encoding: quoted-printable
10Content-Type: text/plain; charset="iso-8859-1"
11
12-----BEGIN PGP SIGNED MESSAGE-----
13Hash: SHA256
14
15ohno =F6=E4=FC
16-----BEGIN PGP SIGNATURE-----
17Version: GnuPG v2
18
19iQEcBAEBCAAGBQJV3H/vAAoJEI2YYMWPJG3mEZQH/2mbCDa60risTUsomEecasc7
20kIc8Ch+OjZwlEQWKEiFbpLCMVjMwf0oGFcpc/dqnIyIqeVvF6Em+v7iqKuyAaihu
217ZxxC816tDDI7UIpmyWu39McqGB/2hoA/q+QAMgBiaIuMwYJK9Aw08hXzoCds6O7
22Uor2Y6kMSwEiRnTSYvQHdoaZY3F9SFTLPgjvwfSu7scvp7xvH7bAVIqGGfkLjXpP
23OFkDhEqUI7ORwD5cvvzEu57XmbGB7Nj5LRCGcTq6IlaGeN6Pw5+hOdd6MQ4iISwy
24870msP9NvktURnfXYC3fYnJaK/eUln7LYCBl/k04Z/3Um6dMYyQGh63oGv/2qxQ=3D
25=3D4ctb
26-----END PGP SIGNATURE-----
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.html b/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.html
new file mode 100644
index 00000000..d32d0235
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.html
@@ -0,0 +1,35 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <div class="noquote">
24 <div dir="ltr">ohno öäü</div>
25 </div>
26 </td>
27 </tr>
28 <tr class="signOkKeyOkH">
29 <td dir="ltr">End of signed message</td>
30 </tr>
31 </table>
32 </div>
33 </div>
34 </body>
35</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.inProgress.html b/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.inProgress.html
new file mode 100644
index 00000000..45a999d3
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.inProgress.html
@@ -0,0 +1,22 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signInProgress">
9 <tr class="signInProgressH">
10 <td dir="ltr">Please wait while the signature is being verified...</td>
11 </tr>
12 <tr class="signInProgressB">
13 <td/>
14 </tr>
15 <tr class="signInProgressH">
16 <td dir="ltr">End of signed message</td>
17 </tr>
18 </table>
19 </div>
20 </div>
21 </body>
22</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.tree b/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.tree
new file mode 100644
index 00000000..23e99880
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-signed.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::SignedMessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox b/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox
new file mode 100644
index 00000000..5ecfc612
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox
@@ -0,0 +1,34 @@
1From t.glaser@tarent.de Mon Aug 18 10:59:01 2014
2Return-Path: <t.glaser@tarent.de>
3Received: from tgwrk.ig42.org (tgwrk.ig42.org.
4 [2a01:238:4200:4342:321e:80ff:fe12:4223]) by mx.google.com with ESMTPSA id
5 pe6sm40660135wjb.38.2014.08.18.01.59.01 for <t.glaser@tarent.de>
6 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18
7 Aug 2014 01:59:01 -0700 (PDT)
8Date: Mon, 18 Aug 2014 10:59:00 +0200 (CEST)
9From: Thorsten Glaser <t.glaser@tarent.de>
10X-X-Sender: tglase@tglase.lan.tarent.de
11To: Thorsten Glaser <t.glaser@tarent.de>
12Subject: Test for Mozilla bug#1054187
13Message-ID: <alpine.DEB.2.11.1408181058220.30583@tglase.lan.tarent.de>
14User-Agent: Alpine 2.11 (DEB 23 2013-08-11)
15MIME-Version: 1.0
16Content-Type: TEXT/PLAIN; charset=US-ASCII
17
18-----BEGIN PGP MESSAGE-----
19Version: GnuPG v2
20
21hIwDTFSKP3rBSXcBBAClcHW9/6kw8i+XkMes47vcmGBCjIC0UysqkVYyNqT2Y6tb
22s7pdfZFQPVWbdYoxP0WLzGgNFEWttlojWJmaTNiDVLOP22hFuJL3LUxesC1cWE+6
23foCkENDI2YnkAw4o5HTrmHoBlG7N/Nzzu3+1kfUVANSoAhgWd5WJDsXyvPMoD9LA
247gHZZmq4bK5OwTHvAvdUOstCGd6Wqj5zkVXT59WOfYxYLcrGZ8I62lBS1/90TlJe
25iEolBoaufZT7K2YW7k/+DPYgRIzvWISTccPWpcS7OOyifvK4zOFJeGsVq/DowP52
26Zt1xQj1En5CVUT/MkpvS1rB4BfSuhJETZdtUGveUe0HhcAzbnbIJULdK0p1XAo4O
27q84vmOVD0BtKJVy/+rIW7h4aOr8C66HNDKLiUzWtdEaG97GQwhpQZ05JNsulG9tV
28wyP6UWmDMY/5YuRoVHOYx8NXORHX4E5P151Tr5Fted9TpXI/gOTHHyPK5AiiDG6U
29ja4fgkO6hYnjHxqqooxfGj+pg5atynnbMTALfWoXxmqyKrIB+SKqnsw+sCL3ro2x
30j54EGZZ9wM6AYDQ48lJV5beWgQ55r28HxlhPNl/driNkMZHUazAdsubWo5NqJPXl
31HrHQ4lv53ZUohbpVvdkmsldWhA5me7yRhQHytTQMMfadmSiYZVsy53siQ/5gEhUv
32DQ4ggpUjf8twqR+5TLue5/r/fRXkGfKr5U1w4qcMcFcGwEIbwE+qtIDY0Cw/+xU=
33=Ecl0
34-----END PGP MESSAGE-----
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox.html b/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox.html
new file mode 100644
index 00000000..3ed4e0fb
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox.html
@@ -0,0 +1,47 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
20 <td align="right">
21 <a href="kmail:showSignatureDetails">Show Details</a>
22 </td>
23 </tr>
24 </table>
25 </td>
26 </tr>
27 <tr class="signOkKeyOkB">
28 <td>
29 <div class="noquote">
30 <div dir="ltr">This is a utf-8 message you see - öäüß@ł€¶ŧ←↓→øþ</div>
31 </div>
32 </td>
33 </tr>
34 <tr class="signOkKeyOkH">
35 <td dir="ltr">End of signed message</td>
36 </tr>
37 </table>
38 </td>
39 </tr>
40 <tr class="encrH">
41 <td dir="ltr">End of encrypted message</td>
42 </tr>
43 </table>
44 </div>
45 </div>
46 </body>
47</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox.tree b/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox.tree
new file mode 100644
index 00000000..ea8223fd
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-inline-wrong-charset-encrypted.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox b/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox
new file mode 100644
index 00000000..ba85df86
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox
@@ -0,0 +1,129 @@
1Return-Path: <sender@example.org>
2Sender: sender@example.org
3From: Quonk <sender@example.org>
4X-Pgp-Agent: GPGMail
5Content-Type: multipart/signed; boundary="Apple-Mail=_12345678-1234-1234-1234-12345678"; protocol="application/pgp-signature"; micalg=pgp-sha512
6Subject: PDF
7Date: Mon, 16 Jan 2017 15:14:51 +0100
8Message-Id: <199E2891-3080-42B6-ABCD-1230B78EBABC@example.org>
9To: Konqi <konqui@example.org>
10Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
11
12
13--Apple-Mail=_12345678-1234-1234-1234-12345678
14Content-Type: multipart/alternative;
15 boundary="Apple-Mail=_23456789-1234-1234-1234-12345678"
16
17
18--Apple-Mail=_23456789-1234-1234-1234-12345678
19Content-Transfer-Encoding: quoted-printable
20Content-Type: text/plain;
21 charset=utf-8
22
23
24
25=E2=80=A6
26Quonk
27Klar=C3=A4lvdalens Datakonsult AB, a KDAB Group company
28Sweden (HQ) +46-563-540090, Germany +49-30-521325470
29KDAB - The Qt, C++ and OpenGL Experts | www.kdab.com
30
31
32--Apple-Mail=_23456789-1234-1234-1234-12345678
33Content-Type: multipart/mixed;
34 boundary="Apple-Mail=_34567890-1234-1234-1234-12345678"
35
36
37--Apple-Mail=_34567890-1234-1234-1234-12345678
38Content-Transfer-Encoding: 7bit
39Content-Type: text/html;
40 charset=us-ascii
41
42<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">pre attachment</div></body></html>
43--Apple-Mail=_34567890-1234-1234-1234-12345678
44Content-Disposition: attachment; filename="image.png"
45Content-Transfer-Encoding: base64
46Content-Type: image/png; name="image.png"
47
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
91o/0d59+Lh3Y1HHcAAAAASUVORK5CYII=
92--Apple-Mail=_34567890-1234-1234-1234-12345678
93Content-Transfer-Encoding: quoted-printable
94Content-Type: text/html;
95 charset=utf-8
96
97<html><head><meta name="qrichtext" content="1" /><style type="text/css">
98p, li { white-space: pre-wrap; }
99</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
100<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
101</body></html>
102
103--Apple-Mail=_34567890-1234-1234-1234-12345678--
104
105--Apple-Mail=_23456789-1234-1234-1234-12345678--
106
107--Apple-Mail=_12345678-1234-1234-1234-12345678
108Content-Transfer-Encoding: 7bit
109Content-Disposition: attachment;
110 filename=signature.asc
111Content-Type: application/pgp-signature;
112 name=signature.asc
113Content-Description: Message signed with OpenPGP using GPGMail
114
115-----BEGIN PGP SIGNATURE-----
116
117iQEzBAEBCAAdFiEEG6Mjkys/qoJhMseejZhgxY8kbeYFAlh/rcwACgkQjZhgxY8k
118beYaoQf+Miuj4cnVumYXMopVMHJs6AK6D+uKO4jXHl/XUK3TOg17kFUZDEN/9JFd
119SCN9oD5emzpBl4GSmYBbjvLvXTHTLHviVD6In35+wgMlQL+xfAv91Dx56QslCQMo
120UhDYGgFPiEAfCY2UozQD/R3KWOHFB9bNdtOM0hdT84D35W2PZhzTlz2q3hpq3bYw
121lNhFVebqURh9OEAZglB3Q9oDE13PJDtRLflKquC5ZU8N4Bj23TCOgxv4FzSyyAn/
122XalEKdwYrkZ8p4rRtd0YvAVevDUC4pQNGTgfsXgldoPEGUBXsdlczLPEj2sjLvNu
123HX1GMDrZL/+7DZsURYV5DjhsqWzExQ==
124=q0F6
125-----END PGP SIGNATURE-----
126
127--Apple-Mail=_12345678-1234-1234-1234-12345678--
128
129
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.html
new file mode 100644
index 00000000..234eaae4
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">
30 <div class="">pre attachment</div>
31 </div>
32 </div>
33 <a name="att1.2.2"/>
34 <div id="attachmentDiv1.2.2">
35 <hr/>
36 <div>
37 <a href="attachment:1.2.2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
38 </div>
39 <div/>
40 </div>
41 <a name="att1.2.3"/>
42 <div id="attachmentDiv1.2.3">
43 <div style="position: relative">
44 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
45 </div>
46 </div>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="signWarnH">
52 <td dir="ltr">End of signed message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.inProgress.html b/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.inProgress.html
new file mode 100644
index 00000000..b5236fe4
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.inProgress.html
@@ -0,0 +1,49 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signInProgress">
9 <tr class="signInProgressH">
10 <td dir="ltr">Please wait while the signature is being verified...</td>
11 </tr>
12 <tr class="signInProgressB">
13 <td>
14 <a name="att1"/>
15 <div id="attachmentDiv1">
16 <a name="att1.2"/>
17 <div id="attachmentDiv1.2">
18 <a name="att1.2.1"/>
19 <div id="attachmentDiv1.2.1">
20 <div style="position: relative">
21 <div class="">pre attachment</div>
22 </div>
23 </div>
24 <a name="att1.2.2"/>
25 <div id="attachmentDiv1.2.2">
26 <hr/>
27 <div>
28 <a href="attachment:1.2.2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
29 </div>
30 <div/>
31 </div>
32 <a name="att1.2.3"/>
33 <div id="attachmentDiv1.2.3">
34 <div style="position: relative">
35 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
36 </div>
37 </div>
38 </div>
39 </div>
40 </td>
41 </tr>
42 <tr class="signInProgressH">
43 <td dir="ltr">End of signed message</td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </body>
49</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.tree
new file mode 100644
index 00000000..3ade4efe
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-apple.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox b/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox
new file mode 100644
index 00000000..70bf4ef8
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox
@@ -0,0 +1,117 @@
1Return-Path: <kde-pim-bounces@kde.org>
2X-Sieve: CMU Sieve 2.3
3X-Virus-Scanned: amavisd-new at site
4Authentication-Results: linux.site (amavisd-new); dkim=pass (1024-bit key)
5 header.d=kde.org
6Received: from postbox.kde.org (localhost.localdomain [127.0.0.1])
7 by postbox.kde.org (Postfix) with ESMTP id 867B8BF274;
8 Sat, 22 Aug 2015 09:32:21 +0000 (UTC)
9DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kde.org; s=default;
10 t=1440235945; bh=WhGhdxvdvRs04JdzjAkPcBVPmx7putlUE3ka9dvMIoc=;
11 h=From:To:Date:Subject:Reply-To:List-Id:List-Unsubscribe:List-Post:
12 List-Help:List-Subscribe:From;
13 b=mvxeMMGebkZKq7hekRypkPvt6S8lidA/8vQ3AC5Kft8HDmj8lDUpvOo0VXwCF0OG+
14 iAOPKxYtxclf8PgYvgK8NIzr56CwcdlNm3/PpoSe20P3I1DGFpDDMFtW5tOD05SSHz
15 5L6PCQyb+KFW1GrXgcm+eHshzJh3U8nHcyd8Vw2E=
16X-Original-To: kde-pim@kde.org
17Delivered-To: kde-pim@localhost.kde.org
18X-Virus-Scanned: amavisd-new at site
19From: Volker Krause <vkrause@kde.org>
20To: KDEPIM <kde-pim@kde.org>
21Date: Sat, 22 Aug 2015 11:31:38 +0200
22Message-ID: <11737387.KAAPH2KlE3@vkpc5>
23Organization: KDE
24User-Agent: KMail/4.14.3 (Linux/3.16.6-2-desktop; KDE/4.14.7; x86_64;
25 git-c97b13e; 2014-12-30)
26MIME-Version: 1.0
27Subject: [Kde-pim] Phabricator Project Setup
28X-BeenThere: kde-pim@kde.org
29X-Mailman-Version: 2.1.16
30Precedence: list
31Reply-To: KDE PIM <kde-pim@kde.org>
32List-Id: KDE PIM <kde-pim.kde.org>
33List-Unsubscribe: <https://mail.kde.org/mailman/options/kde-pim>,
34 <mailto:kde-pim-request@kde.org?subject=unsubscribe>
35List-Post: <mailto:kde-pim@kde.org>
36List-Help: <mailto:kde-pim-request@kde.org?subject=help>
37List-Subscribe: <https://mail.kde.org/mailman/listinfo/kde-pim>,
38 <mailto:kde-pim-request@kde.org?subject=subscribe>
39Content-Type: multipart/mixed; boundary="===============1910646461178264940=="
40Errors-To: kde-pim-bounces@kde.org
41Sender: "kde-pim" <kde-pim-bounces@kde.org>
42
43
44--===============1910646461178264940==
45Content-Type: multipart/signed; boundary="nextPart2440608.7aDuJBW7cK"; micalg="pgp-sha1"; protocol="application/pgp-signature"
46
47--nextPart2440608.7aDuJBW7cK
48Content-Transfer-Encoding: quoted-printable
49Content-Type: text/plain; charset="us-ascii"
50
51Hi,
52
53I've talked to Ben, the current Phabricator test setup would actually b=
54e=20
55usable for "production" use for task/project management for us, without=
56=20
57causing the sysadmins unreasonable trouble when migrating to the full=20=
58
59production deployment of Phabricator eventually.
60
61Phabricator project layout it orthogonal to repo layout, so we can stru=
62cture=20
63this however we want. Among other teams I see at least the following la=
64youts:
65- single project for everything
66- a project per release
67- a project per component/module (ie. close to the repo layout)
68
69How do we want to structure this?
70
71I would start with a single project to not fragment this too much, as w=
72e have=20
73a relatively small team actually looking into this, so everyone is look=
74ing at=20
75most sub-projects anyway. And should we eventually hit scaling limits, =
76we can=20
77always expand this I think.
78
79We of course should also talk about what we actually want to put in the=
80re. My=20
81current motivation is having a place to collect the tasks for getting m=
82ore of=20
83the former pimlibs into KF5, and anything else I run into on the way th=
84ere=20
85that we eventually should clean up/improve.
86
87regards,
88Volker
89
90--nextPart2440608.7aDuJBW7cK
91Content-Type: application/pgp-signature; name="signature.asc"
92Content-Description: This is a digitally signed message part.
93Content-Transfer-Encoding: 7Bit
94
95-----BEGIN PGP SIGNATURE-----
96Version: GnuPG v2
97
98iD8DBQBV2EF9f5bM1k0S0kcRAk9cAJ4vHEh9JkT3Jy3EfxII7nP9HPmxrQCgjeLF
99eYXCyN9NRAyC6CHeNnWZN10=
100=Y8W4
101-----END PGP SIGNATURE-----
102
103--nextPart2440608.7aDuJBW7cK--
104
105
106--===============1910646461178264940==
107Content-Type: text/plain; charset="utf-8"
108MIME-Version: 1.0
109Content-Transfer-Encoding: base64
110Content-Disposition: inline
111
112X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KS0RFIFBJTSBt
113YWlsaW5nIGxpc3Qga2RlLXBpbUBrZGUub3JnCmh0dHBzOi8vbWFpbC5rZGUub3JnL21haWxtYW4v
114bGlzdGluZm8va2RlLXBpbQpLREUgUElNIGhvbWUgcGFnZSBhdCBodHRwOi8vcGltLmtkZS5vcmcv
115
116--===============1910646461178264940==--
117
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox.html
new file mode 100644
index 00000000..50eddaa6
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox.html
@@ -0,0 +1,78 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signWarn">
11 <tr class="signWarnH">
12 <td dir="ltr">
13 <table cellspacing="0" cellpadding="0" width="100%">
14 <tr>
15 <td>Not enough information to check signature validity.</td>
16 <td align="right">
17 <a href="kmail:showSignatureDetails">Show Details</a>
18 </td>
19 </tr>
20 </table>
21 </td>
22 </tr>
23 <tr class="signWarnB">
24 <td>
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">Hi,</div>
29 <br/>
30 <div dir="ltr">I've talked to Ben, the current Phabricator test setup would actually be&nbsp;</div>
31 <div dir="ltr">usable for "production" use for task/project management for us, without&nbsp;</div>
32 <div dir="ltr">causing the sysadmins unreasonable trouble when migrating to the full&nbsp;</div>
33 <div dir="ltr">production deployment of Phabricator eventually.</div>
34 <br/>
35 <div dir="ltr">Phabricator project layout it orthogonal to repo layout, so we can structure&nbsp;</div>
36 <div dir="ltr">this however we want. Among other teams I see at least the following layouts:</div>
37 <div dir="ltr">- single project for everything</div>
38 <div dir="ltr">- a project per release</div>
39 <div dir="ltr">- a project per component/module (ie. close to the repo layout)</div>
40 <br/>
41 <div dir="ltr">How do we want to structure this?</div>
42 <br/>
43 <div dir="ltr">I would start with a single project to not fragment this too much, as we have&nbsp;</div>
44 <div dir="ltr">a relatively small team actually looking into this, so everyone is looking at&nbsp;</div>
45 <div dir="ltr">most sub-projects anyway. And should we eventually hit scaling limits, we can&nbsp;</div>
46 <div dir="ltr">always expand this I think.</div>
47 <br/>
48 <div dir="ltr">We of course should also talk about what we actually want to put in there. My&nbsp;</div>
49 <div dir="ltr">current motivation is having a place to collect the tasks for getting more of&nbsp;</div>
50 <div dir="ltr">the former pimlibs into KF5, and anything else I run into on the way there&nbsp;</div>
51 <div dir="ltr">that we eventually should clean up/improve.</div>
52 <br/>
53 <div dir="ltr">regards,</div>
54 <div dir="ltr">Volker</div>
55 </div>
56 </div>
57 </td>
58 </tr>
59 <tr class="signWarnH">
60 <td dir="ltr">End of signed message</td>
61 </tr>
62 </table>
63 </div>
64 <a name="att2"/>
65 <div id="attachmentDiv2">
66 <div class="noquote">
67 <div dir="ltr">_______________________________________________</div>
68 <div dir="ltr">KDE PIM mailing list <a href="mailto:kde-pim@kde.org">kde-pim@kde.org</a></div>
69 <div dir="ltr">
70 <a href="https://mail.kde.org/mailman/listinfo/kde-pim">https://mail.kde.org/mailman/listinfo/kde-pim</a>
71 </div>
72 <div dir="ltr">KDE PIM home page at <a href="http://pim.kde.org/">http://pim.kde.org/</a></div>
73 </div>
74 </div>
75 </div>
76 </div>
77 </body>
78</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox.tree
new file mode 100644
index 00000000..2753978c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-base64-mailman-footer.mbox.tree
@@ -0,0 +1,7 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox b/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox
new file mode 100644
index 00000000..7939af83
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox
@@ -0,0 +1,52 @@
1From: firstname.lastname@example.com
2To: test@kolab.org
3Subject: OpenPGP signed+encrypted with 2 text attachments
4Date: Sun, 30 Aug 2015 12:01:20 +0200
5Message-ID: <4368981.7YjI8cQ7Br@vkpc5>
6X-KMail-Identity: 402312391
7X-KMail-Dictionary: en_US
8User-Agent: KMail/5.0.42 pre (Linux/3.16.6-2-desktop; KDE/5.14.0; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: multipart/encrypted; boundary="nextPart3246504.5GAivIUY6Q"; protocol="application/pgp-encrypted"
11
12--nextPart3246504.5GAivIUY6Q
13Content-Type: application/pgp-encrypted
14Content-Disposition: attachment
15Content-Transfer-Encoding: 7Bit
16
17Version: 1
18--nextPart3246504.5GAivIUY6Q
19Content-Type: application/octet-stream
20Content-Disposition: inline; filename="msg.asc"
21Content-Transfer-Encoding: 7Bit
22
23-----BEGIN PGP MESSAGE-----
24Version: GnuPG v2
25
26hQEMAwzOQ1qnzNo7AQf9Ge9nFjtqLOKSQNhobS+0iCB2GUdLP7LCIWu6gBo9pWa+
279wCNLxwmhqWOYv37RAk6v5VXjCYUX3/7UF7e7epSqo7YjS7VsUOow0gszQjJqocK
28Gd1T1oyNknza6oaRGgVeWPOZVAPb+Gj+3yS8VZa33Aq2ay7F7eI8dvRUN7Z3TuAh
29BOVV+itwHHzanfNG8RoCvokcE1vkANfvI3u7R4Q93U8Q+Qmjh1L5ypPe37N5BtAF
30UCPCiD9XySHjm5PyXx8ImrJDeUgFs1YhYox4B6NKsCcmm7R8NdYZYGNo1kzR4yKV
31FzMu1NUU/bwtvrpRXLe4dBL1pEkO2PpuMYDUR9+WVNLpAafTDbeIHPi/Z8v48seQ
32JxscRehfOB3DG1xrvQTMFJc3UJEBqNMkM9gOxLKOQcCcZp79FMsfWB7EjjlPR1Oh
33gyA5NR+4HxNw75Q5FpZ7qziWvIrb1Kzwfbsb9Dimx+MmiNMX9kUEPqkPo4pspwZ9
34pLCfjYUnikcnYyQ0b2ojsjQmLotYlz8mK0GH9L40zfFb1+oYfuu4Y9FPzHdPzNjx
35aFRY8cJQy1CNkCITsz53kni5rk3zVsapq0+NeBDEBYoUqX815fo0W+HVF7/j/uhT
36lPkJhRnJZPwOr5XgzPk3Yk9GlSRLJiqKF4/G8ya/nKyiNIebKM7DTcldWCmZM95B
37BIftaRN4hvVBhl0ElFnZg0xLP1AePFuuplRQTDuW8gpaNKrxwXiF3d4XJdVmjh/p
38YmnieIhbogUHFXugc3g9rE8c3oHA8b514ajSHUm9DXc0cXqw/DrsxXZtKXb+IDpF
39uv9AiM7bSU7I0h/AlaAL5uU0mL58XhkXXFQtaTbMS+u4Rv/Ie1IsnlWR4QSc4m7x
4091rfC1fIf/U43wwwnR+UjIRyr2vWcgTTpwnsZFDD8eSoJ8WqinazJRlMud6Sv+L6
41gI2wiCYyEYHrFEHy0WuS2nUSMNl5AWm31zB+erfKSLZr4EIFBIy4dJWZKwYhi46Q
42pDbw1Svf7xVdHix+5UkkYy3AY70ipf5bxA7FTJ1geJa86VKShDkqVpU6EtT+YQIJ
437geWCyskT0DTaPp6qc8QpjajmRYssDcjiTke5WiqLQAjm8BIuny0fNm6kNC8KMS7
44eGmaBI2nB92bgrqlAW+LhvW95YB0dfO8beg3jKk8s6OJ4gicGFEFp6hXFfEsEZiv
45gi7Q2QCVFvCV11884H8rtZYmMRFGmuVUvm6xh/z1xicmfSy0YUowgkA3jpi7o913
46fqmYOHAwzCxv8Zp7xBf9hLT8DxMXdxqYUnJ+FaEMRcFkJ1MAFBpQ9uDbbqAz5bd5
47F3d6o0JSleOOTDlNH7wpN15HYtaCx9v3mXLN9FY4Y1g4mE8wdU0JZn7sFEmgmAkV
48/vj9khHS6eB01GPiCA6sy/u2tSdCQQ==
49=1GHi
50-----END PGP MESSAGE-----
51
52--nextPart3246504.5GAivIUY6Q--
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..53856e74
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,88 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">this is the main body</div>
38 </div>
39 </div>
40 <a name="att1.2"/>
41 <div id="attachmentDiv1.2">
42 <table cellspacing="1" class="textAtm">
43 <tr class="textAtmH">
44 <td dir="ltr">attachment1.txt</td>
45 </tr>
46 <tr class="textAtmB">
47 <td>
48 <div class="noquote">
49 <div dir="ltr">this is one attachment</div>
50 </div>
51 </td>
52 </tr>
53 </table>
54 </div>
55 <a name="att1.3"/>
56 <div id="attachmentDiv1.3">
57 <table cellspacing="1" class="textAtm">
58 <tr class="textAtmH">
59 <td dir="ltr">attachment2.txt</td>
60 </tr>
61 <tr class="textAtmB">
62 <td>
63 <div class="noquote">
64 <div dir="ltr">this is the second attachment</div>
65 </div>
66 </td>
67 </tr>
68 </table>
69 </div>
70 </div>
71 </td>
72 </tr>
73 <tr class="signOkKeyOkH">
74 <td dir="ltr">End of signed message</td>
75 </tr>
76 </table>
77 </div>
78 </div>
79 </td>
80 </tr>
81 <tr class="encrH">
82 <td dir="ltr">End of encrypted message</td>
83 </tr>
84 </table>
85 </div>
86 </div>
87 </body>
88</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox.tree
new file mode 100644
index 00000000..6705a4d7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-encrypted-two-attachments.mbox.tree
@@ -0,0 +1,10 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::MimeMessagePart
5 * MimeTreeParser::TextMessagePart
6 * MimeTreeParser::MessagePart
7 * MimeTreeParser::AttachmentMessagePart
8 * MimeTreeParser::MessagePart
9 * MimeTreeParser::AttachmentMessagePart
10 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox b/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox
new file mode 100644
index 00000000..6d723d52
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox
@@ -0,0 +1,47 @@
1From: OpenPGP Test <test@kolab.org>
2To: test@kolab.org
3Subject: OpenPGP signed and encrypted
4Date: Tue, 07 Sep 2010 18:08:44 +0200
5User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
6MIME-Version: 1.0
7Content-Type: multipart/encrypted; boundary="nextPart25203163.0xtB501Z4V"; protocol="application/pgp-encrypted"
8Content-Transfer-Encoding: 7Bit
9
10
11--nextPart25203163.0xtB501Z4V
12Content-Type: application/pgp-encrypted
13Content-Disposition: attachment
14
15Version: 1
16--nextPart25203163.0xtB501Z4V
17Content-Type: application/octet-stream
18Content-Disposition: inline; filename="msg.asc"
19
20-----BEGIN PGP MESSAGE-----
21Version: GnuPG v2.0.15 (GNU/Linux)
22
23hQEMAwzOQ1qnzNo7AQf7BFYWaGiCTGtXY59bSh3LCXNnWZejblYALxIUNXOFEXbm
24y/YA95FmQsy3U5HRCAJV/DY1PEaJz1RTm9bcdIpDC3Ab2YzSwmOwV5fcoUOB2df4
25KjX19Q+2F3JxpPQ0N1gHf4dKfIu19LH+CKeFzUN13aJs5J4A5wlj+NjJikxzmxDS
26kDtNYndynPmo9DJQcsUFw3gpvx5HaHvx1cT4mAB2M5cd2l+vN1jYbaWb0x5Zq41z
27mRNI89aPieC3rcM2289m68fGloNbYvi8mZJu5RrI4Tbi/D7Rjm1y63lHgVV6AN88
28XAzRiedOeF99LoTBulrJdtT8AAgCs8nCetcWpIffdtLpAZiZkzHmYOU7nqGxqpRk
29OVeUTrCn9DW2SMmHjaP4IiKnMvzEycu5F4a72+V1LeMIhMSjTRTq+ZE2PTaqH59z
30QsMn7Nb6GlOICbTptRKNNtyJKO7xXlpT7YtvNKnCyEOkH2XrYH7GvpYCiuQ0/o+7
31SxV436ZejiYIg6DQDXJCoa2DXimGp0C10Jh0HwX0BixpoNtwEjkGRYcX6P/JzkH0
32oBood4Ly+Tiu6iVDisrK3AVGYpIzCrKkE9qULTw4R/jFKR2tcCqGb7Fxtk2LV7Md
333S+DyOKrvKQ5GNwbp9OE97pwk+Lr1JS3UAvj5f6BR+1PVNcC0i0wWkgwDjPh1eGD
34enMQmorE6+N0uHtH2F4fOxo/TbbA3+zhI25kVW3bO03xyUl/cmQZeb52nvfOvtOo
35gSb2j6bPkzljDMPEzrtJjbFtGHJbPfUQYJgZv9OE2EQIqpg6goIw279alBq6GLIX
36pkO+dRmztzjcDyhcLxMuQ4cTizel/0J/bU7U6lvwHSyZVbT4Ev+opG5K70Hbqbwr
37NZcgdWXbSeesxGM/oQaMeSurOevxVl+/zrTVAek61aRRd1baAYqgi2pf2V7y4oK3
38qkdxzmoFpRdNlfrQW65NZWnHOi9rC9XxANIwnVn3kRcDf+t2K4PrFluI157lXM/o
39wX91j88fazysbJlQ6TjsApO9ETiPOFEBqouxCTtCZzlUgyVG8jpIjdHWFnagHeXH
40+lXNdYjxnTWTjTxMOZC9ySMpXkjWdFI1ecxVwu6Ik6RX51rvBJAAXWP75yUjPKJ4
41rRi5oQl/VLl0QznO7lvgMPtUwgDVNWO/r7Kn9B387h9fAJZ/kWFAEDW2yhAzABqO
42rCNKDzBPgfAwCnikCpMoCbOL7SU8BdbzQHD8/Lkv4m0pzliHQ/KkGF710koBzTmF
43N7+wk9pwIuvcrEBQj567
44=GV0c
45-----END PGP MESSAGE-----
46
47--nextPart25203163.0xtB501Z4V--
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..86a964b8
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,55 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <div class="noquote">
35 <div dir="ltr">encrypted message text</div>
36 </div>
37 </div>
38 </td>
39 </tr>
40 <tr class="signOkKeyOkH">
41 <td dir="ltr">End of signed message</td>
42 </tr>
43 </table>
44 </div>
45 </div>
46 </td>
47 </tr>
48 <tr class="encrH">
49 <td dir="ltr">End of encrypted message</td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </body>
55</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox.tree
new file mode 100644
index 00000000..7d5bbeb7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-encrypted.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox
new file mode 100644
index 00000000..dbca8d45
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox
@@ -0,0 +1,126 @@
1Return-Path: <plasma-devel-bounces@kde.org>
2Delivered-To: einar@heavensinferno.net
3Received: from localhost (localhost.localdomain [127.0.0.1])
4 by akihabara.dennogumi.org (Postfix) with ESMTP id 15AB75CD846
5 for <einar@heavensinferno.net>; Mon, 8 Apr 2013 12:15:03 +0200 (CEST)
6Authentication-Results: akihabara.dennogumi.org; dkim=pass
7 (1024-bit key; insecure key) header.i=@kde.org header.b=vQ0NnJ9g;
8 dkim-adsp=pass
9X-Virus-Scanned: Debian amavisd-new at akihabara.dennogumi.org
10X-Spam-Flag: NO
11X-Spam-Score: -3.818
12X-Spam-Level:
13X-Spam-Status: No, score=-3.818 required=5 tests=[BAYES_50=0.8,
14 RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-2.328, T_DKIM_INVALID=0.01]
15 autolearn=unavailable
16Received: from akihabara.dennogumi.org ([127.0.0.1])
17 by localhost (akihabara.dennogumi.org [127.0.0.1]) (amavisd-new, port 10024)
18 with ESMTP id RMAq-XNJ040f for <einar@heavensinferno.net>;
19 Mon, 8 Apr 2013 12:14:44 +0200 (CEST)
20Received: from postbox.kde.org (postbox.kde.org [46.4.96.248])
21 by akihabara.dennogumi.org (Postfix) with ESMTP id 321675CD845
22 for <einar@heavensinferno.net>; Mon, 8 Apr 2013 12:14:44 +0200 (CEST)
23Authentication-Results: akihabara.dennogumi.org; dkim=pass
24 (1024-bit key; insecure key) header.i=@kde.org header.b=vQ0NnJ9g;
25 dkim-adsp=pass
26Received: from postbox.kde.org (localhost [IPv6:::1])
27 by postbox.kde.org (Postfix) with ESMTP id 9F5E1B37F95;
28 Mon, 8 Apr 2013 10:13:32 +0000 (UTC)
29DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kde.org; s=default;
30 t=1365416012; bh=ZJtmtbDLoGFwSyJUINdTk4UpuX+xzxcjGp7LSPrKNUs=;
31 h=From:To:Subject:Date:Message-ID:MIME-Version:Reply-To:List-Id:
32 List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:
33 Content-Type:Sender; b=vQ0NnJ9gjeyPLhPbQx6o9UxmILkS9KrhaKG6luAS/GR
34 6iR3HKXR3HE0BCkTMD5xmKL5ztFMGcU5e79fz0ch0sd2pnZ0y1WVw7KjCxsv/YtO9HM
35 OplAHmhwRI5zH8KKQbyvdPULvssI/ISdViAXmHw04hNPsBjsIGkTPgvNbPFuk=
36X-Original-To: plasma-devel@kde.org
37Delivered-To: plasma-devel@localhost.kde.org
38Received: from mail.bddf.ca (unknown [64.141.113.219])
39 by postbox.kde.org (Postfix) with ESMTP id 782C6B37BE6
40 for <plasma-devel@kde.org>; Mon, 8 Apr 2013 09:51:17 +0000 (UTC)
41Received: from freedom.localnet (242.13.24.31.ftth.as8758.net [31.24.13.242])
42 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
43 (No client certificate requested)
44 by mail.bddf.ca (Postfix) with ESMTPSA id 0CB712DC040
45 for <plasma-devel@kde.org>; Mon, 8 Apr 2013 03:51:16 -0600 (MDT)
46From: "Aaron J. Seigo" <aseigo@kde.org>
47To: plasma-devel@kde.org
48Subject: activities_optional branch in kde-workspace
49Date: Mon, 08 Apr 2013 11:51:11 +0200
50Message-ID: <4143483.eqrJjo7JEn@freedom>
51User-Agent: KMail/4.11 pre (Linux/3.6.3-1-desktop; KDE/4.10.60; i686;
52 git-da50be0; 2013-03-12)
53MIME-Version: 1.0
54X-Scanned-By: MIMEDefang 2.71 on 46.4.96.248
55X-BeenThere: plasma-devel@kde.org
56X-Mailman-Version: 2.1.14
57Precedence: list
58Reply-To: plasma-devel@kde.org
59List-Id: <plasma-devel.kde.org>
60List-Unsubscribe: <https://mail.kde.org/mailman/options/plasma-devel>,
61 <mailto:plasma-devel-request@kde.org?subject=unsubscribe>
62List-Archive: <http://mail.kde.org/pipermail/plasma-devel>
63List-Post: <mailto:plasma-devel@kde.org>
64List-Help: <mailto:plasma-devel-request@kde.org?subject=help>
65List-Subscribe: <https://mail.kde.org/mailman/listinfo/plasma-devel>,
66 <mailto:plasma-devel-request@kde.org?subject=subscribe>
67Content-Type: multipart/mixed; boundary="===============6664737512143839854=="
68Errors-To: plasma-devel-bounces@kde.org
69Sender: plasma-devel-bounces@kde.org
70
71
72--===============6664737512143839854==
73Content-Type: multipart/signed; boundary="nextPart1996263.NlFDv9GTkA"; micalg="pgp-sha1"; protocol="application/pgp-signature"
74
75
76--nextPart1996263.NlFDv9GTkA
77Content-Transfer-Encoding: 7Bit
78Content-Type: text/plain; charset="us-ascii"
79
80hi..
81
82i noticed a new branch when i pulled kde-workspace today (finally!):
83activities_optional
84
85the lone commit in it was pushed on april 1, so maybe it's an april fools
86joke, but if it isn't, it looks like someone is trying to do something that
87makes no sense (and has no chance of being merged into master). so if this is
88a "for reals" branch, perhaps the motivation behind it can be shared?
89
90--
91Aaron J. Seigo
92--nextPart1996263.NlFDv9GTkA
93Content-Type: application/pgp-signature; name="signature.asc"
94Content-Description: This is a digitally signed message part.
95Content-Transfer-Encoding: 7Bit
96
97-----BEGIN PGP SIGNATURE-----
98Version: GnuPG v2.0.19 (GNU/Linux)
99
100iEUEABECAAYFAlFikxAACgkQ1rcusafx20MHbwCfeXOgTDwtR81XJwAdcQB40Lt7
101t2IAmJpIZxdU+SSruySeEfbQs3VXq/8=
102=BQPF
103-----END PGP SIGNATURE-----
104--nextPart1996263.NlFDv9GTkA
105Content-Type: text/plain; name="broken.attachment"
106Content-Transfer-Encoding: 7Bit
107
108Let's break a signed message - This messageblock should not be here :D
109
110--nextPart1996263.NlFDv9GTkA--
111
112
113--===============6664737512143839854==
114Content-Type: text/plain; charset="us-ascii"
115MIME-Version: 1.0
116Content-Transfer-Encoding: 7bit
117Content-Disposition: inline
118
119_______________________________________________
120Plasma-devel mailing list
121Plasma-devel@kde.org
122https://mail.kde.org/mailman/listinfo/plasma-devel
123
124--===============6664737512143839854==--
125
126
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox.html
new file mode 100644
index 00000000..a95252e4
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox.html
@@ -0,0 +1,60 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.1"/>
11 <div id="attachmentDiv1.1">
12 <div class="noquote">
13 <div dir="ltr">hi..</div>
14 <br/>
15 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
16 <div dir="ltr">activities_optional</div>
17 <br/>
18 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
19 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
20 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
21 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
22 <br/>
23 <div dir="ltr">--&nbsp;</div>
24 <div dir="ltr">Aaron J. Seigo</div>
25 </div>
26 </div>
27 <a name="att1.2"/>
28 <div id="attachmentDiv1.2">
29 <hr/>
30 <div>
31 <a href="attachment:1.2?place=body"><img align="center" height="48" width="48" src="file:application-pgp-signature.svg" border="0" style="max-width: 100%" alt=""/>signature.asc</a>
32 </div>
33 <div>This is a digitally signed message part.</div>
34 </div>
35 <a name="att1.3"/>
36 <div id="attachmentDiv1.3">
37 <hr/>
38 <div>
39 <a href="attachment:1.3?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>broken.attachment</a>
40 </div>
41 <div/>
42 </div>
43 </div>
44 <a name="att2"/>
45 <div id="attachmentDiv2">
46 <div class="noquote">
47 <div dir="ltr">_______________________________________________</div>
48 <div dir="ltr">Plasma-devel mailing list</div>
49 <div dir="ltr">
50 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
51 </div>
52 <div dir="ltr">
53 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
54 </div>
55 </div>
56 </div>
57 </div>
58 </div>
59 </body>
60</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox.tree
new file mode 100644
index 00000000..906e6274
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+additional-children.mbox.tree
@@ -0,0 +1,10 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::AttachmentMessagePart
8 * MimeTreeParser::MessagePart
9 * MimeTreeParser::AttachmentMessagePart
10 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox
new file mode 100644
index 00000000..362dff3e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox
@@ -0,0 +1,67 @@
1Return-Path: <plasma-devel-bounces@kde.org>
2Delivered-To: einar@heavensinferno.net
3From: "Aaron J. Seigo" <aseigo@kde.org>
4To: plasma-devel@kde.org
5Subject: activities_optional branch in kde-workspace
6Date: Mon, 08 Apr 2013 11:51:11 +0200
7Message-ID: <4143483.eqrJjo7JEn@freedom>
8User-Agent: KMail/4.11 pre (Linux/3.6.3-1-desktop; KDE/4.10.60; i686;
9 git-da50be0; 2013-03-12)
10X-Mailman-Version: 2.1.14
11Precedence: list
12Reply-To: plasma-devel@kde.org
13List-Id: <plasma-devel.kde.org>
14List-Unsubscribe: <https://mail.kde.org/mailman/options/plasma-devel>,
15 <mailto:plasma-devel-request@kde.org?subject=unsubscribe>
16List-Archive: <http://mail.kde.org/pipermail/plasma-devel>
17List-Post: <mailto:plasma-devel@kde.org>
18List-Help: <mailto:plasma-devel-request@kde.org?subject=help>
19List-Subscribe: <https://mail.kde.org/mailman/listinfo/plasma-devel>,
20 <mailto:plasma-devel-request@kde.org?subject=subscribe>
21Errors-To: plasma-devel-bounces@kde.org
22Sender: plasma-devel-bounces@kde.org
23
24Oh man a header :)
25
26--__--__--
27
28Message:
29MIME-Version: 1.0
30Content-Type: multipart/signed; boundary="nextPart1996263.NlFDv9GTkA"; micalg="pgp-sha1"; protocol="application/pgp-signature"
31
32
33--nextPart1996263.NlFDv9GTkA
34Content-Transfer-Encoding: 7Bit
35Content-Type: text/plain; charset="us-ascii"
36
37hi..
38
39i noticed a new branch when i pulled kde-workspace today (finally!):
40activities_optional
41
42the lone commit in it was pushed on april 1, so maybe it's an april fools
43joke, but if it isn't, it looks like someone is trying to do something that
44makes no sense (and has no chance of being merged into master). so if this is
45a "for reals" branch, perhaps the motivation behind it can be shared?
46
47--
48Aaron J. Seigo
49--nextPart1996263.NlFDv9GTkA
50Content-Type: application/pgp-signature; name="signature.asc"
51Content-Description: This is a digitally signed message part.
52Content-Transfer-Encoding: 7Bit
53
54-----BEGIN PGP SIGNATURE-----
55Version: GnuPG v2.0.19 (GNU/Linux)
56
57iEUEABECAAYFAlFikxAACgkQ1rcusafx20MHbwCfeXOgTDwtR81XJwAdcQB40Lt7
58t2IAmJpIZxdU+SSruySeEfbQs3VXq/8=
59=BQPF
60-----END PGP SIGNATURE-----
61
62--__--__--
63
64_______________________________________________
65Plasma-devel mailing list
66Plasma-devel@kde.org
67https://mail.kde.org/mailman/listinfo/plasma-devel \ No newline at end of file
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox.html
new file mode 100644
index 00000000..59c6d690
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox.html
@@ -0,0 +1,94 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <div style="position: relative; word-wrap: break-word">
9 <a name="att"/>
10 <div id="attachmentDiv">
11 <div class="noquote">
12 <div dir="ltr">Oh man a header :)</div>
13 <br/>
14 </div>
15 </div>
16 </div>
17 <div style="position: relative; word-wrap: break-word">
18 <a name="att"/>
19 <div id="attachmentDiv">
20 <table cellspacing="1" cellpadding="1" class="rfc822">
21 <tr class="rfc822H">
22 <td dir="ltr">
23 <a href="attachment:e1:1?place=body">Encapsulated message</a>
24 </td>
25 </tr>
26 <tr class="rfc822B">
27 <td>
28 <a name="att1"/>
29 <div id="attachmentDiv1">
30 <table cellspacing="1" cellpadding="1" class="signWarn">
31 <tr class="signWarnH">
32 <td dir="ltr">
33 <table cellspacing="0" cellpadding="0" width="100%">
34 <tr>
35 <td>Not enough information to check signature validity.</td>
36 <td align="right">
37 <a href="kmail:showSignatureDetails">Show Details</a>
38 </td>
39 </tr>
40 </table>
41 </td>
42 </tr>
43 <tr class="signWarnB">
44 <td>
45 <a name="att1.1"/>
46 <div id="attachmentDiv1.1">
47 <div class="noquote">
48 <div dir="ltr">hi..</div>
49 <br/>
50 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
51 <div dir="ltr">activities_optional</div>
52 <br/>
53 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
54 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
55 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
56 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
57 <br/>
58 <div dir="ltr">--&nbsp;</div>
59 <div dir="ltr">Aaron J. Seigo</div>
60 </div>
61 </div>
62 </td>
63 </tr>
64 <tr class="signWarnH">
65 <td dir="ltr">End of signed message</td>
66 </tr>
67 </table>
68 </div>
69 </td>
70 </tr>
71 <tr class="rfc822H">
72 <td dir="ltr">End of encapsulated message</td>
73 </tr>
74 </table>
75 </div>
76 </div>
77 <div style="position: relative; word-wrap: break-word">
78 <a name="att"/>
79 <div id="attachmentDiv">
80 <div class="noquote">
81 <div dir="ltr">Plasma-devel mailing list</div>
82 <div dir="ltr">
83 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
84 </div>
85 <div dir="ltr">
86 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
87 </div>
88 </div>
89 </div>
90 </div>
91 </div>
92 </div>
93 </body>
94</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox.tree
new file mode 100644
index 00000000..c8310bc1
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist+old.mbox.tree
@@ -0,0 +1,13 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MessagePartList
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::MimeMessagePart
7 * MimeTreeParser::EncapsulatedRfc822MessagePart
8 * MimeTreeParser::SignedMessagePart
9 * MimeTreeParser::TextMessagePart
10 * MimeTreeParser::MessagePart
11 * MimeTreeParser::MimeMessagePart
12 * MimeTreeParser::TextMessagePart
13 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox
new file mode 100644
index 00000000..8adb9f4c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox
@@ -0,0 +1,121 @@
1Return-Path: <plasma-devel-bounces@kde.org>
2Delivered-To: einar@heavensinferno.net
3Received: from localhost (localhost.localdomain [127.0.0.1])
4 by akihabara.dennogumi.org (Postfix) with ESMTP id 15AB75CD846
5 for <einar@heavensinferno.net>; Mon, 8 Apr 2013 12:15:03 +0200 (CEST)
6Authentication-Results: akihabara.dennogumi.org; dkim=pass
7 (1024-bit key; insecure key) header.i=@kde.org header.b=vQ0NnJ9g;
8 dkim-adsp=pass
9X-Virus-Scanned: Debian amavisd-new at akihabara.dennogumi.org
10X-Spam-Flag: NO
11X-Spam-Score: -3.818
12X-Spam-Level:
13X-Spam-Status: No, score=-3.818 required=5 tests=[BAYES_50=0.8,
14 RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-2.328, T_DKIM_INVALID=0.01]
15 autolearn=unavailable
16Received: from akihabara.dennogumi.org ([127.0.0.1])
17 by localhost (akihabara.dennogumi.org [127.0.0.1]) (amavisd-new, port 10024)
18 with ESMTP id RMAq-XNJ040f for <einar@heavensinferno.net>;
19 Mon, 8 Apr 2013 12:14:44 +0200 (CEST)
20Received: from postbox.kde.org (postbox.kde.org [46.4.96.248])
21 by akihabara.dennogumi.org (Postfix) with ESMTP id 321675CD845
22 for <einar@heavensinferno.net>; Mon, 8 Apr 2013 12:14:44 +0200 (CEST)
23Authentication-Results: akihabara.dennogumi.org; dkim=pass
24 (1024-bit key; insecure key) header.i=@kde.org header.b=vQ0NnJ9g;
25 dkim-adsp=pass
26Received: from postbox.kde.org (localhost [IPv6:::1])
27 by postbox.kde.org (Postfix) with ESMTP id 9F5E1B37F95;
28 Mon, 8 Apr 2013 10:13:32 +0000 (UTC)
29DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kde.org; s=default;
30 t=1365416012; bh=ZJtmtbDLoGFwSyJUINdTk4UpuX+xzxcjGp7LSPrKNUs=;
31 h=From:To:Subject:Date:Message-ID:MIME-Version:Reply-To:List-Id:
32 List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:
33 Content-Type:Sender; b=vQ0NnJ9gjeyPLhPbQx6o9UxmILkS9KrhaKG6luAS/GR
34 6iR3HKXR3HE0BCkTMD5xmKL5ztFMGcU5e79fz0ch0sd2pnZ0y1WVw7KjCxsv/YtO9HM
35 OplAHmhwRI5zH8KKQbyvdPULvssI/ISdViAXmHw04hNPsBjsIGkTPgvNbPFuk=
36X-Original-To: plasma-devel@kde.org
37Delivered-To: plasma-devel@localhost.kde.org
38Received: from mail.bddf.ca (unknown [64.141.113.219])
39 by postbox.kde.org (Postfix) with ESMTP id 782C6B37BE6
40 for <plasma-devel@kde.org>; Mon, 8 Apr 2013 09:51:17 +0000 (UTC)
41Received: from freedom.localnet (242.13.24.31.ftth.as8758.net [31.24.13.242])
42 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
43 (No client certificate requested)
44 by mail.bddf.ca (Postfix) with ESMTPSA id 0CB712DC040
45 for <plasma-devel@kde.org>; Mon, 8 Apr 2013 03:51:16 -0600 (MDT)
46From: "Aaron J. Seigo" <aseigo@kde.org>
47To: plasma-devel@kde.org
48Subject: activities_optional branch in kde-workspace
49Date: Mon, 08 Apr 2013 11:51:11 +0200
50Message-ID: <4143483.eqrJjo7JEn@freedom>
51User-Agent: KMail/4.11 pre (Linux/3.6.3-1-desktop; KDE/4.10.60; i686;
52 git-da50be0; 2013-03-12)
53MIME-Version: 1.0
54X-Scanned-By: MIMEDefang 2.71 on 46.4.96.248
55X-BeenThere: plasma-devel@kde.org
56X-Mailman-Version: 2.1.14
57Precedence: list
58Reply-To: plasma-devel@kde.org
59List-Id: <plasma-devel.kde.org>
60List-Unsubscribe: <https://mail.kde.org/mailman/options/plasma-devel>,
61 <mailto:plasma-devel-request@kde.org?subject=unsubscribe>
62List-Archive: <http://mail.kde.org/pipermail/plasma-devel>
63List-Post: <mailto:plasma-devel@kde.org>
64List-Help: <mailto:plasma-devel-request@kde.org?subject=help>
65List-Subscribe: <https://mail.kde.org/mailman/listinfo/plasma-devel>,
66 <mailto:plasma-devel-request@kde.org?subject=subscribe>
67Content-Type: multipart/mixed; boundary="===============6664737512143839854=="
68Errors-To: plasma-devel-bounces@kde.org
69Sender: plasma-devel-bounces@kde.org
70
71
72--===============6664737512143839854==
73Content-Type: multipart/signed; boundary="nextPart1996263.NlFDv9GTkA"; micalg="pgp-sha1"; protocol="application/pgp-signature"
74
75
76--nextPart1996263.NlFDv9GTkA
77Content-Transfer-Encoding: 7Bit
78Content-Type: text/plain; charset="us-ascii"
79
80hi..
81
82i noticed a new branch when i pulled kde-workspace today (finally!):
83activities_optional
84
85the lone commit in it was pushed on april 1, so maybe it's an april fools
86joke, but if it isn't, it looks like someone is trying to do something that
87makes no sense (and has no chance of being merged into master). so if this is
88a "for reals" branch, perhaps the motivation behind it can be shared?
89
90--
91Aaron J. Seigo
92--nextPart1996263.NlFDv9GTkA
93Content-Type: application/pgp-signature; name="signature.asc"
94Content-Description: This is a digitally signed message part.
95Content-Transfer-Encoding: 7Bit
96
97-----BEGIN PGP SIGNATURE-----
98Version: GnuPG v2.0.19 (GNU/Linux)
99
100iEUEABECAAYFAlFikxAACgkQ1rcusafx20MHbwCfeXOgTDwtR81XJwAdcQB40Lt7
101t2IAmJpIZxdU+SSruySeEfbQs3VXq/8=
102=BQPF
103-----END PGP SIGNATURE-----
104
105--nextPart1996263.NlFDv9GTkA--
106
107
108--===============6664737512143839854==
109Content-Type: text/plain; charset="us-ascii"
110MIME-Version: 1.0
111Content-Transfer-Encoding: 7bit
112Content-Disposition: inline
113
114_______________________________________________
115Plasma-devel mailing list
116Plasma-devel@kde.org
117https://mail.kde.org/mailman/listinfo/plasma-devel
118
119--===============6664737512143839854==--
120
121
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.html
new file mode 100644
index 00000000..7acb6fbf
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.html
@@ -0,0 +1,65 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signWarn">
11 <tr class="signWarnH">
12 <td dir="ltr">
13 <table cellspacing="0" cellpadding="0" width="100%">
14 <tr>
15 <td>Not enough information to check signature validity.</td>
16 <td align="right">
17 <a href="kmail:showSignatureDetails">Show Details</a>
18 </td>
19 </tr>
20 </table>
21 </td>
22 </tr>
23 <tr class="signWarnB">
24 <td>
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">hi..</div>
29 <br/>
30 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
31 <div dir="ltr">activities_optional</div>
32 <br/>
33 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
34 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
35 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
36 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
37 <br/>
38 <div dir="ltr">--&nbsp;</div>
39 <div dir="ltr">Aaron J. Seigo</div>
40 </div>
41 </div>
42 </td>
43 </tr>
44 <tr class="signWarnH">
45 <td dir="ltr">End of signed message</td>
46 </tr>
47 </table>
48 </div>
49 <a name="att2"/>
50 <div id="attachmentDiv2">
51 <div class="noquote">
52 <div dir="ltr">_______________________________________________</div>
53 <div dir="ltr">Plasma-devel mailing list</div>
54 <div dir="ltr">
55 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
56 </div>
57 <div dir="ltr">
58 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
59 </div>
60 </div>
61 </div>
62 </div>
63 </div>
64 </body>
65</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.inProgress.html b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.inProgress.html
new file mode 100644
index 00000000..77c6b29b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.inProgress.html
@@ -0,0 +1,56 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signInProgress">
11 <tr class="signInProgressH">
12 <td dir="ltr">Please wait while the signature is being verified...</td>
13 </tr>
14 <tr class="signInProgressB">
15 <td>
16 <a name="att1.1"/>
17 <div id="attachmentDiv1.1">
18 <div class="noquote">
19 <div dir="ltr">hi..</div>
20 <br/>
21 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
22 <div dir="ltr">activities_optional</div>
23 <br/>
24 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
25 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
26 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
27 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
28 <br/>
29 <div dir="ltr">--&nbsp;</div>
30 <div dir="ltr">Aaron J. Seigo</div>
31 </div>
32 </div>
33 </td>
34 </tr>
35 <tr class="signInProgressH">
36 <td dir="ltr">End of signed message</td>
37 </tr>
38 </table>
39 </div>
40 <a name="att2"/>
41 <div id="attachmentDiv2">
42 <div class="noquote">
43 <div dir="ltr">_______________________________________________</div>
44 <div dir="ltr">Plasma-devel mailing list</div>
45 <div dir="ltr">
46 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
47 </div>
48 <div dir="ltr">
49 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
50 </div>
51 </div>
52 </div>
53 </div>
54 </div>
55 </body>
56</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.tree
new file mode 100644
index 00000000..2753978c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-mailinglist.mbox.tree
@@ -0,0 +1,7 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox b/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox
new file mode 100644
index 00000000..e50879b9
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox
@@ -0,0 +1,35 @@
1Return-Path: <plasma-devel-bounces@kde.org>
2Delivered-To: einar@heavensinferno.net
3Content-Type: multipart/signed; boundary="nextPart1996263.NlFDv9GTkA"; micalg="pgp-sha1"; protocol="application/broken-signature"
4
5
6--nextPart1996263.NlFDv9GTkA
7Content-Transfer-Encoding: 7Bit
8Content-Type: text/plain; charset="us-ascii"
9
10hi..
11
12i noticed a new branch when i pulled kde-workspace today (finally!):
13activities_optional
14
15the lone commit in it was pushed on april 1, so maybe it's an april fools
16joke, but if it isn't, it looks like someone is trying to do something that
17makes no sense (and has no chance of being merged into master). so if this is
18a "for reals" branch, perhaps the motivation behind it can be shared?
19
20--
21Aaron J. Seigo
22--nextPart1996263.NlFDv9GTkA
23Content-Type: application/broken-signature; name="signature.asc"
24Content-Description: This is a digitally signed message part.
25Content-Transfer-Encoding: 7Bit
26
27-----BEGIN PGP SIGNATURE-----
28Version: GnuPG v2.0.19 (GNU/Linux)
29
30iEUEABECAAYFAlFikxAACgkQ1rcusafx20MHbwCfeXOgTDwtR81XJwAdcQB40Lt7
31t2IAmJpIZxdU+SSruySeEfbQs3VXq/8=
32=BQPF
33-----END PGP SIGNATURE-----
34
35--nextPart1996263.NlFDv9GTkA--
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox.html
new file mode 100644
index 00000000..4a5f337b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox.html
@@ -0,0 +1,36 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">hi..</div>
12 <br/>
13 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
14 <div dir="ltr">activities_optional</div>
15 <br/>
16 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
17 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
18 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
19 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
20 <br/>
21 <div dir="ltr">--&nbsp;</div>
22 <div dir="ltr">Aaron J. Seigo</div>
23 </div>
24 </div>
25 <a name="att2"/>
26 <div id="attachmentDiv2">
27 <hr/>
28 <div>
29 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:unknown.svg" border="0" style="max-width: 100%" alt=""/>signature.asc</a>
30 </div>
31 <div>This is a digitally signed message part.</div>
32 </div>
33 </div>
34 </div>
35 </body>
36</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox.tree
new file mode 100644
index 00000000..d824a11b
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-no-protocol.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
5 * MimeTreeParser::AttachmentMessagePart
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox b/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox
new file mode 100644
index 00000000..462f62a3
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox
@@ -0,0 +1,54 @@
1From: firstname.lastname@example.com
2To: test@kolab.org
3Subject: OpenPGP signed with 2 text attachments
4Date: Sun, 30 Aug 2015 12:02:56 +0200
5Message-ID: <2033829.IGepAdxqt9@vkpc5>
6X-KMail-Identity: 402312391
7X-KMail-Dictionary: en_US
8User-Agent: KMail/5.0.42 pre (Linux/3.16.6-2-desktop; KDE/5.14.0; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: multipart/signed; boundary="nextPart3682207.KLrp2sxpbf"; micalg="pgp-sha1"; protocol="application/pgp-signature"
11
12--nextPart3682207.KLrp2sxpbf
13Content-Type: multipart/mixed; boundary="nextPart2397422.QDHKUNdbyg"
14Content-Transfer-Encoding: 7Bit
15
16This is a multi-part message in MIME format.
17
18--nextPart2397422.QDHKUNdbyg
19Content-Transfer-Encoding: 7Bit
20Content-Type: text/plain; charset="us-ascii"
21
22this is the main body text
23--nextPart2397422.QDHKUNdbyg
24Content-Disposition: inline; filename="attachment1.txt"
25Content-Transfer-Encoding: 7Bit
26Content-Type: text/plain; charset="utf-8"; name="attachment1.txt"
27
28this is attachment one
29--nextPart2397422.QDHKUNdbyg
30Content-Disposition: inline; filename="attachment2.txt"
31Content-Transfer-Encoding: 7Bit
32Content-Type: text/plain; charset="utf-8"; name="attachment2.txt"
33
34this is attachment two
35--nextPart2397422.QDHKUNdbyg--
36
37--nextPart3682207.KLrp2sxpbf
38Content-Type: application/pgp-signature; name="signature.asc"
39Content-Description: This is a digitally signed message part.
40Content-Transfer-Encoding: 7Bit
41
42-----BEGIN PGP SIGNATURE-----
43Version: GnuPG v2
44
45iQEVAwUAVeLU0I2YYMWPJG3mAQL/fgf+LXmO7bKafdd4g5OOVHHyXRprVmX/6hBq
46mZoor29KLIHkvAH9OJi4qBy/ZKwqqKLfttLzHb2UaAfl5kn4f0ckmnwUhU7u32Sm
47JZ0Q50SxrRVFRyvTvPG22ho9IwQUO1YSZrL4wO9v8ZBQ3vkfpmAiUQVxPQMINc8L
48i68xQEm4y1Dtoc+DTUkoIMeOOPnEl6PTMPrwn906K0r30hI4788fEGRn6uOXb+vD
49G/ISlXu+JHIxxf/J5/jVjKNbra+trrfSPzB3piJIjBLEPO5FvLx8SgQFJcJHt/kw
50ps8D5YULj/MVMLlsPtXDdZmbOi/G9pN0tr05MKcXsO5Ywe7n2BhASw==
51=2Nzb
52-----END PGP SIGNATURE-----
53
54--nextPart3682207.KLrp2sxpbf--
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..06718641
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,71 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">this is the main body text</div>
29 </div>
30 </div>
31 <a name="att1.2"/>
32 <div id="attachmentDiv1.2">
33 <table cellspacing="1" class="textAtm">
34 <tr class="textAtmH">
35 <td dir="ltr">attachment1.txt</td>
36 </tr>
37 <tr class="textAtmB">
38 <td>
39 <div class="noquote">
40 <div dir="ltr">this is attachment one</div>
41 </div>
42 </td>
43 </tr>
44 </table>
45 </div>
46 <a name="att1.3"/>
47 <div id="attachmentDiv1.3">
48 <table cellspacing="1" class="textAtm">
49 <tr class="textAtmH">
50 <td dir="ltr">attachment2.txt</td>
51 </tr>
52 <tr class="textAtmB">
53 <td>
54 <div class="noquote">
55 <div dir="ltr">this is attachment two</div>
56 </div>
57 </td>
58 </tr>
59 </table>
60 </div>
61 </div>
62 </td>
63 </tr>
64 <tr class="signOkKeyOkH">
65 <td dir="ltr">End of signed message</td>
66 </tr>
67 </table>
68 </div>
69 </div>
70 </body>
71</html>
diff --git a/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox.tree b/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox.tree
new file mode 100644
index 00000000..7133f4be
--- /dev/null
+++ b/framework/src/domain/mime/testdata/openpgp-signed-two-attachments.mbox.tree
@@ -0,0 +1,9 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/plaintext.mbox b/framework/src/domain/mime/testdata/plaintext.mbox
new file mode 100644
index 00000000..d185b1c1
--- /dev/null
+++ b/framework/src/domain/mime/testdata/plaintext.mbox
@@ -0,0 +1,13 @@
1Return-Path: <konqi@example.org>
2Date: Wed, 8 Jun 2016 20:34:44 -0700
3From: Konqi <konqi@example.org>
4To: konqi@kde.org
5Subject: A random subject with alternative contenttype
6MIME-Version: 1.0
7Content-Type: text/plain; charset=utf-8
8Content-Transfer-Encoding: quoted-printable
9
10If you can see this text it means that your email client couldn't display o=
11ur newsletter properly.
12Please visit this link to view the newsletter on our website: http://www.go=
13g.com/newsletter/
diff --git a/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox b/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox
new file mode 100644
index 00000000..9b715161
--- /dev/null
+++ b/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox
@@ -0,0 +1,92 @@
1From test@kolab.org Wed, 08 Sep 2010 17:53:29 +0200
2From: OpenPGP Test <test@kolab.org>
3Subject: Signed Fwd: OpenPGP signed and encrypted
4Date: Wed, 08 Sep 2010 17:53:29 +0200
5User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
6MIME-Version: 1.0
7Content-Type: multipart/signed; boundary="nextPart4350242.cT7m6ulPOV"; micalg="pgp-sha1"; protocol="application/pgp-signature"
8Content-Transfer-Encoding: 7Bit
9
10
11--nextPart4350242.cT7m6ulPOV
12Content-Type: multipart/mixed; boundary="nextPart1512490.WQBKYaOrt8"
13Content-Transfer-Encoding: 7Bit
14
15
16--nextPart1512490.WQBKYaOrt8
17Content-Transfer-Encoding: 7Bit
18Content-Type: text/plain; charset="us-ascii"
19
20bla bla bla
21--nextPart1512490.WQBKYaOrt8
22Content-Type: message/rfc822
23Content-Disposition: inline; filename="forwarded message"
24Content-Description: OpenPGP Test <test@kolab.org>: OpenPGP signed and encrypted
25
26From: OpenPGP Test <test@kolab.org>
27To: test@kolab.org
28Subject: OpenPGP signed and encrypted
29Date: Tue, 07 Sep 2010 18:08:44 +0200
30User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
31MIME-Version: 1.0
32Content-Type: multipart/encrypted; boundary="nextPart25203163.0xtB501Z4V"; protocol="application/pgp-encrypted"
33Content-Transfer-Encoding: 7Bit
34
35
36--nextPart25203163.0xtB501Z4V
37Content-Type: application/pgp-encrypted
38Content-Disposition: attachment
39
40Version: 1
41--nextPart25203163.0xtB501Z4V
42Content-Type: application/octet-stream
43Content-Disposition: inline; filename="msg.asc"
44
45-----BEGIN PGP MESSAGE-----
46Version: GnuPG v2.0.15 (GNU/Linux)
47
48hQEMAwzOQ1qnzNo7AQf7BFYWaGiCTGtXY59bSh3LCXNnWZejblYALxIUNXOFEXbm
49y/YA95FmQsy3U5HRCAJV/DY1PEaJz1RTm9bcdIpDC3Ab2YzSwmOwV5fcoUOB2df4
50KjX19Q+2F3JxpPQ0N1gHf4dKfIu19LH+CKeFzUN13aJs5J4A5wlj+NjJikxzmxDS
51kDtNYndynPmo9DJQcsUFw3gpvx5HaHvx1cT4mAB2M5cd2l+vN1jYbaWb0x5Zq41z
52mRNI89aPieC3rcM2289m68fGloNbYvi8mZJu5RrI4Tbi/D7Rjm1y63lHgVV6AN88
53XAzRiedOeF99LoTBulrJdtT8AAgCs8nCetcWpIffdtLpAZiZkzHmYOU7nqGxqpRk
54OVeUTrCn9DW2SMmHjaP4IiKnMvzEycu5F4a72+V1LeMIhMSjTRTq+ZE2PTaqH59z
55QsMn7Nb6GlOICbTptRKNNtyJKO7xXlpT7YtvNKnCyEOkH2XrYH7GvpYCiuQ0/o+7
56SxV436ZejiYIg6DQDXJCoa2DXimGp0C10Jh0HwX0BixpoNtwEjkGRYcX6P/JzkH0
57oBood4Ly+Tiu6iVDisrK3AVGYpIzCrKkE9qULTw4R/jFKR2tcCqGb7Fxtk2LV7Md
583S+DyOKrvKQ5GNwbp9OE97pwk+Lr1JS3UAvj5f6BR+1PVNcC0i0wWkgwDjPh1eGD
59enMQmorE6+N0uHtH2F4fOxo/TbbA3+zhI25kVW3bO03xyUl/cmQZeb52nvfOvtOo
60gSb2j6bPkzljDMPEzrtJjbFtGHJbPfUQYJgZv9OE2EQIqpg6goIw279alBq6GLIX
61pkO+dRmztzjcDyhcLxMuQ4cTizel/0J/bU7U6lvwHSyZVbT4Ev+opG5K70Hbqbwr
62NZcgdWXbSeesxGM/oQaMeSurOevxVl+/zrTVAek61aRRd1baAYqgi2pf2V7y4oK3
63qkdxzmoFpRdNlfrQW65NZWnHOi9rC9XxANIwnVn3kRcDf+t2K4PrFluI157lXM/o
64wX91j88fazysbJlQ6TjsApO9ETiPOFEBqouxCTtCZzlUgyVG8jpIjdHWFnagHeXH
65+lXNdYjxnTWTjTxMOZC9ySMpXkjWdFI1ecxVwu6Ik6RX51rvBJAAXWP75yUjPKJ4
66rRi5oQl/VLl0QznO7lvgMPtUwgDVNWO/r7Kn9B387h9fAJZ/kWFAEDW2yhAzABqO
67rCNKDzBPgfAwCnikCpMoCbOL7SU8BdbzQHD8/Lkv4m0pzliHQ/KkGF710koBzTmF
68N7+wk9pwIuvcrEBQj567
69=GV0c
70-----END PGP MESSAGE-----
71
72--nextPart25203163.0xtB501Z4V--
73
74--nextPart1512490.WQBKYaOrt8--
75
76--nextPart4350242.cT7m6ulPOV
77Content-Type: application/pgp-signature; name="signature.asc"
78Content-Description: This is a digitally signed message part.
79
80-----BEGIN PGP SIGNATURE-----
81Version: GnuPG v2.0.15 (GNU/Linux)
82
83iQEcBAABAgAGBQJMh7F5AAoJEI2YYMWPJG3mOB0IALeHfwg8u7wK0tDKtKqxQSqC
842Bbk4pTLuLw/VniQNauDG+kc1eUc5RJk/R31aB1ysiQCV5Q8ucI8c9vCDDMbd+s4
85t2bZUEzMpXrw/aFiHgYGXFAY+tpqZqDGNVRNHWsPYJKtx8cci9E5DLnBJcVXVqib
863iiHlr9AQOok3PUmpPk1a61q2L0kk8wqRenC0yZXNw5qFn5WW/hFeCOfYB+t+s5N
87IuE6ihFCJIlvGborrvl6VgPJTCyUQ3XgI90vS6ABN8TFlCNr3grXOWUePc2a20or
88xFgh38cnSR64WJajU5K1nUL9/RgfIcs+PvyHuJaRf/iUFkj1jiMEuaSi9jVFco0=
89=bArV
90-----END PGP SIGNATURE-----
91
92--nextPart4350242.cT7m6ulPOV--
diff --git a/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox.html b/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..b91772b7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">bla bla bla</div>
29 </div>
30 </div>
31 <a name="att1.2"/>
32 <div id="attachmentDiv1.2">
33 <table cellspacing="1" cellpadding="1" class="rfc822">
34 <tr class="rfc822H">
35 <td dir="ltr">
36 <a href="attachment:1.2.1?place=body">Encapsulated message</a>
37 </td>
38 </tr>
39 <tr class="rfc822B">
40 <td>
41 <a name="att1.2.1"/>
42 <div id="attachmentDiv1.2.1">
43 <table cellspacing="1" cellpadding="1" class="encr">
44 <tr class="encrH">
45 <td dir="ltr">Encrypted message</td>
46 </tr>
47 <tr class="encrB">
48 <td>
49 <div style="position: relative; word-wrap: break-word">
50 <a name="att"/>
51 <div id="attachmentDiv">
52 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
53 <tr class="signOkKeyOkH">
54 <td dir="ltr">
55 <table cellspacing="0" cellpadding="0" width="100%">
56 <tr>
57 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
58 <td align="right">
59 <a href="kmail:showSignatureDetails">Show Details</a>
60 </td>
61 </tr>
62 </table>
63 </td>
64 </tr>
65 <tr class="signOkKeyOkB">
66 <td>
67 <a name="att1"/>
68 <div id="attachmentDiv1">
69 <div class="noquote">
70 <div dir="ltr">encrypted message text</div>
71 </div>
72 </div>
73 </td>
74 </tr>
75 <tr class="signOkKeyOkH">
76 <td dir="ltr">End of signed message</td>
77 </tr>
78 </table>
79 </div>
80 </div>
81 </td>
82 </tr>
83 <tr class="encrH">
84 <td dir="ltr">End of encrypted message</td>
85 </tr>
86 </table>
87 </div>
88 </td>
89 </tr>
90 <tr class="rfc822H">
91 <td dir="ltr">End of encapsulated message</td>
92 </tr>
93 </table>
94 </div>
95 </div>
96 </td>
97 </tr>
98 <tr class="signOkKeyOkH">
99 <td dir="ltr">End of signed message</td>
100 </tr>
101 </table>
102 </div>
103 </div>
104 </body>
105</html>
diff --git a/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox.tree b/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox.tree
new file mode 100644
index 00000000..818f894c
--- /dev/null
+++ b/framework/src/domain/mime/testdata/signed-forward-openpgp-signed-encrypted.mbox.tree
@@ -0,0 +1,10 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::EncapsulatedRfc822MessagePart
7 * MimeTreeParser::EncryptedMessagePart
8 * MimeTreeParser::SignedMessagePart
9 * MimeTreeParser::TextMessagePart
10 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/smime-cert.mbox b/framework/src/domain/mime/testdata/smime-cert.mbox
new file mode 100644
index 00000000..b3c8a19e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-cert.mbox
@@ -0,0 +1,24 @@
1From test@example.com Sat, 13 Apr 2013 01:54:30 +0200
2From: test <test@example.com>
3To: you@you.com
4Subject: test
5Date: Sat, 13 Apr 2013 01:54:30 +0200
6Message-ID: <1576646.QQxzHWx8dA@tabin>
7X-KMail-Identity: 505942601
8User-Agent: KMail/4.10.2 (Linux/3.9.0-rc4-experimental-amd64; KDE/4.10.60; x86_64; git-fc9b82c; 2013-04-11)
9MIME-Version: 1.0
10Content-Type: application/pkcs7-mime; name="smime.crt"; smime-type="certs-only"
11Content-Transfer-Encoding: base64
12Content-Disposition: attachment; filename="smime.crt"
13
14asdfasdfasdfasdfasdfasdfasdfasdf
15asdfasdfadsfsadfasdf
16asdfasdf
17sadfas
18dfasdf
19sadf
20sadf
21adsf
22adsf
23asdf
24
diff --git a/framework/src/domain/mime/testdata/smime-cert.mbox.html b/framework/src/domain/mime/testdata/smime-cert.mbox.html
new file mode 100644
index 00000000..1b86390f
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-cert.mbox.html
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">Sorry, certificate could not be imported.<br/>Reason: BER error</div>
8 </div>
9 </body>
10</html>
diff --git a/framework/src/domain/mime/testdata/smime-cert.mbox.tree b/framework/src/domain/mime/testdata/smime-cert.mbox.tree
new file mode 100644
index 00000000..c34c2eca
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-cert.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::CertMessagePart
diff --git a/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox b/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox
new file mode 100644
index 00000000..887fe358
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox
@@ -0,0 +1,23 @@
1From test@example.com Sat, 13 Apr 2013 01:54:30 +0200
2From: test <test@example.com>
3To: you@you.com
4Subject: test
5Date: Sat, 13 Apr 2013 01:54:30 +0200
6Message-ID: <1576646.QQxzHWx8dA@tabin>
7X-KMail-Identity: 505942601
8User-Agent: KMail/4.10.2 (Linux/3.9.0-rc4-experimental-amd64; KDE/4.10.60; x86_64; git-fc9b82c; 2013-04-11)
9MIME-Version: 1.0
10Content-Type: application/octet-stream;
11 name="smime.p7m"
12Content-Transfer-Encoding: base64
13Content-Disposition: attachment; filename="smime.p7m"
14
15MIAGCSqGSIb3DQEHA6CAMIACAQAxgfwwgfkCAQAwYjBVMQswCQYDVQQGEwJVUzENMAsGA1UECgwE
16S0RBQjEWMBQGA1UEAwwNdW5pdHRlc3QgY2VydDEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxl
17LmNvbQIJANNFIDoYY4XJMA0GCSqGSIb3DQEBAQUABIGAJwmmaOeidXUHSQGOf2OBIsPYafVqdORe
18y54pEXbXiAfSVUWgI4a9CsiWwcDX8vlaX9ZLLr+L2VmOfr6Yc5214yxzausZVvnUFjy6LUXotuEX
19tSar4EW7XI9DjaZc1l985naMsTx9JUa5GyQ9J6PGqhosAKpKMGgKkFAHaOwE1/IwgAYJKoZIhvcN
20AQcBMBQGCCqGSIb3DQMHBAieDfmz3WGbN6CABHgEpsLrNn0PAZTDUfNomDypvSCl5bQH+9cKm80m
21upMV2r8RBiXS7OaP4SpCxq18afDTTPatvboHIoEX92taTbq8soiAgEs6raSGtEYZNvFL0IYqm7MA
22o5HCOmjiEcInyPf14lL3HnPk10FaP3hh58qTHUh4LPYtL7UECOZELYnUfUVhAAAAAAAAAAAAAA==
23
diff --git a/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox.html b/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox.html
new file mode 100644
index 00000000..6b08c47e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox.html
@@ -0,0 +1,31 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <div class="noquote">
18 <div dir="ltr">The quick brown fox jumped over the lazy dog.</div>
19 </div>
20 </div>
21 </div>
22 </td>
23 </tr>
24 <tr class="encrH">
25 <td dir="ltr">End of encrypted message</td>
26 </tr>
27 </table>
28 </div>
29 </div>
30 </body>
31</html>
diff --git a/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox.tree b/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox.tree
new file mode 100644
index 00000000..82f705c2
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-encrypted-octet-stream.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/smime-encrypted.mbox b/framework/src/domain/mime/testdata/smime-encrypted.mbox
new file mode 100644
index 00000000..6b6d6a0d
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-encrypted.mbox
@@ -0,0 +1,22 @@
1From test@example.com Sat, 13 Apr 2013 01:54:30 +0200
2From: test <test@example.com>
3To: you@you.com
4Subject: test
5Date: Sat, 13 Apr 2013 01:54:30 +0200
6Message-ID: <1576646.QQxzHWx8dA@tabin>
7X-KMail-Identity: 505942601
8User-Agent: KMail/4.10.2 (Linux/3.9.0-rc4-experimental-amd64; KDE/4.10.60; x86_64; git-fc9b82c; 2013-04-11)
9MIME-Version: 1.0
10Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
11Content-Transfer-Encoding: base64
12Content-Disposition: attachment; filename="smime.p7m"
13
14MIAGCSqGSIb3DQEHA6CAMIACAQAxgfwwgfkCAQAwYjBVMQswCQYDVQQGEwJVUzENMAsGA1UECgwE
15S0RBQjEWMBQGA1UEAwwNdW5pdHRlc3QgY2VydDEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxl
16LmNvbQIJANNFIDoYY4XJMA0GCSqGSIb3DQEBAQUABIGAJwmmaOeidXUHSQGOf2OBIsPYafVqdORe
17y54pEXbXiAfSVUWgI4a9CsiWwcDX8vlaX9ZLLr+L2VmOfr6Yc5214yxzausZVvnUFjy6LUXotuEX
18tSar4EW7XI9DjaZc1l985naMsTx9JUa5GyQ9J6PGqhosAKpKMGgKkFAHaOwE1/IwgAYJKoZIhvcN
19AQcBMBQGCCqGSIb3DQMHBAieDfmz3WGbN6CABHgEpsLrNn0PAZTDUfNomDypvSCl5bQH+9cKm80m
20upMV2r8RBiXS7OaP4SpCxq18afDTTPatvboHIoEX92taTbq8soiAgEs6raSGtEYZNvFL0IYqm7MA
21o5HCOmjiEcInyPf14lL3HnPk10FaP3hh58qTHUh4LPYtL7UECOZELYnUfUVhAAAAAAAAAAAAAA==
22
diff --git a/framework/src/domain/mime/testdata/smime-encrypted.mbox.html b/framework/src/domain/mime/testdata/smime-encrypted.mbox.html
new file mode 100644
index 00000000..6b08c47e
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-encrypted.mbox.html
@@ -0,0 +1,31 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <div class="noquote">
18 <div dir="ltr">The quick brown fox jumped over the lazy dog.</div>
19 </div>
20 </div>
21 </div>
22 </td>
23 </tr>
24 <tr class="encrH">
25 <td dir="ltr">End of encrypted message</td>
26 </tr>
27 </table>
28 </div>
29 </div>
30 </body>
31</html>
diff --git a/framework/src/domain/mime/testdata/smime-encrypted.mbox.inProgress.html b/framework/src/domain/mime/testdata/smime-encrypted.mbox.inProgress.html
new file mode 100644
index 00000000..e5eb55d0
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-encrypted.mbox.inProgress.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Please wait while the message is being decrypted...</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;"/>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mime/testdata/smime-encrypted.mbox.tree b/framework/src/domain/mime/testdata/smime-encrypted.mbox.tree
new file mode 100644
index 00000000..82f705c2
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-encrypted.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox b/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox
new file mode 100644
index 00000000..be75c1e2
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox
@@ -0,0 +1,37 @@
1From test@example.com Fri Sep 11 10:18:48 2015
2From: test <test@example.com>
3To: you@you.com
4Subject: enc+sign
5Date: Fri, 11 Sep 2015 12:18:48 +0200
6Message-ID: <49743203.WFa6qKaG4S@tabin.local>
7X-KMail-Identity: 792434561
8User-Agent: KMail/4.13.0.1 (Linux/4.1.5-towo.1-siduction-amd64; KDE/4.14.2; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
11Content-Transfer-Encoding: base64
12Content-Disposition: attachment; filename="smime.p7m"
13
14MIAGCSqGSIb3DQEHA6CAMIACAQAxgfwwgfkCAQAwYjBVMQswCQYDVQQGEwJVUzENMAsGA1UECgwE
15S0RBQjEWMBQGA1UEAwwNdW5pdHRlc3QgY2VydDEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxl
16LmNvbQIJANNFIDoYY4XJMA0GCSqGSIb3DQEBAQUABIGAkttyRl8OyZkRGfs3CMfzYchrG4rRMfbE
17WIkAFIXf64yAzPZfo6cCn0Il/6q4793FeKUrsJUvzP21KBLp4u1t5qLL5iPAmAzBdLg0teoEzLZe
18CEZHinM+WSMdz2wEV8lgAt8x/3yhXmDMB09FEapUaBCK5NhbLAFkpI2mFg66zxcwgAYJKoZIhvcN
19AQcBMB0GCWCGSAFlAwQBAgQQ6DSjjkXJNm5cXQNek9eozqCABIIDsI7lufqw58g/uVM2gymkldmb
20BOgdimxshJkYznbbG5sfQPNM9ROhXKRUOc8hfzgmZ9dOZvtAyzepROMHrcL1mFFx7c1vgyT85fai
21PLEqRs8FRoztXJ0I3q57r+sPW4BtYJp9WCBSerdLSrBFK1zvKpVQtSCYbbDCc3462KnSsBrE4XTf
22BiiLWkpok4fNIdqYG1aWPLgRbp7wwLiXcq5RxYCail1tlyAty6dWBrYE1+ABZoqnKUqNqbghxJUd
23X9t3EziUnzw7c0Hq03sJEShzbXI9BxOTs8ZZ+1Ktx3rdh6RhZZ7XfJ7XIuN0yYhusBeOgC8AuILN
24lYojgmXMin52VPFmz9siI8jnKaqsr1uUqVfMLNc+mLhZEjuOu99eAHwdJUS95BKWm9J8DBe/lpz3
25s09Oz2oOoiQx0WxKmQZ4GXW/UI9OwykfNLqWfmDrbMbGW4Mvq615ucHZixFdp2vf3kU72wfk8hFK
26EIU/1Ov85glDj96ELdXErXn02BNvVBQIsRx3DbBGEgj9tz+WHbCR6RjEK4eV5lhInZplFGmYr4Uu
279ALS+MRGTYZnALNPrWu6b1aWprnlJCyKZeeyqUzpQVPoWOh7CfdvBxvQoil4Z9Neb9O0AGCZ0axc
28zZ4yYcS/LpHkLgYPC5BphNtpyciQh6ZFeexi8rsZuHRu+YUKnuM+DQyUxtUvDYhiX7CT49MMXIwt
29bdyA0IAbIXXb/Us9GGX11gAfz2EFI3QBDHtsyciEgCIlA32OiiJF0T5CnQsku2yu6c3TWC4k+feL
30jjTEhm/KPUL6SkksarFeEncJlVt7impW9FlHyBpISwlQF4RAxDYTRX475VTNu7wn3PQx376m8iBN
31K20MjdfIM162jcQh9IWnqTZ0nH/gT2kQPYe7GqjFi6XmU3bwdzW9SXR0G9A8juIXaaNR7aXcsB53
32/W4WHPcdJBwRELa0dT1/bPg8z3EV2vM7Flc/Q5ugTWHxk8GHNEPpotArpLq1sEAZu78mSCqzzEDA
33TwzEpj9LZYIv4rDYYLCAxUR9YGhiJ5Qm21YnklkE++4zfpsl/KJcwtNsp7SWdzeVuPoUYBNhsgp/
34PZgudzQoOhxcF4ChHMVSNk1f1tlvXZppeXwv9OwpSszz0zZUr46ievpkQwL0Sa1XAfKwAt7bFJwp
35i95ae7p58ZdizJVsz0QUhFDxIDL76qiPEYXC7nIf4ZPQ36dzLAfZ6OwWGffluxHpE6oqUoM3l320
367yQT66xfRKLGl5Cr1Q8UBBABC6aR2dt6RVbsxbR3mB0PAAAAAAAAAAAAAA==
37
diff --git a/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox.html b/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox.html
new file mode 100644
index 00000000..7f60c04f
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox.html
@@ -0,0 +1,57 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@example.com">test@example.com</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <div style="position: relative; word-wrap: break-word">
33 <a name="att"/>
34 <div id="attachmentDiv">
35 <div class="noquote">
36 <div dir="ltr">Encrypted and signed mail.</div>
37 </div>
38 </div>
39 </div>
40 </td>
41 </tr>
42 <tr class="signOkKeyOkH">
43 <td dir="ltr">End of signed message</td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </td>
49 </tr>
50 <tr class="encrH">
51 <td dir="ltr">End of encrypted message</td>
52 </tr>
53 </table>
54 </div>
55 </div>
56 </body>
57</html>
diff --git a/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox.tree b/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox.tree
new file mode 100644
index 00000000..7d5bbeb7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-opaque-enc+sign.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/smime-opaque-sign.mbox b/framework/src/domain/mime/testdata/smime-opaque-sign.mbox
new file mode 100644
index 00000000..6e1739ac
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-opaque-sign.mbox
@@ -0,0 +1,25 @@
1From test@example.com Fri Sep 11 10:16:06 2015
2From: test <test@example.com>
3To: you@you.com
4Subject: sign only
5Date: Fri, 11 Sep 2015 12:16:06 +0200
6Message-ID: <3182420.pXWeMPZlAJ@tabin.local>
7X-KMail-Identity: 792434561
8User-Agent: KMail/4.13.0.1 (Linux/4.1.5-towo.1-siduction-amd64; KDE/4.14.2; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="signed-data"
11Content-Transfer-Encoding: base64
12Content-Disposition: attachment; filename="smime.p7m"
13
14MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAaCAJIAEZUNvbnRl
15bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdCaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy
16c2V0PSJ1dGYtOCIKCkEgc2ltcGxlIHNpZ25lZCBvbmx5IHRlc3QuAAAAAAAAMYIBkjCCAY4CAQEw
17YjBVMQswCQYDVQQGEwJVUzENMAsGA1UECgwES0RBQjEWMBQGA1UEAwwNdW5pdHRlc3QgY2VydDEf
18MB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJANNFIDoYY4XJMAkGBSsOAwIaBQCggYcw
19GAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMwMTEwMTU0ODEyWjAj
20BgkqhkiG9w0BCQQxFgQUvJ5zI7oyv5fNx1H1wabIa6atsdcwKAYJKoZIhvcNAQkPMRswGTALBglg
21hkgBZQMEAQIwCgYIKoZIhvcNAwcwDQYJKoZIhvcNAQEBBQAEgYAHFCw88FPy1n2lu5ql5sD2J4Yi
222/N9gUQvNQF5F/kd48HncdihLPZRs7eEX7IzDZNeylTmyp2WIiGEwQrIHbxtqU32NRouc09Zv4bu
23iUwUoz1SM2s7qipikwayQMD3d5zWNhszNLBsw8z48uXAzjZAejBCfPP0/w3z7DZDJC2R2QAAAAAA
24AA==
25
diff --git a/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.html b/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.html
new file mode 100644
index 00000000..6088bc72
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.html
@@ -0,0 +1,40 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@example.com">test@example.com</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <div style="position: relative; word-wrap: break-word">
24 <a name="att"/>
25 <div id="attachmentDiv">
26 <div class="noquote">
27 <div dir="ltr">A simple signed only test.</div>
28 </div>
29 </div>
30 </div>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkH">
34 <td dir="ltr">End of signed message</td>
35 </tr>
36 </table>
37 </div>
38 </div>
39 </body>
40</html>
diff --git a/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.inProgress.html b/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.inProgress.html
new file mode 100644
index 00000000..45a999d3
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.inProgress.html
@@ -0,0 +1,22 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signInProgress">
9 <tr class="signInProgressH">
10 <td dir="ltr">Please wait while the signature is being verified...</td>
11 </tr>
12 <tr class="signInProgressB">
13 <td/>
14 </tr>
15 <tr class="signInProgressH">
16 <td dir="ltr">End of signed message</td>
17 </tr>
18 </table>
19 </div>
20 </div>
21 </body>
22</html>
diff --git a/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.tree b/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.tree
new file mode 100644
index 00000000..a469bb76
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-opaque-sign.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/smime-opaque-signed-encrypted-attachment.mbox b/framework/src/domain/mime/testdata/smime-opaque-signed-encrypted-attachment.mbox
new file mode 100644
index 00000000..2b1a0761
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-opaque-signed-encrypted-attachment.mbox
@@ -0,0 +1,50 @@
1From test@example.com Thu Jun 09 12:52:44 2016
2From: test@example.com
3To: test@example.com
4Subject: Opaque S/MIME signed and encrypted message with attachment
5Date: Thu, 09 Jun 2016 14:52:44 +0200
6MIME-Version: 1.0
7Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
8Content-Transfer-Encoding: base64
9Content-Disposition: attachment; filename="smime.p7m"
10
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
diff --git a/framework/src/domain/mime/testdata/smime-signed-apple.mbox b/framework/src/domain/mime/testdata/smime-signed-apple.mbox
new file mode 100644
index 00000000..d5cd06f1
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-signed-apple.mbox
@@ -0,0 +1,197 @@
1From: Quack <quack@example.org>
2Content-Type: multipart/signed; boundary="Apple-Mail=_607FF8D2-30E0-4FC3-86D9-1234567890AB"; protocol="application/pkcs7-signature"; micalg=sha1
3Message-Id: <468684BD-9CBD-48CF-B1BD-2824000F9541@example.org>
4Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
5Subject: Re: PDF bug - modified mail, signature is not valid!
6Date: Fri, 20 Jan 2017 11:51:41 +0100
7To: Konqui <Konqui@kdab.com>
8
9
10--Apple-Mail=_607FF8D2-30E0-4FC3-86D9-1234567890AB
11Content-Type: multipart/alternative;
12 boundary="Apple-Mail=_C5F90221-8F52-4623-99DF-1234567890AB"
13
14
15--Apple-Mail=_C5F90221-8F52-4623-99DF-1234567890AB
16Content-Transfer-Encoding: quoted-printable
17Content-Type: text/plain;
18 charset=utf-8
19
20Ol=C3=A1 Konqui,
21
22Here is the pdf you asked for!
23Cheers,
24
25Quaak
26
27=E2=80=A6
28Quack | UX/UI Designer
29Klar=C3=A4lvdalens Datakonsult AB, a KDAB Group company
30Sweden (HQ) +46-563-540090, Germany +49-30-521325470
31KDAB - The Qt, C++ and OpenGL Experts | www.kdab.com
32
33
34--Apple-Mail=_C5F90221-8F52-4623-99DF-1234567890AB
35Content-Type: multipart/mixed;
36 boundary="Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB"
37
38
39--Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB
40Content-Transfer-Encoding: quoted-printable
41Content-Type: text/html;
42 charset=utf-8
43
44<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
45charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
46-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
47class=3D"">Ol=C3=A1 Konqui,</div><div =
48class=3D"">Here is the pdf you asked for!</div><div =
49class=3D"">Cheers,</div><div =
50class=3D"">Quaack</div></body></html>=
51
52--Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB
53Content-Disposition: attachment; filename="image.png"
54Content-Transfer-Encoding: base64
55Content-Type: image/png; name="image.png"
56
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
100o/0d59+Lh3Y1HHcAAAAASUVORK5CYII=
101--Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB
102Content-Transfer-Encoding: quoted-printable
103Content-Type: text/html;
104 charset=utf-8
105
106<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
107charset=3Dutf-8"></head><body>=
108<blockquote type=3D"cite" class=3D""><div =
109class=3D"">On 20 Jan 2017, at 10:35, Konqui &lt;<a =
110href=3D"mailto:Konqui@kdab.com">Konqui</a>=
111</div>
112</blockquote>=
113</body></html>=
114
115--Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB--
116
117--Apple-Mail=_C5F90221-8F52-4623-99DF-1234567890AB--
118
119--Apple-Mail=_607FF8D2-30E0-4FC3-86D9-1234567890AB
120Content-Disposition: attachment;
121 filename=smime.p7s
122Content-Type: application/pkcs7-signature;
123 name=smime.p7s
124Content-Transfer-Encoding: base64
125
126MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIILdTCCBRow
127ggQCoAMCAQICEG0Z6qcZT2ozIuYiMnqqcd4wDQYJKoZIhvcNAQEFBQAwga4xCzAJBgNVBAYTAlVT
128MQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxHjAcBgNVBAoTFVRoZSBVU0VS
129VFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2VydHJ1c3QuY29tMTYwNAYDVQQD
130Ey1VVE4tVVNFUkZpcnN0LUNsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgRW1haWwwHhcNMTEwNDI4
131MDAwMDAwWhcNMjAwNTMwMTA0ODM4WjCBkzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIg
132TWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQx
133OTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBD
134QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJKEhFtLV5jUXi+LpOFAyKNTWF9mZfEy
135TvefMn1V0HhMVbdClOD5J3EHxcZppLkyxPFAGpDMJ1Zifxe1cWmu5SAb5MtjXmDKokH2auGj/7jf
136H0htZUOMKi4rYzh337EXrMLaggLW1DJq1GdvIBOPXDX65VSAr9hxCh03CgJQU2yVHakQFLSZlVkS
137Mf8JotJM3FLb3uJAAVtIaN3FSrTg7SQfOq9xXwfjrL8UO7AlcWg99A/WF1hGFYE8aIuLgw9teiFX
1385jSw2zJ+40rhpVJyZCaRTqWSD//gsWD9Gm9oUZljjRqLpcxCm5t9ImPTqaD8zp6Q30QZ9FxbNboW
13986eb/8ECAwEAAaOCAUswggFHMB8GA1UdIwQYMBaAFImCZ33EnSZwAEu0UEh83j2uBG59MB0GA1Ud
140DgQWBBR6E04AdFvGeGNkJ8Ev4qBbvHnFezAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
141/wIBADARBgNVHSAECjAIMAYGBFUdIAAwWAYDVR0fBFEwTzBNoEugSYZHaHR0cDovL2NybC51c2Vy
142dHJ1c3QuY29tL1VUTi1VU0VSRmlyc3QtQ2xpZW50QXV0aGVudGljYXRpb25hbmRFbWFpbC5jcmww
143dAYIKwYBBQUHAQEEaDBmMD0GCCsGAQUFBzAChjFodHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVRO
144QWRkVHJ1c3RDbGllbnRfQ0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3Qu
145Y29tMA0GCSqGSIb3DQEBBQUAA4IBAQCF1r54V1VtM39EUv5C1QaoAQOAivsNsv1Kv/avQUn1G1rF
1460q0bc24+6SZ85kyYwTAo38v7QjyhJT4KddbQPTmGZtGhm7VNm2+vKGwdr+XqdFqo2rHA8XV6L566
147k3nK/uKRHlZ0sviN0+BDchvtj/1gOSBH+4uvOmVIPJg9pSW/ve9g4EnlFsjrP0OD8ODuDcHTzTNf
148m9C9YGqzO/761Mk6PB/tm/+bSTO+Qik5g+4zaS6CnUVNqGnagBsePdIaXXxHmaWbCG0SmYbWXVcH
149G6cwvktJRLiQfsrReTjrtDP6oDpdJlieYVUYtCHVmdXgQ0BCML7qpeeU0rD+83X5f27nMIIGUzCC
150BTugAwIBAgIQMFPel8s+Gckd6L+iGIwbpTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UEBhMCR0Ix
151GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
152Q09NT0RPIENBIExpbWl0ZWQxOTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24g
153YW5kIFNlY3VyZSBFbWFpbCBDQTAeFw0xNDA2MDIwMDAwMDBaFw0xNzA2MDEyMzU5NTlaMIIBXzEL
154MAkGA1UEBhMCU0UxDzANBgNVBBETBjY4MyAzMTESMBAGA1UECBMJVmFlcm1sYW5kMRAwDgYDVQQH
155EwdIYWdmb3JzMRgwFgYDVQQJEw9Ob3JyaW5ncyB2YWVnIDIxDzANBgNVBBITBkJveCAzMDEmMCQG
156A1UECgwdS2xhcsOkbHZkYWxlbnMgRGF0YWtvbnN1bHQgQUIxHTAbBgNVBAsTFEEgS0RBQiBHcm91
157cCBDb21wYW55MUMwQQYDVQQLDDpJc3N1ZWQgdGhyb3VnaCBLbGFyw6RsdmRhbGVucyBEYXRha29u
158c3VsdCBBQiBFLVBLSSBNYW5hZ2VyMR8wHQYDVQQLExZDb3Jwb3JhdGUgU2VjdXJlIEVtYWlsMRgw
159FgYDVQQDEw9EaWFuYSBHb25jYWx2ZXMxJzAlBgkqhkiG9w0BCQEWGGRpYW5hLmdvbmNhbHZlc0Br
160ZGFiLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALrHSvWD6MR2tvF9A+wayTDg
161PvK3DahuvHWHzGQsd1p8bEh6qqupqgph2xO73P+ibM6EmNbCtZ+eQtW7l7iIyiC4IGsyEb5RSAtV
162zGAyebsO7SPHokbGIV5SVobaRQiJ+1gOvWUbqHSQ0T9ZPvMX2nNGIKZpqAfocRreZr36AZWRo4AF
1630uf6wz5aLEtq912u2rTWVsM1F966lexaepo0cZB9fdnnD8/pQX3zroj+vBTFNAkZXxxVwGMO24Pz
16492d/B6K8o1SP1ArqV4sxVYIxyQTmfW4X3iV/6bcbLfEcpcUNt6MUsjFulqr6a+j51alpyT3vNuJ9
165V1UI9jz3t/daQr0CAwEAAaOCAdIwggHOMB8GA1UdIwQYMBaAFHoTTgB0W8Z4Y2QnwS/ioFu8ecV7
166MB0GA1UdDgQWBBRIYj+FxAEGllaHmLL+EMhopIEOQjAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/
167BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwRgYDVR0gBD8wPTA7BgwrBgEEAbIx
168AQIBAwUwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLm5ldC9DUFMwVwYDVR0f
169BFAwTjBMoEqgSIZGaHR0cDovL2NybC5jb21vZG9jYS5jb20vQ09NT0RPQ2xpZW50QXV0aGVudGlj
170YXRpb25hbmRTZWN1cmVFbWFpbENBLmNybDCBiAYIKwYBBQUHAQEEfDB6MFIGCCsGAQUFBzAChkZo
171dHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9DbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3Vy
172ZUVtYWlsQ0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wIwYDVR0R
173BBwwGoEYZGlhbmEuZ29uY2FsdmVzQGtkYWIuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQACzCCZ4ppg
174H7nXnCwisxjGLIgQMdwKPB6lnWk39YT0gEqvn85tDaXIZwGiRda7O1HWdWh7RoncolX3yHQ6p/BJ
1758RWkpxoc4es1wXSPmWMpspnglvtqYlfu7NZ/CqI6bvgqoy0w3KSv+GnVkiQ6SVKU4fV6itr5VG9q
176X0JYXAbKO8hOIP3NO3MVacPgzSIv83B9eLpfi/BlG6q6XKxVf4581lYbLL0F7cKQt1UYPiDsmPJG
177+5SEHT6ZOBiLgqQVhAw4Di+6wymUHONBRuH2bH3cjfFlkCCjiFF/cS7Oharro2RFnWQ6beZ3EzCG
178FJILmq/dVMGsBFWme23hLYwtLJSXMYIDqzCCA6cCAQEwgagwgZMxCzAJBgNVBAYTAkdCMRswGQYD
179VQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9E
180TyBDQSBMaW1pdGVkMTkwNwYDVQQDEzBDT01PRE8gQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBT
181ZWN1cmUgRW1haWwgQ0ECEDBT3pfLPhnJHei/ohiMG6UwCQYFKw4DAhoFAKCCAdcwGAYJKoZIhvcN
182AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTcwMTIwMTA1MTQxWjAjBgkqhkiG9w0B
183CQQxFgQU/AV0Tj17RqaDDCeGXWhe4epgX6gwgbkGCSsGAQQBgjcQBDGBqzCBqDCBkzELMAkGA1UE
184BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
185A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxOTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGlj
186YXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQQIQMFPel8s+Gckd6L+iGIwbpTCBuwYLKoZIhvcNAQkQ
187AgsxgauggagwgZMxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
188BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTkwNwYDVQQDEzBDT01P
189RE8gQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEDBT3pfLPhnJHei/
190ohiMG6UwDQYJKoZIhvcNAQEBBQAEggEAEIfTyPoqjyJwrpYmZWRF6OY5ZCFdpw1UUfSXYUU2IdbL
191ph8QkMCc9uv5wk2IeE/9UxxvUR44J67Bu8hv/PCaeyMSh1j2peOlFG487SwyTjf5wIL+GEs8zvHo
1924+Dd2IPhAExt1Bjhmt6O7caF9LVrGQ/wlI6ZGN8MgjSgdrK4F3Ig4LbMuyTTcy3hDTvb+qzaQ4YI
193E+F4tnwhXG8FGEBnlng6nB4iXhoWSvBsjc1qF6eHEHzsOIZeNL7K6Imn7oKHJg+THGwHxC1TZGFt
194G92u6zV7Sc/i4ENH2MNzXT75mp8Gq/k6gpRz9nw8UVuLN/rDIb6esnEgVH9ad3awD154HAAAAAAA
195AA==
196--Apple-Mail=_607FF8D2-30E0-4FC3-86D9-1234567890AB--
197
diff --git a/framework/src/domain/mime/testdata/smime-signed-apple.mbox.html b/framework/src/domain/mime/testdata/smime-signed-apple.mbox.html
new file mode 100644
index 00000000..11652a14
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-signed-apple.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signErr">
9 <tr class="signErrH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Invalid signature.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signErrB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
30 </div>
31 <a name="att1.2.2"/>
32 <div id="attachmentDiv1.2.2">
33 <hr/>
34 <div>
35 <a href="attachment:1.2.2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
36 </div>
37 <div/>
38 </div>
39 <a name="att1.2.3"/>
40 <div id="attachmentDiv1.2.3">
41 <div style="position: relative">
42 <blockquote type="cite" class="">
43 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
44 </blockquote>
45 </div>
46 </div>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="signErrH">
52 <td dir="ltr">End of signed message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mime/testdata/smime-signed-apple.mbox.inProgress.html b/framework/src/domain/mime/testdata/smime-signed-apple.mbox.inProgress.html
new file mode 100644
index 00000000..5b57b937
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-signed-apple.mbox.inProgress.html
@@ -0,0 +1,49 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signInProgress">
9 <tr class="signInProgressH">
10 <td dir="ltr">Please wait while the signature is being verified...</td>
11 </tr>
12 <tr class="signInProgressB">
13 <td>
14 <a name="att1"/>
15 <div id="attachmentDiv1">
16 <a name="att1.2"/>
17 <div id="attachmentDiv1.2">
18 <a name="att1.2.1"/>
19 <div id="attachmentDiv1.2.1">
20 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
21 </div>
22 <a name="att1.2.2"/>
23 <div id="attachmentDiv1.2.2">
24 <hr/>
25 <div>
26 <a href="attachment:1.2.2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
27 </div>
28 <div/>
29 </div>
30 <a name="att1.2.3"/>
31 <div id="attachmentDiv1.2.3">
32 <div style="position: relative">
33 <blockquote type="cite" class="">
34 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
35 </blockquote>
36 </div>
37 </div>
38 </div>
39 </div>
40 </td>
41 </tr>
42 <tr class="signInProgressH">
43 <td dir="ltr">End of signed message</td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </body>
49</html>
diff --git a/framework/src/domain/mime/testdata/smime-signed-apple.mbox.tree b/framework/src/domain/mime/testdata/smime-signed-apple.mbox.tree
new file mode 100644
index 00000000..3ade4efe
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-signed-apple.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox b/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox
new file mode 100644
index 00000000..49857e15
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox
@@ -0,0 +1,38 @@
1From test@example.com Wed, 08 Sep 2010 17:51:32 +0200
2From: S/MIME Test <test@example.com>
3To: test@example.com
4Subject: S/MIME signed and encrypted
5Date: Wed, 08 Sep 2010 17:51:32 +0200
6User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
7MIME-Version: 1.0
8Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
9Content-Disposition: attachment; filename="smime.p7m"
10Content-Transfer-Encoding: base64
11
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
diff --git a/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox.html b/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox.html
new file mode 100644
index 00000000..e13d6841
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox.html
@@ -0,0 +1,55 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@example.com">test@example.com</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <div class="noquote">
35 <div dir="ltr">encrypted message text</div>
36 </div>
37 </div>
38 </td>
39 </tr>
40 <tr class="signOkKeyOkH">
41 <td dir="ltr">End of signed message</td>
42 </tr>
43 </table>
44 </div>
45 </div>
46 </td>
47 </tr>
48 <tr class="encrH">
49 <td dir="ltr">End of encrypted message</td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </body>
55</html>
diff --git a/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox.tree b/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox.tree
new file mode 100644
index 00000000..7d5bbeb7
--- /dev/null
+++ b/framework/src/domain/mime/testdata/smime-signed-encrypted.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mime/testdata/text+html-maillinglist.mbox b/framework/src/domain/mime/testdata/text+html-maillinglist.mbox
new file mode 100644
index 00000000..f9c6387f
--- /dev/null
+++ b/framework/src/domain/mime/testdata/text+html-maillinglist.mbox
@@ -0,0 +1,163 @@
1Return-Path: <bugzilla-bounces@lists.kolabsys.com>
2Received: from kolab01.kolabsys.com ([unix socket])
3 by kolab01.kolabsys.com (Cyrus v2.4.17-Kolab-2.4.17-1.el6.kolab_3.0) with LMTPA;
4 Thu, 11 Apr 2013 09:03:01 +0200
5X-Sieve: CMU Sieve 2.4
6Received: from ext-mx01.kolabsys.com (unknown [10.10.20.253])
7 by kolab01.kolabsys.com (Postfix) with ESMTP id 3D8A9C0AE3
8 for <shared+shared/lists/kolabsys.com/bugzilla@kolabsys.com>; Thu, 11 Apr 2013 09:03:01 +0200 (CEST)
9Received: from localhost (localhost [127.0.0.1])
10 by ext-mx01.kolabsys.com (Postfix) with ESMTP id 89D4E10057E
11 for <shared+shared/lists/kolabsys.com/bugzilla@kolabsys.com>; Thu, 11 Apr 2013 09:02:38 +0200 (CEST)
12X-Virus-Scanned: amavisd-new at example.com
13X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "MIME-Version"
14Received: from ext-mx01.kolabsys.com ([127.0.0.1])
15 by localhost (fw01.kolabsys.com [127.0.0.1]) (amavisd-new, port 10024)
16 with ESMTP id BJxrh9Yst1Ac
17 for <shared+shared/lists/kolabsys.com/bugzilla@kolabsys.com>;
18 Thu, 11 Apr 2013 09:02:38 +0200 (CEST)
19Received: from lists.kolabsys.com (static.253.32.46.78.clients.your-server.de [78.46.32.253])
20 by ext-mx01.kolabsys.com (Postfix) with ESMTP id 609821004A7
21 for <shared+shared/lists/kolabsys.com/bugzilla@kolabsys.com>; Thu, 11 Apr 2013 09:02:38 +0200 (CEST)
22Received: from localhost (localhost [127.0.0.1])
23 by lists.kolabsys.com (Postfix) with ESMTP id BFA6941D4EAD;
24 Thu, 11 Apr 2013 09:03:00 +0200 (CEST)
25X-Virus-Scanned: Debian amavisd-new at lists.kolabsys.com
26X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "MIME-Version"
27Received: from lists.kolabsys.com ([127.0.0.1])
28 by localhost (lists.kolabsys.com [127.0.0.1]) (amavisd-new, port 10024)
29 with ESMTP id TYU5eAMK5J6T; Thu, 11 Apr 2013 09:02:58 +0200 (CEST)
30Received: from lists.kolabsys.com (localhost [127.0.0.1])
31 by lists.kolabsys.com (Postfix) with ESMTP id 182FC41D2A3B;
32 Thu, 11 Apr 2013 09:02:58 +0200 (CEST)
33Received: from localhost (localhost [127.0.0.1])
34 by lists.kolabsys.com (Postfix) with ESMTP id A2B3641D4EC2
35 for <bugzilla@lists.kolabsys.com>;
36 Thu, 11 Apr 2013 09:02:56 +0200 (CEST)
37X-Virus-Scanned: Debian amavisd-new at lists.kolabsys.com
38Received: from lists.kolabsys.com ([127.0.0.1])
39 by localhost (lists.kolabsys.com [127.0.0.1]) (amavisd-new, port 10024)
40 with ESMTP id cyO-CNB3vFwu for <bugzilla@lists.kolabsys.com>;
41 Thu, 11 Apr 2013 09:02:54 +0200 (CEST)
42Received: from ext-mx02.kolabsys.com (ext-mx02.kolabsys.com [94.230.208.222])
43 by lists.kolabsys.com (Postfix) with ESMTP id 1640E41D2A3B
44 for <bugzilla@lists.kolabsys.com>;
45 Thu, 11 Apr 2013 09:02:54 +0200 (CEST)
46Received: from localhost (localhost [127.0.0.1])
47 by ext-mx01.kolabsys.com (Postfix) with ESMTP id 58CBC160522
48 for <bugzilla@lists.kolabsys.com>;
49 Thu, 11 Apr 2013 10:02:44 +0200 (CEST)
50X-Virus-Scanned: amavisd-new at example.com
51Received: from ext-mx02.kolabsys.com ([127.0.0.1])
52 by localhost (fw02.kolabsys.com [127.0.0.1]) (amavisd-new, port 10024)
53 with ESMTP id 4VjnHg6Y6jo7 for <bugzilla@lists.kolabsys.com>;
54 Thu, 11 Apr 2013 10:02:42 +0200 (CEST)
55Received: from app04.kolabsys.com (unknown [10.10.20.16])
56 by ext-mx02.kolabsys.com (Postfix) with ESMTP id 062DF160521
57 for <bugzilla@lists.kolabsys.com>;
58 Thu, 11 Apr 2013 10:02:42 +0200 (CEST)
59Received: by app04.kolabsys.com (Postfix, from userid 48)
60 id 8E7524048C; Thu, 11 Apr 2013 09:02:51 +0200 (CEST)
61From: Kolab Bugzilla <noreply@kolab.org>
62To: bugzilla@lists.kolabsys.com
63Subject: [Bug 1741] Standard folder name configuration ignored on creating
64 new users
65Date: Thu, 11 Apr 2013 07:02:43 +0000
66X-Bugzilla-Reason: GlobalWatcher
67X-Bugzilla-Type: changed
68X-Bugzilla-Watch-Reason: None
69X-Bugzilla-Product: UCS
70X-Bugzilla-Component: roundcube
71X-Bugzilla-Keywords:
72X-Bugzilla-Severity: normal
73X-Bugzilla-Who: wickert@kolabsys.com
74X-Bugzilla-Status: NEW
75X-Bugzilla-Priority: P3
76X-Bugzilla-Assigned-To: machniak@kolabsys.com
77X-Bugzilla-Target-Milestone: 3.1-next
78X-Bugzilla-Changed-Fields:
79Message-ID: <bug-1741-12-HOSaBe3Z8l@http.issues.kolab.org/>
80In-Reply-To: <bug-1741-12@http.issues.kolab.org/>
81References: <bug-1741-12@http.issues.kolab.org/>
82X-Bugzilla-URL: http://issues.kolab.org/
83Auto-Submitted: auto-generated
84MIME-Version: 1.0
85X-BeenThere: bugzilla@lists.kolabsys.com
86X-Mailman-Version: 2.1.11
87Precedence: list
88Reply-To: server-team@lists.kolabsys.com
89List-Id: All Bugzilla email notifications <bugzilla.lists.kolabsys.com>
90List-Unsubscribe: <https://lists.kolabsys.com/mailman/options/bugzilla>,
91 <mailto:bugzilla-request@lists.kolabsys.com?subject=unsubscribe>
92List-Archive: <http://lists.kolabsys.com/pipermail/bugzilla>
93List-Post: <mailto:bugzilla@lists.kolabsys.com>
94List-Help: <mailto:bugzilla-request@lists.kolabsys.com?subject=help>
95List-Subscribe: <https://lists.kolabsys.com/mailman/listinfo/bugzilla>,
96 <mailto:bugzilla-request@lists.kolabsys.com?subject=subscribe>
97Content-Type: multipart/mixed; boundary="===============1778809852=="
98Mime-version: 1.0
99Sender: bugzilla-bounces@lists.kolabsys.com
100Errors-To: bugzilla-bounces@lists.kolabsys.com
101
102
103--===============1778809852==
104Content-Type: multipart/alternative; boundary="1365663771.ec4d382.10226"; charset="us-ascii"
105
106
107--1365663771.ec4d382.10226
108Date: Thu, 11 Apr 2013 09:02:51 +0200
109MIME-Version: 1.0
110Content-Type: text/plain; charset="UTF-8"
111
112https://issues.kolab.org/show_bug.cgi?id=1741
113
114--- Comment #4 from Christoph Wickert <wickert@kolabsys.com> ---
115You can get everything you need on test93-18.
116
117--
118You are receiving this mail because:
119You are watching all bug changes.
120
121--1365663771.ec4d382.10226
122Date: Thu, 11 Apr 2013 09:02:51 +0200
123MIME-Version: 1.0
124Content-Type: text/html; charset="UTF-8"
125
126<html>
127 <head>
128 <base href="https://issues.kolab.org/" />
129 </head>
130 <body>
131 <b><a class="bz_bug_link
132 bz_status_NEW "
133 title="NEW --- - Standard folder name configuration ignored on creating new users"
134 href="https://issues.kolab.org/show_bug.cgi?id=1741#c4">Comment # 4</a>
135 on <a class="bz_bug_link
136 bz_status_NEW "
137 title="NEW --- - Standard folder name configuration ignored on creating new users"
138 href="https://issues.kolab.org/show_bug.cgi?id=1741">bug 1741</a>
139 from <span class="vcard"><a class="email" href="mailto:wickert&#64;kolabsys.com" title="Christoph Wickert &lt;wickert&#64;kolabsys.com&gt;"> <span class="fn">Christoph Wickert</span></a>
140</span></b>
141 <pre>You can get everything you need on test93-18.</pre>
142 <span>You are receiving this mail because:</span>
143 <ul>
144 <li>You are watching all bug changes.</li>
145 </ul>
146 </body>
147</html>
148
149--1365663771.ec4d382.10226--
150
151--===============1778809852==
152Content-Type: text/plain; charset="us-ascii"
153MIME-Version: 1.0
154Content-Transfer-Encoding: 7bit
155Content-Disposition: inline
156
157_______________________________________________
158bugzilla mailing list
159bugzilla@lists.kolabsys.com
160https://lists.kolabsys.com/mailman/listinfo/bugzilla
161
162--===============1778809852==--
163
diff --git a/framework/src/domain/mime/testdata/text+html-maillinglist.mbox.html b/framework/src/domain/mime/testdata/text+html-maillinglist.mbox.html
new file mode 100644
index 00000000..2b5af631
--- /dev/null
+++ b/framework/src/domain/mime/testdata/text+html-maillinglist.mbox.html
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.2"/>
11 <div id="attachmentDiv1.2">
12 <div style="position: relative">
13 <b><a class="bz_bug_link bz_status_NEW " title="NEW --- - Standard folder name configuration ignored on creating new users" href="https://issues.kolab.org/show_bug.cgi?id=1741#c4">Comment # 4</a>on <a class="bz_bug_link bz_status_NEW " title="NEW --- - Standard folder name configuration ignored on creating new users" href="https://issues.kolab.org/show_bug.cgi?id=1741">bug 1741</a>from <span class="vcard"><a class="email" href="mailto:wickert@kolabsys.com" title="Christoph Wickert &lt;wickert@kolabsys.com&gt;"><span class="fn">Christoph Wickert</span></a></span></b>
14 <pre>You can get everything you need on test93-18.</pre>
15 <span>You are receiving this mail because:</span>
16 <ul>
17 <li>You are watching all bug changes.</li>
18 </ul>
19 </div>
20 </div>
21 </div>
22 <a name="att2"/>
23 <div id="attachmentDiv2">
24 <div class="noquote">
25 <div dir="ltr">_______________________________________________</div>
26 <div dir="ltr">bugzilla mailing list</div>
27 <div dir="ltr">
28 <a href="mailto:bugzilla@lists.kolabsys.com">bugzilla@lists.kolabsys.com</a>
29 </div>
30 <div dir="ltr">
31 <a href="https://lists.kolabsys.com/mailman/listinfo/bugzilla">https://lists.kolabsys.com/mailman/listinfo/bugzilla</a>
32 </div>
33 </div>
34 </div>
35 </div>
36 </div>
37 </body>
38</html>
diff --git a/framework/src/domain/mime/testdata/text+html-maillinglist.mbox.tree b/framework/src/domain/mime/testdata/text+html-maillinglist.mbox.tree
new file mode 100644
index 00000000..3738cb37
--- /dev/null
+++ b/framework/src/domain/mime/testdata/text+html-maillinglist.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::AlternativeMessagePart
4 * MimeTreeParser::AttachmentMessagePart
5 * MimeTreeParser::MessagePart