From 22cd3ae3f7ef98b5a7786238de8190ef23fefdfe Mon Sep 17 00:00:00 2001 From: ThioJoe <12518330+ThioJoe@users.noreply.github.com> Date: Tue, 11 Feb 2025 12:13:26 -0700 Subject: [PATCH] Update publish-all.ps1 - Get assembly version from .csproj --- publish-all.ps1 | 224 +++++++++++++++++++++++++----------------------- 1 file changed, 118 insertions(+), 106 deletions(-) diff --git a/publish-all.ps1 b/publish-all.ps1 index 4d85379..14cacf7 100644 --- a/publish-all.ps1 +++ b/publish-all.ps1 @@ -5,7 +5,22 @@ function Get-AssemblyVersion { [string]$runtime = "" ) - # Base path for obj directory + # First try to get version from .csproj file + $csprojFiles = Get-ChildItem -Filter "*.csproj" + if ($csprojFiles.Count -gt 0) { + $csprojContent = Get-Content $csprojFiles[0] + $versionLine = $csprojContent | Where-Object { $_ -match '(.*)' } | Select-Object -First 1 + if ($versionLine -match '(\d+\.\d+\.\d+)\.(\d+)') { + $version = $matches[1] + if ($matches[2] -ne "0") { + $version = "$version.$($matches[2])" + } + Write-Host "Found assembly version in .csproj file: " + $version + return $version + } + } + + # Fallback to checking AssemblyInfo.cs if no version found in .csproj $basePath = "obj\$configuration\net9.0-windows" if ($runtime) { $basePath = "obj\$configuration\net9.0-windows\$runtime" @@ -15,42 +30,39 @@ function Get-AssemblyVersion { if (Test-Path $assemblyInfoPath) { $assemblyFile = Get-Content $assemblyInfoPath - # Use AssemblyVersionAttribute. Ignore the last version digit if it's zero. - $versionLine = $assemblyFile | Where-Object { $_ -match 'AssemblyVersionAttribute\("(.*)"\)' } | Select-Object -First 1 - if ($versionLine -match 'AssemblyVersionAttribute\("(\d+\.\d+\.\d+)\.(\d+)"\)') { - $version = $matches[1] - if ($matches[2] -ne "0") { - $version = "$version.$($matches[2])" - } - Write-host "Found assembly version in AssemblyVersionAttribute: " + $version - return $version - } - - # Fallback to FileVersion. Ignore the last version digit if it's zero. - $versionLine = $assemblyFile | Where-Object { $_ -match 'AssemblyFileVersionAttribute\("(.*)"\)' } | Select-Object -First 1 - if ($versionLine -match 'AssemblyFileVersionAttribute\("(\d+\.\d+\.\d+)\.(\d+)"\)') { - $version = $matches[1] - if ($matches[2] -ne "0") { - $version = "$version.$($matches[2])" - } - Write-host "Found assembly version in AssemblyFileVersionAttribute: " + $version - return $version - } - - # Fall back to AssemblyInformationalVersionAttribute + $versionLine = $assemblyFile | Where-Object { $_ -match 'AssemblyVersionAttribute\("(.*)"\)' } | Select-Object -First 1 + if ($versionLine -match 'AssemblyVersionAttribute\("(\d+\.\d+\.\d+)\.(\d+)"\)') { + $version = $matches[1] + if ($matches[2] -ne "0") { + $version = "$version.$($matches[2])" + } + Write-Host "Found assembly version in AssemblyVersionAttribute: " + $version + return $version + } + # Fallback to FileVersion. Ignore the last version digit if it's zero. + $versionLine = $assemblyFile | Where-Object { $_ -match 'AssemblyFileVersionAttribute\("(.*)"\)' } | Select-Object -First 1 + if ($versionLine -match 'AssemblyFileVersionAttribute\("(\d+\.\d+\.\d+)\.(\d+)"\)') { + $version = $matches[1] + if ($matches[2] -ne "0") { + $version = "$version.$($matches[2])" + } + Write-Host "Found assembly version in AssemblyFileVersionAttribute: " + $version + return $version + } + + # Fall back to AssemblyInformationalVersionAttribute $versionLine = $assemblyFile | Where-Object { $_ -match 'AssemblyInformationalVersionAttribute\("(.*)"\)' } | Select-Object -First 1 if ($versionLine -match 'AssemblyInformationalVersionAttribute\("(.+?)(?:\+|"\))') { - Write-host "Found assembly version in AssemblyInformationalVersionAttribute: " + $matches[1] + Write-Host "Found assembly version in AssemblyInformationalVersionAttribute: " + $matches[1] return $matches[1] } } - else - { - Write-Warning "Couldn't find assembly info file at: $assemblyInfoPath" - Write-Warning "Couldn't find assembly version. Using default 1.0.0" - return "1.0.0" - } + else { + Write-Warning "Couldn't find assembly info file at: $assemblyInfoPath" + Write-Warning "Couldn't find assembly version. Using default 1.0.0" + return "1.0.0" + } } # Create results directory @@ -106,10 +118,10 @@ Get-ChildItem $resultsDir -Filter "*.exe" | ForEach-Object { Write-Host " - $($_.Name)" } # SIG # Begin signature block -# MII98gYJKoZIhvcNAQcCoII94zCCPd8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MII97wYJKoZIhvcNAQcCoII94DCCPdwCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBtnaM9gGxQh52m -# Cqr1+k2OTAlKgpr5yLqSDSs0Lfdk5KCCIrQwggXMMIIDtKADAgECAhBUmNLR1FsZ +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCEFWZ0l1vdQwF1 +# y+P7J99doh1iLLk1MvVY7QV/4WY9zqCCIrQwggXMMIIDtKADAgECAhBUmNLR1FsZ # lUgTecgRwIeZMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVu # dGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAy @@ -294,28 +306,28 @@ Get-ChildItem $resultsDir -Filter "*.exe" | ForEach-Object { # Dwqq/jwzwd8Wo2J83r7O3onQbDO9TyDStgaBNlHzMMQgl95nHBYMelLEHkUnVVVT # UsgC0Huj09duNfMaJ9ogxhPNThgq3i8w3DAGZ61AMeF0C1M+mU5eucj1Ijod5O2M # MPeJQ3/vKBtqGZg4eTtUHt/BPjN74SsJsyHqAdXVS5c+ItyKWg3Eforhox9k3Wgt -# WTpgV4gkSiS4+A09roSdOI4vrRw+p+fL4WrxSK5nMYIalDCCGpACAQEwcTBaMQsw +# WTpgV4gkSiS4+A09roSdOI4vrRw+p+fL4WrxSK5nMYIakTCCGo0CAQEwcTBaMQsw # CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYD # VQQDEyJNaWNyb3NvZnQgSUQgVmVyaWZpZWQgQ1MgQU9DIENBIDAyAhMzAAK5B7Gc # zjpXwC3oAAAAArkHMA0GCWCGSAFlAwQCAQUAoF4wEAYKKwYBBAGCNwIBDDECMAAw -# GQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIPnKwGsf -# 32igQ6WlXcnadvKXxPVXc++v2mksewJFXJQzMA0GCSqGSIb3DQEBAQUABIIBgDEm -# Dgj3q06n5FRd+Xg2xVAJWnqAKLIzIqbBRlOnSJNdvN07xq9bkVTQ97+IrSUbHWFB -# OAT50MQw7VyIrzhuC27WWFIHIxIyWAo6Al+1yz+mEin34ajTrkkPjIsWpGHUPDTZ -# tbD3UkePdp+SmzogbTEEKKuEE2NWdfeKny97+EVbzdfta9twfqWGT02eupZyzD3v -# 4DuG2mU6uXLNR4RggumgigAUhiG+KesXq+Wcn4dZDmGClzue91/3DlAeAZqIw2nc -# +tKtDmzlo1/JZG2tukDqkdbWbkiQ8iEqb1a2T3dNsZoMi83lEfbz7pYL3Lmp3VBU -# VQy4WYEGIpehQO2X8Mu7a1XPpQXUAG1ryLBnfyt21ollCAJ8aQlJBuW3wPuprjen -# QweJ0HvCzDYpYcwVLODowIwvZZ1b1WrLsy0ZV+oIBhLBUrSD9TSiZBl/3LWzttEu -# eac8TVOpofWGDimhHpm2xkakV2u2nBSw7+plZqJjdBOMNH20hvBY3xB31XQJiqGC -# GBQwghgQBgorBgEEAYI3AwMBMYIYADCCF/wGCSqGSIb3DQEHAqCCF+0wghfpAgED +# GQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIB+FMDfc +# GlYwD9E/URJ9ZnrgkPsncO/0hkxfx882/aiFMA0GCSqGSIb3DQEBAQUABIIBgFX0 +# st+UFuRnIr5SbmLFlDWZNmsimzm5PiD/PzoR3aBJAz74whRwh50g3alSm3Aoum4h +# d0x9b5alkTWpFZceCJbAlgJnae/CfIu7WW/O5Ltzl3JiIBwXe8g7CLoLuCXDO1Ta +# L+siAN9la1BYAg4kYNJHxluqViVwaXlANEgEFynOGytw3VZB0dD70JHHi/j7CYaW +# 7Y1uk7kUJpuim0YVEqY3EOtwdSXy7P16fF6OIruKM6mr3oBsDpWSg9CxuVjm0J/s +# PTbopYbJBwkM/ag9FTGDzpbezQiSbfvlDnTbE6R11Ldqqor5RMW18MdEZYrsXAYi +# iJHmJUQsVuvXYmzkjNbqFyXNczEbEf3AD+rsqDc7kjFbi4pGzqp54a9mPT0lD88M +# KefEukuIyNGRSVe0XnUoXfGWZuEZTGpQw6slnp95vQTbIE/gSh6ZB/lJwvbCskQJ +# 8DiaHhmXBVT/njCIMg8FY/u7HRFbBUz8HCkU46ha4s4FBkLIms0HXL18BBCwTqGC +# GBEwghgNBgorBgEEAYI3AwMBMYIX/TCCF/kGCSqGSIb3DQEHAqCCF+owghfmAgED # MQ8wDQYJYIZIAWUDBAIBBQAwggFiBgsqhkiG9w0BCRABBKCCAVEEggFNMIIBSQIB -# AQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCBp35EZy59qvEZnCHoaum3R -# uwcVM5z4u2kSG9D3xt4uRwIGZ5GZwE5NGBMyMDI1MDIxMTE4NDg0My41MzZaMASA +# AQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCBULmmQ1AbRwprL7klRk4a5 +# 535siOHPy/qsPWsIioSi5QIGZ5dsB5/8GBMyMDI1MDIxMTE5MTI0Mi40NzRaMASA # AgH0oIHhpIHeMIHbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u # MSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQL -# Ex5uU2hpZWxkIFRTUyBFU046QTUwMC0wNUUwLUQ5NDcxNTAzBgNVBAMTLE1pY3Jv +# Ex5uU2hpZWxkIFRTUyBFU046N0QwMC0wNUUwLUQ5NDcxNTAzBgNVBAMTLE1pY3Jv # c29mdCBQdWJsaWMgUlNBIFRpbWUgU3RhbXBpbmcgQXV0aG9yaXR5oIIPITCCB4Iw # ggVqoAMCAQICEzMAAAAF5c8P/2YuyYcAAAAAAAUwDQYJKoZIhvcNAQEMBQAwdzEL # MAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjFIMEYG @@ -357,27 +369,27 @@ Get-ChildItem $resultsDir -Filter "*.exe" | ForEach-Object { # F0fx6URrYiarjmBprwP6ZObwtZXJ23jK3Fg/9uqM3j0P01nzVygTppBabzxPAh/h # Hhhls6kwo3QLJ6No803jUsZcd4JQxiYHHc+Q/wAMcPUnYKv/q2O444LO1+n6j01z # 5mggCSlRwD9faBIySAcA9S8h22hIAcRQqIGEjolCK9F6nK9ZyX4lhthsGHumaABd -# WzCCB5cwggV/oAMCAQICEzMAAABIVXdyHnSSt/cAAAAAAEgwDQYJKoZIhvcNAQEM +# WzCCB5cwggV/oAMCAQICEzMAAABLobGt4Vn85zQAAAAAAEswDQYJKoZIhvcNAQEM # BQAwYTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv # bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENB -# IDIwMjAwHhcNMjQxMTI2MTg0ODUyWhcNMjUxMTE5MTg0ODUyWjCB2zELMAkGA1UE +# IDIwMjAwHhcNMjQxMTI2MTg0ODU3WhcNMjUxMTE5MTg0ODU3WjCB2zELMAkGA1UE # BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0 -# IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE1 +# IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdE # MDAtMDVFMC1EOTQ3MTUwMwYDVQQDEyxNaWNyb3NvZnQgUHVibGljIFJTQSBUaW1l # IFN0YW1waW5nIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -# ggIBAMt+gPdn75JVMhgkWcWc+tWUy9oliU9OuicMd7RW6IcA2cIpMiryomTjB5n5 -# x/X68gntx2X7+DDcBpGABBP+INTq8s3pB8WDVgA7pxHu+ijbLhAMk+C4aMqka043 -# EaP185q8CQNMfiBpMme4r2aG8jNSojtMQNXsmgrpLLSRixVxZunaYXhEngWWKoSb -# vRg1LAuOcqfmpghkmhBgqD1lZjNhpuCv1yUeyOVm0V6mxNifaGuKby9p4713KZ+T -# umZetBfY7zlRCXyToArYHwopBW402cFrfsQBZ/HGqU73tY6+TNug1lhYdYU6VLdq -# SW9Jr7vjY9JUjISCtoKCSogxmRW7MX7lCe7JV6Rdpn+HP7e6ObKvGyddRdtdiZCL -# p6dPtyiZYalN9GjZZm360TO+GXjpiZD0gZER+f5lEFavwIcD7HarW6qD0ZN81S+R -# DgfEtJ67h6oMUqP1WIiFC75if8gaK1aO5+Z8EqnaeKALgUVptF7i9KGsDvEm2ts4 -# WYneMAhG2+7Z25+IjtW4ZAI83ZtdGOJp9sFd68S6EDf33wQLPi7CcZ9IUXW74tLv -# INktvw3PFee6I3hs/9fDcCMoEIav+WeZImILCgwRGFcLItvwpSEA7NcXToRk3TGf -# C53YD3g5NDujrqhduKLbVnorGOdIZXVeLMk0Jr4/XIUQGpUpAgMBAAGjggHLMIIB -# xzAdBgNVHQ4EFgQUpr139LrrfUoZ97y6Zho7Nzwc90cwHwYDVR0jBBgwFoAUa2ko +# ggIBAJ2dirN/NIMtny38hycGFn9VLvt/PswhQprUj2YOOclE091Vai+aBTlRsBEJ +# ssIgjNmPwnT9gN7IkENgVPJJcCBoeUPDTqtQFyvKrZ5rGhZ9KFMdJ2U6fLOENTDw +# ZcZglPXH+r6cabqTWiu7BbbCtg1Hzr9DmyvVdgImUzzK15ZokW9kkYTq8I49DGeL +# +UQ3aqhOurZ6OalVUw+eCRf0gwLKuXFq/jSALXlZNTt1nejX1tCzu752vNvM43Qy +# 0qyprW8MWwe6q8farVLbXMROZ53+WWZMrlBpEsuGTlYJ33DWf8OjmAdquDom/zrW +# 5IKoB0x02cjfh+dOwhGdoS0IZYa7tbVl3tuUdKWKAFoYAsgLrW8nNaPUxvwnGGGa +# F89fbR3qcHUmmabiog/8VbTa4LElKr0V7zOJ52+WDibVoKqNZfRDnrr+LtWJ5Ww4 +# DevHXFFd4hsAOazGfDfpiVmiGypESxlQyNBnh7pwJ8oCVo7TZxrsaLMhGfuY2/Mc +# 1hzjuBAIUQL5iBfZIu/DhvpHlNqrjdcnSF+EPA9I+JPrR3JKMtQhyYNyza8jzvy3 +# dbESXZqf0ckJpg8q9X9RnUDL0eORIlzdmohe+AaWHVUjuQKk9MFrJjtELQjMmXlr +# v4MzsVwGF6L2HV4nwB1mzNVxQaT4uQX66pTcYCeNhp0kL/HZAgMBAAGjggHLMIIB +# xzAdBgNVHQ4EFgQUIJkaxS9FUX/NOhFaQTclhaa4dCYwHwYDVR0jBBgwFoAUa2ko # OjUvSGNAz3vYr0npPtk92yEwbAYDVR0fBGUwYzBhoF+gXYZbaHR0cDovL3d3dy5t # aWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwUHVibGljJTIwUlNB # JTIwVGltZXN0YW1waW5nJTIwQ0ElMjAyMDIwLmNybDB5BggrBgEFBQcBAQRtMGsw @@ -386,55 +398,55 @@ Get-ChildItem $resultsDir -Filter "*.exe" | ForEach-Object { # MjAyMDIwLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMI # MA4GA1UdDwEB/wQEAwIHgDBmBgNVHSAEXzBdMFEGDCsGAQQBgjdMg30BATBBMD8G # CCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3Mv -# UmVwb3NpdG9yeS5odG0wCAYGZ4EMAQQCMA0GCSqGSIb3DQEBDAUAA4ICAQBNrYvg -# HjRMA0wxiAI1dPL5y4pOMPM1nd0An5Lg9sAp/vwUHBDv2FiKGpn+oiDoZa3+NDkY -# CwFKkFgo1k4y1QwCs1B8iVnjbLa3KUA//EEZDrDCa7S4GZfODpbdOiZNnnpuH3SW -# Ltk7gFuKIKDYICSm+1O+uBi7sVu+9OpMi/8u9dBoInH6zG8k+xsgDJZRJ8hhN0Ba -# VWjrewnwCQfmnOmJ++QvJeYvGraNPLBp4P+kprMQnBcBvLz67TigIZUJkNsP6wM4 -# nvneFuXpfJY5eYKldW+PbA+hcl0j5PoM+1z0Za0zFINQpm1UlXZRWAAJrPHyA4OJ -# 2PqHdobA6vxS38Ww79fzndDUJil8dZ9bckSQtzcWyUp/YqXbMfXgQGgt5SlPKSGf -# w1lR5eEey64qM/HyZQAtb8uCVSNlfInfIFDU+I56+nFOi3xp9dzquWr0UnaSC0zq -# KPa5bt/1q3nIhx3AUz1VSbRoKCJe+O9GRB5JQggCbjQtfaq97aR0+A179m3zJvnM -# NywmMeFk+1eJbdOcFRguoKwucPp9WHpflC8Vu2MuUEgy3deW8BCe5UTOGjK3eKzD -# D3Dy36gYKDho2H3gh0q9Q1LV9/EL5D5euxPfAOVKWo1It+ijGGwK7mBcq3Ol+HHz -# 7iX2tUcnGBkT2fAYqIBvA1fEoUHdtWCbCh0ltTGCB0YwggdCAgEBMHgwYTELMAkG +# UmVwb3NpdG9yeS5odG0wCAYGZ4EMAQQCMA0GCSqGSIb3DQEBDAUAA4ICAQAxvdhs +# 2DI5Qh2+uaHzIrblBbNTiRVS+UmYLKAMZ2dQqiSHhkAzNm75ztxOXD6FwIfy9vHv +# MxFspsvOnVc5c/78G+dQrKdOAQYGRc8RsrAR7MK03AZmbt8AceHt8ALwY3RHh0Sd +# 5kG7K9TCO/9ExrdtEI3Qi4xOwimPPA5WK8fqUNTyjp3GQTrD7USEqAiZveIKcZdL +# WCei3MnqhrTHeVgy6Ktg6ksWVznjElHVGdwkEqpWoL7a+7fUZFpWYGLBVT9sW5g3 +# SjotWcA9Ny7V8wNyfq2zkRtblyGAQwUihQze1IMw1egwhCQxC83dt5mmOcsNvhXw +# 4A0t3mhfP5t36nnNbbW/qh0ZMFRf+qGNLEGFNvBM+qVXX8PH3nH/r/nY+sROrptB +# vq3pMAWrh+ldOZGjy4FWPWmQZWWMk8PG+LoPJoFkQKqUdDCzzAzioNZOT2FMhmsq +# Ur+a8PoneFHvzYcsbpYmIS65VLG/7zOwjzqJs8rrLDCOUGWgfr/5gS1C1LiAjHgP +# /XGc/upV8rsVw+1E7gAcTDaD42bftH7oH5EOKZ7ha9S/FHwXB42MSvLRAa1BW9lw +# Qh+UNevIinZR1AgiBb7OZQ7ZvTlO6WQU8iyJWyBwBg9mN4G7ImR2WFmlh0/Qmlg9 +# CJRlNjeGOS6bef/sWcRpWE5X5l1L7RddVrcDuTGCB0Mwggc/AgEBMHgwYTELMAkG # A1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UE # AxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIwMjACEzMA -# AABIVXdyHnSSt/cAAAAAAEgwDQYJYIZIAWUDBAIBBQCgggSfMBEGCyqGSIb3DQEJ +# AABLobGt4Vn85zQAAAAAAEswDQYJYIZIAWUDBAIBBQCgggScMBEGCyqGSIb3DQEJ # EAIPMQIFADAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkF -# MQ8XDTI1MDIxMTE4NDg0M1owLwYJKoZIhvcNAQkEMSIEIFg5etH9b4xH9NTnAvjz -# 0jUKevzSCs99rmo7t3lJV+TSMIG5BgsqhkiG9w0BCRACLzGBqTCBpjCBozCBoAQg -# 6ioBV5tPCNafQ/SAvBnTdh+NfdC8O0dkSXfybyLzHUEwfDBlpGMwYTELMAkGA1UE +# MQ8XDTI1MDIxMTE5MTI0MlowLwYJKoZIhvcNAQkEMSIEIBYnTAAaaMaSFVyPuN8B +# LnbatwjxpH2cjvOXzQo0d5U3MIG5BgsqhkiG9w0BCRACLzGBqTCBpjCBozCBoAQg +# 24konSuy9FxJybjChmYIqjAxJOH0NabQ5I0B5QAGRKcwfDBlpGMwYTELMAkGA1UE # BhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp -# TWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIwMjACEzMAAABI -# VXdyHnSSt/cAAAAAAEgwggNhBgsqhkiG9w0BCRACEjGCA1AwggNMoYIDSDCCA0Qw -# ggIsAgEBMIIBCaGB4aSB3jCB2zELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# TWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIwMjACEzMAAABL +# obGt4Vn85zQAAAAAAEswggNeBgsqhkiG9w0BCRACEjGCA00wggNJoYIDRTCCA0Ew +# ggIpAgEBMIIBCaGB4aSB3jCB2zELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE1MDAtMDVFMC1EOTQ3MTUwMwYDVQQD +# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdEMDAtMDVFMC1EOTQ3MTUwMwYDVQQD # EyxNaWNyb3NvZnQgUHVibGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eaIj -# CgEBMAcGBSsOAwIaAxUA5hJ9QZRXOOnEOHn3+omINFlowyegZzBlpGMwYTELMAkG +# CgEBMAcGBSsOAwIaAxUA9XrCzpvkU0dQ6YQgsANWDOqXmTOgZzBlpGMwYTELMAkG # A1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UE # AxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIwMjAwDQYJ -# KoZIhvcNAQELBQACBQDrVc1eMCIYDzIwMjUwMjExMTMyMTM0WhgPMjAyNTAyMTIx -# MzIxMzRaMHcwPQYKKwYBBAGEWQoEATEvMC0wCgIFAOtVzV4CAQAwCgIBAAICEqgC -# Af8wBwIBAAICEqowCgIFAOtXHt4CAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYB -# BAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOC -# AQEAUNWTQQ34WTiBGTKYQvolEnhDvxzZWSkyGXzI8PI36cMYjQv2R+fsoM5jhPCt -# KNZYV9Ed0bu2v7+DNULd1dBVYdKrxMXXCNphxjZlxL0Za+VSiN/I0KhHW8QQCJvN -# nyygtRC3FCan+v1fIn6l0Rjdex5VAOUpEdh0KA1CVq22g82vqCVdgqkI6eNFIk9P -# NVWwbG3z1KmCC8q3hdwU/HJKK2jbwiviREhdFUjCItS1Sn+UWlUaqcC4xLU4+XqB -# ASYsbNXqCHsQG20K0Lp6IbEj0fphboP9fnAjn0IGJxTEvwf3hALUjqTngVi/HTcm -# 7HHS/lk2g9cws7msGPfa1g2k3TANBgkqhkiG9w0BAQEFAASCAgCaiCKDuMOQAVB2 -# rg559ZWEnBRBjEtirAESuR745i3TGuPbAsq7dIr6+Ne1KWlRRXo1rew3+Z7229iv -# ZH0+mk70pKH6dp1oNJqHU6lE/oO3gOisl7M4rquNNls6t5LxViup0x5Bmf3taADV -# pcv3ekvpJm9ciYzESIBXHqesQmEDWOTPzcJlRzwMVLGurUQi8CbptNYk4P3rXyPe -# LVsLyCqxNLfgJkC8ncgsh+anwkEYLKKpGfoFOg18XXl69aOZes+gdCijS26oLrDy -# CuBoDGr/e1Ercx6F/6/PmEHk6w4jNgIoBoI5cL12TvySiIUURC/YfIUViNa7C1Pw -# jj3Ync2/XpJ3ApE+lFVe/BvMnR5Hdlh2zMjPvKCH7riwRP56zAIjur/TSYVAnAcX -# XCW46kTPcQbpQG5U4yRagTCxQE7ZQHcs2vl/VaWBuOT8cVqpO6HiIhLfSyRwjhIA -# ZE4DttLxyIa1CNhNItyPlY/EQ0f7+JUA4QYrkzLkElboZ4aRmFv/tT1C+a5fUnzF -# e7EAgPRCaf9mncI4bNNZaML0cfFDA7mQ5yXNLyeo5k1l+ynhshUIwbQNq8AfGwpK -# 0rNucbo6hsxSyeamsXzBkMAVUjUkI8UgK0QH5/rIi8669EOOMTYPTXZW8Cnbplqz -# ivfEhQg53GNEcffmwzPQqpLynHpwsA== +# KoZIhvcNAQELBQACBQDrVbDsMCIYDzIwMjUwMjExMTEyMDEyWhgPMjAyNTAyMTIx +# MTIwMTJaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOtVsOwCAQAwBwIBAAICO4Iw +# BwIBAAICEngwCgIFAOtXAmwCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGE +# WQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEA +# blXLQpVUx0cXQJD7PUAEm0la/MgkMUDqLcb1zli9agFghJgpTEBb77A0LkbgmWCK +# PoWLedD4UhpOGahE4e4LoK0jL+ZcIi2ZBUlEuqwFpEjU0RYAEkxdUvE1N2e5f2kF +# m0WsX60R7DkuFdn9VFiS6SgITIALHkmKtSJ4gnXSiiHTLw8AZpQa2nRmhQn3HAYD +# nSpQJ0k/GJw8rSVqI29y3OtDFuxDAR4scInGXBB6Ttb1h9R+EDzKlyA3K2KbYCB/ +# j7Qwh7p4FwfjvvsNAeg8IKELKtbSIWPVCRDSThzsBQyfdN2zeiPOShrlkt4trj5/ +# kZTPDpUoMVS3HEz7Fj+TzjANBgkqhkiG9w0BAQEFAASCAgBAqfhQ/ZXV3GxdYvWz +# QZF/cje7VJWDpxqUWsoLjh8RBLl6mJi5/SmPHpP5pEul6LnTLx1TNuIrDJXUmxTs +# tWcY5Bcs8p6rixdEV2iNG5iVSzw7I3eX7bmZS7dQGpLVDBibXx6s2gx6/5uOS2X+ +# 7hM0V3dFJ/RhVH81h2/tLMJrgbuOkdVwxCer2EOnGoCZFZ+I4PO7Soagt+/dwNWg +# q32g3/OyT/kIDIKpskOj/i00I6MbAYEwPjlFTWcbs/tn2bbmf/kpLlYSreAyH4gB +# MksQK/6y7uzyTgRWNoM5v0SMoMnJEMboxO/7PXSmjbtdevKuuvPi/gfgWNLZhmvS +# T0UROknTrGGpuiR9k2e1WJzdNC+uYJMaItZV+g97nzj8zf3+0UFqPDc4DdE1NS0H +# j1oiEjf9Iw3eca2ZsOSfn8jOe1pgFo+NuPzFbjSQUBAH0cNc40Ub69DSwrcFxsR4 +# dUo8JHrEp+4KceSql7oHI9YnPy4CRssu5PoVESl0keCQkX4OETZAVY3Obx+1lypU +# Lai57YNrrrqChG0KAL+U0MXOSV0MO9CnVyUWpOlUS1jFaxwTC96spCaYHNnCGU8Y +# sw+wj6Z9X3dd+kXh//W4Cp71/Ywc7wWqu08MJSkofeKtABFy0SoHiPqe9FupIFGE +# d9IMNZqIp8Z2No320WK0yUC63A== # SIG # End signature block