diff --git a/EpdBase3/Epd3Base.cpp b/EpdBase3/Epd3Base.cpp
index c0a88dc..d83f6aa 100644
--- a/EpdBase3/Epd3Base.cpp
+++ b/EpdBase3/Epd3Base.cpp
@@ -373,8 +373,10 @@ int Epd3Base::Epd3U::StartDiscover(int tokentimeout)
handles[1] = hCancel;
Dll3RV = WaitForMultipleObjects(2, handles, false , tokentimeout);
- if (Dll3RV == WAIT_OBJECT_0)
+ if (Dll3RV == WAIT_OBJECT_0) {
+ DiscoverError = DiscoverErrorNone;
rv = 1; //ok was set
+ }
else if (Dll3RV == WAIT_OBJECT_0+1) {
DiscoverError = DiscoverErrorCancel;
rv = 1; //cancel
@@ -427,6 +429,11 @@ int Epd3Base::Epd3U::ReOpenDev()
{
Dll3RV = Connect3(epdComsHandle, Epd, true);
OutputDebugStringA("**** ReOpen ****\n");
+ if (Dll3RV) {
+ Sleep(100);
+ Dll3RV = Connect3(epdComsHandle, Epd, true);
+ }
+ DebugWrite("**** Reopen v %d ****\n", Dll3RV(, HardVersionMinor););
}
else {
OutputDebugStringA("**** ReOpen no epdComsHandle ****\n");
@@ -619,10 +626,12 @@ void WINAPI ReadStatusCompletion(CommsHandle hComms, CompletionToken token)
int Epd3Base::Epd3U::ReadStatusOnly()
{
+ EPDStep = EpdSteps::StepReadStatus;
int rv = 0;
ResetEvent(hCompletion);
SetFunctionReturnValue(eFunctions::ReadStatus, 0);
current->StatusDecoded = false;
+ if (!isConnected) rv = ReOpenDev();
token = BeginReadStatus(epdComsHandle, ReadStatusCompletion);
rv = CommitAndSetRV();
@@ -672,6 +681,7 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus)
memset(&epd3status, 0, sizeof(StatusData_t));
int rv2;
+ if (!isConnected) rv = ReOpenDev();
/*step = 1;
SetFunctionReturnValue(eFunctions::EpdOnOff, 0);
token = BeginEpdOnOff(epdComsHandle, 1, nullptr);
@@ -685,6 +695,16 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus)
if (!rv)
rv = EndReadStatus(epdComsHandle, token, &epd3status);
rv2 = SetEndReturnValue(rv);
+
+ if (rv < 0) {
+ if (rv==r_ErrorNotConnected) rv = ReOpenDev();
+ token = BeginReadStatus(epdComsHandle, nullptr);
+ rv = CommitAndSetRV();
+ if (!rv)
+ rv = EndReadStatus(epdComsHandle, token, &epd3status);
+ rv2 = SetEndReturnValue(rv);
+ }
+
current->StatusDecoded = false;
if (rv != 0) {
EPDStepResult = EpdStepResults::Error;
@@ -847,6 +867,7 @@ int Epd3Base::Epd3U::ConnectAndStatus(int tokenSourceTimeout)
ResetStepReturnValues();
if (CommsInitialized == 0) StartCom();
if (CommsInitialized) {
+
SetFunctionReturnValue(fStartDiscover,0);
EPDStep = EpdSteps::StepDiscovering;
dllStatus = StartDiscover(tokenSourceTimeout);
@@ -858,12 +879,11 @@ int Epd3Base::Epd3U::ConnectAndStatus(int tokenSourceTimeout)
if (dllStatus != 1) {
rv = 1; //Connect error
-
EPDStepResult = EpdStepResults::Error;
}
else if (DeviceCount < 1) {
rv = 2;
- Error = r_OperationTimeout;
+ Error = r_OperationTimeout; //65527
EPDStepResult = EpdStepResults::Error;
}
else if (isMK3) {
@@ -1415,6 +1435,7 @@ WORD Epd3Base::Epd3U::PrepareForIssue()
EPDStepResult = EpdStepResults::OK;
OutputDebugStringA("**** After clear ****\n");
if (isConnected && epdComsHandle) Disconnect(epdComsHandle);
+ isConnected = false;
Sleep(SleepAfterClear);
if (progressCallback) progressCallback(EPDStep, EPDStepResult);
return rv;
@@ -1557,7 +1578,13 @@ WORD Epd3Base::Epd3U::WriteWearer() {
SetFunctionReturnValue(eFunctions::SetBaselineCounters,0);
token = BeginSetBaselineCounters(epdComsHandle, nullptr);
r = CommitAndEnd2RV(EndSetBaselineCounters, token);
- //r = Commit3(epdComsHandle); SetCommitReturnValue(r); r = EndSetBaselineCounters(epdComsHandle, token); SetEndReturnValue(r);
+
+ if (r == r_ErrorNotConnected) {
+ ReOpenDev();
+ token = BeginSetBaselineCounters(epdComsHandle, nullptr);
+ r = CommitAndEnd2RV(EndSetBaselineCounters, token);
+ }
+
if (r != 0)
goto error;
@@ -1608,7 +1635,7 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone) //normaal is preparedone=tru
r = 0;
if (!PrepareDone) {
- r = PrepareForIssue();
+ r = PrepareForIssue();
if (r)
EPDStepResult = EpdStepResults::Error;
goto error;
@@ -1948,16 +1975,19 @@ error:
int Epd3Base::Epd3U::WriteConfig(void)
{
+ bool isAdmin = false;
if (port == 0 || WriteConfig32 == 0) return 1;
int32_t r = 0;
ECLen = 32;
DebugWrite("**** WriteCfg v %d.%d ****\n", HardVersion, HardVersionMinor);
+ r = ReOpenDev();
// Become admin
SetFunctionReturnValue(eFunctions::WriteAccessLevelAdmin,0);
token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr);
r = CommitAndEnd2RV(EndWriteAccessLevel,token);
if (!r) {
+ isAdmin=true;
displayIds = new QuickAccessDisplay_t[6]{
{ 0,0x0021 },
{ 1,0x0022 },
@@ -2038,24 +2068,19 @@ int Epd3Base::Epd3U::WriteConfig(void)
if (!r) {
//AlarmConfiguration
if (isBG) {
- const uint8_t alarmConfigLen = 14;
+ const uint8_t alarmConfigLen = 10;
alarmConfigIds = new AlarmConfig_t[alarmConfigLen]{
- { (AlarmIds)6,0,0x0000,0x1884,60 },
- { (AlarmIds)8,0,0x0000,0x9884,60 },
- { (AlarmIds)5,0,0x0000,0x9CA4,60 },
- { (AlarmIds)4,0,0x0000,0x9CC7,60 },
- { (AlarmIds)9,0,0x0000,0x9CA5,60 },
- { (AlarmIds)7,0,0x0000,0x1884,60 },
{ (AlarmIds)0,0,0x0000,0x9CC1,60 },
{ (AlarmIds)1,0,0x0000,0x1884,60 },
{ (AlarmIds)2,0,0x0000,0x9CC7,60 },
{ (AlarmIds)3,0,0x0000,0x1885,60 },
- { (AlarmIds)0,1,0x0000,0x9CC1,60 },
- { (AlarmIds)1,1,0x0000,0x1884,60 },
- { (AlarmIds)2,1,0x0000,0x9CC7,60 },
- { (AlarmIds)3,1,0x0000,0x1885,60 }
+ { (AlarmIds)4,0,0x0000,0x9CC7,60 },
+ { (AlarmIds)5,0,0x0000,0x9CA4,60 },
+ { (AlarmIds)6,0,0x0000,0x1884,60 },
+ { (AlarmIds)7,0,0x0000,0x1884,60 },
+ { (AlarmIds)8,0,0x0000,0x9884,60 },
+ { (AlarmIds)9,0,0x0000,0x9CA5,60 }
};
-
SetFunctionReturnValue(eFunctions::WriteAlarmConfiguration_R3, 1);
token = BeginWriteAlarmConfiguration_R3(epdComsHandle, alarmConfigIds, alarmConfigLen, nullptr);
r = CommitAndEnd2RV(EndWriteAlarmConfiguration_R3, token);
@@ -2067,8 +2092,9 @@ int Epd3Base::Epd3U::WriteConfig(void)
//int rv[maxbatch];
//int batchstep;
- if (!r) {
+ if (!r && isAdmin) {
//OffModeDisplay
+ //can give privilege issues
dutyCycle = (OffModeDutyCycle)0;
offModeDispId = (OffModeDisplayId_t)1;
SetFunctionReturnValue(eFunctions::WriteOffModeDisplay_R3,1);
@@ -2077,27 +2103,26 @@ int Epd3Base::Epd3U::WriteConfig(void)
if (r != 0)
Error = r;
-
- uint8_t OnOfenabled = 0;
- SetFunctionReturnValue(eFunctions::WriteSwitchOnFromButton_R3, 0);
- token = BeginWriteSwitchOnFromButton_R3(epdComsHandle, OnOfenabled, nullptr);
- r = CommitAndEnd2RV(EndWriteSwitchOnFromButton_R3, token);
-
- if (r != 0)
- Error = r;
-
- SetFunctionReturnValue(eFunctions::WriteAccessLevelOpen, 0);
- token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Open,nullptr,0, nullptr);
- r = CommitAndEnd2RV(EndWriteAccessLevel, token);
- if (r != 0)
- Error = r;
-
+ else {
+ uint8_t OnOfenabled = 0;
+ SetFunctionReturnValue(eFunctions::WriteSwitchOnFromButton_R3, 0);
+ token = BeginWriteSwitchOnFromButton_R3(epdComsHandle, OnOfenabled, nullptr);
+ r = CommitAndEnd2RV(EndWriteSwitchOnFromButton_R3, token);
+ if (r != 0)
+ Error = r;
+ }
+ //Back to Open
+ if (!r) {
+ SetFunctionReturnValue(eFunctions::WriteAccessLevelOpen, 0);
+ token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Open, nullptr, 0, nullptr);
+ r = CommitAndEnd2RV(EndWriteAccessLevel, token);
+ if (r != 0)
+ Error = r;
+ }
Sleep(200);
r = DisconnectAndConnect();
if (r != 0)
Error = r;
-
-
}
else
Error = r;
diff --git a/SyncToSqlsrv7.ps1 b/SyncToSqlsrv7.ps1
index 7e4d10b..934f8db 100644
--- a/SyncToSqlsrv7.ps1
+++ b/SyncToSqlsrv7.ps1
@@ -18,6 +18,7 @@ $cert = get-childitem -path cert:\CurrentUser\My\857150b64ef7d3e679c8cbde425d2a0
Export-Certificate -Force -FilePath "$DestPath\signertrust.cer" -Cert $cert
Set-AuthenticodeSignature -FilePath "$ScriptPath\Upgrader.ps1" -Certificate $cert -TimestampServer "http://timestamp.digicert.com"
+Set-AuthenticodeSignature -FilePath "$ScriptPath\Downgrader.ps1" -Certificate $cert -TimestampServer "http://timestamp.digicert.com"
Set-AuthenticodeSignature -FilePath "$ScriptPath\installatie.ps1" -Certificate $cert -TimestampServer "http://timestamp.digicert.com"
Set-AuthenticodeSignature -FilePath "$ScriptPath\installatie2.ps1" -Certificate $cert -TimestampServer "http://timestamp.digicert.com"
@@ -31,6 +32,7 @@ Copy-Item -Path "$ScriptPath\ConfigurationFile.ini" -Destination "$DestPath"
Copy-Item -Path "$ScriptPath\eDosStation.pub" -Destination "$DestPath"
Copy-Item -Path "$ScriptPath\authorized_keys" -Destination "$DestPath\authorized_keys"
Copy-Item -Path "$ScriptPath\Upgrader.ps1" -Destination "$DestPath\Upgrader.ps1"
+Copy-Item -Path "$ScriptPath\Downgrader.ps1" -Destination "$DestPath\Downgrader.ps1"
Copy-Item -Path "$ScriptPath\installatie.ps1" -Destination "$DestPath\installatie.ps1"
Copy-Item -Path "$ScriptPath\installatie2.ps1" -Destination "$DestPath\installatie2.ps1"
@@ -62,3 +64,206 @@ write-host "Source files from $SourcePath\eDosStation\bin\Release are zipped to
Sleep 10
exit
+
+# SIG # Begin signature block
+# MIIlWAYJKoZIhvcNAQcCoIIlSTCCJUUCAQExDzANBglghkgBZQMEAgEFADB5Bgor
+# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
+# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCkY6prORAwgOA6
+# WNLPMxe1wpx0GRp8nFNFFVZi+ujhzKCCH3AwggWNMIIEdaADAgECAhAOmxiO+dAt
+# 5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
+# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
+# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBa
+# Fw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
+# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD
+# ZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+# ggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3E
+# MB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKy
+# unWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsF
+# xl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU1
+# 5zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJB
+# MtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObUR
+# WBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6
+# nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxB
+# YKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5S
+# UUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+x
+# q4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIB
+# NjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwP
+# TzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMC
+# AYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
+# Y2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv
+# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0
+# aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENB
+# LmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0Nc
+# Vec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnov
+# Lbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65Zy
+# oUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFW
+# juyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPF
+# mCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9z
+# twGpn1eqXijiuZQwggW8MIIDpKADAgECAgEfMA0GCSqGSIb3DQEBCwUAMGYxCzAJ
+# BgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAKBgNVBAcTA01vbDEPMA0G
+# A1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVNDS0NFTiBJQ1Qg
+# Q0EwHhcNMTgwNTI0MDYxMTAwWhcNMzAwNjAxMTIwMDAwWjBPMSEwHwYDVQQDExhW
+# YW5kZW5icm91Y2tlIEx1YyBDUzIwMjExKjAoBgkqhkiG9w0BCQEWG2x1Yy52YW5k
+# ZW5icm91Y2tlQHNja2Nlbi5iZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+# ggEBAPRbMPSAdMsURs6M9TChuXZWe1LSQlVXYVHPGRlnQeF719tgHS1Ern70aW0P
+# uvCECkzUTbGHw3o+bF+vj1UZWw82oOEZGannAoTyG1CIxdOMc85Mdmy+Kb++9Ivx
+# a6i4ahfpNDHE0F58TomaNyDY0dtRUDEMZw/A0AMkFmdg9BOnqrYeeLB0O/86ZkzU
+# klRifi/Wa3ti1LV4U7fR6S4bMm7dZBh46IU2G3/oBdlNYAtC3DNol+bnrcBvF+cc
+# GwG5kVxEZg8TtpEMj00hnI+rNPjI4Ar6mE83XKak1X5/xddZppx9ldJaiVujyOqy
+# 0cONhiN/vsWPdZU37LQbG1OydGUCAwEAAaOCAYowggGGMAkGA1UdEwQCMAAwHQYD
+# VR0OBBYEFN+1bIhLi6eWlLbzynleh97QuIFlMB8GA1UdIwQYMBaAFPApFPVqIRSS
+# VlQTpD3VrfAhOsV4MAsGA1UdDwQEAwIHgDAfBgNVHSUEGDAWBggrBgEFBQcDAwYK
+# KwYBBAGCNwIBFTA6BgNVHREEMzAxgRtsdWMudmFuZGVuYnJvdWNrZUBzY2tjZW4u
+# YmWBEmx2YW5kZW5iQHNja2Nlbi5iZTA1BgNVHRIELjAshipodHRwOi8vY3JsLnNj
+# a2Nlbi5iZS9TQ0tDRU4lMjBJQ1QlMjBDQS5jcnQwOwYDVR0fBDQwMjAwoC6gLIYq
+# aHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIwSUNUJTIwQ0EuY3JsMD4GCSsG
+# AQQBgjcVBwQxMC8GJysGAQQBgjcVCISMvCGCyP13gqGTIoSXlEaExpIugQGC1IQh
+# gfrIaQIBZAIBCDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsGAQUFBwMDMA0GCSqGSIb3
+# DQEBCwUAA4ICAQBGH87fu9sNbcCPVQCdJ9jP4jT59WTZm6s5BquO10UL9i7UAEmd
+# d0yfCHW3myNUigR6O+Oc6Wa74HbUhAk+nEimHxzP5KcNnKE6lwqsIOf49J5G+2HR
+# mTgW9tewsr39ZiB3NE5s04fHEA0I45zs8wsgyp4Mlr5v3AfzYB7gxh0Hxdm+ion7
+# PXvbKhAyI3F7pQTYauilmLAkHnoXD6T+Osp04wR9m1+HNGqLMKYyVOSdu0UnmGuq
+# HBxpMD7hAJ8LCi5yR6t6s4BNCczwhzUpo6ZgrtLmKCacDmZ6SJMqsGFwan/GxnLS
+# vw5QpVXUVJidDfTflMeJrfWhDOEt7jx9oQWQ249uzxlqJMVfBt1YZDq4gr76yjK6
+# VY7F6540ECog4auPte4NoiT5UPdE3QHSD/82/cdLoVuhELR4p4bfJ7PONT7x8iZz
+# I8BoASh9SKJBh06mcmyJosOkc77Wv3ykqal7R+/LQi9geJwku6Ti0XIy9UFGBbUD
+# 4m18e5cKdqDzyIHwAne0JR0ZEILPzITWviFuSXKqGP0bkSbGgpl+LuaCHcKAv+1F
+# QBc2oWW0yPdxCUYpwo9QfTTh0qYXABQAbibOw7VKTnRLsS92m9pb6wn9tYyNfMu6
+# r7EXCuxJNDbYpKbxeadfY0arCzlOT6mpC6lzBqfgKyN+VWoy9rmdzhjEjjCCBnIw
+# ggRaoAMCAQICEzgAAAACbukOrXYB5dcAAAAAAAIwDQYJKoZIhvcNAQELBQAwZzEL
+# MAkGA1UEBhMCQkUxEjAQBgNVBAgTCUFudHdlcnBlbjEMMAoGA1UEBxMDTW9sMQ8w
+# DQYDVQQKEwZTQ0tDRU4xDDAKBgNVBAsTA0lDVDEXMBUGA1UEAxMOU0NLQ0VOIFJv
+# b3QgQ0EwHhcNMTcwNjIzMTEzOTM0WhcNMzIwNjIzMTE0OTM0WjBmMQswCQYDVQQG
+# EwJCRTESMBAGA1UECBMJQW50d2VycGVuMQwwCgYDVQQHEwNNb2wxDzANBgNVBAoT
+# BlNDS0NFTjEMMAoGA1UECxMDSUNUMRYwFAYDVQQDEw1TQ0tDRU4gSUNUIENBMIIC
+# IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsW1uJ8gCKQwjdhAhr6eJJNXw
+# +wffi5p2RB48uzTaQh2Y89P+75NFhk7qeOW0tVwacxYkubMvgNqasA9RslymREsx
+# LfloMCidRPSQj8o0KE2cfLYojYre1TChFxc0PZobibZ7BTsU2v75GQjnsEEMmxzw
+# JLAjSU2mFVKJKjrKs4Xt/q6j3w0fdrRz0ba8zSMbTHO2K8Cd1Rq3GQDLPythJyDx
+# zo6YRE7TFOFcXGrIpFXvmy1XPc/ItiHwTocOmQ1msF+46W0gfWtbFLt8bC/CnuE2
+# ZQPnAmpq3lOUu8cOq/2eqhihAeAli5McYepaK+qr1JtLNfgTSkkFFw27c5cPXwFC
+# CE0ryJdN+qN4Xdk3J2iz0hayEJ4sGaimdJTXv/OTmSxxKGMnPYV+BTvk/PDJnGjW
+# QqOryf0PWgmwVQ1KAowaPjBAXJOEotzNnzW0/FKtvgJYLk3xFs3sJJ6EG6D02wB2
+# RNszNGM66tyqqx/Z3651xwzgkYYR1ETdmddcqL6/3a+HifS5K99N+q7rX/Rp31AU
+# lNsb53xhh43NWUAg5Tzrb9J54mBR6Z/MafmTVHcK2nK6RRYaUfxs/WuE2+OzX7Md
+# G/URi1lVuOu7hp7AKnSjcLnOcBG7lkSK1Q1pCuACYMkvCl+7keio376akUfumX3H
+# qEVgK8ttZiRgiVHR7Q0CAwEAAaOCARYwggESMBAGCSsGAQQBgjcVAQQDAgEAMB0G
+# A1UdDgQWBBTwKRT1aiEUklZUE6Q91a3wITrFeDAZBgkrBgEEAYI3FAIEDB4KAFMA
+# dQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW
+# gBRSvxsquCggUTGvI6e+I5TG0fkUMDA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8v
+# Y3JsLnNja2Nlbi5iZS9TQ0tDRU4lMjBSb290JTIwQ0EuY3JsMEcGCCsGAQUFBwEB
+# BDswOTA3BggrBgEFBQcwAoYraHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIw
+# Um9vdCUyMENBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAhsQ1eNAeFzKKGY9KW0VM
+# GrLUbtccjHoeKlGdVn+yhS9xhSaIFgm00IPVO5zh9jKtgCA3o81TqY0w1WoRK1U8
+# t89On5RZYVy39pDyu+oBlHgul9KOuJbIKLgh0VgEPvY3vM0h0bLdxIrnlIxchVxg
+# s5y/h/wLKmXLjsg+AuYzsJ4+9GAD5SsdFGp2jiKPf9aw6zG67an2yTqtvPfeoRpk
+# MWO+Mx39CWWwfU3MaQySlAx0/JzZcqWzk6QFgN1h89wSBHD0mMFdnahEth5y9QhP
+# kLydPniibF5VZ59gbUVlpFFz8VddmBtx9xfe5aIYEjkj35HmEW/FN7qwnJP3dClj
+# zFiqSueKqiFIN3punjHbMUoAxJnibx11Xz4pFm5mdk8v95r+sncH8SFK/P5nUjjE
+# YIBRInZiovl7C8KfI1RD9lXJDPdw5yVfkCpkCr/rYNNMBHfDYZ+G1NEu9WzE2Nrk
+# nC4H4qoNJLmMjVPTswcIT780iOvFZRf1ql+0e2TKUHCOkZ+plXtl3H6MimrNk6B/
+# ZQAy4mETNH6ceaoudV7X5Y7HzbTwSXCSw6GCiQMdYXgsFp+lioorEmFZhVc2PTs+
+# oUXbMi8IUaCyKEm6tMZHJ+PGU1YBE8Szyj5nI1SUhb+aHunRGlhgXPb4bnEdZVaM
+# ruxFM0UbriGwmkOEv9cPVpAwgga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmG
+# MA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
+# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD
+# ZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5
+# NTlaMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8G
+# A1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBT
+# SEEyNTYgMjAyNSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0
+# eDHTCphBcr48RsAcrHXbo0ZodLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+Ruw
+# OnPhof6pvF4uGjwjqNjfEvUi6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4B
+# t0mAxAHeHYNnQxqXmRinvuNgxVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1U
+# kxBvMgEdgkFiDNYiOTx4OtiFcMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTca
+# arps0wjUjsZvkgFkriK9tUKJm/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zb
+# CclF83bRVFLeGkuAhHiGPMvSGmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnG
+# pTXiUOeSLsJygoLPp66bkDX1ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/
+# AMOMCZIVNSaz7BX8VtYGqLt9MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v
+# 5ydPpOjL6s36czwzsucuoKs7Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoi
+# wOrUG2ZdSoQbU2rMkpLiQ6bGRinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm
+# 2qA+sdFUeEY0qVjPKOWug/G6X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYD
+# VR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04w
+# HwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGG
+# MBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcw
+# AYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8v
+# Y2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBD
+# BgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNl
+# cnRUcnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgB
+# hv1sBwEwDQYJKoZIhvcNAQELBQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Q
+# h8WIGjB/T8ObXAZz8OjuhUxjaaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3
+# YTj+IQhQE7jU/kXjjytJgnn0hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQ
+# wr8Myb9rEVKChHyfpzee5kH0F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/
+# wdG2th9y1IsA0QF8dTXqvcnTmpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81
+# hjajV/gxdEkMx1NKU4uHQcKfZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00
+# TYr2Lr3ty9qIijanrUR3anzEwlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNj
+# qFzeGxcytL5TTLL4ZaoBdqbhOhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0
+# cuJG7uEBYTptMSbhdhGQDpOXgpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9
+# sC+NJpud/v4+7RWsWCiKi9EOLLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0
+# LckTetiSuEtQvLsNz3Qbp7wGWqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2
+# tszWkPZPubdcMIIG7TCCBNWgAwIBAgIQCoDvGEuN8QWC0cR2p5V0aDANBgkqhkiG
+# 9w0BAQsFADBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
+# QTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQw
+# OTYgU0hBMjU2IDIwMjUgQ0ExMB4XDTI1MDYwNDAwMDAwMFoXDTM2MDkwMzIzNTk1
+# OVowYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYD
+# VQQDEzJEaWdpQ2VydCBTSEEyNTYgUlNBNDA5NiBUaW1lc3RhbXAgUmVzcG9uZGVy
+# IDIwMjUgMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANBGrC0Sxp7Q
+# 6q5gVrMrV7pvUf+GcAoB38o3zBlCMGMyqJnfFNZx+wvA69HFTBdwbHwBSOeLpvPn
+# Z8ZN+vo8dE2/pPvOx/Vj8TchTySA2R4QKpVD7dvNZh6wW2R6kSu9RJt/4QhguSss
+# p3qome7MrxVyfQO9sMx6ZAWjFDYOzDi8SOhPUWlLnh00Cll8pjrUcCV3K3E0zz09
+# ldQ//nBZZREr4h/GI6Dxb2UoyrN0ijtUDVHRXdmncOOMA3CoB/iUSROUINDT98ok
+# souTMYFOnHoRh6+86Ltc5zjPKHW5KqCvpSduSwhwUmotuQhcg9tw2YD3w6ySSSu+
+# 3qU8DD+nigNJFmt6LAHvH3KSuNLoZLc1Hf2JNMVL4Q1OpbybpMe46YceNA0LfNsn
+# qcnpJeItK/DhKbPxTTuGoX7wJNdoRORVbPR1VVnDuSeHVZlc4seAO+6d2sC26/PQ
+# PdP51ho1zBp+xUIZkpSFA8vWdoUoHLWnqWU3dCCyFG1roSrgHjSHlq8xymLnjCbS
+# LZ49kPmk8iyyizNDIXj//cOgrY7rlRyTlaCCfw7aSUROwnu7zER6EaJ+AliL7ojT
+# dS5PWPsWeupWs7NpChUk555K096V1hE0yZIXe+giAwW00aHzrDchIc2bQhpp0IoK
+# RR7YufAkprxMiXAJQ1XCmnCfgPf8+3mnAgMBAAGjggGVMIIBkTAMBgNVHRMBAf8E
+# AjAAMB0GA1UdDgQWBBTkO/zyMe39/dfzkXFjGVBDz2GM6DAfBgNVHSMEGDAWgBTv
+# b1NK6eQGfHrK4pBW9i/USezLTjAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAww
+# CgYIKwYBBQUHAwgwgZUGCCsGAQUFBwEBBIGIMIGFMCQGCCsGAQUFBzABhhhodHRw
+# Oi8vb2NzcC5kaWdpY2VydC5jb20wXQYIKwYBBQUHMAKGUWh0dHA6Ly9jYWNlcnRz
+# LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQw
+# OTZTSEEyNTYyMDI1Q0ExLmNydDBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vY3Js
+# My5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0
+# MDk2U0hBMjU2MjAyNUNBMS5jcmwwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZI
+# AYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQBlKq3xHCcEua5gQezRCESeY0ByIfjk
+# 9iJP2zWLpQq1b4URGnwWBdEZD9gBq9fNaNmFj6Eh8/YmRDfxT7C0k8FUFqNh+tsh
+# gb4O6Lgjg8K8elC4+oWCqnU/ML9lFfim8/9yJmZSe2F8AQ/UdKFOtj7YMTmqPO9m
+# zskgiC3QYIUP2S3HQvHG1FDu+WUqW4daIqToXFE/JQ/EABgfZXLWU0ziTN6R3ygQ
+# BHMUBaB5bdrPbF6MRYs03h4obEMnxYOX8VBRKe1uNnzQVTeLni2nHkX/QqvXnNb+
+# YkDFkxUGtMTaiLR9wjxUxu2hECZpqyU1d0IbX6Wq8/gVutDojBIFeRlqAcuEVT0c
+# Ksb+zJNEsuEB7O7/cuvTQasnM9AWcIQfVjnzrvwiCZ85EE8LUkqRhoS3Y50OHgaY
+# 7T/lwd6UArb+BOVAkg2oOvol/DJgddJ35XTxfUlQ+8Hggt8l2Yv7roancJIFcboj
+# BcxlRcGG0LIhp6GvReQGgMgYxQbV1S3CrWqZzBt1R9xJgKf47CdxVRd/ndUlQ05o
+# xYy2zRWVFjF7mcr4C34Mj3ocCVccAvlKV9jEnstrniLvUxxVZE/rptb7IRE2lskK
+# PIJgbaP5t2nGj/ULLi49xTcBZU8atufk+EMF/cWuiC7POGT75qaL6vdCvHlshtjd
+# NXOCIUjsarfNZzGCBT4wggU6AgEBMGswZjELMAkGA1UEBhMCQkUxEjAQBgNVBAgT
+# CUFudHdlcnBlbjEMMAoGA1UEBxMDTW9sMQ8wDQYDVQQKEwZTQ0tDRU4xDDAKBgNV
+# BAsTA0lDVDEWMBQGA1UEAxMNU0NLQ0VOIElDVCBDQQIBHzANBglghkgBZQMEAgEF
+# AKB8MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEE
+# MBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCBw
+# a/M/NRFionxZGZugetgJgsG4JMUnwXjTa53vEeocCjANBgkqhkiG9w0BAQEFAASC
+# AQCralwsSvHDAs6ieXSpxPmoiL6h9NzjhvBGOq/obBYhIspC+9Az+qcJOhCrgAMC
+# VVyU74Ws17Toa3+twFuXiynOka21zstzZxz0L9oq7XZ6MaySgspGNgOdgK8mJJjt
+# 66GG2cNn53MYpfD616Qo1/wNFCXfMy9Vw6ghMvtP90sZYMHQ03vMsPxkNJl0Pjwo
+# NRMNJ3UNzwEqcUH8xFSY9D8LVI3hYcdUwh/p9ju9fQFTWiqeDdZMMkOSrPPjbVYj
+# C5gVwX/HAA0SAbFIedZ2xMWQGi8NYtGU/LuXXdGy7YTKDEHARb03aw3BfsQjbpNX
+# J/l0Um1q0ZVD/KbN/CBuTl4qoYIDJjCCAyIGCSqGSIb3DQEJBjGCAxMwggMPAgEB
+# MH0waTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYD
+# VQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNI
+# QTI1NiAyMDI1IENBMQIQCoDvGEuN8QWC0cR2p5V0aDANBglghkgBZQMEAgEFAKBp
+# MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDgy
+# ODA3NDgyNFowLwYJKoZIhvcNAQkEMSIEIGjD7zm2kZp/whATQ+2C2d8uxlPSyFV4
+# g/DYFVrHgvJ8MA0GCSqGSIb3DQEBAQUABIICAEUMaDuHZ1sSOl4k5wv38PUDcDrJ
+# MO4Y0xaQe5oKQaJCtYBasjo6Pdhpz38K8++6JAHGX+KGK3zJKXTmxrM0iJfaSsKD
+# r0fc5TjNcu0CAHEqjuVVO/wFXYDtMQKPM6ilw2uZYlZtIg7YfcCP4tPNe5QCi25X
+# 3FJAVnKK4EMAVbOqoLnafL+U/E9mDQHXioXTGV3Tflnyivehh8ir2XvC76BDxsDW
+# PdV7HtzRyNpq/z9yLVsmWpBxsuLqWnoE23eCKsVm1G4lZYVdIBzS00xexqps1riY
+# uhLFqVVRmclrkXZ5dFi2hgEKe0AXvV/ZsqJpHV1B9rkHmhvBY3rd2rIlax+1EhCC
+# slj6+K4ZpZ3gMmH1EEsedbocq+2DFrM1tS7j+MebYssFDoQuCPceRtZWAgde7RsQ
+# 7kO5fgUbAVWIjkciJgjCwm6svtMSV2MEHZDP9QdQwr3PhT4XWIBamOwYeIax3rnf
+# +JSjwGoSaqJk4OHfip0/ummbHDpq14GH7i92h1vd04XdzwyW4cW3aQhU9RBfey8P
+# mC+NzXSMdDsSzugovY18wj4ATGTv+WFKqcPLyGM+Eo0m+VDrLXtPvhYR5QBUiGO+
+# pRceePDMqreLWSCza98Vpc+ESzaFqkNCAHWn6fXHbTh6mxLeqgfbfZHbvYiXU5FR
+# 0Ins2JgWNBkAKM8J
+# SIG # End signature block
diff --git a/eDosLocal/UpdateLocal.sql b/eDosLocal/UpdateLocal.sql
index eb8e4f0..fe6df0f 100644
--- a/eDosLocal/UpdateLocal.sql
+++ b/eDosLocal/UpdateLocal.sql
@@ -262,32 +262,51 @@ ALTER TABLE [dbo].[StationSettings] ADD AllowMultipleEPD BIT NULL;
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[StationSettings]') AND name='EPDRetries')
ALTER TABLE [dbo].[StationSettings] ADD EPDRetries INT NULL;
IF EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[StationSettings]') AND name='EPDRetries' AND [system_type_id]<>56)
-ALTER TABLE [dbo].[StationSettings] ALTER COLUMN [EPDREtries] int
+ALTER TABLE [dbo].[StationSettings] ALTER COLUMN [EPDREtries] INT
+
+IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[StationSettings]') AND name = 'WriteConfig')
+ ALTER TABLE [dbo].[StationSettings] ADD [WriteConfig] BIT NULL;
+
+IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[StationSettings]') AND name = 'IssueWhenDoseAlarms')
+ ALTER TABLE [dbo].[StationSettings] ADD [IssueWhenDoseAlarms] BIT NULL;
+
+IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[StationSettings]') AND name = 'ElatecPort')
+ ALTER TABLE [dbo].[StationSettings] ADD [ElatecPort] INT NULL;
GO
ALTER PROCEDURE [dbo].[StationSettingsSelect] AS
-SELECT
- [ID_Station],
- [PCNr],
- [ComPort],
- [Inst_CODE1],
- [Inst_CODE2],
- [Inst_Name1],
- [Inst_Name2],
- [TestCSN],
- [Reader],
- [useTestButtons] = ISNULL([useTestButtons], 0),
- [useBeep] = ISNULL([useBeep], 22),
- [checkUser] = ISNULL([checkUser], 0),
- [EPDTimeout] = ISNULL([EPDTimeout], 10000),
- [EPDRetries] = ISNULL([EPDREtries], 1),
- [RestartCom] = ISNULL([RestartCom], 0),
- [RestartComFirst] = ISNULL([RestartComFirst], 0),
- [OnlyMK2] = ISNULL([OnlyMK2], 0),
- [AllowMultipleEPD] = ISNULL([AllowMultipleEPD], 0)
-FROM [dbo].[StationSettings]
-WHERE [PCNr] = HOST_NAME();
+SELECT ID_Station,
+ PCNr,
+ ComPort,
+ Inst_CODE1,
+ Inst_CODE2,
+ Inst_Name1,
+ Inst_Name2,
+ TestCSN,
+ Reader,
+ useTestButtons = ISNULL(useTestButtons, 0),
+ useBeep = ISNULL(useBeep, 22),
+ checkUser = ISNULL(checkUser, 0),
+ EPDTimeout = ISNULL(EPDTimeout, 10000),
+ EPDRetries = ISNULL(EPDREtries, 1),
+ RestartCom = ISNULL(RestartCom, 0),
+ RestartComFirst = ISNULL(RestartComFirst, 0),
+ OnlyMK2 = ISNULL(OnlyMK2, 0),
+ AllowMultipleEPD = ISNULL(AllowMultipleEPD, 0),
+ WriteConfig = ISNULL(WriteConfig, 0),
+ IssueWhenDoseAlarms = ISNULL(IssueWhenDoseAlarms, 0),
+ ElatecPort
+FROM dbo.StationSettings
+WHERE PCNr = HOST_NAME();
GO
-ALTER PROCEDURE [dbo].[StationSettingsUpdate] @ComPort INT = NULL,
+USE eDosLocal;
+GO
+/****** Object: StoredProcedure [dbo].[StationSettingsUpdate] Script Date: 2026-08-28 12:18:04 ******/
+SET ANSI_NULLS ON;
+GO
+SET QUOTED_IDENTIFIER ON;
+GO
+ALTER PROCEDURE dbo.StationSettingsUpdate
+ @ComPort INT = NULL,
@Inst_CODE1 INT = NULL,
@Inst_CODE2 INT = NULL,
@Inst_Name1 VARCHAR(50) = NULL,
@@ -302,32 +321,61 @@ ALTER PROCEDURE [dbo].[StationSettingsUpdate] @ComPort INT = NULL,
@RestartCom BIT = 0,
@RestartComFirst BIT = 0,
@OnlyMK2 BIT = 0,
- @AllowMultipleEPD BIT = 0
+ @AllowMultipleEPD BIT = 0,
+ @WriteConfig BIT = 1,
+ @IssueWhenDoseAlarms BIT = 0,
+ @ElatecPort INT = NULL
AS
-IF NOT EXISTS (SELECT * FROM [dbo].[StationSettings] WHERE [PCNr] = HOST_NAME())
- INSERT [dbo].[StationSettings]([PCNr], [ComPort], [Inst_CODE1], [Inst_CODE2], [Inst_Name1], [Inst_Name2], [TestCSN], [Reader], [useTestButtons], [useBeep], [checkUser], [EPDREtries], [RestartCom], [RestartComFirst], [OnlyMK2], [AllowMultipleEPD])
- VALUES(HOST_NAME(), @ComPort, @Inst_CODE1, @Inst_CODE2, @Inst_Name1, @Inst_Name2, @TestCSN, @Reader, @useTestButtons, @useBeep, @checkUser, @EPDRetries, @RestartCom, @RestartComFirst, @OnlyMK2, @AllowMultipleEPD);
+IF NOT EXISTS (SELECT * FROM dbo.StationSettings WHERE PCNr = HOST_NAME())
+ INSERT dbo.StationSettings
+ (
+ PCNr,
+ ComPort,
+ Inst_CODE1,
+ Inst_CODE2,
+ Inst_Name1,
+ Inst_Name2,
+ TestCSN,
+ Reader,
+ useTestButtons,
+ useBeep,
+ checkUser,
+ EPDREtries,
+ RestartCom,
+ RestartComFirst,
+ OnlyMK2,
+ AllowMultipleEPD,
+ WriteConfig,
+ IssueWhenDoseAlarms,
+ ElatecPort
+ )
+ VALUES
+ (HOST_NAME(), @ComPort, @Inst_CODE1, @Inst_CODE2, @Inst_Name1, @Inst_Name2, @TestCSN, @Reader, @useTestButtons,
+ @useBeep, @checkUser, @EPDRetries, @RestartCom, @RestartComFirst, @OnlyMK2, @AllowMultipleEPD, @WriteConfig,
+ @IssueWhenDoseAlarms, @ElatecPort);
ELSE
- UPDATE
- [dbo].[StationSettings]
- SET
- [ComPort] = @ComPort,
- [Inst_CODE1] = @Inst_CODE1,
- [Inst_CODE2] = @Inst_CODE2,
- [Inst_Name1] = @Inst_Name1,
- [Inst_Name2] = @Inst_Name2,
- [TestCSN] = @TestCSN,
- [Reader] = @Reader,
- [useTestButtons] = @useTestButtons,
- [useBeep] = @useBeep,
- [checkUser] = @checkUser,
- [EPDTimeout] = @EPDTimeout,
- [EPDREtries] = @EPDRetries,
- [RestartCom] = @RestartCom,
- [RestartComFirst] = @RestartComFirst,
- [OnlyMK2] = @OnlyMK2,
- [AllowMultipleEPD]=@AllowMultipleEPD
- WHERE [PCNr] = HOST_NAME();
+ UPDATE dbo.StationSettings
+ SET ComPort = @ComPort,
+ Inst_CODE1 = @Inst_CODE1,
+ Inst_CODE2 = @Inst_CODE2,
+ Inst_Name1 = @Inst_Name1,
+ Inst_Name2 = @Inst_Name2,
+ TestCSN = @TestCSN,
+ Reader = @Reader,
+ useTestButtons = @useTestButtons,
+ useBeep = @useBeep,
+ checkUser = @checkUser,
+ EPDTimeout = @EPDTimeout,
+ EPDREtries = @EPDRetries,
+ RestartCom = @RestartCom,
+ RestartComFirst = @RestartComFirst,
+ OnlyMK2 = @OnlyMK2,
+ AllowMultipleEPD = @AllowMultipleEPD,
+ WriteConfig = @WriteConfig,
+ IssueWhenDoseAlarms = @IssueWhenDoseAlarms,
+ ElatecPort = @ElatecPort
+ WHERE PCNr = HOST_NAME();
+
go
@@ -390,7 +438,8 @@ UPDATE [dbo].[Visit] SET InitError=@InitError WHERE ID_Station=@ID_Station AND I
go
GRANT EXECUTE ON [dbo].[VisitInitConfirm] TO [eDosStation];
GO
-ALTER TABLE DBO.PersonInfoSnapshot ADD Info XML;
+IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[PersonInfoSnapshot]') AND name = 'Info')
+ ALTER TABLE DBO.PersonInfoSnapshot ADD Info XML NULL;
GO
IF OBJECT_ID('[dbo].[LocalEPD]') IS NULL BEGIN
CREATE TABLE [dbo].[LocalEPD] ( [ID_STATION] INT NOT NULL , [EPD_InternalID] VARCHAR(8) NOT NULL, [ID_EPD] INT NOT NULL, [LastUsed] DATETIME null, PRIMARY KEY([ID_STATION],[EPD_InternalID]) )
diff --git a/eDosStation.sln b/eDosStation.sln
index 895403b..de006b8 100644
--- a/eDosStation.sln
+++ b/eDosStation.sln
@@ -13,10 +13,45 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "syncEdosLocal", "syncEdosLo
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Epd3Base", "EpdBase3\EpdBase3.vcxproj", "{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eDosPrep", "eDosPrep\eDosPrep.vcxproj", "{294068AF-EA7B-4851-97B2-2AB5F64167D9}"
-EndProject
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "eDosLocal", "eDosLocal\eDosLocal.sqlproj", "{3A150025-D770-4521-BA21-16843B2D5359}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{065B9F2A-7C47-4273-BD30-401749A49B08}"
+ ProjectSection(SolutionItems) = preProject
+ scripts\authorized_keys = scripts\authorized_keys
+ scripts\ConfigurationFile.ini = scripts\ConfigurationFile.ini
+ scripts\CopyAll.cmd = scripts\CopyAll.cmd
+ scripts\copyZipAndSql.cmd = scripts\copyZipAndSql.cmd
+ scripts\copyZipAndSqlDAQ6468.cmd = scripts\copyZipAndSqlDAQ6468.cmd
+ scripts\copyZipAndSqlip.cmd = scripts\copyZipAndSqlip.cmd
+ scripts\copyZipAndSqlxxx.cmd = scripts\copyZipAndSqlxxx.cmd
+ scripts\copyZipAndSql_CleanInstall.cmd = scripts\copyZipAndSql_CleanInstall.cmd
+ scripts\DeployPSModules.ps1 = scripts\DeployPSModules.ps1
+ scripts\Downgrader.ps1 = scripts\Downgrader.ps1
+ scripts\eDosStation.pub = scripts\eDosStation.pub
+ scripts\edosstation.sql = scripts\edosstation.sql
+ scripts\edosstationmaster.sql = scripts\edosstationmaster.sql
+ scripts\edosstationname.sql = scripts\edosstationname.sql
+ scripts\eDosSync.xml = scripts\eDosSync.xml
+ scripts\epd_reader.cat = scripts\epd_reader.cat
+ scripts\epd_reader.inf = scripts\epd_reader.inf
+ scripts\flash.exe = scripts\flash.exe
+ scripts\ictinteremediate.cer = scripts\ictinteremediate.cer
+ scripts\installatie.ps1 = scripts\installatie.ps1
+ scripts\installatie2.ps1 = scripts\installatie2.ps1
+ scripts\LogFolderClean.exe = scripts\LogFolderClean.exe
+ scripts\LogFolderClean.exe.config = scripts\LogFolderClean.exe.config
+ scripts\sckca.cer = scripts\sckca.cer
+ scripts\signertrust.cer = scripts\signertrust.cer
+ scripts\sqlreg.reg = scripts\sqlreg.reg
+ scripts\TWN4_xCx480_EDOS100_Edos_Badge_Reader.bix = scripts\TWN4_xCx480_EDOS100_Edos_Badge_Reader.bix
+ scripts\UpdateLocal.sql = scripts\UpdateLocal.sql
+ scripts\Updates.sql = scripts\Updates.sql
+ scripts\UpdateSql.cmd = scripts\UpdateSql.cmd
+ scripts\Upgrader.ps1 = scripts\Upgrader.ps1
+ scripts\VC_redist.x64.exe = scripts\VC_redist.x64.exe
+ scripts\VC_redist.x86.exe = scripts\VC_redist.x86.exe
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -117,20 +152,6 @@ Global
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x64.Build.0 = Release|x64
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.ActiveCfg = Release|Win32
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.Build.0 = Release|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|Any CPU.ActiveCfg = Debug|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM.ActiveCfg = Debug|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM64.ActiveCfg = Debug|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.ActiveCfg = Debug|x64
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.Build.0 = Debug|x64
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.ActiveCfg = Debug|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.Build.0 = Debug|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|Any CPU.ActiveCfg = Release|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM.ActiveCfg = Release|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM64.ActiveCfg = Release|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.ActiveCfg = Release|x64
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.Build.0 = Release|x64
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.ActiveCfg = Release|Win32
- {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.Build.0 = Release|Win32
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
diff --git a/eDosStation/EntryBadge.xaml.cs b/eDosStation/EntryBadge.xaml.cs
index f6994f4..e579699 100644
--- a/eDosStation/EntryBadge.xaml.cs
+++ b/eDosStation/EntryBadge.xaml.cs
@@ -130,7 +130,7 @@ namespace eDosStation
bool realFault = (ep.EPDDetFault>0) || (ep.EPDCalFault >0) || (ep.EPDComFault >0) || (ep.EPDEprFault >0) || (ep.EPDTrhFault>0);
- bool stopBecauseAlarmDose = ep.eDoshasAlarm && thisStation.StopBecauseAlarmDose;//&& stat
+ bool stopBecauseAlarmDose = ep.eDoshasAlarm;//&& thisStation.StopBecauseAlarmDose;
if (stopBecauseAlarmDose || ep.OtherAlarmBatLow > 0 || realFault )
{
diff --git a/eDosStation/Properties/AssemblyInfo.cs b/eDosStation/Properties/AssemblyInfo.cs
index dd15ae9..f316d36 100644
--- a/eDosStation/Properties/AssemblyInfo.cs
+++ b/eDosStation/Properties/AssemblyInfo.cs
@@ -73,5 +73,5 @@ using System.Windows;
//2025-01-07 2.50 MK3 neutron
//2026-08-07 3.00 optimized
//2026-08-17 3.01 telerik upgrade, cleanup old files
-[assembly: AssemblyVersion("3.1.0.0")]
-[assembly: AssemblyFileVersion("3.1.0.0")]
+[assembly: AssemblyVersion("3.2.0.0")]
+[assembly: AssemblyFileVersion("3.2.0.0")]
diff --git a/eDosStation/Resources/BuildDate.txt b/eDosStation/Resources/BuildDate.txt
index d44068a..6d4a97c 100644
--- a/eDosStation/Resources/BuildDate.txt
+++ b/eDosStation/Resources/BuildDate.txt
@@ -1 +1 @@
-27/08/2026 12:02:06,85
+28/08/2026 15:50:26,50
diff --git a/eDosStation/Settings.xaml b/eDosStation/Settings.xaml
index aba51f2..f36a01f 100644
--- a/eDosStation/Settings.xaml
+++ b/eDosStation/Settings.xaml
@@ -27,7 +27,8 @@
-
+
+
@@ -78,10 +79,14 @@
-
-
+
+
-
-
+
+
+
+
+
+
diff --git a/eDosStation/Settings.xaml.cs b/eDosStation/Settings.xaml.cs
index f103f1a..2d32fd2 100644
--- a/eDosStation/Settings.xaml.cs
+++ b/eDosStation/Settings.xaml.cs
@@ -127,7 +127,9 @@ namespace eDosStation
}
else thisStation.ElatecPort = string.Empty;
- step = "Update";
+ thisStation.StopBecauseAlarmDose = !( IssueWhenDoseAlarms.IsChecked != null ? IssueWhenDoseAlarms.IsChecked.Value : false);
+
+ step = "Update";
thisStation.Update();
if (thisStation.Error > 0)
@@ -319,6 +321,9 @@ namespace eDosStation
cbWriteConfig32.IsChecked = thisStation.WriteConfig32;
cbLogAll.IsChecked = thisStation.LogAll;
thisStation.splunkLog?.WriteSplunkLog(module, step, LSWLib.CLog.iseverity.info);
+
+ IssueWhenDoseAlarms.IsChecked = !thisStation.StopBecauseAlarmDose;
+
}
catch (System.Exception ex)
{
diff --git a/eDosStation/Station.cs b/eDosStation/Station.cs
index af3b011..665ee1f 100644
--- a/eDosStation/Station.cs
+++ b/eDosStation/Station.cs
@@ -73,7 +73,7 @@ namespace eDosStation
public delegate void dReceivedPersID(int persid);
public dReceivedPersID ReceivedPersid;
- internal bool StopBecauseAlarmDose;
+ internal bool StopBecauseAlarmDose; // issues when false ?
public ushort useBeepMK3()
{
@@ -90,7 +90,7 @@ namespace eDosStation
splunkLog = spl; // new spl1(Environment.MachineName,hourlyLog:true);
stationLog = null;
dataInterface = mDataInterface;
- StopBecauseAlarmDose=false;
+ StopBecauseAlarmDose=true;
Error = 0;
ErrorMessage = string.Empty;
ComPort = 0;
@@ -185,8 +185,8 @@ namespace eDosStation
RestartComFirst = rs.BoolOrDefault("RestartComFirst", false);
OnlyMK2 = rs.BoolOrDefault("OnlyMK2", false);
AllowMultipleEPD = rs.BoolOrDefault("AllowMultipleEPD", false);
- WriteConfig32 = true; // rs.BoolOrDefault("WriteConfig32", false);
- StopBecauseAlarmDose = false; // rs.BoolOrDefault("StopBecauseAlarmDose", false);
+ WriteConfig32 = rs.BoolOrDefault("WriteConfig", false);
+ StopBecauseAlarmDose = ! rs.BoolOrDefault("IssueWhenDoseAlarms", false);
}
else
{
@@ -209,7 +209,7 @@ namespace eDosStation
EPDRetries = 2;
AllowMultipleEPD = false;
WriteConfig32 = true;
- StopBecauseAlarmDose = false;
+ StopBecauseAlarmDose = true;
}
rs.Close();
splunkLog.WriteSplunkLog(module,step, spl1.iseverity.info);
@@ -295,6 +295,12 @@ namespace eDosStation
cmd.SetIfExists("OnlyMK2", OnlyMK2);
cmd.SetIfExists("AllowMultipleEPD", AllowMultipleEPD);
cmd.SetIfExists("useTestButtons", useTestButtons);
+
+ int eportnum = GetComportNum(ElatecPort);
+ cmd.SetIfExists("ElatecPort", eportnum);
+ cmd.SetIfExists("WriteConfig", WriteConfig32);
+ cmd.SetIfExists("IssueWhenDoseAlarms", !StopBecauseAlarmDose);
+
}
catch (System.Exception ex)
{
@@ -400,6 +406,23 @@ namespace eDosStation
return "COM" + comport.ToString();
}
+ public int GetComportNum(string comport)
+ {
+ if (string.IsNullOrWhiteSpace(comport))
+ return 0;
+
+ // Remove "COM" (case-insensitive) and extra spaces
+ string cleanString = comport.Replace("COM", string.Empty).Trim();
+
+ // Try parsing; return 0 if string is not a valid number
+ if (int.TryParse(cleanString, out int portNumber))
+ {
+ return portNumber;
+ }
+
+ return 0;
+ }
+
public string find()
{
string rv ;
diff --git a/scripts/DeployPSModules.ps1 b/scripts/DeployPSModules.ps1
index d7b6b70..9fdaa13 100644
--- a/scripts/DeployPSModules.ps1
+++ b/scripts/DeployPSModules.ps1
@@ -18,211 +18,204 @@ if (Test-Path -Path $SourcePath) {
exit
# SIG # Begin signature block
-# MIImpAYJKoZIhvcNAQcCoIImlTCCJpECAQExDzANBglghkgBZQMEAgEFADB5Bgor
+# MIIlWAYJKoZIhvcNAQcCoIIlSTCCJUUCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCJA2MB/1pJ1g33
-# UOqxVMXgvBfUjEkg/kEpXkl2q7g6P6CCDDYwggW8MIIDpKADAgECAgEfMA0GCSqG
-# SIb3DQEBCwUAMGYxCzAJBgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAK
-# BgNVBAcTA01vbDEPMA0GA1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNV
-# BAMTDVNDS0NFTiBJQ1QgQ0EwHhcNMTgwNTI0MDYxMTAwWhcNMzAwNjAxMTIwMDAw
-# WjBPMSEwHwYDVQQDExhWYW5kZW5icm91Y2tlIEx1YyBDUzIwMjExKjAoBgkqhkiG
-# 9w0BCQEWG2x1Yy52YW5kZW5icm91Y2tlQHNja2Nlbi5iZTCCASIwDQYJKoZIhvcN
-# AQEBBQADggEPADCCAQoCggEBAPRbMPSAdMsURs6M9TChuXZWe1LSQlVXYVHPGRln
-# QeF719tgHS1Ern70aW0PuvCECkzUTbGHw3o+bF+vj1UZWw82oOEZGannAoTyG1CI
-# xdOMc85Mdmy+Kb++9Ivxa6i4ahfpNDHE0F58TomaNyDY0dtRUDEMZw/A0AMkFmdg
-# 9BOnqrYeeLB0O/86ZkzUklRifi/Wa3ti1LV4U7fR6S4bMm7dZBh46IU2G3/oBdlN
-# YAtC3DNol+bnrcBvF+ccGwG5kVxEZg8TtpEMj00hnI+rNPjI4Ar6mE83XKak1X5/
-# xddZppx9ldJaiVujyOqy0cONhiN/vsWPdZU37LQbG1OydGUCAwEAAaOCAYowggGG
-# MAkGA1UdEwQCMAAwHQYDVR0OBBYEFN+1bIhLi6eWlLbzynleh97QuIFlMB8GA1Ud
-# IwQYMBaAFPApFPVqIRSSVlQTpD3VrfAhOsV4MAsGA1UdDwQEAwIHgDAfBgNVHSUE
-# GDAWBggrBgEFBQcDAwYKKwYBBAGCNwIBFTA6BgNVHREEMzAxgRtsdWMudmFuZGVu
-# YnJvdWNrZUBzY2tjZW4uYmWBEmx2YW5kZW5iQHNja2Nlbi5iZTA1BgNVHRIELjAs
-# hipodHRwOi8vY3JsLnNja2Nlbi5iZS9TQ0tDRU4lMjBJQ1QlMjBDQS5jcnQwOwYD
-# VR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIwSUNU
-# JTIwQ0EuY3JsMD4GCSsGAQQBgjcVBwQxMC8GJysGAQQBgjcVCISMvCGCyP13gqGT
-# IoSXlEaExpIugQGC1IQhgfrIaQIBZAIBCDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsG
-# AQUFBwMDMA0GCSqGSIb3DQEBCwUAA4ICAQBGH87fu9sNbcCPVQCdJ9jP4jT59WTZ
-# m6s5BquO10UL9i7UAEmdd0yfCHW3myNUigR6O+Oc6Wa74HbUhAk+nEimHxzP5KcN
-# nKE6lwqsIOf49J5G+2HRmTgW9tewsr39ZiB3NE5s04fHEA0I45zs8wsgyp4Mlr5v
-# 3AfzYB7gxh0Hxdm+ion7PXvbKhAyI3F7pQTYauilmLAkHnoXD6T+Osp04wR9m1+H
-# NGqLMKYyVOSdu0UnmGuqHBxpMD7hAJ8LCi5yR6t6s4BNCczwhzUpo6ZgrtLmKCac
-# DmZ6SJMqsGFwan/GxnLSvw5QpVXUVJidDfTflMeJrfWhDOEt7jx9oQWQ249uzxlq
-# JMVfBt1YZDq4gr76yjK6VY7F6540ECog4auPte4NoiT5UPdE3QHSD/82/cdLoVuh
-# ELR4p4bfJ7PONT7x8iZzI8BoASh9SKJBh06mcmyJosOkc77Wv3ykqal7R+/LQi9g
-# eJwku6Ti0XIy9UFGBbUD4m18e5cKdqDzyIHwAne0JR0ZEILPzITWviFuSXKqGP0b
-# kSbGgpl+LuaCHcKAv+1FQBc2oWW0yPdxCUYpwo9QfTTh0qYXABQAbibOw7VKTnRL
-# sS92m9pb6wn9tYyNfMu6r7EXCuxJNDbYpKbxeadfY0arCzlOT6mpC6lzBqfgKyN+
-# VWoy9rmdzhjEjjCCBnIwggRaoAMCAQICEzgAAAACbukOrXYB5dcAAAAAAAIwDQYJ
-# KoZIhvcNAQELBQAwZzELMAkGA1UEBhMCQkUxEjAQBgNVBAgTCUFudHdlcnBlbjEM
-# MAoGA1UEBxMDTW9sMQ8wDQYDVQQKEwZTQ0tDRU4xDDAKBgNVBAsTA0lDVDEXMBUG
-# A1UEAxMOU0NLQ0VOIFJvb3QgQ0EwHhcNMTcwNjIzMTEzOTM0WhcNMzIwNjIzMTE0
-# OTM0WjBmMQswCQYDVQQGEwJCRTESMBAGA1UECBMJQW50d2VycGVuMQwwCgYDVQQH
-# EwNNb2wxDzANBgNVBAoTBlNDS0NFTjEMMAoGA1UECxMDSUNUMRYwFAYDVQQDEw1T
-# Q0tDRU4gSUNUIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsW1u
-# J8gCKQwjdhAhr6eJJNXw+wffi5p2RB48uzTaQh2Y89P+75NFhk7qeOW0tVwacxYk
-# ubMvgNqasA9RslymREsxLfloMCidRPSQj8o0KE2cfLYojYre1TChFxc0PZobibZ7
-# BTsU2v75GQjnsEEMmxzwJLAjSU2mFVKJKjrKs4Xt/q6j3w0fdrRz0ba8zSMbTHO2
-# K8Cd1Rq3GQDLPythJyDxzo6YRE7TFOFcXGrIpFXvmy1XPc/ItiHwTocOmQ1msF+4
-# 6W0gfWtbFLt8bC/CnuE2ZQPnAmpq3lOUu8cOq/2eqhihAeAli5McYepaK+qr1JtL
-# NfgTSkkFFw27c5cPXwFCCE0ryJdN+qN4Xdk3J2iz0hayEJ4sGaimdJTXv/OTmSxx
-# KGMnPYV+BTvk/PDJnGjWQqOryf0PWgmwVQ1KAowaPjBAXJOEotzNnzW0/FKtvgJY
-# Lk3xFs3sJJ6EG6D02wB2RNszNGM66tyqqx/Z3651xwzgkYYR1ETdmddcqL6/3a+H
-# ifS5K99N+q7rX/Rp31AUlNsb53xhh43NWUAg5Tzrb9J54mBR6Z/MafmTVHcK2nK6
-# RRYaUfxs/WuE2+OzX7MdG/URi1lVuOu7hp7AKnSjcLnOcBG7lkSK1Q1pCuACYMkv
-# Cl+7keio376akUfumX3HqEVgK8ttZiRgiVHR7Q0CAwEAAaOCARYwggESMBAGCSsG
-# AQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTwKRT1aiEUklZUE6Q91a3wITrFeDAZBgkr
-# BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
-# AwEB/zAfBgNVHSMEGDAWgBRSvxsquCggUTGvI6e+I5TG0fkUMDA8BgNVHR8ENTAz
-# MDGgL6AthitodHRwOi8vY3JsLnNja2Nlbi5iZS9TQ0tDRU4lMjBSb290JTIwQ0Eu
-# Y3JsMEcGCCsGAQUFBwEBBDswOTA3BggrBgEFBQcwAoYraHR0cDovL2NybC5zY2tj
-# ZW4uYmUvU0NLQ0VOJTIwUm9vdCUyMENBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEA
-# hsQ1eNAeFzKKGY9KW0VMGrLUbtccjHoeKlGdVn+yhS9xhSaIFgm00IPVO5zh9jKt
-# gCA3o81TqY0w1WoRK1U8t89On5RZYVy39pDyu+oBlHgul9KOuJbIKLgh0VgEPvY3
-# vM0h0bLdxIrnlIxchVxgs5y/h/wLKmXLjsg+AuYzsJ4+9GAD5SsdFGp2jiKPf9aw
-# 6zG67an2yTqtvPfeoRpkMWO+Mx39CWWwfU3MaQySlAx0/JzZcqWzk6QFgN1h89wS
-# BHD0mMFdnahEth5y9QhPkLydPniibF5VZ59gbUVlpFFz8VddmBtx9xfe5aIYEjkj
-# 35HmEW/FN7qwnJP3dCljzFiqSueKqiFIN3punjHbMUoAxJnibx11Xz4pFm5mdk8v
-# 95r+sncH8SFK/P5nUjjEYIBRInZiovl7C8KfI1RD9lXJDPdw5yVfkCpkCr/rYNNM
-# BHfDYZ+G1NEu9WzE2NrknC4H4qoNJLmMjVPTswcIT780iOvFZRf1ql+0e2TKUHCO
-# kZ+plXtl3H6MimrNk6B/ZQAy4mETNH6ceaoudV7X5Y7HzbTwSXCSw6GCiQMdYXgs
-# Fp+lioorEmFZhVc2PTs+oUXbMi8IUaCyKEm6tMZHJ+PGU1YBE8Szyj5nI1SUhb+a
-# HunRGlhgXPb4bnEdZVaMruxFM0UbriGwmkOEv9cPVpAxghnEMIIZwAIBATBrMGYx
-# CzAJBgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAKBgNVBAcTA01vbDEP
-# MA0GA1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVNDS0NFTiBJ
-# Q1QgQ0ECAR8wDQYJYIZIAWUDBAIBBQCggbAwGQYJKoZIhvcNAQkDMQwGCisGAQQB
-# gjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkE
-# MSIEINCmLdSRNh3mEhCGnVT7Lio9C21IOZPQrV9tqSC9p668MEQGCisGAQQBgjcC
-# AQwxNjA0oDKAMABJAG4AdABlAGcAcgBpAHQAeQAgACYAIABBAHUAdABoAGUAbgB0
-# AGkAYwBpAHQAeTANBgkqhkiG9w0BAQEFAASCAQDMhFXrAfFc3OddL++fyPhFz1Co
-# FGRO3rO+ouNXZXOIpFK/3ZQB23WUBFC8WCrZWsOflJQ8NK6WxxVGZMX4tJ30SaHR
-# rpB2lTQG1PuEMXktpWMNz8MNNN9iwrRyLrxmZIi06mhKUYBg96v+D86HREAHtyuz
-# ksd2mBt5FE3H0/+ZupeXe/+xTmOImkknbA8+j06uycb5VD1LNvlrcV1OvY5+djox
-# CqkN1/FVgiXVJF+wGOknjJQ0EW8PiUQ2XAt58FuZz4SmPOHkJemC+gC2Sw6crSjh
-# yAHQxCLy5oaC3KemDctPXFX9wIo4qWdb0hX3J/wMI5Mt6jelNVeINcnAMxgPoYIX
-# dzCCF3MGCisGAQQBgjcDAwExghdjMIIXXwYJKoZIhvcNAQcCoIIXUDCCF0wCAQMx
-# DzANBglghkgBZQMEAgEFADB4BgsqhkiG9w0BCRABBKBpBGcwZQIBAQYJYIZIAYb9
-# bAcBMDEwDQYJYIZIAWUDBAIBBQAEICbE7gg1Faj2fbphgFqcZX6jw/JpE9VS6EbP
-# rVJlbRXgAhEAnonutmZYUvElnaAcD6f9tBgPMjAyNjAyMDUwOTQ2NTJaoIITOjCC
-# Bu0wggTVoAMCAQICEAqA7xhLjfEFgtHEdqeVdGgwDQYJKoZIhvcNAQELBQAwaTEL
-# MAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhE
-# aWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNIQTI1NiAy
-# MDI1IENBMTAeFw0yNTA2MDQwMDAwMDBaFw0zNjA5MDMyMzU5NTlaMGMxCzAJBgNV
-# BAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNl
-# cnQgU0hBMjU2IFJTQTQwOTYgVGltZXN0YW1wIFJlc3BvbmRlciAyMDI1IDEwggIi
-# MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDQRqwtEsae0OquYFazK1e6b1H/
-# hnAKAd/KN8wZQjBjMqiZ3xTWcfsLwOvRxUwXcGx8AUjni6bz52fGTfr6PHRNv6T7
-# zsf1Y/E3IU8kgNkeECqVQ+3bzWYesFtkepErvUSbf+EIYLkrLKd6qJnuzK8Vcn0D
-# vbDMemQFoxQ2Dsw4vEjoT1FpS54dNApZfKY61HAldytxNM89PZXUP/5wWWURK+If
-# xiOg8W9lKMqzdIo7VA1R0V3Zp3DjjANwqAf4lEkTlCDQ0/fKJLKLkzGBTpx6EYev
-# vOi7XOc4zyh1uSqgr6UnbksIcFJqLbkIXIPbcNmA98Oskkkrvt6lPAw/p4oDSRZr
-# eiwB7x9ykrjS6GS3NR39iTTFS+ENTqW8m6THuOmHHjQNC3zbJ6nJ6SXiLSvw4Smz
-# 8U07hqF+8CTXaETkVWz0dVVZw7knh1WZXOLHgDvundrAtuvz0D3T+dYaNcwafsVC
-# GZKUhQPL1naFKBy1p6llN3QgshRta6Eq4B40h5avMcpi54wm0i2ePZD5pPIssosz
-# QyF4//3DoK2O65Uck5Wggn8O2klETsJ7u8xEehGifgJYi+6I03UuT1j7FnrqVrOz
-# aQoVJOeeStPeldYRNMmSF3voIgMFtNGh86w3ISHNm0IaadCKCkUe2LnwJKa8TIlw
-# CUNVwppwn4D3/Pt5pwIDAQABo4IBlTCCAZEwDAYDVR0TAQH/BAIwADAdBgNVHQ4E
-# FgQU5Dv88jHt/f3X85FxYxlQQ89hjOgwHwYDVR0jBBgwFoAU729TSunkBnx6yuKQ
-# VvYv1Ensy04wDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMI
-# MIGVBggrBgEFBQcBAQSBiDCBhTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGln
-# aWNlcnQuY29tMF0GCCsGAQUFBzAChlFodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5j
-# b20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0MDk2U0hBMjU2MjAy
-# NUNBMS5jcnQwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL2NybDMuZGlnaWNlcnQu
-# Y29tL0RpZ2lDZXJ0VHJ1c3RlZEc0VGltZVN0YW1waW5nUlNBNDA5NlNIQTI1NjIw
-# MjVDQTEuY3JsMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCGSAGG/WwHATANBgkq
-# hkiG9w0BAQsFAAOCAgEAZSqt8RwnBLmuYEHs0QhEnmNAciH45PYiT9s1i6UKtW+F
-# ERp8FgXRGQ/YAavXzWjZhY+hIfP2JkQ38U+wtJPBVBajYfrbIYG+Dui4I4PCvHpQ
-# uPqFgqp1PzC/ZRX4pvP/ciZmUnthfAEP1HShTrY+2DE5qjzvZs7JIIgt0GCFD9kt
-# x0LxxtRQ7vllKluHWiKk6FxRPyUPxAAYH2Vy1lNM4kzekd8oEARzFAWgeW3az2xe
-# jEWLNN4eKGxDJ8WDl/FQUSntbjZ80FU3i54tpx5F/0Kr15zW/mJAxZMVBrTE2oi0
-# fcI8VMbtoRAmaaslNXdCG1+lqvP4FbrQ6IwSBXkZagHLhFU9HCrG/syTRLLhAezu
-# /3Lr00GrJzPQFnCEH1Y58678IgmfORBPC1JKkYaEt2OdDh4GmO0/5cHelAK2/gTl
-# QJINqDr6JfwyYHXSd+V08X1JUPvB4ILfJdmL+66Gp3CSBXG6IwXMZUXBhtCyIaeh
-# r0XkBoDIGMUG1dUtwq1qmcwbdUfcSYCn+OwncVUXf53VJUNOaMWMts0VlRYxe5nK
-# +At+DI96HAlXHAL5SlfYxJ7La54i71McVWRP66bW+yERNpbJCjyCYG2j+bdpxo/1
-# Cy4uPcU3AWVPGrbn5PhDBf3Froguzzhk++ami+r3Qrx5bIbY3TVzgiFI7Gq3zWcw
-# gga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmGMA0GCSqGSIb3DQEBCwUAMGIx
-# CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-# dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBH
-# NDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5NTlaMGkxCzAJBgNVBAYTAlVT
-# MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1
-# c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBTSEEyNTYgMjAyNSBDQTEwggIi
-# MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0eDHTCphBcr48RsAcrHXbo0Zo
-# dLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+RuwOnPhof6pvF4uGjwjqNjfEvUi
-# 6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4Bt0mAxAHeHYNnQxqXmRinvuNg
-# xVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1UkxBvMgEdgkFiDNYiOTx4OtiF
-# cMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTcaarps0wjUjsZvkgFkriK9tUKJ
-# m/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zbCclF83bRVFLeGkuAhHiGPMvS
-# GmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnGpTXiUOeSLsJygoLPp66bkDX1
-# ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/AMOMCZIVNSaz7BX8VtYGqLt9
-# MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v5ydPpOjL6s36czwzsucuoKs7
-# Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoiwOrUG2ZdSoQbU2rMkpLiQ6bG
-# RinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm2qA+sdFUeEY0qVjPKOWug/G6
-# X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgwBgEB/wIBADAd
-# BgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04wHwYDVR0jBBgwFoAU7NfjgtJx
-# XWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUF
-# BwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGln
-# aWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5j
-# b20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJo
-# dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNy
-# bDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJKoZIhvcNAQEL
-# BQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Qh8WIGjB/T8ObXAZz8OjuhUxj
-# aaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3YTj+IQhQE7jU/kXjjytJgnn0
-# hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQwr8Myb9rEVKChHyfpzee5kH0
-# F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/wdG2th9y1IsA0QF8dTXqvcnT
-# mpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81hjajV/gxdEkMx1NKU4uHQcKf
-# ZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00TYr2Lr3ty9qIijanrUR3anzE
-# wlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNjqFzeGxcytL5TTLL4ZaoBdqbh
-# OhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0cuJG7uEBYTptMSbhdhGQDpOX
-# gpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9sC+NJpud/v4+7RWsWCiKi9EO
-# LLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0LckTetiSuEtQvLsNz3Qbp7wG
-# WqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2tszWkPZPubdcMIIFjTCCBHWg
-# AwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG
-# EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-# cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcN
-# MjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEVMBMG
-# A1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
-# HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqGSIb3DQEB
-# AQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
-# pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+
-# n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYykt
-# zuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw
-# 2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQjdjUN6Qu
-# BX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/CNdaSaTC
-# 5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtmmnTK
-# 3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3
-# IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEP
-# lAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98
-# THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t9dmpsh3l
-# GwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7NfjgtJx
-# XWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SSy4IxLVGLp6chnfNtyA8w
-# DgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0
-# cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0
-# cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MEUGA1Ud
-# HwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFz
-# c3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRVHSAAMA0GCSqGSIb3DQEB
-# DAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyhhyzshV6pGrsi+IcaaVQi
-# 7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO0Cre+i1Wz/n096wwepqL
-# sl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo8L8vC6bp8jQ87PcDx4eo
-# 0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSMb++hUD38dglohJ9vytsgjTVg
-# HAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5xaiNrIv8SuFQtJ37YOtnw
-# toeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMYIDfDCCA3gCAQEwfTBpMQswCQYDVQQG
-# EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0
-# IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0Ex
-# AhAKgO8YS43xBYLRxHanlXRoMA0GCWCGSAFlAwQCAQUAoIHRMBoGCSqGSIb3DQEJ
-# AzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwMjA1MDk0NjUyWjAr
-# BgsqhkiG9w0BCRACDDEcMBowGDAWBBTdYjCshgotMGvaOLFoeVIwB/tBfjAvBgkq
-# hkiG9w0BCQQxIgQgUFtpboN0qGPi//ipQ00UflrBkqWH3O8LLrOthuRQWt8wNwYL
-# KoZIhvcNAQkQAi8xKDAmMCQwIgQgSqA/oizXXITFXJOPgo5na5yuyrM/420mmqM0
-# 8UYRCjMwDQYJKoZIhvcNAQEBBQAEggIAreUnW5bppL2bd9PCn2w12J9brhE3KLLV
-# tlJFcTxSTvd1sOFNAyM8YNcnXiXkS9sNVnzB74SQXIah0ozIgAn/sReG/4dfcV4C
-# ZCg49Q9XmCVZvqZv62vTfSo9WcuqBKv6B49cC1jezwaV+TYScpn3Ki5mQmApZBhU
-# 8dqg5mlDXoAK5dkJe4tI7vajeMSMwuSSGTcqRhGyPJnrjYOb85SbmIrqPgQpi49Z
-# etIrQPZHKnKwwN4cKAbI3WINbGSUVF0ZfU2AKW7h/CjK4SMB2f5zmrNqdnmBM3Xy
-# IVevAk+v9Uah5PqRm0xAUbMJvMKjNDKDhSyFP0eBC5fNytUucGPnwW4hyyqREzWm
-# GBg4v+ZXHgIoNKYQ9jCXic4TxLoNCTVAmAdKU8Fibj+TMEd0GrhkfQ0OoV8O2EMM
-# 1K3LtXJ/OslJhGrzlONFhKiFXIfyjcb1uSjsX58uHJw/PX/VSOG8CLxZ1PiKQNA9
-# bLTk7zkP6Kijk6pRvYHVx1rYXmq6lw6BTLNjcMfDOsfIaSKZ+HfDQmaP45VrNivj
-# 4tRDGTx1cfoybRqlPvXScagLeRQWx5BfTOn/lnaptr8ZXDh4j7ju4n3ormKF0xPX
-# 66vv8fcVZZmyU/Rlcmqam3mOJyBRgLWHbFEHUzQfkbopvuTDHjkJX3ytj7eKZi03
-# k/eo60iusKE=
+# UOqxVMXgvBfUjEkg/kEpXkl2q7g6P6CCH3AwggWNMIIEdaADAgECAhAOmxiO+dAt
+# 5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
+# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
+# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBa
+# Fw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
+# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD
+# ZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+# ggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3E
+# MB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKy
+# unWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsF
+# xl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU1
+# 5zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJB
+# MtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObUR
+# WBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6
+# nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxB
+# YKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5S
+# UUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+x
+# q4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIB
+# NjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwP
+# TzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMC
+# AYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
+# Y2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv
+# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0
+# aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENB
+# LmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0Nc
+# Vec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnov
+# Lbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65Zy
+# oUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFW
+# juyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPF
+# mCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9z
+# twGpn1eqXijiuZQwggW8MIIDpKADAgECAgEfMA0GCSqGSIb3DQEBCwUAMGYxCzAJ
+# BgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAKBgNVBAcTA01vbDEPMA0G
+# A1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVNDS0NFTiBJQ1Qg
+# Q0EwHhcNMTgwNTI0MDYxMTAwWhcNMzAwNjAxMTIwMDAwWjBPMSEwHwYDVQQDExhW
+# YW5kZW5icm91Y2tlIEx1YyBDUzIwMjExKjAoBgkqhkiG9w0BCQEWG2x1Yy52YW5k
+# ZW5icm91Y2tlQHNja2Nlbi5iZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+# ggEBAPRbMPSAdMsURs6M9TChuXZWe1LSQlVXYVHPGRlnQeF719tgHS1Ern70aW0P
+# uvCECkzUTbGHw3o+bF+vj1UZWw82oOEZGannAoTyG1CIxdOMc85Mdmy+Kb++9Ivx
+# a6i4ahfpNDHE0F58TomaNyDY0dtRUDEMZw/A0AMkFmdg9BOnqrYeeLB0O/86ZkzU
+# klRifi/Wa3ti1LV4U7fR6S4bMm7dZBh46IU2G3/oBdlNYAtC3DNol+bnrcBvF+cc
+# GwG5kVxEZg8TtpEMj00hnI+rNPjI4Ar6mE83XKak1X5/xddZppx9ldJaiVujyOqy
+# 0cONhiN/vsWPdZU37LQbG1OydGUCAwEAAaOCAYowggGGMAkGA1UdEwQCMAAwHQYD
+# VR0OBBYEFN+1bIhLi6eWlLbzynleh97QuIFlMB8GA1UdIwQYMBaAFPApFPVqIRSS
+# VlQTpD3VrfAhOsV4MAsGA1UdDwQEAwIHgDAfBgNVHSUEGDAWBggrBgEFBQcDAwYK
+# KwYBBAGCNwIBFTA6BgNVHREEMzAxgRtsdWMudmFuZGVuYnJvdWNrZUBzY2tjZW4u
+# YmWBEmx2YW5kZW5iQHNja2Nlbi5iZTA1BgNVHRIELjAshipodHRwOi8vY3JsLnNj
+# a2Nlbi5iZS9TQ0tDRU4lMjBJQ1QlMjBDQS5jcnQwOwYDVR0fBDQwMjAwoC6gLIYq
+# aHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIwSUNUJTIwQ0EuY3JsMD4GCSsG
+# AQQBgjcVBwQxMC8GJysGAQQBgjcVCISMvCGCyP13gqGTIoSXlEaExpIugQGC1IQh
+# gfrIaQIBZAIBCDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsGAQUFBwMDMA0GCSqGSIb3
+# DQEBCwUAA4ICAQBGH87fu9sNbcCPVQCdJ9jP4jT59WTZm6s5BquO10UL9i7UAEmd
+# d0yfCHW3myNUigR6O+Oc6Wa74HbUhAk+nEimHxzP5KcNnKE6lwqsIOf49J5G+2HR
+# mTgW9tewsr39ZiB3NE5s04fHEA0I45zs8wsgyp4Mlr5v3AfzYB7gxh0Hxdm+ion7
+# PXvbKhAyI3F7pQTYauilmLAkHnoXD6T+Osp04wR9m1+HNGqLMKYyVOSdu0UnmGuq
+# HBxpMD7hAJ8LCi5yR6t6s4BNCczwhzUpo6ZgrtLmKCacDmZ6SJMqsGFwan/GxnLS
+# vw5QpVXUVJidDfTflMeJrfWhDOEt7jx9oQWQ249uzxlqJMVfBt1YZDq4gr76yjK6
+# VY7F6540ECog4auPte4NoiT5UPdE3QHSD/82/cdLoVuhELR4p4bfJ7PONT7x8iZz
+# I8BoASh9SKJBh06mcmyJosOkc77Wv3ykqal7R+/LQi9geJwku6Ti0XIy9UFGBbUD
+# 4m18e5cKdqDzyIHwAne0JR0ZEILPzITWviFuSXKqGP0bkSbGgpl+LuaCHcKAv+1F
+# QBc2oWW0yPdxCUYpwo9QfTTh0qYXABQAbibOw7VKTnRLsS92m9pb6wn9tYyNfMu6
+# r7EXCuxJNDbYpKbxeadfY0arCzlOT6mpC6lzBqfgKyN+VWoy9rmdzhjEjjCCBnIw
+# ggRaoAMCAQICEzgAAAACbukOrXYB5dcAAAAAAAIwDQYJKoZIhvcNAQELBQAwZzEL
+# MAkGA1UEBhMCQkUxEjAQBgNVBAgTCUFudHdlcnBlbjEMMAoGA1UEBxMDTW9sMQ8w
+# DQYDVQQKEwZTQ0tDRU4xDDAKBgNVBAsTA0lDVDEXMBUGA1UEAxMOU0NLQ0VOIFJv
+# b3QgQ0EwHhcNMTcwNjIzMTEzOTM0WhcNMzIwNjIzMTE0OTM0WjBmMQswCQYDVQQG
+# EwJCRTESMBAGA1UECBMJQW50d2VycGVuMQwwCgYDVQQHEwNNb2wxDzANBgNVBAoT
+# BlNDS0NFTjEMMAoGA1UECxMDSUNUMRYwFAYDVQQDEw1TQ0tDRU4gSUNUIENBMIIC
+# IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsW1uJ8gCKQwjdhAhr6eJJNXw
+# +wffi5p2RB48uzTaQh2Y89P+75NFhk7qeOW0tVwacxYkubMvgNqasA9RslymREsx
+# LfloMCidRPSQj8o0KE2cfLYojYre1TChFxc0PZobibZ7BTsU2v75GQjnsEEMmxzw
+# JLAjSU2mFVKJKjrKs4Xt/q6j3w0fdrRz0ba8zSMbTHO2K8Cd1Rq3GQDLPythJyDx
+# zo6YRE7TFOFcXGrIpFXvmy1XPc/ItiHwTocOmQ1msF+46W0gfWtbFLt8bC/CnuE2
+# ZQPnAmpq3lOUu8cOq/2eqhihAeAli5McYepaK+qr1JtLNfgTSkkFFw27c5cPXwFC
+# CE0ryJdN+qN4Xdk3J2iz0hayEJ4sGaimdJTXv/OTmSxxKGMnPYV+BTvk/PDJnGjW
+# QqOryf0PWgmwVQ1KAowaPjBAXJOEotzNnzW0/FKtvgJYLk3xFs3sJJ6EG6D02wB2
+# RNszNGM66tyqqx/Z3651xwzgkYYR1ETdmddcqL6/3a+HifS5K99N+q7rX/Rp31AU
+# lNsb53xhh43NWUAg5Tzrb9J54mBR6Z/MafmTVHcK2nK6RRYaUfxs/WuE2+OzX7Md
+# G/URi1lVuOu7hp7AKnSjcLnOcBG7lkSK1Q1pCuACYMkvCl+7keio376akUfumX3H
+# qEVgK8ttZiRgiVHR7Q0CAwEAAaOCARYwggESMBAGCSsGAQQBgjcVAQQDAgEAMB0G
+# A1UdDgQWBBTwKRT1aiEUklZUE6Q91a3wITrFeDAZBgkrBgEEAYI3FAIEDB4KAFMA
+# dQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW
+# gBRSvxsquCggUTGvI6e+I5TG0fkUMDA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8v
+# Y3JsLnNja2Nlbi5iZS9TQ0tDRU4lMjBSb290JTIwQ0EuY3JsMEcGCCsGAQUFBwEB
+# BDswOTA3BggrBgEFBQcwAoYraHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIw
+# Um9vdCUyMENBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAhsQ1eNAeFzKKGY9KW0VM
+# GrLUbtccjHoeKlGdVn+yhS9xhSaIFgm00IPVO5zh9jKtgCA3o81TqY0w1WoRK1U8
+# t89On5RZYVy39pDyu+oBlHgul9KOuJbIKLgh0VgEPvY3vM0h0bLdxIrnlIxchVxg
+# s5y/h/wLKmXLjsg+AuYzsJ4+9GAD5SsdFGp2jiKPf9aw6zG67an2yTqtvPfeoRpk
+# MWO+Mx39CWWwfU3MaQySlAx0/JzZcqWzk6QFgN1h89wSBHD0mMFdnahEth5y9QhP
+# kLydPniibF5VZ59gbUVlpFFz8VddmBtx9xfe5aIYEjkj35HmEW/FN7qwnJP3dClj
+# zFiqSueKqiFIN3punjHbMUoAxJnibx11Xz4pFm5mdk8v95r+sncH8SFK/P5nUjjE
+# YIBRInZiovl7C8KfI1RD9lXJDPdw5yVfkCpkCr/rYNNMBHfDYZ+G1NEu9WzE2Nrk
+# nC4H4qoNJLmMjVPTswcIT780iOvFZRf1ql+0e2TKUHCOkZ+plXtl3H6MimrNk6B/
+# ZQAy4mETNH6ceaoudV7X5Y7HzbTwSXCSw6GCiQMdYXgsFp+lioorEmFZhVc2PTs+
+# oUXbMi8IUaCyKEm6tMZHJ+PGU1YBE8Szyj5nI1SUhb+aHunRGlhgXPb4bnEdZVaM
+# ruxFM0UbriGwmkOEv9cPVpAwgga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmG
+# MA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
+# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD
+# ZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5
+# NTlaMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8G
+# A1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBT
+# SEEyNTYgMjAyNSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0
+# eDHTCphBcr48RsAcrHXbo0ZodLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+Ruw
+# OnPhof6pvF4uGjwjqNjfEvUi6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4B
+# t0mAxAHeHYNnQxqXmRinvuNgxVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1U
+# kxBvMgEdgkFiDNYiOTx4OtiFcMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTca
+# arps0wjUjsZvkgFkriK9tUKJm/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zb
+# CclF83bRVFLeGkuAhHiGPMvSGmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnG
+# pTXiUOeSLsJygoLPp66bkDX1ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/
+# AMOMCZIVNSaz7BX8VtYGqLt9MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v
+# 5ydPpOjL6s36czwzsucuoKs7Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoi
+# wOrUG2ZdSoQbU2rMkpLiQ6bGRinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm
+# 2qA+sdFUeEY0qVjPKOWug/G6X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYD
+# VR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04w
+# HwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGG
+# MBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcw
+# AYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8v
+# Y2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBD
+# BgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNl
+# cnRUcnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgB
+# hv1sBwEwDQYJKoZIhvcNAQELBQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Q
+# h8WIGjB/T8ObXAZz8OjuhUxjaaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3
+# YTj+IQhQE7jU/kXjjytJgnn0hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQ
+# wr8Myb9rEVKChHyfpzee5kH0F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/
+# wdG2th9y1IsA0QF8dTXqvcnTmpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81
+# hjajV/gxdEkMx1NKU4uHQcKfZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00
+# TYr2Lr3ty9qIijanrUR3anzEwlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNj
+# qFzeGxcytL5TTLL4ZaoBdqbhOhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0
+# cuJG7uEBYTptMSbhdhGQDpOXgpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9
+# sC+NJpud/v4+7RWsWCiKi9EOLLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0
+# LckTetiSuEtQvLsNz3Qbp7wGWqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2
+# tszWkPZPubdcMIIG7TCCBNWgAwIBAgIQCoDvGEuN8QWC0cR2p5V0aDANBgkqhkiG
+# 9w0BAQsFADBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
+# QTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQw
+# OTYgU0hBMjU2IDIwMjUgQ0ExMB4XDTI1MDYwNDAwMDAwMFoXDTM2MDkwMzIzNTk1
+# OVowYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYD
+# VQQDEzJEaWdpQ2VydCBTSEEyNTYgUlNBNDA5NiBUaW1lc3RhbXAgUmVzcG9uZGVy
+# IDIwMjUgMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANBGrC0Sxp7Q
+# 6q5gVrMrV7pvUf+GcAoB38o3zBlCMGMyqJnfFNZx+wvA69HFTBdwbHwBSOeLpvPn
+# Z8ZN+vo8dE2/pPvOx/Vj8TchTySA2R4QKpVD7dvNZh6wW2R6kSu9RJt/4QhguSss
+# p3qome7MrxVyfQO9sMx6ZAWjFDYOzDi8SOhPUWlLnh00Cll8pjrUcCV3K3E0zz09
+# ldQ//nBZZREr4h/GI6Dxb2UoyrN0ijtUDVHRXdmncOOMA3CoB/iUSROUINDT98ok
+# souTMYFOnHoRh6+86Ltc5zjPKHW5KqCvpSduSwhwUmotuQhcg9tw2YD3w6ySSSu+
+# 3qU8DD+nigNJFmt6LAHvH3KSuNLoZLc1Hf2JNMVL4Q1OpbybpMe46YceNA0LfNsn
+# qcnpJeItK/DhKbPxTTuGoX7wJNdoRORVbPR1VVnDuSeHVZlc4seAO+6d2sC26/PQ
+# PdP51ho1zBp+xUIZkpSFA8vWdoUoHLWnqWU3dCCyFG1roSrgHjSHlq8xymLnjCbS
+# LZ49kPmk8iyyizNDIXj//cOgrY7rlRyTlaCCfw7aSUROwnu7zER6EaJ+AliL7ojT
+# dS5PWPsWeupWs7NpChUk555K096V1hE0yZIXe+giAwW00aHzrDchIc2bQhpp0IoK
+# RR7YufAkprxMiXAJQ1XCmnCfgPf8+3mnAgMBAAGjggGVMIIBkTAMBgNVHRMBAf8E
+# AjAAMB0GA1UdDgQWBBTkO/zyMe39/dfzkXFjGVBDz2GM6DAfBgNVHSMEGDAWgBTv
+# b1NK6eQGfHrK4pBW9i/USezLTjAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAww
+# CgYIKwYBBQUHAwgwgZUGCCsGAQUFBwEBBIGIMIGFMCQGCCsGAQUFBzABhhhodHRw
+# Oi8vb2NzcC5kaWdpY2VydC5jb20wXQYIKwYBBQUHMAKGUWh0dHA6Ly9jYWNlcnRz
+# LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQw
+# OTZTSEEyNTYyMDI1Q0ExLmNydDBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vY3Js
+# My5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0
+# MDk2U0hBMjU2MjAyNUNBMS5jcmwwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZI
+# AYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQBlKq3xHCcEua5gQezRCESeY0ByIfjk
+# 9iJP2zWLpQq1b4URGnwWBdEZD9gBq9fNaNmFj6Eh8/YmRDfxT7C0k8FUFqNh+tsh
+# gb4O6Lgjg8K8elC4+oWCqnU/ML9lFfim8/9yJmZSe2F8AQ/UdKFOtj7YMTmqPO9m
+# zskgiC3QYIUP2S3HQvHG1FDu+WUqW4daIqToXFE/JQ/EABgfZXLWU0ziTN6R3ygQ
+# BHMUBaB5bdrPbF6MRYs03h4obEMnxYOX8VBRKe1uNnzQVTeLni2nHkX/QqvXnNb+
+# YkDFkxUGtMTaiLR9wjxUxu2hECZpqyU1d0IbX6Wq8/gVutDojBIFeRlqAcuEVT0c
+# Ksb+zJNEsuEB7O7/cuvTQasnM9AWcIQfVjnzrvwiCZ85EE8LUkqRhoS3Y50OHgaY
+# 7T/lwd6UArb+BOVAkg2oOvol/DJgddJ35XTxfUlQ+8Hggt8l2Yv7roancJIFcboj
+# BcxlRcGG0LIhp6GvReQGgMgYxQbV1S3CrWqZzBt1R9xJgKf47CdxVRd/ndUlQ05o
+# xYy2zRWVFjF7mcr4C34Mj3ocCVccAvlKV9jEnstrniLvUxxVZE/rptb7IRE2lskK
+# PIJgbaP5t2nGj/ULLi49xTcBZU8atufk+EMF/cWuiC7POGT75qaL6vdCvHlshtjd
+# NXOCIUjsarfNZzGCBT4wggU6AgEBMGswZjELMAkGA1UEBhMCQkUxEjAQBgNVBAgT
+# CUFudHdlcnBlbjEMMAoGA1UEBxMDTW9sMQ8wDQYDVQQKEwZTQ0tDRU4xDDAKBgNV
+# BAsTA0lDVDEWMBQGA1UEAxMNU0NLQ0VOIElDVCBDQQIBHzANBglghkgBZQMEAgEF
+# AKB8MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEE
+# MBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCDQ
+# pi3UkTYd5hIQhp1U+y4qPQttSDmT0K1fbakgvaeuvDANBgkqhkiG9w0BAQEFAASC
+# AQBNip9BmXmacdNMIKGgof3l4qYO+6K0NyMnRFSiQJ/PvcPUN431IrjU4sdd2kR5
+# vyC0e5sjmqB4Mtf08MALOcfcSQ9fHznHZ1qiREtLUJCaNYO7XKmy0RZJgQxBT0yh
+# YSXLgxg2WWBo/1rYOevDXVVQ/a9jhZhBYAOdKWHp1AXK9VPGxWwpHNJ52pBxK/If
+# 5jpZbh7YI/9uWf/u0B+VxTwRSMtsgm9R4O/MkI6z2NnFvOi/Nui+OZvhVArCNN47
+# 3R3M1vkY2A6jkpJETuBFg0NFd/f/7DamMatzMm2H7N1yEstNLBoWUXlqMAA5JswX
+# N6NENswgLIvVBRO4wn8UuKneoYIDJjCCAyIGCSqGSIb3DQEJBjGCAxMwggMPAgEB
+# MH0waTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYD
+# VQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNI
+# QTI1NiAyMDI1IENBMQIQCoDvGEuN8QWC0cR2p5V0aDANBglghkgBZQMEAgEFAKBp
+# MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDgy
+# ODA3NDA1MFowLwYJKoZIhvcNAQkEMSIEIG3XT2TzF+o0dETSdwuXEapFlkYC6XzP
+# hmIM9zcGVDAKMA0GCSqGSIb3DQEBAQUABIICAMhawcoAwPvkoaFagHUAloQPdO6f
+# E62kM7eXkZ7xQjedOs+qpbn08U9P8T6BO+V9duPpos4EUdpHffCNX7cN0EQjNqR+
+# irdkhVg1fY9E9Uvp7xo3UQwPE3TvbpLfL2uUp4MV3nJo+mrg7p4Tgi47JEtvoQqo
+# 2mlWRMsiuGdJ0PRRyOTpPxhVTSHir7TZRZBF1qTO2065ErmMCeoLtCONtjN0LvdR
+# z7eR2tW5drGIQInLQFbW0aJ/F7OyCP2mkgK3CGp6FS+bwzk9osYnhCScBxvF3s/0
+# CFA2xhD+HygfAQJGdEg03IXWQJQWiScV3ZrDqqZQqw5Ikn7u0xHsg8W1BTgFzopF
+# q6n/uZRV/jnkzWu0gqEBarjiIo6w6RyWFtayfuSp7SSDQaFO9mZrAlE2EeoBKpaj
+# NdTYJKObNw1Q2cKdtbJMhIZ7sMKP3jUcyiRQX0Q4J4DZlLElbWH7Bac0NALfaRX2
+# KCrouNmlTw+O4vvsoWaQ/ROA6LS7yufMJYFAhsBEaF/WwfRmIe6IRAMQnPVGwnef
+# 38PJL2DHBgKkK2/JpzO6/z/YK/6q0FlF2W3EuVwncrK5s/gvgzWzGNMEzXNOS0oJ
+# P4+VAObDj3Sh+fcKIhdBd4UKqru9SyoNONwO4B+wTMNrpFnba4kGLl94lT8usdTp
+# dOB6d9nI2RXErm6o
# SIG # End signature block
diff --git a/scripts/Downgrader.ps1 b/scripts/Downgrader.ps1
new file mode 100644
index 0000000..660af66
--- /dev/null
+++ b/scripts/Downgrader.ps1
@@ -0,0 +1,224 @@
+echo "start Powershell as admin"
+Set-ExecutionPolicy -ExecutionPolicy unrestricted
+
+
+echo Stop edossync
+$psync="C:\Program Files\eDos\synceDosLocal"
+$taskname="eDosSync"
+$t = Get-ScheduledTask -TaskName $taskname -ea ignore
+Stop-ScheduledTask -TaskName $taskname
+
+
+
+
+echo Copy soft
+Expand-Archive -Force c:\software\eDosStation25.zip "c:\program files\edos\edosStation"
+Expand-Archive -Force c:\software\eDosSync.zip "c:\program files\edos\synceDosLocal"
+echo Sql Updates
+
+Start-ScheduledTask -TaskName $taskname
+
+
+exit
+
+# SIG # Begin signature block
+# MIIlPAYJKoZIhvcNAQcCoIIlLTCCJSkCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUuA7T+1F8RGm8cVT8haqFrNUP
+# AxGggh9wMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0B
+# AQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
+# VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk
+# IElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQsw
+# CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+# ZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQw
+# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz
+# 7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS
+# 5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7
+# bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfI
+# SKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jH
+# trHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14
+# Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2
+# h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt
+# 6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPR
+# iQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ER
+# ElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4K
+# Jpn15GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAd
+# BgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SS
+# y4IxLVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAk
+# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAC
+# hjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURS
+# b290Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0
+# LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRV
+# HSAAMA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyh
+# hyzshV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO
+# 0Cre+i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo
+# 8L8vC6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSMb++h
+# UD38dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5x
+# aiNrIv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMIIFvDCCA6Sg
+# AwIBAgIBHzANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJCRTESMBAGA1UECBMJ
+# QW50d2VycGVuMQwwCgYDVQQHEwNNb2wxDzANBgNVBAoTBlNDS0NFTjEMMAoGA1UE
+# CxMDSUNUMRYwFAYDVQQDEw1TQ0tDRU4gSUNUIENBMB4XDTE4MDUyNDA2MTEwMFoX
+# DTMwMDYwMTEyMDAwMFowTzEhMB8GA1UEAxMYVmFuZGVuYnJvdWNrZSBMdWMgQ1My
+# MDIxMSowKAYJKoZIhvcNAQkBFhtsdWMudmFuZGVuYnJvdWNrZUBzY2tjZW4uYmUw
+# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0WzD0gHTLFEbOjPUwobl2
+# VntS0kJVV2FRzxkZZ0Hhe9fbYB0tRK5+9GltD7rwhApM1E2xh8N6Pmxfr49VGVsP
+# NqDhGRmp5wKE8htQiMXTjHPOTHZsvim/vvSL8WuouGoX6TQxxNBefE6Jmjcg2NHb
+# UVAxDGcPwNADJBZnYPQTp6q2HniwdDv/OmZM1JJUYn4v1mt7YtS1eFO30ekuGzJu
+# 3WQYeOiFNht/6AXZTWALQtwzaJfm563AbxfnHBsBuZFcRGYPE7aRDI9NIZyPqzT4
+# yOAK+phPN1ympNV+f8XXWaacfZXSWolbo8jqstHDjYYjf77Fj3WVN+y0GxtTsnRl
+# AgMBAAGjggGKMIIBhjAJBgNVHRMEAjAAMB0GA1UdDgQWBBTftWyIS4unlpS288p5
+# Xofe0LiBZTAfBgNVHSMEGDAWgBTwKRT1aiEUklZUE6Q91a3wITrFeDALBgNVHQ8E
+# BAMCB4AwHwYDVR0lBBgwFgYIKwYBBQUHAwMGCisGAQQBgjcCARUwOgYDVR0RBDMw
+# MYEbbHVjLnZhbmRlbmJyb3Vja2VAc2NrY2VuLmJlgRJsdmFuZGVuYkBzY2tjZW4u
+# YmUwNQYDVR0SBC4wLIYqaHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIwSUNU
+# JTIwQ0EuY3J0MDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwuc2NrY2VuLmJl
+# L1NDS0NFTiUyMElDVCUyMENBLmNybDA+BgkrBgEEAYI3FQcEMTAvBicrBgEEAYI3
+# FQiEjLwhgsj9d4KhkyKEl5RGhMaSLoEBgtSEIYH6yGkCAWQCAQgwGwYJKwYBBAGC
+# NxUKBA4wDDAKBggrBgEFBQcDAzANBgkqhkiG9w0BAQsFAAOCAgEARh/O37vbDW3A
+# j1UAnSfYz+I0+fVk2ZurOQarjtdFC/Yu1ABJnXdMnwh1t5sjVIoEejvjnOlmu+B2
+# 1IQJPpxIph8cz+SnDZyhOpcKrCDn+PSeRvth0Zk4FvbXsLK9/WYgdzRObNOHxxAN
+# COOc7PMLIMqeDJa+b9wH82Ae4MYdB8XZvoqJ+z172yoQMiNxe6UE2GropZiwJB56
+# Fw+k/jrKdOMEfZtfhzRqizCmMlTknbtFJ5hrqhwcaTA+4QCfCwouckererOATQnM
+# 8Ic1KaOmYK7S5igmnA5mekiTKrBhcGp/xsZy0r8OUKVV1FSYnQ3035THia31oQzh
+# Le48faEFkNuPbs8ZaiTFXwbdWGQ6uIK++soyulWOxeueNBAqIOGrj7XuDaIk+VD3
+# RN0B0g//Nv3HS6FboRC0eKeG3yezzjU+8fImcyPAaAEofUiiQYdOpnJsiaLDpHO+
+# 1r98pKmpe0fvy0IvYHicJLuk4tFyMvVBRgW1A+JtfHuXCnag88iB8AJ3tCUdGRCC
+# z8yE1r4hbklyqhj9G5EmxoKZfi7mgh3CgL/tRUAXNqFltMj3cQlGKcKPUH004dKm
+# FwAUAG4mzsO1Sk50S7EvdpvaW+sJ/bWMjXzLuq+xFwrsSTQ22KSm8XmnX2NGqws5
+# Tk+pqQupcwan4CsjflVqMva5nc4YxI4wggZyMIIEWqADAgECAhM4AAAAAm7pDq12
+# AeXXAAAAAAACMA0GCSqGSIb3DQEBCwUAMGcxCzAJBgNVBAYTAkJFMRIwEAYDVQQI
+# EwlBbnR3ZXJwZW4xDDAKBgNVBAcTA01vbDEPMA0GA1UEChMGU0NLQ0VOMQwwCgYD
+# VQQLEwNJQ1QxFzAVBgNVBAMTDlNDS0NFTiBSb290IENBMB4XDTE3MDYyMzExMzkz
+# NFoXDTMyMDYyMzExNDkzNFowZjELMAkGA1UEBhMCQkUxEjAQBgNVBAgTCUFudHdl
+# cnBlbjEMMAoGA1UEBxMDTW9sMQ8wDQYDVQQKEwZTQ0tDRU4xDDAKBgNVBAsTA0lD
+# VDEWMBQGA1UEAxMNU0NLQ0VOIElDVCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+# ADCCAgoCggIBALFtbifIAikMI3YQIa+niSTV8PsH34uadkQePLs02kIdmPPT/u+T
+# RYZO6njltLVcGnMWJLmzL4DamrAPUbJcpkRLMS35aDAonUT0kI/KNChNnHy2KI2K
+# 3tUwoRcXND2aG4m2ewU7FNr++RkI57BBDJsc8CSwI0lNphVSiSo6yrOF7f6uo98N
+# H3a0c9G2vM0jG0xztivAndUatxkAyz8rYScg8c6OmERO0xThXFxqyKRV75stVz3P
+# yLYh8E6HDpkNZrBfuOltIH1rWxS7fGwvwp7hNmUD5wJqat5TlLvHDqv9nqoYoQHg
+# JYuTHGHqWivqq9SbSzX4E0pJBRcNu3OXD18BQghNK8iXTfqjeF3ZNydos9IWshCe
+# LBmopnSU17/zk5kscShjJz2FfgU75PzwyZxo1kKjq8n9D1oJsFUNSgKMGj4wQFyT
+# hKLczZ81tPxSrb4CWC5N8RbN7CSehBug9NsAdkTbMzRjOurcqqsf2d+udccM4JGG
+# EdRE3ZnXXKi+v92vh4n0uSvfTfqu61/0ad9QFJTbG+d8YYeNzVlAIOU862/SeeJg
+# UemfzGn5k1R3CtpyukUWGlH8bP1rhNvjs1+zHRv1EYtZVbjru4aewCp0o3C5znAR
+# u5ZEitUNaQrgAmDJLwpfu5HoqN++mpFH7pl9x6hFYCvLbWYkYIlR0e0NAgMBAAGj
+# ggEWMIIBEjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU8CkU9WohFJJWVBOk
+# PdWt8CE6xXgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG
+# MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUr8bKrgoIFExryOnviOUxtH5
+# FDAwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VO
+# JTIwUm9vdCUyMENBLmNybDBHBggrBgEFBQcBAQQ7MDkwNwYIKwYBBQUHMAKGK2h0
+# dHA6Ly9jcmwuc2NrY2VuLmJlL1NDS0NFTiUyMFJvb3QlMjBDQS5jcnQwDQYJKoZI
+# hvcNAQELBQADggIBAIbENXjQHhcyihmPSltFTBqy1G7XHIx6HipRnVZ/soUvcYUm
+# iBYJtNCD1Tuc4fYyrYAgN6PNU6mNMNVqEStVPLfPTp+UWWFct/aQ8rvqAZR4LpfS
+# jriWyCi4IdFYBD72N7zNIdGy3cSK55SMXIVcYLOcv4f8Cyply47IPgLmM7CePvRg
+# A+UrHRRqdo4ij3/WsOsxuu2p9sk6rbz33qEaZDFjvjMd/QllsH1NzGkMkpQMdPyc
+# 2XKls5OkBYDdYfPcEgRw9JjBXZ2oRLYecvUIT5C8nT54omxeVWefYG1FZaRRc/FX
+# XZgbcfcX3uWiGBI5I9+R5hFvxTe6sJyT93QpY8xYqkrniqohSDd6bp4x2zFKAMSZ
+# 4m8ddV8+KRZuZnZPL/ea/rJ3B/EhSvz+Z1I4xGCAUSJ2YqL5ewvCnyNUQ/ZVyQz3
+# cOclX5AqZAq/62DTTAR3w2GfhtTRLvVsxNja5JwuB+KqDSS5jI1T07MHCE+/NIjr
+# xWUX9apftHtkylBwjpGfqZV7Zdx+jIpqzZOgf2UAMuJhEzR+nHmqLnVe1+WOx820
+# 8ElwksOhgokDHWF4LBafpYqKKxJhWYVXNj07PqFF2zIvCFGgsihJurTGRyfjxlNW
+# ARPEs8o+ZyNUlIW/mh7p0RpYYFz2+G5xHWVWjK7sRTNFG64hsJpDhL/XD1aQMIIG
+# tDCCBJygAwIBAgIQDcesVwX/IZkuQEMiDDpJhjANBgkqhkiG9w0BAQsFADBiMQsw
+# CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+# ZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQw
+# HhcNMjUwNTA3MDAwMDAwWhcNMzgwMTE0MjM1OTU5WjBpMQswCQYDVQQGEwJVUzEX
+# MBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0
+# ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExMIICIjAN
+# BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtHgx0wqYQXK+PEbAHKx126NGaHS0
+# URedTa2NDZS1mZaDLFTtQ2oRjzUXMmxCqvkbsDpz4aH+qbxeLho8I6jY3xL1IusL
+# opuW2qftJYJaDNs1+JH7Z+QdSKWM06qchUP+AbdJgMQB3h2DZ0Mal5kYp77jYMVQ
+# XSZH++0trj6Ao+xh/AS7sQRuQL37QXbDhAktVJMQbzIBHYJBYgzWIjk8eDrYhXDE
+# pKk7RdoX0M980EpLtlrNyHw0Xm+nt5pnYJU3Gmq6bNMI1I7Gb5IBZK4ivbVCiZv7
+# PNBYqHEpNVWC2ZQ8BbfnFRQVESYOszFI2Wv82wnJRfN20VRS3hpLgIR4hjzL0hpo
+# YGk81coWJ+KdPvMvaB0WkE/2qHxJ0ucS638ZxqU14lDnki7CcoKCz6eum5A19WZQ
+# HkqUJfdkDjHkccpL6uoG8pbF0LJAQQZxst7VvwDDjAmSFTUms+wV/FbWBqi7fTJn
+# jq3hj0XbQcd8hjj/q8d6ylgxCZSKi17yVp2NL+cnT6Toy+rN+nM8M7LnLqCrO2JP
+# 3oW//1sfuZDKiDEb1AQ8es9Xr/u6bDTnYCTKIsDq1BtmXUqEG1NqzJKS4kOmxkYp
+# 2WyODi7vQTCBZtVFJfVZ3j7OgWmnhFr4yUozZtqgPrHRVHhGNKlYzyjlroPxul+b
+# gIspzOwbtmsgY1MCAwEAAaOCAV0wggFZMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
+# VR0OBBYEFO9vU0rp5AZ8esrikFb2L9RJ7MtOMB8GA1UdIwQYMBaAFOzX44LScV1k
+# TN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcD
+# CDB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
+# ZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
+# L0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYyaHR0
+# cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcmww
+# IAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUA
+# A4ICAQAXzvsWgBz+Bz0RdnEwvb4LyLU0pn/N0IfFiBowf0/Dm1wGc/Do7oVMY2mh
+# XZXjDNJQa8j00DNqhCT3t+s8G0iP5kvN2n7Jd2E4/iEIUBO41P5F448rSYJ59Ib6
+# 1eoalhnd6ywFLerycvZTAz40y8S4F3/a+Z1jEMK/DMm/axFSgoR8n6c3nuZB9BfB
+# wAQYK9FHaoq2e26MHvVY9gCDA/JYsq7pGdogP8HRtrYfctSLANEBfHU16r3J05qX
+# 3kId+ZOczgj5kjatVB+NdADVZKON/gnZruMvNYY2o1f4MXRJDMdTSlOLh0HCn2cQ
+# LwQCqjFbqrXuvTPSegOOzr4EWj7PtspIHBldNE2K9i697cvaiIo2p61Ed2p8xMJb
+# 82Yosn0z4y25xUbI7GIN/TpVfHIqQ6Ku/qjTY6hc3hsXMrS+U0yy+GWqAXam4ToW
+# d2UQ1KYT70kZjE4YtL8Pbzg0c1ugMZyZZd/BdHLiRu7hAWE6bTEm4XYRkA6Tl4KS
+# FLFk43esaUeqGkH/wyW4N7OigizwJWeukcyIPbAvjSabnf7+Pu0VrFgoiovRDiyx
+# 3zEdmcif/sYQsfch28bZeUz2rtY/9TCA6TD8dC3JE3rYkrhLULy7Dc90G6e8Blqm
+# yIjlgp2+VqsS9/wQD7yFylIz0scmbKvFoW2jNrbM1pD2T7m3XDCCBu0wggTVoAMC
+# AQICEAqA7xhLjfEFgtHEdqeVdGgwDQYJKoZIhvcNAQELBQAwaTELMAkGA1UEBhMC
+# VVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBU
+# cnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNIQTI1NiAyMDI1IENBMTAe
+# Fw0yNTA2MDQwMDAwMDBaFw0zNjA5MDMyMzU5NTlaMGMxCzAJBgNVBAYTAlVTMRcw
+# FQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgU0hBMjU2
+# IFJTQTQwOTYgVGltZXN0YW1wIFJlc3BvbmRlciAyMDI1IDEwggIiMA0GCSqGSIb3
+# DQEBAQUAA4ICDwAwggIKAoICAQDQRqwtEsae0OquYFazK1e6b1H/hnAKAd/KN8wZ
+# QjBjMqiZ3xTWcfsLwOvRxUwXcGx8AUjni6bz52fGTfr6PHRNv6T7zsf1Y/E3IU8k
+# gNkeECqVQ+3bzWYesFtkepErvUSbf+EIYLkrLKd6qJnuzK8Vcn0DvbDMemQFoxQ2
+# Dsw4vEjoT1FpS54dNApZfKY61HAldytxNM89PZXUP/5wWWURK+IfxiOg8W9lKMqz
+# dIo7VA1R0V3Zp3DjjANwqAf4lEkTlCDQ0/fKJLKLkzGBTpx6EYevvOi7XOc4zyh1
+# uSqgr6UnbksIcFJqLbkIXIPbcNmA98Oskkkrvt6lPAw/p4oDSRZreiwB7x9ykrjS
+# 6GS3NR39iTTFS+ENTqW8m6THuOmHHjQNC3zbJ6nJ6SXiLSvw4Smz8U07hqF+8CTX
+# aETkVWz0dVVZw7knh1WZXOLHgDvundrAtuvz0D3T+dYaNcwafsVCGZKUhQPL1naF
+# KBy1p6llN3QgshRta6Eq4B40h5avMcpi54wm0i2ePZD5pPIssoszQyF4//3DoK2O
+# 65Uck5Wggn8O2klETsJ7u8xEehGifgJYi+6I03UuT1j7FnrqVrOzaQoVJOeeStPe
+# ldYRNMmSF3voIgMFtNGh86w3ISHNm0IaadCKCkUe2LnwJKa8TIlwCUNVwppwn4D3
+# /Pt5pwIDAQABo4IBlTCCAZEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU5Dv88jHt
+# /f3X85FxYxlQQ89hjOgwHwYDVR0jBBgwFoAU729TSunkBnx6yuKQVvYv1Ensy04w
+# DgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMIGVBggrBgEF
+# BQcBAQSBiDCBhTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
+# MF0GCCsGAQUFBzAChlFodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNl
+# cnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0MDk2U0hBMjU2MjAyNUNBMS5jcnQw
+# XwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lD
+# ZXJ0VHJ1c3RlZEc0VGltZVN0YW1waW5nUlNBNDA5NlNIQTI1NjIwMjVDQTEuY3Js
+# MCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCGSAGG/WwHATANBgkqhkiG9w0BAQsF
+# AAOCAgEAZSqt8RwnBLmuYEHs0QhEnmNAciH45PYiT9s1i6UKtW+FERp8FgXRGQ/Y
+# AavXzWjZhY+hIfP2JkQ38U+wtJPBVBajYfrbIYG+Dui4I4PCvHpQuPqFgqp1PzC/
+# ZRX4pvP/ciZmUnthfAEP1HShTrY+2DE5qjzvZs7JIIgt0GCFD9ktx0LxxtRQ7vll
+# KluHWiKk6FxRPyUPxAAYH2Vy1lNM4kzekd8oEARzFAWgeW3az2xejEWLNN4eKGxD
+# J8WDl/FQUSntbjZ80FU3i54tpx5F/0Kr15zW/mJAxZMVBrTE2oi0fcI8VMbtoRAm
+# aaslNXdCG1+lqvP4FbrQ6IwSBXkZagHLhFU9HCrG/syTRLLhAezu/3Lr00GrJzPQ
+# FnCEH1Y58678IgmfORBPC1JKkYaEt2OdDh4GmO0/5cHelAK2/gTlQJINqDr6Jfwy
+# YHXSd+V08X1JUPvB4ILfJdmL+66Gp3CSBXG6IwXMZUXBhtCyIaehr0XkBoDIGMUG
+# 1dUtwq1qmcwbdUfcSYCn+OwncVUXf53VJUNOaMWMts0VlRYxe5nK+At+DI96HAlX
+# HAL5SlfYxJ7La54i71McVWRP66bW+yERNpbJCjyCYG2j+bdpxo/1Cy4uPcU3AWVP
+# Grbn5PhDBf3Froguzzhk++ami+r3Qrx5bIbY3TVzgiFI7Gq3zWcxggU2MIIFMgIB
+# ATBrMGYxCzAJBgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAKBgNVBAcT
+# A01vbDEPMA0GA1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVND
+# S0NFTiBJQ1QgQ0ECAR8wCQYFKw4DAhoFAKB4MBgGCisGAQQBgjcCAQwxCjAIoAKA
+# AKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
+# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFN3Z26kJfKA1niMYcGIP/Ami
+# zRJXMA0GCSqGSIb3DQEBAQUABIIBAIS07zxFtxExfvrQE3gmqXL9ohfMZaXeLOma
+# jeAulJkp6arWlKCTA9/6c0XFTyV5r/vNxhV69z0jMqiZH5vvTQEfQyaPGaJbWKge
+# P0evjxh3h74+vAn6GxXhLAI67LVEAv604ZVJciqZKnhcgZ/oID1obbTkV/XZAVDh
+# Hbw0MNV6nONbdLzmn2JgzPdZ7+EDC6kwPQx4uxnG60oP+RRkylmfo59BWGDyloCW
+# OcAqE/ZdAPzu+M9+TaNscaRqC4JG0AuYv/Dp7PL0+6W9fFs/BX788lCjonzjXBy+
+# c//mk/kFA69lGuYJp2wnXIN1yF6O9ynORt2Fec3JpNcZwNnvERyhggMmMIIDIgYJ
+# KoZIhvcNAQkGMYIDEzCCAw8CAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO
+# RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt
+# ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAKgO8YS43xBYLRxHan
+# lXRoMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc
+# BgkqhkiG9w0BCQUxDxcNMjYwODI4MTM1MDM0WjAvBgkqhkiG9w0BCQQxIgQgwGts
+# hmgwg+1No3Bfq4IiEmxiCsjb9Jy7A/l9sT7ewm0wDQYJKoZIhvcNAQEBBQAEggIA
+# ES1N/fkR8sGknVNzke7MT8zzrvhMf6AcV4Y0tAPwiYl062sn97sokY+ih7uwFSAJ
+# qDtgpFXV9WCYVgEoGPJo3XHFo9PM5A/QcHNOgp8z17Tm0T2dpU6vQbNX5kSxodL5
+# aI0dZLFxv6lEd0sRAlhm2E9U5qZhTSnxhHeSLLng8vPkThULMNxh1pR6FQ0o0FW2
+# C0q94q8mTsv+FOc6vo82GifQc2lHFmLAPB7Kh0ncxnwCYSgFmAGI6ZTfICD2GGJm
+# ixTDAylDye7NEShjfFTOOPvbqmKJmsMi5ZaKLbmhImP3ot39PFmLbow+SlVzuUwT
+# rbUgC+v8w+5PvF9I0yQCLSijkottLHuvfuoUje2WqVxQW8y9yObz7XDKtUGyWbbz
+# bjKcjEqDYReCb3d9AgQ33Y4NeBrVRKJ03+SsmftWpr5xP6zjG4nvMu/5d8ITwO2V
+# xMXGMFsX0ttN+bH9aIsY0RcCY9ENtCJ0E7t1yn8y64RWE8D531cMu752z+N4Ucex
+# Gm72w8r69K5CvwaL5WaZxevl+BswNC0Dlbmc3juR57QElQ3/6edV3XZgExqBYgJH
+# G31Sj6PyJI5+UNmdnNrdy3U1k4GcD5L4ZphN1xkCfITI9BvbXjs61IWDmx6Axqgs
+# vfg9EIlBV8IWg8oOHWMqfWIHHkw8EEY9LxasNrFoM7E=
+# SIG # End signature block
diff --git a/scripts/Upgrader.ps1 b/scripts/Upgrader.ps1
index 17475ea..6caf238 100644
--- a/scripts/Upgrader.ps1
+++ b/scripts/Upgrader.ps1
@@ -1,6 +1,97 @@
echo "start Powershell as admin"
Set-ExecutionPolicy -ExecutionPolicy unrestricted
+function Test-AndInstallVcRedistX86 {
+ [CmdletBinding()]
+ param(
+ [string]$MinVersion = "14.51.36247",
+ [string]$InstallerPath = (Join-Path -Path $PSScriptRoot -ChildPath "vc_redist.x86.exe")
+ )
+
+ $minVerObj = [Version]$MinVersion
+ $isInstalled = $false
+ $installedVerStr = ""
+
+ # Path 1: Check official Microsoft Visual Studio Runtime registry key (Most Reliable)
+ $vcRegPath = "HKLM:\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86"
+ if (Test-Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86") {
+ $vcRegPath = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86"
+ }
+
+ if (Test-Path $vcRegPath) {
+ $regProps = Get-ItemProperty -Path $vcRegPath -ErrorAction SilentlyContinue
+
+ if ($regProps.Installed -eq 1) {
+ $major = $regProps.Major
+ $minor = $regProps.Minor
+ $bld = $regProps.Bld
+ $rbld = if ($regProps.Rbld) { $regProps.Rbld } else { 0 }
+
+ if ($major -and $minor -and $bld) {
+ $installedVerObj = [Version]"$major.$minor.$bld.$rbld"
+ $installedVerStr = $installedVerObj.ToString()
+ if ($installedVerObj -ge $minVerObj) {
+ $isInstalled = $true
+ }
+ }
+ }
+ }
+
+ # Path 2: Fallback check in Uninstall keys (Updated for "v14" naming)
+ if (-not $isInstalled) {
+ $uninstallPaths = @(
+ "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
+ "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
+ )
+
+ foreach ($path in $uninstallPaths) {
+ $found = Get-ItemProperty -Path $path -ErrorAction SilentlyContinue | Where-Object {
+ ($_.DisplayName -like "*Visual C++*" -or $_.DisplayName -like "*vc_redist*") -and
+ ($_.DisplayName -like "*(x86)*") -and
+ ($_.DisplayName -like "*2015*" -or $_.DisplayName -like "*2022*" -or $_.DisplayName -like "*v14*")
+ }
+
+ foreach ($item in $found) {
+ if ($item.DisplayVersion) {
+ $cleanVer = $item.DisplayVersion -replace '[^\d\.]', ''
+ try {
+ $parsedVer = [Version]$cleanVer
+ if ($parsedVer -ge $minVerObj) {
+ $isInstalled = $true
+ $installedVerStr = $item.DisplayVersion
+ break
+ }
+ } catch {}
+ }
+ }
+ if ($isInstalled) { break }
+ }
+ }
+
+ if ($isInstalled) {
+ Write-Host "[OK] VC++ Redistributable (x86) v$installedVerStr is already installed." -ForegroundColor Green
+ return $true
+ }
+
+ # 2. Install if missing or outdated
+ Write-Host "[!] VC++ Redistributable (x86) v$MinVersion+ is missing." -ForegroundColor Yellow
+
+ if (-not (Test-Path $InstallerPath)) {
+ Write-Error "Installer not found at '$InstallerPath'."
+ return $false
+ }
+
+ Write-Host "[+] Installing VC++ Redistributable (x86)..." -ForegroundColor Cyan
+ $process = Start-Process -FilePath $InstallerPath -ArgumentList "/install", "/quiet", "/norestart" -Wait -PassThru
+
+ if ($process.ExitCode -eq 0 -or $process.ExitCode -eq 3010) {
+ Write-Host "[OK] VC++ Redistributable installed successfully." -ForegroundColor Green
+ return $true
+ } else {
+ Write-Warning "VC++ Redistributable installation failed (Exit Code: $($process.ExitCode))."
+ return $false
+ }
+}
echo Stop edossync
$psync="C:\Program Files\eDos\synceDosLocal"
@@ -8,6 +99,17 @@ $taskname="eDosSync"
$t = Get-ScheduledTask -TaskName $taskname -ea ignore
Stop-ScheduledTask -TaskName $taskname
+
+# ==============================================================================
+# Upgrade Script Main Section
+# ==============================================================================
+
+Write-Host "Starting Kiosk Station Upgrade..." -ForegroundColor Cyan
+# Check / Install VC++ Runtime
+Test-AndInstallVcRedistX86
+# Proceed with your app upgrade steps...
+Write-Host "Updating application files..."
+
echo Copy soft
Expand-Archive -Force c:\software\eDosStation.zip "c:\program files\edos\edosStation"
Expand-Archive -Force c:\software\eDosSync.zip "c:\program files\edos\synceDosLocal"
@@ -36,11 +138,12 @@ Start-ScheduledTask -TaskName $taskname
exit
+
# SIG # Begin signature block
# MIIlPAYJKoZIhvcNAQcCoIIlLTCCJSkCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
-# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUQ69lbjQoUZQw9k230yqRHkDl
-# ZVOggh9wMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0B
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUDBgeM7BnKkbgc+mw3TXOFK/+
+# m9uggh9wMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0B
# AQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
# VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk
# IElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQsw
@@ -212,28 +315,28 @@ exit
# A01vbDEPMA0GA1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVND
# S0NFTiBJQ1QgQ0ECAR8wCQYFKw4DAhoFAKB4MBgGCisGAQQBgjcCAQwxCjAIoAKA
# AKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
-# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFOocoqSgBisB+uNnAiSpmNBt
-# aWgGMA0GCSqGSIb3DQEBAQUABIIBAHXjeZ+Hjw2yFnp7MIZwGMx99yG7bMaNGS+8
-# mScbkg8lVlEypybQsnk/5kO7fcoK6OvEdguxsQY/ZeoQLWuVjNojjMB4p1ldusoS
-# NLDEDq16kQNn3OElytte9mvS0Wx5o6f5f1YZ7SQUWZKNmMG+9htKAG6UjH/uShPt
-# Pbwz7fEpjalNl/Cqn8ZKwmhTijD56sHw0h5S4MPPEnnRRK91iLItkuvMFlDbr2IQ
-# VlksyHbv+6vjoOvh2srr9M4H1SnEOZTalCXLc1OgsJINDGlY0tjK1mDzsMkke8Ip
-# jX/KdUC56iA3dlP/2WNRFcFMu3gma2NxZXFf0CqDTpFbeXlvLByhggMmMIIDIgYJ
+# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFGrx/Csz4H74HcTwNd0x1Wpx
+# sC1UMA0GCSqGSIb3DQEBAQUABIIBABF7JZyjWH52hwp/Vs8wC7Vpmw1TaemnVQ8H
+# nzOT0TuZY9NCt4Cf0FR/hJ6Smn1vUllmc1SHbP9rbgY9cUJ+Aq89uJ+0/4Ppd1xM
+# xOwxxTXsfLbMmLIlah+OcTy8iSRl+6UtD0oH44wtZK6OoTfvB02/DGHu1FuY6IGM
+# iuFNTgo5rN6xZAUS2P2v7UPEzWULHfIK+mJVcwUiPXFPokwDbcEn0aDcP4ndYgJd
+# 4zOmw+r69q4A7xTJDaOVHE40zJIL5F22hzjdBZJK839CnB4JcBfOj/DOdFpdeMWT
+# uq84IW20v8LVw1egZnqRLHe1izrC/+CoUlLIPU14FM6FCqPkRGShggMmMIIDIgYJ
# KoZIhvcNAQkGMYIDEzCCAw8CAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO
# RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt
# ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAKgO8YS43xBYLRxHan
# lXRoMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc
-# BgkqhkiG9w0BCQUxDxcNMjYwODI3MTAwMzA4WjAvBgkqhkiG9w0BCQQxIgQgsMdV
-# 9Sh4Cj+vBhVpptTDi+Hjs5+mW9qo0JXX+/oGAjwwDQYJKoZIhvcNAQEBBQAEggIA
-# ehkBFEbtRczKku9Ye6rmFbWVaj5vPhnN5CB4so2q5LTuhr50AxiWKp3YOIIiG/5t
-# E48CqrMr6eF5ZZZo4xX5JHpu0POtvJWbrrgKL4y6Gq7tnpcD15yLPA80jU7gc4MD
-# Bg0BsmK4jRBTIeFb5jHZ18b4ECWPKrFVd0hJF63R7RocVOdVMRg9L2F7w+solbTs
-# ZSQhWXZr3tZXmgDRPAyjjnaSX6lDLIwGqNsGwKM3kftoIvNUM0+V2GKisNpFT1Yg
-# +9nERlksL2LDPpFNxiUaMsb1Qf/MjhfHdQoOIj8n/0Vm2gdaORNMFtxaOouMHsub
-# dTYZXHVnXtcD1GL9yj2Jwqof323eOZbl2L3yqmyPlyOEDFrzhjWvsyb0mWsMf8pV
-# mdGCgS/E4oG3dygeq2LwJj2X/nZfxv4lU7CtYT+5AjSsfX+rcpe8dNwuwNYK8HOC
-# 1YG18LOhDAbdomxFo9TwLNDppA48heEACsgT/Wg1kXuNW+7nTXIqZtlRj5t4llLO
-# wxBj3Un+bIUa3n071kVP/sNKHgGTXwatJlNsgSmZyHpKuzQc0mqW5YE6aG6pc0Rg
-# zCVCtxqw8+repCJWJD1OHH3p8Y+LHsyyvFL4DEaEFYMkhmmqXT9KwZvB1nMTeaBz
-# sYRN6W9NhQSy7L2dpld6mNFZDvKBmkguvszOd6M+KW0=
+# BgkqhkiG9w0BCQUxDxcNMjYwODI4MTM1MDM0WjAvBgkqhkiG9w0BCQQxIgQgr7bq
+# /P/++y0PzoN4WUm73KYvebuWilY9mEikKWxVzd0wDQYJKoZIhvcNAQEBBQAEggIA
+# aobNCRUcCaix3vLRYUSDodLU8CU3fTDGDKJwJH6nRIjL9OpAarJh3JRNpFe5lhqN
+# 42MtARZakLLponvKVeHD3cozC0pXFYEgv/4y1QZ+wYz/IMPJDKhyCz2eTyoEf9g0
+# 0FxXOkLqg/eYPDSkygI/rBWn+aTM5AveA46eEaO8z45yWRzzSOhz/f0lbN7SpTCu
+# zkR0meK/QCS6O5Glr3e+Nx+GIhnumgf/0VDNpMrYYKRpnCNb4ut79gnyHUUYh3B7
+# OE+KuNRT2836VmxAoY7Dok+o4CsCc/fF+1//6tqS56ibC83HzvyoeD2DwaWMeSkq
+# W0WqpYQis3dUeAd/RGH72O2YWIoyvUQK6dylHQJCVgAfZQOBxA9zX4AnA//YoSdK
+# poBkSceAbx1uovpewdfchJ67gQpkXvFORnwxehd8kJr9uQgyV7FQcUcUsX8fg2Lj
+# /ReNWk/B9MEu6CRVopfIaNtUzrnOnCWvVa1WcJbyXvNFWpW7Jd+tQCoOabt6jWgD
+# iF7Auv/ZxWQDiWgO/TGLjnMshEeMIs/T/hlc2sTz4aB3kJN7iE/G3H6GMd9ppbL/
+# PshLPVD3A6o3RDwnW3ZT3G0oefBNoHXH5o9VfhbOTorYs6XQD06C9zIWlPRHWEmd
+# mvimyCVabZ6MT0PpDJLBYI544lOksaIDlHoY7ffv5h0=
# SIG # End signature block
diff --git a/scripts/installatie.ps1 b/scripts/installatie.ps1
index 42bf648..a9ea9a2 100644
--- a/scripts/installatie.ps1
+++ b/scripts/installatie.ps1
@@ -329,17 +329,17 @@ exit
# RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt
# ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAKgO8YS43xBYLRxHan
# lXRoMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc
-# BgkqhkiG9w0BCQUxDxcNMjYwODI3MTAwMzA4WjAvBgkqhkiG9w0BCQQxIgQgGtui
+# BgkqhkiG9w0BCQUxDxcNMjYwODI4MTM1MDM0WjAvBgkqhkiG9w0BCQQxIgQgGtui
# 82paX11KDIN86kiIL1XH+uGmvG+Fu6AqHv/faOkwDQYJKoZIhvcNAQEBBQAEggIA
-# lyj7Pd/mhrxl0eYo6WOF/dAi+Fva6oLNeXVo9qWNfkPz2YuuqdQd/gvI0kiWji3P
-# Z+YUa96/NSTqMkEVSF+XvFjPVB1OEud1WGyJM/mWbmB7PGyerB2zouZ7zlgO4oj1
-# LY/79COSGrphnVhHF6cI8FezBc4PvUs+A1SA+egmbZxRYGWLTZGF57kd9jBOJsQL
-# PzP54tThr6eVSkxH0R8Vo+qQXso73SMQ7Qz9drUTKi6s8rLCC8loKlioNjsfh/z0
-# jtNuh3uRxzXrLSmUhPVqeObZNtZerB+C4RGLWC+re1pSr+LZKMSPW85929UItGtu
-# Toq61xQLP7qyUVeph4nRmrx4BfcC629jR3aDc+BqvhZ2AQ7moDgdE/X8CRX+8vdl
-# WWm6gHmBzfUzZ8fCrg2pBxFoT0Xm1BH9HFTMrcK27P9yym1lxU3mwEq+9Ur0vJAf
-# 0K2VKFjayM673sl292euKQC2i99wWj3+xG+RiiS6ducdQUc3v6UE+FTTBfBEiUhn
-# qLO7l3H5Uf+PUpLEjBfnllqViKO0qZ21vTPZc6u+HirI0m3Skx5I+2Sbh6GbG7tP
-# IwknCiKLmSeRLyzBccn/vGYrxqmJwmYi6gKXrPMywhhPPuNpkjR2fEXAxHnFpBB1
-# CgGeRJO4xdvUUbCQLMG8UCpwbGa4IouxqI+YW88q5UA=
+# WEy1zMVigObWO/ONXmEImnn0kFcwsA1gYPA70rHptdcZawXa//20HuO6eZWBe7d8
+# g/3uAQG6nwea4wsu5vbzOMFBimZ9mo3FtdXhzOI4O5L/k2m9nkIyHBU7qj4do5ii
+# cIVEaV1YkPV883W/CHoonltyLx1DJU5s7LKXa5LLMU6dn7+6TH/gJbKKO0Rf+ec1
+# o/Ka+sQPrUcdvykMHkEFZaACBZNnzD0DmZaWgAhKtDLVVSHAe3UmVPcA2v+UeIcT
+# hur2htdynxlJ+eqQ0DVNtPa3ZVvExAetaZvsjlPCOhaAyI5cwvYw4QlT9j/ux0Jx
+# xvQWLJepRpKHpcQW5ddE8q3SX2CNyeOTVkWrBHgX/0nIZTV6kqlmUbUpIVHQOzVV
+# 81JMEbpgoil79RMhlRH0tOlOjsauNlRMSELuYV7QEiL78XlLfPSelpIPnewKsjmm
+# HF7UYCcUccQyYGiUSGfAskSj3Zv2/FwR9+9uiTZGSLwjAlT9G8pODmxeYaFINK+C
+# D+BZfmBXcMaMV0uTMyO5/Dp3VeLnQBdXOhC0UYCj5j+kPD3riQYzned5+K/oovBE
+# wJJJfNm3DOXU5uKL0tD/uodZLSd3axLGC6UFDMYEshrlOIfF1uPYy9xJklKsJLgp
+# EAqJYfL6iSCYsv/ULwqH39RNXZi/g7hcbUcx99xrdZ0=
# SIG # End signature block
diff --git a/scripts/installatie2.ps1 b/scripts/installatie2.ps1
index 7e8d044..62ce39e 100644
--- a/scripts/installatie2.ps1
+++ b/scripts/installatie2.ps1
@@ -193,17 +193,17 @@ exit
# RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt
# ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAKgO8YS43xBYLRxHan
# lXRoMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc
-# BgkqhkiG9w0BCQUxDxcNMjYwODI3MTAwMzA4WjAvBgkqhkiG9w0BCQQxIgQg6Tgk
+# BgkqhkiG9w0BCQUxDxcNMjYwODI4MTM1MDM1WjAvBgkqhkiG9w0BCQQxIgQg6Tgk
# d9vgRJTrKaa/aNqr0ugqtMxl17/Df7q35ywcJSEwDQYJKoZIhvcNAQEBBQAEggIA
-# roHEl+sxHtNEt7R4ya9BSDSLcXN8ImybetR42y1XolYlXdvG4/zLyL7gzlowxCoR
-# h1d354aw+7PS56YCPSKMGwIzjELIybN4Wc6a23l7jZp2LVRTMZzZ13VlrPoJXtd+
-# v/fh0QJirLRwlB42disWNwEvyARIONOK11YrbPeQbxcdSL4oNIAvoyATBvRa/TmG
-# zFgTB479XxuCjenrphwdtMFdnqpUFyq4jMZXjcDl9Obi3dGRBHZAzd8azyVeFOb+
-# uq21Leu/f7z0WDtVXjm2INXRmVVHH+J/ZvGsQGvtkZibFKtpYwTy+TSDgW5JhQ/k
-# PQH4je3+tzcFG0Tqx2lGo3EtdAItv8eJcnyOCQELQQYx6ddRt5vL5bfsQKJuYgdy
-# prOX3tIkyl9xSVAvO0CWEk7zM/VsXl4VzHH/g9oB42x1lcLClXVQ9QBquoPJ7kKS
-# MuytoKgpoI6Ed3qzUrXZabFzgo0r7zZWrw99NEeHPsIAshuSryPuYNicT8vCpxWh
-# WZZNmh0sG2qQ10kAnCFKp98E80jtpRgIkg8ytROuh2E7NSAkYol8diR8GFS+A8lI
-# pggc+51YEvjfZniO8sXEUQv3/+hQjkx941kNDbVkQI9O3mphUURArTuRLaQpDzQU
-# JGeQtnEm62I3yXUWKfBD6wvV4LCmWtkA4elF4Gyd/+E=
+# V8Xidv7kfa+J4yFR/CpoDRtrnSeGdplYxAgMJEX/+jz4vDERAwPcAxJbyYjp3QPZ
+# gNvGU7iFLHNfxVEpGv/xNhuEuvotRnqsEc7u5V4VJuSDho8dvWW/X7cEabJgTbD+
+# 4ayUnQochv5ZtlCZ9SOAsvOaV0Be1AQcqbN+kjsEG95cbTSyxxs6FRbmhgT9vmkp
+# 5vFRnb1OTtztmmR+3ggEUmzFVVxhQuWEIinghUSvoZBloj6PhJU5P73TWaxrC+A4
+# kGs/sH1nvNpts5hBl0U66gUYwR12vvECZknbSyGm6kyo02ZlMBoEKydO9R44nygZ
+# syzIakMo5s1AiDgBsoZRogFjzmZji9KBVGYpeuAY/RrBXdxtZADsHO1NJZ+isyQ6
+# 5QmqL6D+oHyG/UkCW3BUED48LvVQVU2PKXLmiF2D8MrR/Kra8ZYVFu+wDYOKX933
+# bunKlsrQ/oisKeUsNp0jQIA8YAGnTZNld3owwUBP+nrolRms1BpXCK1hHnmI9xxN
+# yCurwa8meLHU630stovHTGakwjTTJitA23nhFaLV9tGM4FWPD/ZobsCis+N9hIQu
+# zrEKu0ijY4gbDgCNEUNbfrN4libveQzdx81a4Eh4Q3ncXuNjvauNmSbvL0k0fp6q
+# u1IvQ1N4wTDXyY8RjECbvGw6GAkSqXDSrW35UKNBYbY=
# SIG # End signature block