|
|
(JavaScript) Sign Email using RSASSA-PSS with SHA256
Demonstrates how to sign an email using the RSASSA-PSS signing algorithm with the SHA256 hash algorithm. Note: This example requires Chilkat v11.0.0 or greater.
var success = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Get a digital certificate with private key from a .pfx
// (Chilkat has many different ways to provide a cert + private key for siging.
// Using a PFX is just one possible option.)
var pfx = new CkPfx();
success = pfx.LoadPfxFile("qa_data/rsassa-pss/privatekey.pfx","PFX_PASSWORD");
if (success == false) {
console.log(pfx.LastErrorText);
return;
}
var email = new CkEmail();
// Load an email to be signed.
// (We could have alternatively just built the email directly by setting the Subject, Body, From, To recipients, etc.)
// The contents of this sample email is shown below.
success = email.LoadEml("qa_data/rsassa-pss/sample.eml");
if (success == false) {
console.log(email.LastErrorText);
return;
}
// Indicate that the email is to be signed, and that we want to use RSASSA-PSS.
email.SendSigned = true;
email.SigningAlg = "pss";
email.SigningHashAlg = "sha256";
// Get the certificate to be used for signing.
// (The typical case for a PFX is that it contains a cert with an associated private key,
// as well as other certificates in the chain of authentication. The cert with the private
// key should be in the first position at index 0.)
var cert = new CkCert();
success = pfx.CertAt(0,cert);
if (success == false) {
console.log(pfx.LastErrorText);
return;
}
// Tell the email object to use this cert (and private key) for signing.
email.SetSigningCert(cert);
// The mailman object will do the RSASSA-PSS signing.
var mailman = new CkMailMan();
// Tell the mailman to produce a multipart/signed email instead of an application/pkcs7-mime.
mailman.OpaqueSigning = false;
// Tell the mailman to "render" the email. This signs the email and returns
// the MIME of the signed email.
var sbSignedEmail = new CkStringBuilder();
success = mailman.RenderToMimeSb(email,sbSignedEmail);
if (success == false) {
console.log(mailman.LastErrorText);
return;
}
// Save the signed email to a file.
sbSignedEmail.WriteFile("qa_output/rsassa-pss-signed.eml",email.Charset,false);
console.log("Success.");
// -----------------------------------------------
// This is the MIME of the pre-signed Email.
// Scroll down to see the signed MIME.
// MIME-Version: 1.0
// Date: Tue, 18 Apr 2017 10:12:16 -0500
// Message-ID: <D5E3C6F705B2C42C1ED1B5D835B50DDD4536267D@CHILKAT13>
// Content-Type: multipart/mixed; boundary="------------060103010600070703070806"
// X-Priority: 3 (Normal)
// Subject: This is a sample email
// To: "Chilkat Support" <support@chilkatsoft.com>
// From: "Chilkat GMail" <chilkat.support@gmail.com>
//
// --------------060103010600070703070806
// Content-Type: multipart/alternative; boundary="------------000908080200080609080305"
//
// --------------000908080200080609080305
// Content-Type: text/plain
//
// This is the plain-text body
// --------------000908080200080609080305
// Content-Type: multipart/related; boundary="------------000600080404090108060206"
//
// --------------000600080404090108060206
// Content-Type: text/html
//
// <html><head></head><body><b>This is the HTML body</b><br><img src="starfish.jpg"></body></html>
// --------------000600080404090108060206
// Content-Type: image/jpeg; name="starfish.jpg"
// Content-Transfer-Encoding: base64
// Content-Disposition: inline; filename="starfish.jpg"
// Content-Location: starfish.jpg
//
// /9j/4AAQSkZJRgABAgEASABIAAD/7Q18UGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
// AQBIAAAAAQABOEJJTQPzAAAAAAAIAAAAAAAAAAE4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgAB
// AAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEA
// MgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNBBQAAAAAAAQAAAABOEJJTQQM
// AAAAAAyTAAAAAQAAAIAAAACAAAABgAAAwAAAAAx3ABgAAf/Y/+AAEEpGSUYAAQIBAEgASAAA//4A
// J0ZpbGUgd3JpdHRlbiBieSBBZG9iZSBQaG90b3Nob3CoIDQuMAD/7gAOQWRvYmUAZIAAAAAB/9sA
// hAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwM
// DAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwM
// DAwMDAwMDAwMDAwMDAwMDAz/wAARCACAAIADASIAAhEBAxEB/90ABAAI/8QBPwAAAQUBAQEBAQEA
// AAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIF
// BwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKD
// JkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eH
// l6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFy
// gpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVW
// ZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwD1VJJJJSkkkklKSSSSUpJJMSACTwEl
// KJA5MJAg8arnuqdbta4+hJaCQ0AgTHfe8tY3/OUuh9bsybfRu0d2Ez/0x7Xf2FWhzuGeY4Ym5DTw
// sM8uWyDH7h27dXoEkklZYFJJJJKUkkkkp//Q9VSSSSUpJJJJSkkkklKVPqt5pxHR9J/tbHmriw/r
// Dk/QpaYI9x+P5qh5nKMWHJP92Jrz6MuCHHkiPG3l+oZTq2uL7HUkHYwCptnOm24n6KX1eut/aoBe
// XxtklpbyN3tb9Db/AFULMIcNG2XO3S9oY6IHtJ9R7n1+p7vzq0X6sML+pudtexu/2tsMuho2rE+H
// C8sD1uyaH/o7rZ6GDJ5PobfohOmHATroXEUkkkkpSSSSSn//0fVCsLq/XjiZLcZhDXuMCSAfj7y1
// bq5D64dLvLvtmO3c5oOkSdR+bq3a5Qc17vtH2jwy7s/KjGcoGTY925T1zKkS9rpbvhwj2n6Lv7Sv
// 4/XGED127Afzxq371weL1S5zrWhj3MrAFr3CXNaxrf0TI2saz1HfSWvh5rb9rK3erLQHMA9rCfe2
// v+Vbt+msSPxHnMB/WEZIj5rHqr+9H/um/k5PGRtXjF7aq6q1u6twcD4Ii5inJvx9a7SNfonVv9VX
// cfrpiL2THLma/gtPl/inK5q9fBL92fpaM+VmPl9Q/F1ci0U0vsPDRK5fLyK773vtkh57dgPo8q91
// XrNVtPpUgw76RIgx5LA9V9hcGAuOob8fzdPcqfxfmY5IjDjleolMxOn9UW2uU5cxBlIEE/k0utua
// 3I9+zbUyGNb7HTz7y0v9Rn9lXvqcA/KDh3kmPM/Bv0formus32G5zGEEuJ95c50iezrfc3/MXR/U
// UPrewXRLgdseEo/DsfDLFZ1/sZ+ZFcvPfSnv0kkltOMpJJJJSkkkklP/0vVUO6llzCx4kFESSU8X
// 136py512NInnZoY52rmrKMzBtLLA5nIN7Xlpj2hrH7o2+xm32r1d7GvEOEgrE6z9XcfMrc5jQHdx
// 2Kp8xycZgmIqXb9FvctzpiRHJrHa+oeTxeqtftpvHpMaJNz/AHHafosayvd/J/tq4CHNL2n2nVjj
// I9vDbPd9Dcuc6xjZvTb4IOpAaXRtEHdt2EbHf2kbp3WXwK8j3DvHgJj2AfvO/wAG1lCxc3JmIJAo
// jeLpcIIEomwfsdi/JsgEHQATI1IHzSos3te4MdZtG4tYDr3hw9yrXX45x22eo173uLRWPpCAJds/
// d/roTMvJraTjv9PcC1xAB077tzVAMZI2rXrouoGB4Rr9jWLK78mCC93mZgRH8natrArOPXW5jxWG
// mWieD+c7+0szExwLw+ZeQNw8PLn/AKpaFtwrYxrwQXOIZIEODf3fpJ+TJMSj7ZIMdkTAPpNa7vQ0
// 9Zy3e1r2PA/Ogop6vmt59P46hczj9VxWOIdc2pokS4gcCZhhf/I/tqX7axrAG1WG2xztuxrSZb++
// 0/2fannn/iIOktO/A1DyuO/lFPQP6vknT1mM54CA7rFokuySI8uQBJhczd9YGOgVVOLmtLnkkREt
// 52B3s2uQLer5GYHMqqZU120AjVzSwS57f5FzvZtTvf8AiEj6spiPDgDJHlYV8o/B7PD68/ewWPD2
// P4n2nXwat6qwW1h7eHCVwXQun5uVktssc5wB1n6I13RW36LV3WLWaqGsPYLb5L3/AGv154pXodjw
// +Lnc3HHHJWP60//T9VSSSSUpJJJJTgfWjp1F+N6jmAmYOnK4h/TGh72tgGSABIAE/wDSXc/WHNZs
// 9Bp+iZcQJ17NH8pcwGF1zng7Q7gGJ/L/ANBYfxPMBnqB1EfV/edjkOKOL1bbhzh030w4xu2e48wJ
// /O/8yQ22lr3V7y1oBHpiCD9E7t+r/wAz6CXU+qOYLK8Z+3e3ZZug6D3Q3/yay8LPd9oHqDdBH0oM
// /wBoqHHjySgZy7aNq7oV5Olffk4k+i80u2ncQNYP0v3lj35ORkWbrHl7hI3ET/J/zdrVu5TmZlTL
// 9jKKwzZIfJd+dudvj81Zd2CxoNlT5AE7VJglAfMAJ7fyLLHhIsj1bIcejIyDsbuId9LUCCPzv+i1
// amF0q/6ALnE6ECXeP9lav1Y+rzspoc46GC93czrtXZYPQMPGaPYC7uSruPlJZBczwwOwju0OY5+O
// MmGMXIdS8ng/VXIs19PZuOrnan/N+it3B+qdVcG47o1jgfcuhZVWwQ1oCmrePl8UPliL7nUudk5r
// Nk3ka7DRDj4tOO0NraAjJJKZgf/U9VSSSSUpUep9QGLUQ0j1HDTyH7ysZeSzGpdY7twPErk+sZ7r
// XEl3ueYFY5AiW/yf6yp89zYwYzR/WS0hH/uv7sWzyuD3JgkegbtbMyCbHOfOwH3WHVuv5ztqw+qd
// QaJqoeLNdXsJESNGsn876W+x6XUuqEOfjU2tdXYBudGojmuHbttjbP8ArarYvTH5Lm2aw4mAPzvu
// WLgwyMuOdylI2B1lI9ZOvQiLPpjFzhXbaToXAz7RMD86ByojHcy4BzS0ke3dp/mrvelfU/cxrrQG
// DwHP+cm659UmV0i6rU16ydSP/MVqHl8ogZabfL1YYc9hOQQ6X8zzuDS9+K4NDhZHt2l4G7R30Wex
// u2trv9J/pE7Mewyx7RLjqXGfJ/u/R/nfvI7AcctayQ0aEbiw6iHe+fzm+z/CIx2mH7RUzgAkuJJ+
// lte8O3/yvYsqWQ2a67NiRPFpsdXqvqltGK5o0IK6Fct9V8lovfU2QHAGDprx2XUroeVnx4Mcu8Q4
// fMxMc0we9/apJJJTMKkkkklP/9X1VJJJJTg/WDL9N4b2rbuDfFx9rWrj+pZz3l9TGA2Wa+0maxxZ
// Xc2N2y5i7Dr+BkXO9SkTMdgdRx9JYVH1bzL8h1j27C7RzjyR8Fj81yebLzcp8NxoCBJ9IdTlc+DH
// hHEfV2cvpnR/tFrRVSGv0BP0tp4+m73dv5tdn0foFWM0W3DdaYklWel9GowWCBL+5PK0gABAWjg5
// aGId59ZHUtTmeanlJANQ6RUAAIGgUbqm21mtwkOEKaSnaz599YemvwLXFodssPLfDt3/AHlm13Wv
// q2uyQKqBpU5xBl30m1j8937y77r/AE1mZiOO2XtEhcDl4hqyTU6sNbWR+l+iAJO83aP3/urG5/lh
// CfEBUJG77Sdrks/u4xE6zi63Qsl1WWx5na5x2vmQ4E7XO3fn+9q7ml4fU1w7heZ4mQWXs2WizHrP
// pVFkBu4fpHbW/S/tr0Hot/r4NbjyBCs/DJ/qjA/ok1/dk1PiOOpif72jfSSSWg0FJJJJKf/W9VSS
// SSUsQDykABwE6SSlJJJJKUkkkkpYgEEHgrl/rR0IZDTdW2e5A8V1KhZUy1pa8SCmZMcckTGWxZMW
// WWOYnHcPllOPkDN3GrYWwJa0BsTxXt9jPo+5egfVxj24DdwgnX70x+ruGbfUAgTO3stLHoZRWK2C
// AFDy3LeyZG7vQf3Wfmub94RFVSVJJJWWopJJJJT/AP/ZADhCSU0EBgAAAAAABwABAQEAAQEA//4A
// J0ZpbGUgd3JpdHRlbiBieSBBZG9iZSBQaG90b3Nob3CoIDQuMAD/7gAhQWRvYmUAZIAAAAABAwAQ
// AwIDBgAAAAAAAAAAAAAAAP/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwR
// DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwR
// EQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8IAEQgAeAB4AwEiAAIRAQMRAf/E
// AMkAAQACAgMBAAAAAAAAAAAAAAAFBgQHAQMIAgEBAAMBAQEAAAAAAAAAAAAAAAMEBQIBBhAAAgIB
// BAICAgIDAAAAAAAAAgMBBAUAIBEGEBITFDAhMSJBIxURAAIBAwEEBwMJBQkAAAAAAAECEQASAyEx
// IjITIEFRQlJiBGFyIxAwcYGRoZJDY8GCotIz8LGywuJTc4MUEgABAwEGAwQIBwEAAAAAAAABABEC
// IRAgMVEiA0FxEmEyQmKBkaFScpLS4sHRgrITIzME/9oADAMBAQIRAxEAAADaoAABG89SPNDu0Mvc
// LEAAA4OXHIBxTbXRsu/BbL1ltLvvOGjmgAcUW91SvZw5bXsziaWwMmk996jI1tHZ1/B2zqDa+xUk
// Xxxez+xjffnvcPeXHIgKJtrCr2tWy8Ri42xLdPSikz5CDj/OLz8U9zxacSJuFyCzu1u430AYPPVe
// rudAfO73XkV7MsSfPxLSUjJs8796eDj9/KWEADppktR8XW68KQv8slOitxVSxXqcjGdmRobU+sHO
// +k+eB4ABTojYytaj5Is1XX2DWkZsjWePuX6yU25aeUEsAB5VHqp5VHqp5VHqp5VHqmN80POvTub5
// VPPVTyq989VPKo//2gAIAQIAAQUA8sMVhVtBYHdl3QKsYPA+bajYuH3K0ozKiG02LVmiQRrnXMeX
// 1gbFirEEK/WfrOOYqvjVTGlB+DIQFrCtPJECtBSZLQsNmReTW1KnMWqv+pRSDY/ez6Sfk8XK0ide
// ZlO4vXiOOPH/2gAIAQMAAQUA8gEmT65Jndjw/tkpj1802ADG1lnB0C0mv8a8iJa4nUgUR4rXDVIT
// BRP7k4idQnT3oWP+dCMkSBlSogplzvRbbTmT5oV+BtWxVqpeOWGv2GY4nzF5ormZmdUrEMXbiIfu
// D25nnnx//9oACAEBAAEFAPwew8/lzGRmquM1cVaqPixX/J2C2bLVpwm/r0zON3SQxqCGdl+xFepa
// hhHJE+zhQ9Mftn+M1m3ryNbJTqpn2jFXJVLUa7HdESvXAmnUeDb+PH1qbu29c+4K2uptoZdJS2zE
// aTnbYauWHWGZb1+thKRBaxOQrvqQ1c6J6R0WSojKrVdvmYgozXV614L+It4tlHLwBG4SA/6MyloT
// jFLGFpsLnUur8E8PR+TUoK2fg20mE2t5yOMr3k9j62yhcrvuVYZZc94mEQ7M0q6f++2dB2DJNM/t
// WWU8JZeeD6n8JgEAOzt0gxykhI5HIUxmnCLCbddxaqVSe/E9SsOCn1KmnSKNZEbcnkBqKuuhx5bK
// cDY+R441hg2wTId1iks8ksBAN1qyusnJXnut3cpMxXxdmyaejvagMW6nYH4nBiiivbWUEG7sF2Pm
// yVkDLGYQ3vwvXU0xgRiO2YaShdo1tSUrZh7EWKG7stOx8+O6zcsHisNXoK8OUDl9hxcY+4E2Vq6d
// chtbcSwPQgA7ewYqL1W/UOq3o4lE/k/nV/A07hY7GIoBs//aAAgBAgIGPwC0zkWjEOSjKIIYsxvx
// 2+O4ajyxUuGFxoSMSK6Sy0zluRGMZ6/uX9sTtns1xQnXpDCHKP1KcImoazG3KWf5qhAmMYoSNSMu
// 78yMx1QyL9Cae9L55yQm8gxfr7ptMpFoxDklSlAMCafCEGNRVR2zTqyWmIfPxeu4f+aNIQ/0LPqy
// /SnGmHveOf2onb7w9qhL3SD6PFdluEEmRcg923qA0TrnX3fKoE49Iv6mbtVLf//aAAgBAwIGPwC0
// RGJQ6qvflM4CgW2OdzWKGj5J2enDFPA08yjE48fiW3JqMVgnII9FrHVDL6UJwqCHUXoQMEXdP7UQ
// 4nI8B+NojEOShB6o+sFSmA/SHWqR5CgufyEPKWCYatz9vNdO4aTpyU45gog8Lg24sGo/FObBGR1x
// pzC3AMHv6Hfyovj22//aAAgBAQEGPwD5iJE/PDGhjI+w9g62oPduTPWWMnTmT8NbvI+SkyjvCfnc
// jI9gU2AhgG08K/56S3nqA4XEMuRcgjW98X6d3hrFPYOnqYrQg9DJlPUNPppmGPmlZLglgI2tdyRd
// WMh8bKXLtaGZg0cHOyDmbs9+sQ8o6Rp8OQsMaST/AHJbvL3vLV+HMwUNy0dWlWYf1GVX7qV8SM+M
// EjmJt09n8tTiyCfCdvyJ6eZA3iO090VkUlr2FqnCGDa+bDwf9lLiXuC0bJgmfeu4e/WMeUdP/wBW
// ARlTUEATRPrXJzl7QGHw2VmL5N78v8FXernHmyERittUSLt2eHEiMlBoMwCrAQYiZSN+2hjTMTI0
// vE/Y01eWuZiC3b7K0JYnQE3bFEKiLr47t9P+OudkW1wCVY7J9vvW0kOAwEMp0INcQ+2t51H11BzL
// 9tfDyK30H5YOoNMyAK5BB7DNOGL2bSZmFHhuVrt2jj9QxJymTlyTzIU/lXMuPH+/ZZQyKYB6/qDW
// KG/x9+pgAdZjs0mkGDM2ZgoBQqVtPZ+pQL7zRNmzZ2W0FCqOxpYnX8NaSIAJMkftosMYcCNpJ2nc
// 28VcycVrYzlRJAJVTvKnDv8A6dKMQLZCf6iC1QSLtp38n+3SO/EQJ6BTIonqNO6kBDqZ+nu0oEk7
// bSNDrB2/E/jpvUeoCoGMwBuqBpwLP8PxHoPi4XWbmlTDCWmaAxl3zWExwKrEW7d+/Z4KW0ajaCWK
// yRBlBb37P56YXlAV5cqoAtA3f323LnqFL8kEFpc7FjrNqe5bW6pyGQV00FpuXebzeFaXN6gajULQ
// UbB0SE1ZFknqBmdaus1I6xB++sePFdzQPiHQANO7y7eKnfLnXG4UxeSCSusDxXUHVSVA2ChjgmOI
// n/TxUpCcpBEE6t9OtBso5jDrbWoxoBHShdcraKv7aZ3N4BkxvTPft8VN6dLTrDEGT+pjDqOLz1La
// 9Z9hrGCV013xuj32Ph81WubCwDRI0u3wODC7W8FC6CrtIgEDQeb3qCqIAHTbK5gKKAMczJsUkag3
// WKt1cv0gbDkAZMzg9v5ZXuuv9slC4asdAokkezh/HRdse3UAnWmTJIOIm07GOumzeoMTvqbQqqdZ
// 3p5jO2Ld4Fx46xZCAhVgCp0MHTZanepWHWOmULEY8IEkam5uGhhV2TI+nqJUl8ZU22RI3H4r1oW3
// ZspOpYkgeZot73coZMouynUk1AGlH1WAQTx6ffWS3Eucxaqm7dYm1SIbxdykXIvLeTxgghjs5hea
// xOPCJ6bsuO9Wa7YT1W+7u+apZWUE65H1eNkXUFVRd1n5WxuJDCKZwrQzAqykgrJjmLHEyrQyJ8R8
// 5tW83ZNt7uMQZrMlqb7U2ObgDIP069PeANboA6JKj4iiVNOro3NZiOdLXmfyr7iqL+pTaQoAEDQf
// f5fnr2W1+0aGrcQ+vo//2Q==
//
// --------------000600080404090108060206--
//
// --------------000908080200080609080305--
//
// --------------060103010600070703070806
// Content-Type: application/zip; name="thisIsATest.zip"
// Content-Transfer-Encoding: base64
// Content-Disposition: attachment; filename="thisIsATest.zip"
//
// UEsDBAoAAAAAAE6f+0hdycPGDwAAAA8AAAAPAAAAdGhpc0lzQVRlc3QudHh0VGhpcyBpcyBhIHRl
// c3QuUEsBAj8ACgAAAAAATp/7SF3Jw8YPAAAADwAAAA8AJAAAAAAAAAAgAAAAAAAAAHRoaXNJc0FU
// ZXN0LnR4dAoAIAAAAAAAAQAYAMmlFyZr6NEBqlsQH2vo0QGqWxAfa+jRAVBLBQYAAAAAAQABAGEA
// AAA8AAAAAAA=
//
// --------------060103010600070703070806--
//
//
// -----------------------------------------------------------
// Below is the RSASSA-PSS signed email:
// -----------------------------------------------------------
// MIME-Version: 1.0
// Date: Tue, 18 Apr 2017 10:12:16 -0500
// Message-ID: <1C56FC72F14F0F783425E85DE62A61D04516697E@CHILKAT13>
// Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha256;
// boundary="------------090003010300010703020907"
// X-Priority: 3 (Normal)
// Subject: This is a sample email
// To: "Chilkat Support" <support@chilkatsoft.com>
// From: "Chilkat GMail" <chilkat.support@gmail.com>
// X-MS-Has-Attach: yes
//
// --------------090003010300010703020907
// Content-Type: multipart/mixed; boundary="------------060103010600070703070806"
//
// --------------060103010600070703070806
// Content-Type: multipart/alternative; boundary="------------000908080200080609080305"
//
// --------------000908080200080609080305
// Content-Type: text/plain
//
// This is the plain-text body
// --------------000908080200080609080305
// Content-Type: multipart/related; boundary="------------000600080404090108060206"
//
// --------------000600080404090108060206
// Content-Type: text/html
//
// <html><head></head><body><b>This is the HTML body</b><br><img src="starfish.jpg"></body></html>
// --------------000600080404090108060206
// Content-Type: image/jpeg; name="starfish.jpg"
// Content-Transfer-Encoding: base64
// Content-Disposition: inline; filename="starfish.jpg"
// Content-Location: starfish.jpg
//
// /9j/4AAQSkZJRgABAgEASABIAAD/7Q18UGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
// AQBIAAAAAQABOEJJTQPzAAAAAAAIAAAAAAAAAAE4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgAB
// AAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEA
// MgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNBBQAAAAAAAQAAAABOEJJTQQM
// AAAAAAyTAAAAAQAAAIAAAACAAAABgAAAwAAAAAx3ABgAAf/Y/+AAEEpGSUYAAQIBAEgASAAA//4A
// J0ZpbGUgd3JpdHRlbiBieSBBZG9iZSBQaG90b3Nob3CoIDQuMAD/7gAOQWRvYmUAZIAAAAAB/9sA
// hAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwM
// DAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwM
// DAwMDAwMDAwMDAwMDAwMDAz/wAARCACAAIADASIAAhEBAxEB/90ABAAI/8QBPwAAAQUBAQEBAQEA
// AAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIF
// BwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKD
// JkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eH
// l6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFy
// gpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVW
// ZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwD1VJJJJSkkkklKSSSSUpJJMSACTwEl
// KJA5MJAg8arnuqdbta4+hJaCQ0AgTHfe8tY3/OUuh9bsybfRu0d2Ez/0x7Xf2FWhzuGeY4Ym5DTw
// sM8uWyDH7h27dXoEkklZYFJJJJKUkkkkp//Q9VSSSSUpJJJJSkkkklKVPqt5pxHR9J/tbHmriw/r
// Dk/QpaYI9x+P5qh5nKMWHJP92Jrz6MuCHHkiPG3l+oZTq2uL7HUkHYwCptnOm24n6KX1eut/aoBe
// XxtklpbyN3tb9Db/AFULMIcNG2XO3S9oY6IHtJ9R7n1+p7vzq0X6sML+pudtexu/2tsMuho2rE+H
// C8sD1uyaH/o7rZ6GDJ5PobfohOmHATroXEUkkkkpSSSSSn//0fVCsLq/XjiZLcZhDXuMCSAfj7y1
// bq5D64dLvLvtmO3c5oOkSdR+bq3a5Qc17vtH2jwy7s/KjGcoGTY925T1zKkS9rpbvhwj2n6Lv7Sv
// 4/XGED127Afzxq371weL1S5zrWhj3MrAFr3CXNaxrf0TI2saz1HfSWvh5rb9rK3erLQHMA9rCfe2
// v+Vbt+msSPxHnMB/WEZIj5rHqr+9H/um/k5PGRtXjF7aq6q1u6twcD4Ii5inJvx9a7SNfonVv9VX
// cfrpiL2THLma/gtPl/inK5q9fBL92fpaM+VmPl9Q/F1ci0U0vsPDRK5fLyK773vtkh57dgPo8q91
// XrNVtPpUgw76RIgx5LA9V9hcGAuOob8fzdPcqfxfmY5IjDjleolMxOn9UW2uU5cxBlIEE/k0utua
// 3I9+zbUyGNb7HTz7y0v9Rn9lXvqcA/KDh3kmPM/Bv0formus32G5zGEEuJ95c50iezrfc3/MXR/U
// UPrewXRLgdseEo/DsfDLFZ1/sZ+ZFcvPfSnv0kkltOMpJJJJSkkkklP/0vVUO6llzCx4kFESSU8X
// 136py512NInnZoY52rmrKMzBtLLA5nIN7Xlpj2hrH7o2+xm32r1d7GvEOEgrE6z9XcfMrc5jQHdx
// 2Kp8xycZgmIqXb9FvctzpiRHJrHa+oeTxeqtftpvHpMaJNz/AHHafosayvd/J/tq4CHNL2n2nVjj
// I9vDbPd9Dcuc6xjZvTb4IOpAaXRtEHdt2EbHf2kbp3WXwK8j3DvHgJj2AfvO/wAG1lCxc3JmIJAo
// jeLpcIIEomwfsdi/JsgEHQATI1IHzSos3te4MdZtG4tYDr3hw9yrXX45x22eo173uLRWPpCAJds/
// d/roTMvJraTjv9PcC1xAB077tzVAMZI2rXrouoGB4Rr9jWLK78mCC93mZgRH8natrArOPXW5jxWG
// mWieD+c7+0szExwLw+ZeQNw8PLn/AKpaFtwrYxrwQXOIZIEODf3fpJ+TJMSj7ZIMdkTAPpNa7vQ0
// 9Zy3e1r2PA/Ogop6vmt59P46hczj9VxWOIdc2pokS4gcCZhhf/I/tqX7axrAG1WG2xztuxrSZb++
// 0/2fannn/iIOktO/A1DyuO/lFPQP6vknT1mM54CA7rFokuySI8uQBJhczd9YGOgVVOLmtLnkkREt
// 52B3s2uQLer5GYHMqqZU120AjVzSwS57f5FzvZtTvf8AiEj6spiPDgDJHlYV8o/B7PD68/ewWPD2
// P4n2nXwat6qwW1h7eHCVwXQun5uVktssc5wB1n6I13RW36LV3WLWaqGsPYLb5L3/AGv154pXodjw
// +Lnc3HHHJWP60//T9VSSSSUpJJJJTgfWjp1F+N6jmAmYOnK4h/TGh72tgGSABIAE/wDSXc/WHNZs
// 9Bp+iZcQJ17NH8pcwGF1zng7Q7gGJ/L/ANBYfxPMBnqB1EfV/edjkOKOL1bbhzh030w4xu2e48wJ
// /O/8yQ22lr3V7y1oBHpiCD9E7t+r/wAz6CXU+qOYLK8Z+3e3ZZug6D3Q3/yay8LPd9oHqDdBH0oM
// /wBoqHHjySgZy7aNq7oV5Olffk4k+i80u2ncQNYP0v3lj35ORkWbrHl7hI3ET/J/zdrVu5TmZlTL
// 9jKKwzZIfJd+dudvj81Zd2CxoNlT5AE7VJglAfMAJ7fyLLHhIsj1bIcejIyDsbuId9LUCCPzv+i1
// amF0q/6ALnE6ECXeP9lav1Y+rzspoc46GC93czrtXZYPQMPGaPYC7uSruPlJZBczwwOwju0OY5+O
// MmGMXIdS8ng/VXIs19PZuOrnan/N+it3B+qdVcG47o1jgfcuhZVWwQ1oCmrePl8UPliL7nUudk5r
// Nk3ka7DRDj4tOO0NraAjJJKZgf/U9VSSSSUpUep9QGLUQ0j1HDTyH7ysZeSzGpdY7twPErk+sZ7r
// XEl3ueYFY5AiW/yf6yp89zYwYzR/WS0hH/uv7sWzyuD3JgkegbtbMyCbHOfOwH3WHVuv5ztqw+qd
// QaJqoeLNdXsJESNGsn876W+x6XUuqEOfjU2tdXYBudGojmuHbttjbP8ArarYvTH5Lm2aw4mAPzvu
// WLgwyMuOdylI2B1lI9ZOvQiLPpjFzhXbaToXAz7RMD86ByojHcy4BzS0ke3dp/mrvelfU/cxrrQG
// DwHP+cm659UmV0i6rU16ydSP/MVqHl8ogZabfL1YYc9hOQQ6X8zzuDS9+K4NDhZHt2l4G7R30Wex
// u2trv9J/pE7Mewyx7RLjqXGfJ/u/R/nfvI7AcctayQ0aEbiw6iHe+fzm+z/CIx2mH7RUzgAkuJJ+
// lte8O3/yvYsqWQ2a67NiRPFpsdXqvqltGK5o0IK6Fct9V8lovfU2QHAGDprx2XUroeVnx4Mcu8Q4
// fMxMc0we9/apJJJTMKkkkklP/9X1VJJJJTg/WDL9N4b2rbuDfFx9rWrj+pZz3l9TGA2Wa+0maxxZ
// Xc2N2y5i7Dr+BkXO9SkTMdgdRx9JYVH1bzL8h1j27C7RzjyR8Fj81yebLzcp8NxoCBJ9IdTlc+DH
// hHEfV2cvpnR/tFrRVSGv0BP0tp4+m73dv5tdn0foFWM0W3DdaYklWel9GowWCBL+5PK0gABAWjg5
// aGId59ZHUtTmeanlJANQ6RUAAIGgUbqm21mtwkOEKaSnaz599YemvwLXFodssPLfDt3/AHlm13Wv
// q2uyQKqBpU5xBl30m1j8937y77r/AE1mZiOO2XtEhcDl4hqyTU6sNbWR+l+iAJO83aP3/urG5/lh
// CfEBUJG77Sdrks/u4xE6zi63Qsl1WWx5na5x2vmQ4E7XO3fn+9q7ml4fU1w7heZ4mQWXs2WizHrP
// pVFkBu4fpHbW/S/tr0Hot/r4NbjyBCs/DJ/qjA/ok1/dk1PiOOpif72jfSSSWg0FJJJJKf/W9VSS
// SSUsQDykABwE6SSlJJJJKUkkkkpYgEEHgrl/rR0IZDTdW2e5A8V1KhZUy1pa8SCmZMcckTGWxZMW
// WWOYnHcPllOPkDN3GrYWwJa0BsTxXt9jPo+5egfVxj24DdwgnX70x+ruGbfUAgTO3stLHoZRWK2C
// AFDy3LeyZG7vQf3Wfmub94RFVSVJJJWWopJJJJT/AP/ZADhCSU0EBgAAAAAABwABAQEAAQEA//4A
// J0ZpbGUgd3JpdHRlbiBieSBBZG9iZSBQaG90b3Nob3CoIDQuMAD/7gAhQWRvYmUAZIAAAAABAwAQ
// AwIDBgAAAAAAAAAAAAAAAP/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwR
// DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwR
// EQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8IAEQgAeAB4AwEiAAIRAQMRAf/E
// AMkAAQACAgMBAAAAAAAAAAAAAAAFBgQHAQMIAgEBAAMBAQEAAAAAAAAAAAAAAAMEBQIBBhAAAgIB
// BAICAgIDAAAAAAAAAgMBBAUAIBEGEBITFDAhMSJBIxURAAIBAwEEBwMJBQkAAAAAAAECEQASAyEx
// IjITIEFRQlJiBGFyIxAwcYGRoZJDY8GCotIz8LGywuJTc4MUEgABAwEGAwQIBwEAAAAAAAABABEC
// IRAgMVEiA0FxEmEyQmKBkaFScpLS4sHRgrITIzME/9oADAMBAQIRAxEAAADaoAABG89SPNDu0Mvc
// LEAAA4OXHIBxTbXRsu/BbL1ltLvvOGjmgAcUW91SvZw5bXsziaWwMmk996jI1tHZ1/B2zqDa+xUk
// Xxxez+xjffnvcPeXHIgKJtrCr2tWy8Ri42xLdPSikz5CDj/OLz8U9zxacSJuFyCzu1u430AYPPVe
// rudAfO73XkV7MsSfPxLSUjJs8796eDj9/KWEADppktR8XW68KQv8slOitxVSxXqcjGdmRobU+sHO
// +k+eB4ABTojYytaj5Is1XX2DWkZsjWePuX6yU25aeUEsAB5VHqp5VHqp5VHqp5VHqmN80POvTub5
// VPPVTyq989VPKo//2gAIAQIAAQUA8sMVhVtBYHdl3QKsYPA+bajYuH3K0ozKiG02LVmiQRrnXMeX
// 1gbFirEEK/WfrOOYqvjVTGlB+DIQFrCtPJECtBSZLQsNmReTW1KnMWqv+pRSDY/ez6Sfk8XK0ide
// ZlO4vXiOOPH/2gAIAQMAAQUA8gEmT65Jndjw/tkpj1802ADG1lnB0C0mv8a8iJa4nUgUR4rXDVIT
// BRP7k4idQnT3oWP+dCMkSBlSogplzvRbbTmT5oV+BtWxVqpeOWGv2GY4nzF5ormZmdUrEMXbiIfu
// D25nnnx//9oACAEBAAEFAPwew8/lzGRmquM1cVaqPixX/J2C2bLVpwm/r0zON3SQxqCGdl+xFepa
// hhHJE+zhQ9Mftn+M1m3ryNbJTqpn2jFXJVLUa7HdESvXAmnUeDb+PH1qbu29c+4K2uptoZdJS2zE
// aTnbYauWHWGZb1+thKRBaxOQrvqQ1c6J6R0WSojKrVdvmYgozXV614L+It4tlHLwBG4SA/6MyloT
// jFLGFpsLnUur8E8PR+TUoK2fg20mE2t5yOMr3k9j62yhcrvuVYZZc94mEQ7M0q6f++2dB2DJNM/t
// WWU8JZeeD6n8JgEAOzt0gxykhI5HIUxmnCLCbddxaqVSe/E9SsOCn1KmnSKNZEbcnkBqKuuhx5bK
// cDY+R441hg2wTId1iks8ksBAN1qyusnJXnut3cpMxXxdmyaejvagMW6nYH4nBiiivbWUEG7sF2Pm
// yVkDLGYQ3vwvXU0xgRiO2YaShdo1tSUrZh7EWKG7stOx8+O6zcsHisNXoK8OUDl9hxcY+4E2Vq6d
// chtbcSwPQgA7ewYqL1W/UOq3o4lE/k/nV/A07hY7GIoBs//aAAgBAgIGPwC0zkWjEOSjKIIYsxvx
// 2+O4ajyxUuGFxoSMSK6Sy0zluRGMZ6/uX9sTtns1xQnXpDCHKP1KcImoazG3KWf5qhAmMYoSNSMu
// 78yMx1QyL9Cae9L55yQm8gxfr7ptMpFoxDklSlAMCafCEGNRVR2zTqyWmIfPxeu4f+aNIQ/0LPqy
// /SnGmHveOf2onb7w9qhL3SD6PFdluEEmRcg923qA0TrnX3fKoE49Iv6mbtVLf//aAAgBAwIGPwC0
// RGJQ6qvflM4CgW2OdzWKGj5J2enDFPA08yjE48fiW3JqMVgnII9FrHVDL6UJwqCHUXoQMEXdP7UQ
// 4nI8B+NojEOShB6o+sFSmA/SHWqR5CgufyEPKWCYatz9vNdO4aTpyU45gog8Lg24sGo/FObBGR1x
// pzC3AMHv6Hfyovj22//aAAgBAQEGPwD5iJE/PDGhjI+w9g62oPduTPWWMnTmT8NbvI+SkyjvCfnc
// jI9gU2AhgG08K/56S3nqA4XEMuRcgjW98X6d3hrFPYOnqYrQg9DJlPUNPppmGPmlZLglgI2tdyRd
// WMh8bKXLtaGZg0cHOyDmbs9+sQ8o6Rp8OQsMaST/AHJbvL3vLV+HMwUNy0dWlWYf1GVX7qV8SM+M
// EjmJt09n8tTiyCfCdvyJ6eZA3iO090VkUlr2FqnCGDa+bDwf9lLiXuC0bJgmfeu4e/WMeUdP/wBW
// ARlTUEATRPrXJzl7QGHw2VmL5N78v8FXernHmyERittUSLt2eHEiMlBoMwCrAQYiZSN+2hjTMTI0
// vE/Y01eWuZiC3b7K0JYnQE3bFEKiLr47t9P+OudkW1wCVY7J9vvW0kOAwEMp0INcQ+2t51H11BzL
// 9tfDyK30H5YOoNMyAK5BB7DNOGL2bSZmFHhuVrt2jj9QxJymTlyTzIU/lXMuPH+/ZZQyKYB6/qDW
// KG/x9+pgAdZjs0mkGDM2ZgoBQqVtPZ+pQL7zRNmzZ2W0FCqOxpYnX8NaSIAJMkftosMYcCNpJ2nc
// 28VcycVrYzlRJAJVTvKnDv8A6dKMQLZCf6iC1QSLtp38n+3SO/EQJ6BTIonqNO6kBDqZ+nu0oEk7
// bSNDrB2/E/jpvUeoCoGMwBuqBpwLP8PxHoPi4XWbmlTDCWmaAxl3zWExwKrEW7d+/Z4KW0ajaCWK
// yRBlBb37P56YXlAV5cqoAtA3f323LnqFL8kEFpc7FjrNqe5bW6pyGQV00FpuXebzeFaXN6gajULQ
// UbB0SE1ZFknqBmdaus1I6xB++sePFdzQPiHQANO7y7eKnfLnXG4UxeSCSusDxXUHVSVA2ChjgmOI
// n/TxUpCcpBEE6t9OtBso5jDrbWoxoBHShdcraKv7aZ3N4BkxvTPft8VN6dLTrDEGT+pjDqOLz1La
// 9Z9hrGCV013xuj32Ph81WubCwDRI0u3wODC7W8FC6CrtIgEDQeb3qCqIAHTbK5gKKAMczJsUkag3
// WKt1cv0gbDkAZMzg9v5ZXuuv9slC4asdAokkezh/HRdse3UAnWmTJIOIm07GOumzeoMTvqbQqqdZ
// 3p5jO2Ld4Fx46xZCAhVgCp0MHTZanepWHWOmULEY8IEkam5uGhhV2TI+nqJUl8ZU22RI3H4r1oW3
// ZspOpYkgeZot73coZMouynUk1AGlH1WAQTx6ffWS3Eucxaqm7dYm1SIbxdykXIvLeTxgghjs5hea
// xOPCJ6bsuO9Wa7YT1W+7u+apZWUE65H1eNkXUFVRd1n5WxuJDCKZwrQzAqykgrJjmLHEyrQyJ8R8
// 5tW83ZNt7uMQZrMlqb7U2ObgDIP069PeANboA6JKj4iiVNOro3NZiOdLXmfyr7iqL+pTaQoAEDQf
// f5fnr2W1+0aGrcQ+vo//2Q==
//
// --------------000600080404090108060206--
//
// --------------000908080200080609080305--
//
// --------------060103010600070703070806
// Content-Type: application/zip; name="thisIsATest.zip"
// Content-Transfer-Encoding: base64
// Content-Disposition: attachment; filename="thisIsATest.zip"
//
// UEsDBAoAAAAAAE6f+0hdycPGDwAAAA8AAAAPAAAAdGhpc0lzQVRlc3QudHh0VGhpcyBpcyBhIHRl
// c3QuUEsBAj8ACgAAAAAATp/7SF3Jw8YPAAAADwAAAA8AJAAAAAAAAAAgAAAAAAAAAHRoaXNJc0FU
// ZXN0LnR4dAoAIAAAAAAAAQAYAMmlFyZr6NEBqlsQH2vo0QGqWxAfa+jRAVBLBQYAAAAAAQABAGEA
// AAA8AAAAAAA=
//
// --------------060103010600070703070806--
//
// --------------090003010300010703020907
// Content-Transfer-Encoding: base64
// Content-Type: application/pkcs7-signature; name="smime.p7s"
// Content-Disposition: attachment; filename="smime.p7s"
//
// MIIG5wYJKoZIhvcNAQcCoIIG2DCCBtQCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg
// ggL4MIIC9DCCAl2gAwIBAgIJAMPsJCT11cniMA0GCSqGSIb3DQEBCwUAMIGSMQswCQYDVQQGEwJB
// VTERMA8GA1UECAwIVmljdG9yaWExEjAQBgNVBAcMCU1lbGJvdXJuZTEhMB8GA1UECgwYSW50ZXJu
// ZXQgV2lkZ2l0cyBQdHkgTHRkMQ8wDQYDVQQDDAZXaWRnZXQxKDAmBgkqhkiG9w0BCQEWGWFkbWlu
// QGludGVybmV0d2lkZ2V0cy5jb20wHhcNMTYxMTAxMTY1MjMyWhcNMjExMDMxMTY1MjMyWjCBkjEL
// MAkGA1UEBhMCQVUxETAPBgNVBAgMCFZpY3RvcmlhMRIwEAYDVQQHDAlNZWxib3VybmUxITAfBgNV
// BAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAwwGV2lkZ2V0MSgwJgYJKoZIhvcN
// AQkBFhlhZG1pbkBpbnRlcm5ldHdpZGdldHMuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
// gQDGIdoCjyavs+F/Rm0VIB4m6O7VL1j+1IqieoR9NEX2GQvu2VCdceyxf9qaw1bxipEvjLwUkw7M
// e+BTlLpWQbBMH87s6KpsC8MVyXhMLpP0oM8NFix/vLz2wdLhUh7CZvJA0plqkJk9bj57QIu+EO1k
// tUHM2DFb6sckvCL2yybD1wIDAQABo1AwTjAdBgNVHQ4EFgQUONKKu2zsXIrinWxIGT654vrcQwsw
// HwYDVR0jBBgwFoAUONKKu2zsXIrinWxIGT654vrcQwswDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B
// AQsFAAOBgQArFvdi5u9i2QF1Qw+cdC1l7w2Y3+q6RIkln2W8rWJFje00644o8hXy7v46giJCedmF
// ULlhm1n7XIsZGy2W3lJ77v5agn9gFwXu1h3cqkGXkoteE6SQJQXWgsW3GWPveObvTL8LF4y57fgM
// 9ZWS+V9MJajeu44Rf/tU17TLYKjvEjGCA7MwggOvAgEBMIGgMIGSMQswCQYDVQQGEwJBVTERMA8G
// A1UECAwIVmljdG9yaWExEjAQBgNVBAcMCU1lbGJvdXJuZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk
// Z2l0cyBQdHkgTHRkMQ8wDQYDVQQDDAZXaWRnZXQxKDAmBgkqhkiG9w0BCQEWGWFkbWluQGludGVy
// bmV0d2lkZ2V0cy5jb20CCQDD7CQk9dXJ4jANBglghkgBZQMEAgEFAKCCAjQwGAYJKoZIhvcNAQkD
// MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTcwNDIwMTQ0NzUxWjAvBgkqhkiG9w0BCQQx
// IgQgoQYcqPNu0JEqphG8371TRQO+HeVg27ePi/WlH0ORwn8wXwYJKoZIhvcNAQkPMVIwUDALBglg
// hkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsO
// AwIHMA0GCCqGSIb3DQMCAgEoMIGxBgkrBgEEAYI3EAQxgaMwgaAwgZIxCzAJBgNVBAYTAkFVMREw
// DwYDVQQIDAhWaWN0b3JpYTESMBAGA1UEBwwJTWVsYm91cm5lMSEwHwYDVQQKDBhJbnRlcm5ldCBX
// aWRnaXRzIFB0eSBMdGQxDzANBgNVBAMMBldpZGdldDEoMCYGCSqGSIb3DQEJARYZYWRtaW5AaW50
// ZXJuZXR3aWRnZXRzLmNvbQIJAMPsJCT11cniMIGzBgsqhkiG9w0BCRACCzGBo6CBoDCBkjELMAkG
// A1UEBhMCQVUxETAPBgNVBAgMCFZpY3RvcmlhMRIwEAYDVQQHDAlNZWxib3VybmUxITAfBgNVBAoM
// GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAwwGV2lkZ2V0MSgwJgYJKoZIhvcNAQkB
// FhlhZG1pbkBpbnRlcm5ldHdpZGdldHMuY29tAgkAw+wkJPXVyeIwPQYJKoZIhvcNAQEKMDCgDTAL
// BglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASAEgYAHeE+bV998i6hY
// qX2srAVX1DAWeI6JbhxYCueC04vzl8ggke5pi4DcfNP3SVzNSzRKSFiFYNGcNpMQNASHVOl+JHCt
// bIXdgLSIz6uoxSUo51w4x2a4RYgnU3eafY27f1J4AEVPzpQk+1Q3hoVi7oBo0T2pKgA4WcavirEN
// 4kZLBg==
//
// --------------090003010300010703020907--
//
|