Skip to content

Instantly share code, notes, and snippets.

@eed3si9n
Created November 7, 2012 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eed3si9n/4032388 to your computer and use it in GitHub Desktop.
Save eed3si9n/4032388 to your computer and use it in GitHub Desktop.
package encoding
import org.specs2.Specification
import org.specs2.mock.Mockito
import org.apache.commons.codec.binary.Base64
import scalaxb.Base64Binary
import scalax.io.Resource
import scalax.file.Path
import org.specs2.specification.Step
class Base64Spec extends Specification {
def is =
args(sequential = true) ^
"This spec verifies '64 bit encoding' " ^
p ^
"'Scala-IO' should " ^
"Encode - Decode with Apache" ! encodeDecodeWApache ^
"Encode - Decode with Apache, storing into Base64Binary" ! encodeDecodeWApacheIntoScalaxbBase64BinaryContainer ^
"Encode Apache decode with Scalaxb" ! encodeDecodeWApacheIntoScalaxbBase64BinaryContainer ^
"Encode / Decode with Scalaxb" ! encodeDecodeScalaxb ^
"Can Decode / Encode image saved to disk with Apache" ! encodeDecodeWithApacheAndSaveImage ^
"Can Decode / Encode image saved to disk with ScalaXB .8 fails" ! encodeDecodeWithScalaXbAndSaveImage ^
"CRLF - Can Decode / Encode image saved to disk with ScalaXB .8 fails" ! encodeDecodeWithScalaXbAndSaveImageCRLF ^
"CRLF - Can Decode / Encode image saved to disk with Apache" ! encodeDecodeWithApacheAndSaveImageCRLF ^
"Can Decode / Encode opening image from disk with Apache" ! encodeDecodeWithApacheAndOpenExistingImage ^
"Can Decode / Encode opening image from disk with ScalaXB" ! encodeDecodeWithScalaXbAndOpenExistingImage ^
Step()
end
def encodeDecodeWApache = {
val orig = "original String before base64 encoding in Java"
//encoding byte array into base 64
val encoded = Base64.encodeBase64(orig.getBytes())
//decoding byte array into base64
val decoded = Base64.decodeBase64(encoded)
orig.toList == decoded.toList
}
def encodeDecodeWApacheIntoScalaxbBase64BinaryContainer = {
val orig = "original String before base64 encoding in Java"
//encoding byte array into base 64
val encoded = Base64.encodeBase64(orig.getBytes())
val scalaxbBase64 = new Base64Binary(Vector(encoded: _*))
orig == new String(Base64.decodeBase64(scalaxbBase64.toArray))
}
def encodeApacheDecodeScalaxb = {
val orig = "original String before base64 encoding in Java"
//encoding byte array into base 64
val encoded = Base64.encodeBase64String(orig.getBytes)
val decoded = Base64Binary.apply(encoded)
val decodedString: String = new java.lang.String(decoded.toIndexedSeq.toArray)
orig == decodedString
}
def encodeDecodeScalaxb = {
val orig = "original String before base64 encoding in Java"
val setup = new Base64Binary(Vector(orig.getBytes: _*))
//encoding byte array into base 64
val encoded = setup.toString
val decoded = Base64Binary.apply(encoded)
val decodedString: String = new java.lang.String(decoded.toIndexedSeq.toArray)
orig == decodedString
}
val encodedPic = "/9j/4AAQSkZJRgABAQEASABIAAD/4ge4SUNDX1BST0ZJTEUAAQEAAAeoYXBwbAIgAABtbnRyUkdCIFhZWiAH2QACABkACwAaAAthY3NwQVBQTAAAAABhcHBsAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAG9kc2NtAAABeAAABWxjcHJ0AAAG5AAAADh3dHB0AAAHHAAAABRyWFlaAAAHMAAAABRnWFlaAAAHRAAAABRiWFlaAAAHWAAAABRyVFJDAAAHbAAAAA5jaGFkAAAHfAAAACxiVFJDAAAHbAAAAA5nVFJDAAAHbAAAAA5kZXNjAAAAAAAAABRHZW5lcmljIFJHQiBQcm9maWxlAAAAAAAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAeAAAADHNrU0sAAAAoAAABeGhySFIAAAAoAAABoGNhRVMAAAAkAAAByHB0QlIAAAAmAAAB7HVrVUEAAAAqAAACEmZyRlUAAAAoAAACPHpoVFcAAAAWAAACZGl0SVQAAAAoAAACem5iTk8AAAAmAAAComtvS1IAAAAWAAACyGNzQ1oAAAAiAAAC3mhlSUwAAAAeAAADAGRlREUAAAAsAAADHmh1SFUAAAAoAAADSnN2U0UAAAAmAAAConpoQ04AAAAWAAADcmphSlAAAAAaAAADiHJvUk8AAAAkAAADomVsR1IAAAAiAAADxnB0UE8AAAAmAAAD6G5sTkwAAAAoAAAEDmVzRVMAAAAmAAAD6HRoVEgAAAAkAAAENnRyVFIAAAAiAAAEWmZpRkkAAAAoAAAEfHBsUEwAAAAsAAAEpHJ1UlUAAAAiAAAE0GFyRUcAAAAmAAAE8mVuVVMAAAAmAAAFGGRhREsAAAAuAAAFPgBWAWEAZQBvAGIAZQBjAG4A/QAgAFIARwBCACAAcAByAG8AZgBpAGwARwBlAG4AZQByAGkBDQBrAGkAIABSAEcAQgAgAHAAcgBvAGYAaQBsAFAAZQByAGYAaQBsACAAUgBHAEIAIABnAGUAbgDoAHIAaQBjAFAAZQByAGYAaQBsACAAUgBHAEIAIABHAGUAbgDpAHIAaQBjAG8EFwQwBDMEMAQ7BEwEPQQ4BDkAIAQ/BEAEPgREBDAEOQQ7ACAAUgBHAEIAUAByAG8AZgBpAGwAIABnAOkAbgDpAHIAaQBxAHUAZQAgAFIAVgBCkBp1KAAgAFIARwBCACCCcl9pY8+P8ABQAHIAbwBmAGkAbABvACAAUgBHAEIAIABnAGUAbgBlAHIAaQBjAG8ARwBlAG4AZQByAGkAcwBrACAAUgBHAEIALQBwAHIAbwBmAGkAbMd8vBgAIABSAEcAQgAg1QS4XNMMx3wATwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsBeQF6AXVBeQF2QXcACAAUgBHAEIAIAXbBdwF3AXZAEEAbABsAGcAZQBtAGUAaQBuAGUAcwAgAFIARwBCAC0AUAByAG8AZgBpAGwAwQBsAHQAYQBsAOEAbgBvAHMAIABSAEcAQgAgAHAAcgBvAGYAaQBsZm6QGgAgAFIARwBCACBjz4/wZYdO9k4AgiwAIABSAEcAQgAgMNcw7TDVMKEwpDDrAFAAcgBvAGYAaQBsACAAUgBHAEIAIABnAGUAbgBlAHIAaQBjA5MDtQO9A7kDugPMACADwAPBA78DxgOvA7sAIABSAEcAQgBQAGUAcgBmAGkAbAAgAFIARwBCACAAZwBlAG4A6QByAGkAYwBvAEEAbABnAGUAbQBlAGUAbgAgAFIARwBCAC0AcAByAG8AZgBpAGUAbA5CDhsOIw5EDh8OJQ5MACAAUgBHAEIAIA4XDjEOSA4nDkQOGwBHAGUAbgBlAGwAIABSAEcAQgAgAFAAcgBvAGYAaQBsAGkAWQBsAGUAaQBuAGUAbgAgAFIARwBCAC0AcAByAG8AZgBpAGkAbABpAFUAbgBpAHcAZQByAHMAYQBsAG4AeQAgAHAAcgBvAGYAaQBsACAAUgBHAEIEHgQxBEkEOAQ5ACAEPwRABD4ERAQ4BDsETAAgAFIARwBCBkUGRAZBACAGKgY5BjEGSgZBACAAUgBHAEIAIAYnBkQGOQYnBkUARwBlAG4AZQByAGkAYwAgAFIARwBCACAAUAByAG8AZgBpAGwAZQBHAGUAbgBlAHIAZQBsACAAUgBHAEIALQBiAGUAcwBrAHIAaQB2AGUAbABz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".stripMargin
val encodedPicWithCRLF =
"""/9j/4AAQSkZJRgABAQEASABIAAD/4ge4SUNDX1BST0ZJTEUAAQEAAAeoYXBwbAIgAABtbnRyUkd
| CIFhZWiAH2QACABkACwAaAAthY3NwQVBQTAAAAABhcHBsAAAAAAAAAAAAAAAAAAAAAAAA9tYAA
| QAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
| AAAtkZXNjAAABCAAAAG9kc2NtAAABeAAABWxjcHJ0AAAG5AAAADh3dHB0AAAHHAAAABRyWFlaA
| AAHMAAAABRnWFlaAAAHRAAAABRiWFlaAAAHWAAAABRyVFJDAAAHbAAAAA5jaGFkAAAHfAAAACx
| iVFJDAAAHbAAAAA5nVFJDAAAHbAAAAA5kZXNjAAAAAAAAABRHZW5lcmljIFJHQiBQcm9maWxlA
| AAAAAAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
| AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAeAAAADHNrU0sAAAAoAAABeGhyS
| FIAAAAoAAABoGNhRVMAAAAkAAAByHB0QlIAAAAmAAAB7HVrVUEAAAAqAAACEmZyRlUAAAAoAAA
| CPHpoVFcAAAAWAAACZGl0SVQAAAAoAAACem5iTk8AAAAmAAAComtvS1IAAAAWAAACyGNzQ1oAA
| AAiAAAC3mhlSUwAAAAeAAADAGRlREUAAAAsAAADHmh1SFUAAAAoAAADSnN2U0UAAAAmAAAConp
| oQ04AAAAWAAADcmphSlAAAAAaAAADiHJvUk8AAAAkAAADomVsR1IAAAAiAAADxnB0UE8AAAAmA
| AAD6G5sTkwAAAAoAAAEDmVzRVMAAAAmAAAD6HRoVEgAAAAkAAAENnRyVFIAAAAiAAAEWmZpRkk
| AAAAoAAAEfHBsUEwAAAAsAAAEpHJ1UlUAAAAiAAAE0GFyRUcAAAAmAAAE8mVuVVMAAAAmAAAFG
| GRhREsAAAAuAAAFPgBWAWEAZQBvAGIAZQBjAG4A/QAgAFIARwBCACAAcAByAG8AZgBpAGwARwB
| lAG4AZQByAGkBDQBrAGkAIABSAEcAQgAgAHAAcgBvAGYAaQBsAFAAZQByAGYAaQBsACAAUgBHA
| EIAIABnAGUAbgDoAHIAaQBjAFAAZQByAGYAaQBsACAAUgBHAEIAIABHAGUAbgDpAHIAaQBjAG8
| EFwQwBDMEMAQ7BEwEPQQ4BDkAIAQ/BEAEPgREBDAEOQQ7ACAAUgBHAEIAUAByAG8AZgBpAGwAI
| ABnAOkAbgDpAHIAaQBxAHUAZQAgAFIAVgBCkBp1KAAgAFIARwBCACCCcl9pY8+P8ABQAHIAbwB
| mAGkAbABvACAAUgBHAEIAIABnAGUAbgBlAHIAaQBjAG8ARwBlAG4AZQByAGkAcwBrACAAUgBHA
| EIALQBwAHIAbwBmAGkAbMd8vBgAIABSAEcAQgAg1QS4XNMMx3wATwBiAGUAYwBuAP0AIABSAEc
| AQgAgAHAAcgBvAGYAaQBsBeQF6AXVBeQF2QXcACAAUgBHAEIAIAXbBdwF3AXZAEEAbABsAGcAZ
| QBtAGUAaQBuAGUAcwAgAFIARwBCAC0AUAByAG8AZgBpAGwAwQBsAHQAYQBsAOEAbgBvAHMAIAB
| SAEcAQgAgAHAAcgBvAGYAaQBsZm6QGgAgAFIARwBCACBjz4/wZYdO9k4AgiwAIABSAEcAQgAgM
| Ncw7TDVMKEwpDDrAFAAcgBvAGYAaQBsACAAUgBHAEIAIABnAGUAbgBlAHIAaQBjA5MDtQO9A7k
| DugPMACADwAPBA78DxgOvA7sAIABSAEcAQgBQAGUAcgBmAGkAbAAgAFIARwBCACAAZwBlAG4A6
| QByAGkAYwBvAEEAbABnAGUAbQBlAGUAbgAgAFIARwBCAC0AcAByAG8AZgBpAGUAbA5CDhsOIw5
| EDh8OJQ5MACAAUgBHAEIAIA4XDjEOSA4nDkQOGwBHAGUAbgBlAGwAIABSAEcAQgAgAFAAcgBvA
| GYAaQBsAGkAWQBsAGUAaQBuAGUAbgAgAFIARwBCAC0AcAByAG8AZgBpAGkAbABpAFUAbgBpAHc
| AZQByAHMAYQBsAG4AeQAgAHAAcgBvAGYAaQBsACAAUgBHAEIEHgQxBEkEOAQ5ACAEPwRABD4ER
| AQ4BDsETAAgAFIARwBCBkUGRAZBACAGKgY5BjEGSgZBACAAUgBHAEIAIAYnBkQGOQYnBkUARwB
| lAG4AZQByAGkAYwAgAFIARwBCACAAUAByAG8AZgBpAGwAZQBHAGUAbgBlAHIAZQBsACAAUgBHA
| EIALQBiAGUAcwBrAHIAaQB2AGUAbABzAGV0ZXh0AAAAAENvcHlyaWdodCAyMDA3IEFwcGxlIEl
| uYy4sIGFsbCByaWdodHMgcmVzZXJ2ZWQuAFhZWiAAAAAAAADzUgABAAAAARbPWFlaIAAAAAAAA
| HRNAAA97gAAA9BYWVogAAAAAAAAWnUAAKxzAAAXNFhZWiAAAAAAAAAoGgAAFZ8AALg2Y3VydgA
| AAAAAAAABAc0AAHNmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBs/
| +EAgEV4aWYAAE1NACoAAAAIAAUBEgADAAAAAQABAAABGgAFAAAAAQAAAEoBGwAFAAAAAQAAAFI
| BKAADAAAAAQACAACHaQAEAAAAAQAAAFoAAAAAAAAASAAAAAEAAABIAAAAAQACoAIABAAAAAEAA
| AGSoAMABAAAAAEAAAGwAAAAAP/bAEMAAgICAgIBAgICAgICAgMDBgQDAwMDBwUFBAYIBwgICAc
| ICAkKDQsJCQwKCAgLDwsMDQ4ODg4JCxARDw4RDQ4ODv/bAEMBAgICAwMDBgQEBg4JCAkODg4OD
| g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODv/AABEIAbABkgM
| BIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDB
| QUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJyg
| pKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXm
| JmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf
| 4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABA
| ncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY
| 3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio
| 6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gA
| MAwEAAhEDEQA/APy2zyKM8ilHT1o71+mHw4ZpODzS5ozQAmfegHIpaKAE7jmlzSemKXNIAzSZ5
| FGelLTATPIpc0d6KADNGaM0UAJmgHgUtJxSAXNGaM0mfegAzyKM8ilHT1o70wDNJweaXNGaAEz
| 70A5FLRQAncc0uaT0xS5pAJxRnkUZ5HNLTAYeW4NOHA612fgPwFrfxE8YzaPoZtIpIbczTTXLF
| URQcDoCckkDiub1bS7zQ/FOoaPfosd7ZTtDOFbIDKcHB7iuGlmWGniZYdSvNatdbDcXa5Q70ua
| KQfXNdogzQDwKWk4oAXNGaM0mfegAzyKM8ilHT1o70wDNJweaXNGaAEz70A5FLRQAncc0uaT0x
| S5pAGaTPIoz0paYCfrR1INAOaXrSAM0nBozxmgH3zTuAm6inUUtQCk6EClxSY5FMBaKTFLQAg5
| GaWkxR6cUgFByKKTHSjHNMBfxpPY0Y5FLigA6cUUnvSFhRcB3ek4zScnkZpC3Bx1p6AO689aB6
| 0tJikAtFGKMUAFJ0IFLikxyKAFopMUtACDkZpaTFHpxSAUHIopMdKMc0wCkJ/Kl6YpD93NG6Ef
| X/wCydp5Oq+MdVYEIsUMCt9SzHH5CvlvxRfHVPib4i1Itu+06jNICO4MjY/TFfYn7O+NF/ZO8Y
| +IXyubi4lDf9c4Fxj8c18PBi/zcktzk96/KeEm8RxJmFd9LRXyOqrpBIkozRSYr9WOYXrzQDkU
| dOKTFIBaKMUYpgFJ0IFLikxyKAFopMUtACDkZpaTFHpxSAUHIopMdKMc0wF/GikxyKXFIAzSdx
| RxS0AFH40UmKYBketFGBRS1AWikxyKMcigBcUmORR1HXNHpzTAXFHek/GjGKADijApOmMmlzz1
| pAAFLTc88mhugpxAPSu5+HPwz8dfFj4lW/hP4feH7zxDrcq7ykOFjgTu8kh+WNB/eYgVm+CvBu
| u/EP4v+G/A/hm3W613W75LSzQnjcx5ZsdFUZYnsAa/ps+A3wK8F/s+fA218I+FrRJdQkUSaxq8
| sY+0ahPjDOzYyEHIVBwo98k+XmOYRw0bPc7MHg5VndHwH8NP+CWuhQ6RbXfxh8eardaiy5k0zw
| xshhjPXaZ5UZn/BF+tfL/7dvwL+EvwF8Z/Dnw98M9P1K0vdRsrm81J7zUJLh3VXRIvvHCjIfoK
| /fTV9Z03QvDeoa1rV/BpulWMD3F5dTuFSKNBlmYnoABX8y37UHxqPx6/bF8Q+OLQTReHolWw0K
| GRSrJaREhWYdmdizkerY7V5+WV6+Irc8nojrxtClRglHc+f6TA60DoKAOK+jPIFxSYpfxpM9Oa
| AFpO4z1oxyKO4oAMU3cMcU7PPWmkhQSaG0ld6JAHRsdaUt19PWvWfAPwV8cfEExXVlZDStDZud
| SvflQjPOxer/hx719ieEf2aPh/4e8q41iO68Vaioyz3jBYQf9mNeMf7xavzfiTxSyXJ7xlPnn2
| R0U8NOR+dtjYahql2INMsL3UZuyW0DSH9K9A0/wCDfxQ1RFe18GasqkcG4Cwf+hkV+pGn6Vpek
| 2AtdK0+x063AwsVtAsaj8FAq8U5GO1fkGYeP2Lk7YfDpLzOyOXrds/Mgfs7/FxkBPhq3U+jajC
| CP/Hqo3fwH+LVnEzP4QmmRR1guopP0DZNfqHjrnFMK4AzgketeSvHbO76042L/s+J8pWel6j4J
| /4JsarZahZ3Nlqr2M3nW7J86tLLtwR9GFfBqMm0DPI68c1+zjqp4Zc8d/SvO/Evwr8A+KxI2r+
| G9NadwSbqCMRS59dyYJ/GtuCfFujllatLF0v4srtoVfBtxumflSDkjAxQeg719f8AjP8AZYuYI
| 57rwNrBu1B3Lp+pMA5HosgAB9sgfWvljW9A1vwzrj6b4g0y60q9XP7qZCNw9QejD3BxX9GZBxr
| lGcQTw9VX7PdHnToyjuZI6UvXmkH50AcV9a0Y3FxSYpfxpM9OakYtFJjkUY5FAC4pMcijqOuaPTmmAuKO9J+NGMUAHFLSdMDNL+NABijFJ3HNL+NABSdx6Uv40nTFIBccYpMY6ClpOo602AY
| FFNwaKn5AP/Gk7ijnIo7imAv40ncUtISQKADGetCI8l0kUMbyzyMFREGWZjwAB3PtTdx8st7V+1n/AATy/ZL0/T/COnfH74i6VDd6xfL5vhHTruIkWcQYgXbqR/rHIynXCYYcsMcuNxccPT5
| mbUKEqsrI+e/gL/wTc+IfxG8PWPin4o6q/wANfDdwqywacsHmapPGedxQ4WHI6bst6rX6B6F/wTl/Za0XSUgv/DPiTxROQN91qeuzBmPcgQmNRn6V90tKSmM8ZzjNQPISea+QxGZ1qjumfSU
| 8uoxSPg7xN/wTg/Zh1rTZI9K0XxT4QuimI59N1qSTafXbNvB+nFfnH8eP+CfHxW+Fmn3XiDwPcj4n+EYQWlWytymo2q+rwc7x7xk+4Ff0CSSfMRxVZpWHzA7T60YbNcRS3dyauW0pLTQ/nm/
| YD8Q/DrwX+3Df+K/iX4n0TwkmmaDPHpkmry+ShuZWWNgCeAwjMg59TX6wePP24P2cfBGgyXCeO7XxpfbMxab4bU3k0h5wNwxGo46swxxxXpvjH4BfBLx54uOveLvhh4Q1vWWO57yWxVZZD6u
| VxvOe7Zrd8PfDb4c+DYwvhLwJ4R8Ospyr2OlQxOD67wu7PHrWuJxdGtUU5K5nQwtanFxi7H4I/tLfthfEX4/yvonkS+DfhvFKrw6LC/z3JB+V7mTjefRRhR6E818gKQSACMdsHNf1marYaZr
| OmtY6xpmm6rYnrb3lqk0Z+qsCK+OPi3+w78DfiRpl3daPoSfDzxO4LR6loY2Ql8cCS3zsK9PuhT716WEzihFctrHJXy2rLW9z+f6j8a9j+NfwL8d/Aj4nHw94xs0ls5yW0vWLQMbS/jGPmRi
| AQwz8yHke45rxuvoYTjON0zyJRcXZi/jR+NFFUSH40najnIoIZmVEVndiAqqMkk9gO9S5qK5nsgtcdDbzXWoQ2trBLcXUzhIoolLO7HoAB1Jr7t+EX7NdnpUdv4h+IECahqvD2+kkgw2/oZP
| 77j06D3ro/gD8EYvB+hW3i7xNbeZ4quot0MEi/wDHgjAEDH/PQ9z1HT1r6gGST096/lTxO8Wa9WrPA5c7RWjkuvkenhsJpzMqJEiRiOKNURQAFUYAHbFOK469qmKYbdzmmFWPJPNfz1Ocpvm
| k7s9NWWxBgimnjjnn0qTtivG/jx4k1Xwr+zXreo6PJLBfSvHbJPH96ESNhnB7HGQD6kV6GUZfLH4ynh4uzm0iak+SNz0r+29EfW/7N/tfTDqP/PqbpBL/AN85zWiSNuQePY1+MXmzrf8A2wT
| TC8D+YJw53hs53Z65zX6kfBDxFqnin9m7w9qesyPPfhHgkncfNN5bbQ5PckYye5zX6bx94YS4dwkMSqvMn0OXD4rndj1Fhuwf0pnOMc1YI+YGmlcLkZ4r8nudbdyuRgiud8S+E/D3i7w9Lpf
| iHTLfUrVwdu9fmjOMblbqp9xXTEf/AFqTA56jNdOFxlbDVFUoycWuqJlFSVmfnR8UvgJrXgj7RrHh9ptd8NLln4zcWw9XAHKj+8PxAr58BVgCDX7KsokiZHG5CMENzx6V8Z/HD4Cqi3njLwP
| aBNqmXUNKhXqByZIh/NR+Ff0z4deL31iccFmT12UjzMRhLK6PjgdKPxpATyCOQeQaXvX9FRakk1qjz/IWik5pNw4z1pgLjkUYpASaUHNDQC/jR3opAeBSAX8aPxpB0FL3oAPxoopOcimAo4F
| J3ApfxpOaADnIo6dTS0UgCimZPrRRzAPpP1ozyKM8igA/Cg9OlLmkJ+XNPQD1j4E/Dhviz+1/8Pvh84l+x6rq8a6gYwcrap+8nPt+7VufpX9Vtpa2mmaTZ6bp9tFZ2VnCsFvBEu1Yo1GFUDs
| AAB+Ffgj/AMExPD8Gpft969rs8ayf2D4UnlgBHKyTSxQgj/gBkH41+9Dy4bqD+fFfI57WcqqifQZRTSg5EzyEKfWqzynHX8jULy5z7VUeXB78+9eCewTu/U5zx61UMp2nJ/WoXl/eMOpqpJM
| AvqaAJ3kIbk/rVN5ctkH9aiebPNVHl2570ATPLkHnFVHlG7k9RjrUMkvHXrXzd+0r+0BpHwC+Bj60Y4NT8WamzW+haYz48yQLzK/fykyC2OpIGRuyNaNGVWajEzq1Y048zJf2n4fg9qv7LOu
| aH8Ytd0vw/ps0TPpdzNJ/pUN0FPlyW8Y+d2BPKgHK5B4NfztTRxxXk0UM63UKOVSZUKiQAnDYPIz1weea6jxz498X/Ev4h3ninxtrl7rus3DZMkz/ACRL0CRoPlRAAAFUAVyQ9K+4y7ByoUu
| Vs+UxeIVapzC0nccUuaM13HMFOjklhuop4JXimjcPHIhwUIOQQfUUzPIpCc4pSjGSalqgPtn4SftOHNr4d+JMuGGFg1wLgN2AmA6f7w/Ed6+17eeC6tEuLWSKeB1ykkTh1YeoYcEV+J2Mk17
| b8Kvjj4l+Gl7FZSvJrfhUt+80+Vvmhz1aJuqn/Z6H9a/njxA8G6eKU8ZlqtLdx7nfh8W4+7I/UjjHqKaRzgECuT8GeOPDHjzwlFqnhzUIbuIjEsJOJoG/uuvUHp9e1db24yK/l3G4KvhKrpV
| ouMl3PUjKLV0RFR2HPrWD4i8P6Z4n8G3+ha1b/atOvITHNHkg4PcEcgg8gjuK6ID5ORhqTGMA9ajD16lCpGpTdpJ3THo1Znxav7ImljxZvPjC/Oj+ZkQfY1E23P3d+7H44/CvrDQtE03w34Q
| 0/Q9HthaabZRCKCIMTtA9zySeSTW4QTk8c0w88da+hzzi/NM3hCGLquSjsTToxg7oiHTgUjKdueakPX1pD0r5q5rYrlT6ZqNlwx/lVoj0qNh8xq4smxB24/Q0h+7zUhAxxTeTWkZNNNboHZq
| zPhH9oT4Qrol9L478NWwTSppP+JraxLxbuTxKB2VicH0P1r5TGcbs8etfsbqGn2mqaNe6dqEEdzZXMRjmicAq6EEEH25r4Ol/Zi8V3Pxb1TT7O6tbDwolxuttQnO9miPIVUHLMPu5yBkda/q
| Lwx8UMOsDLD5lUs4bPujysVhXzXifMm4A47+leoeDfg7478cGK4sNLbTdKc8X+oAxxkdyoxlvwH419OxeEPgl8FbRLvxDd2useIo1BQXZE07H1SEcLz3P515d40/aZ8Q6rFLZeDdPi8N2RGB
| dSkSXDD/ZGNqfTk+9fYVOMc3ziXs8pw7UH9uSsvkYKlCOsmeb/FT4Xv8ADPWtKtDr1vrRvYGYhY/LeIqcHK5PynPB+teVj361bvtQ1DVdVlv9UvrvUb2Q5ea4lLsfxJ+tVeMiv0fJ6OJo4WMcRPnn1Zzzs3oHcUvejPNJnIr0RB3HFLRmjNMBO44paO9JnkUAFHcZ60ZyaOuDSAO3TmgfSlpCRjmgAyfSik3UUXAd15pOvWlpOhAoAB060HGM8UtIelPoB+oX/BLFwn7TPxVDDMp8LQkE9cC6T/61ftc0ny+1fgf/AME2fEkei/8ABQS/0eWYqmu+GLm2iUfxyxvFOo/75jkr94JJPmPJ69+cV8Vna/2i59JlUr0rE8kvGOD61UeXBHI/KoHl+bgg1UeUHqea8mx6tieSVsk5HNVWf5Sc1A0oweeaqPIPXik9BEzyndgciqrSE5yaheUbjk4qo02eKAJnkJkAyf61+CX7b3jy68aft9+ItPM7SaT4Zij0uxiD5UMqh5n+pdmH0Uelfu80oEyfMRhs57fjX8537Rdld6f+3d8WLa9RknPiO5lwTn5Hbep/75YH8a9/IEvbO6PHzeTUEjxjb8+cmlGM59aOvNKDkV9btofPhmjNH40UAHXmk9M9aWk6ECgA79etJjI+tOo70bO4G/4Y8V+IPBfiqLW/Deoz6fexn5gnKSrnlHXoyn0Nfol8Jfj94f8AiDHDpOreVoPivaAbaST93cn1iY9T/sHke4r8zT096EkkiuklheSKZCCrocMp9QRzmvz3jXw7y7P6L5ly1Okkb0sRKB+2nRTk5PemA5JBNfB3wj/aZu9MFr4e+I0sl7Y4EcGtDLTRdgJR/GOnzDkd8190WV9Y6npFrqFhcQ3lncIGhmgfeki+oIr+OeKuC8xyHEOGIj7vRrY9ihXjUXmTt0IFRlRjirHAJHcHFIQMZr5M3vYqnI600gYqwVUnnjjtURBGRjpQNO5FSYySTzkVIw6Yph78ZpoZEVwMnioiM1YbBUDPU8VVW4tpJjHFcQSSj7yLKCw+ozxXRSo1JxcoxbSIckt2Pxnvn3ryH42p4oi/Z71i/wDCmqXOm39konmNuP3kkI/1gDdQQPmyOflr2A/dx/F3FVbq2hutPmtriMS280ZjkQ/xKwII/EGvSybGLC46lVkrpNXRFRNxaR+Nss0tzcPc3U0tzcOd0ksrlnYnqSTzTcDIPcdK6TxloDeFviv4i0BwQtlfSRxE/wAUefkP4qRXNg9BX+heWV6VbC06tFWjJJqx8/P4ncUY60uaKO9dxImfelo/Gk4NABS5pOvNLSAM0UfjRTAM0mcnrS96TqRQAueM0gIpe9J1HpSAWim7qKLoBcUcUuKKYBik7UuKQ8CjYD1r4BeOR8Nv20Phv4yklMNnY65CL1hniCQ+XKTjsEZj+Hev31+Mf7UXwZ+CRntPFvipL3xEqbo9C0lDc3j5AK7gPliBBHMjLwRjNfzXE4Ge46Y65r7A+GH7P0eq2Fv4r+I0l9d3N2vnQaa8zBip6PM/3iSMfLkYGM+lfD8ZZ3luVUfbYuXourO/BVqkdIOx9Zan/wAFQtDGrzLpHwj1W6sQf3ct3riRyMPUqsTAfma9K8Af8FF/g34ou4rTxppviD4dXUhwLiZDfWg9MvEu9frsx/OvIrHwV4Q06wW2svC/h+GEDGBp0Rz9SQSa4nxh8DfAPivTpgulQ6FqTZ8u902NYyre6DCsPwz7ivybDeL+TV6ip1KLiu53KWIi78x+u+la5pGv+GrTW9B1Ky1nR7uIS2t5ZzCSKZT0KkcH+lTPJgZ5PpzX4TfDf4rfFP8AZB+Lw0nU4pfEfw4vpy89gXPk3K95bdj/AKqYcZB4PQg8Efsf8PPiX4P+K/wtsfF3grVV1PTJwBLHjbNayYBMUqZJVx6dD1BI5r9Kj7LEUY16EuaD6/5nfQxkZ6S0Z6A785JFVGl5JqJ5SzAE8d6rs42nk5rGLurnWndErSYIP41+TX7fvwfvbTx5YfGbRrRpdNvoo7LXjEP9ROg2wyt7Og2E9MqueWGf1XeTpzWPrGmaZrvhjUNF1myttS0q+gaC7tbhA0cqMMFSDXbl+KdCtdbHLjaCq07dT+Z4etGOle/ftL/DTwd8KP2n9S8LeC9fuNVshEs81lMu6TTGcbhAzjhztIYcAgEA5PNeAjmvvKc1NJo+TkuV2DHNGORS4pMVYgxRxS4opgGKMUYoxQAmKCOKWjvQAz5cYbJr1r4Y/GPxV8MdYVLOZ9T0CRwbnS53JTHcof4G/Q9wa8mCjFJgDI/OvMzbJsHmeHdDEwUovuOMnF6H68+AviR4V+Ivhkah4evleZAPtdnL8s1ux7Mv17jg+td5jj3r8YdB1/WvC/ii31nw/qE+m6jCcxywsRn1DDoQe4PBr9BvhF+0Vo/jUW2g+KDb6F4pYKqMTi3vGxj5Cfusf7pP0J6V/JXH3hFisqlLEYFOdLt1R61DGJq0j6XIyfSoyAeORUhXcRgnp3poHH9a/E3u090dxCy7RURUFutWivqMj61E0Z3HBwMU0O583/tK+M9Z8KfBWxh0S4ns7nVb02sl3EcNEgQswU9ieBkc9a/PjS9e1rQvElvrOl6rf2eoxSb0nSY7iR2b+8D6HrX6t/ELwFpHxD+G9x4f1ZpYULCW2uIgN8Eo4DjP1II7gmvl3R/2SbiPxVE+veKoLnRkkBeO0gZZZV/uknhc+oziv6I8OOLuHMBklShjElU13W/oediadRzVj6r8E63L4m+EfhzxBcRiOfUNPinlUdA7KC2PbOa6gg5GOneorGxttN0i2sLOJYLS2iWKGNRwqqAAPyFWSM5NfguOr06mJqTpqybbX6HfFWirn51/tRaMmnftC2eoJGqpqmmJI5A6ujFD+gWvnGvs/wDa6sgY/BN/gbw9xDux2OxgP0NfGFf3F4W46WK4bw8pbpW+48PEx5ajQmKXFGKMV+hnOJilxRR3oATHSlxRRigAxRijFFABikxg0uKTuPSgBaTFLjjFJ0PAoYBgUUtFFgE7jmjnIpaKQCY560HpS/jSH7uCaAPVfgn4ag8T/tHaJa3cay2VnuvZ0IyGEfKg+24rX6XgnkYA9xX53/s56nBp37TFtDOwQ39hNaxknAL/ACuB+Pl4r9EgAB16V/IvjnVryzqMJ/Coqx7GAScLigduKkVfmpoxjNTqo4Nfibkeg2YfiHwzo3ivwpdaLrljFe2Mw+dH6qezKeqsOxFfHPk/E/8AZR+MCeNPAeoy33he4cJMLhN0FxGTxDdIMYPPyuMc8gg8V9zgADPaoryxtb/S57K+t4buzmQpLBMgdHU9QQeor7jgrjvF5FW5W+am90c9Skparc+gPgn8fPBnxy8AHU/D8xstftY1Or6LcMBPasQMsP78WeA4+hAPFeyPIeev5V+I/jn4T+Lfg/4+h+JvwjvtQtbfT5DOyW7kzWXY4H/LSEg4IIPHXI5r79/Z2/ao8PfGfRYdB1w2fh74iwqfM08vti1AAcyW5J5PUtGfmGOMjp/T2W5jg83wyxOCle+67GmGxlnyTPrQvnHJ+or5v/aQ+PWnfBH4NzXNs9vd+NdTRotCs3OcMBzPIvGI04PuxA9ca3xu+Pfg74J+BHvNWuYdS8Szof7L0SCQGaZsHDN/cjB6sfoMmvw88fePfE3xL+Kmo+L/ABZem71W6YYVRtjgjH3YkX+FFHQfUnkmvossyudSV5LQjHY+MVaJzWoahf6zr9/q+rXc+oape3Dz3VzM+55XY5ZiT3JNVBnFHQ0DPrxX1ySSSR8823qxfxpO45pfxpPxoAO45o5yKWigBMc9aX8aPxpO45oAPxo5pfxopgIOwpMe9OopWAbzmgjnIJDDkHPNL+NHP1pSipRcZK6YbO59UfCT9pLVfDH2Xw/44ebV9AGEh1DaXubYcABufnQY/wB4e/SvvjStX0vXfD1tqmj3tvf2FwgaGaBwVYH+vtX4vcZOQPxr0b4dfFLxV8M9eafRLk3Gmytm602diYZunOP4W4+8P1r8I4/8HsPmClisAuWp1Xc7sNjOR2kfrd9fwphyeQcivNvhz8VvCvxL8PedpF0bXU40zd6bcECaE+uM/Mv+0OPXHSvSxwSD1r+UsxyvFYCvKjiYOMkerCSkrpkTKSmOpqIqRgE5qywAHPSmFQxBJrhRaa6lYKRk9qQ9KmKsAeOKYQDzQM+Ov2uiP+EP8Gg9Tey4HfhB/jXw76V9h/td6gh8Q+CtJU5ZIJ7lwOuCyqP/AEE18edhX9y+ENCVPhqjfrf8zwcW71GGOetL+NH40ncc1+nHMH40c0v40UwEHajmlopAH40ncUv40UwE69eaMdKMUdMCkAduaPxpaaeOc0MA2+9FOoosgDNJkE0Y5oxg09QDIz1oJ4paKALFjf3ml61Z6pp8z29/aTLNbyp1V1OQa/Sb4V/FfRPiPoSqrpY+IYIh9t052AJPeSP+8hPP+znBHevzP6n2q5p+o6ho2uW2qaVdzWGo27h4p4mwykV+fcecBYfiHDdqkdmb4eu6bP2DQZUfxZ55HWpF649OnFfOfwe+OuneNLaDQPErwaV4rQYjc4SLUD6p2V/VO/b0r6RVSQMjA96/i/PsgxmUYqWHxMWmvxPahWVRaCDnCiplyfU0KuTiplXbmvBk7GiQ0rkYK5BHIxXyP8Wv2fp/7Vbxx8MRJpmuW8guJdOtX2FnBz5kBH3Xzzt4B7YPB+vgOQc1KqNt+vrX0PDXFWNyTFKvQlp1XcirRU1Zn4x6xqGrav4qv9Q8QXl9qGsyyn7VPfSM8zMOu4tzkelUOnXiv0l+MfwD0vx/bTa3oSQaR4uUZMvSG9AB+SQdn9H69jmvzp1fSNV0DxLd6Prljc6bqdu+2aCdNrKf6jHII6jmv7R4I49wHEFBOnpUW8ep4lahKL1KGRRkAUH2oBya+86mAo6etJ+NKOnFJ26UALmkyCaMc0YwaeoBkZ60veijvQAg6c0ZFLRQAmRilHT1oopAJ3HpS5o70d6YCcHimkgdKd0PtR160gLml6pqeh6/batpF7cafqVu++GeBtrKf8PUdDX3v8Iv2ktM8SNb+H/HTW+k662FivxhLe6PQA/883P5Hnp0r8+/brSFQWGRznINfFcX8C5dn9DlrRtPo0a0q0oM/bEBSocMCp5BByDTyPqK/N34S/tDa14I+zaF4na413wuCEiYkG4sxn+En7y8/dJ47EdK/Qjw/wCItF8VeGLbV9A1G21SxmTckkLA49VI6hh3B5r+OuMeA8yyCu41Y3h0ktj2KOIjNeZr4JQjt64qLb869weoqc8jAHBHrXJeN/E1p4O+Fmt+JLxlCWVszoD1eQ8Io+rED8a+QwGFnicRCjBXcmkbylyp3Pzq/aK8Qrr37UGpxRsGg0qJLBCD3QEv/wCPMfyrxDjPvU97e3Go61e6ldyNLd3Vw887t1Z3Ylj+ZNQA8DvX+h3DeWRy/LKGGX2Yo+dnK8gyM9aXvRR3r3CRB05oyKWigBMgClHT1oopAJ3HpS0d6O9MBOMiloooAKO9FFADflopcn0opALRSd/5UnAIoAXuKP5mjAzkUcZ96AAdB6Udz0paQdjT1AQM0cqSo7JKhDK6kgqRyCCOQa+z/gz+0MrtaeFfiBdBZiRFZa1KeG7BZj+WH/P1r4xHT1pGXI464r5XizhDA59hXSrwV+j6pmtKq4O5+0EbI0CujBlIBDAgg57jFTLg9cE1+d/wc+P194Nmt/D3i17nVPCuQkFzndNYDpx/fT/Z6jt6H9BNO1Cw1bQ7bU9Mu4L7T7iISQXEL7kkU9CDX8W8ZcD4/h/EuNaN4PaR7VDERqLzNJQDnIzVgAYFNAJ55x71IBmvhmzZu4Y+cHGTXlXxT+EPhz4o+HDHeINP163Qix1aKPLx+iOP40PoenavWMdKlC9vSu7K83xWXYmNfDzcZLsROnGa1R+N3jXwN4j+H3jObQvEtk1vOOYLhQTDcp2eNsYI9e4PB5rksjr3+tfsd468A+HviH4CudC8QWiSIQTbXarmW0kxxIh9R3HQ9DX5LeM/CepeB/ibrPhfV1/0qwn2iTGBMhGUkX/ZZSCK/s7wz8SKfEOH9jVVq0fx8zxsRQcGc3wRS96ZnAxtf8qMD+635V+oPF0L25196OflY+kx6cU3H+y35UY4+635UfXKH86+9BZjvSlpmOfut+VGP9lvyo+t0P5196CzHdqWmY5+635UY4+635UfXKH86+9BZj6THHSm4H91/wAqXH+y35UfW6H86+9BZi46UtMwP7rflRj/AGW/Kj65Q/nX3oLMfSY5FNx/st+VGP8AZb8qPrdD+dfegsxwH4UY4xTcf7LflRjn7rflR9bofzr70FmOP5123gP4ieKPh34qXUvD16yQuw+1WUpJhuVB6MPX0Ycj1riMDH3W/Kk7Y2v+VcOY0cvx1B0cQ4yi+7RUXKLuj9Vvhh8ZPCvxL0TZbTJpPiGNB9o0udwXHqUPG9eOo5HfFfMH7UXxJi1nxRb+A9GullsNPfzdTeIgh5+ix5/2BnPufavlGxvbvTdYgv8AT7q6sL6Bg0M8LlHRh0II71BLLLcXcs88kk00rl5JHJJYk5JJ9c1+X8P+EuW5fnLx1GfNBbLezOieKnKHKxp6gDOBS5xgZpOAM/r6UwyqD95SR15r9lnVpw+NpM5LN7EvHWgY7UzcOMH9adjtTTT1TuA4dKKKTrj0pgHfmjAo4IFA6UgDuKWgdOKTv/KgBaM0nBpaYCAYoHQUvUUUgCim/LRRcB340UfjSDPc0wDuOaX8aTnPWl70gEHr1pe/WkOccUc+tAC03GTml59aPr1pgJjrz1r2H4UfGTXfhhriwHztV8Lzyg3WnNIRs/24ifut7dD39a8f78nJpPY15Wc5LhM0w0qGKheLKhUcHdH7H+EvFmgeNPCFvrnh7UIr+xlX5scPE2BlHXqrD0/LNdWq+uc1+PvgD4h+JPht4xTV9AuSYWIF3p8rHyLpR2dR354PUV+nXwz+KHhr4meDzf6NOYtSiA+36bMw822Y98cbl9GHB+vA/jPxC8McZkNR1qS5qL69vU9fD4lTWp6V0HqfWpVGOcUoxjjr6U7aemDke9fkjaudqAD5j15PWvz0/bG02GD4weFtURQtxeaUyTnP3vLkIH6NX6IBR26jpX5dftPeL7XxT+0pNZ6fMLix0O2FiJAeGlDFpcewY7c/7Nfrvgtha9TPJVIaRjF3fyOPGSVj9CfA+h6JN8GPCskujaVJK2kWxZms4ySTEuSTiuq/4RzQMf8AIE0f/wAAo/8ACsbwESPgp4U5/wCYPa/+ilrrxz3r4DOs0xix9b97L4n1fc0pU48i0Mk+G9A/6Aukf+AUf+FH/COaBn/kCaP/AOAUf+FawzQfrXmf2rjf+fsvvZfs49jI/wCEc0AnnRNH/wDAKP8Awpf+Ec0D/oCaP/4BR/4VrYNHfrR/auN/5+y+9h7OPYyT4b0D/oCaR/4BR/4Uf8I3oH/QE0f/AMAo/wDCtbmj8aP7Vxn/AD9l97D2cexk/wDCN6B/0BNH/wDAKP8Awo/4RvQP+gJo+f8Aryj/AMK1qKP7Vxn/AD9l97D2cexk/wDCN6B/0BNH/wDAKP8AwoPhvQP+gLpH/gFH/hWt+NAzR/auN/5+y+9h7OPYyf8AhHNAz/yBNH/8Ao/8KT/hHNAB50TR/wDwCj/wrX70HjvR/auN/wCfsvvYezj2Mn/hHNA/6Amj/wDgFH/hR/wjegf9ATSP/AKP/CtY/Wjmj+1cZ/z9l97D2cexk/8ACN6B/wBATR//AACj/wAKP+Eb0DH/ACBNH/8AAKP/AArW/GkOQP1o/tXGf8/Zfew9nHseQ/F/RNFt/wBlzx3NBpGlwzLo82yRLRFZeOoIHBr8kY1klMcUMbyzOQqIq5LEnAAHc5r9ffjJz+yx4+BP/MFm/lXwb+y94Rs/Ev7SMV/fxrcWuiWpvRE6BlaXO2M4PHBO4e6iv6U8I+I55fw5jMZVk3yPq/I87FU06iSPavhJ+yzpkeh2uv8AxJR72/lRZYtFDlIoQRnEpByzeqjAHTmvqW3+HXgK105bWDwV4UitwPuDSoefqdua64HcBnqAKVmGzBY8V+HZ/wAcZvmeKlVnWaTeiTtZHdDDRitj50+IH7NPw+8WWM0ujWEHhHWdpaOewQLCTj+OLhSPpg1+evjn4feKvh14obTfEunPCrE/ZryM7oLhfVG/oeR6V+xznuMniuf8R+G9C8WeGZ9H8QabBqWnyj5oplzg44ZT1VvQjmvs+B/F3McoqKGKbqUvPdGNbCRlsfi7kntSjOTzmvpP4tfs5654K+0a34WNz4g8MDLSpjNzZj/aA++o/vAfUd6+agwJ4PNf15kHE2X5zh41sLNNPp1PLqUpQeo7uDR1HWj2z0pR05r32jMTPI5paKTnNAC0UfjRQAUnpzSnpRQAUUUUAFJ/OgelGT6UgD8KAOaP4hkUvegBOp96Pwo6CjPtQADHUUc49aOfSgHNAC0Hp60nvR1PvQAfpWx4f8Q634T8V2uu+HdRuNM1S3OUlibhh3Vh0ZT0IPBrHBz2pOSRXPi8JRxVKVOtHmi+jBNp6H6PeAP2pvBOvaVBbeMpD4T1oYEj+Uz2kp7srDJT6N09a9euPjL8LLTTTdzeO/DnkY6pc+Yx/wCArlu3pX5B7Rjpik2LkZAr8TzLwGybEYh1KdSUE+i2OyOOmlY+4viv+1TbXOh3Og/DPz2adTHNrc8JjKKRg+Sp+YH/AG2xjsO4+HHZmVnkZnkckszHJJ7k0/8Aipj/AOrr9E4f4Oy7IMDOlhY7rV9WYTrSnLU/Z7wGf+LK+E/fSLb/ANFLXYj7oxzXF+Ayf+FLeE/bSLb/ANFLXXhmKj6V/Amef8jCv/if5nu0/wCHH0JetH86ZuPH60hZt3FeWUSfhRUe5sc9aUsQB60AP+tFM3MDz0o3HB9aAH+9FRhm+tLuOfagB9HWo9zHpS7jx+tAD/50fhUZZt3FG5sc9aAJKPrTCxAHrRuYHnpQA+gjJ9qZuOD60gLcd6APM/jLx+yz4+b/AKg038hXxp+x9qtva/HDXtLmZVnvtLBg/wBoxuCR+RJ/Cvsj4xkn9lnx+DyP7Gm/kK/J/wALeItS8I+PtI8T6RII9QsJxLHk/Kw5BVh3UgkEe9f0h4WZLLNeFMfhY7yen3Hm4mVqiP2t3ZbOMc9KgLdRXnHw3+Kfhn4meEEvNFulj1NIla/06Rv31u2Oc+q56MOD7HivRWGE3Z4r8BzLLMTl+IlQxEXGS7nowqqSuNJwfWozncSO1OJDcj9aZk5PNcqVimNkw0RXAIPqK+Vvi3+zjpPimS617wYIND8RNl5LUYW2uz9Bwjn1HB7jvX1OzHHPP4VVcnzOcZA9K+j4d4kx+T4hVcLPl7rozOdKM1qfjVrOi6v4c8SXOj67p9xpupW7bZIZlwfqD0I9CODWZz6V+svj74deGfiJ4aNjr9oPPjU/Zb2IBZrdj3Vu49jwa/Oz4lfCLxR8NtSaS+i/tHQZGxbanAvyHngOP4G+vB7E1/XvA3ings7gqNd8lVdO/oeRXwrg7rY8t6fSl70zPP3silzlsc1+stWOUcOlFHek7dKQC0meelB+maMUgDAooyfSijQBe9J15BozRkZpgGfejOT1ozk9aXvQAUncc0fXrRkY60gDvjNHGfrRkAdaPxoAWik7j0pc0wDrSenNGQTRnJ60gAe1LR3pPr1oAWo5Pu0/Ipkn3B9axxP8Gfoxx3P2a8CMB8FvCfX/AJBFv/6KWusEihQPbmuP8Cf8kY8Kf9ge3/8ARS11OeK/zdzuP/ChW/xP8z6Gkv3cSx5q9s0eav41XyM0Zry+U0six5ifSjzUP/6qr5ozRyhYseamc45o81ffrVfPPXmjNHKFkWPMQ444+lHmr+lV80Zo5Qsix5qgdP0o81e2ar54oyM0coWRY81fxo8xPpVfNGaOULIseah//VR5qZzjmq+aM89eaOULIseavv1o8xDjjj6VXzSZo5Qsjzv4yEH9lrx5z/zBp/5CvyGTmIV+u3xi/wCTXvHv/YGn/wDQa/IlP9Utf1v9Hpf8JuI/xfoePj/iRpaPrGq+HvE9rrGh6hc6ZqducxTwttI9vcHuDwa++/hH+0vpvihbbQPG7W+i6+SFivBhLa6OO5J/dufQ8HsR0r89CaYyLIpJGc1+ocXcCZdxBRca0Up9JdTnpV3Bn7b71YBgw2kZBHeoy4r82/hR+0Rr3gg2+i+JGudf8LL8iZO64s1/2CfvKP7p/Aiv0B8P+KNC8W+FodZ8Paha6nYyjiSJ87T3Vh1U+x5r+OuL/D/MsgrNVY81PpJHsUMTGpubrsM57e9RE5P+NGeKZu5r4ex03AsAprPvrW01DTJ7O/tYLyymQpLDKoZXUjkEHqKtucxnHWq+7JxXRQqTpSU4OzRL10Z8S/FX9m6Sz+0a98PUee2GXuNHZiXTvmEn7w/2Sc+hPSvkR4ngu5IZo3hnjYrJG6lWUjggg9DX7Jk8N06968P+J/wU8PfEC0lv4Vj0jxKF+S/jT5Zj2WVR970z94fpX9CcAeMVXDqOFzH3o9H/AJnm4jBW1ifm3nBwfzpa2vEnhzV/CXjG70DW7dra/tz3+7IvZ1PdT1zWKOlf0/hMVSxNGNWk7p9TzGmnZhwRRn3pfxpOa3AWikyPWii4C96Tp0FBOBR244oAWjvSenFLjFMAPT1opB0pe9ACc5paTvRjjpSAWkxijoRxS0AFFFJQAvek7nPSlpB93jigBajk/wBWM+tSUxxlPxrHFfwZejHHdH7I+Bc/8KX8Kcn/AJBFv/6LWupyeetcn4GJHwX8KD00i3/9FrXU596/ziztf8KFf/E/zPoKX8NEmTnrSZNM70V5ZY/Jz3zRk570z8aPxoAkyc0ZPvmo+cdaO9AEmW79aMn1qPJ/GigB+Tg5pcnPWo8n1o75oAfk0ZOe+aZR+NAD8nPelyc1H+NHOOtAEmT75pMtxTO9HOc55oA86+MB/wCMX/HvJ/5A838q/I1P9Wtfrh8YP+TX/Hnp/Y838q/I9P8AVrX9Z/R9f/CbiP8AEvyPJx3xIfSY7UtHev6FOEaBxj16113gvx14m+H/AInGp+HL97cN/wAfFs43Q3A7hlP8+COxrkjwKT6A1x4/L8NjKXsq8eaLGpNbH6c/DH42eGviLZpa7l0bxIq/vtNnkHz46tE38Y9uo9O9eyM+Mdj71+M8Ms1veRXVrPLbXMTh4pYmKsjDoQR0NfX/AMKv2kpI5YPD/wARJd4YBIda25I5wPOAHb++PTkHrX8v8eeDdXCuWJy7WG/L1R6mHxl1aR9qEnHU5qNjgDmq9teW17pSXdnPFd2sgDRzQsGRwe4I4I+lKxHTHSvwKdKdOTjNWaO+NmKWOGGaiJOetGep60xjnjpTRpY+av2mfCdrqnwih8UxRganpMyhnUcvDIwUqfYMVI9OfWvg8dM1+kPx6vobL9lrxMspUG4WKCIHuzSrwPfAJ/CvzdXO0Zr+w/BHGV6uRONR3UZaHh4xJTHUUdzSenFfspxhk+lFGBRS1ATHvS4APvS0UWATAzkUd6O45pfxoASjAOPSlo707AJgdKBwKOfpRz60gFHTikwP8KO4paAEwAfejAzmj9aO45oAXvRR+NA6etMBMCmPwox61J3qN+1YYn+DP0Y1ufsZ4GP/ABZrwt/2Cbf/ANFrXV54zXIeBz/xZvwqOn/Ept//AEWtdZuzxkHPQV/nLnX/ACMK/wDif5n0NP8Ahx9B+fSjOTUe7nml3HuRXmWKH5GTz0ozUe7BwaXcc9aAH55opm7v/Sgk560WAfmjPNM3cDue9JuJHBFFgJM8Zoz6Uzdnjg+1Ju55osBJnJoyMnnpTNx7kUm7BwaLASZozzTNxz1o3d/6UWAfRnimEnPWjceDnJHWiwHnHxfY/wDDMHjz30eb+Qr8k0/1a1+tHxdOf2YvHY440eb+Qr8l0/1a1/WH0fl/wnYj/F+h5WP+JDsc0YAPvS0V/QhwCYGcijqeaO45pfxpAFMODkEAj3p/60nU0MD1T4cfGHxL8Or1LeKR9V8PF8zadNL8oBPLRnna36HuK/QDwV4/8NeP/Di3+hXyuwA+02khAnt2PZl/r0NflVjA4FaOk6xq+ga1Fqeiand6Vfx/dmt5ChI9DjqPY5Ffk/G/hZgc6Tq0EoVe/RnXRxUoM/XXJ56fhUM88FvaPPcSpDCgy8jsAqj1JPQV+eVn+0Z8Tra0EUl9pV64GPNnsxuPucECuJ8U/FDx14xt2g1rX7h7A/esrf8Acwt35VfvfjmvyLBeBeazrqNeaUOrXY7HmEbbanovx6+KNt428SW3h/QpfO8P6fIWknU/LczcjcPVVHAPfJNfP3f6U1RjjAGO+KdzX9NcO5Fh8owMMLQWiPLnNydxaKQdeuaM9O9e4QN49aKfRSsAnOaBnvS4op2ATnPWl70n4UvegBOgo5z1paT6UgDn1pR05pDjHtR1HSgA7ijnNH4UvemAgz3NHOetH1o/CkAtJ06Ud+RS0AJz60x+Fz3qSo3HyGscSv3MvRjW5+wngg4+DXhc5PGlW3H/AGzWuq35GcVyXglh/wAKb8Lj/qFW3/ota6ndxX+c2d/8jCt/if5n0VG/JH0JN53Zo3kmo93tSbvzryzSxLvb9aN5AwMVHu56UbuelAWJN55oDnpUe/2pN3PSgLEu88Zo3EnI6mo93tRu9qAsP3E5z17Uu87s1Huo3e1A7Em8k0b2/Wot350u7npQKxJvIGBijeeaj3c9KN/tQFiQOelG5uDUW7npS7qB2PO/i6f+MZPHX/YHm/kK/JpP9UtfrD8XD/xjL46/7A838hX5PJ/qlr+svo/r/hNxH+L/ACPGx/xIdz60DPel70n86/oE4A5z1pe9J+FL3pgJ0FHOetLSdOlKwARkdaMcc0Dmj8KaYWE2/NS0dPpS45zQmAgxgUtHagHIovpYBM56GjilpOc9KQBz60UYFFABnmgHPajHNLTQCc7qXvSdx60ZyetIA6Cjp2paKYCc44FA6UdxzRkUgFpM80tH40AIDntRnkZFLSDp1oAWk6CjOaWmAnQDimv92nfqaY/3TWGI/gz9GC3R+v3gjP8Awpzwqf8AqE2+f+/a11I6e1ch4GkR/g14VdG3KdItip/7ZrXU7iBxiv8AOrPI/wDChW/xP8z6Ol8ESbnNB61FvbnnmjeeeRXk8poS0VFvPr9KN5z9aOUCWjnHvUW889KC59qOVgTZ4/lSd6iLt2/CjeaOVgS96Oc1FvODRvbnnmjlAlPWiot555FG8+v0o5QJaKi3nP1o3nnpRygS8496Mmoi59qN5/wo5WB578XP+TZvHJ/6hE38hX5QL/q1r9Wvi7Iqfsy+OmkbC/2TIAT6kYx+eK/KVM7Bmv6x8AVbLsR/i/yPGx/xodnmgHPalo61/QKOETndS96TuPWjOT1pAHQUdO1LRTATnHAoHSjuOaMikAtJnmlo/GgA70DpSfjS0wA9OKQdKXOaTPvSAMn0oo59aKAFzSZBNGOaMYNPUAyM9aXvRR3oAQdOaMilooATIApR09aKKQCdx6UuaO9HemAmQTRkEjmlopAHek9M9aWimAnHWm4BBFO9zQT8vNCSe+wH6Mfs5+N4PEvwMttEmmX+1tDC200ZYbmi58p8dcY+XPqPevoA5zg44r8h/CnivW/BfjS217QLv7NexHDAjKSocZRh3B/+uK+5/B37S/gnW9Mgi8RNL4Y1XAWTzlL27H1Vxzj/AHgPxr+RvEnwxx9DHVMXhIc9ObvpumethsTFq0j6SO70oGa4BPip8OZIww8c+FivbdqUan8ic1Zg+JHgK6v4bW28Z+GLi4lcJFFFqcTM7E4AA3cmvyKeQ5lC/NQkreTOxTg3udqf1oPQetJnLd84/EUhJJHWvJLdh3PTvS4JNMB+cc08kgE80CEGaX5iea4eX4l+AILuWCbxr4XjmjYpJG+pxAqRwQctwc8VH/ws/wCHef8AkevCf/g2h/8Aiq9aOQ5jJcyoSt6Mn2kO53fOSP60c8Vxdp8RfAt9qcFnZ+MvDF3dTSBIoYtSiZ3YnAAAPJNdmSTjk1x4rA4jDNKtBxfmrDUk9mKeDRn/ADmmknf1NIM7u/tXKhkmDtzQM46ZH1pgJ3Drz6fzriH+Jnw9Sd45PG/hRJEYq6tqkWQQcEferrw2AxOJb9jTcrdlcUpRXU7oZ5FHII968+m+K3w4ht2kbxx4ZIUfwahGx/IEmvIvG/7TXhLSLGW38JrL4k1QqVjl2GO2jPqWOC30Uc+or3cs4MznHVlTp4eWvVqyRnOvCKvcd+0543h0f4SJ4St51fU9ZcGWNWBMcCMGYn03HAHrhvSvgAYyB1rX1/X9X8U+LrzXddu5L7Url90jtwAOyqB0UDgCskfSv7N4A4TWQ5XHDt3m9WeNXq88rjs0mQTS96T6dK+2MQyM9aXvRR3pgIOnNGRS0UAJkAUo6etFFIBO49KWjvR3pgJxkUtFFABR3oooAb8tFLk+lFIBaKTv/Kk4BFAC9xRjmjAzkUcZ96AAHNLRSYzj0oAO/NGBRwQKB0oAO4petA6cUmP/AK1ABj8qO4owAfejAzkUAHAo6rS96KYB3pD055o60YBFFwADj0pMDPPOfWnDgUDpxSsgGbFB6D8q6fwMo/4XR4S4/wCYxb/+jFrm66XwPx8aPCef+gvb/wDoxa8fPqUP7PrafZf5F02+ZH62Kxy3XrSEn14+tM3EOR6mkLH/ABr/ADzrL97I+igtCUHuKRmPlvz0qPccnrSOxKn8KeHV6sfVDmtD8ivEgB+I/iLP/QSn/wDRjVihFxyK2vEeT8R/EPvqc/8A6Mascenev9EMmow+pUbx+yj5ubfMdn8NAB+0R4JwB/yGrb/0atfq+CTjJzX5Q/DU4/aI8EH/AKjNv/6NWv1aBOM1/M3j3BLMKCS6Hp4DWLJScYOc0mSD1NR7jRuNfgaR6diZiSyqehr8d9TRP+Ep1UYH/H5L/wChmv2CdssvWvx+1If8VTqnr9sl/wDQzX9FfR/hFzxN12PLzB7FHYvpTgMdOKO3tSYH+Ff07GKjsjywVcLS9DijHGKXtVLsAUmOfajv/Kk4GKQC9xRjmjAzkUcZ96AAHNLRSYzj0oAO/NGBRwQKB0oAO4paB04pO/8AKgBaM0nBpaYCAYoHQUvUUUgCim/LRRcB340UfjSDPc0wDuOaX8aTnPWl70gEHr1o79aDnHFHPrQAdeP0o6jrRz60o6c0AJnkc0tFJzmmAtH40nOetHOetAC0g6daXvRQAUUnPrRz60AHUdaO4o6ilpAH410vgrj4z+E/+wvb/wDowVzX410ngr/ks3hPP/QXt/8A0YK8vO/+RfW/wv8AIqHxI/WQsd1GSDTcjceaCRnr3r/PKv8AxH6n0kdh+4596YzZBHuKXIz1pjH5eD3p4ZfvY+qCfwn5JeI/+SkeIR/1Epz/AORGrGHU1s+I/wDkpPiH/sIz/wDoxqxx1Nf6JZP/ALlR9F+h81P4jsvht/ycN4I/7DNv/wCjVr9WNxwK/Kf4bf8AJwngn/sNW/8A6NWv1UB461/Mnj2v+FGh6Hq5erRY8NxS7jTMj17UZ4r8BPSHMTuXpX5Balz4o1Q/9Pkv/oZr9eiRkc1+Quo/8jRqn/X5L/6Ga/o36P6/eYn0R5eYdCpRSc+tHPrX9Nnlh1HWjuKOopaQB+NFH40gz3NMA7jml/Gk5z1pe9IBB69aO/Wg5xxRz60AHXj9KOo60c+tKOnNACZ5HNLRSc5pgLRR+NFABSenNKelFABRRRQAUn86B6UZPpSAPwoA5o/iGRS96AE6n3o/CjoKM+1AAMdRRzj1o59KAc0ALRjNJ70ZoAO4z1oFAOe1HfmgA75xS0d6ToKYC0YpCaOfSjQA59KWkHSjnjNAC1v+Ep47b4seGJ5mCRR6rbs5PYeYtc+PSkO7hgSjKcgg8giuPMKDr4apSXVNDi7O5+wnUkjJUjjI60vvXkHwe+I9n49+Gdqs1wq+IbGMRahbn7xwABKB3Vv55r10MMZr/PrPMrr5fjalCtGzTZ9FRmpQQ4nApjkLGzHhVXJPsKXcOteJfG74k2ngz4ZXen21wjeItTgaG0hVstErAq0pHYDt6nHoa14eyjEZljqVChG7bQV5qMGfn5rs8dx451m5iO6Ka+mdD6gyMazB1yKao4GaceMCv9BMFQlSoQh/KrHzktWdZ4AuI7T45+D7mZtkUWsW7OT2HmrX6r87R05HPtX4+q7xyRyoSkiMGVh1BHINfpb8JfiNY+PvhpaTebGmuWkSRanb55DgD5wD/C2CR6civ568dcixFVUsbCN4x0Z6OAqJNpnq46UtM3D3oLDHcV/Mu7PWuI7rHEZHOFRSxPoBX5DXkiza9qEqHKPdSMp9ixNfoJ8dPiTa+D/htc6LY3Mb+I9ViMMEQb5oImBDSn044HqT7GvzxVdigc1/VHgXkeIw2Fq4mrGynax5GOqqTsPoxSE0c+lfv+h54c+lLSDpRzxmgBaT+dA9KMn0pAH4UAc0fxDIpe9ACdT70fhR0FGfagAGOoo5x60c+lAOaAFo70nvRnmgBR0o70d6TPHSmAtJnnpQfpmjFIAwKKMn0oo0AXvSdeQaM0ZGaYBn3ozk9aM5PWl70AFJ3HNH160ZGOtIA74zRxn60ZAHWj8aAFopO49KXNMA60npzRkE0ZyetIAHtS0d6T69aAFpO45oyKMgCgAyKWgdPWk7j0pgL3pM+/WjNGc96LgX9J1jVfD/AIig1bRb+407UITmOaFsNz1HuPUHg19FaN+1D4rtLFYtb0LStZkAwZ42MDv7kAEZ+gr5k6nFLzXzedcJZRmz5sVRUn36mkKso7M+ltd/ad8WahZSQaLo+l6GzrgTuxnkT6ZwufqDXztqep6hrGuXGp6te3GoahO26WeZtzN/9aqODkZNGBj1p5JwpleUu+FoqL7hOrOW7HccUZGaTI20o9a+jvqZgenXmtHR9Z1bw9r8GraHfzabqMRyk0R59wfUexrO6+4pMdwawxOHp16bp1YqUX0YJtO6Pp3SP2ovE1rZpFrfh7TNWkVcGaGRoGf3I5GfoBVXXP2nPGF/YyQaLpWmaGzjAnJM8ij2zgZ/Cvmv8TSjB+tfFw8NuHfbe1+rq5t9YqWtctahqF/q2s3GpapeT39/M2ZZ5n3M59zVemY/WnV9tQo06NNU6cbJdDFtti0ncc0ZFGQBWgBkUtA6etJ3HpTAXvSdeQaM0ZGaADPvRnJ60ZyetL3oAKTuOaPr1oyMdaQB3xmjjP1oyAOtH40ALR+NJ3HpRkUwD8aXvR3ooATgijPvS/jSc0gFopMj1oouAvek6dBQTgUduOKAFo70npxS4xTAD09aKQdKXvQAnOaWk70Y46UgFpMYo6EcUtABRRSUAL3pO5z0paT+H0oAWiiimADpRSY46UH7wpAL3pOnQUpOBSduOKAFo70npxS4xTAD09aKQdKXvQAnOaWk70Y46UgFpMYo6EcUtABRRSUAL3pO5z0paQfd44oAWiiimADpRSY46UH7wpAL3pOnQUpOBSduOKAFo70npxS4xTAD09aKQdKXvQAnOaWk70Y46UgFoxik6EcUtABRRR3pgFFHc0npxQAZPpRRgUUtQEx70uAD70tFFgEwM5FHejuOaX8aAEowDj0paO9OwCYHSgcCjn6Uc+tIBR04pMf/AFqO4padgEwBSDANSwxTXN7Da20UtxczSCOKKJCzuxOAoA5JJ7V+uv7PP/BMS41/wtZ+J/j1q+q6C1wN8PhjTGRJ0TsZ5ju2nr8ijI7t2rlxGLpUF75rToTqP3T8hM8//WpcjI5/Sv6WbP8AYC/ZDsbFLS48ARXMsagGS612581vdsSgZ/Crf/DBn7HwG4/Dewx6/wBu3f8A8erzv7ap/wArOv8As+fdH8zXXvzSjg9a/ff9pr9jP9mzwB/wT/8Ail438H/DuDTvEGl6DJcafeDU7qTynBXDANKVPB7givwGB/dZ9smvQwWOjiYtxRy16EqTsxw4zmkZgOhAP1r9BP2PP2GtW/aDsR488b3194a+GMU5itzbgC51dlPzCMnhI1IwXwcnIHQkfrTb/Bv9iX4IWkOiaz4f+DmhXhjC7vE8lvPdSjpuZrks3Oe2BzXLiM2p05ciV2bU8FOSu3Y/mSDBucg/SlAxX9Hvj79iH9lj45/D+41jwJYaD4WvZ4z9j13wbNGLfeOQWhQ+U4yeRgHHcV+Enx0+B3jX9n746XfgfxrDG8hTz9N1G3B8i/gJIEiH9Cp5UjFa4TM6daVrWZnWwsqevQ8dPBBNG4E5zXqPwQ0DRvFn7Ynwx8MeIbJNR0HVPEdra39s0jIJYnkAZdykEZB7EGv6ER+wb+x80as3w50/JHP/ABPrv/49TxmYRoSSaFQwzqbM/mcJ5HNO79ea/pem/YI/ZBmt2hj+HdpG78B4teut6/T98ea+TPjj/wAEt9BbwvqGufAnxFqVnq8CNJH4f1qcTQ3OFzsim4ZGJHG/cCT1Fc9POaLlZpo2ngKi21PxUIGKQ8d+K1Nc0TV/DXjHU/D3iHTrvSNb064aC9s7mMpJDIvBUg19JfsZfD/wb8UP+CgfhbwZ4+0eHXfDF1ZXj3NrLO8QLJCWQ7kZWGCAetelOtCMOfocig3Kx8s5A70mffiv6ZF/YN/Y+PLfDfTQScn/AIn13/8AHqR/2Cv2P2Qonw6sVdvlBXXLrIz6Zmryf7bpdYs7P7Pl3P5nc/Lx1pBnpiv2I/ae/wCCa2m+Hfh1qXjn4CXmq3LWETT3nha9k895Y1BLNBIfmLAf8s2znnBzgH8dlyRyCrDrmvSweMhX1gc1ahOk/eFPU4NLnHevoD9nT9nLxv8AtIfGU+G/DIGm6JZ7ZNb1yeItDYxk44HG+Q87UB56kgDNfup4C/Yl/ZY+CvgWK+8T+H/D3iW8jQfade8ZPHIrNyeEkPlJ7ADOO5rmxWZ0qMuXdmtHCTmr9D+akOpxhgfpTjyK/p6vfgF+xv8AGfQbqx0zwf8ACbV5RGV+1eFzbwXEHbcHtiCMY78V+Rn7Xv7CuufAHTpPHngi9vvFXwyabbdGdAbrSMkBfNI4eMk4EgAwcAgZBMYfNqdSajJWHUwU4rm3Pz4z1FJkA4zSceUSK/dr4S/sffs8+JP+CV3hP4l6x8PLe98X3PgQ6lcXx1K6TfcCBm3lRIF+8AcYx7V14rFRoJX6mNKi6l7dD8J88UmQCMfjVrTkSfxHp8EiBonuo0dc4yCwB/nX9KVp+wj+yDLpVrJJ8N9P3vCpY/25djkgf9N6zxWOjRS5luXRw8qjaTP5pM+/FBPJwea/pjP7Bn7H5wi/DnT8twMa7dE5/wC/1fPHxc/4Ja/DTWvDt3efCHxHq3g3XkG6Gy1KY3ljMcH5CT+8TP8AeBbGOlcsc7oy0asbPAVOh+Eh60Yziuv8f+APF3wv+LOreCfHOkT6L4j099s0EgyGU9HRhw6N1DDrXHg5H+ea9aMlJXRxNNOzFwOlA4FHP0o59aYhR04pMD/CjuKWgBODQP5UtHegAopB165oz070wG8etFPopWATnNAz3pcUU7AJznrS96T8KXvQAnQUc560tJ9KQBz60o6c0hxj2o6jpQAdxRzmj8KD0oEz9HP+CaHwh0v4hftoar4z160ivtM8GWC3NrBNGGja8lLLE5BGMoFdh77T2r6A/wCChn7X/jLwz8Vp/gZ8MNauvDrWlnHJ4l1ixcx3W+Ublto3HKAIVLFefmAzwayv+CS3iOyi8S/GHwnIY11C4gsr+EH7zohkjbHqAXX86+Qv2/fB2seEf+Conj+61OKVbLXzFqmmXDj5ZonQIQp/2XRlx2x718/K1TH2qbHpr3cPeO58jT6zrNzcvNda3rFxO7FnklvHZmJ6kknJPvUK6nqQkGNT1LO4f8vLcfrVTHzZ5FNBPmKP9oV7lSjCK2OCNSTe5/Tp+0wP+NI3j5iSxPw+i5PX/VxV/Nd4K8OzeMPjB4P8I2277Tres2unxkdQZpVjz/49mv6Uv2mP+UIXj3/sn0X/AKKir+fH9mzn/goT8CQec+OtLz/4Fx14OVSao1LHo43WcD94/wBrD4px/smf8E3tJ0X4ewW+mazMkPh/w2VQYtMR5ebHQsqKxH+0QT7/AM4ms6tqniPxLeax4h1O/wBb1e7kMlxeX1w0ssjE5JLMSe9fuN/wVqH/ABjf8Jsd/E0/P/bsa/CzAz0zXTk9OMqPPJbmONk1U5b6I+h/2aP2g/Fv7Pf7Reh6/pOp3jeE57tIvEGjGVvs93bsdrsUzjzFBLK3UEY5BIP7Nf8ABR/4c6T49/4JxT+PoII5NZ8L3EGo2V0FG5reV1jlTP8AdIdX/wCACv52zyrcV/Tv+1CM/wDBFfx73z4JhJz/ALsVZ5jThDE05Q0uy8LLmpSjI/mMRmjkjkjd45l+ZXRsFfyq3/amp551TUj7/aW/xrPU/uR9KcFO3vXtuEXbQ8+7WzLw1XVFdWTVdURwcgi6cEH8DX6efsGftjeN9D/aF8O/B74jeINR8U+EPEMy2Gj3Op3DzXGnXLnESK7ZLROfk2k8EqQe1flrtJHPaveP2X/COr+N/wDgob8H9G0WGSWeDxTZ6hcug/1MFtMk0rn0wqHHviuPG4ek6L5kb4erNVFZn6I/8FUvg9pmm6h4K+NGj2Udte6hctpGvmNQPOYJvt5Tjq21HQn0C+lfj3DNNBcedbzzW8oGA8TlWH4iv30/4Ko+ILDT/wBhzwn4fm8s6jqvilGtlJG7ZBE7O34bkH/AhX5M/skfCnwr8af25/Dfw88aLqTaBf2d1JN9hufIlDRxF1IbB7j0rmyuvy4S89jTFU/3zUT56/tTUjnOp6lnv/pLf40HVdVX5l1XVAwwc/an4/I1/Qp/w68/ZnJ/13xEP/ccH/xqj/h19+zMrAmT4gsAeQ2uDn/yHWMs4wtn7v4GiwNfQq/8E0Pid44+Iv7GfiWw8b6hf65F4d1kWGmanfSNJLLAYUfyS5OW8snAz2YDtX4q/tMaDpPhf9vr4vaJoQiTSrXxJci3jhACxhnLFRj+6WI/Cv3++J3xA+EH7C37FNtYeHNFj06JvMg8OaLEGZ7+8xlmkkOSezM7HOBx2r+afxHrmp+KfGut+JdZuWudY1a9lvL2dv45ZHLsfzJqcrbnUnWirJlYxcvLCW6P6Vf2TfA/h/8AZ9/4JXaHruoRRW00+gv4n8RXaoN8m+Hzzk9TsiCqB7e9fgV8ff2gvHf7Qfxn1HxJ4q1W+TRPPcaPoaXDC1sIM/KqoOC5GNzEZJ/Cv6HPCgh+Nf8AwR/0vT/D9xGZfEPw3/s6FlbASf7IYSp9MSAg59K/l91TTNR0PxNf6Lq9lPp2q2Nw9td2syFXikQkMpB6EEVOVRhOrUlP4rhjJOMIxjtYveF/E3iPwV40sPEnhDWtS8Pa5ZTLLbXljM0UisDkDgjIPcHgjORX9K/7MPxY0/8Aay/4J2yyeNLG0utSmt59C8WWgjHlSvs2lwDnAkjdWx2JPpX8xpYqhOcfjiv6HP8AgmV4B1nwb/wT/u9f1yF7BPFOsSajZRyrtYWyosSSHPQNtYjPbB71tndOnGkpR3Jy6UnOz2Pwc+Kfgqf4b/tHePvAVw7SPoGt3Ngrn/lokchVG/Fdp/Gv6OvgP/ygy8F/9kyb/wBJnr+fn9prxPZeMv2/vjH4l0145dOu/E90LWRB8skaP5asPqEB/Gv6B/gR/wAoM/BPH/NMW/8ASZ6xzRydGk33ReD0nP0Z/MUMgAjghsg96v8A9p6of+YnqOP+vlv8ao/wHHrScnuK+gUU7XVzzXJp6F86nqW4H+09Rz2/0pv8a+2f2Sv2y/iB8GfjXoegeK/Emq+JfhdqFylte2Wo3Lz/ANmq7qPPgZiSu08lB8pGeM4NfC+3pmt3wx4b1fxl8StC8J6BaSXus6tfRWlpAnJZ5GCj8B19gK58Vh6UoO6NKVSSmrM/db/gp58H9K8TfslWHxe0+0hHiXwvdxR3NyijNxYzEqUYjltsjIwPYbvWvwN68gjnrX9K37dmp2Xg7/gkJ4z0vUJI5prqzs9Jtt/WWUyIMj3wjN+Br+akZ2gAjp1rhyWTlQafR6HRj4xVTQXn1pR05pDjHtR1HSvXOIO4o5zR+FL3pgH40nXnrSjpRQAmc9DRxS0nOelIA59aKMCigAzzQDntRjmlpoBOd1L3pO49aM5PWkAdBR07UtFMBOccCgdKO45oyKQC00njpTqPxoA9e+A/xj134D/tQ+HfiPoUX2z7IzRajYs2FvLV+JIj74wQezBT2r+gvXfCf7O/7ev7MGm6kt3/AGpbwkm0v7GRYNT0eYr80bZB29sowKngj1r+ZXAPNdL4Q8beMPh/4qXXfBPifWvCusKMfatNumhYjrg44YcdCCK87G4D2sueLs0dNDEezVmro/Ya4/4JI6Kb+b7F8a9YW13nyll8PozhfRiJQCfcAfSvzA/aK+EMXwI/a/8AEnwuttdl8SR6THbP/aElsIWlM0Ecx+QM2AN+OvOM16laft7/ALWNnYRW8fxXu5ljGA9xpNnK5+rNCSfxr50+IXxD8XfFT4tah458daqNa8T3yRLdXn2eOHzBFGsafJGqqMKqjgc4rPB0cVGTVSV0XXqUWk4Kx/R9+0u4P/BEXx+vIYfD6LP/AH7ir+fH9ms/8bCfgRgZJ8daXx6/6VHXbeJP2xP2ifFvwY1H4e6/49W/8IX2nCwubH+x7NN8GAAu9Ygw4A5BBr5/8M+IdY8I/ELQPFfh+7Flrui38V9p1wYlk8qaJw6MVYFWwwBwQQe9GCwFSlTmn1FWxMZyi7bH7b/8FaJA/wCzf8KCAcDxNMOn/Tua/C/uDXuPxX/aR+M3xv8ADGlaP8TfFv8Awken6ddG5s4/7Ot4DFIVKk5iRSeDjBOK8Oroy/Dyo0VCRniK3tJuQwk4Jr+nf9qBgf8Agit4+AOT/wAIRCc/8Bir+YvAOfevprxP+2N+0X4y+DupeAPEfj4ah4TvrL7Fc2R0ezTfCAAF3LEGGMDkHPFZ47Bzqzpyj0ZWHrqCkn1PGvhf4Oj+IP7QfgjwNPfyaXHr+rwWDXSReYYRI4XeFJGcZ6ZFfrgP+CR2nFQR8bdSAI/6F1f/AI9X45+GfEer+D/iBonijw/dCy13SbtLqwuGiWTypUO5W2sCrYI6EEV9Xj/goB+1p/0VRx/3ArH/AOM0YuliJNexdgoSpJvnVz7hT/gkbpfnIJvjbqvlE/Ns8OrnH4zV9ifC/wCBfwC/Yn+DmteK31WO0n+zY1fxVr0yG5nUfMIUAACqSOI0GSQM7jX4qXH7ff7WU9s8UnxWnVWGC0ejWSMPoRDkV86+Ofib8Q/ibrKaj8QPGfiHxbcoxaL+0bxpEiJGDsT7qf8AAQK4f7PxVV2qT0Oh4qjD4InuH7XX7SF7+0h+0w2t2kc9n4I0dGtPDlnLw4jJy8zjs8hAOOwCjtmvm3RNf17wz4hj1jw1rWreH9WjVkjvNOu3t5lVhhgHQggEcHnmsjHyAUuRivbpUYU6fJ0OCc3KV2enf8Lt+NIX/kr3xLz6/wDCSXX/AMXXovw1/a6+P/wv8fWmu6f8RPEXiO0jlDXWk6/fy3lpdJ3Vg7Ern+8pBHWvmwnFJnOR61FTDUpxtYaqzT3P6bfEtl4M/bb/AOCVz39nZRrJrWlNdaX5oDS6bqUQOFDf7MilCR95Sexr+ZIo8cjQyqyyRsUdT1BHBFfQ/wANP2rvj38H/hhF4N+H3jhtD8ORXElxHaHTLa4w8hyx3Sxs3JHTOK8Bvry41DWrzUbtke7u7h552VAoLuxZiAAABkngcVzYDCToSkuhtiayqWfU/Tb9gD9sbS/hFM/wg+Jt8LLwJf3Zm0fV5ASum3DkbkkPaFjzn+Fs54Jx+kHxw/Yo+Bn7SWpxeNmuLzw94ku4lYa/4cni23y4+VpFIZJeMfMMHpzX8z7bTwa9f+Hvx/8AjR8KLL7J8P8A4j+JvDunBtwsI7jzLUEkk4icMgyeTxzWGJyuo5udKVma0cXFR5Zq6P2p+HH/AAS9+CXgzxnba74r8Q+KfiIbadZYLC9WK2smKtkeYiAs445BYA9xT/22P2xfCfwj+DerfCf4Z6lY3/xE1G0bT3GnlTFoELLtLMV4WXacIg5U8nGAD+RPjD9sL9pXxzo02ma/8W/En2CZNk0GniKyWRe4PkopPp1r5pPzSs7He7Elmbkk+pNY0csqympVpXsVPGQUWoRtcH3FXLHLHkk9Sa/p0+A7r/w428EJzn/hWLf+kr1/MWeUr6c0L9sT9onw38E9P+HWi+PFtPB1npf9mW9h/ZFowW32bNhdoix+UnknPvmuvH4OVdQUOjMMPX9ne/U+a7SIXWq2lsS0YmnSMsByu5gP65r9nIP+CSmn3GnwT/8AC7tTHmRq+0+HV4yM/wDPavxgikkgu4bhGxNE4dGIzhgcivsWP9v39rKKBI4/imyoqgKP7DseAP8AtjVYqliJKKpu1iaM6ab51c+3x/wSP04MM/G7UgAck/8ACOKf/a1fWfwK/Y8+Cf7Kttf+PbrVpta8R2lq/wBp8T6/JHFHZQnG7ykGFiBAwSSzHpu5xX41y/t+/tZyROjfFSQBlxldEsQefQ+Twa8I+Ifxq+LXxWKL8QvH/iTxRbo4dLW6uiLdWGcERLhM8nnGa4JYHGVdJz0OqOJoQd1A+q/26/2srb4//FCw8I+CpZP+FaeHbhpLe4O5Tqd0QVM+D0RVLKnfknuK+BBxxjrzQFGOMD2ApwNexh6Cox5Y7HDUqOcrsOccCgdKO45oyK3IFpM80tH40AHegdKT8aWmAHpxSDpS5zSZ96QBk+lFHPrRQAuaTIJoxzRjBp6gGRnrS96KO9ACDpzRkUtFACZAFKOnrRRSATuPSlzR3o70wEyCaTALU6ikAmABik4xg07vR1p6gJkUZFFLRdgA6UncelLRQAmRQCKODQPpRdhYTgtS8E4paKQCDgDPWk4pTjvR6etABkUD65o5paYCd/agY7UtHegBODScHinUUXYDSBnpk0YGPQ07vRQ9QG8bc4o4paWkAg6UfypaOo5p7AJwaBjijvR3HpSAM89aMDPPWlo70wEHT3oyAKXrRQAmQBSjp60UUgE7j0paO9HemAnGRS0UUAFHeiigBvy0UuT6UUgP/9k=""".stripMargin
def encodeDecodeWithApacheAndSaveImage = {
val path = Path("test.jpg")
val decoded2 = Base64.decodeBase64(encodedPic)
path.write(decoded2)
val file = Resource.fromFile("test.jpg")
val encoded = Base64.encodeBase64String(file.byteArray)
path.delete()
val test = encodedPic == encoded
val diff = encodedPic.diff(encoded)
test
}
def encodeDecodeWithApacheAndSaveImageCRLF = {
val path = Path("test.jpg")
val decoded2 = Base64.decodeBase64(encodedPicWithCRLF)
path.write(decoded2)
val file = Resource.fromFile("test.jpg")
val encoded = Base64.encodeBase64String(file.byteArray)
path.delete()
//Image is still the same after decode encode even with stripping characters. Therefore Image integrity kept
val test = encodedPicWithCRLF.filterNot(_ == '\n').filterNot(_ == ' ') == encoded
val diff = encodedPicWithCRLF.filterNot(_ == '\n').filterNot(_ == ' ').diff(encoded)
test
}
def encodeDecodeWithApacheAndOpenExistingImage = {
val file = Resource.fromFile("./resources/test/android-eat-apple.jpg")
val encoded = Base64.encodeBase64String(file.byteArray)
val decoded2 = Base64.decodeBase64(encoded)
Path("testDroidApache.jpg").write(decoded2)
val test = decoded2.toList == file.byteArray.toList
test
}
def encodeDecodeWithScalaXbAndOpenExistingImage = {
val file = Resource.fromFile("./resources/test/android-eat-apple.jpg")
val encoded = Base64Binary.apply(file.byteArray: _*).toString
val decoded2 = Base64Binary.apply(encoded).toIndexedSeq.toArray
Path("testDroidScalaXB.jpg").write(decoded2)
val test = decoded2.toList == file.byteArray.toList
test
}
def encodeDecodeWithScalaXbAndSaveImage = {
val path = Path("testSaveScalaXB.jpg")
val decoded = Base64Binary.apply(encodedPic)
path.write(decoded.toIndexedSeq.toArray)
val file = Resource.fromFile("testSaveCRLFScalaXB.jpg")
val b64 = new Base64Binary(Vector(file.byteArray: _*))
val encodedByScalaXB = b64.toString
val test = encodedPic != encodedByScalaXB
// path.delete()
val diff = encodedPic.diff(encodedByScalaXB)
test
}
def encodeDecodeWithScalaXbAndSaveImageCRLF = {
val path = Path("testSaveCRLFScalaXB.jpg")
val decoded = Base64Binary.apply(encodedPicWithCRLF)
path.write(decoded.toIndexedSeq.toArray)
val file = Resource.fromFile("testSaveCRLFScalaXB.jpg")
val b64 = new Base64Binary(Vector(file.byteArray: _*))
val encodedByScalaXB = b64.toString
//EXPECTING FAIL //Appears that sun.misc can not handle images correctly with '\n'
val test = encodedPicWithCRLF.filterNot(_ == ' ') != encodedByScalaXB
val test2 = encodedPicWithCRLF != encodedByScalaXB
val test3 = encodedPicWithCRLF.filterNot(_ == ' ').filterNot(_ == '\n') != encodedByScalaXB
//path.delete()
val diff = encodedPicWithCRLF.filterNot(_ == ' ').diff(encodedByScalaXB)
//benefit of the doubt
if (!test || !test2 || !test3)
false
else
true
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment