diff --git a/Cargo.toml b/Cargo.toml index 0b88e48..49d5862 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rants" -version = "0.6.0" +version = "0.6.1" authors = ["David McNeil "] description = "An async NATS client library." repository = "https://github.com/davidMcneil/rants" @@ -18,7 +18,7 @@ bytes = "1.2.0" futures = "0.3.21" log = "0.4.17" nom = "7.1.1" -owning_ref = "0.4.1" +safer_owning_ref = "0.5.0" pin-project = "1.0.11" rand = "0.8.5" serde = { version = "1.0.140", features = ["derive"] } diff --git a/src/types/refs.rs b/src/types/refs.rs index d220ea0..81f24c7 100644 --- a/src/types/refs.rs +++ b/src/types/refs.rs @@ -12,13 +12,13 @@ unsafe impl<'a, T: ?Sized> StableAddress for StableMutexGuard<'a, T> {} impl Deref for StableMutexGuard<'_, T> { type Target = T; fn deref(&self) -> &T { - &*self.0 + &self.0 } } impl DerefMut for StableMutexGuard<'_, T> { fn deref_mut(&mut self) -> &mut T { - &mut *self.0 + &mut self.0 } } @@ -26,13 +26,13 @@ impl DerefMut for StableMutexGuard<'_, T> { /// /// The mutex is held for the entire lifetime of this reference so the lifetime of the reference /// should not be long lived. -pub struct ClientRef<'a, T: ?Sized>(pub(crate) OwningRef, T>); +pub struct ClientRef<'a, T: ?Sized>(pub(crate) OwningRef<'a, StableMutexGuard<'a, SyncClient>, T>); impl<'a, T: ?Sized> Deref for ClientRef<'a, T> { type Target = T; fn deref(&self) -> &T { - &*self.0 + &self.0 } } @@ -41,19 +41,19 @@ impl<'a, T: ?Sized> Deref for ClientRef<'a, T> { /// The mutex is held for the entire lifetime of this reference so the lifetime of the reference /// should not be long lived. pub struct ClientRefMut<'a, T: ?Sized>( - pub(crate) OwningRefMut, T>, + pub(crate) OwningRefMut<'a, StableMutexGuard<'a, SyncClient>, T>, ); impl<'a, T: ?Sized> Deref for ClientRefMut<'a, T> { type Target = T; fn deref(&self) -> &T { - &*self.0 + &self.0 } } impl<'a, T: ?Sized> DerefMut for ClientRefMut<'a, T> { fn deref_mut(&mut self) -> &mut T { - &mut *self.0 + &mut self.0 } } diff --git a/tests/certs/ca.pem b/tests/certs/ca.pem index f30cecf..e8a3309 100644 --- a/tests/certs/ca.pem +++ b/tests/certs/ca.pem @@ -1,22 +1,32 @@ -----BEGIN CERTIFICATE----- -MIIDkzCCAnugAwIBAgIUbu2Gos0ok+TVpEozUpQYuP6Au+MwDQYJKoZIhvcNAQEL +MIIFkzCCA3ugAwIBAgIUCtJtlP95OCc2OKdTUu+WKsuqoiwwDQYJKoZIhvcNAQEL BQAwWTELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTIwMDkxMDE0NTYxMVoXDTI1MDkwOTE0NTYxMVowWTELMAkGA1UEBhMCVVMxEzAR +DTI0MDYwNjExNTk0NFoXDTI5MDYwNjExNTk0NFowWTELMAkGA1UEBhMCVVMxEzAR BgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5 -IEx0ZDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEA26/ne5IKORbCOUpr0KXcQ+U2A4LObhDrqSJLlH2VkyKpRuq8iBjR -K4Lwk0wJGE/OWqr0yPq1r0uuGnZJWOm0+zwqDuv2sSe4UttVc5jW6b644Ls/dJPH -1d/aWGfQwQqoGCKP7auH/fHIdqQgxiV3QV+jFZzzpQV/R7M6sEFM+xS4StOEYcjg -YPndqOZq60/a2A4CTPSK9d9b3IDcDm+We2ywwSvuEB9NbcxMTUVVfxC5Nu1uqRdN -lAP0tHkzb1zGqY2xb/8L+UpykNjwPa68nr8OIN5te69ZtinpEBBTn/EaIWFJbN+v -FI9v1KaJ+EbA/GeTYvPCsLf4c6qYqSBzRQIDAQABo1MwUTAdBgNVHQ4EFgQUb/W9 -ERwsNgLcdZyGmVQ4CWiSTOAwHwYDVR0jBBgwFoAUb/W9ERwsNgLcdZyGmVQ4CWiS -TOAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAuVIk/WnaCoAV -qZYbw5aHuU2oq1vHFH6pYQfeMODN6kdLta1Bmsh2xNzcJc8wp7QsaCQ5LnZTf4vv -AzhvrFnYvNbd8vORiaYyvBnyZqJ6EhHiKwhWEH5Wp9sVFCLiSqbTlabJfM2DPZmp -+sd6mu6I7Vk1pe3yy+w5UMMWXllDkUuoWZZB4vWVul80OrJx3tJnP8JEPXOYuLxh -sLAziOmTwiPSSiu4bLD2A1vF8CtSQv8H7HfNQ9bCDFOIAS/1NmM3oteyER3vQfXt -MYmNMgtV75b7AY5O1gSoLw2vgvQSDkx3ulWgJVAHn2CZogVwf3EPCEs4inP1OW3T -oJzIRbxhfA== +IEx0ZDESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA+DcjLY9AkKBP3VNrUSNDmgMZJKFul0LdSuww/2rStTzGmiEoY9dN +zOHLd/+NNFQRytEnzcj0hNCQ6DGRXUbeZhN+G7kKjg7G71x88H6ULPwPYsfzpkDp +7VOsH/aBFCY0OsdPIPQaSXlOlkxaSGN3a4kY34oMzYUSraAT5UUnBfZBNPF2Xn2e +//T/N+SIJh3xWqIuVCXv+UxZWTiYQsdG74agy6PAknNuxC4GdzNOo9H6o7EupZfX +ZLn96BUgzcSFYpLQ6O119IiLZmSwafQrZxjssMrE0jC1g9C0/l3RuP0ogQFQ8LJN +HqOdLyFwYUSu8nNxiGFZ3IMB0MX5uKjwdiCiOtauh0yOV0G+5Kt3zxcPxOPIhFab +bJ88ZHC3rtplNqNpD0X9LM0D5Xx4pWpGJqI09RMYBMa44k6TydxCmyz9Zi6od+d7 +SEzmOLLIe3/bKXEzGNygMde0eFAUTkaV9luT54Dh4+ljNazHQVXSdfQUIwgJy/1V +M+DmiBaUB+gzx5Z5KGYXvXr5muW0Czqzyn1XhhF0EcUc9fEv/GZLmJujkVevCvqN +DHXOX0oVYW2Qvt9Cl25QTY5dAZA6SKJn6tYSH4AqfGJPSsTN9FWLxKInNgEp4PIe +Fl7KszFB28aVACDakV/z4n4e5p+szeOifSCym2sVt4Dd0XLAjVyJ/XECAwEAAaNT +MFEwHQYDVR0OBBYEFGVa5XZpjGLeJX1/dLrrZk/+7X86MB8GA1UdIwQYMBaAFGVa +5XZpjGLeJX1/dLrrZk/+7X86MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggIBAIFYz8egbAm/Ls3+iWyDjQIwiQNoV32WBo97V4hSW5Xtq98HacRyoHxa +/1PYEwvajj0xgb4YTEhlsXbBvWZNqc+90IiQh2UjawufsxBGnjcHq4r94Gh3zXkt +5tOCLrIUfbTsl9q9WfNhOzE4azycDLWImoXLOfrN7ogKWHwpAZ8jtmbrgkV3Sx1Z +6bWOt8SI6BJvz9Nq7GMDaTO98c0LqgYC7FgY03TnqGRA920Qw3ZuSE921ht3Z1M9 +BBTYLMXfwvZPFDRBu6cSZhiRKMfjnBeo7/oyVawFentpqo/opQDDBYVVSpqEKc9k +6K7glpXIYH5J3feMoLinRMCQ7b908w8+vDUi3Grbg5vkIlz9fYvybsItm4lFDrsU +mKMC04vZkXy4CUItnUNngHouKiAVBqYSw4v9iX2B3sjaJVLhj55imIVsmzEclNRv +hysLsimu3ngJOSPUbuKZyqqrHngdULpd5l6Sb8OIhnWwAPKXERjc08qJc5qzGB7l +YHr/AZUeWPHnP9zFnoA/TSUCzpK75+1dN2iy88FJ5EPObQQ2OvISlFlKManIpPfK +cLaP4G0xy5EvnYS7BnBPZYOsvSjIiSJk5x0YTCSYcNKjX3rPfDa8kKaM3lVIi5Le +t5iHpoeZ3ltpRTStEEgc/G1+SDBLbS9stK1/L/NDZ6+VHQowSgRD -----END CERTIFICATE----- diff --git a/tests/certs/server-crt.pem b/tests/certs/server-crt.pem index f9190aa..6921595 100644 --- a/tests/certs/server-crt.pem +++ b/tests/certs/server-crt.pem @@ -1,22 +1,33 @@ -----BEGIN CERTIFICATE----- -MIIDpDCCAoygAwIBAgIUfc3g6/ICnRf6GywQCWT9Ew/XaM8wDQYJKoZIhvcNAQEL +MIIFtTCCA52gAwIBAgIUQKP2IN6TWUSjWdFojBhFKwgM6kswDQYJKoZIhvcNAQEL BQAwWTELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTIwMDkxMDE1Mjg1M1oXDTIyMTIxNDE1Mjg1M1owWTELMAkGA1UEBhMCVVMxEzAR +DTI0MDYwNjExNTk0NVoXDTI5MDYwNjExNTk0NVowWTELMAkGA1UEBhMCVVMxEzAR BgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5 -IEx0ZDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEApvDRbtavHxduHMhmkoWIIP5jYH149wNqmnyuVjk2qOl91Gs/JdUw -6/eBqdAEBrXxJebbMmLM1l+EEIUcmWzR2/YMyf//Q6i7QoGZyrlh31aTYzI9EZbx -pazvRmuMElURM/WEPkU1y0HbrLbOwKogKScoJ/OB7HFOV4KVnOGG56ChYsKhOh0q -shF/BTL0QRIlDGFuxoXdmG8R+miHuavFET7M6pB1Q1zrJAdMGlul9R50n+qG3hV8 -1ZFaNDjypldrR2zRkAuCMfUsVOOxWuGgyFofqvyntbE68OgPk94rVqWm4uvrXq0C -c9EdI8IS4fCijT/IKy6uXLRoBkhhWt0EnwIDAQABo2QwYjAfBgNVHSMEGDAWgBRv -9b0RHCw2Atx1nIaZVDgJaJJM4DAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE8DAnBgNV -HREEIDAeggtleGFtcGxlLmNvbYIJbG9jYWxob3N0hwR/AAABMA0GCSqGSIb3DQEB -CwUAA4IBAQBosQtE/qN/T02r3CbbmUsCiRSyv5Pn+Dglga9dVMD15E0ta5isTL+W -WBOC/m9ofDm4ZWsYvcnYc7azyPkkQl8RZ3LG0VvKuD9zOU+wH/Dk4HR3ABOaolY2 -mgs2GnFX2HdeuGjOddYuabBYvVZrTQcQmEUPvWrlNQjSzvC1v5T4o3m494pnFpdh -koNBhvibHhnp+YCPZSG1zWnv3Dm54pyFICDrAAXZvodsIkbe1Av7hg3xQSFhktGN -1E9aDwEQ1gEpzKl5n8Xy2N4M8PSGfM9z4JP8uH3t+XXvyQQc7jC8m3olsKBKaQzD -WpqGZHoCge9yupHuSVUZRt8WgKZuqzt9 +IEx0ZDESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAuDNj6qc+r8d7lgsoemMFaZiqnbUcyh9FyHjwOOHL1hGlXeHc4Flo +WxkF4oBmk68bRbP8jiZfJSbf12STvF/41DcrFIxiPIaqTVrNxgA1/jxe7W8jPHl+ +aMK4LNUhK6erdItwslYee0Oyp9KCQfGLV9VMAWfaXoCqCxGXXAE6/967e/wJ82yv +4xMKT8a8dre1I6RfiRBjrh8LegAcNvPWE6PouaWOuH2TSr//K1zkYtWRKWyhpbQB +SaGtPhnxyXITOl3wZbczLbobhlXykBP9oogJRLriwt1H4LMKI+2p53DLZk8Opvqf +AeAvlxwlaGBwjbfdKmkm8biHFaJ1/NIzDa8wADHe2bLsGWDNBvIKqNvOQ3xRjxQO +ueH76P+5mMzTW1c22/qCu4sOIOFZRo/d62bwJ8zVqmToMMN4gd3Yu4rX23B4WK7b +JqE8RH/4kM9Q+qCaG/Y/uUuTAcV4zTU0mxKNm0wrbpT/p4dan3gYbNc4JQAwhzqY +4YjH/EpGtq8XyI6FYnb3XD919qu4Skdx5E88UMjeCXcagf7KhMcZgUoxNx8Qxos9 +Ay/26fTKr9iRSQ1oGOnN9UUeF5K8N3yPab50af4pGzGcdVrXPRfzm9ffyCNxfqJ9 +FaBANffHiBaedXwRWxdYq01it8Exjr9h3gzIJRrSn3FzRNOS0LLruE8CAwEAAaN1 +MHMwMQYDVR0RBCowKIILZXhhbXBsZS5jb22CDSouZXhhbXBsZS5jb22HBAAAAACH +BH8AAAEwHQYDVR0OBBYEFK+O5HcDul7p6SS/gyTfwVDyyZSRMB8GA1UdIwQYMBaA +FGVa5XZpjGLeJX1/dLrrZk/+7X86MA0GCSqGSIb3DQEBCwUAA4ICAQD3TIe7CRN2 +WkqYhEutD2FalJqfeQzBjm8Usf7O+OIwwboPh91f6wxKFSBaqNzZzgbKoXA4Edqb +8xN99bzX84qh0TZhga8UXSf+gRitCa9DHx5sH+kvIKJtab1+EFNgqoEc21wCxUTs +94TV+3GFm/mueTFImZPeFnbFwgWtYFudS4oF9uAaZedRGsiJxepUVxenMGrguKnK +kCUbP86MSfnGbdjUp2/YDFtmZQmZNffk7F1iEnpjdDc3aFQ0HLvBqvVxR5sm+Tpa +5QdClSCSmyfyDW16+rsgdCmRjFIgC+mZaudH84HtvMYKw3uWfm6qK5yMVhgb4o4F +Ug/Nsl3dLqIxz8Bu4T1qmZsI4D3wRhYtoYRBB/OR9ETo+WtenYgJkdLTtboX3C3e +jLCBhhdamEBE1txA5hpzc5C21Gxzl6BM/RvU+Nd9m1lfukAVjReIwBquGuUOgDnL +GIwVahDYHjhSnE3hMmvuZse0loITp+YGba43JVOTlMZa680iR9r3Z8UjeQ9O3Jh2 +XcE6XD7GKOd4tRCFnJzsZW32+edbcwSjZbumtgjD2BJNQiRwQj5gEjDW71a1OTyD +qvR9Z7fJvgBYzkvBlMW1Ug+m6ta7iZlw30aJNkc0GHa6BKGvsXDnA7pu1dVE3pSI +WugHYW6SUu15074USKoTY02XlnNVPWft9A== -----END CERTIFICATE----- diff --git a/tests/certs/server-key.pem b/tests/certs/server-key.pem index e217d10..b86d1c4 100644 --- a/tests/certs/server-key.pem +++ b/tests/certs/server-key.pem @@ -1,27 +1,52 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEApvDRbtavHxduHMhmkoWIIP5jYH149wNqmnyuVjk2qOl91Gs/ -JdUw6/eBqdAEBrXxJebbMmLM1l+EEIUcmWzR2/YMyf//Q6i7QoGZyrlh31aTYzI9 -EZbxpazvRmuMElURM/WEPkU1y0HbrLbOwKogKScoJ/OB7HFOV4KVnOGG56ChYsKh -Oh0qshF/BTL0QRIlDGFuxoXdmG8R+miHuavFET7M6pB1Q1zrJAdMGlul9R50n+qG -3hV81ZFaNDjypldrR2zRkAuCMfUsVOOxWuGgyFofqvyntbE68OgPk94rVqWm4uvr -Xq0Cc9EdI8IS4fCijT/IKy6uXLRoBkhhWt0EnwIDAQABAoIBACR/UcphtTee77vr -NEGkX/aWpzNZOzEF1jCgQZ0oNQMIyTG/oLasvV1ZZ0ew6rBs5qParOF/KDlV+JGE -CJSibd8hE/q1tSEdqpMHso/Xp8YkL2TofuFxlrMZ89X5fU4kuvYZHyheCTy+0UAZ -V2pXx2A351eUrTr8KpyHOB5sUAojgZyhuRJ8WtRvXkUwxwQTLjcfhALX89c4cXg8 -QcyU/5vnvIkxF7x+2ricO/SG44ZeHr6AfNWVc0cpp0PURHFHKxBtBEisUVEF8guJ -doNWUGgqNX7UzA48ApmsToFe6NY+qtrEcoDe5WrnI//X6XSw7DWcKVL/GIVGV05s -2qG99AECgYEA2omQU0CE6DLd1wXzNtI9ojPx+a8iXqftfuYpqS/7FrSL3lu5zFzi -UzztpSULsJew0fxjftkherThc+f/sb2nRawsy/5QbF5VKq/E3di5ntSlYyC9CFIe -NsqtGW5F2Duq0Grdi1ddSpjqfusAk3m/U9vc7ZjY4G+nfe4+rLZv+0ECgYEAw47z -4dboNZ5SoA3YduDawmlFYMCOHVQOf3wO8vZ8k8J7Uk+z6NYQ+hwmAZEQEJJtr9lt -rACfzZZhBsoWg9jmhz1WzrkHF5bj2L0SNgyTbeWCLbo7/2NuH6J2RvKc2/JlBS8H -IlPmjBWRBLnCC9Ts0xQmH+k7uh9ic6gv2dS6Z98CgYB7eOXWY8mz96lnZ7E29Cpm -jrrUu6LLoE2LOTeoo7dV6MRt6Z1cXc5yASaz++5S5CG/Qr5kWQGVdsU624WYQvNT -ZigZSaLe151+9LhiL6UQnEylaUXkgaEYjAKpL6i+t1eXUgnCRKYtE6DJ/LTinhL/ -qmV0yLsgc3VKrWUz6A/1AQKBgD4bkp0xMcKFq9wlSZBHzXJdGKmnvfrWjVwzvFOx -sNMEu0HjClJyWiX09qUcuytoNenZdhlggWA72EjdudTZ+C0PcBhrbzMwuuBE/Bmq -WNBYScXYFeIAZCMr58CUoPjBvQ+uZeejGd93of0MOfKkByrqhUkxO8Ta3tu4mKno -A+OlAoGBAIVecZb7jq5Agsxw4VDNcMa6OrJl8tqRf5pAC+wdtGzCv9nlNA4IWCud -DnHG0hh9HXUdF2Fkx1ziFI/0mg3wACaYnSD4M3whroO1FRYfBTAl7NzIJfXkbP+S -uosGEoebhN74zdW8lHoNyhd21F1n+pnou6qKI4iT5RDhV7qzspSJ ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC4M2Pqpz6vx3uW +Cyh6YwVpmKqdtRzKH0XIePA44cvWEaVd4dzgWWhbGQXigGaTrxtFs/yOJl8lJt/X +ZJO8X/jUNysUjGI8hqpNWs3GADX+PF7tbyM8eX5owrgs1SErp6t0i3CyVh57Q7Kn +0oJB8YtX1UwBZ9pegKoLEZdcATr/3rt7/AnzbK/jEwpPxrx2t7UjpF+JEGOuHwt6 +ABw289YTo+i5pY64fZNKv/8rXORi1ZEpbKGltAFJoa0+GfHJchM6XfBltzMtuhuG +VfKQE/2iiAlEuuLC3Ufgswoj7anncMtmTw6m+p8B4C+XHCVoYHCNt90qaSbxuIcV +onX80jMNrzAAMd7ZsuwZYM0G8gqo285DfFGPFA654fvo/7mYzNNbVzbb+oK7iw4g +4VlGj93rZvAnzNWqZOgww3iB3di7itfbcHhYrtsmoTxEf/iQz1D6oJob9j+5S5MB +xXjNNTSbEo2bTCtulP+nh1qfeBhs1zglADCHOpjhiMf8Ska2rxfIjoVidvdcP3X2 +q7hKR3HkTzxQyN4JdxqB/sqExxmBSjE3HxDGiz0DL/bp9Mqv2JFJDWgY6c31RR4X +krw3fI9pvnRp/ikbMZx1Wtc9F/Ob19/II3F+on0VoEA198eIFp51fBFbF1irTWK3 +wTGOv2HeDMglGtKfcXNE05LQsuu4TwIDAQABAoICADZ7mNOoyT1j4xWj0kK09D5i +FiEUl2HfcxwTTXZ9rvVv/boxmsvPFjNPyPJQaUbIdegdjxeamOzbvTyv9pSyzF40 +vSzUQyBE8q1zrMaifFXpFGjlRQZXp0CkS6aTGb8YVnnf3qMZHuX1xaum87k+kSkX +IWaPCcOHCgTBHMRtZr6U6l6HU4gpPzMKiDPFhCwXNWBH96wKaXlwnEvnKXFFmS3w +/t6ebgL6vazP8lEopjLnmYqno35oKjNVu3DRardbYv2SGI91axFc6VRIKrlb+Frx +ItCt+HGL0v1O57Jt0yHuNnNZ8esI2SxMW7c174iaceAxIJ0xQgAgRPBsv7pakBe7 +zMXzFr1whAsY8aoZz3dgbFhQ75+keg1DRE0xRvskEcuMOJKoC+8NdcrgyzUNranV +iflvIcE58zwQykXvdaVhtiZwVag0URSlIHc+efSlOUVQod8mg4jBZgvTXPTGEkYY +tnHtKcG2+6CPxnCdLb/1iyI+np8VdiNJ4GC+lusbOafxD1bvYPdFXk9zIw+dQBhG +RCnllED2EvDMslf5BzXqPu2h2lTKnAKikxt+8AbXRNWBaW0b49ROOkas0LcPP3v0 +7He0t/WKWFZrJW7jT47MUnjdorXv69jB4cOfVsUCw3IsoTenJk2aMwJgwFXFI9tF +YmapSUVj108gYkrpf6aNAoIBAQD6xuUGgLbvhqkhlxTIqzb0kTHOg0aomrYKqkGT +C2Y6MHTyb0gOgt0VBd1/RQcAFDJYWESm5e0nOh0YVeRrEj0uLqXbXqUwu5qW1gAn +KwUtwsCCHX33rSxa7mnfgEo4dBmvv+ISHVS7I3RmormDFEI9MdRMKmLeguUTwF0a +fw12xbCILfFk42379962d8x2Oxn+6y3jjuHYgaTmefOevuwHF5V5SbntBWww/fia +OeFF5T6k6EKBUFxElqbXdcv/aQctqhx/n+iNLaDRqcgfOemsg4JtjiraLvayYRZl +W3ljFCPT0p02GDeNF0+0UuTSMlmSETBj5OZhoR3mg1Sp99J7AoIBAQC8CYV04Pi0 +OphmttwiNRv4c0B6kn8RDXh0zFQ8d9WZUCI9BtM0m3Pd5XJUsXkLTgm0u5JIqQis +YHSyH6CdZDT0tndxbbacF2mRsPbYgaWABosucbzphNvIhJCW+rjQ/DkAb1rswxVe +8YOpcclsTGxujEH0dAzCPBOpIH6Zp1lRuENfPKcK2vFosakVip9YIM0fN1yf2sd4 +7wYolvmQD74z3lsifjABZLg1gwPa+mHNB2fcOLos3UnymF9N8MVwNrLoea6vPTKw +7YXJQCFfJgbggmqlv6zxozUc61AT602n61ItiEqLFkYrTFRy0GF4QsYNfRditJv/ +5C3jzckEm2M9AoIBAQDGM26NvitXknGYN8VYeGG92AeqdXziAyz/ruKW6jqIoQW9 +GpCzz2AWnoUacp7+w/eqdVEFK9JM35RhSHl42nh6SKoTgHFE2/FpZ4fFbS3xpevq +qo6Fs1vMHoSU/dsrVS98BUcTFBWEtpfoCpJedCOKJBjrfdCYlpGhE7dCGsq0ZbiJ +WO5h05J4w8ZFJtf1Ve7M2GlzYdlD+esvsZEHlVQMouoja07EczW4XvIeSsKuMGpb +gaoWdEIIf50ry1FI82SWBc3yXJs7AaYKL4sYivgRvfrWxbc+rEGUaEGAKFT/JsrO +Pra8K1W0cIkxNxbcvqimVmmNejtPTDzKlF/U2iaDAoIBAFUCxPhDYY0x1IbTcxBw +DFY13NfNdW8DNQsw+YBg+QuYI/KNLF1jTm3qdtb9aWkH/fFcv9Tjvs0XyophLB8c +F6ju+W8pl95X411/sQnPC0CnNLNprmuwqiCsdiYb8gRhk2+z6FqUFAxZihnIHLU+ +k+MivArFkKMbwBO9Yh8bfpEoiiT7adXJiEy5zWS0yDdylOnhAJowse/luFYPc4KC +643NoEwm2pM2suVWdx7ABglIqNbyOpFf9jecVbIKAWkrAZWCtcv6EfnVWJ/Uw4Gd +0owbyhVnY8vW6oNJi2mF/xTEmeGF9ZWOG2kl2CQUO4zAO4QLos/4MXLt+SU9evz/ +N00CggEBALsOasrnsujqmn/RGLdM3VvrpmZbKmQ5rTxhtDkEwQQseHTLoKAjGbWo +TThVFkHvStqpv0iCFLx84P22bSMsNoW537vbibOehak3LS6Pq55djclEG/8MHYle +RdKIeoXjG6BvdWuHKoaLqX8KSZnzCCSQ17rCjp8VwzeBBoSpOtzWT2SlNe3JaYmA +lBmYFwdu1gdL7nvHGW8zzG9mVhhS639pMxBFMY3/CNeTxo47Dg6Gfymi6XLuvfSO +aS9rs6WCeqCzuxtaSt6MQM+AJJ2MBoZUqSQDDgxIo6ob2xqPwpO3Ap5KOqIfqwIL +i6tYHmxqHZyupBrZdXvw+n/bbnSAO7I= +-----END PRIVATE KEY-----