diff --git a/app/Http/Controllers/Api/KasSLLController.php b/app/Http/Controllers/Api/KasSLLController.php index e41b481..450a27e 100755 --- a/app/Http/Controllers/Api/KasSLLController.php +++ b/app/Http/Controllers/Api/KasSLLController.php @@ -55,81 +55,75 @@ diQ860kC4h++erAa8dvB1DUG5oldYYPiEKOyyyn+tNU298QcEkLrG1JcLuUXpfTg 8dPIr+VpGomsvpwGTfJFjlE= -----END PRIVATE KEY-----"; private static $ssl_certificate_sni_crt = "-----BEGIN CERTIFICATE----- -MIIHTTCCBjWgAwIBAgIQH4gEWhBDcY8AMLZ32r5QTzANBgkqhkiG9w0BAQsFADCB -lTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQD -EzRTZWN0aWdvIFJTQSBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2Vy -dmVyIENBMB4XDTE5MDgwODAwMDAwMFoXDTIxMDgwODIzNTk1OVowgcsxCzAJBgNV -BAYTAkRFMQ4wDAYDVQQREwU4Nzc1NTEPMA0GA1UECBMGQmF5ZXJuMRUwEwYDVQQH -EwxLaXJjaGhhc2xhY2gxEzARBgNVBAkTCkxlaW5mZWxkIDIxFjAUBgNVBAoTDXJp -d2EtdGVjIGUuSy4xITAfBgNVBAsTGEF1dGhvcml6ZWQgYnkgVW5pdGVkIFNTTDEc -MBoGA1UECxMTUHJlbWl1bVNTTCBXaWxkY2FyZDEWMBQGA1UEAwwNKi5taXZpdGEu -Y2FyZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJU6G05MkGflX1KY -eaj8RrA2I7RXAc5Weet+do8PYDUN4qoeYB8xNrJsdoJ+L6a59Xy956Z9jWPqtert -EVTjpIwFsWV9mopL/fNvZ3fJFPs4FTzc9Xk/wlceuoQCuWYqI5lw+iPzpNMBurnD -DGMVeR4/MlJ051Q39nUTW0jyJ5RALjS2kyxG9/lc7NBmi6xcFPU/oX1DYVtQoR+I -QEnTCOfPvhrvdTsN5u5gYQU9KNWOuRUHXX7nnLUwGTCD/okiuj4GVeitbpdqJ9vU -8oVtMVCeULgEArI8fE0pZkJIeDD8LcDt8FAoczXBWFmjYFmu6Z0T5fUU5JxaU34z -/5PJTJsCAwEAAaOCA18wggNbMB8GA1UdIwQYMBaAFBfZ1iUnZ/kxwklD2TA2RIxs -qU/rMB0GA1UdDgQWBBQJLRjW/unX2Kw7txO4/dispWvY5zAOBgNVHQ8BAf8EBAMC -BaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw -SgYDVR0gBEMwQTA1BgwrBgEEAbIxAQIBAwQwJTAjBggrBgEFBQcCARYXaHR0cHM6 -Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQICMFoGA1UdHwRTMFEwT6BNoEuGSWh0 -dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1JTQU9yZ2FuaXphdGlvblZhbGlk -YXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmwwgYoGCCsGAQUFBwEBBH4wfDBVBggrBgEF -BQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBT3JnYW5pemF0 -aW9uVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAjBggrBgEFBQcwAYYXaHR0 -cDovL29jc3Auc2VjdGlnby5jb20wJQYDVR0RBB4wHIINKi5taXZpdGEuY2FyZYIL -bWl2aXRhLmNhcmUwggF+BgorBgEEAdZ5AgQCBIIBbgSCAWoBaAB1APZclC/RdzAi -FFQYCDCUVo7jTRMZM7/fDC8gC8xO8WTjAAABbHE1WwgAAAQDAEYwRAIgJnc8PV0c -fDxAikfdvJzFVOG26cUzmZDqaS79ZYEAXT8CIDzUJervlzJK3huunhkNWYe0ZdH6 -SOXrgCfNMErZgB2UAHYARJRlLrDuzq/EQAfYqP4owNrmgr7YyzG1P9MzlrW2gagA -AAFscTVbKAAABAMARzBFAiEAmbmiqUZRcSU0G+cO2F3Vu9933x48ase0RTnzx6nv -0UsCIF6PtjDj80Zp/fE/Da218Jl/Php06TJk488Y69yxyUE2AHcAVYHUwhaQNgFK -6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAFscTVbVgAABAMASDBGAiEAmTjfVRbR -K5UgRC1QHH5nGILAUIl9hWAn6/C0UE1QuQUCIQCxa6ezO4p4BpRM6SlLo4or/JXC -lgdQ/TQEe/eD+rqjpTANBgkqhkiG9w0BAQsFAAOCAQEAiEJ+HAVU53CtOZw74kzV -/elsY8a7eke2fUP1+dGuwx24iEefUDQJGkSSEMOub8DsBd9ZwFY6hAE1KCNAlZnT -mhtwxTBjMPE3H1eE+1Ye00Wv323YcZgnqWYy7A36r5/RdupQRw3hs/w58BoJACDj -sSmGvH9GkeohXgUwLL91mlNJ56vUX2nDCxylxqLyWTMjzsPFMc8Of8ek2QIobMNX -KopeChQU9ACe/ZsdO2UClGVtuupjrhfkbKAeJCcEW+DonV1geTwuXuJjIwitTyXD -K5RDtw2QPwFRVggqe7TrnGzKdNzxbKN6tRWKuCKdyKqczf6zn1gG+Z1emrwN+lBn -xA== +MIIGLzCCBRegAwIBAgIRAJ6HzyfKXWCtRn3q9gGkgYEwDQYJKoZIhvcNAQELBQAw +gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO +BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE +AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD +QTAeFw0yMTA3MjIwMDAwMDBaFw0yMjA3MjIyMzU5NTlaMBgxFjAUBgNVBAMMDSou +bWl2aXRhLmNhcmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVOhtO +TJBn5V9SmHmo/EawNiO0VwHOVnnrfnaPD2A1DeKqHmAfMTaybHaCfi+mufV8veem +fY1j6rXq7RFU46SMBbFlfZqKS/3zb2d3yRT7OBU83PV5P8JXHrqEArlmKiOZcPoj +86TTAbq5wwxjFXkePzJSdOdUN/Z1E1tI8ieUQC40tpMsRvf5XOzQZousXBT1P6F9 +Q2FbUKEfiEBJ0wjnz74a73U7DebuYGEFPSjVjrkVB11+55y1MBkwg/6JIro+BlXo +rW6Xaifb1PKFbTFQnlC4BAKyPHxNKWZCSHgw/C3A7fBQKHM1wVhZo2BZrumdE+X1 +FOScWlN+M/+TyUybAgMBAAGjggL6MIIC9jAfBgNVHSMEGDAWgBSNjF7EVK2K4Xfp +m/mbBeG4AY1h4TAdBgNVHQ4EFgQUCS0Y1v7p19isO7cTuP3YrKVr2OcwDgYDVR0P +AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG +AQUFBwMCMEkGA1UdIARCMEAwNAYLKwYBBAGyMQECAgcwJTAjBggrBgEFBQcCARYX +aHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQIBMIGEBggrBgEFBQcBAQR4 +MHYwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1JT +QURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGG +F2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMCUGA1UdEQQeMByCDSoubWl2aXRhLmNh +cmWCC21pdml0YS5jYXJlMIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdQBGpVXr +dfqRIDC1oolp9PN9ESxBdL79SbiFq/L8cP5tRwAAAXrNeYDBAAAEAwBGMEQCIFzd ++zLvEGolSmSaa7vaQxv63DuX5vHQggER6/Dh+jZGAiAcUn8AZjF7GQOd4LTzGMhU +KsGNyn6d3n4cJ9fy9BzRxAB1AEHIyrHfIkZKEMahOglCh15OMYsbA+vrS8do8JBi +lgb2AAABes15gIYAAAQDAEYwRAIgE0NFzvN7qEre8Bc1C8EsMHD+5PDyQHZRBJkN +OdxsH9MCIDBSFFZTheD2+nzbHm5WLvAI75xyUvyBx/LEy3XBtjulAHYAKXm+8J45 +OSHwVnOfY6V35b5XfZxgCvj5TV0mXCVdx4QAAAF6zXmAWwAABAMARzBFAiAbRPVk +w3AIzVF7gE0R3ZJgou7P4o9KL2yRgAaeGbbClgIhAPL86sD0GwPZ9ZsL31q07Y/S +1kq5ohBt907fOisMwI0HMA0GCSqGSIb3DQEBCwUAA4IBAQAaYeV2NtUM2HkxWbfd +3jVAs1PdBIYtktBpx7UwNphylqF4qlsZwV5XZxeD/K7mTW5tgNaHHrEjaOME/y1s +rWTIt1D+UUmDdiSgKfVF5gfajPFVepOcb5OC+ielevvnVJn/6Tqa/RNz0GstwMnB +3lBaoP7oGuBy2Ow3LG0+yO4Q0j82gIkOM15CsjY9ZK540HAXllxKGN29Yf+RDkqE +zRk4TE12MEW+Ugw6RxDSUCfKmev4iUAT9vq790OESAfOKY1zg/6hIF3noH1IFt1d +e0wVWz58KTXBqHsmxX3F1PUuT6NY+wRsVfnc8hR8mfJibJ0VL8wxjzScDXyHpZr/ +o3I7 -----END CERTIFICATE-----"; private static $ssl_certificate_sni_bundle = "-----BEGIN CERTIFICATE----- -MIIGGTCCBAGgAwIBAgIQE31TnKp8MamkM3AZaIR6jTANBgkqhkiG9w0BAQwFADCB +MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx -MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBlTELMAkGA1UEBhMCR0IxGzAZBgNV +MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE -ChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQDEzRTZWN0aWdvIFJTQSBPcmdhbml6 -YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAnJMCRkVKUkiS/FeN+S3qU76zLNXYqKXsW2kDwB0Q -9lkz3v4HSKjojHpnSvH1jcM3ZtAykffEnQRgxLVK4oOLp64m1F06XvjRFnG7ir1x -on3IzqJgJLBSoDpFUd54k2xiYPHkVpy3O/c8Vdjf1XoxfDV/ElFw4Sy+BKzL+k/h -fGVqwECn2XylY4QZ4ffK76q06Fha2ZnjJt+OErK43DOyNtoUHZZYQkBuCyKFHFEi -rsTIBkVtkuZntxkj5Ng2a4XQf8dS48+wdQHgibSov4o2TqPgbOuEQc6lL0giE5dQ -YkUeCaXMn2xXcEAG2yDoG9bzk4unMp63RBUJ16/9fAEc2wIDAQABo4IBbjCCAWow -HwYDVR0jBBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFBfZ1iUn -Z/kxwklD2TA2RIxsqU/rMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/ -AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYG -BFUdIAAwCAYGZ4EMAQICMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl -cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy -bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy -dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ -aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAThNA -lsnD5m5bwOO69Bfhrgkfyb/LDCUW8nNTs3Yat6tIBtbNAHwgRUNFbBZaGxNh10m6 -pAKkrOjOzi3JKnSj3N6uq9BoNviRrzwB93fVC8+Xq+uH5xWo+jBaYXEgscBDxLmP -bYox6xU2JPti1Qucj+lmveZhUZeTth2HvbC1bP6mESkGYTQxMD0gJ3NR0N6Fg9N3 -OSBGltqnxloWJ4Wyz04PToxcvr44APhL+XJ71PJ616IphdAEutNCLFGIUi7RPSRn -R+xVzBv0yjTqJsHe3cQhifa6ezIejpZehEU4z4CqN2mLYBd0FUiRnG3wTqN3yhsc -SPr5z0noX0+FCuKPkBurcEya67emP7SsXaRfz+bYipaQ908mgWB2XQ8kd5GzKjGf -FlqyXYwcKapInI5v03hAcNt37N3j0VcFcC3mSZiIBYRiBXBWdoY5TtMibx3+bfEO -s2LEPMvAhblhHrrhFYBZlAyuBbuMf1a+HNJav5fyakywxnB2sJCNwQs2uRHY1ihc -6k/+JLcYCpsM0MF8XPtpvcyiTcaQvKZN8rG61ppnW5YCUtCC+cQKXA0o4D/I+pWV -idWkvklsQLI+qGu41SWyxP7x09fn1txDAXYw+zuLXfdKiXyaNb78yvBXAfCNP6CH -MntHWpdLgtJmwsQt6j8k9Kf5qLnjatkYYaA7jBU= +ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g +VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N +TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj +eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E +oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk +Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY +uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j +BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb ++ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G +A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw +CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0 +LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr +BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv +bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov +L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H +ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH +7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi +H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx +RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv +xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38 +sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL +l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq +6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY +LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5 +yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K +00u/I5sUKUErmgQfky3xxzlIPK1aEn8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7 @@ -228,117 +222,111 @@ UrRHcP8347EOn9uLFjyZrPEQ773tUVaERAZDeO0nAoGAZXMhlmKmqTrM2jSb64ja\n pEddcEW2LuTvwQueOKUuSSwmCydKXkcgrYZ4EHyOgvVN9JZ5ZfW6ZathFipVEKdy\n diQ860kC4h++erAa8dvB1DUG5oldYYPiEKOyyyn+tNU298QcEkLrG1JcLuUXpfTg\n 8dPIr+VpGomsvpwGTfJFjlE=\n ------END PRIVATE KEY----- +-----END PRIVATE KEY-----\n ", "ssl_certificate_sni_crt" => "-----BEGIN CERTIFICATE-----\n -MIIHTTCCBjWgAwIBAgIQH4gEWhBDcY8AMLZ32r5QTzANBgkqhkiG9w0BAQsFADCB\n -lTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\n -A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQD\n -EzRTZWN0aWdvIFJTQSBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2Vy\n -dmVyIENBMB4XDTE5MDgwODAwMDAwMFoXDTIxMDgwODIzNTk1OVowgcsxCzAJBgNV\n -BAYTAkRFMQ4wDAYDVQQREwU4Nzc1NTEPMA0GA1UECBMGQmF5ZXJuMRUwEwYDVQQH\n -EwxLaXJjaGhhc2xhY2gxEzARBgNVBAkTCkxlaW5mZWxkIDIxFjAUBgNVBAoTDXJp\n -d2EtdGVjIGUuSy4xITAfBgNVBAsTGEF1dGhvcml6ZWQgYnkgVW5pdGVkIFNTTDEc\n -MBoGA1UECxMTUHJlbWl1bVNTTCBXaWxkY2FyZDEWMBQGA1UEAwwNKi5taXZpdGEu\n -Y2FyZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJU6G05MkGflX1KY\n -eaj8RrA2I7RXAc5Weet+do8PYDUN4qoeYB8xNrJsdoJ+L6a59Xy956Z9jWPqtert\n -EVTjpIwFsWV9mopL/fNvZ3fJFPs4FTzc9Xk/wlceuoQCuWYqI5lw+iPzpNMBurnD\n -DGMVeR4/MlJ051Q39nUTW0jyJ5RALjS2kyxG9/lc7NBmi6xcFPU/oX1DYVtQoR+I\n -QEnTCOfPvhrvdTsN5u5gYQU9KNWOuRUHXX7nnLUwGTCD/okiuj4GVeitbpdqJ9vU\n -8oVtMVCeULgEArI8fE0pZkJIeDD8LcDt8FAoczXBWFmjYFmu6Z0T5fUU5JxaU34z\n -/5PJTJsCAwEAAaOCA18wggNbMB8GA1UdIwQYMBaAFBfZ1iUnZ/kxwklD2TA2RIxs\n -qU/rMB0GA1UdDgQWBBQJLRjW/unX2Kw7txO4/dispWvY5zAOBgNVHQ8BAf8EBAMC\n -BaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw\n -SgYDVR0gBEMwQTA1BgwrBgEEAbIxAQIBAwQwJTAjBggrBgEFBQcCARYXaHR0cHM6\n -Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQICMFoGA1UdHwRTMFEwT6BNoEuGSWh0\n -dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1JTQU9yZ2FuaXphdGlvblZhbGlk\n -YXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmwwgYoGCCsGAQUFBwEBBH4wfDBVBggrBgEF\n -BQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBT3JnYW5pemF0\n -aW9uVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAjBggrBgEFBQcwAYYXaHR0\n -cDovL29jc3Auc2VjdGlnby5jb20wJQYDVR0RBB4wHIINKi5taXZpdGEuY2FyZYIL\n -bWl2aXRhLmNhcmUwggF+BgorBgEEAdZ5AgQCBIIBbgSCAWoBaAB1APZclC/RdzAi\n -FFQYCDCUVo7jTRMZM7/fDC8gC8xO8WTjAAABbHE1WwgAAAQDAEYwRAIgJnc8PV0c\n -fDxAikfdvJzFVOG26cUzmZDqaS79ZYEAXT8CIDzUJervlzJK3huunhkNWYe0ZdH6\n -SOXrgCfNMErZgB2UAHYARJRlLrDuzq/EQAfYqP4owNrmgr7YyzG1P9MzlrW2gagA\n -AAFscTVbKAAABAMARzBFAiEAmbmiqUZRcSU0G+cO2F3Vu9933x48ase0RTnzx6nv\n -0UsCIF6PtjDj80Zp/fE/Da218Jl/Php06TJk488Y69yxyUE2AHcAVYHUwhaQNgFK\n -6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAFscTVbVgAABAMASDBGAiEAmTjfVRbR\n -K5UgRC1QHH5nGILAUIl9hWAn6/C0UE1QuQUCIQCxa6ezO4p4BpRM6SlLo4or/JXC\n -lgdQ/TQEe/eD+rqjpTANBgkqhkiG9w0BAQsFAAOCAQEAiEJ+HAVU53CtOZw74kzV\n -/elsY8a7eke2fUP1+dGuwx24iEefUDQJGkSSEMOub8DsBd9ZwFY6hAE1KCNAlZnT\n -mhtwxTBjMPE3H1eE+1Ye00Wv323YcZgnqWYy7A36r5/RdupQRw3hs/w58BoJACDj\n -sSmGvH9GkeohXgUwLL91mlNJ56vUX2nDCxylxqLyWTMjzsPFMc8Of8ek2QIobMNX\n -KopeChQU9ACe/ZsdO2UClGVtuupjrhfkbKAeJCcEW+DonV1geTwuXuJjIwitTyXD\n -K5RDtw2QPwFRVggqe7TrnGzKdNzxbKN6tRWKuCKdyKqczf6zn1gG+Z1emrwN+lBn\n -xA==\n +MIIGLzCCBRegAwIBAgIRAJ6HzyfKXWCtRn3q9gGkgYEwDQYJKoZIhvcNAQELBQAw\n +gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO\n +BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE\n +AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD\n +QTAeFw0yMTA3MjIwMDAwMDBaFw0yMjA3MjIyMzU5NTlaMBgxFjAUBgNVBAMMDSou\n +bWl2aXRhLmNhcmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVOhtO\n +TJBn5V9SmHmo/EawNiO0VwHOVnnrfnaPD2A1DeKqHmAfMTaybHaCfi+mufV8veem\n +fY1j6rXq7RFU46SMBbFlfZqKS/3zb2d3yRT7OBU83PV5P8JXHrqEArlmKiOZcPoj\n +86TTAbq5wwxjFXkePzJSdOdUN/Z1E1tI8ieUQC40tpMsRvf5XOzQZousXBT1P6F9\n +Q2FbUKEfiEBJ0wjnz74a73U7DebuYGEFPSjVjrkVB11+55y1MBkwg/6JIro+BlXo\n +rW6Xaifb1PKFbTFQnlC4BAKyPHxNKWZCSHgw/C3A7fBQKHM1wVhZo2BZrumdE+X1\n +FOScWlN+M/+TyUybAgMBAAGjggL6MIIC9jAfBgNVHSMEGDAWgBSNjF7EVK2K4Xfp\n +m/mbBeG4AY1h4TAdBgNVHQ4EFgQUCS0Y1v7p19isO7cTuP3YrKVr2OcwDgYDVR0P\n +AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG\n +AQUFBwMCMEkGA1UdIARCMEAwNAYLKwYBBAGyMQECAgcwJTAjBggrBgEFBQcCARYX\n +aHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQIBMIGEBggrBgEFBQcBAQR4\n +MHYwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1JT\n +QURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGG\n +F2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMCUGA1UdEQQeMByCDSoubWl2aXRhLmNh\n +cmWCC21pdml0YS5jYXJlMIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdQBGpVXr\n +dfqRIDC1oolp9PN9ESxBdL79SbiFq/L8cP5tRwAAAXrNeYDBAAAEAwBGMEQCIFzd\n ++zLvEGolSmSaa7vaQxv63DuX5vHQggER6/Dh+jZGAiAcUn8AZjF7GQOd4LTzGMhU\n +KsGNyn6d3n4cJ9fy9BzRxAB1AEHIyrHfIkZKEMahOglCh15OMYsbA+vrS8do8JBi\n +lgb2AAABes15gIYAAAQDAEYwRAIgE0NFzvN7qEre8Bc1C8EsMHD+5PDyQHZRBJkN\n +OdxsH9MCIDBSFFZTheD2+nzbHm5WLvAI75xyUvyBx/LEy3XBtjulAHYAKXm+8J45\n +OSHwVnOfY6V35b5XfZxgCvj5TV0mXCVdx4QAAAF6zXmAWwAABAMARzBFAiAbRPVk\n +w3AIzVF7gE0R3ZJgou7P4o9KL2yRgAaeGbbClgIhAPL86sD0GwPZ9ZsL31q07Y/S\n +1kq5ohBt907fOisMwI0HMA0GCSqGSIb3DQEBCwUAA4IBAQAaYeV2NtUM2HkxWbfd\n +3jVAs1PdBIYtktBpx7UwNphylqF4qlsZwV5XZxeD/K7mTW5tgNaHHrEjaOME/y1s\n +rWTIt1D+UUmDdiSgKfVF5gfajPFVepOcb5OC+ielevvnVJn/6Tqa/RNz0GstwMnB\n +3lBaoP7oGuBy2Ow3LG0+yO4Q0j82gIkOM15CsjY9ZK540HAXllxKGN29Yf+RDkqE\n +zRk4TE12MEW+Ugw6RxDSUCfKmev4iUAT9vq790OESAfOKY1zg/6hIF3noH1IFt1d\n +e0wVWz58KTXBqHsmxX3F1PUuT6NY+wRsVfnc8hR8mfJibJ0VL8wxjzScDXyHpZr/\n +o3I7\n -----END CERTIFICATE----- ", "ssl_certificate_sni_bundle" => "-----BEGIN CERTIFICATE-----\n -MIIGGTCCBAGgAwIBAgIQE31TnKp8MamkM3AZaIR6jTANBgkqhkiG9w0BAQwFADCB\n +MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB\n iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl\n cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV\n BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx\n -MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBlTELMAkGA1UEBhMCR0IxGzAZBgNV\n +MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV\n BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE\n -ChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQDEzRTZWN0aWdvIFJTQSBPcmdhbml6\n -YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0B\n -AQEFAAOCAQ8AMIIBCgKCAQEAnJMCRkVKUkiS/FeN+S3qU76zLNXYqKXsW2kDwB0Q\n -9lkz3v4HSKjojHpnSvH1jcM3ZtAykffEnQRgxLVK4oOLp64m1F06XvjRFnG7ir1x\n -on3IzqJgJLBSoDpFUd54k2xiYPHkVpy3O/c8Vdjf1XoxfDV/ElFw4Sy+BKzL+k/h\n -fGVqwECn2XylY4QZ4ffK76q06Fha2ZnjJt+OErK43DOyNtoUHZZYQkBuCyKFHFEi\n -rsTIBkVtkuZntxkj5Ng2a4XQf8dS48+wdQHgibSov4o2TqPgbOuEQc6lL0giE5dQ\n -YkUeCaXMn2xXcEAG2yDoG9bzk4unMp63RBUJ16/9fAEc2wIDAQABo4IBbjCCAWow\n -HwYDVR0jBBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFBfZ1iUn\n -Z/kxwklD2TA2RIxsqU/rMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/\n -AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYG\n -BFUdIAAwCAYGZ4EMAQICMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl\n -cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy\n -bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy\n -dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ\n -aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAThNA\n -lsnD5m5bwOO69Bfhrgkfyb/LDCUW8nNTs3Yat6tIBtbNAHwgRUNFbBZaGxNh10m6\n -pAKkrOjOzi3JKnSj3N6uq9BoNviRrzwB93fVC8+Xq+uH5xWo+jBaYXEgscBDxLmP\n -bYox6xU2JPti1Qucj+lmveZhUZeTth2HvbC1bP6mESkGYTQxMD0gJ3NR0N6Fg9N3\n -OSBGltqnxloWJ4Wyz04PToxcvr44APhL+XJ71PJ616IphdAEutNCLFGIUi7RPSRn\n -R+xVzBv0yjTqJsHe3cQhifa6ezIejpZehEU4z4CqN2mLYBd0FUiRnG3wTqN3yhsc\n -SPr5z0noX0+FCuKPkBurcEya67emP7SsXaRfz+bYipaQ908mgWB2XQ8kd5GzKjGf\n -FlqyXYwcKapInI5v03hAcNt37N3j0VcFcC3mSZiIBYRiBXBWdoY5TtMibx3+bfEO\n -s2LEPMvAhblhHrrhFYBZlAyuBbuMf1a+HNJav5fyakywxnB2sJCNwQs2uRHY1ihc\n -6k/+JLcYCpsM0MF8XPtpvcyiTcaQvKZN8rG61ppnW5YCUtCC+cQKXA0o4D/I+pWV\n -idWkvklsQLI+qGu41SWyxP7x09fn1txDAXYw+zuLXfdKiXyaNb78yvBXAfCNP6CH\n -MntHWpdLgtJmwsQt6j8k9Kf5qLnjatkYYaA7jBU=\n +ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g\n +VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC\n +AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N\n +TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj\n +eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E\n +oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk\n +Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY\n +uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j\n +BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb\n ++ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G\n +A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw\n +CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0\n +LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr\n +BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv\n +bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov\n +L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H\n +ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH\n +7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi\n +H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx\n +RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv\n +xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38\n +sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL\n +l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq\n +6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY\n +LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5\n +yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K\n +00u/I5sUKUErmgQfky3xxzlIPK1aEn8=\n -----END CERTIFICATE-----\n -----BEGIN CERTIFICATE-----\n -MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv\n -MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk\n -ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF\n -eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow\n -gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK\n -ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD\n -VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjAN\n -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00yt\n -UINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NC\n -tnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQf\n -jtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM\n -8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hm\n -AUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiV\n -Z4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9\n -N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sF\n -qV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9\n -HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ\n -+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyX\n -HAc/DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTv\n -A73gJMtUGjAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/\n -BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud\n -HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4\n -dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0\n -dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeD\n -lQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWn\n -RtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQ\n -YzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8\n -Le9Gclc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQf\n -Jtl7GQVoP7o81DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p\n -0fKtirOMxyHNwu8=\n +MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7\n +MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD\n +VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE\n +AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4\n +MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5\n +MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO\n +ZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0\n +aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sI\n +s9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnG\n +vDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQ\n +Ijy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfb\n +IWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0\n +tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97E\n +xwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNV\n +icQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5\n +D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJ\n +WBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ\n +5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzG\n +KAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSg\n +EQojPpbxB+zirynvgqV/0DCktDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rID\n +ZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAG\n +BgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29t\n +L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr\n +BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUA\n +A4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+\n +rvSNb3I8QzvAP+u431yqqcau8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+\n +/czSAaF9ffgZGclCKxO/WIu6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA\n +CiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F\n +zZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA\n +vGp4z7h/jnZymQyd/teRCBaho1+V\n -----END CERTIFICATE----- ", "ssl_certificate_sni_chainfile" => null, diff --git a/app/Http/Controllers/MembershipController.php b/app/Http/Controllers/MembershipController.php index 65ca030..4308f61 100755 --- a/app/Http/Controllers/MembershipController.php +++ b/app/Http/Controllers/MembershipController.php @@ -43,11 +43,10 @@ class MembershipController extends Controller $userHistoryUpgradeOrder = UserHistory::whereUserId($user->id)->whereAction('upgrade_order')->get()->last(); $userHistoryDeleteMembership = UserHistory::whereUserId($user->id)->whereAction('delete_membership')->whereStatus(50)->get()->last(); - $data = [ 'user' => $user, - 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), - 'upgrade' => Product::where('active', true)->where('show_at', '=', 4)->where('identifier', 'upgrade')->get(), + 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(), + 'upgrade' => Product::where('active', true)->whereJsonContains('show_on', '5')->where('identifier', 'upgrade')->get(), 'diff_months' => $diff_months, 'userHistoryPaymentOrder' => $userHistoryPaymentOrder, 'userHistoryUpgradeOrder' => $userHistoryUpgradeOrder, @@ -91,7 +90,7 @@ class MembershipController extends Controller $user->abo_options = true; $user->save(); } - if($product && $product->active && $product->show_at >= 3){ + if($product && $product->active){ $image = ""; if($product->images->count()){ $image = $product->images->first()->slug; @@ -136,7 +135,7 @@ class MembershipController extends Controller \Session()->flash('alert-success', "keine Änderung vorgenommen."); return back(); } - if($product && $product->active && $product->show_at >= 3){ + if($product && $product->active){ $user->payment_order_id = $product->id; $user->save(); UserHistory::create(['user_id' => $user->id, 'action'=>$action, 'status'=>10, 'product_id'=>$product->id]); diff --git a/app/Http/Controllers/PaymentMethodController.php b/app/Http/Controllers/PaymentMethodController.php index c85c494..fd965e7 100755 --- a/app/Http/Controllers/PaymentMethodController.php +++ b/app/Http/Controllers/PaymentMethodController.php @@ -35,7 +35,7 @@ class PaymentMethodController extends Controller 'name' => $data['name'], 'short' => $data['short'], 'pos' => $data['pos'], - 'show_at' => $data['show_at'], + 'show_on' => isset($data['show_on']) ? $data['show_on'] : null, 'default' => isset($data['default']) ? true : false, 'active' => isset($data['active']) ? true : false, ]); @@ -44,7 +44,7 @@ class PaymentMethodController extends Controller $model->name = $data['name']; $model->short = $data['short']; $model->pos = $data['pos']; - $model->show_at = $data['show_at']; + $model->show_on = isset($data['show_on']) ? $data['show_on'] : null; $model->default = isset($data['default']) ? true : false; $model->active = isset($data['active']) ? true : false; $model->save(); diff --git a/app/Http/Controllers/Sys/AdminToolsController.php b/app/Http/Controllers/Sys/AdminToolsController.php index 93257a4..bc26470 100755 --- a/app/Http/Controllers/Sys/AdminToolsController.php +++ b/app/Http/Controllers/Sys/AdminToolsController.php @@ -115,14 +115,21 @@ class AdminToolsController extends Controller $user_shops = UserShop::all(); $text = ""; - $kas = new KasController(); + /* $kas = new KasController(); $domain = 'mivita.care'; $ssl = KasSLLController::getApiSSLParameter(); $subdomains = $kas->action('get_subdomains'); foreach ($subdomains as $subdomain){ - $text .= $subdomain['subdomain_name']." - ".$subdomain['ssl_certificate_sni']."\n"; + /*if($subdomain['subdomain_name'] === 'bio-aloe.mivita.care'){ + dump($subdomain); + } + if($subdomain['subdomain_name'] === 'rockmyworld-by-conny.mivita.care'){ + dd($subdomain); + }*/ + /* + $text .= $subdomain['subdomain_name']." - ".$subdomain['ssl_certificate_sni']." - "; if($subdomain['ssl_certificate_sni'] !== "Y"){ $pra = array( @@ -130,9 +137,18 @@ class AdminToolsController extends Controller ); $pra = array_merge($pra, $ssl); $value = $kas->action('update_ssl', $pra); - $text .= $value."\n"; + $text .= $value; + }else{ + if(isset($subdomain['ssl_certificate_sni_is_active'])){ + $text .= $subdomain['ssl_certificate_sni_is_active'].'-is_active'; + }else{ + $text .= '-CHECK!'; + + } } - } + + $text .= "\n"; + }*/ $data = [ 'values' => $user_shops, 'text' => $text, diff --git a/app/Http/Controllers/User/HomepartyController.php b/app/Http/Controllers/User/HomepartyController.php index 897dc57..ac2107d 100755 --- a/app/Http/Controllers/User/HomepartyController.php +++ b/app/Http/Controllers/User/HomepartyController.php @@ -2,25 +2,22 @@ namespace App\Http\Controllers\User; -use App\Http\Controllers\Controller; -use App\Models\Homeparty; -use App\Models\HomepartyUser; -use App\Models\HomepartyUserOrderItem; -use App\Models\Product; -use App\Models\ShippingCountry; -use App\Models\ShoppingInstance; -use App\Models\ShoppingOrder; -use App\Models\ShoppingUser; -use App\Models\UserHistory; -use App\Models\UserShop; -use App\Services\HomepartyCart; -use App\Services\Payment; -use App\Services\Util; -use App\User; use Auth; -use Request; -use Validator; use Yard; +use Request; +use App\User; +use Validator; +use App\Services\Util; +use App\Models\Product; +use App\Models\Homeparty; +use App\Models\UserHistory; +use App\Models\HomepartyUser; +use App\Services\UserService; +use App\Models\ShippingCountry; +use App\Services\HomepartyCart; +use App\Models\ShoppingInstance; +use App\Http\Controllers\Controller; +use App\Models\HomepartyUserOrderItem; class HomepartyController extends Controller @@ -34,18 +31,28 @@ class HomepartyController extends Controller public function index() { $data = [ - 'homepartys' => Homeparty::where('auth_user_id', '=', \Auth::user()->id)->get(), + 'homepartys' => Homeparty::where('auth_user_id', '=', \Auth::user()->id)->orderByDesc('id')->get(), ]; return view('user.homeparty.index', $data); } - public function detail($id) + public function detail($id, $step = false) { if($id === 'new'){ $homeparty = new Homeparty(); + $homeparty->id = 0; + $step = 1; $homeparty->description = "Willkommen zu unserer Auszeitparty rund um das Thema Bio Aloe Vera und Naturkosmetik. Wir informieren Dich darüber, was Premiumqualität bei Naturkosmetik wirklich ausmacht, zeigen Dir viele Anwendungsbeispiele bei Haut- und Darmproblemen und natürlich kannst Du unsere Produkte ausgiebig testen. Wir freuen uns auf Dich!"; }else{ $homeparty = $this->getHomparty($id); + if($homeparty->step < 10){ + $step = $homeparty->step; + }else{ + if(!$step){ + $step = 10; + } + } + } if($homeparty->homeparty_host){ $homeparty_user = $homeparty->homeparty_host; @@ -61,22 +68,43 @@ class HomepartyController extends Controller $data = [ 'homeparty' => $homeparty, 'homeparty_user' => $homeparty_user, + 'step' => $step, ]; return view('user.homeparty.detail', $data); } - public function store($id = null) + public function store($id = null, $step = false) { $data = Request::all(); - if($data['action'] === 'homeparty-party-store'){ + if($data['action'] === 'homeparty-party-store-detail'){ $rules = array( 'date' => 'required', 'name' => 'required', - 'place' => 'required' + 'place' => 'required', + ); + if(!$id){ + $rules = array( + 'date' => 'required', + 'name' => 'required', + 'place' => 'required', + 'country_id' => 'required' + ); + } + } + if($data['action'] === 'homeparty-party-store-address'){ + $rules = array( + 'shipping_firstname' => 'required', + 'shipping_lastname' => 'required', + 'shipping_address' => 'required', + 'shipping_zipcode' => 'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required', + 'shipping_country_id' => 'required' ); } - if($data['action'] === 'homeparty-user-store'){ + + if($data['action'] === 'homeparty-party-store-host'){ $rules = array( 'billing_salutation' => 'required', 'billing_firstname' => 'required', @@ -86,25 +114,13 @@ class HomepartyController extends Controller 'billing_city' => 'required', 'billing_country_id' => 'required', ); - if (!Request::get('same_as_billing')) { - $rules = array_merge($rules, [ - 'shipping_firstname' => 'required', - 'shipping_lastname' => 'required', - 'shipping_address' => 'required', - 'shipping_zipcode' => 'required', - 'shipping_city' => 'required', - 'shipping_salutation' => 'required', - 'shipping_country_id' => 'required' - ]); - } } - $validator = Validator::make(Request::all(), $rules); if ($validator->fails()) { return back()->withErrors($validator)->withInput(Request::all()); } - - if($data['action'] === 'homeparty-party-store'){ + + if($data['action'] === 'homeparty-party-store-detail'){ if(!$id){ //first save create and empty user/host do { @@ -112,29 +128,51 @@ class HomepartyController extends Controller } while( Homeparty::where('token', $token)->count() ); $data['token'] = $token; $data['auth_user_id'] = \Auth::user()->id; + $data['step'] = 2; + $step = 2; $homeparty = Homeparty::create($data); - $homeparty_user = HomepartyUser::create([ 'homeparty_id' => $homeparty->id, 'auth_user_id' => \Auth::user()->id, + 'shipping_country_id' => $homeparty->country_id, + 'billing_country_id' => $homeparty->country_id, + 'same_as_billing' => false, 'is_host' => true, ]); }else { $homeparty = $this->getHomparty($id); $homeparty->fill($data)->save(); + $step = 10; + } + } + if($data['action'] === 'homeparty-party-store-address'){ + $homeparty = $this->getHomparty($id); + $homeparty_user = $homeparty->homeparty_host; + $homeparty_user->fill($data)->save(); + if($homeparty->step === 2){ + $homeparty->step = 3; + $homeparty->save(); + $step = 3; + }else{ + $step = 12; } } - if($data['action'] === 'homeparty-user-store'){ + if($data['action'] === 'homeparty-party-store-host'){ $homeparty = $this->getHomparty($id); - $data['same_as_billing'] = isset($data['same_as_billing']) ? true : false; - $data['shipping_country_id'] = isset($data['shipping_country_id']) ? $data['shipping_country_id'] : $data['billing_country_id']; $homeparty_user = $homeparty->homeparty_host; $homeparty_user->fill($data)->save(); + if($homeparty->step === 3){ + $homeparty->step = 10; + $homeparty->save(); + $step = 10; + }else{ + $step = 13; + } } \Session()->flash('alert-save', '1'); - return redirect(route('user_homeparty_detail', $homeparty->id)); + return redirect(route('user_homeparty_detail', [$homeparty->id, $step])); } @@ -154,6 +192,8 @@ class HomepartyController extends Controller if($gid === 'new'){ $homeparty_user = new HomepartyUser(); $homeparty_user->same_as_billing = true; + $homeparty_user->billing_country_id = $homeparty->country_id; + $homeparty_user->shipping_country_id = $homeparty->country_id; }else{ $homeparty_user = HomepartyUser::findOrFail($gid); if($homeparty->id !== $homeparty_user->homeparty_id){ @@ -222,9 +262,20 @@ class HomepartyController extends Controller public function order($id = null) { $user = User::find(Auth::user()->id); - $homeparty = $this->getHomparty($id); + $shipping_country_id = $this->checkShoppingCountry($homeparty->country_id); + if(!$shipping_country_id){ + \Session()->flash('custom-error', __('validation.custom.shipping_not_found')); + return redirect(route('user_homepartys')); + } + UserService::checkUserTaxShippingCountry($user, $shipping_country_id); + if($this->userChangeCountry($homeparty)){ + \Session()->flash('custom-error', 'Das Rechnungsland wurde geändert und der Warenkrob zurückgesetzt.'); + return redirect(route('user_homeparty_order', [$homeparty->id])); + } HomepartyCart::calculateHomeparty($homeparty); + $homeparty->card_info = UserService::getYardInfo(); + $homeparty->save(); $userHistoryPaymentOrder = UserHistory::whereUserId($user->id)->whereAction('payment_homeparty')->where('referenz', $homeparty->id)->get()->last(); $data = [ 'homeparty' => $homeparty, @@ -232,10 +283,34 @@ class HomepartyController extends Controller ]; return view('user.homeparty.order', $data); } + + private function userChangeCountry($homeparty){ + if(isset($homeparty->card_info['user_country_id'])){ + if($homeparty->card_info['user_country_id'] !== UserService::$user_country->id){ + // es wurde schon eine order angelegt, aber das Rechungsland geändert + if($homeparty->homeparty_order_items->count()){ + foreach($homeparty->homeparty_order_items as $homeparty_order_item){ + $homeparty_order_item->delete(); + } + return true; + } + } + } + return false; + } + + private function checkShoppingCountry($country_id){ + if($country_id){ + if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){ + return $shipping_country->id; + } + } + return false; + } + //perform Request public function orderStore($id = null) { - $homeparty = $this->getHomparty($id); if(Request::ajax()) { @@ -257,20 +332,37 @@ class HomepartyController extends Controller $HomepartyUserOrderItem->qty = $HomepartyUserOrderItem->qty+1; $HomepartyUserOrderItem->save(); }else{ - $HomepartyUserOrderItem = HomepartyUserOrderItem::create([ - 'homeparty_id' => $homeparty->id, - 'homeparty_user_id' => $homeparty_user->id, - 'product_id' => $product->id, - 'qty' => 1, - 'price' => $product->price, - 'price_net' => $product->getPriceWith(true, false), - 'tax_rate' => $product->tax, - 'points' => $product->points, - 'margin' => $margin, - 'ek-price' => $product->getPriceWith(false, true), - 'ek-price_net' => $product->getPriceWith(true, true), - 'slug' => $product->slug - ]); + if($homeparty->getCardInfo('user_tax_free')){ + $HomepartyUserOrderItem = HomepartyUserOrderItem::create([ + 'homeparty_id' => $homeparty->id, + 'homeparty_user_id' => $homeparty_user->id, + 'product_id' => $product->id, + 'qty' => 1, + 'price' => $product->getPriceWith(true, false, $homeparty->getUserCountry()), + 'price_net' => $product->getPriceWith(true, false, $homeparty->getUserCountry()), + 'tax_rate' => 0, + 'points' => $product->points, + 'margin' => $margin, + 'ek-price' => $product->getPriceWith(true, true, $homeparty->getUserCountry()), + 'ek-price_net' => $product->getPriceWith(true, true, $homeparty->getUserCountry()), + 'slug' => $product->slug + ]); + }else{ + $HomepartyUserOrderItem = HomepartyUserOrderItem::create([ + 'homeparty_id' => $homeparty->id, + 'homeparty_user_id' => $homeparty_user->id, + 'product_id' => $product->id, + 'qty' => 1, + 'price' => $product->getPriceWith(false, false, $homeparty->getUserCountry()), + 'price_net' => $product->getPriceWith(true, false, $homeparty->getUserCountry()), + 'tax_rate' => $product->getTaxWith($homeparty->getUserCountry()), + 'points' => $product->points, + 'margin' => $margin, + 'ek-price' => $product->getPriceWith(false, true, $homeparty->getUserCountry()), + 'ek-price_net' => $product->getPriceWith(true, true, $homeparty->getUserCountry()), + 'slug' => $product->slug + ]); + } } } @@ -280,7 +372,7 @@ class HomepartyController extends Controller HomepartyCart::calculateHomeparty($homeparty); $html_user_cart = view("user.homeparty.show_products_order", ['homeparty' => $homeparty, 'homeparty_guest' => $homeparty_user])->render(); $html_bonus = view("user.homeparty.show_bonus", ['homeparty' => $homeparty])->render(); - $html_host_bonus = view("user.homeparty.show_calc_bonus_host")->render(); + $html_host_bonus = view("user.homeparty.show_calc_bonus_host", ['homeparty' => $homeparty])->render(); $html_total = view("user.homeparty.show_total_order", ['homeparty' => $homeparty])->render(); return response()->json(['response' => true, 'data'=>$data, 'html_user_cart'=>$html_user_cart, 'html_bonus'=>$html_bonus, 'html_host_bonus'=>$html_host_bonus, 'html_total'=>$html_total]); } @@ -458,18 +550,24 @@ class HomepartyController extends Controller return $homeparty; } - public function datatable(){ - $query = Product::select('products.*')->where('active', true)->where(function ($q) { - $q->where('show_at', '=', 0) - ->orWhere('show_at', '=', 1); - }); + public function datatable($homeparty_id){ + + $query = Product::select('products.*')->where('active', true)->whereJsonContains('show_on', '3'); + $homeparty = Homeparty::findOrFail($homeparty_id); return \DataTables::eloquent($query) - ->addColumn('add_card', function (Product $product) { - return ''; + ->addColumn('add_card', function (Product $product) use ($homeparty) { + if($homeparty->getCardInfo('user_tax_free')){ + return ''; + }else{ + return ''; + } + }) ->addColumn('picture', function (Product $product) { if(count($product->images)){ @@ -477,14 +575,28 @@ class HomepartyController extends Controller } return ""; }) - ->addColumn('price_net', function (Product $product) { - return $product->getFormattedPriceWith(true, true). " €"; + /*->addColumn('price_net', function (Product $product) use ($homeparty) { + return ''.$product->getFormattedPriceWith(true, true, $homeparty->getUserCountry()). " €". + ''.$product->getFormattedPriceCurrencyWith(true, true, $homeparty->getUserCountry()).''; }) - ->addColumn('price_gross', function (Product $product) { - return $product->getFormattedPriceWith(false, true). " €"; + */ + ->addColumn('price_gross', function (Product $product) use ($homeparty) { + if($homeparty->getCardInfo('user_tax_free')){ + return ''.$product->getFormattedPriceWith(true, true, $homeparty->getUserCountry()). " €". + ''.$product->getFormattedPriceCurrencyWith(true, true, $homeparty->getUserCountry()).''; + }else{ + return ''.$product->getFormattedPriceWith(false, true, $homeparty->getUserCountry()). " €". + ''.$product->getFormattedPriceCurrencyWith(false, true, $homeparty->getUserCountry()).''; + } }) - ->addColumn('price_vk_gross', function (Product $product) { - return $product->getFormattedPriceWith(false, false). " €"; + ->addColumn('price_vk_gross', function (Product $product) use ($homeparty) { + if($homeparty->getCardInfo('user_tax_free')){ + return ''.$product->getFormattedPriceWith(true, false, $homeparty->getUserCountry()). " €". + ''.$product->getFormattedPriceCurrencyWith(true, false, $homeparty->getUserCountry()).''; + }else{ + return ''.$product->getFormattedPriceWith(false, false, $homeparty->getUserCountry()). " €". + ''.$product->getFormattedPriceCurrencyWith(false, false, $homeparty->getUserCountry()).''; + } }) ->addColumn('action', function (Product $product) { return ' @@ -83,12 +83,14 @@ - -
{{$value}}
- @endforeach
+
+ | ID | +User-ID | +{{__('Name')}} | +{{__('seit')}} | +Datum | +Erreichbar | +{{__('Status')}} | +
|---|---|---|---|---|---|---|
| {{ $value->id }} | +{{ $value->user_id }} | +{{ $value->name }}.mivita.care | +{{ $value->getActiveDateFormatSmall() }} | ++ @if($value->user && $value->user->payment_shop) + @if($value->user->isActiveShop()) + {{ $value->user->getPaymentShopDateFormat() }} + @else + {{ $value->user->getPaymentShopDateFormat() }} + @endif + @else + + @endif + + | ++ @if($value->getSubdomainAvailable()) + {{ __('available') }} + @if($value->getSubdomainSslSin()) HTTPS @else HTTP @endif + + @else + {{ __('not available') }} HTTP + @endif + | +{!! get_active_badge($value->active) !!} | +