瀏覽代碼

[Web] Update libs

andryyy 4 年之前
父節點
當前提交
ee6989bd1d
共有 84 個文件被更改,包括 1914 次插入960 次删除
  1. 89 93
      data/web/inc/lib/WebAuthn/Attestation/Format/U2f.php
  2. 102 32
      data/web/inc/lib/composer.lock
  3. 3 3
      data/web/inc/lib/vendor/composer/ClassLoader.php
  4. 332 0
      data/web/inc/lib/vendor/composer/InstalledVersions.php
  5. 1 0
      data/web/inc/lib/vendor/composer/autoload_classmap.php
  6. 3 1
      data/web/inc/lib/vendor/composer/autoload_real.php
  7. 1 0
      data/web/inc/lib/vendor/composer/autoload_static.php
  8. 694 634
      data/web/inc/lib/vendor/composer/installed.json
  9. 137 0
      data/web/inc/lib/vendor/composer/installed.php
  10. 26 0
      data/web/inc/lib/vendor/composer/platform_check.php
  11. 41 0
      data/web/inc/lib/vendor/ddeboer/imap/CHANGELOG.md
  12. 5 6
      data/web/inc/lib/vendor/ddeboer/imap/README.md
  13. 12 7
      data/web/inc/lib/vendor/ddeboer/imap/composer.json
  14. 1 0
      data/web/inc/lib/vendor/ddeboer/imap/src/Connection.php
  15. 17 10
      data/web/inc/lib/vendor/ddeboer/imap/src/Mailbox.php
  16. 10 2
      data/web/inc/lib/vendor/ddeboer/imap/src/Message.php
  17. 1 0
      data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractMessage.php
  18. 4 2
      data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractPart.php
  19. 7 1
      data/web/inc/lib/vendor/ddeboer/imap/src/Message/Transcoder.php
  20. 12 0
      data/web/inc/lib/vendor/matthiasmullie/minify/.github/FUNDING.yml
  21. 1 1
      data/web/inc/lib/vendor/matthiasmullie/minify/Dockerfile
  22. 15 0
      data/web/inc/lib/vendor/matthiasmullie/minify/docker-compose.yml
  23. 47 13
      data/web/inc/lib/vendor/matthiasmullie/minify/src/CSS.php
  24. 1 1
      data/web/inc/lib/vendor/paragonie/random_compat/composer.json
  25. 2 8
      data/web/inc/lib/vendor/phpmailer/phpmailer/README.md
  26. 1 1
      data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION
  27. 12 8
      data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json
  28. 6 4
      data/web/inc/lib/vendor/phpmailer/phpmailer/get_oauth_token.php
  29. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php
  30. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php
  31. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php
  32. 2 1
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php
  33. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php
  34. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php
  35. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php
  36. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ch.php
  37. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php
  38. 3 2
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php
  39. 3 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php
  40. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php
  41. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php
  42. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php
  43. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php
  44. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php
  45. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php
  46. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php
  47. 3 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php
  48. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php
  49. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php
  50. 2 1
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php
  51. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php
  52. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php
  53. 2 1
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php
  54. 16 12
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php
  55. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php
  56. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php
  57. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php
  58. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php
  59. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php
  60. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php
  61. 2 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php
  62. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php
  63. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php
  64. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php
  65. 2 1
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php
  66. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php
  67. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php
  68. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php
  69. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php
  70. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php
  71. 5 1
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php
  72. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php
  73. 3 2
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php
  74. 13 12
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php
  75. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php
  76. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php
  77. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php
  78. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php
  79. 1 0
      data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php
  80. 2 1
      data/web/inc/lib/vendor/phpmailer/phpmailer/src/Exception.php
  81. 2 1
      data/web/inc/lib/vendor/phpmailer/phpmailer/src/OAuth.php
  82. 109 62
      data/web/inc/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php
  83. 35 8
      data/web/inc/lib/vendor/phpmailer/phpmailer/src/POP3.php
  84. 88 28
      data/web/inc/lib/vendor/phpmailer/phpmailer/src/SMTP.php

文件差異過大導致無法顯示
+ 89 - 93
data/web/inc/lib/WebAuthn/Attestation/Format/U2f.php


+ 102 - 32
data/web/inc/lib/composer.lock

@@ -62,35 +62,39 @@
                 "oauth",
                 "oauth",
                 "oauth2"
                 "oauth2"
             ],
             ],
+            "support": {
+                "issues": "https://github.com/bshaffer/oauth2-server-php/issues",
+                "source": "https://github.com/bshaffer/oauth2-server-php/tree/master"
+            },
             "time": "2018-12-04T00:29:32+00:00"
             "time": "2018-12-04T00:29:32+00:00"
         },
         },
         {
         {
             "name": "ddeboer/imap",
             "name": "ddeboer/imap",
-            "version": "1.10.0",
+            "version": "1.11.0",
             "source": {
             "source": {
                 "type": "git",
                 "type": "git",
                 "url": "https://github.com/ddeboer/imap.git",
                 "url": "https://github.com/ddeboer/imap.git",
-                "reference": "fc09dbf6fb9ba7317a95c719e45893efc4fe6bde"
+                "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee"
             },
             },
             "dist": {
             "dist": {
                 "type": "zip",
                 "type": "zip",
-                "url": "https://api.github.com/repos/ddeboer/imap/zipball/fc09dbf6fb9ba7317a95c719e45893efc4fe6bde",
-                "reference": "fc09dbf6fb9ba7317a95c719e45893efc4fe6bde",
+                "url": "https://api.github.com/repos/ddeboer/imap/zipball/a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
+                "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
                 "shasum": ""
                 "shasum": ""
             },
             },
             "require": {
             "require": {
                 "ext-iconv": "*",
                 "ext-iconv": "*",
                 "ext-imap": "*",
                 "ext-imap": "*",
                 "ext-mbstring": "*",
                 "ext-mbstring": "*",
-                "php": "^7.2"
+                "php": "^7.3 || ^8.0"
             },
             },
             "require-dev": {
             "require-dev": {
-                "friendsofphp/php-cs-fixer": "^2.16",
-                "phpstan/phpstan": "^0.12",
-                "phpstan/phpstan-phpunit": "^0.12",
-                "phpstan/phpstan-strict-rules": "^0.12",
-                "phpunit/phpunit": "^8.5",
-                "zendframework/zend-mail": "^2.10"
+                "friendsofphp/php-cs-fixer": "^2.16.7",
+                "laminas/laminas-mail": "^2.12.3",
+                "phpstan/phpstan": "^0.12.57",
+                "phpstan/phpstan-phpunit": "^0.12.16",
+                "phpstan/phpstan-strict-rules": "^0.12.5",
+                "phpunit/phpunit": "^9.4.3"
             },
             },
             "type": "library",
             "type": "library",
             "autoload": {
             "autoload": {
@@ -122,20 +126,34 @@
                 "imap",
                 "imap",
                 "mail"
                 "mail"
             ],
             ],
-            "time": "2020-01-24T08:15:24+00:00"
+            "support": {
+                "issues": "https://github.com/ddeboer/imap/issues",
+                "source": "https://github.com/ddeboer/imap/tree/1.11.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/Slamdunk",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/ddeboer",
+                    "type": "github"
+                }
+            ],
+            "time": "2020-11-30T14:52:49+00:00"
         },
         },
         {
         {
             "name": "matthiasmullie/minify",
             "name": "matthiasmullie/minify",
-            "version": "1.3.63",
+            "version": "1.3.65",
             "source": {
             "source": {
                 "type": "git",
                 "type": "git",
                 "url": "https://github.com/matthiasmullie/minify.git",
                 "url": "https://github.com/matthiasmullie/minify.git",
-                "reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117"
+                "reference": "227f19062451c55a797e0cc667ef983834e6580c"
             },
             },
             "dist": {
             "dist": {
                 "type": "zip",
                 "type": "zip",
-                "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/9ba1b459828adc13430f4dd6c49dae4950dc4117",
-                "reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117",
+                "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/227f19062451c55a797e0cc667ef983834e6580c",
+                "reference": "227f19062451c55a797e0cc667ef983834e6580c",
                 "shasum": ""
                 "shasum": ""
             },
             },
             "require": {
             "require": {
@@ -182,7 +200,25 @@
                 "minifier",
                 "minifier",
                 "minify"
                 "minify"
             ],
             ],
-            "time": "2020-01-21T20:21:08+00:00"
+            "support": {
+                "issues": "https://github.com/matthiasmullie/minify/issues",
+                "source": "https://github.com/matthiasmullie/minify/tree/1.3.65"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/[user1",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/matthiasmullie] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g.",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/user2",
+                    "type": "github"
+                }
+            ],
+            "time": "2020-12-27T21:43:29+00:00"
         },
         },
         {
         {
             "name": "matthiasmullie/path-converter",
             "name": "matthiasmullie/path-converter",
@@ -231,6 +267,10 @@
                 "paths",
                 "paths",
                 "relative"
                 "relative"
             ],
             ],
+            "support": {
+                "issues": "https://github.com/matthiasmullie/path-converter/issues",
+                "source": "https://github.com/matthiasmullie/path-converter/tree/1.1.3"
+            },
             "time": "2019-02-05T23:41:09+00:00"
             "time": "2019-02-05T23:41:09+00:00"
         },
         },
         {
         {
@@ -285,20 +325,20 @@
         },
         },
         {
         {
             "name": "paragonie/random_compat",
             "name": "paragonie/random_compat",
-            "version": "v9.99.99",
+            "version": "v9.99.100",
             "source": {
             "source": {
                 "type": "git",
                 "type": "git",
                 "url": "https://github.com/paragonie/random_compat.git",
                 "url": "https://github.com/paragonie/random_compat.git",
-                "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
+                "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
             },
             },
             "dist": {
             "dist": {
                 "type": "zip",
                 "type": "zip",
-                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
-                "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
+                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
+                "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
                 "shasum": ""
                 "shasum": ""
             },
             },
             "require": {
             "require": {
-                "php": "^7"
+                "php": ">= 7"
             },
             },
             "require-dev": {
             "require-dev": {
                 "phpunit/phpunit": "4.*|5.*",
                 "phpunit/phpunit": "4.*|5.*",
@@ -326,7 +366,12 @@
                 "pseudorandom",
                 "pseudorandom",
                 "random"
                 "random"
             ],
             ],
-            "time": "2018-07-02T15:55:56+00:00"
+            "support": {
+                "email": "info@paragonie.com",
+                "issues": "https://github.com/paragonie/random_compat/issues",
+                "source": "https://github.com/paragonie/random_compat"
+            },
+            "time": "2020-10-15T08:29:30+00:00"
         },
         },
         {
         {
             "name": "php-mime-mail-parser/php-mime-mail-parser",
             "name": "php-mime-mail-parser/php-mime-mail-parser",
@@ -408,31 +453,39 @@
                 "parser",
                 "parser",
                 "php"
                 "php"
             ],
             ],
+            "support": {
+                "issues": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/issues",
+                "source": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/tree/master"
+            },
             "time": "2019-09-23T11:57:58+00:00"
             "time": "2019-09-23T11:57:58+00:00"
         },
         },
         {
         {
             "name": "phpmailer/phpmailer",
             "name": "phpmailer/phpmailer",
-            "version": "v6.1.6",
+            "version": "v6.2.0",
             "source": {
             "source": {
                 "type": "git",
                 "type": "git",
                 "url": "https://github.com/PHPMailer/PHPMailer.git",
                 "url": "https://github.com/PHPMailer/PHPMailer.git",
-                "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3"
+                "reference": "e38888a75c070304ca5514197d4847a59a5c853f"
             },
             },
             "dist": {
             "dist": {
                 "type": "zip",
                 "type": "zip",
-                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3",
-                "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3",
+                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f",
+                "reference": "e38888a75c070304ca5514197d4847a59a5c853f",
                 "shasum": ""
                 "shasum": ""
             },
             },
             "require": {
             "require": {
                 "ext-ctype": "*",
                 "ext-ctype": "*",
                 "ext-filter": "*",
                 "ext-filter": "*",
+                "ext-hash": "*",
                 "php": ">=5.5.0"
                 "php": ">=5.5.0"
             },
             },
             "require-dev": {
             "require-dev": {
+                "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
                 "doctrine/annotations": "^1.2",
                 "doctrine/annotations": "^1.2",
-                "friendsofphp/php-cs-fixer": "^2.2",
-                "phpunit/phpunit": "^4.8 || ^5.7"
+                "phpcompatibility/php-compatibility": "^9.3.5",
+                "roave/security-advisories": "dev-latest",
+                "squizlabs/php_codesniffer": "^3.5.6",
+                "yoast/phpunit-polyfills": "^0.2.0"
             },
             },
             "suggest": {
             "suggest": {
                 "ext-mbstring": "Needed to send email in multibyte encoding charset",
                 "ext-mbstring": "Needed to send email in multibyte encoding charset",
@@ -470,13 +523,17 @@
                 }
                 }
             ],
             ],
             "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
             "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
+            "support": {
+                "issues": "https://github.com/PHPMailer/PHPMailer/issues",
+                "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0"
+            },
             "funding": [
             "funding": [
                 {
                 {
-                    "url": "https://github.com/synchro",
+                    "url": "https://github.com/Synchro",
                     "type": "github"
                     "type": "github"
                 }
                 }
             ],
             ],
-            "time": "2020-05-27T12:24:03+00:00"
+            "time": "2020-11-25T15:24:57+00:00"
         },
         },
         {
         {
             "name": "robthree/twofactorauth",
             "name": "robthree/twofactorauth",
@@ -527,6 +584,10 @@
                 "php",
                 "php",
                 "tfa"
                 "tfa"
             ],
             ],
+            "support": {
+                "issues": "https://github.com/RobThree/TwoFactorAuth/issues",
+                "source": "https://github.com/RobThree/TwoFactorAuth"
+            },
             "time": "2020-01-02T19:56:46+00:00"
             "time": "2020-01-02T19:56:46+00:00"
         },
         },
         {
         {
@@ -577,6 +638,11 @@
                 "php",
                 "php",
                 "text"
                 "text"
             ],
             ],
+            "support": {
+                "email": "support@jevon.org",
+                "issues": "https://github.com/soundasleep/html2text/issues",
+                "source": "https://github.com/soundasleep/html2text/tree/master"
+            },
             "time": "2017-04-19T22:01:50+00:00"
             "time": "2017-04-19T22:01:50+00:00"
         },
         },
         {
         {
@@ -614,6 +680,10 @@
             ],
             ],
             "description": "Library for U2F implementation",
             "description": "Library for U2F implementation",
             "homepage": "https://developers.yubico.com/php-u2flib-server",
             "homepage": "https://developers.yubico.com/php-u2flib-server",
+            "support": {
+                "issues": "https://github.com/Yubico/php-u2flib-server/issues",
+                "source": "https://github.com/Yubico/php-u2flib-server/tree/1.0.2"
+            },
             "time": "2018-09-07T08:16:44+00:00"
             "time": "2018-09-07T08:16:44+00:00"
         }
         }
     ],
     ],
@@ -625,5 +695,5 @@
     "prefer-lowest": false,
     "prefer-lowest": false,
     "platform": [],
     "platform": [],
     "platform-dev": [],
     "platform-dev": [],
-    "plugin-api-version": "1.1.0"
+    "plugin-api-version": "2.0.0"
 }
 }

+ 3 - 3
data/web/inc/lib/vendor/composer/ClassLoader.php

@@ -37,8 +37,8 @@ namespace Composer\Autoload;
  *
  *
  * @author Fabien Potencier <fabien@symfony.com>
  * @author Fabien Potencier <fabien@symfony.com>
  * @author Jordi Boggiano <j.boggiano@seld.be>
  * @author Jordi Boggiano <j.boggiano@seld.be>
- * @see    http://www.php-fig.org/psr/psr-0/
- * @see    http://www.php-fig.org/psr/psr-4/
+ * @see    https://www.php-fig.org/psr/psr-0/
+ * @see    https://www.php-fig.org/psr/psr-4/
  */
  */
 class ClassLoader
 class ClassLoader
 {
 {
@@ -60,7 +60,7 @@ class ClassLoader
     public function getPrefixes()
     public function getPrefixes()
     {
     {
         if (!empty($this->prefixesPsr0)) {
         if (!empty($this->prefixesPsr0)) {
-            return call_user_func_array('array_merge', $this->prefixesPsr0);
+            return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
         }
         }
 
 
         return array();
         return array();

+ 332 - 0
data/web/inc/lib/vendor/composer/InstalledVersions.php

@@ -0,0 +1,332 @@
+<?php
+
+
+
+
+
+
+
+
+
+
+
+namespace Composer;
+
+use Composer\Semver\VersionParser;
+
+
+
+
+
+
+class InstalledVersions
+{
+private static $installed = array (
+  'root' => 
+  array (
+    'pretty_version' => '1.0.0+no-version-set',
+    'version' => '1.0.0.0',
+    'aliases' => 
+    array (
+    ),
+    'reference' => NULL,
+    'name' => '__root__',
+  ),
+  'versions' => 
+  array (
+    '__root__' => 
+    array (
+      'pretty_version' => '1.0.0+no-version-set',
+      'version' => '1.0.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => NULL,
+    ),
+    'bshaffer/oauth2-server-php' => 
+    array (
+      'pretty_version' => 'v1.11.1',
+      'version' => '1.11.1.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '5a0c8000d4763b276919e2106f54eddda6bc50fa',
+    ),
+    'ddeboer/imap' => 
+    array (
+      'pretty_version' => '1.11.0',
+      'version' => '1.11.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => 'a089dfcb9d177f921eb5dadc8d4144a44dff22ee',
+    ),
+    'exorus/php-mime-mail-parser' => 
+    array (
+      'replaced' => 
+      array (
+        0 => '*',
+      ),
+    ),
+    'matthiasmullie/minify' => 
+    array (
+      'pretty_version' => '1.3.65',
+      'version' => '1.3.65.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '227f19062451c55a797e0cc667ef983834e6580c',
+    ),
+    'matthiasmullie/path-converter' => 
+    array (
+      'pretty_version' => '1.1.3',
+      'version' => '1.1.3.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => 'e7d13b2c7e2f2268e1424aaed02085518afa02d9',
+    ),
+    'messaged/php-mime-mail-parser' => 
+    array (
+      'replaced' => 
+      array (
+        0 => '*',
+      ),
+    ),
+    'mustangostang/spyc' => 
+    array (
+      'pretty_version' => '0.6.3',
+      'version' => '0.6.3.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '4627c838b16550b666d15aeae1e5289dd5b77da0',
+    ),
+    'paragonie/random_compat' => 
+    array (
+      'pretty_version' => 'v9.99.100',
+      'version' => '9.99.100.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
+    ),
+    'php-mime-mail-parser/php-mime-mail-parser' => 
+    array (
+      'pretty_version' => '5.0.5',
+      'version' => '5.0.5.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '27983433aabeccee832573c3c56e6a4855e57745',
+    ),
+    'phpmailer/phpmailer' => 
+    array (
+      'pretty_version' => 'v6.2.0',
+      'version' => '6.2.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f',
+    ),
+    'robthree/twofactorauth' => 
+    array (
+      'pretty_version' => '1.7.0',
+      'version' => '1.7.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '37983bf675c5baca09d19d6705170489d0df0002',
+    ),
+    'soundasleep/html2text' => 
+    array (
+      'pretty_version' => '0.5.0',
+      'version' => '0.5.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad',
+    ),
+    'yubico/u2flib-server' => 
+    array (
+      'pretty_version' => '1.0.2',
+      'version' => '1.0.2.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '55d813acf68212ad2cadecde07551600d6971939',
+    ),
+  ),
+);
+
+
+
+
+
+
+
+public static function getInstalledPackages()
+{
+return array_keys(self::$installed['versions']);
+}
+
+
+
+
+
+
+
+
+
+public static function isInstalled($packageName)
+{
+return isset(self::$installed['versions'][$packageName]);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+public static function satisfies(VersionParser $parser, $packageName, $constraint)
+{
+$constraint = $parser->parseConstraints($constraint);
+$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+return $provided->matches($constraint);
+}
+
+
+
+
+
+
+
+
+
+
+public static function getVersionRanges($packageName)
+{
+if (!isset(self::$installed['versions'][$packageName])) {
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+$ranges = array();
+if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
+$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
+}
+if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
+}
+if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
+}
+if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
+}
+
+return implode(' || ', $ranges);
+}
+
+
+
+
+
+public static function getVersion($packageName)
+{
+if (!isset(self::$installed['versions'][$packageName])) {
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+if (!isset(self::$installed['versions'][$packageName]['version'])) {
+return null;
+}
+
+return self::$installed['versions'][$packageName]['version'];
+}
+
+
+
+
+
+public static function getPrettyVersion($packageName)
+{
+if (!isset(self::$installed['versions'][$packageName])) {
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
+return null;
+}
+
+return self::$installed['versions'][$packageName]['pretty_version'];
+}
+
+
+
+
+
+public static function getReference($packageName)
+{
+if (!isset(self::$installed['versions'][$packageName])) {
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+if (!isset(self::$installed['versions'][$packageName]['reference'])) {
+return null;
+}
+
+return self::$installed['versions'][$packageName]['reference'];
+}
+
+
+
+
+
+public static function getRootPackage()
+{
+return self::$installed['root'];
+}
+
+
+
+
+
+
+
+public static function getRawData()
+{
+return self::$installed;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+public static function reload($data)
+{
+self::$installed = $data;
+}
+}

+ 1 - 0
data/web/inc/lib/vendor/composer/autoload_classmap.php

@@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 $baseDir = dirname($vendorDir);
 
 
 return array(
 return array(
+    'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
     'u2flib_server\\Error' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
     'u2flib_server\\Error' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
     'u2flib_server\\RegisterRequest' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
     'u2flib_server\\RegisterRequest' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
     'u2flib_server\\Registration' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
     'u2flib_server\\Registration' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',

+ 3 - 1
data/web/inc/lib/vendor/composer/autoload_real.php

@@ -22,13 +22,15 @@ class ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b
             return self::$loader;
             return self::$loader;
         }
         }
 
 
+        require __DIR__ . '/platform_check.php';
+
         spl_autoload_register(array('ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b', 'loadClassLoader'), true, true);
         spl_autoload_register(array('ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
         spl_autoload_unregister(array('ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b', 'loadClassLoader'));
         spl_autoload_unregister(array('ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b', 'loadClassLoader'));
 
 
         $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
         $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
         if ($useStaticLoader) {
         if ($useStaticLoader) {
-            require_once __DIR__ . '/autoload_static.php';
+            require __DIR__ . '/autoload_static.php';
 
 
             call_user_func(\Composer\Autoload\ComposerStaticInit873464e4bd965a3168f133248b1b218b::getInitializer($loader));
             call_user_func(\Composer\Autoload\ComposerStaticInit873464e4bd965a3168f133248b1b218b::getInitializer($loader));
         } else {
         } else {

+ 1 - 0
data/web/inc/lib/vendor/composer/autoload_static.php

@@ -77,6 +77,7 @@ class ComposerStaticInit873464e4bd965a3168f133248b1b218b
     );
     );
 
 
     public static $classMap = array (
     public static $classMap = array (
+        'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
         'u2flib_server\\Error' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
         'u2flib_server\\Error' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
         'u2flib_server\\RegisterRequest' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
         'u2flib_server\\RegisterRequest' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
         'u2flib_server\\Registration' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
         'u2flib_server\\Registration' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',

+ 694 - 634
data/web/inc/lib/vendor/composer/installed.json

@@ -1,634 +1,694 @@
-[
-    {
-        "name": "bshaffer/oauth2-server-php",
-        "version": "v1.11.1",
-        "version_normalized": "1.11.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/bshaffer/oauth2-server-php.git",
-            "reference": "5a0c8000d4763b276919e2106f54eddda6bc50fa"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/5a0c8000d4763b276919e2106f54eddda6bc50fa",
-            "reference": "5a0c8000d4763b276919e2106f54eddda6bc50fa",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "aws/aws-sdk-php": "~2.8",
-            "firebase/php-jwt": "~2.2",
-            "mongodb/mongodb": "^1.1",
-            "phpunit/phpunit": "^4.0",
-            "predis/predis": "dev-master",
-            "thobbs/phpcassa": "dev-master"
-        },
-        "suggest": {
-            "aws/aws-sdk-php": "~2.8 is required to use DynamoDB storage",
-            "firebase/php-jwt": "~2.2 is required to use JWT features",
-            "mongodb/mongodb": "^1.1 is required to use MongoDB storage",
-            "predis/predis": "Required to use Redis storage",
-            "thobbs/phpcassa": "Required to use Cassandra storage"
-        },
-        "time": "2018-12-04T00:29:32+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "OAuth2": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Brent Shaffer",
-                "email": "bshafs@gmail.com",
-                "homepage": "http://brentertainment.com"
-            }
-        ],
-        "description": "OAuth2 Server for PHP",
-        "homepage": "http://github.com/bshaffer/oauth2-server-php",
-        "keywords": [
-            "auth",
-            "oauth",
-            "oauth2"
-        ]
-    },
-    {
-        "name": "ddeboer/imap",
-        "version": "1.10.0",
-        "version_normalized": "1.10.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/ddeboer/imap.git",
-            "reference": "fc09dbf6fb9ba7317a95c719e45893efc4fe6bde"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/ddeboer/imap/zipball/fc09dbf6fb9ba7317a95c719e45893efc4fe6bde",
-            "reference": "fc09dbf6fb9ba7317a95c719e45893efc4fe6bde",
-            "shasum": ""
-        },
-        "require": {
-            "ext-iconv": "*",
-            "ext-imap": "*",
-            "ext-mbstring": "*",
-            "php": "^7.2"
-        },
-        "require-dev": {
-            "friendsofphp/php-cs-fixer": "^2.16",
-            "phpstan/phpstan": "^0.12",
-            "phpstan/phpstan-phpunit": "^0.12",
-            "phpstan/phpstan-strict-rules": "^0.12",
-            "phpunit/phpunit": "^8.5",
-            "zendframework/zend-mail": "^2.10"
-        },
-        "time": "2020-01-24T08:15:24+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Ddeboer\\Imap\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "David de Boer",
-                "email": "david@ddeboer.nl"
-            },
-            {
-                "name": "Filippo Tessarotto",
-                "email": "zoeslam@gmail.com"
-            },
-            {
-                "name": "Community contributors",
-                "homepage": "https://github.com/ddeboer/imap/graphs/contributors"
-            }
-        ],
-        "description": "Object-oriented IMAP for PHP",
-        "keywords": [
-            "email",
-            "imap",
-            "mail"
-        ]
-    },
-    {
-        "name": "matthiasmullie/minify",
-        "version": "1.3.63",
-        "version_normalized": "1.3.63.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/matthiasmullie/minify.git",
-            "reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/9ba1b459828adc13430f4dd6c49dae4950dc4117",
-            "reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117",
-            "shasum": ""
-        },
-        "require": {
-            "ext-pcre": "*",
-            "matthiasmullie/path-converter": "~1.1",
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "friendsofphp/php-cs-fixer": "~2.0",
-            "matthiasmullie/scrapbook": "~1.0",
-            "phpunit/phpunit": "~4.8"
-        },
-        "suggest": {
-            "psr/cache-implementation": "Cache implementation to use with Minify::cache"
-        },
-        "time": "2020-01-21T20:21:08+00:00",
-        "bin": [
-            "bin/minifycss",
-            "bin/minifyjs"
-        ],
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "MatthiasMullie\\Minify\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Matthias Mullie",
-                "email": "minify@mullie.eu",
-                "homepage": "http://www.mullie.eu",
-                "role": "Developer"
-            }
-        ],
-        "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
-        "homepage": "http://www.minifier.org",
-        "keywords": [
-            "JS",
-            "css",
-            "javascript",
-            "minifier",
-            "minify"
-        ]
-    },
-    {
-        "name": "matthiasmullie/path-converter",
-        "version": "1.1.3",
-        "version_normalized": "1.1.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/matthiasmullie/path-converter.git",
-            "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9",
-            "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9",
-            "shasum": ""
-        },
-        "require": {
-            "ext-pcre": "*",
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.8"
-        },
-        "time": "2019-02-05T23:41:09+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "MatthiasMullie\\PathConverter\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Matthias Mullie",
-                "email": "pathconverter@mullie.eu",
-                "homepage": "http://www.mullie.eu",
-                "role": "Developer"
-            }
-        ],
-        "description": "Relative path converter",
-        "homepage": "http://github.com/matthiasmullie/path-converter",
-        "keywords": [
-            "converter",
-            "path",
-            "paths",
-            "relative"
-        ]
-    },
-    {
-        "name": "mustangostang/spyc",
-        "version": "0.6.3",
-        "version_normalized": "0.6.3.0",
-        "source": {
-            "type": "git",
-            "url": "git@github.com:mustangostang/spyc.git",
-            "reference": "4627c838b16550b666d15aeae1e5289dd5b77da0"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/mustangostang/spyc/zipball/4627c838b16550b666d15aeae1e5289dd5b77da0",
-            "reference": "4627c838b16550b666d15aeae1e5289dd5b77da0",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.1"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "4.3.*@dev"
-        },
-        "time": "2019-09-10T13:16:29+00:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "0.5.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "files": [
-                "Spyc.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "mustangostang",
-                "email": "vlad.andersen@gmail.com"
-            }
-        ],
-        "description": "A simple YAML loader/dumper class for PHP",
-        "homepage": "https://github.com/mustangostang/spyc/",
-        "keywords": [
-            "spyc",
-            "yaml",
-            "yml"
-        ]
-    },
-    {
-        "name": "paragonie/random_compat",
-        "version": "v9.99.99",
-        "version_normalized": "9.99.99.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/paragonie/random_compat.git",
-            "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
-            "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
-            "shasum": ""
-        },
-        "require": {
-            "php": "^7"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "4.*|5.*",
-            "vimeo/psalm": "^1"
-        },
-        "suggest": {
-            "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
-        },
-        "time": "2018-07-02T15:55:56+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Paragon Initiative Enterprises",
-                "email": "security@paragonie.com",
-                "homepage": "https://paragonie.com"
-            }
-        ],
-        "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
-        "keywords": [
-            "csprng",
-            "polyfill",
-            "pseudorandom",
-            "random"
-        ]
-    },
-    {
-        "name": "php-mime-mail-parser/php-mime-mail-parser",
-        "version": "5.0.5",
-        "version_normalized": "5.0.5.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/php-mime-mail-parser/php-mime-mail-parser.git",
-            "reference": "27983433aabeccee832573c3c56e6a4855e57745"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/php-mime-mail-parser/php-mime-mail-parser/zipball/27983433aabeccee832573c3c56e6a4855e57745",
-            "reference": "27983433aabeccee832573c3c56e6a4855e57745",
-            "shasum": ""
-        },
-        "require": {
-            "ext-mailparse": "*",
-            "php": "^7.1"
-        },
-        "replace": {
-            "exorus/php-mime-mail-parser": "*",
-            "messaged/php-mime-mail-parser": "*"
-        },
-        "require-dev": {
-            "php-coveralls/php-coveralls": "^2.1",
-            "phpunit/php-token-stream": "^3.0",
-            "phpunit/phpunit": "^7.0",
-            "squizlabs/php_codesniffer": "^3.4"
-        },
-        "time": "2019-09-23T11:57:58+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "PhpMimeMailParser\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "eXorus",
-                "email": "exorus.spam@gmail.com",
-                "homepage": "https://github.com/eXorus/",
-                "role": "Developer"
-            },
-            {
-                "name": "M.Valinskis",
-                "email": "M.Valins@gmail.com",
-                "homepage": "https://code.google.com/p/php-mime-mail-parser",
-                "role": "Developer"
-            },
-            {
-                "name": "eugene.emmett.wood",
-                "email": "gene_w@cementhorizon.com",
-                "homepage": "https://code.google.com/p/php-mime-mail-parser",
-                "role": "Developer"
-            },
-            {
-                "name": "alknetso",
-                "email": "alkne@gmail.com",
-                "homepage": "https://code.google.com/p/php-mime-mail-parser",
-                "role": "Developer"
-            },
-            {
-                "name": "bucabay",
-                "email": "gabe@fijiwebdesign.com",
-                "homepage": "http://www.fijiwebdesign.com",
-                "role": "Developer"
-            }
-        ],
-        "description": "A fully tested email parser for PHP 7.1+ (mailparse extension wrapper).",
-        "homepage": "https://github.com/php-mime-mail-parser/php-mime-mail-parser",
-        "keywords": [
-            "MimeMailParser",
-            "mail",
-            "mailparse",
-            "mime",
-            "parser",
-            "php"
-        ]
-    },
-    {
-        "name": "phpmailer/phpmailer",
-        "version": "v6.1.6",
-        "version_normalized": "6.1.6.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/PHPMailer/PHPMailer.git",
-            "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3",
-            "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3",
-            "shasum": ""
-        },
-        "require": {
-            "ext-ctype": "*",
-            "ext-filter": "*",
-            "php": ">=5.5.0"
-        },
-        "require-dev": {
-            "doctrine/annotations": "^1.2",
-            "friendsofphp/php-cs-fixer": "^2.2",
-            "phpunit/phpunit": "^4.8 || ^5.7"
-        },
-        "suggest": {
-            "ext-mbstring": "Needed to send email in multibyte encoding charset",
-            "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
-            "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
-            "psr/log": "For optional PSR-3 debug logging",
-            "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
-            "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
-        },
-        "time": "2020-05-27T12:24:03+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "PHPMailer\\PHPMailer\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "LGPL-2.1-only"
-        ],
-        "authors": [
-            {
-                "name": "Marcus Bointon",
-                "email": "phpmailer@synchromedia.co.uk"
-            },
-            {
-                "name": "Jim Jagielski",
-                "email": "jimjag@gmail.com"
-            },
-            {
-                "name": "Andy Prevost",
-                "email": "codeworxtech@users.sourceforge.net"
-            },
-            {
-                "name": "Brent R. Matzelle"
-            }
-        ],
-        "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
-        "funding": [
-            {
-                "url": "https://github.com/synchro",
-                "type": "github"
-            }
-        ]
-    },
-    {
-        "name": "robthree/twofactorauth",
-        "version": "1.7.0",
-        "version_normalized": "1.7.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/RobThree/TwoFactorAuth.git",
-            "reference": "37983bf675c5baca09d19d6705170489d0df0002"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/RobThree/TwoFactorAuth/zipball/37983bf675c5baca09d19d6705170489d0df0002",
-            "reference": "37983bf675c5baca09d19d6705170489d0df0002",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.6.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "@stable"
-        },
-        "time": "2020-01-02T19:56:46+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "RobThree\\Auth\\": "lib"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Rob Janssen",
-                "homepage": "http://robiii.me",
-                "role": "Developer"
-            }
-        ],
-        "description": "Two Factor Authentication",
-        "homepage": "https://github.com/RobThree/TwoFactorAuth",
-        "keywords": [
-            "Authentication",
-            "MFA",
-            "Multi Factor Authentication",
-            "Two Factor Authentication",
-            "authenticator",
-            "authy",
-            "php",
-            "tfa"
-        ]
-    },
-    {
-        "name": "soundasleep/html2text",
-        "version": "0.5.0",
-        "version_normalized": "0.5.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/soundasleep/html2text.git",
-            "reference": "cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/soundasleep/html2text/zipball/cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad",
-            "reference": "cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad",
-            "shasum": ""
-        },
-        "require": {
-            "ext-dom": "*",
-            "ext-libxml": "*",
-            "php": ">=5.3.2"
-        },
-        "require-dev": {
-            "phpunit/phpunit": ">=4.0",
-            "soundasleep/component-tests": "dev-master"
-        },
-        "time": "2017-04-19T22:01:50+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Html2Text\\": "src"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "EPL-1.0"
-        ],
-        "authors": [
-            {
-                "name": "Jevon Wright",
-                "homepage": "https://jevon.org",
-                "role": "Developer"
-            }
-        ],
-        "description": "A PHP script to convert HTML into a plain text format",
-        "homepage": "https://github.com/soundasleep/html2text",
-        "keywords": [
-            "email",
-            "html",
-            "php",
-            "text"
-        ]
-    },
-    {
-        "name": "yubico/u2flib-server",
-        "version": "1.0.2",
-        "version_normalized": "1.0.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/Yubico/php-u2flib-server.git",
-            "reference": "55d813acf68212ad2cadecde07551600d6971939"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/Yubico/php-u2flib-server/zipball/55d813acf68212ad2cadecde07551600d6971939",
-            "reference": "55d813acf68212ad2cadecde07551600d6971939",
-            "shasum": ""
-        },
-        "require": {
-            "ext-openssl": "*",
-            "paragonie/random_compat": ">= 1",
-            "php": ">=5.6"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~5.7",
-            "vimeo/psalm": "^0|^1|^2"
-        },
-        "time": "2018-09-07T08:16:44+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-2-Clause"
-        ],
-        "description": "Library for U2F implementation",
-        "homepage": "https://developers.yubico.com/php-u2flib-server"
-    }
-]
+{
+    "packages": [
+        {
+            "name": "bshaffer/oauth2-server-php",
+            "version": "v1.11.1",
+            "version_normalized": "1.11.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/bshaffer/oauth2-server-php.git",
+                "reference": "5a0c8000d4763b276919e2106f54eddda6bc50fa"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/5a0c8000d4763b276919e2106f54eddda6bc50fa",
+                "reference": "5a0c8000d4763b276919e2106f54eddda6bc50fa",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9"
+            },
+            "require-dev": {
+                "aws/aws-sdk-php": "~2.8",
+                "firebase/php-jwt": "~2.2",
+                "mongodb/mongodb": "^1.1",
+                "phpunit/phpunit": "^4.0",
+                "predis/predis": "dev-master",
+                "thobbs/phpcassa": "dev-master"
+            },
+            "suggest": {
+                "aws/aws-sdk-php": "~2.8 is required to use DynamoDB storage",
+                "firebase/php-jwt": "~2.2 is required to use JWT features",
+                "mongodb/mongodb": "^1.1 is required to use MongoDB storage",
+                "predis/predis": "Required to use Redis storage",
+                "thobbs/phpcassa": "Required to use Cassandra storage"
+            },
+            "time": "2018-12-04T00:29:32+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-0": {
+                    "OAuth2": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Brent Shaffer",
+                    "email": "bshafs@gmail.com",
+                    "homepage": "http://brentertainment.com"
+                }
+            ],
+            "description": "OAuth2 Server for PHP",
+            "homepage": "http://github.com/bshaffer/oauth2-server-php",
+            "keywords": [
+                "auth",
+                "oauth",
+                "oauth2"
+            ],
+            "install-path": "../bshaffer/oauth2-server-php"
+        },
+        {
+            "name": "ddeboer/imap",
+            "version": "1.11.0",
+            "version_normalized": "1.11.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/ddeboer/imap.git",
+                "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/ddeboer/imap/zipball/a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
+                "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
+                "shasum": ""
+            },
+            "require": {
+                "ext-iconv": "*",
+                "ext-imap": "*",
+                "ext-mbstring": "*",
+                "php": "^7.3 || ^8.0"
+            },
+            "require-dev": {
+                "friendsofphp/php-cs-fixer": "^2.16.7",
+                "laminas/laminas-mail": "^2.12.3",
+                "phpstan/phpstan": "^0.12.57",
+                "phpstan/phpstan-phpunit": "^0.12.16",
+                "phpstan/phpstan-strict-rules": "^0.12.5",
+                "phpunit/phpunit": "^9.4.3"
+            },
+            "time": "2020-11-30T14:52:49+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Ddeboer\\Imap\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "David de Boer",
+                    "email": "david@ddeboer.nl"
+                },
+                {
+                    "name": "Filippo Tessarotto",
+                    "email": "zoeslam@gmail.com"
+                },
+                {
+                    "name": "Community contributors",
+                    "homepage": "https://github.com/ddeboer/imap/graphs/contributors"
+                }
+            ],
+            "description": "Object-oriented IMAP for PHP",
+            "keywords": [
+                "email",
+                "imap",
+                "mail"
+            ],
+            "support": {
+                "issues": "https://github.com/ddeboer/imap/issues",
+                "source": "https://github.com/ddeboer/imap/tree/1.11.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/Slamdunk",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/ddeboer",
+                    "type": "github"
+                }
+            ],
+            "install-path": "../ddeboer/imap"
+        },
+        {
+            "name": "matthiasmullie/minify",
+            "version": "1.3.65",
+            "version_normalized": "1.3.65.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/matthiasmullie/minify.git",
+                "reference": "227f19062451c55a797e0cc667ef983834e6580c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/227f19062451c55a797e0cc667ef983834e6580c",
+                "reference": "227f19062451c55a797e0cc667ef983834e6580c",
+                "shasum": ""
+            },
+            "require": {
+                "ext-pcre": "*",
+                "matthiasmullie/path-converter": "~1.1",
+                "php": ">=5.3.0"
+            },
+            "require-dev": {
+                "friendsofphp/php-cs-fixer": "~2.0",
+                "matthiasmullie/scrapbook": "~1.0",
+                "phpunit/phpunit": "~4.8"
+            },
+            "suggest": {
+                "psr/cache-implementation": "Cache implementation to use with Minify::cache"
+            },
+            "time": "2020-12-27T21:43:29+00:00",
+            "bin": [
+                "bin/minifycss",
+                "bin/minifyjs"
+            ],
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "MatthiasMullie\\Minify\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Matthias Mullie",
+                    "email": "minify@mullie.eu",
+                    "homepage": "http://www.mullie.eu",
+                    "role": "Developer"
+                }
+            ],
+            "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
+            "homepage": "http://www.minifier.org",
+            "keywords": [
+                "JS",
+                "css",
+                "javascript",
+                "minifier",
+                "minify"
+            ],
+            "support": {
+                "issues": "https://github.com/matthiasmullie/minify/issues",
+                "source": "https://github.com/matthiasmullie/minify/tree/1.3.65"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/[user1",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/matthiasmullie] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g.",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/user2",
+                    "type": "github"
+                }
+            ],
+            "install-path": "../matthiasmullie/minify"
+        },
+        {
+            "name": "matthiasmullie/path-converter",
+            "version": "1.1.3",
+            "version_normalized": "1.1.3.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/matthiasmullie/path-converter.git",
+                "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9",
+                "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9",
+                "shasum": ""
+            },
+            "require": {
+                "ext-pcre": "*",
+                "php": ">=5.3.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.8"
+            },
+            "time": "2019-02-05T23:41:09+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "MatthiasMullie\\PathConverter\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Matthias Mullie",
+                    "email": "pathconverter@mullie.eu",
+                    "homepage": "http://www.mullie.eu",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Relative path converter",
+            "homepage": "http://github.com/matthiasmullie/path-converter",
+            "keywords": [
+                "converter",
+                "path",
+                "paths",
+                "relative"
+            ],
+            "install-path": "../matthiasmullie/path-converter"
+        },
+        {
+            "name": "mustangostang/spyc",
+            "version": "0.6.3",
+            "version_normalized": "0.6.3.0",
+            "source": {
+                "type": "git",
+                "url": "git@github.com:mustangostang/spyc.git",
+                "reference": "4627c838b16550b666d15aeae1e5289dd5b77da0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/mustangostang/spyc/zipball/4627c838b16550b666d15aeae1e5289dd5b77da0",
+                "reference": "4627c838b16550b666d15aeae1e5289dd5b77da0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "4.3.*@dev"
+            },
+            "time": "2019-09-10T13:16:29+00:00",
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "0.5.x-dev"
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "files": [
+                    "Spyc.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "mustangostang",
+                    "email": "vlad.andersen@gmail.com"
+                }
+            ],
+            "description": "A simple YAML loader/dumper class for PHP",
+            "homepage": "https://github.com/mustangostang/spyc/",
+            "keywords": [
+                "spyc",
+                "yaml",
+                "yml"
+            ],
+            "install-path": "../mustangostang/spyc"
+        },
+        {
+            "name": "paragonie/random_compat",
+            "version": "v9.99.100",
+            "version_normalized": "9.99.100.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/paragonie/random_compat.git",
+                "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
+                "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">= 7"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "4.*|5.*",
+                "vimeo/psalm": "^1"
+            },
+            "suggest": {
+                "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+            },
+            "time": "2020-10-15T08:29:30+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Paragon Initiative Enterprises",
+                    "email": "security@paragonie.com",
+                    "homepage": "https://paragonie.com"
+                }
+            ],
+            "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+            "keywords": [
+                "csprng",
+                "polyfill",
+                "pseudorandom",
+                "random"
+            ],
+            "support": {
+                "email": "info@paragonie.com",
+                "issues": "https://github.com/paragonie/random_compat/issues",
+                "source": "https://github.com/paragonie/random_compat"
+            },
+            "install-path": "../paragonie/random_compat"
+        },
+        {
+            "name": "php-mime-mail-parser/php-mime-mail-parser",
+            "version": "5.0.5",
+            "version_normalized": "5.0.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-mime-mail-parser/php-mime-mail-parser.git",
+                "reference": "27983433aabeccee832573c3c56e6a4855e57745"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-mime-mail-parser/php-mime-mail-parser/zipball/27983433aabeccee832573c3c56e6a4855e57745",
+                "reference": "27983433aabeccee832573c3c56e6a4855e57745",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mailparse": "*",
+                "php": "^7.1"
+            },
+            "replace": {
+                "exorus/php-mime-mail-parser": "*",
+                "messaged/php-mime-mail-parser": "*"
+            },
+            "require-dev": {
+                "php-coveralls/php-coveralls": "^2.1",
+                "phpunit/php-token-stream": "^3.0",
+                "phpunit/phpunit": "^7.0",
+                "squizlabs/php_codesniffer": "^3.4"
+            },
+            "time": "2019-09-23T11:57:58+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "PhpMimeMailParser\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "eXorus",
+                    "email": "exorus.spam@gmail.com",
+                    "homepage": "https://github.com/eXorus/",
+                    "role": "Developer"
+                },
+                {
+                    "name": "M.Valinskis",
+                    "email": "M.Valins@gmail.com",
+                    "homepage": "https://code.google.com/p/php-mime-mail-parser",
+                    "role": "Developer"
+                },
+                {
+                    "name": "eugene.emmett.wood",
+                    "email": "gene_w@cementhorizon.com",
+                    "homepage": "https://code.google.com/p/php-mime-mail-parser",
+                    "role": "Developer"
+                },
+                {
+                    "name": "alknetso",
+                    "email": "alkne@gmail.com",
+                    "homepage": "https://code.google.com/p/php-mime-mail-parser",
+                    "role": "Developer"
+                },
+                {
+                    "name": "bucabay",
+                    "email": "gabe@fijiwebdesign.com",
+                    "homepage": "http://www.fijiwebdesign.com",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A fully tested email parser for PHP 7.1+ (mailparse extension wrapper).",
+            "homepage": "https://github.com/php-mime-mail-parser/php-mime-mail-parser",
+            "keywords": [
+                "MimeMailParser",
+                "mail",
+                "mailparse",
+                "mime",
+                "parser",
+                "php"
+            ],
+            "install-path": "../php-mime-mail-parser/php-mime-mail-parser"
+        },
+        {
+            "name": "phpmailer/phpmailer",
+            "version": "v6.2.0",
+            "version_normalized": "6.2.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/PHPMailer/PHPMailer.git",
+                "reference": "e38888a75c070304ca5514197d4847a59a5c853f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f",
+                "reference": "e38888a75c070304ca5514197d4847a59a5c853f",
+                "shasum": ""
+            },
+            "require": {
+                "ext-ctype": "*",
+                "ext-filter": "*",
+                "ext-hash": "*",
+                "php": ">=5.5.0"
+            },
+            "require-dev": {
+                "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+                "doctrine/annotations": "^1.2",
+                "phpcompatibility/php-compatibility": "^9.3.5",
+                "roave/security-advisories": "dev-latest",
+                "squizlabs/php_codesniffer": "^3.5.6",
+                "yoast/phpunit-polyfills": "^0.2.0"
+            },
+            "suggest": {
+                "ext-mbstring": "Needed to send email in multibyte encoding charset",
+                "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
+                "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
+                "psr/log": "For optional PSR-3 debug logging",
+                "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
+                "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
+            },
+            "time": "2020-11-25T15:24:57+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "PHPMailer\\PHPMailer\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "LGPL-2.1-only"
+            ],
+            "authors": [
+                {
+                    "name": "Marcus Bointon",
+                    "email": "phpmailer@synchromedia.co.uk"
+                },
+                {
+                    "name": "Jim Jagielski",
+                    "email": "jimjag@gmail.com"
+                },
+                {
+                    "name": "Andy Prevost",
+                    "email": "codeworxtech@users.sourceforge.net"
+                },
+                {
+                    "name": "Brent R. Matzelle"
+                }
+            ],
+            "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
+            "support": {
+                "issues": "https://github.com/PHPMailer/PHPMailer/issues",
+                "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/Synchro",
+                    "type": "github"
+                }
+            ],
+            "install-path": "../phpmailer/phpmailer"
+        },
+        {
+            "name": "robthree/twofactorauth",
+            "version": "1.7.0",
+            "version_normalized": "1.7.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/RobThree/TwoFactorAuth.git",
+                "reference": "37983bf675c5baca09d19d6705170489d0df0002"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/RobThree/TwoFactorAuth/zipball/37983bf675c5baca09d19d6705170489d0df0002",
+                "reference": "37983bf675c5baca09d19d6705170489d0df0002",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.6.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "@stable"
+            },
+            "time": "2020-01-02T19:56:46+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "RobThree\\Auth\\": "lib"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Rob Janssen",
+                    "homepage": "http://robiii.me",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Two Factor Authentication",
+            "homepage": "https://github.com/RobThree/TwoFactorAuth",
+            "keywords": [
+                "Authentication",
+                "MFA",
+                "Multi Factor Authentication",
+                "Two Factor Authentication",
+                "authenticator",
+                "authy",
+                "php",
+                "tfa"
+            ],
+            "install-path": "../robthree/twofactorauth"
+        },
+        {
+            "name": "soundasleep/html2text",
+            "version": "0.5.0",
+            "version_normalized": "0.5.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/soundasleep/html2text.git",
+                "reference": "cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/soundasleep/html2text/zipball/cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad",
+                "reference": "cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-libxml": "*",
+                "php": ">=5.3.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": ">=4.0",
+                "soundasleep/component-tests": "dev-master"
+            },
+            "time": "2017-04-19T22:01:50+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Html2Text\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "EPL-1.0"
+            ],
+            "authors": [
+                {
+                    "name": "Jevon Wright",
+                    "homepage": "https://jevon.org",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A PHP script to convert HTML into a plain text format",
+            "homepage": "https://github.com/soundasleep/html2text",
+            "keywords": [
+                "email",
+                "html",
+                "php",
+                "text"
+            ],
+            "install-path": "../soundasleep/html2text"
+        },
+        {
+            "name": "yubico/u2flib-server",
+            "version": "1.0.2",
+            "version_normalized": "1.0.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Yubico/php-u2flib-server.git",
+                "reference": "55d813acf68212ad2cadecde07551600d6971939"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Yubico/php-u2flib-server/zipball/55d813acf68212ad2cadecde07551600d6971939",
+                "reference": "55d813acf68212ad2cadecde07551600d6971939",
+                "shasum": ""
+            },
+            "require": {
+                "ext-openssl": "*",
+                "paragonie/random_compat": ">= 1",
+                "php": ">=5.6"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~5.7",
+                "vimeo/psalm": "^0|^1|^2"
+            },
+            "time": "2018-09-07T08:16:44+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-2-Clause"
+            ],
+            "description": "Library for U2F implementation",
+            "homepage": "https://developers.yubico.com/php-u2flib-server",
+            "install-path": "../yubico/u2flib-server"
+        }
+    ],
+    "dev": true,
+    "dev-package-names": []
+}

+ 137 - 0
data/web/inc/lib/vendor/composer/installed.php

@@ -0,0 +1,137 @@
+<?php return array (
+  'root' => 
+  array (
+    'pretty_version' => '1.0.0+no-version-set',
+    'version' => '1.0.0.0',
+    'aliases' => 
+    array (
+    ),
+    'reference' => NULL,
+    'name' => '__root__',
+  ),
+  'versions' => 
+  array (
+    '__root__' => 
+    array (
+      'pretty_version' => '1.0.0+no-version-set',
+      'version' => '1.0.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => NULL,
+    ),
+    'bshaffer/oauth2-server-php' => 
+    array (
+      'pretty_version' => 'v1.11.1',
+      'version' => '1.11.1.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '5a0c8000d4763b276919e2106f54eddda6bc50fa',
+    ),
+    'ddeboer/imap' => 
+    array (
+      'pretty_version' => '1.11.0',
+      'version' => '1.11.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => 'a089dfcb9d177f921eb5dadc8d4144a44dff22ee',
+    ),
+    'exorus/php-mime-mail-parser' => 
+    array (
+      'replaced' => 
+      array (
+        0 => '*',
+      ),
+    ),
+    'matthiasmullie/minify' => 
+    array (
+      'pretty_version' => '1.3.65',
+      'version' => '1.3.65.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '227f19062451c55a797e0cc667ef983834e6580c',
+    ),
+    'matthiasmullie/path-converter' => 
+    array (
+      'pretty_version' => '1.1.3',
+      'version' => '1.1.3.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => 'e7d13b2c7e2f2268e1424aaed02085518afa02d9',
+    ),
+    'messaged/php-mime-mail-parser' => 
+    array (
+      'replaced' => 
+      array (
+        0 => '*',
+      ),
+    ),
+    'mustangostang/spyc' => 
+    array (
+      'pretty_version' => '0.6.3',
+      'version' => '0.6.3.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '4627c838b16550b666d15aeae1e5289dd5b77da0',
+    ),
+    'paragonie/random_compat' => 
+    array (
+      'pretty_version' => 'v9.99.100',
+      'version' => '9.99.100.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
+    ),
+    'php-mime-mail-parser/php-mime-mail-parser' => 
+    array (
+      'pretty_version' => '5.0.5',
+      'version' => '5.0.5.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '27983433aabeccee832573c3c56e6a4855e57745',
+    ),
+    'phpmailer/phpmailer' => 
+    array (
+      'pretty_version' => 'v6.2.0',
+      'version' => '6.2.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f',
+    ),
+    'robthree/twofactorauth' => 
+    array (
+      'pretty_version' => '1.7.0',
+      'version' => '1.7.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '37983bf675c5baca09d19d6705170489d0df0002',
+    ),
+    'soundasleep/html2text' => 
+    array (
+      'pretty_version' => '0.5.0',
+      'version' => '0.5.0.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad',
+    ),
+    'yubico/u2flib-server' => 
+    array (
+      'pretty_version' => '1.0.2',
+      'version' => '1.0.2.0',
+      'aliases' => 
+      array (
+      ),
+      'reference' => '55d813acf68212ad2cadecde07551600d6971939',
+    ),
+  ),
+);

+ 26 - 0
data/web/inc/lib/vendor/composer/platform_check.php

@@ -0,0 +1,26 @@
+<?php
+
+// platform_check.php @generated by Composer
+
+$issues = array();
+
+if (!(PHP_VERSION_ID >= 70300)) {
+    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.';
+}
+
+if ($issues) {
+    if (!headers_sent()) {
+        header('HTTP/1.1 500 Internal Server Error');
+    }
+    if (!ini_get('display_errors')) {
+        if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+            fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
+        } elseif (!headers_sent()) {
+            echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
+        }
+    }
+    trigger_error(
+        'Composer detected issues in your platform: ' . implode(' ', $issues),
+        E_USER_ERROR
+    );
+}

+ 41 - 0
data/web/inc/lib/vendor/ddeboer/imap/CHANGELOG.md

@@ -1,5 +1,46 @@
 # Changelog
 # Changelog
 
 
+## [1.11.0](https://github.com/ddeboer/imap/tree/1.11.0) (2020-11-30)
+
+[Full Changelog](https://github.com/ddeboer/imap/compare/1.10.1...1.11.0)
+
+**Implemented enhancements:**
+
+- PHP 8 Compatibility [\#481](https://github.com/ddeboer/imap/issues/481)
+- \[GA\] PHP 8 compatibility fix [\#483](https://github.com/ddeboer/imap/pull/483) ([Slamdunk](https://github.com/Slamdunk))
+- Support PHP 8.0, require PHP 7.3 [\#482](https://github.com/ddeboer/imap/pull/482) ([Slamdunk](https://github.com/Slamdunk))
+
+**Fixed bugs:**
+
+- Fix: Outlook date format [\#480](https://github.com/ddeboer/imap/pull/480) ([gajosadrian](https://github.com/gajosadrian))
+
+**Closed issues:**
+
+- Closing Connection [\#479](https://github.com/ddeboer/imap/issues/479)
+- Problem with charset of message part / DataPartInfo [\#475](https://github.com/ddeboer/imap/issues/475)
+- Unsupported charset "X-UNKNOWN" [\#425](https://github.com/ddeboer/imap/issues/425)
+
+## [1.10.1](https://github.com/ddeboer/imap/tree/1.10.1) (2020-08-26)
+
+[Full Changelog](https://github.com/ddeboer/imap/compare/1.10.0...1.10.1)
+
+**Fixed bugs:**
+
+- getThread and getMessageSequence not using with the same id [\#469](https://github.com/ddeboer/imap/issues/469)
+- imap\_thread: use absolude ids [\#474](https://github.com/ddeboer/imap/pull/474) ([Slamdunk](https://github.com/Slamdunk))
+
+**Closed issues:**
+
+- How to get a message by Message-ID [\#472](https://github.com/ddeboer/imap/issues/472)
+- Mail with e-sign [\#467](https://github.com/ddeboer/imap/issues/467)
+- Duplicate method definition in MessageInterface [\#455](https://github.com/ddeboer/imap/issues/455)
+- Missed errors in search method [\#444](https://github.com/ddeboer/imap/issues/444)
+
+**Merged pull requests:**
+
+- Subtype not always present [\#473](https://github.com/ddeboer/imap/pull/473) ([Piskvor](https://github.com/Piskvor))
+- Improved error handling for message search method [\#445](https://github.com/ddeboer/imap/pull/445) ([ikarol](https://github.com/ikarol))
+
 ## [1.10.0](https://github.com/ddeboer/imap/tree/1.10.0) (2020-01-24)
 ## [1.10.0](https://github.com/ddeboer/imap/tree/1.10.0) (2020-01-24)
 
 
 [Full Changelog](https://github.com/ddeboer/imap/compare/1.9.0...1.10.0)
 [Full Changelog](https://github.com/ddeboer/imap/compare/1.9.0...1.10.0)

+ 5 - 6
data/web/inc/lib/vendor/ddeboer/imap/README.md

@@ -1,12 +1,11 @@
 # IMAP library
 # IMAP library
 
 
-[![Build Status](https://travis-ci.org/ddeboer/imap.svg?branch=master)](https://travis-ci.org/ddeboer/imap)
-[![Code Coverage](https://scrutinizer-ci.com/g/ddeboer/imap/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/ddeboer/imap/?branch=master)
-[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/ddeboer/imap/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/ddeboer/imap/?branch=master)
-[![Latest Stable Version](https://poser.pugx.org/ddeboer/imap/v/stable.svg)](https://packagist.org/packages/ddeboer/imap)
-[![Total Downloads](https://poser.pugx.org/ddeboer/imap/downloads.png)](https://packagist.org/packages/ddeboer/imap)
+[![Latest Stable Version](https://img.shields.io/packagist/v/ddeboer/imap.svg)](https://packagist.org/packages/ddeboer/imap)
+[![Downloads](https://img.shields.io/packagist/dt/ddeboer/imap.svg)](https://packagist.org/packages/ddeboer/imap)
+[![Integrate](https://github.com/ddeboer/imap/workflows/Integrate/badge.svg?branch=master)](https://github.com/ddeboer/imap/actions)
+[![Code Coverage](https://codecov.io/gh/ddeboer/imap/coverage.svg?branch=master)](https://codecov.io/gh/ddeboer/imap?branch=master)
 
 
-A PHP 7.2+ library to read and process e-mails over IMAP.
+A PHP 7.3+ library to read and process e-mails over IMAP.
 
 
 This library requires [IMAP](https://secure.php.net/manual/en/book.imap.php),
 This library requires [IMAP](https://secure.php.net/manual/en/book.imap.php),
 [iconv](https://secure.php.net/manual/en/book.iconv.php) and
 [iconv](https://secure.php.net/manual/en/book.iconv.php) and

+ 12 - 7
data/web/inc/lib/vendor/ddeboer/imap/composer.json

@@ -22,18 +22,23 @@
         }
         }
     ],
     ],
     "require": {
     "require": {
-        "php": "^7.2",
+        "php": "^7.3 || ^8.0",
         "ext-iconv": "*",
         "ext-iconv": "*",
         "ext-imap": "*",
         "ext-imap": "*",
         "ext-mbstring": "*"
         "ext-mbstring": "*"
     },
     },
     "require-dev": {
     "require-dev": {
-        "friendsofphp/php-cs-fixer": "^2.16",
-        "phpstan/phpstan": "^0.12",
-        "phpstan/phpstan-phpunit": "^0.12",
-        "phpstan/phpstan-strict-rules": "^0.12",
-        "phpunit/phpunit": "^8.5",
-        "zendframework/zend-mail": "^2.10"
+        "friendsofphp/php-cs-fixer": "^2.16.7",
+        "laminas/laminas-mail": "^2.12.3",
+        "phpstan/phpstan": "^0.12.57",
+        "phpstan/phpstan-phpunit": "^0.12.16",
+        "phpstan/phpstan-strict-rules": "^0.12.5",
+        "phpunit/phpunit": "^9.4.3"
+    },
+    "config": {
+        "platform": {
+            "php": "7.3"
+        }
     },
     },
     "autoload": {
     "autoload": {
         "psr-4": {
         "psr-4": {

+ 1 - 0
data/web/inc/lib/vendor/ddeboer/imap/src/Connection.php

@@ -228,6 +228,7 @@ final class Connection implements ConnectionInterface
 
 
         foreach ($mailboxesInfo as $mailboxInfo) {
         foreach ($mailboxesInfo as $mailboxInfo) {
             $name                      = \mb_convert_encoding(\str_replace($this->server, '', $mailboxInfo->name), 'UTF-8', 'UTF7-IMAP');
             $name                      = \mb_convert_encoding(\str_replace($this->server, '', $mailboxInfo->name), 'UTF-8', 'UTF7-IMAP');
+            \assert(\is_string($name));
             $this->mailboxNames[$name] = $mailboxInfo;
             $this->mailboxNames[$name] = $mailboxInfo;
         }
         }
     }
     }

+ 17 - 10
data/web/inc/lib/vendor/ddeboer/imap/src/Mailbox.php

@@ -154,6 +154,10 @@ final class Mailbox implements MailboxInterface
         }
         }
         $query = $search->toString();
         $query = $search->toString();
 
 
+        if (\PHP_VERSION_ID < 80000) {
+            $descending = (int) $descending;
+        }
+
         // We need to clear the stack to know whether imap_last_error()
         // We need to clear the stack to know whether imap_last_error()
         // is related to this imap_search
         // is related to this imap_search
         \imap_errors();
         \imap_errors();
@@ -162,7 +166,7 @@ final class Mailbox implements MailboxInterface
             $params = [
             $params = [
                 $this->resource->getStream(),
                 $this->resource->getStream(),
                 $sortCriteria,
                 $sortCriteria,
-                $descending ? 1 : 0,
+                $descending,
                 \SE_UID,
                 \SE_UID,
                 $query,
                 $query,
             ];
             ];
@@ -181,11 +185,13 @@ final class Mailbox implements MailboxInterface
             }
             }
             $messageNumbers = \imap_search(...$params);
             $messageNumbers = \imap_search(...$params);
         }
         }
+        if (false !== \imap_last_error()) {
+            // this way all errors occurred during search will be reported
+            throw new InvalidSearchCriteriaException(
+                \sprintf('Invalid search criteria [%s]', $query)
+            );
+        }
         if (false === $messageNumbers) {
         if (false === $messageNumbers) {
-            if (false !== \imap_last_error()) {
-                throw new InvalidSearchCriteriaException(\sprintf('Invalid search criteria [%s]', $query));
-            }
-
             // imap_search can also return false
             // imap_search can also return false
             $messageNumbers = [];
             $messageNumbers = [];
         }
         }
@@ -203,13 +209,14 @@ final class Mailbox implements MailboxInterface
         \imap_errors();
         \imap_errors();
 
 
         $overview = \imap_fetch_overview($this->resource->getStream(), $sequence, \FT_UID);
         $overview = \imap_fetch_overview($this->resource->getStream(), $sequence, \FT_UID);
+        if (false !== \imap_last_error()) {
+            throw new InvalidSearchCriteriaException(
+                \sprintf('Invalid sequence [%s]', $sequence)
+            );
+        }
         if (\is_array($overview) && [] !== $overview) {
         if (\is_array($overview) && [] !== $overview) {
             $messageNumbers = \array_column($overview, 'uid');
             $messageNumbers = \array_column($overview, 'uid');
         } else {
         } else {
-            if (false !== \imap_last_error()) {
-                throw new InvalidSearchCriteriaException(\sprintf('Invalid sequence [%s]', $sequence));
-            }
-
             $messageNumbers = [];
             $messageNumbers = [];
         }
         }
 
 
@@ -264,7 +271,7 @@ final class Mailbox implements MailboxInterface
         });
         });
 
 
         /** @var array|false $tree */
         /** @var array|false $tree */
-        $tree = \imap_thread($this->resource->getStream());
+        $tree = \imap_thread($this->resource->getStream(), \SE_UID);
 
 
         \restore_error_handler();
         \restore_error_handler();
 
 

+ 10 - 2
data/web/inc/lib/vendor/ddeboer/imap/src/Message.php

@@ -109,7 +109,15 @@ final class Message extends Message\AbstractMessage implements MessageInterface
         }
         }
         $this->messageNumberVerified = true;
         $this->messageNumberVerified = true;
 
 
+        $msgno = null;
+        \set_error_handler(static function (): bool {
+            return true;
+        });
+
         $msgno = \imap_msgno($this->resource->getStream(), $messageNumber);
         $msgno = \imap_msgno($this->resource->getStream(), $messageNumber);
+
+        \restore_error_handler();
+
         if (\is_numeric($msgno) && $msgno > 0) {
         if (\is_numeric($msgno) && $msgno > 0) {
             $this->imapMsgNo = $msgno;
             $this->imapMsgNo = $msgno;
 
 
@@ -306,7 +314,7 @@ final class Message extends Message\AbstractMessage implements MessageInterface
         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to true on header
         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to true on header
         $this->clearHeaders();
         $this->clearHeaders();
 
 
-        if (!\imap_delete($this->resource->getStream(), $this->getNumber(), \FT_UID)) {
+        if (!\imap_delete($this->resource->getStream(), (string) $this->getNumber(), \FT_UID)) {
             throw new MessageDeleteException(\sprintf('Message "%s" cannot be deleted', $this->getNumber()));
             throw new MessageDeleteException(\sprintf('Message "%s" cannot be deleted', $this->getNumber()));
         }
         }
     }
     }
@@ -320,7 +328,7 @@ final class Message extends Message\AbstractMessage implements MessageInterface
     {
     {
         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to false on header
         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to false on header
         $this->clearHeaders();
         $this->clearHeaders();
-        if (!\imap_undelete($this->resource->getStream(), $this->getNumber(), \FT_UID)) {
+        if (!\imap_undelete($this->resource->getStream(), (string) $this->getNumber(), \FT_UID)) {
             throw new MessageUndeleteException(\sprintf('Message "%s" cannot be undeleted', $this->getNumber()));
             throw new MessageUndeleteException(\sprintf('Message "%s" cannot be undeleted', $this->getNumber()));
         }
         }
     }
     }

+ 1 - 0
data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractMessage.php

@@ -113,6 +113,7 @@ abstract class AbstractMessage extends AbstractPart
         $alteredValue = \str_replace(',', '', $alteredValue);
         $alteredValue = \str_replace(',', '', $alteredValue);
         $alteredValue = (string) \preg_replace('/^[a-zA-Z]+ ?/', '', $alteredValue);
         $alteredValue = (string) \preg_replace('/^[a-zA-Z]+ ?/', '', $alteredValue);
         $alteredValue = (string) \preg_replace('/\(.*\)/', '', $alteredValue);
         $alteredValue = (string) \preg_replace('/\(.*\)/', '', $alteredValue);
+        $alteredValue = (string) \preg_replace('/\<.*\>/', '', $alteredValue);
         $alteredValue = (string) \preg_replace('/\bUT\b/', 'UTC', $alteredValue);
         $alteredValue = (string) \preg_replace('/\bUT\b/', 'UTC', $alteredValue);
         if (0 === \preg_match('/\d\d:\d\d:\d\d.* [\+\-]\d\d:?\d\d/', $alteredValue)) {
         if (0 === \preg_match('/\d\d:\d\d:\d\d.* [\+\-]\d\d:?\d\d/', $alteredValue)) {
             $alteredValue .= ' +0000';
             $alteredValue .= ' +0000';

+ 4 - 2
data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractPart.php

@@ -471,9 +471,11 @@ abstract class AbstractPart implements PartInterface
 
 
         $this->type = self::$typesMap[$this->structure->type] ?? self::TYPE_UNKNOWN;
         $this->type = self::$typesMap[$this->structure->type] ?? self::TYPE_UNKNOWN;
 
 
-        // In our context, \ENCOTHER is as useful as an uknown encoding
+        // In our context, \ENCOTHER is as useful as an unknown encoding
         $this->encoding = self::$encodingsMap[$this->structure->encoding] ?? self::ENCODING_UNKNOWN;
         $this->encoding = self::$encodingsMap[$this->structure->encoding] ?? self::ENCODING_UNKNOWN;
-        $this->subtype  = $this->structure->subtype;
+        if (isset($this->structure->subtype)) {
+            $this->subtype = $this->structure->subtype;
+        }
 
 
         if (isset($this->structure->bytes)) {
         if (isset($this->structure->bytes)) {
             $this->bytes = $this->structure->bytes;
             $this->bytes = $this->structure->bytes;

+ 7 - 1
data/web/inc/lib/vendor/ddeboer/imap/src/Message/Transcoder.php

@@ -310,7 +310,13 @@ final class Transcoder
             return true;
             return true;
         });
         });
 
 
-        $decodedText = \mb_convert_encoding($text, 'UTF-8', $fromCharset);
+        $decodedText = '';
+
+        try {
+            $decodedText = \mb_convert_encoding($text, 'UTF-8', $fromCharset);
+        } catch (\Error $error) {
+            $errorMessage = $error->getMessage();
+        }
 
 
         \restore_error_handler();
         \restore_error_handler();
 
 

+ 12 - 0
data/web/inc/lib/vendor/matthiasmullie/minify/.github/FUNDING.yml

@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [matthiasmullie] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

+ 1 - 1
data/web/inc/lib/vendor/matthiasmullie/minify/Dockerfile

@@ -6,7 +6,7 @@ WORKDIR /var/www
 
 
 RUN apt-get update
 RUN apt-get update
 RUN apt-get install -y zip unzip zlib1g-dev
 RUN apt-get install -y zip unzip zlib1g-dev
-RUN docker-php-ext-install zip
+RUN if [[ `php-config --vernum` -ge 73000 ]]; then docker-php-ext-install zip; fi
 RUN docker-php-ext-install pcntl
 RUN docker-php-ext-install pcntl
 RUN curl -sS https://getcomposer.org/installer | php
 RUN curl -sS https://getcomposer.org/installer | php
 RUN mv composer.phar /usr/local/bin/composer
 RUN mv composer.phar /usr/local/bin/composer

+ 15 - 0
data/web/inc/lib/vendor/matthiasmullie/minify/docker-compose.yml

@@ -9,6 +9,21 @@ services:
       - ./data:/var/www/data
       - ./data:/var/www/data
       - ./tests:/var/www/tests
       - ./tests:/var/www/tests
       - ./phpunit.xml.dist:/var/www/phpunit.xml.dist
       - ./phpunit.xml.dist:/var/www/phpunit.xml.dist
+  '8.0':
+    extends: php
+    build:
+      args:
+        version: 8.0-cli
+  '7.4':
+    extends: php
+    build:
+      args:
+        version: 7.4-cli
+  '7.3':
+    extends: php
+    build:
+      args:
+        version: 7.3-cli
   '7.2':
   '7.2':
     extends: php
     extends: php
     build:
     build:

+ 47 - 13
data/web/inc/lib/vendor/matthiasmullie/minify/src/CSS.php

@@ -216,7 +216,7 @@ class CSS extends Minify
 
 
             // grab referenced file & minify it (which may include importing
             // grab referenced file & minify it (which may include importing
             // yet other @import statements recursively)
             // yet other @import statements recursively)
-            $minifier = new static($importPath);
+            $minifier = new self($importPath);
             $minifier->setMaxImportSize($this->maxImportSize);
             $minifier->setMaxImportSize($this->maxImportSize);
             $minifier->setImportExtensions($this->importExtensions);
             $minifier->setImportExtensions($this->importExtensions);
             $importContent = $minifier->execute($source, $parents);
             $importContent = $minifier->execute($source, $parents);
@@ -307,7 +307,8 @@ class CSS extends Minify
              */
              */
             $this->extractStrings();
             $this->extractStrings();
             $this->stripComments();
             $this->stripComments();
-            $this->extractCalcs();
+            $this->extractMath();
+            $this->extractCustomProperties();
             $css = $this->replace($css);
             $css = $this->replace($css);
 
 
             $css = $this->stripWhitespace($css);
             $css = $this->stripWhitespace($css);
@@ -678,19 +679,29 @@ class CSS extends Minify
     }
     }
 
 
     /**
     /**
-     * Replace all `calc()` occurrences.
+     * Replace all occurrences of functions that may contain math, where
+     * whitespace around operators needs to be preserved (e.g. calc, clamp)
      */
      */
-    protected function extractCalcs()
+    protected function extractMath()
     {
     {
+        $functions = array('calc', 'clamp', 'min', 'max');
+        $pattern = '/('. implode('|', $functions) .')(\(.+?)(?=$|;|})/m';
+
         // PHP only supports $this inside anonymous functions since 5.4
         // PHP only supports $this inside anonymous functions since 5.4
         $minifier = $this;
         $minifier = $this;
-        $callback = function ($match) use ($minifier) {
-            $length = strlen($match[1]);
+        $callback = function ($match) use ($minifier, $pattern, &$callback) {
+            $function = $match[1];
+            $length = strlen($match[2]);
             $expr = '';
             $expr = '';
             $opened = 0;
             $opened = 0;
 
 
+            // the regular expression for extracting math has 1 significant problem:
+            // it can't determine the correct closing parenthesis...
+            // instead, it'll match a larger portion of code to where it's certain that
+            // the calc() musts have ended, and we'll figure out which is the correct
+            // closing parenthesis here, by counting how many have opened
             for ($i = 0; $i < $length; $i++) {
             for ($i = 0; $i < $length; $i++) {
-                $char = $match[1][$i];
+                $char = $match[2][$i];
                 $expr .= $char;
                 $expr .= $char;
                 if ($char === '(') {
                 if ($char === '(') {
                     $opened++;
                     $opened++;
@@ -698,18 +709,41 @@ class CSS extends Minify
                     break;
                     break;
                 }
                 }
             }
             }
-            $rest = str_replace($expr, '', $match[1]);
-            $expr = trim(substr($expr, 1, -1));
 
 
+            // now that we've figured out where the calc() starts and ends, extract it
             $count = count($minifier->extracted);
             $count = count($minifier->extracted);
-            $placeholder = 'calc('.$count.')';
-            $minifier->extracted[$placeholder] = 'calc('.$expr.')';
+            $placeholder = 'math('.$count.')';
+            $minifier->extracted[$placeholder] = $function.'('.trim(substr($expr, 1, -1)).')';
+
+            // and since we've captured more code than required, we may have some leftover
+            // calc() in here too - go recursive on the remaining but of code to go figure
+            // that out and extract what is needed
+            $rest = str_replace($function.$expr, '', $match[0]);
+            $rest = preg_replace_callback($pattern, $callback, $rest);
 
 
             return $placeholder.$rest;
             return $placeholder.$rest;
         };
         };
 
 
-        $this->registerPattern('/calc(\(.+?)(?=$|;|}|calc\()/', $callback);
-        $this->registerPattern('/calc(\(.+?)(?=$|;|}|calc\()/m', $callback);
+        $this->registerPattern($pattern, $callback);
+    }
+
+    /**
+     * Replace custom properties, whose values may be used in scenarios where
+     * we wouldn't want them to be minified (e.g. inside calc)
+     */
+    protected function extractCustomProperties()
+    {
+        // PHP only supports $this inside anonymous functions since 5.4
+        $minifier = $this;
+        $this->registerPattern(
+            '/(?<=^|[;}])(--[^:;{}"\'\s]+)\s*:([^;{}]+)/m',
+            function ($match) use ($minifier) {
+                $placeholder = '--custom-'. count($minifier->extracted) . ':0';
+                $minifier->extracted[$placeholder] = $match[1] .':'. trim($match[2]);
+                return $placeholder;
+
+            }
+        );
     }
     }
 
 
     /**
     /**

+ 1 - 1
data/web/inc/lib/vendor/paragonie/random_compat/composer.json

@@ -22,7 +22,7 @@
     "source":     "https://github.com/paragonie/random_compat"
     "source":     "https://github.com/paragonie/random_compat"
   },
   },
   "require": {
   "require": {
-    "php": "^7"
+    "php": ">= 7"
   },
   },
   "require-dev": {
   "require-dev": {
     "vimeo/psalm": "^1",
     "vimeo/psalm": "^1",

+ 2 - 8
data/web/inc/lib/vendor/phpmailer/phpmailer/README.md

@@ -167,15 +167,9 @@ Build status: [![Build Status](https://travis-ci.org/PHPMailer/PHPMailer.svg)](h
 If this isn't passing, is there something you can do to help?
 If this isn't passing, is there something you can do to help?
 
 
 ## Security
 ## Security
-Please disclose any vulnerabilities found responsibly - report any security problems found to the maintainers privately.
+Please disclose any vulnerabilities found responsibly – report security issues to the maintainers privately.
 
 
-PHPMailer versions prior to 5.2.22 (released January 9th 2017) have a local file disclosure vulnerability, [CVE-2017-5223](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5223). If content passed into `msgHTML()` is sourced from unfiltered user input, relative paths can map to absolute local file paths and added as attachments. Also note that `addAttachment` (just like `file_get_contents`, `passthru`, `unlink`, etc) should not be passed user-sourced params either! Reported by Yongxiang Li of Asiasecurity.
-
-PHPMailer versions prior to 5.2.20 (released December 28th 2016) are vulnerable to [CVE-2016-10045](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10045) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html), and patched by Paul Buonopane (@Zenexer).
-
-PHPMailer versions prior to 5.2.18 (released December 2016) are vulnerable to [CVE-2016-10033](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10033) a critical remote code execution vulnerability, responsibly reported by [Dawid Golunski](http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html).
-
-See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) for more detail on security issues.
+See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) for details on security issues.
 
 
 ## Contributing
 ## Contributing
 Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).
 Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).

+ 1 - 1
data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION

@@ -1 +1 @@
-6.1.6
+6.2.0

+ 12 - 8
data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json

@@ -21,26 +21,30 @@
     ],
     ],
     "funding": [
     "funding": [
         {
         {
-            "url": "https://github.com/synchro",
+            "url": "https://github.com/Synchro",
             "type": "github"
             "type": "github"
         }
         }
     ],
     ],
     "require": {
     "require": {
         "php": ">=5.5.0",
         "php": ">=5.5.0",
         "ext-ctype": "*",
         "ext-ctype": "*",
-        "ext-filter": "*"
+        "ext-filter": "*",
+        "ext-hash": "*"
     },
     },
     "require-dev": {
     "require-dev": {
-        "friendsofphp/php-cs-fixer": "^2.2",
-        "phpunit/phpunit": "^4.8 || ^5.7",
-        "doctrine/annotations": "^1.2"
+        "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+        "doctrine/annotations": "^1.2",
+        "phpcompatibility/php-compatibility": "^9.3.5",
+        "roave/security-advisories": "dev-latest",
+        "squizlabs/php_codesniffer": "^3.5.6",
+        "yoast/phpunit-polyfills": "^0.2.0"
     },
     },
     "suggest": {
     "suggest": {
-        "psr/log": "For optional PSR-3 debug logging",
-        "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
+        "ext-mbstring": "Needed to send email in multibyte encoding charset",
         "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
         "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
+        "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
+        "psr/log": "For optional PSR-3 debug logging",
         "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
         "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
-        "ext-mbstring": "Needed to send email in multibyte encoding charset",
         "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
         "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
     },
     },
     "autoload": {
     "autoload": {

+ 6 - 4
data/web/inc/lib/vendor/phpmailer/phpmailer/get_oauth_token.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * PHPMailer - PHP email creation and transport class.
  * PHPMailer - PHP email creation and transport class.
  * PHP Version 5.5
  * PHP Version 5.5
@@ -8,7 +9,7 @@
  * @author Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author Brent R. Matzelle (original founder)
  * @author Brent R. Matzelle (original founder)
- * @copyright 2012 - 2017 Marcus Bointon
+ * @copyright 2012 - 2020 Marcus Bointon
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2004 - 2009 Andy Prevost
  * @copyright 2004 - 2009 Andy Prevost
  * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
  * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
@@ -16,6 +17,7 @@
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  * FITNESS FOR A PARTICULAR PURPOSE.
  * FITNESS FOR A PARTICULAR PURPOSE.
  */
  */
+
 /**
 /**
  * Get an OAuth2 token from an OAuth2 provider.
  * Get an OAuth2 token from an OAuth2 provider.
  * * Install this script on your server so that it's accessible
  * * Install this script on your server so that it's accessible
@@ -44,7 +46,7 @@ use Hayageek\OAuth2\Client\Provider\Yahoo;
 use Stevenmaguire\OAuth2\Client\Provider\Microsoft;
 use Stevenmaguire\OAuth2\Client\Provider\Microsoft;
 
 
 if (!isset($_GET['code']) && !isset($_GET['provider'])) {
 if (!isset($_GET['code']) && !isset($_GET['provider'])) {
-?>
+    ?>
 <html>
 <html>
 <body>Select Provider:<br/>
 <body>Select Provider:<br/>
 <a href='?provider=Google'>Google</a><br/>
 <a href='?provider=Google'>Google</a><br/>
@@ -52,8 +54,8 @@ if (!isset($_GET['code']) && !isset($_GET['provider'])) {
 <a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br/>
 <a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br/>
 </body>
 </body>
 </html>
 </html>
-<?php
-exit;
+    <?php
+    exit;
 }
 }
 
 
 require 'vendor/autoload.php';
 require 'vendor/autoload.php';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Afrikaans PHPMailer language file: refer to English translation for definitive list
  * Afrikaans PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Arabic PHPMailer language file: refer to English translation for definitive list
  * Arabic PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Azerbaijani PHPMailer language file: refer to English translation for definitive list
  * Azerbaijani PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 2 - 1
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Bosnian PHPMailer language file: refer to English translation for definitive list
  * Bosnian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
@@ -23,4 +24,4 @@ $PHPMAILER_LANG['signing']              = 'Greška prilikom prijave: ';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'Spajanje na SMTP server nije uspjelo.';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'Spajanje na SMTP server nije uspjelo.';
 $PHPMAILER_LANG['smtp_error']           = 'SMTP greška: ';
 $PHPMAILER_LANG['smtp_error']           = 'SMTP greška: ';
 $PHPMAILER_LANG['variable_set']         = 'Nije moguće postaviti varijablu ili je vratiti nazad: ';
 $PHPMAILER_LANG['variable_set']         = 'Nije moguće postaviti varijablu ili je vratiti nazad: ';
-$PHPMAILER_LANG['extension_missing']    = 'Nedostaje ekstenzija: ';
+$PHPMAILER_LANG['extension_missing']    = 'Nedostaje ekstenzija: ';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Belarusian PHPMailer language file: refer to English translation for definitive list
  * Belarusian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Bulgarian PHPMailer language file: refer to English translation for definitive list
  * Bulgarian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Catalan PHPMailer language file: refer to English translation for definitive list
  * Catalan PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ch.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Chinese PHPMailer language file: refer to English translation for definitive list
  * Chinese PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Czech PHPMailer language file: refer to English translation for definitive list
  * Czech PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 3 - 2
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php

@@ -1,10 +1,11 @@
 <?php
 <?php
+
 /**
 /**
  * Danish PHPMailer language file: refer to English translation for definitive list
  * Danish PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
  * @author John Sebastian <jms@iwb.dk>
  * @author John Sebastian <jms@iwb.dk>
- * Rewrite and extension of the work by Mikael Stokkebro <info@stokkebro.dk> 
- *  
+ * Rewrite and extension of the work by Mikael Stokkebro <info@stokkebro.dk>
+ *
  */
  */
 
 
 $PHPMAILER_LANG['authenticate']         = 'SMTP fejl: Login mislykkedes.';
 $PHPMAILER_LANG['authenticate']         = 'SMTP fejl: Login mislykkedes.';

+ 3 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * German PHPMailer language file: refer to English translation for definitive list
  * German PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
@@ -15,6 +16,8 @@ $PHPMAILER_LANG['file_open']            = 'Dateifehler: Konnte folgende Datei ni
 $PHPMAILER_LANG['from_failed']          = 'Die folgende Absenderadresse ist nicht korrekt: ';
 $PHPMAILER_LANG['from_failed']          = 'Die folgende Absenderadresse ist nicht korrekt: ';
 $PHPMAILER_LANG['instantiate']          = 'Mail-Funktion konnte nicht initialisiert werden.';
 $PHPMAILER_LANG['instantiate']          = 'Mail-Funktion konnte nicht initialisiert werden.';
 $PHPMAILER_LANG['invalid_address']      = 'Die Adresse ist ungültig: ';
 $PHPMAILER_LANG['invalid_address']      = 'Die Adresse ist ungültig: ';
+$PHPMAILER_LANG['invalid_hostentry']    = 'Ungültiger Hosteintrag: ';
+$PHPMAILER_LANG['invalid_host']         = 'Ungültiger Host: ';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.';
 $PHPMAILER_LANG['provide_address']      = 'Bitte geben Sie mindestens eine Empfängeradresse an.';
 $PHPMAILER_LANG['provide_address']      = 'Bitte geben Sie mindestens eine Empfängeradresse an.';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: ';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: ';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Greek PHPMailer language file: refer to English translation for definitive list
  * Greek PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Esperanto PHPMailer language file: refer to English translation for definitive list
  * Esperanto PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Spanish PHPMailer language file: refer to English translation for definitive list
  * Spanish PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Estonian PHPMailer language file: refer to English translation for definitive list
  * Estonian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Persian/Farsi PHPMailer language file: refer to English translation for definitive list
  * Persian/Farsi PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Finnish PHPMailer language file: refer to English translation for definitive list
  * Finnish PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Faroese PHPMailer language file: refer to English translation for definitive list
  * Faroese PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 3 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * French PHPMailer language file: refer to English translation for definitive list
  * French PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
@@ -19,6 +20,8 @@ $PHPMAILER_LANG['file_open']            = 'Ouverture du fichier impossible : '
 $PHPMAILER_LANG['from_failed']          = 'L\'adresse d\'expéditeur suivante a échoué : ';
 $PHPMAILER_LANG['from_failed']          = 'L\'adresse d\'expéditeur suivante a échoué : ';
 $PHPMAILER_LANG['instantiate']          = 'Impossible d\'instancier la fonction mail.';
 $PHPMAILER_LANG['instantiate']          = 'Impossible d\'instancier la fonction mail.';
 $PHPMAILER_LANG['invalid_address']      = 'L\'adresse courriel n\'est pas valide : ';
 $PHPMAILER_LANG['invalid_address']      = 'L\'adresse courriel n\'est pas valide : ';
+$PHPMAILER_LANG['invalid_hostentry']    = 'L\'entrée hôte n\'est pas valide : ';
+$PHPMAILER_LANG['invalid_host']         = 'L\'hôte n\'est pas valide : ';
 $PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.';
 $PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.';
 $PHPMAILER_LANG['provide_address']      = 'Vous devez fournir au moins une adresse de destinataire.';
 $PHPMAILER_LANG['provide_address']      = 'Vous devez fournir au moins une adresse de destinataire.';
 $PHPMAILER_LANG['recipients_failed']    = 'Erreur SMTP : les destinataires suivants sont en erreur : ';
 $PHPMAILER_LANG['recipients_failed']    = 'Erreur SMTP : les destinataires suivants sont en erreur : ';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Galician PHPMailer language file: refer to English translation for definitive list
  * Galician PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Hebrew PHPMailer language file: refer to English translation for definitive list
  * Hebrew PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 2 - 1
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php

@@ -1,10 +1,11 @@
 <?php
 <?php
+
 /**
 /**
  * Hindi PHPMailer language file: refer to English translation for definitive list
  * Hindi PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
  * @author Yash Karanke <mr.karanke@gmail.com>
  * @author Yash Karanke <mr.karanke@gmail.com>
  */
  */
- 
+
 $PHPMAILER_LANG['authenticate']         = 'SMTP त्रुटि: प्रामाणिकता की जांच नहीं हो सका। ';
 $PHPMAILER_LANG['authenticate']         = 'SMTP त्रुटि: प्रामाणिकता की जांच नहीं हो सका। ';
 $PHPMAILER_LANG['connect_host']         = 'SMTP त्रुटि: SMTP सर्वर से कनेक्ट नहीं हो सका। ';
 $PHPMAILER_LANG['connect_host']         = 'SMTP त्रुटि: SMTP सर्वर से कनेक्ट नहीं हो सका। ';
 $PHPMAILER_LANG['data_not_accepted']    = 'SMTP त्रुटि: डेटा स्वीकार नहीं किया जाता है। ';
 $PHPMAILER_LANG['data_not_accepted']    = 'SMTP त्रुटि: डेटा स्वीकार नहीं किया जाता है। ';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Croatian PHPMailer language file: refer to English translation for definitive list
  * Croatian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Hungarian PHPMailer language file: refer to English translation for definitive list
  * Hungarian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 2 - 1
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php

@@ -1,10 +1,11 @@
 <?php
 <?php
+
 /**
 /**
  * Armenian PHPMailer language file: refer to English translation for definitive list
  * Armenian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
  * @author Hrayr Grigoryan <hrayr@bits.am>
  * @author Hrayr Grigoryan <hrayr@bits.am>
  */
  */
- 
+
 $PHPMAILER_LANG['authenticate']         = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.';
 $PHPMAILER_LANG['authenticate']         = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.';
 $PHPMAILER_LANG['connect_host']         = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.';
 $PHPMAILER_LANG['connect_host']         = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.';
 $PHPMAILER_LANG['data_not_accepted']    = 'SMTP -ի սխալ: տվյալները ընդունված չեն.';
 $PHPMAILER_LANG['data_not_accepted']    = 'SMTP -ի սխալ: տվյալները ընդունված չեն.';

+ 16 - 12
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php

@@ -1,9 +1,11 @@
 <?php
 <?php
+
 /**
 /**
  * Indonesian PHPMailer language file: refer to English translation for definitive list
  * Indonesian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
  * @author Cecep Prawiro <cecep.prawiro@gmail.com>
  * @author Cecep Prawiro <cecep.prawiro@gmail.com>
  * @author @januridp
  * @author @januridp
+ * @author Ian Mustafa <mail@ianmustafa.com>
  */
  */
 
 
 $PHPMAILER_LANG['authenticate']         = 'Kesalahan SMTP: Tidak dapat mengotentikasi.';
 $PHPMAILER_LANG['authenticate']         = 'Kesalahan SMTP: Tidak dapat mengotentikasi.';
@@ -11,17 +13,19 @@ $PHPMAILER_LANG['connect_host']         = 'Kesalahan SMTP: Tidak dapat terhubung
 $PHPMAILER_LANG['data_not_accepted']    = 'Kesalahan SMTP: Data tidak diterima.';
 $PHPMAILER_LANG['data_not_accepted']    = 'Kesalahan SMTP: Data tidak diterima.';
 $PHPMAILER_LANG['empty_message']        = 'Isi pesan kosong';
 $PHPMAILER_LANG['empty_message']        = 'Isi pesan kosong';
 $PHPMAILER_LANG['encoding']             = 'Pengkodean karakter tidak dikenali: ';
 $PHPMAILER_LANG['encoding']             = 'Pengkodean karakter tidak dikenali: ';
-$PHPMAILER_LANG['execute']              = 'Tidak dapat menjalankan proses : ';
-$PHPMAILER_LANG['file_access']          = 'Tidak dapat mengakses berkas : ';
-$PHPMAILER_LANG['file_open']            = 'Kesalahan File: Berkas tidak dapat dibuka : ';
-$PHPMAILER_LANG['from_failed']          = 'Alamat pengirim berikut mengakibatkan kesalahan : ';
-$PHPMAILER_LANG['instantiate']          = 'Tidak dapat menginisialisasi fungsi surel';
-$PHPMAILER_LANG['invalid_address']      = 'Gagal terkirim, alamat surel tidak benar : ';
-$PHPMAILER_LANG['provide_address']      = 'Harus disediakan minimal satu alamat tujuan';
+$PHPMAILER_LANG['execute']              = 'Tidak dapat menjalankan proses: ';
+$PHPMAILER_LANG['file_access']          = 'Tidak dapat mengakses berkas: ';
+$PHPMAILER_LANG['file_open']            = 'Kesalahan Berkas: Berkas tidak dapat dibuka: ';
+$PHPMAILER_LANG['from_failed']          = 'Alamat pengirim berikut mengakibatkan kesalahan: ';
+$PHPMAILER_LANG['instantiate']          = 'Tidak dapat menginisialisasi fungsi surel.';
+$PHPMAILER_LANG['invalid_address']      = 'Gagal terkirim, alamat surel tidak sesuai: ';
+$PHPMAILER_LANG['invalid_hostentry']    = 'Gagal terkirim, entri host tidak sesuai: ';
+$PHPMAILER_LANG['invalid_host']         = 'Gagal terkirim, host tidak sesuai: ';
+$PHPMAILER_LANG['provide_address']      = 'Harus tersedia minimal satu alamat tujuan';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung';
-$PHPMAILER_LANG['recipients_failed']    = 'Kesalahan SMTP: Alamat tujuan berikut menghasilkan kesalahan : ';
-$PHPMAILER_LANG['signing']              = 'Kesalahan dalam tanda tangan : ';
+$PHPMAILER_LANG['recipients_failed']    = 'Kesalahan SMTP: Alamat tujuan berikut menyebabkan kesalahan: ';
+$PHPMAILER_LANG['signing']              = 'Kesalahan dalam penandatangan SSL: ';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() gagal.';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() gagal.';
-$PHPMAILER_LANG['smtp_error']           = 'Kesalahan pada pelayan SMTP : ';
-$PHPMAILER_LANG['variable_set']         = 'Tidak dapat mengatur atau mengatur ulang variable : ';
-$PHPMAILER_LANG['extension_missing']    = 'Ekstensi hilang: ';
+$PHPMAILER_LANG['smtp_error']           = 'Kesalahan pada pelayan SMTP: ';
+$PHPMAILER_LANG['variable_set']         = 'Tidak dapat mengatur atau mengatur ulang variabel: ';
+$PHPMAILER_LANG['extension_missing']    = 'Ekstensi PHP tidak tersedia: ';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Italian PHPMailer language file: refer to English translation for definitive list
  * Italian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Japanese PHPMailer language file: refer to English translation for definitive list
  * Japanese PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Georgian PHPMailer language file: refer to English translation for definitive list
  * Georgian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Korean PHPMailer language file: refer to English translation for definitive list
  * Korean PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Lithuanian PHPMailer language file: refer to English translation for definitive list
  * Lithuanian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Latvian PHPMailer language file: refer to English translation for definitive list
  * Latvian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 2 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php

@@ -1,9 +1,11 @@
 <?php
 <?php
+
 /**
 /**
  * Malagasy PHPMailer language file: refer to English translation for definitive list
  * Malagasy PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
  * @author Hackinet <piyushjha8164@gmail.com>
  * @author Hackinet <piyushjha8164@gmail.com>
  */
  */
+
 $PHPMAILER_LANG['authenticate']         = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.';
 $PHPMAILER_LANG['authenticate']         = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.';
 $PHPMAILER_LANG['connect_host']         = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.';
 $PHPMAILER_LANG['connect_host']         = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.';
 $PHPMAILER_LANG['data_not_accepted']    = 'SMTP diso: tsy voarakitra ny angona.';
 $PHPMAILER_LANG['data_not_accepted']    = 'SMTP diso: tsy voarakitra ny angona.';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Malaysian PHPMailer language file: refer to English translation for definitive list
  * Malaysian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Norwegian Bokmål PHPMailer language file: refer to English translation for definitive list
  * Norwegian Bokmål PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Dutch PHPMailer language file: refer to PHPMailer.php for definitive list.
  * Dutch PHPMailer language file: refer to PHPMailer.php for definitive list.
  * @package PHPMailer
  * @package PHPMailer

+ 2 - 1
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Polish PHPMailer language file: refer to English translation for definitive list
  * Polish PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
@@ -14,7 +15,7 @@ $PHPMAILER_LANG['file_access']          = 'Brak dostępu do pliku: ';
 $PHPMAILER_LANG['file_open']            = 'Nie można otworzyć pliku: ';
 $PHPMAILER_LANG['file_open']            = 'Nie można otworzyć pliku: ';
 $PHPMAILER_LANG['from_failed']          = 'Następujący adres Nadawcy jest nieprawidłowy: ';
 $PHPMAILER_LANG['from_failed']          = 'Następujący adres Nadawcy jest nieprawidłowy: ';
 $PHPMAILER_LANG['instantiate']          = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.';
 $PHPMAILER_LANG['instantiate']          = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.';
-$PHPMAILER_LANG['invalid_address']      = 'Nie można wysłać wiadomości, '.
+$PHPMAILER_LANG['invalid_address']      = 'Nie można wysłać wiadomości, ' .
     'następujący adres Odbiorcy jest nieprawidłowy: ';
     'następujący adres Odbiorcy jest nieprawidłowy: ';
 $PHPMAILER_LANG['provide_address']      = 'Należy podać prawidłowy adres email Odbiorcy.';
 $PHPMAILER_LANG['provide_address']      = 'Należy podać prawidłowy adres email Odbiorcy.';
 $PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.';
 $PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Portuguese (European) PHPMailer language file: refer to English translation for definitive list
  * Portuguese (European) PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list
  * Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Romanian PHPMailer language file: refer to English translation for definitive list
  * Romanian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Russian PHPMailer language file: refer to English translation for definitive list
  * Russian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Slovak PHPMailer language file: refer to English translation for definitive list
  * Slovak PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 5 - 1
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php

@@ -1,9 +1,11 @@
 <?php
 <?php
+
 /**
 /**
  * Slovene PHPMailer language file: refer to English translation for definitive list
  * Slovene PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
  * @author Klemen Tušar <techouse@gmail.com>
  * @author Klemen Tušar <techouse@gmail.com>
  * @author Filip Š <projects@filips.si>
  * @author Filip Š <projects@filips.si>
+ * @author Blaž Oražem <blaz@orazem.si>
  */
  */
 
 
 $PHPMAILER_LANG['authenticate']         = 'SMTP napaka: Avtentikacija ni uspela.';
 $PHPMAILER_LANG['authenticate']         = 'SMTP napaka: Avtentikacija ni uspela.';
@@ -17,8 +19,10 @@ $PHPMAILER_LANG['file_open']            = 'Ne morem odpreti datoteke: ';
 $PHPMAILER_LANG['from_failed']          = 'Neveljaven e-naslov pošiljatelja: ';
 $PHPMAILER_LANG['from_failed']          = 'Neveljaven e-naslov pošiljatelja: ';
 $PHPMAILER_LANG['instantiate']          = 'Ne morem inicializirati mail funkcije.';
 $PHPMAILER_LANG['instantiate']          = 'Ne morem inicializirati mail funkcije.';
 $PHPMAILER_LANG['invalid_address']      = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: ';
 $PHPMAILER_LANG['invalid_address']      = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: ';
+$PHPMAILER_LANG['invalid_hostentry']    = 'Neveljaven vnos gostitelja: ';
+$PHPMAILER_LANG['invalid_host']         = 'Neveljaven gostitelj: ';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.';
-$PHPMAILER_LANG['provide_address']      = 'Prosim vnesite vsaj enega naslovnika.';
+$PHPMAILER_LANG['provide_address']      = 'Prosimo, vnesite vsaj enega naslovnika.';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP napaka: Sledeči naslovniki so neveljavni: ';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP napaka: Sledeči naslovniki so neveljavni: ';
 $PHPMAILER_LANG['signing']              = 'Napaka pri podpisovanju: ';
 $PHPMAILER_LANG['signing']              = 'Napaka pri podpisovanju: ';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'Ne morem vzpostaviti povezave s SMTP strežnikom.';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'Ne morem vzpostaviti povezave s SMTP strežnikom.';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Serbian PHPMailer language file: refer to English translation for definitive list
  * Serbian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 3 - 2
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Swedish PHPMailer language file: refer to English translation for definitive list
  * Swedish PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer
@@ -19,8 +20,8 @@ $PHPMAILER_LANG['invalid_address']      = 'Felaktig adress: ';
 $PHPMAILER_LANG['provide_address']      = 'Du måste ange minst en mottagares e-postadress.';
 $PHPMAILER_LANG['provide_address']      = 'Du måste ange minst en mottagares e-postadress.';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP fel: Följande mottagare är felaktig: ';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP fel: Följande mottagare är felaktig: ';
-$PHPMAILER_LANG['signing']              = 'Signerings fel: ';
+$PHPMAILER_LANG['signing']              = 'Signeringsfel: ';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() misslyckades.';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() misslyckades.';
-$PHPMAILER_LANG['smtp_error']           = 'SMTP server fel: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP serverfel: ';
 $PHPMAILER_LANG['variable_set']         = 'Kunde inte definiera eller återställa variabel: ';
 $PHPMAILER_LANG['variable_set']         = 'Kunde inte definiera eller återställa variabel: ';
 $PHPMAILER_LANG['extension_missing']    = 'Tillägg ej tillgängligt: ';
 $PHPMAILER_LANG['extension_missing']    = 'Tillägg ej tillgängligt: ';

+ 13 - 12
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php

@@ -1,27 +1,28 @@
 <?php
 <?php
+
 /**
 /**
  * Tagalog PHPMailer language file: refer to English translation for definitive list
  * Tagalog PHPMailer language file: refer to English translation for definitive list
  *
  *
  *   @package PHPMailer
  *   @package PHPMailer
- *   @author Adriane Justine Tan <adrianetan12@gmail.com>
+ *   @author Adriane Justine Tan <eidoriantan@gmail.com>
  */
  */
- 
+
 $PHPMAILER_LANG['authenticate']         = 'SMTP Error: Hindi mapatotohanan.';
 $PHPMAILER_LANG['authenticate']         = 'SMTP Error: Hindi mapatotohanan.';
 $PHPMAILER_LANG['connect_host']         = 'SMTP Error: Hindi makakonekta sa SMTP host.';
 $PHPMAILER_LANG['connect_host']         = 'SMTP Error: Hindi makakonekta sa SMTP host.';
-$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Error: Ang datos ay hindi maaaring matatanggap.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Error: Ang datos ay hindi naitanggap.';
 $PHPMAILER_LANG['empty_message']        = 'Walang laman ang mensahe';
 $PHPMAILER_LANG['empty_message']        = 'Walang laman ang mensahe';
 $PHPMAILER_LANG['encoding']             = 'Hindi alam ang encoding: ';
 $PHPMAILER_LANG['encoding']             = 'Hindi alam ang encoding: ';
 $PHPMAILER_LANG['execute']              = 'Hindi maisasagawa: ';
 $PHPMAILER_LANG['execute']              = 'Hindi maisasagawa: ';
 $PHPMAILER_LANG['file_access']          = 'Hindi ma-access ang file: ';
 $PHPMAILER_LANG['file_access']          = 'Hindi ma-access ang file: ';
-$PHPMAILER_LANG['file_open']            = 'Hindi mabuksan ang file: ';
+$PHPMAILER_LANG['file_open']            = 'File Error: Hindi mabuksan ang file: ';
 $PHPMAILER_LANG['from_failed']          = 'Ang sumusunod na address ay nabigo: ';
 $PHPMAILER_LANG['from_failed']          = 'Ang sumusunod na address ay nabigo: ';
-$PHPMAILER_LANG['instantiate']          = 'Hindi maaaring magbigay ng institusyon ang mail';
+$PHPMAILER_LANG['instantiate']          = 'Hindi maisimulan ang instance ng mail function.';
 $PHPMAILER_LANG['invalid_address']      = 'Hindi wasto ang address na naibigay: ';
 $PHPMAILER_LANG['invalid_address']      = 'Hindi wasto ang address na naibigay: ';
-$PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado';
-$PHPMAILER_LANG['provide_address']      = 'Kailangan mong magbigay ng kahit isang email address na tatanggap';
+$PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado.';
+$PHPMAILER_LANG['provide_address']      = 'Kailangan mong magbigay ng kahit isang email address na tatanggap.';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: ';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: ';
-$PHPMAILER_LANG['signing']              = 'Hindi ma-sign';
-$PHPMAILER_LANG['smtp_connect_failed']  = 'Ang SMTP connect() ay nabigo';
-$PHPMAILER_LANG['smtp_error']           = 'Ang server ng SMTP ay nabigo';
-$PHPMAILER_LANG['variable_set']         = 'Hindi matatakda ang mga variables: ';
-$PHPMAILER_LANG['extension_missing']    = 'Nawawala ang extension';
+$PHPMAILER_LANG['signing']              = 'Hindi ma-sign: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Ang SMTP connect() ay nabigo.';
+$PHPMAILER_LANG['smtp_error']           = 'Ang server ng SMTP ay nabigo: ';
+$PHPMAILER_LANG['variable_set']         = 'Hindi matatakda o ma-reset ang mga variables: ';
+$PHPMAILER_LANG['extension_missing']    = 'Nawawala ang extension: ';

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Turkish PHPMailer language file: refer to English translation for definitive list
  * Turkish PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Ukrainian PHPMailer language file: refer to English translation for definitive list
  * Ukrainian PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Vietnamese (Tiếng Việt) PHPMailer language file: refer to English translation for definitive list.
  * Vietnamese (Tiếng Việt) PHPMailer language file: refer to English translation for definitive list.
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Traditional Chinese PHPMailer language file: refer to English translation for definitive list
  * Traditional Chinese PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 1 - 0
data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Simplified Chinese PHPMailer language file: refer to English translation for definitive list
  * Simplified Chinese PHPMailer language file: refer to English translation for definitive list
  * @package PHPMailer
  * @package PHPMailer

+ 2 - 1
data/web/inc/lib/vendor/phpmailer/phpmailer/src/Exception.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * PHPMailer Exception class.
  * PHPMailer Exception class.
  * PHP Version 5.5.
  * PHP Version 5.5.
@@ -9,7 +10,7 @@
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Brent R. Matzelle (original founder)
  * @author    Brent R. Matzelle (original founder)
- * @copyright 2012 - 2017 Marcus Bointon
+ * @copyright 2012 - 2020 Marcus Bointon
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2004 - 2009 Andy Prevost
  * @copyright 2004 - 2009 Andy Prevost
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License

+ 2 - 1
data/web/inc/lib/vendor/phpmailer/phpmailer/src/OAuth.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * PHPMailer - PHP email creation and transport class.
  * PHPMailer - PHP email creation and transport class.
  * PHP Version 5.5.
  * PHP Version 5.5.
@@ -9,7 +10,7 @@
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Brent R. Matzelle (original founder)
  * @author    Brent R. Matzelle (original founder)
- * @copyright 2012 - 2015 Marcus Bointon
+ * @copyright 2012 - 2020 Marcus Bointon
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2004 - 2009 Andy Prevost
  * @copyright 2004 - 2009 Andy Prevost
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License

+ 109 - 62
data/web/inc/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * PHPMailer - PHP email creation and transport class.
  * PHPMailer - PHP email creation and transport class.
  * PHP Version 5.5.
  * PHP Version 5.5.
@@ -9,7 +10,7 @@
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Brent R. Matzelle (original founder)
  * @author    Brent R. Matzelle (original founder)
- * @copyright 2012 - 2019 Marcus Bointon
+ * @copyright 2012 - 2020 Marcus Bointon
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2004 - 2009 Andy Prevost
  * @copyright 2004 - 2009 Andy Prevost
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
@@ -388,11 +389,11 @@ class PHPMailer
      * SMTP class debug output mode.
      * SMTP class debug output mode.
      * Debug output level.
      * Debug output level.
      * Options:
      * Options:
-     * * SMTP::DEBUG_OFF: No output
-     * * SMTP::DEBUG_CLIENT: Client messages
-     * * SMTP::DEBUG_SERVER: Client and server messages
-     * * SMTP::DEBUG_CONNECTION: As SERVER plus connection status
-     * * SMTP::DEBUG_LOWLEVEL: Noisy, low-level data output, rarely needed
+     * @see SMTP::DEBUG_OFF: No output
+     * @see SMTP::DEBUG_CLIENT: Client messages
+     * @see SMTP::DEBUG_SERVER: Client and server messages
+     * @see SMTP::DEBUG_CONNECTION: As SERVER plus connection status
+     * @see SMTP::DEBUG_LOWLEVEL: Noisy, low-level data output, rarely needed
      *
      *
      * @see SMTP::$do_debug
      * @see SMTP::$do_debug
      *
      *
@@ -441,6 +442,8 @@ class PHPMailer
      * Only supported in `mail` and `sendmail` transports, not in SMTP.
      * Only supported in `mail` and `sendmail` transports, not in SMTP.
      *
      *
      * @var bool
      * @var bool
+     *
+     * @deprecated 6.0.0 PHPMailer isn't a mailing list manager!
      */
      */
     public $SingleTo = false;
     public $SingleTo = false;
 
 
@@ -745,7 +748,7 @@ class PHPMailer
      *
      *
      * @var string
      * @var string
      */
      */
-    const VERSION = '6.1.6';
+    const VERSION = '6.2.0';
 
 
     /**
     /**
      * Error severity: message only, continue processing.
      * Error severity: message only, continue processing.
@@ -897,6 +900,7 @@ class PHPMailer
         switch ($this->Debugoutput) {
         switch ($this->Debugoutput) {
             case 'error_log':
             case 'error_log':
                 //Don't output, just log
                 //Don't output, just log
+                /** @noinspection ForgottenDebugOutputInspection */
                 error_log($str);
                 error_log($str);
                 break;
                 break;
             case 'html':
             case 'html':
@@ -1182,9 +1186,11 @@ class PHPMailer
             //Use this built-in parser if it's available
             //Use this built-in parser if it's available
             $list = imap_rfc822_parse_adrlist($addrstr, '');
             $list = imap_rfc822_parse_adrlist($addrstr, '');
             foreach ($list as $address) {
             foreach ($list as $address) {
-                if (('.SYNTAX-ERROR.' !== $address->host) && static::validateAddress(
-                    $address->mailbox . '@' . $address->host
-                )) {
+                if (
+                    ('.SYNTAX-ERROR.' !== $address->host) && static::validateAddress(
+                        $address->mailbox . '@' . $address->host
+                    )
+                ) {
                     $addresses[] = [
                     $addresses[] = [
                         'name' => (property_exists($address, 'personal') ? $address->personal : ''),
                         'name' => (property_exists($address, 'personal') ? $address->personal : ''),
                         'address' => $address->mailbox . '@' . $address->host,
                         'address' => $address->mailbox . '@' . $address->host,
@@ -1238,7 +1244,8 @@ class PHPMailer
         $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
         $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
         // Don't validate now addresses with IDN. Will be done in send().
         // Don't validate now addresses with IDN. Will be done in send().
         $pos = strrpos($address, '@');
         $pos = strrpos($address, '@');
-        if ((false === $pos)
+        if (
+            (false === $pos)
             || ((!$this->has8bitChars(substr($address, ++$pos)) || !static::idnSupported())
             || ((!$this->has8bitChars(substr($address, ++$pos)) || !static::idnSupported())
             && !static::validateAddress($address))
             && !static::validateAddress($address))
         ) {
         ) {
@@ -1307,7 +1314,7 @@ class PHPMailer
             $patternselect = static::$validator;
             $patternselect = static::$validator;
         }
         }
         if (is_callable($patternselect)) {
         if (is_callable($patternselect)) {
-            return $patternselect($address);
+            return call_user_func($patternselect, $address);
         }
         }
         //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321
         //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321
         if (strpos($address, "\n") !== false || strpos($address, "\r") !== false) {
         if (strpos($address, "\n") !== false || strpos($address, "\r") !== false) {
@@ -1348,7 +1355,7 @@ class PHPMailer
                 /*
                 /*
                  * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements.
                  * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements.
                  *
                  *
-                 * @see http://www.whatwg.org/specs/web-apps/current-work/#e-mail-state-(type=email)
+                 * @see https://html.spec.whatwg.org/#e-mail-state-(type=email)
                  */
                  */
                 return (bool) preg_match(
                 return (bool) preg_match(
                     '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' .
                     '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' .
@@ -1390,7 +1397,8 @@ class PHPMailer
     {
     {
         // Verify we have required functions, CharSet, and at-sign.
         // Verify we have required functions, CharSet, and at-sign.
         $pos = strrpos($address, '@');
         $pos = strrpos($address, '@');
-        if (!empty($this->CharSet) &&
+        if (
+            !empty($this->CharSet) &&
             false !== $pos &&
             false !== $pos &&
             static::idnSupported()
             static::idnSupported()
         ) {
         ) {
@@ -1452,8 +1460,9 @@ class PHPMailer
      */
      */
     public function preSend()
     public function preSend()
     {
     {
-        if ('smtp' === $this->Mailer
-            || ('mail' === $this->Mailer && stripos(PHP_OS, 'WIN') === 0)
+        if (
+            'smtp' === $this->Mailer
+            || ('mail' === $this->Mailer && (PHP_VERSION_ID >= 80000 || stripos(PHP_OS, 'WIN') === 0))
         ) {
         ) {
             //SMTP mandates RFC-compliant line endings
             //SMTP mandates RFC-compliant line endings
             //and it's also used with mail() on Windows
             //and it's also used with mail() on Windows
@@ -1463,7 +1472,8 @@ class PHPMailer
             static::setLE(PHP_EOL);
             static::setLE(PHP_EOL);
         }
         }
         //Check for buggy PHP versions that add a header with an incorrect line break
         //Check for buggy PHP versions that add a header with an incorrect line break
-        if ('mail' === $this->Mailer
+        if (
+            'mail' === $this->Mailer
             && ((PHP_VERSION_ID >= 70000 && PHP_VERSION_ID < 70017)
             && ((PHP_VERSION_ID >= 70000 && PHP_VERSION_ID < 70017)
                 || (PHP_VERSION_ID >= 70100 && PHP_VERSION_ID < 70103))
                 || (PHP_VERSION_ID >= 70100 && PHP_VERSION_ID < 70103))
             && ini_get('mail.add_x_header') === '1'
             && ini_get('mail.add_x_header') === '1'
@@ -1550,7 +1560,8 @@ class PHPMailer
             }
             }
 
 
             // Sign with DKIM if enabled
             // Sign with DKIM if enabled
-            if (!empty($this->DKIM_domain)
+            if (
+                !empty($this->DKIM_domain)
                 && !empty($this->DKIM_selector)
                 && !empty($this->DKIM_selector)
                 && (!empty($this->DKIM_private_string)
                 && (!empty($this->DKIM_private_string)
                     || (!empty($this->DKIM_private)
                     || (!empty($this->DKIM_private)
@@ -1607,6 +1618,9 @@ class PHPMailer
                     return $this->mailSend($this->MIMEHeader, $this->MIMEBody);
                     return $this->mailSend($this->MIMEHeader, $this->MIMEBody);
             }
             }
         } catch (Exception $exc) {
         } catch (Exception $exc) {
+            if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true) {
+                $this->smtp->reset();
+            }
             $this->setError($exc->getMessage());
             $this->setError($exc->getMessage());
             $this->edebug($exc->getMessage());
             $this->edebug($exc->getMessage());
             if ($this->exceptions) {
             if ($this->exceptions) {
@@ -1711,7 +1725,8 @@ class PHPMailer
     protected static function isShellSafe($string)
     protected static function isShellSafe($string)
     {
     {
         // Future-proof
         // Future-proof
-        if (escapeshellcmd($string) !== $string
+        if (
+            escapeshellcmd($string) !== $string
             || !in_array(escapeshellarg($string), ["'$string'", "\"$string\""])
             || !in_array(escapeshellarg($string), ["'$string'", "\"$string\""])
         ) {
         ) {
             return false;
             return false;
@@ -1747,6 +1762,23 @@ class PHPMailer
         return !preg_match('#^[a-z]+://#i', $path);
         return !preg_match('#^[a-z]+://#i', $path);
     }
     }
 
 
+    /**
+     * Check whether a file path is safe, accessible, and readable.
+     *
+     * @param string $path A relative or absolute path to a file
+     *
+     * @return bool
+     */
+    protected static function fileIsAccessible($path)
+    {
+        $readable = file_exists($path);
+        //If not a UNC path (expected to start with \\), check read permission, see #2069
+        if (strpos($path, '\\\\') !== 0) {
+            $readable = $readable && is_readable($path);
+        }
+        return static::isPermittedPath($path) && $readable;
+    }
+
     /**
     /**
      * Send mail using the PHP mail() function.
      * Send mail using the PHP mail() function.
      *
      *
@@ -1878,7 +1910,7 @@ class PHPMailer
                     $isSent = true;
                     $isSent = true;
                 }
                 }
 
 
-                $callbacks[] = ['issent'=>$isSent, 'to'=>$to[0]];
+                $callbacks[] = ['issent' => $isSent, 'to' => $to[0]];
             }
             }
         }
         }
 
 
@@ -1958,11 +1990,13 @@ class PHPMailer
 
 
         foreach ($hosts as $hostentry) {
         foreach ($hosts as $hostentry) {
             $hostinfo = [];
             $hostinfo = [];
-            if (!preg_match(
-                '/^(?:(ssl|tls):\/\/)?(.+?)(?::(\d+))?$/',
-                trim($hostentry),
-                $hostinfo
-            )) {
+            if (
+                !preg_match(
+                    '/^(?:(ssl|tls):\/\/)?(.+?)(?::(\d+))?$/',
+                    trim($hostentry),
+                    $hostinfo
+                )
+            ) {
                 $this->edebug($this->lang('invalid_hostentry') . ' ' . trim($hostentry));
                 $this->edebug($this->lang('invalid_hostentry') . ' ' . trim($hostentry));
                 // Not a valid host entry
                 // Not a valid host entry
                 continue;
                 continue;
@@ -2000,7 +2034,12 @@ class PHPMailer
             }
             }
             $host = $hostinfo[2];
             $host = $hostinfo[2];
             $port = $this->Port;
             $port = $this->Port;
-            if (array_key_exists(3, $hostinfo) && is_numeric($hostinfo[3]) && $hostinfo[3] > 0 && $hostinfo[3] < 65536) {
+            if (
+                array_key_exists(3, $hostinfo) &&
+                is_numeric($hostinfo[3]) &&
+                $hostinfo[3] > 0 &&
+                $hostinfo[3] < 65536
+            ) {
                 $port = (int) $hostinfo[3];
                 $port = (int) $hostinfo[3];
             }
             }
             if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) {
             if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) {
@@ -2026,12 +2065,14 @@ class PHPMailer
                         // We must resend EHLO after TLS negotiation
                         // We must resend EHLO after TLS negotiation
                         $this->smtp->hello($hello);
                         $this->smtp->hello($hello);
                     }
                     }
-                    if ($this->SMTPAuth && !$this->smtp->authenticate(
-                        $this->Username,
-                        $this->Password,
-                        $this->AuthType,
-                        $this->oauth
-                    )) {
+                    if (
+                        $this->SMTPAuth && !$this->smtp->authenticate(
+                            $this->Username,
+                            $this->Password,
+                            $this->AuthType,
+                            $this->oauth
+                        )
+                    ) {
                         throw new Exception($this->lang('authenticate'));
                         throw new Exception($this->lang('authenticate'));
                     }
                     }
 
 
@@ -2089,7 +2130,7 @@ class PHPMailer
             'am' => 'hy',
             'am' => 'hy',
         ];
         ];
 
 
-        if (isset($renamed_langcodes[$langcode])) {
+        if (array_key_exists($langcode, $renamed_langcodes)) {
             $langcode = $renamed_langcodes[$langcode];
             $langcode = $renamed_langcodes[$langcode];
         }
         }
 
 
@@ -2130,7 +2171,7 @@ class PHPMailer
         // There is no English translation file
         // There is no English translation file
         if ('en' !== $langcode) {
         if ('en' !== $langcode) {
             // Make sure language file path is readable
             // Make sure language file path is readable
-            if (!static::isPermittedPath($lang_file) || !file_exists($lang_file)) {
+            if (!static::fileIsAccessible($lang_file)) {
                 $foundlang = false;
                 $foundlang = false;
             } else {
             } else {
                 // Overwrite language-specific strings.
                 // Overwrite language-specific strings.
@@ -2378,21 +2419,18 @@ class PHPMailer
 
 
         $result .= $this->headerLine('Date', '' === $this->MessageDate ? self::rfcDate() : $this->MessageDate);
         $result .= $this->headerLine('Date', '' === $this->MessageDate ? self::rfcDate() : $this->MessageDate);
 
 
-        // To be created automatically by mail()
-        if ($this->SingleTo) {
-            if ('mail' !== $this->Mailer) {
+        // The To header is created automatically by mail(), so needs to be omitted here
+        if ('mail' !== $this->Mailer) {
+            if ($this->SingleTo) {
                 foreach ($this->to as $toaddr) {
                 foreach ($this->to as $toaddr) {
                     $this->SingleToArray[] = $this->addrFormat($toaddr);
                     $this->SingleToArray[] = $this->addrFormat($toaddr);
                 }
                 }
-            }
-        } elseif (count($this->to) > 0) {
-            if ('mail' !== $this->Mailer) {
+            } elseif (count($this->to) > 0) {
                 $result .= $this->addrAppend('To', $this->to);
                 $result .= $this->addrAppend('To', $this->to);
+            } elseif (count($this->cc) === 0) {
+                $result .= $this->headerLine('To', 'undisclosed-recipients:;');
             }
             }
-        } elseif (count($this->cc) === 0) {
-            $result .= $this->headerLine('To', 'undisclosed-recipients:;');
         }
         }
-
         $result .= $this->addrAppend('From', [[trim($this->From), $this->FromName]]);
         $result .= $this->addrAppend('From', [[trim($this->From), $this->FromName]]);
 
 
         // sendmail and mail() extract Cc from the header before sending
         // sendmail and mail() extract Cc from the header before sending
@@ -2401,7 +2439,8 @@ class PHPMailer
         }
         }
 
 
         // sendmail and mail() extract Bcc from the header before sending
         // sendmail and mail() extract Bcc from the header before sending
-        if ((
+        if (
+            (
                 'sendmail' === $this->Mailer || 'qmail' === $this->Mailer || 'mail' === $this->Mailer
                 'sendmail' === $this->Mailer || 'qmail' === $this->Mailer || 'mail' === $this->Mailer
             )
             )
             && count($this->bcc) > 0
             && count($this->bcc) > 0
@@ -2947,7 +2986,7 @@ class PHPMailer
      * @param string $path        Path to the attachment
      * @param string $path        Path to the attachment
      * @param string $name        Overrides the attachment name
      * @param string $name        Overrides the attachment name
      * @param string $encoding    File encoding (see $Encoding)
      * @param string $encoding    File encoding (see $Encoding)
-     * @param string $type        File extension (MIME) type
+     * @param string $type        MIME type, e.g. `image/jpeg`; determined automatically from $path if not specified
      * @param string $disposition Disposition to use
      * @param string $disposition Disposition to use
      *
      *
      * @throws Exception
      * @throws Exception
@@ -2962,7 +3001,7 @@ class PHPMailer
         $disposition = 'attachment'
         $disposition = 'attachment'
     ) {
     ) {
         try {
         try {
-            if (!static::isPermittedPath($path) || !@is_file($path) || !is_readable($path)) {
+            if (!static::fileIsAccessible($path)) {
                 throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE);
                 throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE);
             }
             }
 
 
@@ -2975,7 +3014,6 @@ class PHPMailer
             if ('' === $name) {
             if ('' === $name) {
                 $name = $filename;
                 $name = $filename;
             }
             }
-
             if (!$this->validateEncoding($encoding)) {
             if (!$this->validateEncoding($encoding)) {
                 throw new Exception($this->lang('encoding') . $encoding);
                 throw new Exception($this->lang('encoding') . $encoding);
             }
             }
@@ -3137,7 +3175,7 @@ class PHPMailer
     protected function encodeFile($path, $encoding = self::ENCODING_BASE64)
     protected function encodeFile($path, $encoding = self::ENCODING_BASE64)
     {
     {
         try {
         try {
-            if (!static::isPermittedPath($path) || !file_exists($path) || !is_readable($path)) {
+            if (!static::fileIsAccessible($path)) {
                 throw new Exception($this->lang('file_open') . $path, self::STOP_CONTINUE);
                 throw new Exception($this->lang('file_open') . $path, self::STOP_CONTINUE);
             }
             }
             $file_buffer = file_get_contents($path);
             $file_buffer = file_get_contents($path);
@@ -3523,7 +3561,7 @@ class PHPMailer
         $disposition = 'inline'
         $disposition = 'inline'
     ) {
     ) {
         try {
         try {
-            if (!static::isPermittedPath($path) || !@is_file($path) || !is_readable($path)) {
+            if (!static::fileIsAccessible($path)) {
                 throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE);
                 throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE);
             }
             }
 
 
@@ -3872,7 +3910,8 @@ class PHPMailer
     public static function isValidHost($host)
     public static function isValidHost($host)
     {
     {
         //Simple syntax limits
         //Simple syntax limits
-        if (empty($host)
+        if (
+            empty($host)
             || !is_string($host)
             || !is_string($host)
             || strlen($host) > 256
             || strlen($host) > 256
             || !preg_match('/^([a-zA-Z\d.-]*|\[[a-fA-F\d:]+])$/', $host)
             || !preg_match('/^([a-zA-Z\d.-]*|\[[a-fA-F\d:]+])$/', $host)
@@ -3990,7 +4029,8 @@ class PHPMailer
      * @param string        $message  HTML message string
      * @param string        $message  HTML message string
      * @param string        $basedir  Absolute path to a base directory to prepend to relative paths to images
      * @param string        $basedir  Absolute path to a base directory to prepend to relative paths to images
      * @param bool|callable $advanced Whether to use the internal HTML to text converter
      * @param bool|callable $advanced Whether to use the internal HTML to text converter
-     *                                or your own custom converter @return string $message The transformed message Body
+     *                                or your own custom converter
+     * @return string The transformed message body
      *
      *
      * @throws Exception
      * @throws Exception
      *
      *
@@ -4037,7 +4077,8 @@ class PHPMailer
                     );
                     );
                     continue;
                     continue;
                 }
                 }
-                if (// Only process relative URLs if a basedir is provided (i.e. no absolute local paths)
+                if (
+                    // Only process relative URLs if a basedir is provided (i.e. no absolute local paths)
                     !empty($basedir)
                     !empty($basedir)
                     // Ignore URLs containing parent dir traversal (..)
                     // Ignore URLs containing parent dir traversal (..)
                     && (strpos($url, '..') === false)
                     && (strpos($url, '..') === false)
@@ -4059,13 +4100,14 @@ class PHPMailer
                     if (strlen($directory) > 1 && '/' !== substr($directory, -1)) {
                     if (strlen($directory) > 1 && '/' !== substr($directory, -1)) {
                         $directory .= '/';
                         $directory .= '/';
                     }
                     }
-                    if ($this->addEmbeddedImage(
-                        $basedir . $directory . $filename,
-                        $cid,
-                        $filename,
-                        static::ENCODING_BASE64,
-                        static::_mime_types((string) static::mb_pathinfo($filename, PATHINFO_EXTENSION))
-                    )
+                    if (
+                        $this->addEmbeddedImage(
+                            $basedir . $directory . $filename,
+                            $cid,
+                            $filename,
+                            static::ENCODING_BASE64,
+                            static::_mime_types((string) static::mb_pathinfo($filename, PATHINFO_EXTENSION))
+                        )
                     ) {
                     ) {
                         $message = preg_replace(
                         $message = preg_replace(
                             '/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui',
                             '/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui',
@@ -4114,7 +4156,7 @@ class PHPMailer
     public function html2text($html, $advanced = false)
     public function html2text($html, $advanced = false)
     {
     {
         if (is_callable($advanced)) {
         if (is_callable($advanced)) {
-            return $advanced($html);
+            return call_user_func($advanced, $html);
         }
         }
 
 
         return html_entity_decode(
         return html_entity_decode(
@@ -4213,6 +4255,7 @@ class PHPMailer
             'tiff' => 'image/tiff',
             'tiff' => 'image/tiff',
             'tif' => 'image/tiff',
             'tif' => 'image/tiff',
             'webp' => 'image/webp',
             'webp' => 'image/webp',
+            'avif' => 'image/avif',
             'heif' => 'image/heif',
             'heif' => 'image/heif',
             'heifs' => 'image/heif-sequence',
             'heifs' => 'image/heif-sequence',
             'heic' => 'image/heic',
             'heic' => 'image/heic',
@@ -4483,11 +4526,15 @@ class PHPMailer
             $privKey = openssl_pkey_get_private($privKeyStr);
             $privKey = openssl_pkey_get_private($privKeyStr);
         }
         }
         if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) {
         if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) {
-            openssl_pkey_free($privKey);
+            if (PHP_MAJOR_VERSION < 8) {
+                openssl_pkey_free($privKey);
+            }
 
 
             return base64_encode($signature);
             return base64_encode($signature);
         }
         }
-        openssl_pkey_free($privKey);
+        if (PHP_MAJOR_VERSION < 8) {
+            openssl_pkey_free($privKey);
+        }
 
 
         return '';
         return '';
     }
     }

+ 35 - 8
data/web/inc/lib/vendor/phpmailer/phpmailer/src/POP3.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * PHPMailer POP-Before-SMTP Authentication Class.
  * PHPMailer POP-Before-SMTP Authentication Class.
  * PHP Version 5.5.
  * PHP Version 5.5.
@@ -9,7 +10,7 @@
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Brent R. Matzelle (original founder)
  * @author    Brent R. Matzelle (original founder)
- * @copyright 2012 - 2019 Marcus Bointon
+ * @copyright 2012 - 2020 Marcus Bointon
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2004 - 2009 Andy Prevost
  * @copyright 2004 - 2009 Andy Prevost
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
@@ -45,7 +46,7 @@ class POP3
      *
      *
      * @var string
      * @var string
      */
      */
-    const VERSION = '6.1.6';
+    const VERSION = '6.2.0';
 
 
     /**
     /**
      * Default POP3 port number.
      * Default POP3 port number.
@@ -62,12 +63,16 @@ class POP3
     const DEFAULT_TIMEOUT = 30;
     const DEFAULT_TIMEOUT = 30;
 
 
     /**
     /**
-     * Debug display level.
-     * Options: 0 = no, 1+ = yes.
+     * POP3 class debug output mode.
+     * Debug output level.
+     * Options:
+     * @see POP3::DEBUG_OFF: No output
+     * @see POP3::DEBUG_SERVER: Server messages, connection/server errors
+     * @see POP3::DEBUG_CLIENT: Client and Server messages, connection/server errors
      *
      *
      * @var int
      * @var int
      */
      */
-    public $do_debug = 0;
+    public $do_debug = self::DEBUG_OFF;
 
 
     /**
     /**
      * POP3 mail server hostname.
      * POP3 mail server hostname.
@@ -130,6 +135,28 @@ class POP3
      */
      */
     const LE = "\r\n";
     const LE = "\r\n";
 
 
+    /**
+     * Debug level for no output.
+     *
+     * @var int
+     */
+    const DEBUG_OFF = 0;
+
+    /**
+     * Debug level to show server -> client messages
+     * also shows clients connection errors or errors from server
+     *
+     * @var int
+     */
+    const DEBUG_SERVER = 1;
+
+    /**
+     * Debug level to show client -> server and server -> client messages.
+     *
+     * @var int
+     */
+    const DEBUG_CLIENT = 2;
+
     /**
     /**
      * Simple static wrapper for all-in-one POP before SMTP.
      * Simple static wrapper for all-in-one POP before SMTP.
      *
      *
@@ -329,7 +356,7 @@ class POP3
     protected function getResponse($size = 128)
     protected function getResponse($size = 128)
     {
     {
         $response = fgets($this->pop_conn, $size);
         $response = fgets($this->pop_conn, $size);
-        if ($this->do_debug >= 1) {
+        if ($this->do_debug >= self::DEBUG_SERVER) {
             echo 'Server -> Client: ', $response;
             echo 'Server -> Client: ', $response;
         }
         }
 
 
@@ -346,7 +373,7 @@ class POP3
     protected function sendString($string)
     protected function sendString($string)
     {
     {
         if ($this->pop_conn) {
         if ($this->pop_conn) {
-            if ($this->do_debug >= 2) { //Show client messages when debug >= 2
+            if ($this->do_debug >= self::DEBUG_CLIENT) { //Show client messages when debug >= 2
                 echo 'Client -> Server: ', $string;
                 echo 'Client -> Server: ', $string;
             }
             }
 
 
@@ -384,7 +411,7 @@ class POP3
     protected function setError($error)
     protected function setError($error)
     {
     {
         $this->errors[] = $error;
         $this->errors[] = $error;
-        if ($this->do_debug >= 1) {
+        if ($this->do_debug >= self::DEBUG_SERVER) {
             echo '<pre>';
             echo '<pre>';
             foreach ($this->errors as $e) {
             foreach ($this->errors as $e) {
                 print_r($e);
                 print_r($e);

+ 88 - 28
data/web/inc/lib/vendor/phpmailer/phpmailer/src/SMTP.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * PHPMailer RFC821 SMTP email transport class.
  * PHPMailer RFC821 SMTP email transport class.
  * PHP Version 5.5.
  * PHP Version 5.5.
@@ -9,7 +10,7 @@
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
  * @author    Brent R. Matzelle (original founder)
  * @author    Brent R. Matzelle (original founder)
- * @copyright 2012 - 2019 Marcus Bointon
+ * @copyright 2012 - 2020 Marcus Bointon
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2010 - 2012 Jim Jagielski
  * @copyright 2004 - 2009 Andy Prevost
  * @copyright 2004 - 2009 Andy Prevost
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
@@ -34,7 +35,7 @@ class SMTP
      *
      *
      * @var string
      * @var string
      */
      */
-    const VERSION = '6.1.6';
+    const VERSION = '6.2.0';
 
 
     /**
     /**
      * SMTP line break constant.
      * SMTP line break constant.
@@ -311,12 +312,6 @@ class SMTP
      */
      */
     public function connect($host, $port = null, $timeout = 30, $options = [])
     public function connect($host, $port = null, $timeout = 30, $options = [])
     {
     {
-        static $streamok;
-        //This is enabled by default since 5.0.0 but some providers disable it
-        //Check this once and cache the result
-        if (null === $streamok) {
-            $streamok = function_exists('stream_socket_client');
-        }
         // Clear errors to avoid confusion
         // Clear errors to avoid confusion
         $this->setError('');
         $this->setError('');
         // Make sure we are __not__ connected
         // Make sure we are __not__ connected
@@ -335,12 +330,48 @@ class SMTP
             (count($options) > 0 ? var_export($options, true) : 'array()'),
             (count($options) > 0 ? var_export($options, true) : 'array()'),
             self::DEBUG_CONNECTION
             self::DEBUG_CONNECTION
         );
         );
+
+        $this->smtp_conn = $this->getSMTPConnection($host, $port, $timeout, $options);
+
+        if ($this->smtp_conn === false) {
+            //Error info already set inside `getSMTPConnection()`
+            return false;
+        }
+
+        $this->edebug('Connection: opened', self::DEBUG_CONNECTION);
+
+        // Get any announcement
+        $this->last_reply = $this->get_lines();
+        $this->edebug('SERVER -> CLIENT: ' . $this->last_reply, self::DEBUG_SERVER);
+
+        return true;
+    }
+
+    /**
+     * Create connection to the SMTP server.
+     *
+     * @param string $host    SMTP server IP or host name
+     * @param int    $port    The port number to connect to
+     * @param int    $timeout How long to wait for the connection to open
+     * @param array  $options An array of options for stream_context_create()
+     *
+     * @return false|resource
+     */
+    protected function getSMTPConnection($host, $port = null, $timeout = 30, $options = [])
+    {
+        static $streamok;
+        //This is enabled by default since 5.0.0 but some providers disable it
+        //Check this once and cache the result
+        if (null === $streamok) {
+            $streamok = function_exists('stream_socket_client');
+        }
+
         $errno = 0;
         $errno = 0;
         $errstr = '';
         $errstr = '';
         if ($streamok) {
         if ($streamok) {
             $socket_context = stream_context_create($options);
             $socket_context = stream_context_create($options);
             set_error_handler([$this, 'errorHandler']);
             set_error_handler([$this, 'errorHandler']);
-            $this->smtp_conn = stream_socket_client(
+            $connection = stream_socket_client(
                 $host . ':' . $port,
                 $host . ':' . $port,
                 $errno,
                 $errno,
                 $errstr,
                 $errstr,
@@ -356,7 +387,7 @@ class SMTP
                 self::DEBUG_CONNECTION
                 self::DEBUG_CONNECTION
             );
             );
             set_error_handler([$this, 'errorHandler']);
             set_error_handler([$this, 'errorHandler']);
-            $this->smtp_conn = fsockopen(
+            $connection = fsockopen(
                 $host,
                 $host,
                 $port,
                 $port,
                 $errno,
                 $errno,
@@ -365,8 +396,9 @@ class SMTP
             );
             );
             restore_error_handler();
             restore_error_handler();
         }
         }
+
         // Verify we connected properly
         // Verify we connected properly
-        if (!is_resource($this->smtp_conn)) {
+        if (!is_resource($connection)) {
             $this->setError(
             $this->setError(
                 'Failed to connect to server',
                 'Failed to connect to server',
                 '',
                 '',
@@ -381,22 +413,19 @@ class SMTP
 
 
             return false;
             return false;
         }
         }
-        $this->edebug('Connection: opened', self::DEBUG_CONNECTION);
+
         // SMTP server can take longer to respond, give longer timeout for first read
         // SMTP server can take longer to respond, give longer timeout for first read
         // Windows does not have support for this timeout function
         // Windows does not have support for this timeout function
         if (strpos(PHP_OS, 'WIN') !== 0) {
         if (strpos(PHP_OS, 'WIN') !== 0) {
-            $max = (int) ini_get('max_execution_time');
-            // Don't bother if unlimited
-            if (0 !== $max && $timeout > $max) {
+            $max = (int)ini_get('max_execution_time');
+            // Don't bother if unlimited, or if set_time_limit is disabled
+            if (0 !== $max && $timeout > $max && strpos(ini_get('disable_functions'), 'set_time_limit') === false) {
                 @set_time_limit($timeout);
                 @set_time_limit($timeout);
             }
             }
-            stream_set_timeout($this->smtp_conn, $timeout, 0);
+            stream_set_timeout($connection, $timeout, 0);
         }
         }
-        // Get any announcement
-        $announce = $this->get_lines();
-        $this->edebug('SERVER -> CLIENT: ' . $announce, self::DEBUG_SERVER);
 
 
-        return true;
+        return $connection;
     }
     }
 
 
     /**
     /**
@@ -511,11 +540,12 @@ class SMTP
                     return false;
                     return false;
                 }
                 }
                 // Send encoded username and password
                 // Send encoded username and password
-                if (!$this->sendCommand(
-                    'User & Password',
-                    base64_encode("\0" . $username . "\0" . $password),
-                    235
-                )
+                if (
+                    !$this->sendCommand(
+                        'User & Password',
+                        base64_encode("\0" . $username . "\0" . $password),
+                        235
+                    )
                 ) {
                 ) {
                     return false;
                     return false;
                 }
                 }
@@ -1058,8 +1088,10 @@ class SMTP
     {
     {
         //If SMTP transcripts are left enabled, or debug output is posted online
         //If SMTP transcripts are left enabled, or debug output is posted online
         //it can leak credentials, so hide credentials in all but lowest level
         //it can leak credentials, so hide credentials in all but lowest level
-        if (self::DEBUG_LOWLEVEL > $this->do_debug &&
-            in_array($command, ['User & Password', 'Username', 'Password'], true)) {
+        if (
+            self::DEBUG_LOWLEVEL > $this->do_debug &&
+            in_array($command, ['User & Password', 'Username', 'Password'], true)
+        ) {
             $this->edebug('CLIENT -> SERVER: [credentials hidden]', self::DEBUG_CLIENT);
             $this->edebug('CLIENT -> SERVER: [credentials hidden]', self::DEBUG_CLIENT);
         } else {
         } else {
             $this->edebug('CLIENT -> SERVER: ' . $data, self::DEBUG_CLIENT);
             $this->edebug('CLIENT -> SERVER: ' . $data, self::DEBUG_CLIENT);
@@ -1166,13 +1198,41 @@ class SMTP
         $selW = null;
         $selW = null;
         while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) {
         while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) {
             //Must pass vars in here as params are by reference
             //Must pass vars in here as params are by reference
-            if (!stream_select($selR, $selW, $selW, $this->Timelimit)) {
+            //solution for signals inspired by https://github.com/symfony/symfony/pull/6540
+            set_error_handler([$this, 'errorHandler']);
+            $n = stream_select($selR, $selW, $selW, $this->Timelimit);
+            restore_error_handler();
+
+            if ($n === false) {
+                $message = $this->getError()['detail'];
+
+                $this->edebug(
+                    'SMTP -> get_lines(): select failed (' . $message . ')',
+                    self::DEBUG_LOWLEVEL
+                );
+
+                //stream_select returns false when the `select` system call is interrupted
+                //by an incoming signal, try the select again
+                if (stripos($message, 'interrupted system call') !== false) {
+                    $this->edebug(
+                        'SMTP -> get_lines(): retrying stream_select',
+                        self::DEBUG_LOWLEVEL
+                    );
+                    $this->setError('');
+                    continue;
+                }
+
+                break;
+            }
+
+            if (!$n) {
                 $this->edebug(
                 $this->edebug(
                     'SMTP -> get_lines(): select timed-out in (' . $this->Timelimit . ' sec)',
                     'SMTP -> get_lines(): select timed-out in (' . $this->Timelimit . ' sec)',
                     self::DEBUG_LOWLEVEL
                     self::DEBUG_LOWLEVEL
                 );
                 );
                 break;
                 break;
             }
             }
+
             //Deliberate noise suppression - errors are handled afterwards
             //Deliberate noise suppression - errors are handled afterwards
             $str = @fgets($this->smtp_conn, self::MAX_REPLY_LENGTH);
             $str = @fgets($this->smtp_conn, self::MAX_REPLY_LENGTH);
             $this->edebug('SMTP INBOUND: "' . trim($str) . '"', self::DEBUG_LOWLEVEL);
             $this->edebug('SMTP INBOUND: "' . trim($str) . '"', self::DEBUG_LOWLEVEL);

部分文件因文件數量過多而無法顯示