From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- comm/mail/test/browser/smime/browser.ini | 13 ++ .../browser/smime/browser_multipartAlternative.js | 100 ++++++++++ .../test/browser/smime/browser_nestedSMimeSigs.js | 49 +++++ comm/mail/test/browser/smime/data/Bob.p12 | Bin 0 -> 3666 bytes comm/mail/test/browser/smime/data/README.md | 5 + comm/mail/test/browser/smime/data/TestCA.pem | 21 ++ .../browser/smime/data/multipart-alternative.eml | 42 ++++ comm/mail/test/browser/smime/data/nested-sigs.eml | 219 +++++++++++++++++++++ 8 files changed, 449 insertions(+) create mode 100644 comm/mail/test/browser/smime/browser.ini create mode 100644 comm/mail/test/browser/smime/browser_multipartAlternative.js create mode 100644 comm/mail/test/browser/smime/browser_nestedSMimeSigs.js create mode 100644 comm/mail/test/browser/smime/data/Bob.p12 create mode 100644 comm/mail/test/browser/smime/data/README.md create mode 100644 comm/mail/test/browser/smime/data/TestCA.pem create mode 100644 comm/mail/test/browser/smime/data/multipart-alternative.eml create mode 100644 comm/mail/test/browser/smime/data/nested-sigs.eml (limited to 'comm/mail/test/browser/smime') diff --git a/comm/mail/test/browser/smime/browser.ini b/comm/mail/test/browser/smime/browser.ini new file mode 100644 index 0000000000..ba509e2496 --- /dev/null +++ b/comm/mail/test/browser/smime/browser.ini @@ -0,0 +1,13 @@ +[DEFAULT] +prefs = + mail.provider.suppress_dialog_on_startup=true + mail.spotlight.firstRunDone=true + mail.winsearch.firstRunDone=true + mailnews.start_page.override_url=about:blank + mailnews.start_page.url=about:blank + datareporting.policy.dataSubmissionPolicyBypassNotification=true +subsuite = thunderbird +support-files = data/** + +[browser_multipartAlternative.js] +[browser_nestedSMimeSigs.js] diff --git a/comm/mail/test/browser/smime/browser_multipartAlternative.js b/comm/mail/test/browser/smime/browser_multipartAlternative.js new file mode 100644 index 0000000000..cd55bba265 --- /dev/null +++ b/comm/mail/test/browser/smime/browser_multipartAlternative.js @@ -0,0 +1,100 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Test that a reply to a multipart/alternative message with two + * encrypted parts doesn't leak the secret plaintext from the second + * part. + */ + +"use strict"; + +var { close_compose_window, get_msg_source, open_compose_with_reply } = + ChromeUtils.import("resource://testing-common/mozmill/ComposeHelpers.jsm"); +var { + be_in_folder, + get_special_folder, + open_message_from_file, + press_delete, + select_click_row, + smimeUtils_ensureNSS, + smimeUtils_loadCertificateAndKey, + smimeUtils_loadPEMCertificate, +} = ChromeUtils.import( + "resource://testing-common/mozmill/FolderDisplayHelpers.jsm" +); +var { close_window } = ChromeUtils.import( + "resource://testing-common/mozmill/WindowHelpers.jsm" +); + +var { MailServices } = ChromeUtils.import( + "resource:///modules/MailServices.jsm" +); + +var gDrafts; + +add_setup(async function () { + gDrafts = await get_special_folder(Ci.nsMsgFolderFlags.Drafts, true); + + Services.prefs.setBoolPref("mail.identity.id1.compose_html", true); +}); + +add_task(async function test_multipart_alternative() { + smimeUtils_ensureNSS(); + smimeUtils_loadPEMCertificate( + new FileUtils.File(getTestFilePath("data/TestCA.pem")), + Ci.nsIX509Cert.CA_CERT + ); + smimeUtils_loadCertificateAndKey( + new FileUtils.File(getTestFilePath("data/Bob.p12"), "nss") + ); + + let msgc = await open_message_from_file( + new FileUtils.File(getTestFilePath("data/multipart-alternative.eml")) + ); + + let cwc = open_compose_with_reply(msgc); + + close_window(msgc); + + // Now save the message as a draft. + EventUtils.synthesizeKey( + "s", + { shiftKey: false, accelKey: true }, + cwc.window + ); + await TestUtils.waitForCondition( + () => !cwc.window.gSaveOperationInProgress && !cwc.window.gWindowLock, + "Saving of draft did not finish" + ); + close_compose_window(cwc); + + // Now check the message content in the drafts folder. + await be_in_folder(gDrafts); + let message = select_click_row(0); + let messageContent = await get_msg_source(message); + + // Check for a single line that contains text and make sure there is a + // space at the end for a flowed reply. + Assert.ok( + !messageContent.includes("SECRET-TEXT"), + "Secret text was found, but shouldn't be there." + ); + + // Delete the outgoing message. + press_delete(); +}); + +registerCleanupFunction(function () { + Services.prefs.clearUserPref("mail.identity.id1.compose_html"); + + // Some tests that open new windows don't return focus to the main window + // in a way that satisfies mochitest, and the test times out. + Services.focus.focusedWindow = window; + // Focus an element in the main window, then blur it again to avoid it + // hijacking keypresses. + let mainWindowElement = document.getElementById("button-appmenu"); + mainWindowElement.focus(); + mainWindowElement.blur(); +}); diff --git a/comm/mail/test/browser/smime/browser_nestedSMimeSigs.js b/comm/mail/test/browser/smime/browser_nestedSMimeSigs.js new file mode 100644 index 0000000000..996c4e804a --- /dev/null +++ b/comm/mail/test/browser/smime/browser_nestedSMimeSigs.js @@ -0,0 +1,49 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Test that a message containing two nested S/MIME signatures shows + * the contents of the inner signed message. + */ + +"use strict"; + +var { open_message_from_file, get_about_message, smimeUtils_ensureNSS } = + ChromeUtils.import( + "resource://testing-common/mozmill/FolderDisplayHelpers.jsm" + ); +var { close_window } = ChromeUtils.import( + "resource://testing-common/mozmill/WindowHelpers.jsm" +); + +function getMsgBodyTxt(mc) { + let msgPane = get_about_message(mc.window).getMessagePaneBrowser(); + return msgPane.contentDocument.documentElement.textContent; +} + +add_task(async function test_nested_sigs() { + smimeUtils_ensureNSS(); + + let msgc = await open_message_from_file( + new FileUtils.File(getTestFilePath("data/nested-sigs.eml")) + ); + + Assert.ok( + getMsgBodyTxt(msgc).includes("level 2"), + "level 2 text is shown in body" + ); + + close_window(msgc); +}); + +registerCleanupFunction(() => { + // Some tests that open new windows don't return focus to the main window + // in a way that satisfies mochitest, and the test times out. + Services.focus.focusedWindow = window; + // Focus an element in the main window, then blur it again to avoid it + // hijacking keypresses. + let mainWindowElement = document.getElementById("button-appmenu"); + mainWindowElement.focus(); + mainWindowElement.blur(); +}); diff --git a/comm/mail/test/browser/smime/data/Bob.p12 b/comm/mail/test/browser/smime/data/Bob.p12 new file mode 100644 index 0000000000..b5c8504a73 Binary files /dev/null and b/comm/mail/test/browser/smime/data/Bob.p12 differ diff --git a/comm/mail/test/browser/smime/data/README.md b/comm/mail/test/browser/smime/data/README.md new file mode 100644 index 0000000000..43c4ce63fa --- /dev/null +++ b/comm/mail/test/browser/smime/data/README.md @@ -0,0 +1,5 @@ +S/MIME Mozmill test certificates and messages +============================================= + +The test data in this directory can be refreshed by executing script +local-gen.sh found in comm/mailnews/test/data/smime diff --git a/comm/mail/test/browser/smime/data/TestCA.pem b/comm/mail/test/browser/smime/data/TestCA.pem new file mode 100644 index 0000000000..0e9f065d6e --- /dev/null +++ b/comm/mail/test/browser/smime/data/TestCA.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQGEwJVUzET +MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzESMBAG +A1UEChMJQk9HVVMgTlNTMRQwEgYDVQQDEwtOU1MgVGVzdCBDQTAgFw0yMzExMjEy +MDUwMDdaGA8yMDczMTEyMTIwNTAwN1owZDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +CkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxEjAQBgNVBAoTCUJP +R1VTIE5TUzEUMBIGA1UEAxMLTlNTIFRlc3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQDPL+VBVHBnK32PfKsFz5mwpeOdSOsfqymx2DN1qo42mQ8s +SRmrK7lbi0iiGuU+3jFBh/29wWitHH+1qb/DDSiIYk+RS3mVKdTxDOztwyRW7mf3 +oqK3OR4cQhLxXhIDuhDW4P4CQTwu6CSqwyTkrJeEi77foQ/C1rX1zQWMpJW7n4Iv +9PNMedHpNtoXP7zS8GxV9WwiHFEcRYzwdrlHQJm9+l0OWp8Tl5DFniJjjOuQYr4n +DGJ1R4F74yU9NPrOzAy9Cvm1eO4novQEcUyQ5Mdnw7bHI31ChWf/KyZzDLA+jTMI +30fLNDr512k0Z1429p1n77nzGhSDSbSNKFtyyNy1AgMBAAGjMDAuMBEGCWCGSAGG ++EIBAQQEAwIABzAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0B +AQsFAAOCAQEAt8reMMu83pDQiZqgq1bI7P1sGznDykMefFITZF3veDas86T9seDZ +pPAT45uo8t/+yuQWciDfBDcB5NnedkTjmXUaG1ZKekTamv6uNaLqr5aZrotnNUwK +CYk4ci1K5MuprqE6kBKKP8cGYL5ZqA4PPIHxlCgU2JR9G8NVn7Nw3Xb6ZTqRWTSn +g2tM3LWBDCu2p6qIZPNu35OYBUmLzsfSSlroj8iwirnOa+LYAmUMTQlnBQpln1WI +q+q0haYFPt9MTGpvwA9JBoElS9I4XxJHbthlsCizas9UJfue37RIR5LRXA8zudRU +Rwo8QS6MTgppRvorz2kvABRmkXiYk3Vn/g== +-----END CERTIFICATE----- diff --git a/comm/mail/test/browser/smime/data/multipart-alternative.eml b/comm/mail/test/browser/smime/data/multipart-alternative.eml new file mode 100644 index 0000000000..0ff896f048 --- /dev/null +++ b/comm/mail/test/browser/smime/data/multipart-alternative.eml @@ -0,0 +1,42 @@ +MIME-Version: 1.0 +Date: Tue, 21 Nov 2023 21:12:39 +0000 +From: Alice +To: Bob +Subject: a message +Content-Type: multipart/alternative; boundary="--------BOUNDARY" + +----------BOUNDARY +Content-Type: application/pkcs7-mime; smime-type=enveloped-data +Content-Transfer-Encoding: base64 + +MIAGCSqGSIb3DQEHA6CAMIACAQAxggGFMIIBgQIBADBpMGQxCzAJBgNVBAYTAlVT +MRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRIw +EAYDVQQKEwlCT0dVUyBOU1MxFDASBgNVBAMTC05TUyBUZXN0IENBAgEoMA0GCSqG +SIb3DQEBAQUABIIBAJFkVEzBMOiW8RY8h8xH7ZujIgZ/HjTP0NziHV+asAP1ANm1 +EqPqiy8C5/jtrW/rYF+2JYZIe8xW9kOpd4AlKyAvESn/jM+wRwRai3YHJ8DalFzl +4+CsqIzSwmf9KZa0yK72Cy+Lp8/0ycWJstDU/ZXFd6lUsHWiYdPgF1KsceWepyYS +Ggg4n9dopCN7+Xthlj8uW2yG5u+WtJkWJrXqrM4z7pzaW9GDPeOV5jp9CUauZOdV +ItlwPlGH/mMeiJ7KKQVclnN8bx2q/QHOvnSWS6fID1WTBYV1ZhAlxZHWBRSn643J +3ZwLxIS+F1cRc/EClsWv8zgKLfNXrcVSja1vD4UwgAYJKoZIhvcNAQcBMB0GCWCG +SAFlAwQBAgQQ57mGV7ei08u956g0xkC4caCABIGQt8h3XciNdcCwh4xWGWviytVC +Gbt5ZAI/iAsrBbkm2Tx/PxNrcn7+5FBhsTld1Inm8lge2WTNClOxoOecoeZxCe+y +MGqrAsxPIDYpO7HP/n1+RBWy8azv+j2o2+LuguA+xo2wnTbt8BJz6DN8k61PL8Xg +yY8hP+DQsA/6OxB/KA8TJRFxR8N26DseKmuXoo/xBBAJyufRO/Z/JkWOTbTpOIjC +AAAAAAAAAAAAAA== +----------BOUNDARY +Content-Type: application/pkcs7-mime; smime-type=enveloped-data +Content-Transfer-Encoding: base64 + +MIAGCSqGSIb3DQEHA6CAMIACAQAxggGFMIIBgQIBADBpMGQxCzAJBgNVBAYTAlVT +MRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRIw +EAYDVQQKEwlCT0dVUyBOU1MxFDASBgNVBAMTC05TUyBUZXN0IENBAgEoMA0GCSqG +SIb3DQEBAQUABIIBAAZXwFocAUc633rlij5f7h34x/PYispef+6ufoNaQKq1/c9b +SbKRZR4hqBYy1pBxO6tK61gWnFeHdnrq7Kec/i+LOkUG4g8Ki4ELG3MGICaqo7Fu +CAQeSbSD+E8LuO/rRsnNwUwNE2oy7Zie9iqqcJQuCR48WMeVhuGn+RwEDAlZod73 +/us2Xvobl3Q40vcbidegMmP9UXBa45BhIfeq8GrtPOUzVW9zv7fQoNc+1x1JSK7L +Y+o5VPUoJUMsr2jcgpGDb0uPN1xN8qEThEb8YeFLQbynEoEihJLtKfs33E0U2BVe +GhSCHB0w6SvSkhwSYI7OY6vj18JBcjnFTIY2VkEwgAYJKoZIhvcNAQcBMB0GCWCG +SAFlAwQBAgQQECWIfBfTzibznP1cQzICh6CABEBc9eyhZr/eEGCVEcyXi/X5XfUr +YAbZTYjcjislKjI+2R922HPdAtQabWkWY9S8O81XlRNmTr0qhl+IArc3IWUwBBC+ +3oryP+raeGBWDEEj7ZTYAAAAAAAAAAAAAA== +----------BOUNDARY diff --git a/comm/mail/test/browser/smime/data/nested-sigs.eml b/comm/mail/test/browser/smime/data/nested-sigs.eml new file mode 100644 index 0000000000..3a84ae1f98 --- /dev/null +++ b/comm/mail/test/browser/smime/data/nested-sigs.eml @@ -0,0 +1,219 @@ +Date: Wed, 5 Jan 2022 08:54:26 +0100 +From: nobody1@example.com +To: nobody2@example.com +Subject: subject 1 +MIME-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-1; + boundary="----=_Part_159674795_1647108947.1641369266420" + +------=_Part_159674795_1647108947.1641369266420 +Content-Type: multipart/mixed; + boundary="----=_Part_159674792_1533625984.1641369266416" + +------=_Part_159674792_1533625984.1641369266416 +Content-Type: text/plain; charset="ISO-8859-1" +Content-Transfer-Encoding: quoted-printable + +level 1 + +------=_Part_159674792_1533625984.1641369266416 +Content-Type: message/rfc822; name=nested2.eml +Content-Disposition: attachment; filename="nested2.eml" + +Date: Wed, 5 Jan 2022 08:54:23 +0100 +From: nobody3@example.com +To: nobody1@example.com +Subject: subject 2 +MIME-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-1; + boundary="----=_Part_71865141_195979751.1641369263077" + +------=_Part_71865141_195979751.1641369263077 +Content-Type: text/plain; charset="ISO-8859-1" +Content-Transfer-Encoding: quoted-printable + +level 2 + +------=_Part_71865141_195979751.1641369263077 +Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="smime.p7s" +Content-Description: S/MIME Cryptographic Signature + +MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC +DMgwggY9MIIEJaADAgECAgMU4igwDQYJKoZIhvcNAQENBQAweTEQMA4GA1UEChMHUm9vdCBD +QTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNp +Z25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcwHhcN +MjEwNDE5MTIxODMwWhcNMzEwNDE3MTIxODMwWjBUMRQwEgYDVQQKEwtDQWNlcnQgSW5jLjEe +MBwGA1UECxMVaHR0cDovL3d3dy5DQWNlcnQub3JnMRwwGgYDVQQDExNDQWNlcnQgQ2xhc3Mg +MyBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0k1EUh80iZ+U5TPQ6nd +KNdCKovzh3gZWHwPntqJfeH763KQDXShlmSrn6AkmXPa4lV2xxd79QSsRrjDvn9kjRBsJPNh +nMDykPpR5vVpAWPDD1biSkLP4kSMJSioxXkJfUa5ivPp8zQpCEXkHJ/LlAQcgagUs5hlxEPs +ToKNCdG9qluNktDs3pDFfwrC4+vmMVpedD6XM1nowwM9YDO/99FvR8TN7mKDUm4uCJqk2RUY +kaaFkkewrkjrbbch7IUaaHI1q//wEF3A9JSnatU7kn5MkAV+k8Esi6SOYnQVcW4LcQPqrxU4 +mtTSBXJvjPkr61pyJfk5RuNyGz4Ew2QnIhAqik9YpwOtvrQuE+1dqkjX1X3UKntc+kYEUOTM +DkJbjO3b8s/8lpPg2xE2VGI0OI8MYJs7l1Y4rfPSW4ugW+pOlrh819WghnBA05Ept6I8rfWM +u88akorkNHvA2Gxf6QrCw6cgmlrfLF1SXLpH1ZvvJChwOCAv1X8pwLJBA2iSzOCczJdLRe86 +EAqrcDqYlXCtNbHqhSukHIAhMamuYHqAJkgAuAHAk2NVIpE8Vuev2zol848xVOomi4FZ+aHR +UxHFe50D9nQR4G2xLD8shpGZcZqmd4s0YNEUtCysna+MENOfxGr4bxP8c1n3ZkJ0Horj+NzS +b5icy0eYlUAF++kCAwEAAaOB8jCB7zAPBgNVHRMBAf8EBTADAQH/MGEGCCsGAQUFBwEBBFUw +UzAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuQ0FjZXJ0Lm9yZy8wLAYIKwYBBQUHMAKGIGh0 +dHA6Ly93d3cuQ0FjZXJ0Lm9yZy9jbGFzczMuY3J0MEUGA1UdIAQ+MDwwOgYLKwYBBAGBkEoC +AwEwKzApBggrBgEFBQcCARYdaHR0cDovL3d3dy5DQWNlcnQub3JnL2Nwcy5waHAwMgYDVR0f +BCswKTAnoCWgI4YhaHR0cHM6Ly93d3cuY2FjZXJ0Lm9yZy9jbGFzczMuY3JsMA0GCSqGSIb3 +DQEBDQUAA4ICAQDGHq13XLQom9HIjUQSwL12dgSDIQf4EYJ/a8GVQsA4EbUlcI2LDMHVbP0c +GgN8i/gGMaWd3kEp1IubhNc9wTeGcaMfW2EpHl13fbvwrbkVGRMU5jWA/6YZtDeFlEHoiMNf +4LIGpLv4QKkdOazt6j+YBE35jPlHeXNS9ezfNJf7Pnfg3NGDiLqIc0dapqQVxA1wDQ+eSxMH +fu8YPvmlAap5KbHnUvpTOsimf7bviaGxoU0vzmOFf6Uq6TvUwaPPChOFu5nXnGaQhOdm1FCz +oeEtIiolaMMgsivEupgd6ErvXFjCtE2EVvdOuxZoQmySuG94zQ6z+++gs2SH8veIRDn8ueYs +wJgk1EAsXsjuCx24Ak0muAoYxi8eS3Vujy4hc7zCA1XuqhTgmhoHUwvfRBSoZwWvRMjToUV2 +ArZ/DLmG6U/GbrC7FbS/6IC1djH+ZGTBClhtxVC2sgO/HUJPWTnRxDGL6MgqORwVYfDeQGgO +cKizT+6R6A9PtpCeTYBsvhzucKS4BwQrDUECVIROR+qLlu12WGHnwyF7Bm/UtwvnNDKDzDWm +5yVPfBdC/LxXA8afQn+YYPiAstn2sZwcNQQKiTEWhaT67kwJxWqYZuzIbirmy5LcI2yWwdRF +8zxtArigu8dHwsIcQExFx0UGfztxK84rp4HWR0YosDzKZfFmnzCCBoMwggRroAMCAQICAwL0 +FjANBgkqhkiG9w0BAQ0FADBUMRQwEgYDVQQKEwtDQWNlcnQgSW5jLjEeMBwGA1UECxMVaHR0 +cDovL3d3dy5DQWNlcnQub3JnMRwwGgYDVQQDExNDQWNlcnQgQ2xhc3MgMyBSb290MB4XDTIx +MTAxMzE1MDA0NloXDTIzMTAxMzE1MDA0NlowVzETMBEGA1UEAxMKS2FpIEVuZ2VydDEbMBkG +CSqGSIb3DQEJARYMa2FpZUBrdWl4LmRlMSMwIQYJKoZIhvcNAQkBFhRrYWllQHRodW5kZXJi +aXJkLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKlAMvhWj/JTL3TYeWHi +ElUgH7QcaKr57viBf5Hz6GliZuC7IffSD7o9FPL5Her+Y6ny/7emyzY444619SgxA6GtT2cx +bl7usPrV8JX+ZxFQLrODQ3xmlhO1PiQGVhLxnjh/hBQYLqyuibjy77vexAAmHYyvjcvwtOeV +JxYQn0wRWf9fXOqa5jKot9U4/gT3UnSxLtFfU9d8wjAE3EV8Q6wto0e3xKy4GkP6DWBK/LJI +tE+wEtvP6egFJgxByuNrCIwtL6qCi15JAFUpAegnxEl6Ejn+vBKSz3GtiSPA5TuCtJx6nYy4 +C8JSIMUxXsLxXeabtRgJyb/4AP14Vjfa/bdryUTgzoNjmQ4kJJv0ltG2weyhomsL4oZIoY/V +x9cXnBrlr+C1CU3r4d7JeB3OlJFGxC0C5uq3+OfTozdrn26fVamlAo3CnjQ/qYqPZfmjtSD7 +bVl4gYxFOlAxN6a1QpDf3dNdmXGRalj04osQ+QcaNVeLhpyqFN4dslFWMboGDkDQhRysA2la +BxS1f99syysaiI7xNIOs6QYExf/yCo1BKEXbpTkygFJLicIv/SC/o6/9OZhwoG2tM3eSKp8V +0P9NcIh6KZN5wZ4KYebW1y2aA+Hh+qHAgVUhb8FZyRuKKpqfrpavaQB1SAHJK0xq4Xjd7KI8 +gUTR8Z0zIg/ZJ5kVAgMBAAGjggFZMIIBVTAMBgNVHRMBAf8EAjAAMFYGCWCGSAGG+EIBDQRJ +FkdUbyBnZXQgeW91ciBvd24gY2VydGlmaWNhdGUgZm9yIEZSRUUgaGVhZCBvdmVyIHRvIGh0 +dHA6Ly93d3cuQ0FjZXJ0Lm9yZzAOBgNVHQ8BAf8EBAMCA6gwQAYDVR0lBDkwNwYIKwYBBQUH +AwQGCCsGAQUFBwMCBgorBgEEAYI3CgMEBgorBgEEAYI3CgMDBglghkgBhvhCBAEwMgYIKwYB +BQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5jYWNlcnQub3JnMDgGA1UdHwQx +MC8wLaAroCmGJ2h0dHA6Ly9jcmwuY2FjZXJ0Lm9yZy9jbGFzczMtcmV2b2tlLmNybDAtBgNV +HREEJjAkgQxrYWllQGt1aXguZGWBFGthaWVAdGh1bmRlcmJpcmQubmV0MA0GCSqGSIb3DQEB +DQUAA4ICAQBEyGOkkF49VDUeSiqRn7J2QVpNTJszE5yofqw3YjUEx1GQZ3pf2dWwSUnCR3bi +Am2/OomaBvqWVpS0nDvbFrTCF8ewoRcvQRt9AwIZDYA0mPnl9wR66L4o2/1AkvmXUAXbOilr +9m2rAZQ8Xu6iZtCUmXR/0QoXbiJYk7ljFVd3/cjOzXAo5K1GAWwQ8jh8s06RVkSXuWORX3Pa +mkHfRcdokp9oi2nRHrLWUWwJUj8f2zURovXDVyUZYephYfMpac9y/ySnviuTmMYsndIZm9qP +E7IiC22mTLMNaTGjfI13n+X7jC0Oh0K7WqqmmpCb+xYFfa0G3gmnQaPuS8CcecEvL06dNOBC +aeMrWPbR7n0IwQSWxCueg8TvGryqhK0nX0X9DyX90uxtK+Zqb+mZGJ5ovv54FsWpYfZDMWIk +UMQs8jiFxHQi+uFtDB1UYxaN5ML15VnFH2wRzq0aHzHevn8cq5SXo5tbbpOucEqMyASiYAdj +51TumBPhTLGV81lLHQxSY8bBTrMfaljIieps1pP/pL5LgbrmB+ZuHpXxOeHQADzNuTipdYLr +kDwjMfjIVQEiiNPxjmOH/oEIjYZMlvZdnZyz0RYTJfAMEHhpo/VkC0m6CWxUnpy4YE4/179s +tsSviSN77rLqdPVhtgucPn7FP1vdWi+xkNxpG/KmaCnTVjGCBFswggRXAgEBMFswVDEUMBIG +A1UEChMLQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFWh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZzEcMBoG +A1UEAxMTQ0FjZXJ0IENsYXNzIDMgUm9vdAIDAvQWMA0GCWCGSAFlAwQCAwUAoIIB0TAYBgkq +hkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMTExMDIwOTU2MDNaME8G +CSqGSIb3DQEJBDFCBED769ZTTw8PcLnVMFuaVHnDUorGj9QTWjUfRdTnwvdskdCvXa4df9U0 +U5IcPrdX9QQy4COFNAX4X5070FSXRTx4MGoGCSsGAQQBgjcQBDFdMFswVDEUMBIGA1UEChML +Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFWh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZzEcMBoGA1UEAxMT +Q0FjZXJ0IENsYXNzIDMgUm9vdAIDAvQWMGwGCSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEq +MAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwIC +AUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwbAYLKoZIhvcNAQkQAgsxXaBbMFQxFDASBgNV +BAoTC0NBY2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5vcmcxHDAaBgNV +BAMTE0NBY2VydCBDbGFzcyAzIFJvb3QCAwL0FjANBgkqhkiG9w0BAQEFAASCAgCNhxk8PfAe +qCu70oJfAvQ09c1SYERIaRXqYLpHT1gC0L0M/8mn+nlhvHh+suNI6yvsqafvyBRwZKp5e2K3 +dQT+irZrn0CWiwfJarGsqNoilmNbXRieRgXbSPCU6O+BTDXJmwAc9EvPO0PKeJnQH0VhVSw2 +s8IpqdHnmlf8XZ8BBVEZLUstuzzVBXtVDlvzwneKULrn07yEfLuHkVbG1addtssOhOabjy2t +/RK+jAi00bO9KyhBedXvtbd1ugWowRSFZHqnKHccvIpsHF1P1PCPnnDuQQftlPzxoWK11gCz +XVpJyJyuI/C007QuJFBPVaJL3kTR2tR/dnyOq8iJ8iAOQ227/9i0Xt2IYF5fBlwrWsm7VIg7 +XJb/EHAqaXNSfbo66gWBRWi9YF/mx59CGQLbS6FIlEca1T25HlXipoN8nH7SaHgHpM/rziuY +5kkNIWB8UXZYe9XpPKTBat3dUVpKlyHVTKYq1UqyoUiFSMigicFvuz3uEBJHUMMuEuaJSUB9 +rraWm+++XlHMVfgwyDw77jws6+cI0CfOrsEtGPzLCiStnlSlKfywg5dzBSn26NXxN26Z3P/e +PiB8aayx0hANyVd+J4TWcbd5WckAOj2kVZk9bNUFumrxMCOpoai/JOFdXU5P1yaxaTrJJICf +nynNuW256mKMxVwYWImgCmQjngAAAAAAAA== +------=_Part_71865141_195979751.1641369263077-- + +------=_Part_159674792_1533625984.1641369266416-- + +------=_Part_159674795_1647108947.1641369266420 +Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="smime.p7s" +Content-Description: S/MIME Cryptographic Signature + +MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC +DMgwggY9MIIEJaADAgECAgMU4igwDQYJKoZIhvcNAQENBQAweTEQMA4GA1UEChMHUm9vdCBD +QTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNp +Z25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcwHhcN +MjEwNDE5MTIxODMwWhcNMzEwNDE3MTIxODMwWjBUMRQwEgYDVQQKEwtDQWNlcnQgSW5jLjEe +MBwGA1UECxMVaHR0cDovL3d3dy5DQWNlcnQub3JnMRwwGgYDVQQDExNDQWNlcnQgQ2xhc3Mg +MyBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0k1EUh80iZ+U5TPQ6nd +KNdCKovzh3gZWHwPntqJfeH763KQDXShlmSrn6AkmXPa4lV2xxd79QSsRrjDvn9kjRBsJPNh +nMDykPpR5vVpAWPDD1biSkLP4kSMJSioxXkJfUa5ivPp8zQpCEXkHJ/LlAQcgagUs5hlxEPs +ToKNCdG9qluNktDs3pDFfwrC4+vmMVpedD6XM1nowwM9YDO/99FvR8TN7mKDUm4uCJqk2RUY +kaaFkkewrkjrbbch7IUaaHI1q//wEF3A9JSnatU7kn5MkAV+k8Esi6SOYnQVcW4LcQPqrxU4 +mtTSBXJvjPkr61pyJfk5RuNyGz4Ew2QnIhAqik9YpwOtvrQuE+1dqkjX1X3UKntc+kYEUOTM +DkJbjO3b8s/8lpPg2xE2VGI0OI8MYJs7l1Y4rfPSW4ugW+pOlrh819WghnBA05Ept6I8rfWM +u88akorkNHvA2Gxf6QrCw6cgmlrfLF1SXLpH1ZvvJChwOCAv1X8pwLJBA2iSzOCczJdLRe86 +EAqrcDqYlXCtNbHqhSukHIAhMamuYHqAJkgAuAHAk2NVIpE8Vuev2zol848xVOomi4FZ+aHR +UxHFe50D9nQR4G2xLD8shpGZcZqmd4s0YNEUtCysna+MENOfxGr4bxP8c1n3ZkJ0Horj+NzS +b5icy0eYlUAF++kCAwEAAaOB8jCB7zAPBgNVHRMBAf8EBTADAQH/MGEGCCsGAQUFBwEBBFUw +UzAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuQ0FjZXJ0Lm9yZy8wLAYIKwYBBQUHMAKGIGh0 +dHA6Ly93d3cuQ0FjZXJ0Lm9yZy9jbGFzczMuY3J0MEUGA1UdIAQ+MDwwOgYLKwYBBAGBkEoC +AwEwKzApBggrBgEFBQcCARYdaHR0cDovL3d3dy5DQWNlcnQub3JnL2Nwcy5waHAwMgYDVR0f +BCswKTAnoCWgI4YhaHR0cHM6Ly93d3cuY2FjZXJ0Lm9yZy9jbGFzczMuY3JsMA0GCSqGSIb3 +DQEBDQUAA4ICAQDGHq13XLQom9HIjUQSwL12dgSDIQf4EYJ/a8GVQsA4EbUlcI2LDMHVbP0c +GgN8i/gGMaWd3kEp1IubhNc9wTeGcaMfW2EpHl13fbvwrbkVGRMU5jWA/6YZtDeFlEHoiMNf +4LIGpLv4QKkdOazt6j+YBE35jPlHeXNS9ezfNJf7Pnfg3NGDiLqIc0dapqQVxA1wDQ+eSxMH +fu8YPvmlAap5KbHnUvpTOsimf7bviaGxoU0vzmOFf6Uq6TvUwaPPChOFu5nXnGaQhOdm1FCz +oeEtIiolaMMgsivEupgd6ErvXFjCtE2EVvdOuxZoQmySuG94zQ6z+++gs2SH8veIRDn8ueYs +wJgk1EAsXsjuCx24Ak0muAoYxi8eS3Vujy4hc7zCA1XuqhTgmhoHUwvfRBSoZwWvRMjToUV2 +ArZ/DLmG6U/GbrC7FbS/6IC1djH+ZGTBClhtxVC2sgO/HUJPWTnRxDGL6MgqORwVYfDeQGgO +cKizT+6R6A9PtpCeTYBsvhzucKS4BwQrDUECVIROR+qLlu12WGHnwyF7Bm/UtwvnNDKDzDWm +5yVPfBdC/LxXA8afQn+YYPiAstn2sZwcNQQKiTEWhaT67kwJxWqYZuzIbirmy5LcI2yWwdRF +8zxtArigu8dHwsIcQExFx0UGfztxK84rp4HWR0YosDzKZfFmnzCCBoMwggRroAMCAQICAwL0 +FjANBgkqhkiG9w0BAQ0FADBUMRQwEgYDVQQKEwtDQWNlcnQgSW5jLjEeMBwGA1UECxMVaHR0 +cDovL3d3dy5DQWNlcnQub3JnMRwwGgYDVQQDExNDQWNlcnQgQ2xhc3MgMyBSb290MB4XDTIx +MTAxMzE1MDA0NloXDTIzMTAxMzE1MDA0NlowVzETMBEGA1UEAxMKS2FpIEVuZ2VydDEbMBkG +CSqGSIb3DQEJARYMa2FpZUBrdWl4LmRlMSMwIQYJKoZIhvcNAQkBFhRrYWllQHRodW5kZXJi +aXJkLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKlAMvhWj/JTL3TYeWHi +ElUgH7QcaKr57viBf5Hz6GliZuC7IffSD7o9FPL5Her+Y6ny/7emyzY444619SgxA6GtT2cx +bl7usPrV8JX+ZxFQLrODQ3xmlhO1PiQGVhLxnjh/hBQYLqyuibjy77vexAAmHYyvjcvwtOeV +JxYQn0wRWf9fXOqa5jKot9U4/gT3UnSxLtFfU9d8wjAE3EV8Q6wto0e3xKy4GkP6DWBK/LJI +tE+wEtvP6egFJgxByuNrCIwtL6qCi15JAFUpAegnxEl6Ejn+vBKSz3GtiSPA5TuCtJx6nYy4 +C8JSIMUxXsLxXeabtRgJyb/4AP14Vjfa/bdryUTgzoNjmQ4kJJv0ltG2weyhomsL4oZIoY/V +x9cXnBrlr+C1CU3r4d7JeB3OlJFGxC0C5uq3+OfTozdrn26fVamlAo3CnjQ/qYqPZfmjtSD7 +bVl4gYxFOlAxN6a1QpDf3dNdmXGRalj04osQ+QcaNVeLhpyqFN4dslFWMboGDkDQhRysA2la +BxS1f99syysaiI7xNIOs6QYExf/yCo1BKEXbpTkygFJLicIv/SC/o6/9OZhwoG2tM3eSKp8V +0P9NcIh6KZN5wZ4KYebW1y2aA+Hh+qHAgVUhb8FZyRuKKpqfrpavaQB1SAHJK0xq4Xjd7KI8 +gUTR8Z0zIg/ZJ5kVAgMBAAGjggFZMIIBVTAMBgNVHRMBAf8EAjAAMFYGCWCGSAGG+EIBDQRJ +FkdUbyBnZXQgeW91ciBvd24gY2VydGlmaWNhdGUgZm9yIEZSRUUgaGVhZCBvdmVyIHRvIGh0 +dHA6Ly93d3cuQ0FjZXJ0Lm9yZzAOBgNVHQ8BAf8EBAMCA6gwQAYDVR0lBDkwNwYIKwYBBQUH +AwQGCCsGAQUFBwMCBgorBgEEAYI3CgMEBgorBgEEAYI3CgMDBglghkgBhvhCBAEwMgYIKwYB +BQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5jYWNlcnQub3JnMDgGA1UdHwQx +MC8wLaAroCmGJ2h0dHA6Ly9jcmwuY2FjZXJ0Lm9yZy9jbGFzczMtcmV2b2tlLmNybDAtBgNV +HREEJjAkgQxrYWllQGt1aXguZGWBFGthaWVAdGh1bmRlcmJpcmQubmV0MA0GCSqGSIb3DQEB +DQUAA4ICAQBEyGOkkF49VDUeSiqRn7J2QVpNTJszE5yofqw3YjUEx1GQZ3pf2dWwSUnCR3bi +Am2/OomaBvqWVpS0nDvbFrTCF8ewoRcvQRt9AwIZDYA0mPnl9wR66L4o2/1AkvmXUAXbOilr +9m2rAZQ8Xu6iZtCUmXR/0QoXbiJYk7ljFVd3/cjOzXAo5K1GAWwQ8jh8s06RVkSXuWORX3Pa +mkHfRcdokp9oi2nRHrLWUWwJUj8f2zURovXDVyUZYephYfMpac9y/ySnviuTmMYsndIZm9qP +E7IiC22mTLMNaTGjfI13n+X7jC0Oh0K7WqqmmpCb+xYFfa0G3gmnQaPuS8CcecEvL06dNOBC +aeMrWPbR7n0IwQSWxCueg8TvGryqhK0nX0X9DyX90uxtK+Zqb+mZGJ5ovv54FsWpYfZDMWIk +UMQs8jiFxHQi+uFtDB1UYxaN5ML15VnFH2wRzq0aHzHevn8cq5SXo5tbbpOucEqMyASiYAdj +51TumBPhTLGV81lLHQxSY8bBTrMfaljIieps1pP/pL5LgbrmB+ZuHpXxOeHQADzNuTipdYLr +kDwjMfjIVQEiiNPxjmOH/oEIjYZMlvZdnZyz0RYTJfAMEHhpo/VkC0m6CWxUnpy4YE4/179s +tsSviSN77rLqdPVhtgucPn7FP1vdWi+xkNxpG/KmaCnTVjGCBFswggRXAgEBMFswVDEUMBIG +A1UEChMLQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFWh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZzEcMBoG +A1UEAxMTQ0FjZXJ0IENsYXNzIDMgUm9vdAIDAvQWMA0GCWCGSAFlAwQCAwUAoIIB0TAYBgkq +hkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMTExMDIwOTU2MDNaME8G +CSqGSIb3DQEJBDFCBED769ZTTw8PcLnVMFuaVHnDUorGj9QTWjUfRdTnwvdskdCvXa4df9U0 +U5IcPrdX9QQy4COFNAX4X5070FSXRTx4MGoGCSsGAQQBgjcQBDFdMFswVDEUMBIGA1UEChML +Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFWh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZzEcMBoGA1UEAxMT +Q0FjZXJ0IENsYXNzIDMgUm9vdAIDAvQWMGwGCSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEq +MAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwIC +AUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwbAYLKoZIhvcNAQkQAgsxXaBbMFQxFDASBgNV +BAoTC0NBY2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5vcmcxHDAaBgNV +BAMTE0NBY2VydCBDbGFzcyAzIFJvb3QCAwL0FjANBgkqhkiG9w0BAQEFAASCAgCNhxk8PfAe +qCu70oJfAvQ09c1SYERIaRXqYLpHT1gC0L0M/8mn+nlhvHh+suNI6yvsqafvyBRwZKp5e2K3 +dQT+irZrn0CWiwfJarGsqNoilmNbXRieRgXbSPCU6O+BTDXJmwAc9EvPO0PKeJnQH0VhVSw2 +s8IpqdHnmlf8XZ8BBVEZLUstuzzVBXtVDlvzwneKULrn07yEfLuHkVbG1addtssOhOabjy2t +/RK+jAi00bO9KyhBedXvtbd1ugWowRSFZHqnKHccvIpsHF1P1PCPnnDuQQftlPzxoWK11gCz +XVpJyJyuI/C007QuJFBPVaJL3kTR2tR/dnyOq8iJ8iAOQ227/9i0Xt2IYF5fBlwrWsm7VIg7 +XJb/EHAqaXNSfbo66gWBRWi9YF/mx59CGQLbS6FIlEca1T25HlXipoN8nH7SaHgHpM/rziuY +5kkNIWB8UXZYe9XpPKTBat3dUVpKlyHVTKYq1UqyoUiFSMigicFvuz3uEBJHUMMuEuaJSUB9 +rraWm+++XlHMVfgwyDw77jws6+cI0CfOrsEtGPzLCiStnlSlKfywg5dzBSn26NXxN26Z3P/e +PiB8aayx0hANyVd+J4TWcbd5WckAOj2kVZk9bNUFumrxMCOpoai/JOFdXU5P1yaxaTrJJICf +nynNuW256mKMxVwYWImgCmQjngAAAAAAAA== +------=_Part_159674795_1647108947.1641369266420-- -- cgit v1.2.3