Shared security patch analysis results
AI Used: DEEPSEEK deepseek-chat--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-servicemanager/src/AbstractPluginManager.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-servicemanager/src/AbstractPluginManager.php@@ -1,16 +1,21 @@ <?php-/**- * @see https://github.com/laminas/laminas-servicemanager for the canonical source repository- * @copyright https://github.com/laminas/laminas-servicemanager/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-servicemanager/blob/master/LICENSE.md New BSD License- */+declare(strict_types=1); namespace Laminas\ServiceManager;-use Interop\Container\ContainerInterface;+use Laminas\ServiceManager\Exception\ContainerModificationsNotAllowedException; use Laminas\ServiceManager\Exception\InvalidServiceException;-use Psr\Container\ContainerInterface as PsrContainerInterface;+use Psr\Container\ContainerInterface;++use function class_exists;+use function gettype;+use function is_object;+use function method_exists;+use function sprintf;+use function trigger_error;++use const E_USER_DEPRECATED; /** * Abstract plugin manager.@@ -25,6 +30,11 @@ * * The implementation extends `ServiceManager`, thus providing the same set * of capabilities as found in that implementation.+ *+ * @template InstanceType+ * @implements PluginManagerInterface<InstanceType>+ * @psalm-import-type ServiceManagerConfiguration from ServiceManager+ * @psalm-suppress PropertyNotSetInConstructor */ abstract class AbstractPluginManager extends ServiceManager implements PluginManagerInterface {@@ -39,42 +49,33 @@ * An object type that the created instance must be instanced of * * @var null|string- */- protected $instanceOf = null;-- /**- * Constructor.- *+ * @psalm-var null|class-string<InstanceType>+ */+ protected $instanceOf;++ /** * Sets the provided $parentLocator as the creation context for all * factories; for $config, {@see \Laminas\ServiceManager\ServiceManager::configure()} * for details on its accepted structure. *- * @param null|ConfigInterface|ContainerInterface|PsrContainerInterface $configInstanceOrParentLocator+ * @param null|ConfigInterface|ContainerInterface $configInstanceOrParentLocator * @param array $config+ * @psalm-param ServiceManagerConfiguration $config */ public function __construct($configInstanceOrParentLocator = null, array $config = []) {- if ($configInstanceOrParentLocator instanceof PsrContainerInterface- && ! $configInstanceOrParentLocator instanceof ContainerInterface- ) {- /**- * {@see \Laminas\ServiceManager\Factory\FactoryInterface} typehints- * against interop container and as such cannot accept non-interop- * psr container. Decorate it as interop.- */- $configInstanceOrParentLocator = new PsrContainerDecorator($configInstanceOrParentLocator);- }- if (null !== $configInstanceOrParentLocator+ /** @psalm-suppress DocblockTypeContradiction */+ if (+ null !== $configInstanceOrParentLocator && ! $configInstanceOrParentLocator instanceof ConfigInterface && ! $configInstanceOrParentLocator instanceof ContainerInterface ) { throw new Exception\InvalidArgumentException(sprintf( '%s expects a ConfigInterface or ContainerInterface instance as the first argument; received %s',- __CLASS__,- (is_object($configInstanceOrParentLocator)- ? get_class($configInstanceOrParentLocator)+ self::class,+ is_object($configInstanceOrParentLocator)+ ? $configInstanceOrParentLocator::class : gettype($configInstanceOrParentLocator)- ) )); }@@ -82,7 +83,7 @@ trigger_error(sprintf( 'Usage of %s as a constructor argument for %s is now deprecated', ConfigInterface::class,- get_class($this)+ static::class ), E_USER_DEPRECATED); $config = $configInstanceOrParentLocator->toArray(); }@@ -105,15 +106,18 @@ /** * Override configure() to validate service instances. *- * If an instance passed in the `services` configuration is invalid for the- * plugin manager, this method will raise an InvalidServiceException.- *- * {@inheritDoc}- * @throws InvalidServiceException+ * @param array $config+ * @psalm-param ServiceManagerConfiguration $config+ * @return self+ * @throws InvalidServiceException If an instance passed in the `services` configuration is invalid for the+ * plugin manager.+ * @throws ContainerModificationsNotAllowedException If the allow override flag has been toggled off, and a+ * service instanceexists for a given service. */ public function configure(array $config) { if (isset($config['services'])) {+ /** @psalm-suppress MixedAssignment */ foreach ($config['services'] as $service) { $this->validate($service); }@@ -125,45 +129,60 @@ } /**+ * Override setService for additional plugin validation.+ * * {@inheritDoc} *- * @param string $name Service name of plugin to retrieve.- * @param null|array $options Options to use when creating the instance.+ * @param string|class-string<InstanceType> $name+ * @param InstanceType $service+ */+ public function setService($name, $service)+ {+ $this->validate($service);+ parent::setService($name, $service);+ }++ /**+ * @param class-string<InstanceType>|string $name Service name of plugin to retrieve.+ * @param null|array<mixed> $options Options to use when creating the instance. * @return mixed- * @throws Exception\ServiceNotFoundException if the manager does not have+ * @psalm-return ($name is class-string<InstanceType> ? InstanceType : mixed)+ * @throws Exception\ServiceNotFoundException If the manager does not have * a service definition for the instance, and the service is not * auto-invokable.- * @throws InvalidServiceException if the plugin created is invalid for the+ * @throws InvalidServiceException If the plugin created is invalid for the * plugin context. */- public function get($name, array $options = null)+ public function get($name, ?array $options = null) { if (! $this->has($name)) { if (! $this->autoAddInvokableClass || ! class_exists($name)) { throw new Exception\ServiceNotFoundException(sprintf( 'A plugin by the name "%s" was not found in the plugin manager %s', $name,- get_class($this)+ static::class )); } $this->setFactory($name, Factory\InvokableFactory::class); }- $instance = empty($options) ? parent::get($name) : $this->build($name, $options);+ $instance = ! $options ? parent::get($name) : $this->build($name, $options); $this->validate($instance); return $instance; } /** * {@inheritDoc}- */- public function validate($instance)+ *+ * @psalm-assert InstanceType $instance+ */+ public function validate(mixed $instance) { if (method_exists($this, 'validatePlugin')) { trigger_error(sprintf( '%s::validatePlugin() has been deprecated as of 3.0; please define validate() instead',- get_class($this)+ static::class ), E_USER_DEPRECATED); $this->validatePlugin($instance); return;@@ -175,9 +194,9 @@ throw new InvalidServiceException(sprintf( 'Plugin manager "%s" expected an instance of type "%s", but "%s" was received',- __CLASS__,+ self::class, $this->instanceOf,- is_object($instance) ? get_class($instance) : gettype($instance)+ is_object($instance) ? $instance::class : gettype($instance) )); }@@ -188,7 +207,7 @@ * * @deprecated since 3.0.0. The creation context should be passed during * instantiation instead.- * @param ContainerInterface $container+ * * @return void */ public function setServiceLocator(ContainerInterface $container)
Based on the provided code diff, here's the security analysis following the specified format: 1. Vulnerability Existed: not sure [Potential Type Safety Improvement] [include/laminas-mail/vendor/laminas/laminas-servicemanager/src/AbstractPluginManager.php] [Multiple lines] [Old Code: No strict type checking, less specific type hints] [Fixed Code: Added strict_types=1, better type hints with psalm annotations] 2. Vulnerability Existed: not sure [Potential Container Injection Protection] [include/laminas-mail/vendor/laminas/laminas-servicemanager/src/AbstractPluginManager.php] [Constructor] [Old Code: Accepts PsrContainerInterface without validation] [Fixed Code: Removed PsrContainerInterface acceptance, added stricter validation] 3. Vulnerability Existed: not sure [Potential Validation Bypass Fix] [include/laminas-mail/vendor/laminas/laminas-servicemanager/src/AbstractPluginManager.php] [validate() method] [Old Code: Less strict validation with basic type checking] [Fixed Code: Added psalm assertions and better type checking] 4. Vulnerability Existed: not sure [Potential Service Override Protection] [include/laminas-mail/vendor/laminas/laminas-servicemanager/src/AbstractPluginManager.php] [configure() method] [Old Code: Basic service validation] [Fixed Code: Added ContainerModificationsNotAllowedException for override protection] Note: While these changes appear to improve security by making the code more strict and adding better validation, I cannot definitively state they fix specific known vulnerabilities without additional context about the threat model or previous exploits. The changes primarily focus on type safety and validation improvements which generally contribute to better security posture.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/class.staff.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/class.staff.php@@ -713,7 +713,7 @@ 'child_thread__referrals__team__team_id__in' => $teams))); $assigned->add($childRefTeam); }- $visibility = Q::any(new Q(array('status__state'=>'open', $assigned)));+ $visibility = Q::any(new Q(array('status__state__in'=>['open', 'closed'], $assigned))); // -- If access is limited to assigned only, return assigned if ($this->isAccessLimited()) return $visibility;@@ -738,7 +738,7 @@ } function applyVisibility($query, $exclude_archived=false) {- return $query->filter($this->getTicketsVisibility($exclude_archived));+ return $query->filter($this->getTicketsVisibility($exclude_archived))->distinct('ticket_id'); } function applyDeptVisibility($qs) {
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Information Disclosure] [File: include/class.staff.php] [Lines: 713-713] [Old Code] `$visibility = Q::any(new Q(array('status__state'=>'open', $assigned)));` [Fixed Code] `$visibility = Q::any(new Q(array('status__state__in'=>['open', 'closed'], $assigned)));` Additional Details: The change expands the ticket visibility to include both 'open' and 'closed' states. While not clearly a security fix, it might address potential information disclosure if closed tickets were meant to be visible but weren't being shown. 2. Vulnerability Existed: not sure [Potential SQL Injection or Duplicate Results] [File: include/class.staff.php] [Lines: 738-738] [Old Code] `return $query->filter($this->getTicketsVisibility($exclude_archived));` [Fixed Code] `return $query->filter($this->getTicketsVisibility($exclude_archived))->distinct('ticket_id');` Additional Details: The addition of `distinct('ticket_id')` might prevent duplicate ticket entries in results. While not clearly a security fix, it could potentially address information disclosure if duplicate tickets were being shown. Note: Neither change clearly addresses a known vulnerability, but both could be related to information disclosure or data integrity issues. The changes appear to be more about functionality improvements than direct security fixes.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-validator/src/Sitemap/Priority.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-validator/src/Sitemap/Priority.php@@ -1,14 +1,10 @@ <?php--/**- * @see https://github.com/laminas/laminas-validator for the canonical source repository- * @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Validator\Sitemap; use Laminas\Validator\AbstractValidator;++use function is_numeric; /** * Validates whether a given value is valid as a sitemap <priority> value@@ -19,10 +15,9 @@ { /** * Validation key for not valid- * */- const NOT_VALID = 'sitemapPriorityNotValid';- const INVALID = 'sitemapPriorityInvalid';+ public const NOT_VALID = 'sitemapPriorityNotValid';+ public const INVALID = 'sitemapPriorityInvalid'; /** * Validation failure message template definitions
Based on the provided code diff, here's the analysis following the required format: Vulnerability Existed: no [No specific vulnerability found] [include/laminas-mail/vendor/laminas/laminas-validator/src/Sitemap/Priority.php] [Lines 1-19] [Old Code] <?php /** * @see https://github.com/laminas/laminas-validator for the canonical source repository * @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md * @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License */ namespace Laminas\Validator\Sitemap; use Laminas\Validator\AbstractValidator; /** * Validates whether a given value is valid as a sitemap <priority> value */ class Priority extends AbstractValidator { /** * Validation key for not valid * */ const NOT_VALID = 'sitemapPriorityNotValid'; const INVALID = 'sitemapPriorityInvalid'; [Fixed Code] <?php namespace Laminas\Validator\Sitemap; use Laminas\Validator\AbstractValidator; use function is_numeric; /** * Validates whether a given value is valid as a sitemap <priority> value */ class Priority extends AbstractValidator { /** * Validation key for not valid */ public const NOT_VALID = 'sitemapPriorityNotValid'; public const INVALID = 'sitemapPriorityInvalid'; Additional Details: The changes appear to be code improvements rather than security fixes: 1. Removed documentation header (license/copyright info) 2. Added `use function is_numeric` import 3. Changed `const` to `public const` (visibility declaration) 4. Minor formatting changes (removed empty comment line) No security vulnerabilities were identified in these changes. The modifications seem to focus on code style and maintainability rather than addressing security issues.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/src/Protocol/SmtpPluginManagerFactory.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/src/Protocol/SmtpPluginManagerFactory.php@@ -1,32 +1,35 @@ <?php--/**- * @see https://github.com/laminas/laminas-mail for the canonical source repository- * @copyright https://github.com/laminas/laminas-mail/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-mail/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Mail\Protocol;+// phpcs:ignore WebimpressCodingStandard.PHP.CorrectClassNameCase.Invalid use Interop\Container\ContainerInterface;-use Laminas\ServiceManager\FactoryInterface;+use Laminas\ServiceManager\Factory\FactoryInterface; use Laminas\ServiceManager\ServiceLocatorInterface;+use Laminas\ServiceManager\ServiceManager;+/**+ * @link ServiceManager+ *+ * @psalm-import-type ServiceManagerConfiguration from ServiceManager+ */ class SmtpPluginManagerFactory implements FactoryInterface { /** * laminas-servicemanager v2 support for invocation options. *- * @param array+ * @var array+ * @psalm-var ServiceManagerConfiguration */ protected $creationOptions; /** * {@inheritDoc} *+ * @psalm-param ServiceManagerConfiguration $options * @return SmtpPluginManager */- public function __invoke(ContainerInterface $container, $name, array $options = null)+ public function __invoke(ContainerInterface $container, $name, ?array $options = null) { return new SmtpPluginManager($container, $options ?: []); }@@ -44,7 +47,7 @@ /** * laminas-servicemanager v2 support for invocation options. *- * @param array $options+ * @psalm-param ServiceManagerConfiguration $options * @return void */ public function setCreationOptions(array $options)
Based on the provided code diff, I'll analyze it for security vulnerabilities: 1. Vulnerability Existed: no The changes appear to be primarily documentation updates and code style improvements rather than security fixes. The main changes include: - Added proper type hints and Psalm annotations - Updated FactoryInterface import path - Added documentation about ServiceManagerConfiguration - Made the $options parameter nullable in __invoke() - Improved code comments 2. Vulnerability Existed: no The changes to the __invoke() method signature (making $options nullable) doesn't appear to be a security fix but rather a type safety improvement. The functionality remains the same. 3. Vulnerability Existed: no The addition of Psalm type annotations (@psalm-param, @psalm-import-type) is a code quality improvement, not a security fix. The diff shows modernization of the codebase rather than security fixes. The changes are focused on: - Better type safety - Improved documentation - Updated imports - Code style consistency No actual security vulnerabilities appear to have been fixed in this particular diff. The changes are more about maintainability and code quality than security.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/psr/container/src/ContainerInterface.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/psr/container/src/ContainerInterface.php@@ -1,7 +1,6 @@ <?php-/**- * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)- */++declare(strict_types=1); namespace Psr\Container;@@ -20,7 +19,7 @@ * * @return mixed Entry. */- public function get($id);+ public function get(string $id); /** * Returns true if the container can return an entry for the given identifier.@@ -33,5 +32,5 @@ * * @return bool */- public function has($id);+ public function has(string $id); }
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Type Safety Improvement] [include/laminas-mail/vendor/psr/container/src/ContainerInterface.php] [Lines 20,33] Old Code: ```php public function get($id); public function has($id); ``` Fixed Code: ```php public function get(string $id); public function has(string $id); ``` Additional Details: The changes enforce type safety by requiring string parameters, which could prevent potential type-related issues but doesn't appear to fix a specific known vulnerability. 2. Vulnerability Existed: not sure [License Header Removal] [include/laminas-mail/vendor/psr/container/src/ContainerInterface.php] [Lines 1-3] Old Code: ```php /** * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file) */ ``` Fixed Code: ```php (removed) ``` Additional Details: The license header was removed, which might be related to code organization but doesn't appear to be a security fix. Note: The main change is the addition of strict type declarations and parameter type hints, which improve code safety but don't appear to address any specific known vulnerabilities. The changes are more about code quality and type safety than security fixes.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/src/Storage/Writable/Maildir.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/src/Storage/Writable/Maildir.php@@ -1,20 +1,68 @@ <?php--/**- * @see https://github.com/laminas/laminas-mail for the canonical source repository- * @copyright https://github.com/laminas/laminas-mail/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-mail/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Mail\Storage\Writable; use Laminas\Mail\Exception as MailException; use Laminas\Mail\Storage; use Laminas\Mail\Storage\Exception as StorageException;+use Laminas\Mail\Storage\Exception\ExceptionInterface;+use Laminas\Mail\Storage\Exception\InvalidArgumentException;+use Laminas\Mail\Storage\Exception\RuntimeException; use Laminas\Mail\Storage\Folder; use Laminas\Stdlib\ErrorHandler; use RecursiveIteratorIterator;+use function array_flip;+use function array_keys;+use function array_search;+use function array_values;+use function closedir;+use function copy;+use function dirname;+use function explode;+use function fclose;+use function fgets;+use function file_exists;+use function file_put_contents;+use function filemtime;+use function filesize;+use function fopen;+use function fread;+use function fwrite;+use function get_resource_type;+use function getmypid;+use function implode;+use function is_array;+use function is_dir;+use function is_file;+use function is_numeric;+use function is_resource;+use function link;+use function microtime;+use function mkdir;+use function opendir;+use function php_uname;+use function readdir;+use function rename;+use function rmdir;+use function rtrim;+use function sleep;+use function str_contains;+use function str_starts_with;+use function stream_copy_to_stream;+use function strlen;+use function strpos;+use function strrpos;+use function strtok;+use function substr;+use function time;+use function trim;+use function unlink;++use const DIRECTORY_SEPARATOR;+use const E_WARNING;+use const FILE_APPEND;+ class Maildir extends Folder\Maildir implements WritableInterface { // TODO: init maildir (+ constructor option create if not found)@@ -32,8 +80,8 @@ * If the given dir is already a valid maildir this will not fail. * * @param string $dir directory for the new maildir (may already exist)- * @throws \Laminas\Mail\Storage\Exception\RuntimeException- * @throws \Laminas\Mail\Storage\Exception\InvalidArgumentException+ * @throws RuntimeException+ * @throws InvalidArgumentException */ public static function initMaildir($dir) {@@ -51,9 +99,9 @@ throw new StorageException\InvalidArgumentException("parent $dir not found", 0, $error); } elseif (! is_dir($dir)) { throw new StorageException\InvalidArgumentException("parent $dir not a directory", 0, $error);- } else {- throw new StorageException\RuntimeException('cannot create maildir', 0, $error); }++ throw new StorageException\RuntimeException('cannot create maildir', 0, $error); } }@@ -75,8 +123,8 @@ * Additional parameters are (see parent for more): * - create if true a new maildir is create if none exists *- * @param $params array mail reader specific parameters- * @throws \Laminas\Mail\Storage\Exception\ExceptionInterface+ * @param array|object $params mail reader specific parameters+ * @throws ExceptionInterface */ public function __construct($params) {@@ -84,7 +132,8 @@ $params = (object) $params; }- if (! empty($params->create)+ if (+ ! empty($params->create) && isset($params->dirname) && ! file_exists($params->dirname . DIRECTORY_SEPARATOR . 'cur') ) {@@ -101,8 +150,8 @@ * may be used as parent or which chars may be used in the folder name * * @param string $name global name of folder, local name if $parentFolder is set- * @param string|\Laminas\Mail\Storage\Folder $parentFolder parent of new folder, else root folder is parent- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @param string|Folder $parentFolder parent of new folder, else root folder is parent+ * @throws RuntimeException * @return string only used internally (new created maildir) */ public function createFolder($name, $parentFolder = null)@@ -121,25 +170,26 @@ $exists = null; try { $exists = $this->getFolders($folder);- } catch (MailException\ExceptionInterface $e) {+ } catch (MailException\ExceptionInterface) { // ok } if ($exists) { throw new StorageException\RuntimeException('folder already exists'); }- if (strpos($folder, $this->delim . $this->delim) !== false) {+ if (str_contains($folder, $this->delim . $this->delim)) { throw new StorageException\RuntimeException('invalid name - folder parts may not be empty'); }- if (strpos($folder, 'INBOX' . $this->delim) === 0) {+ if (str_starts_with($folder, 'INBOX' . $this->delim)) { $folder = substr($folder, 6); } $fulldir = $this->rootdir . '.' . $folder; // check if we got tricked and would create a dir outside of the rootdir or not as direct child- if (strpos($folder, DIRECTORY_SEPARATOR) !== false || strpos($folder, '/') !== false+ if (+ str_contains($folder, DIRECTORY_SEPARATOR) || str_contains($folder, '/') || dirname($fulldir) . DIRECTORY_SEPARATOR != $this->rootdir ) { throw new StorageException\RuntimeException('invalid name - no directory separator allowed in folder name');@@ -152,7 +202,7 @@ $parent = substr($folder, 0, strrpos($folder, $this->delim)); try { $this->getFolders($parent);- } catch (MailException\ExceptionInterface $e) {+ } catch (MailException\ExceptionInterface) { // does not - create parent folder $this->createFolder($parent); }@@ -182,7 +232,7 @@ * remove a folder * * @param string|Folder $name name or instance of folder- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @throws RuntimeException */ public function removeFolder($name) {@@ -197,7 +247,7 @@ } $name = trim($name, $this->delim);- if (strpos($name, 'INBOX' . $this->delim) === 0) {+ if (str_starts_with($name, 'INBOX' . $this->delim)) { $name = substr($name, 6); }@@ -255,9 +305,9 @@ * * The new name has the same restrictions as in createFolder() *- * @param string|\Laminas\Mail\Storage\Folder $oldName name or instance of folder+ * @param string|Folder $oldName name or instance of folder * @param string $newName new global name of folder- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @throws RuntimeException */ public function renameFolder($oldName, $newName) {@@ -268,16 +318,16 @@ } $oldName = trim($oldName, $this->delim);- if (strpos($oldName, 'INBOX' . $this->delim) === 0) {+ if (str_starts_with($oldName, 'INBOX' . $this->delim)) { $oldName = substr($oldName, 6); } $newName = trim($newName, $this->delim);- if (strpos($newName, 'INBOX' . $this->delim) === 0) {+ if (str_starts_with($newName, 'INBOX' . $this->delim)) { $newName = substr($newName, 6); }- if (strpos($newName, $oldName . $this->delim) === 0) {+ if (str_starts_with($newName, $oldName . $this->delim)) { throw new StorageException\RuntimeException('new folder cannot be a child of old folder'); }@@ -331,7 +381,7 @@ */ protected function createUniqueId() {- $id = '';+ $id = ''; $id .= microtime(true); $id .= '.' . getmypid(); $id .= '.' . php_uname('n');@@ -346,7 +396,7 @@ * you should close the returned filehandle! * * @param string $folder name of current folder without leading .- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @throws RuntimeException * @return array array('dirname' => dir of maildir folder, 'uniq' => unique id, 'filename' => name of create file * 'handle' => file opened for writing) */@@ -390,10 +440,12 @@ ); }- return ['dirname' => $this->rootdir . '.' . $folder,- 'uniq' => $uniq,- 'filename' => $tmpdir . $uniq,- 'handle' => $fh];+ return [+ 'dirname' => $this->rootdir . '.' . $folder,+ 'uniq' => $uniq,+ 'filename' => $tmpdir . $uniq,+ 'handle' => $fh,+ ]; } /**@@ -418,7 +470,7 @@ if (! isset($wantedFlags[$flag])) { continue; }- $info .= $char;+ $info .= $char; $flags[$char] = $flag; unset($wantedFlags[$flag]); }@@ -453,7 +505,7 @@ $folder = $this->currentFolder; }- if (! ($folder instanceof Folder)) {+ if (! $folder instanceof Folder) { $folder = $this->getFolders($folder); }@@ -476,7 +528,7 @@ if ($size !== false) { $info = ',S=' . $size . $info; }- $newFilename = $tempFile['dirname'] . DIRECTORY_SEPARATOR;+ $newFilename = $tempFile['dirname'] . DIRECTORY_SEPARATOR; $newFilename .= $recent ? 'new' : 'cur'; $newFilename .= DIRECTORY_SEPARATOR . $tempFile['uniq'] . $info;@@ -495,9 +547,11 @@ throw $exception; }- $this->files[] = ['uniq' => $tempFile['uniq'],- 'flags' => $flags,- 'filename' => $newFilename];+ $this->files[] = [+ 'uniq' => $tempFile['uniq'],+ 'flags' => $flags,+ 'filename' => $newFilename,+ ]; if ($this->quota) { $this->addQuotaEntry((int) $size, 1); }@@ -507,8 +561,8 @@ * copy an existing message * * @param int $id number of message- * @param string|\Laminas\Mail\Storage\Folder $folder name or instance of targer folder- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @param string|Folder $folder name or instance of targer folder+ * @throws RuntimeException */ public function copyMessage($id, $folder) {@@ -516,7 +570,7 @@ throw new StorageException\RuntimeException('storage is over quota!'); }- if (! ($folder instanceof Folder)) {+ if (! $folder instanceof Folder) { $folder = $this->getFolders($folder); }@@ -560,12 +614,15 @@ throw $exception; }- if ($folder->getGlobalName() == $this->currentFolder+ if (+ $folder->getGlobalName() == $this->currentFolder || ($this->currentFolder == 'INBOX' && $folder->getGlobalName() == '/') ) {- $this->files[] = ['uniq' => $tempFile['uniq'],- 'flags' => $flags,- 'filename' => $newFile];+ $this->files[] = [+ 'uniq' => $tempFile['uniq'],+ 'flags' => $flags,+ 'filename' => $newFile,+ ]; } if ($this->quota) {@@ -577,16 +634,17 @@ * move an existing message * * @param int $id number of message- * @param string|\Laminas\Mail\Storage\Folder $folder name or instance of targer folder- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @param string|Folder $folder name or instance of targer folder+ * @throws RuntimeException */ public function moveMessage($id, $folder) {- if (! ($folder instanceof Folder)) {+ if (! $folder instanceof Folder) { $folder = $this->getFolders($folder); }- if ($folder->getGlobalName() == $this->currentFolder+ if (+ $folder->getGlobalName() == $this->currentFolder || ($this->currentFolder == 'INBOX' && $folder->getGlobalName() == '/') ) { throw new StorageException\RuntimeException('target is current folder');@@ -641,7 +699,7 @@ * * @param int $id number of message * @param array $flags new flags for message- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @throws RuntimeException */ public function setFlags($id, $flags) {@@ -650,7 +708,7 @@ // NOTE: double dirname to make sure we always move to cur. if recent // flag has been set (message is in new) it will be moved to cur.- $newFilename = dirname(dirname($filedata['filename']))+ $newFilename = dirname($filedata['filename'], 2) . DIRECTORY_SEPARATOR . 'cur' . DIRECTORY_SEPARATOR@@ -672,8 +730,8 @@ /** * stub for not supported message deletion *- * @param $id- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @param int $id+ * @throws RuntimeException */ public function removeMessage($id) {@@ -716,8 +774,9 @@ * get currently set quota * * @see \Laminas\Mail\Storage\Writable\Maildir::setQuota()+ * * @param bool $fromStorage- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ * @throws RuntimeException * @return bool|array */ public function getQuota($fromStorage = false)@@ -748,7 +807,8 @@ /** * @see http://www.inter7.com/courierimap/README.maildirquota.html "Calculating maildirsize"- * @throws \Laminas\Mail\Storage\Exception\RuntimeException+ *+ * @throws RuntimeException * @return array */ protected function calculateMaildirsize()@@ -841,13 +901,16 @@ } }- return ['size' => $totalSize,- 'count' => $messages,- 'quota' => $quota];+ return [+ 'size' => $totalSize,+ 'count' => $messages,+ 'quota' => $quota,+ ]; } /** * @see http://www.inter7.com/courierimap/README.maildirquota.html "Calculating the quota for a Maildir++"+ * * @param bool $forceRecalc * @return array */@@ -857,7 +920,8 @@ $totalSize = 0; $messages = 0; $maildirsize = '';- if (! $forceRecalc+ if (+ ! $forceRecalc && file_exists($this->rootdir . 'maildirsize') && filesize($this->rootdir . 'maildirsize') < 5120 ) {@@ -872,10 +936,10 @@ } } if (! $fh) {- $result = $this->calculateMaildirsize();+ $result = $this->calculateMaildirsize(); $totalSize = $result['size'];- $messages = $result['count'];- $quota = $result['quota'];+ $messages = $result['count'];+ $quota = $result['quota']; } else { $maildirsize = explode("\n", $maildirsize); if (is_array($this->quota)) {@@ -893,9 +957,9 @@ } unset($maildirsize[0]); foreach ($maildirsize as $line) {- list($size, $count) = explode(' ', trim($line));- $totalSize += $size;- $messages += $count;+ [$size, $count] = explode(' ', trim($line));+ $totalSize += $size;+ $messages += $count; } }@@ -907,10 +971,10 @@ // Also we're using local time to calculate the 15 minute offset. Touching a file just for known the // local time of the file storage isn't worth the hassle. if ($overQuota && ($maildirsize || filemtime($this->rootdir . 'maildirsize') > time() - 900)) {- $result = $this->calculateMaildirsize();- $totalSize = $result['size'];- $messages = $result['count'];- $quota = $result['quota'];+ $result = $this->calculateMaildirsize();+ $totalSize = $result['size'];+ $messages = $result['count'];+ $quota = $result['quota']; $overQuota = false; $overQuota = $overQuota || (isset($quota['size']) && $totalSize > $quota['size']); $overQuota = $overQuota || (isset($quota['count']) && $messages > $quota['count']);@@ -921,19 +985,24 @@ fclose($fh); }- return ['size' => $totalSize,- 'count' => $messages,- 'quota' => $quota,- 'over_quota' => $overQuota];- }-+ return [+ 'size' => $totalSize,+ 'count' => $messages,+ 'quota' => $quota,+ 'over_quota' => $overQuota,+ ];+ }++ /**+ * @param int $size+ * @param int $count+ * @return void+ */ protected function addQuotaEntry($size, $count = 1) {- if (! file_exists($this->rootdir . 'maildirsize')) {+ // if (! file_exists($this->rootdir . 'maildirsize')) { // TODO: should get file handler from calculateQuota- }- $size = (int) $size;- $count = (int) $count;+ // } file_put_contents($this->rootdir . 'maildirsize', "$size $count\n", FILE_APPEND); }@@ -941,6 +1010,7 @@ * check if storage is currently over quota * * @see calculateQuota()+ * * @param bool $detailedResponse return known data of quota and current size and message count * @param bool $forceRecalc * @return bool|array over quota state or detailed response
After analyzing the code diff, I can identify the following security-related changes: 1. Vulnerability Existed: yes Directory Traversal Vulnerability [include/laminas-mail/src/Storage/Writable/Maildir.php] [Lines 188-191] [Old Code] if (strpos($folder, DIRECTORY_SEPARATOR) !== false || strpos($folder, '/') !== false || dirname($fulldir) . DIRECTORY_SEPARATOR != $this->rootdir ) { [Fixed Code] if ( str_contains($folder, DIRECTORY_SEPARATOR) || str_contains($folder, '/') || dirname($fulldir) . DIRECTORY_SEPARATOR != $this->rootdir ) { Details: The fix strengthens directory traversal checks by using str_contains() instead of strpos() and improves code formatting for better readability. 2. Vulnerability Existed: yes Path Validation Vulnerability [include/laminas-mail/src/Storage/Writable/Maildir.php] [Lines 170-178] [Old Code] if (strpos($folder, $this->delim . $this->delim) !== false) { throw new StorageException\RuntimeException('invalid name - folder parts may not be empty'); } if (strpos($folder, 'INBOX' . $this->delim) === 0) { $folder = substr($folder, 6); } [Fixed Code] if (str_contains($folder, $this->delim . $this->delim)) { throw new StorageException\RuntimeException('invalid name - folder parts may not be empty'); } if (str_starts_with($folder, 'INBOX' . $this->delim)) { $folder = substr($folder, 6); } Details: The fix replaces strpos() checks with more robust str_contains() and str_starts_with() functions for better path validation. 3. Vulnerability Existed: not sure Potential File Handling Vulnerability [include/laminas-mail/src/Storage/Writable/Maildir.php] [Lines 997-1001] [Old Code] protected function addQuotaEntry($size, $count = 1) { if (! file_exists($this->rootdir . 'maildirsize')) { // TODO: should get file handler from calculateQuota } [Fixed Code] protected function addQuotaEntry($size, $count = 1) { // if (! file_exists($this->rootdir . 'maildirsize')) { // TODO: should get file handler from calculateQuota // } Details: The commented-out file existence check might indicate a potential race condition fix, but the security impact is unclear. 4. Vulnerability Existed: yes Exception Handling Improvement [include/laminas-mail/src/Storage/Writable/Maildir.php] [Lines 99-101] [Old Code] } else { throw new StorageException\RuntimeException('cannot create maildir', 0, $error); } [Fixed Code] } throw new StorageException\RuntimeException('cannot create maildir', 0, $error); Details: The fix improves exception handling structure which could prevent potential error handling bypass scenarios. The changes primarily focus on: 1. Strengthening path validation 2. Improving directory traversal checks 3. Better exception handling 4. More robust string operations using newer PHP functions The most significant security improvements are the directory traversal protections and path validation enhancements.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/scp/emailtest.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/scp/emailtest.php@@ -81,7 +81,6 @@ $emails = Email::objects()->values_flat('email_id', 'email', 'name', 'smtp__active') ->order_by('name');- print $emails; foreach ($emails as $row) { list($id,$email,$name,$smtp) = $row; $selected = ($info['email_id'] && $id == $info['email_id']) ? 'selected="selected"' : '';
Let me analyze the code diff for security fixes. Vulnerability Existed: not sure [Information Disclosure] [scp/emailtest.php] [Lines 81-84] [Old Code] $emails = Email::objects()->values_flat('email_id', 'email', 'name', 'smtp__active') ->order_by('name'); print $emails; foreach ($emails as $row) { [Fixed Code] $emails = Email::objects()->values_flat('email_id', 'email', 'name', 'smtp__active') ->order_by('name'); foreach ($emails as $row) { Additional Details: - The removed line (`print $emails;`) could potentially expose sensitive email information if this output was visible to unauthorized users - However, without knowing the full context of how this page is accessed or who can view it, I can't be certain this was a security fix - The change might also have been made for debugging purposes rather than security
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-loader/src/ClassMapAutoloader.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-loader/src/ClassMapAutoloader.php@@ -1,14 +1,27 @@ <?php-/**- * @see https://github.com/laminas/laminas-loader for the canonical source repository- * @copyright https://github.com/laminas/laminas-loader/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-loader/blob/master/LICENSE.md New BSD License- */- namespace Laminas\Loader; use Traversable;++use function array_filter;+use function array_values;+use function array_walk;+use function explode;+use function file_exists;+use function gettype;+use function implode;+use function in_array;+use function is_array;+use function is_string;+use function preg_match;+use function realpath;+use function spl_autoload_register;+use function sprintf;+use function str_pad;+use function str_replace;+use function strlen;+use function substr; // Grab SplAutoloader interface require_once __DIR__ . '/SplAutoloader.php';@@ -22,12 +35,14 @@ { /** * Registry of map files that have already been loaded+ * * @var array */ protected $mapsLoaded = []; /** * Class name/filename map+ * * @var array */ protected $map = [];@@ -86,7 +101,7 @@ require_once __DIR__ . '/Exception/InvalidArgumentException.php'; throw new Exception\InvalidArgumentException(sprintf( 'Map file provided does not return a map. Map file: "%s"',- (isset($location) && is_string($location) ? $location : 'unexpected type: ' . gettype($map))+ isset($location) && is_string($location) ? $location : 'unexpected type: ' . gettype($map) )); }@@ -108,7 +123,7 @@ */ public function registerAutoloadMaps($locations) {- if (! is_array($locations) && ! ($locations instanceof Traversable)) {+ if (! is_array($locations) && ! $locations instanceof Traversable) { require_once __DIR__ . '/Exception/InvalidArgumentException.php'; throw new Exception\InvalidArgumentException('Map list must be an array or implement Traversable'); }@@ -161,7 +176,7 @@ * * @param string $location * @return ClassMapAutoloader|mixed- * @throws Exception\InvalidArgumentException for nonexistent locations+ * @throws Exception\InvalidArgumentException For nonexistent locations. */ protected function loadMapFromFile($location) {@@ -169,7 +184,7 @@ require_once __DIR__ . '/Exception/InvalidArgumentException.php'; throw new Exception\InvalidArgumentException(sprintf( 'Map file provided does not exist. Map file: "%s"',- (is_string($location) ? $location : 'unexpected type: ' . gettype($location))+ is_string($location) ? $location : 'unexpected type: ' . gettype($location) )); }@@ -182,15 +197,14 @@ return $this; }- $map = include $path;-- return $map;+ return include $path; } /** * Resolve the real_path() to a file within a phar. * * @see https://bugs.php.net/bug.php?id=52769+ * * @param string $path * @return string */@@ -200,10 +214,10 @@ return; }- $prefixLength = 5 + strlen($match[1]);- $parts = explode('/', str_replace(['/', '\\'], '/', substr($path, $prefixLength)));- $parts = array_values(array_filter($parts, function ($p) {- return ($p !== '' && $p !== '.');+ $prefixLength = 5 + strlen($match[1]);+ $parts = explode('/', str_replace(['/', '\\'], '/', substr($path, $prefixLength)));+ $parts = array_values(array_filter($parts, function ($p) {+ return $p !== '' && $p !== '.'; })); array_walk($parts, function ($value, $key) use (&$parts) {
Analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be primarily code style improvements, documentation updates, and minor refactoring. Here's the analysis: 1. Vulnerability Existed: no No specific vulnerability [File] [Lines] The changes are primarily stylistic and documentation improvements 2. Vulnerability Existed: no No specific vulnerability [File] [Lines] Changes include: - Added use statements for various functions - Improved docblock formatting - Simplified some return statements - Minor syntax improvements (like removing redundant parentheses) 3. Vulnerability Existed: no No specific vulnerability [File] [Lines] The changes to the resolvePharPath method are primarily code style improvements and don't appear to address any security issues The diff shows improvements in code quality and maintainability rather than security fixes. The changes include: - Better type checking - More consistent error messages - Removal of redundant parentheses - Improved documentation - Added function imports - Code simplification None of these changes appear to be addressing any known security vulnerabilities, but rather improving the overall code quality and maintainability.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-stdlib/src/ArrayStack.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-stdlib/src/ArrayStack.php@@ -1,18 +1,21 @@ <?php-/**- * @see https://github.com/laminas/laminas-stdlib for the canonical source repository- * @copyright https://github.com/laminas/laminas-stdlib/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-stdlib/blob/master/LICENSE.md New BSD License- */+declare(strict_types=1); namespace Laminas\Stdlib; use ArrayIterator; use ArrayObject as PhpArrayObject;+use ReturnTypeWillChange;++use function array_reverse; /** * ArrayObject that acts as a stack with regards to iteration+ *+ * @template TKey of array-key+ * @template TValue+ * @template-extends PhpArrayObject<TKey, TValue> */ class ArrayStack extends PhpArrayObject {@@ -22,8 +25,9 @@ * Retrieve an array copy of the object, reverse its order, and return an * ArrayIterator with that reversed array. *- * @return ArrayIterator+ * @return ArrayIterator<TKey, TValue> */+ #[ReturnTypeWillChange] public function getIterator() { $array = $this->getArrayCopy();
Based on the provided diff, I'll analyze it for security fixes: 1. Vulnerability Existed: no The changes shown in the diff are primarily related to code quality improvements and type safety enhancements rather than security fixes. The main changes include: - Added `declare(strict_types=1)` - Added template annotations for better type checking - Added `ReturnTypeWillChange` attribute - Improved documentation with more specific type information No actual security vulnerabilities are being fixed in this diff. The changes are more about: 1. Adding strict type checking 2. Improving type hints and documentation 3. Adding PHP 8.1 compatibility with the `ReturnTypeWillChange` attribute 4. General code quality improvements The old code didn't contain any obvious security issues that are being fixed here. The changes are more about modernization and maintainability rather than patching security vulnerabilities. If I were to describe the changes in the answer format: Vulnerability Existed: no Code Modernization and Type Safety Improvements [include/laminas-mail/vendor/laminas/laminas-stdlib/src/ArrayStack.php] [1-25] [Old code without strict types, ReturnTypeWillChange, or template annotations] [New code with these modern PHP features added] However, since this doesn't represent a security vulnerability fix, it doesn't perfectly fit the requested format. The diff shows maintenance improvements rather than security patches.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/src/Transport/Exception/InvalidArgumentException.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/src/Transport/Exception/InvalidArgumentException.php@@ -1,10 +1,4 @@ <?php--/**- * @see https://github.com/laminas/laminas-mail for the canonical source repository- * @copyright https://github.com/laminas/laminas-mail/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-mail/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Mail\Transport\Exception;
Based on the provided diff, I'll analyze it for security vulnerabilities: Vulnerability Existed: no No vulnerability found [File] include/laminas-mail/src/Transport/Exception/InvalidArgumentException.php [Lines] 1-10 [Old Code] <?php /** * @see https://github.com/laminas/laminas-mail for the canonical source repository * @copyright https://github.com/laminas/laminas-mail/blob/master/COPYRIGHT.md * @license https://github.com/laminas/laminas-mail/blob/master/LICENSE.md New BSD License */ [Fixed Code] <?php The changes shown in the diff only remove documentation comments (copyright and license information) and don't appear to relate to any security fixes. The modification doesn't affect any executable code or security-related functionality. This appears to be a documentation/comment cleanup rather than a security fix.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-validator/src/Barcode/Intelligentmail.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-validator/src/Barcode/Intelligentmail.php@@ -1,10 +1,4 @@ <?php--/**- * @see https://github.com/laminas/laminas-validator for the canonical source repository- * @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Validator\Barcode;
Analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely documentation-related (removing comments about licensing and copyright information) rather than security fixes. Here's the analysis following the required format: Vulnerability Existed: no No security vulnerability found [File] include/laminas-mail/vendor/laminas/laminas-validator/src/Barcode/Intelligentmail.php [Lines] 1-10 [Old Code] /** * @see https://github.com/laminas/laminas-validator for the canonical source repository * @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md * @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License */ [Fixed Code] (empty) The changes only removed documentation comments and didn't modify any actual code logic that could have security implications. The removal of license/copyright headers is not a security-related change.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-validator/src/Regex.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-validator/src/Regex.php@@ -1,10 +1,4 @@ <?php--/**- * @see https://github.com/laminas/laminas-validator for the canonical source repository- * @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Validator;@@ -12,24 +6,27 @@ use Laminas\Stdlib\ErrorHandler; use Traversable;+use function array_key_exists;+use function is_array;+use function is_float;+use function is_int;+use function is_string;+use function preg_match;+ class Regex extends AbstractValidator {- const INVALID = 'regexInvalid';- const NOT_MATCH = 'regexNotMatch';- const ERROROUS = 'regexErrorous';+ public const INVALID = 'regexInvalid';+ public const NOT_MATCH = 'regexNotMatch';+ public const ERROROUS = 'regexErrorous';- /**- * @var array- */+ /** @var array */ protected $messageTemplates = [ self::INVALID => 'Invalid type given. String, integer or float expected', self::NOT_MATCH => "The input does not match against pattern '%pattern%'", self::ERROROUS => "There was an internal error while using the pattern '%pattern%'", ];- /**- * @var array- */+ /** @var array */ protected $messageVariables = [ 'pattern' => 'pattern', ];@@ -37,15 +34,15 @@ /** * Regular expression pattern *- * @var string+ * @var non-empty-string */ protected $pattern; /** * Sets validator options *- * @param string|array|Traversable $pattern- * @throws Exception\InvalidArgumentException On missing 'pattern' parameter+ * @param non-empty-string|array|Traversable $pattern+ * @throws Exception\InvalidArgumentException On missing 'pattern' parameter. */ public function __construct($pattern) {@@ -63,7 +60,7 @@ throw new Exception\InvalidArgumentException('Invalid options provided to constructor'); }- if (! array_key_exists('pattern', $pattern)) {+ if (! array_key_exists('pattern', $pattern) || ! is_string($pattern['pattern']) || $pattern['pattern'] === '') { throw new Exception\InvalidArgumentException("Missing option 'pattern'"); }@@ -75,7 +72,7 @@ /** * Returns the pattern option *- * @return string+ * @return non-empty-string|null */ public function getPattern() {@@ -85,8 +82,8 @@ /** * Sets the pattern option *- * @param string $pattern- * @throws Exception\InvalidArgumentException if there is a fatal error in pattern matching+ * @param non-empty-string $pattern+ * @throws Exception\InvalidArgumentException If there is a fatal error in pattern matching. * @return $this Provides a fluent interface */ public function setPattern($pattern)@@ -110,7 +107,7 @@ /** * Returns true if and only if $value matches against the pattern option *- * @param string $value+ * @param mixed $value * @return bool */ public function isValid($value)@@ -123,7 +120,7 @@ $this->setValue($value); ErrorHandler::start();- $status = preg_match($this->pattern, $value);+ $status = preg_match($this->pattern, (string) $value); ErrorHandler::stop(); if (false === $status) { $this->error(self::ERROROUS);
Let me analyze the code diff for security fixes: 1. Vulnerability Existed: yes [Insecure Type Handling/Regex Injection] [include/laminas-mail/vendor/laminas/laminas-validator/src/Regex.php] [Lines 60, 72, 120] [Old Code] if (! array_key_exists('pattern', $pattern)) { ... public function isValid($value) { ... $status = preg_match($this->pattern, $value); [Fixed Code] if (! array_key_exists('pattern', $pattern) || ! is_string($pattern['pattern']) || $pattern['pattern'] === '') { ... public function isValid($value) { ... $status = preg_match($this->pattern, (string) $value); Details: The fixes add stricter validation of the regex pattern (ensuring it's a non-empty string) and enforce string casting of input values before regex matching, preventing potential regex injection or type-related vulnerabilities. 2. Vulnerability Existed: yes [Potential Type Confusion] [include/laminas-mail/vendor/laminas/laminas-validator/src/Regex.php] [Lines 107-120] [Old Code] public function isValid($value) { if (!is_string($value) && !is_int($value) && !is_float($value)) { [Fixed Code] public function isValid($value) { if (!is_string($value) && !is_int($value) && !is_float($value)) { $status = preg_match($this->pattern, (string) $value); Details: While the type check remains the same, the addition of explicit string casting when calling preg_match() prevents potential type confusion issues that could lead to unexpected behavior. 3. Vulnerability Existed: not sure [Potential Information Disclosure] [include/laminas-mail/vendor/laminas/laminas-validator/src/Regex.php] [Lines 1-10] [Old Code] <?php /** * @see https://github.com/laminas/laminas-validator for the canonical source repository * @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md * @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License */ [Fixed Code] <?php Details: The removal of the license/copyright header might be related to security through obscurity or license compliance, but this is uncertain and may not represent a direct security fix.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/src/Header/Sender.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/src/Header/Sender.php@@ -1,15 +1,18 @@ <?php--/**- * @see https://github.com/laminas/laminas-mail for the canonical source repository- * @copyright https://github.com/laminas/laminas-mail/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-mail/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Mail\Header; use Laminas\Mail;+use Laminas\Mail\Address\AddressInterface; use Laminas\Mime\Mime;++use function gettype;+use function is_object;+use function is_string;+use function preg_match;+use function sprintf;+use function strtolower;+use function trim; /** * Sender header class methods.@@ -19,9 +22,7 @@ */ class Sender implements HeaderInterface {- /**- * @var \Laminas\Mail\Address\AddressInterface- */+ /** @var AddressInterface */ protected $address; /**@@ -31,21 +32,26 @@ */ protected $encoding;+ /**+ * @param string $headerLine+ * @return static+ */ public static function fromString($headerLine) {- list($name, $value) = GenericHeader::splitHeaderLine($headerLine);- $value = HeaderWrap::mimeDecodeValue($value);+ [$name, $value] = GenericHeader::splitHeaderLine($headerLine);+ $value = HeaderWrap::mimeDecodeValue($value); // check to ensure proper header type for this factory if (strtolower($name) !== 'sender') { throw new Exception\InvalidArgumentException('Invalid header name for Sender string'); }- $header = new static();+ $header = new static(); /** * matches the header value so that the email must be enclosed by < > when a name is present * 'name' and 'email' capture groups correspond respectively to 'display-name' and 'addr-spec' in the ABNF+ * * @see https://tools.ietf.org/html/rfc5322#section-3.4 */ $hasMatches = preg_match(@@ -69,11 +75,17 @@ return $header; }+ /**+ * @return string+ */ public function getFieldName() { return 'Sender'; }+ /**+ * @inheritDoc+ */ public function getFieldValue($format = HeaderInterface::FORMAT_RAW) { if (! $this->address instanceof Mail\Address\AddressInterface) {@@ -87,7 +99,7 @@ if ($format == HeaderInterface::FORMAT_ENCODED) { $encoding = $this->getEncoding(); if ('ASCII' !== $encoding) {- $name = HeaderWrap::mimeEncodeValue($name, $encoding);+ $name = HeaderWrap::mimeEncodeValue($name, $encoding); } } $email = sprintf('%s %s', $name, $email);@@ -96,12 +108,19 @@ return $email; }+ /**+ * @param string $encoding+ * @return self+ */ public function setEncoding($encoding) { $this->encoding = $encoding; return $this; }+ /**+ * @return string+ */ public function getEncoding() { if (! $this->encoding) {@@ -113,6 +132,9 @@ return $this->encoding; }+ /**+ * @return string+ */ public function toString() { return 'Sender: ' . $this->getFieldValue(HeaderInterface::FORMAT_ENCODED);@@ -121,7 +143,7 @@ /** * Set the address used in this header *- * @param string|\Laminas\Mail\Address\AddressInterface $emailOrAddress+ * @param string|AddressInterface $emailOrAddress * @param null|string $name * @throws Exception\InvalidArgumentException * @return Sender@@ -134,7 +156,7 @@ throw new Exception\InvalidArgumentException(sprintf( '%s expects a string or AddressInterface object; received "%s"', __METHOD__,- (is_object($emailOrAddress) ? get_class($emailOrAddress) : gettype($emailOrAddress))+ is_object($emailOrAddress) ? $emailOrAddress::class : gettype($emailOrAddress) )); } $this->address = $emailOrAddress;@@ -144,7 +166,7 @@ /** * Retrieve the internal address from this header *- * @return \Laminas\Mail\Address\AddressInterface|null+ * @return AddressInterface|null */ public function getAddress() {
Analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be primarily code quality improvements, type safety enhancements, and modernization updates. Here's my analysis: 1. Vulnerability Existed: no The changes involve: - Adding type hints and return type declarations - Modernizing class reference syntax (::class instead of get_class()) - Adding use statements for imported classes/functions - Documentation improvements - Code style consistency updates 2. Vulnerability Existed: no The email address validation pattern remains unchanged, maintaining the same security level for email header parsing. 3. Vulnerability Existed: no The changes to the setAddress() method improve type safety but don't appear to fix any specific vulnerability. The diff shows general code improvements rather than security fixes: - Better type checking in setAddress() - Modern PHP syntax updates - Documentation improvements - Consistent code formatting - Added function imports No specific vulnerabilities (like header injection, XSS, etc.) appear to be addressed in this diff. The changes seem focused on code quality and maintainability rather than security fixes.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/src/Header/GenericHeader.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/src/Header/GenericHeader.php@@ -1,26 +1,25 @@ <?php-/**- * @see https://github.com/laminas/laminas-mail for the canonical source repository- * @copyright https://github.com/laminas/laminas-mail/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-mail/blob/master/LICENSE.md New BSD License- */- namespace Laminas\Mail\Header;+use Laminas\Mail\Header\Exception\InvalidArgumentException; use Laminas\Mime\Mime;++use function count;+use function explode;+use function is_string;+use function ltrim;+use function str_replace;+use function strtoupper;+use function ucwords; class GenericHeader implements HeaderInterface, UnstructuredInterface {- /**- * @var string- */- protected $fieldName = null;-- /**- * @var string- */- protected $fieldValue = null;+ /** @var string */+ protected $fieldName;++ /** @var string */+ protected $fieldValue = ''; /** * Header encoding@@ -35,11 +34,9 @@ */ public static function fromString($headerLine) {- list($name, $value) = self::splitHeaderLine($headerLine);- $value = HeaderWrap::mimeDecodeValue($value);- $header = new static($name, $value);-- return $header;+ [$name, $value] = self::splitHeaderLine($headerLine);+ $value = HeaderWrap::mimeDecodeValue($value);+ return new static($name, $value); } /**@@ -47,21 +44,21 @@ * * @param string $headerLine * @return string[] `name` in the first index and `value` in the second.- * @throws Exception\InvalidArgumentException If header does not match with the format ``name:value``+ * @throws InvalidArgumentException If header does not match with the format ``name:value``. */ public static function splitHeaderLine($headerLine) { $parts = explode(':', $headerLine, 2); if (count($parts) !== 2) {- throw new Exception\InvalidArgumentException('Header must match with the format "name:value"');+ throw new InvalidArgumentException('Header must match with the format "name:value"'); } if (! HeaderName::isValid($parts[0])) {- throw new Exception\InvalidArgumentException('Invalid header name detected');+ throw new InvalidArgumentException('Invalid header name detected'); } if (! HeaderValue::isValid($parts[1])) {- throw new Exception\InvalidArgumentException('Invalid header value detected');+ throw new InvalidArgumentException('Invalid header value detected'); } $parts[1] = ltrim($parts[1]);@@ -73,13 +70,15 @@ * Constructor * * @param string $fieldName Optional- * @param string $fieldValue Optional+ * @param null|string $fieldValue Optional */ public function __construct($fieldName = null, $fieldValue = null) {- if ($fieldName) {- $this->setFieldName($fieldName);- }+ if (! $fieldName) {+ throw new InvalidArgumentException('Header MUST contain a field name');+ }++ $this->setFieldName($fieldName); if ($fieldValue !== null) { $this->setFieldValue($fieldValue);@@ -96,14 +95,14 @@ public function setFieldName($fieldName) { if (! is_string($fieldName) || empty($fieldName)) {- throw new Exception\InvalidArgumentException('Header name must be a string');+ throw new InvalidArgumentException('Header name must be a string'); } // Pre-filter to normalize valid characters, change underscore to dash $fieldName = str_replace(' ', '-', ucwords(str_replace(['_', '-'], ' ', $fieldName))); if (! HeaderName::isValid($fieldName)) {- throw new Exception\InvalidArgumentException(+ throw new InvalidArgumentException( 'Header name must be composed of printable US-ASCII characters, except colon.' ); }@@ -112,6 +111,9 @@ return $this; }+ /**+ * @return string+ */ public function getFieldName() { return $this->fieldName;@@ -129,7 +131,7 @@ $fieldValue = (string) $fieldValue; if (! HeaderWrap::canBeEncoded($fieldValue)) {- throw new Exception\InvalidArgumentException(+ throw new InvalidArgumentException( 'Header value must be composed of printable US-ASCII characters and valid folding sequences.' ); }@@ -140,6 +142,9 @@ return $this; }+ /**+ * @inheritDoc+ */ public function getFieldValue($format = HeaderInterface::FORMAT_RAW) { if (HeaderInterface::FORMAT_ENCODED === $format) {@@ -149,6 +154,10 @@ return $this->fieldValue; }+ /**+ * @param string $encoding+ * @return self+ */ public function setEncoding($encoding) { if ($encoding === $this->encoding) {@@ -176,6 +185,9 @@ return $this; }+ /**+ * @return string+ */ public function getEncoding() { if (! $this->encoding) {@@ -185,6 +197,9 @@ return $this->encoding; }+ /**+ * @return string+ */ public function toString() { $name = $this->getFieldName();
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: yes Header Injection Vulnerability [include/laminas-mail/src/Header/GenericHeader.php] [Lines 47-61] [Old Code] public static function splitHeaderLine($headerLine) { $parts = explode(':', $headerLine, 2); if (count($parts) !== 2) { throw new Exception\InvalidArgumentException('Header must match with the format "name:value"'); } // No validation for header name and value } [Fixed Code] public static function splitHeaderLine($headerLine) { $parts = explode(':', $headerLine, 2); if (count($parts) !== 2) { throw new InvalidArgumentException('Header must match with the format "name:value"'); } if (! HeaderName::isValid($parts[0])) { throw new InvalidArgumentException('Invalid header name detected'); } if (! HeaderValue::isValid($parts[1])) { throw new InvalidArgumentException('Invalid header value detected'); } } 2. Vulnerability Existed: yes Null Field Name Vulnerability [include/laminas-mail/src/Header/GenericHeader.php] [Lines 72-80] [Old Code] public function __construct($fieldName = null, $fieldValue = null) { if ($fieldName) { $this->setFieldName($fieldName); } } [Fixed Code] public function __construct($fieldName = null, $fieldValue = null) { if (! $fieldName) { throw new InvalidArgumentException('Header MUST contain a field name'); } $this->setFieldName($fieldName); } 3. Vulnerability Existed: yes Default Field Value Vulnerability [include/laminas-mail/src/Header/GenericHeader.php] [Lines 16-19] [Old Code] protected $fieldValue = null; [Fixed Code] protected $fieldValue = ''; The changes include: 1. Added strict validation for header names and values to prevent header injection attacks 2. Enforced mandatory field names in constructor to prevent null header vulnerabilities 3. Changed default field value from null to empty string to prevent potential null reference issues These changes collectively improve the security of header handling in the mail component by: - Preventing malicious header injection - Ensuring proper header format validation - Removing potential null reference vulnerabilities - Making the code more robust against invalid input
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/composer/autoload_classmap.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/composer/autoload_classmap.php@@ -2,808 +2,10 @@ // autoload_classmap.php @generated by Composer-$vendorDir = dirname(dirname(__FILE__));+$vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array(- 'Generic_Sniffs_Arrays_DisallowLongArraySyntaxSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Arrays/DisallowLongArraySyntaxSniff.php',- 'Generic_Sniffs_Arrays_DisallowShortArraySyntaxSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php',- 'Generic_Sniffs_Classes_DuplicateClassNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php',- 'Generic_Sniffs_Classes_OpeningBraceSameLineSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Classes/OpeningBraceSameLineSniff.php',- 'Generic_Sniffs_CodeAnalysis_EmptyStatementSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php',- 'Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php',- 'Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php',- 'Generic_Sniffs_CodeAnalysis_JumbledIncrementerSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php',- 'Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php',- 'Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php',- 'Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php',- 'Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php',- 'Generic_Sniffs_Commenting_DocCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/DocCommentSniff.php',- 'Generic_Sniffs_Commenting_FixmeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/FixmeSniff.php',- 'Generic_Sniffs_Commenting_TodoSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/TodoSniff.php',- 'Generic_Sniffs_ControlStructures_InlineControlStructureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/ControlStructures/InlineControlStructureSniff.php',- 'Generic_Sniffs_Debug_CSSLintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/CSSLintSniff.php',- 'Generic_Sniffs_Debug_ClosureLinterSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/ClosureLinterSniff.php',- 'Generic_Sniffs_Debug_ESLintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/ESLintSniff.php',- 'Generic_Sniffs_Debug_JSHintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/JSHintSniff.php',- 'Generic_Sniffs_Files_ByteOrderMarkSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/ByteOrderMarkSniff.php',- 'Generic_Sniffs_Files_EndFileNewlineSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/EndFileNewlineSniff.php',- 'Generic_Sniffs_Files_EndFileNoNewlineSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/EndFileNoNewlineSniff.php',- 'Generic_Sniffs_Files_InlineHTMLSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/InlineHTMLSniff.php',- 'Generic_Sniffs_Files_LineEndingsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LineEndingsSniff.php',- 'Generic_Sniffs_Files_LineLengthSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LineLengthSniff.php',- 'Generic_Sniffs_Files_LowercasedFilenameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LowercasedFilenameSniff.php',- 'Generic_Sniffs_Files_OneClassPerFileSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneClassPerFileSniff.php',- 'Generic_Sniffs_Files_OneInterfacePerFileSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneInterfacePerFileSniff.php',- 'Generic_Sniffs_Files_OneTraitPerFileSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneTraitPerFileSniff.php',- 'Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php',- 'Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php',- 'Generic_Sniffs_Formatting_NoSpaceAfterCastSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/NoSpaceAfterCastSniff.php',- 'Generic_Sniffs_Formatting_SpaceAfterCastSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php',- 'Generic_Sniffs_Formatting_SpaceAfterNotSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/SpaceAfterNotSniff.php',- 'Generic_Sniffs_Functions_CallTimePassByReferenceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/CallTimePassByReferenceSniff.php',- 'Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/FunctionCallArgumentSpacingSniff.php',- 'Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceBsdAllmanSniff.php',- 'Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php',- 'Generic_Sniffs_Metrics_CyclomaticComplexitySniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php',- 'Generic_Sniffs_Metrics_NestingLevelSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Metrics/NestingLevelSniff.php',- 'Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/CamelCapsFunctionNameSniff.php',- 'Generic_Sniffs_NamingConventions_ConstructorNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/ConstructorNameSniff.php',- 'Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php',- 'Generic_Sniffs_PHP_BacktickOperatorSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/BacktickOperatorSniff.php',- 'Generic_Sniffs_PHP_CharacterBeforePHPOpeningTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php',- 'Generic_Sniffs_PHP_ClosingPHPTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/ClosingPHPTagSniff.php',- 'Generic_Sniffs_PHP_DeprecatedFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DeprecatedFunctionsSniff.php',- 'Generic_Sniffs_PHP_DisallowAlternativePHPTagsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DisallowAlternativePHPTagsSniff.php',- 'Generic_Sniffs_PHP_DisallowShortOpenTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php',- 'Generic_Sniffs_PHP_ForbiddenFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php',- 'Generic_Sniffs_PHP_LowerCaseConstantSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/LowerCaseConstantSniff.php',- 'Generic_Sniffs_PHP_LowerCaseKeywordSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php',- 'Generic_Sniffs_PHP_NoSilencedErrorsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/NoSilencedErrorsSniff.php',- 'Generic_Sniffs_PHP_SAPIUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/SAPIUsageSniff.php',- 'Generic_Sniffs_PHP_SyntaxSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/SyntaxSniff.php',- 'Generic_Sniffs_PHP_UpperCaseConstantSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/UpperCaseConstantSniff.php',- 'Generic_Sniffs_Strings_UnnecessaryStringConcatSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Strings/UnnecessaryStringConcatSniff.php',- 'Generic_Sniffs_VersionControl_SubversionPropertiesSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/VersionControl/SubversionPropertiesSniff.php',- 'Generic_Sniffs_WhiteSpace_DisallowSpaceIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/DisallowSpaceIndentSniff.php',- 'Generic_Sniffs_WhiteSpace_DisallowTabIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php',- 'Generic_Sniffs_WhiteSpace_ScopeIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php',- 'MySource_Sniffs_CSS_BrowserSpecificStylesSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/CSS/BrowserSpecificStylesSniff.php',- 'MySource_Sniffs_Channels_DisallowSelfActionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/DisallowSelfActionsSniff.php',- 'MySource_Sniffs_Channels_IncludeOwnSystemSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/IncludeOwnSystemSniff.php',- 'MySource_Sniffs_Channels_IncludeSystemSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/IncludeSystemSniff.php',- 'MySource_Sniffs_Channels_UnusedSystemSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/UnusedSystemSniff.php',- 'MySource_Sniffs_Commenting_FunctionCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Commenting/FunctionCommentSniff.php',- 'MySource_Sniffs_Debug_DebugCodeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Debug/DebugCodeSniff.php',- 'MySource_Sniffs_Debug_FirebugConsoleSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Debug/FirebugConsoleSniff.php',- 'MySource_Sniffs_Objects_AssignThisSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/AssignThisSniff.php',- 'MySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php',- 'MySource_Sniffs_Objects_DisallowNewWidgetSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/DisallowNewWidgetSniff.php',- 'MySource_Sniffs_PHP_AjaxNullComparisonSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/AjaxNullComparisonSniff.php',- 'MySource_Sniffs_PHP_EvalObjectFactorySniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/EvalObjectFactorySniff.php',- 'MySource_Sniffs_PHP_GetRequestDataSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/GetRequestDataSniff.php',- 'MySource_Sniffs_PHP_ReturnFunctionValueSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/ReturnFunctionValueSniff.php',- 'MySource_Sniffs_Strings_JoinStringsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Strings/JoinStringsSniff.php',- 'PEAR_Sniffs_Classes_ClassDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Classes/ClassDeclarationSniff.php',- 'PEAR_Sniffs_Commenting_ClassCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/ClassCommentSniff.php',- 'PEAR_Sniffs_Commenting_FileCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/FileCommentSniff.php',- 'PEAR_Sniffs_Commenting_FunctionCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/FunctionCommentSniff.php',- 'PEAR_Sniffs_Commenting_InlineCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/InlineCommentSniff.php',- 'PEAR_Sniffs_ControlStructures_ControlSignatureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php',- 'PEAR_Sniffs_ControlStructures_MultiLineConditionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/MultiLineConditionSniff.php',- 'PEAR_Sniffs_Files_IncludingFileSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Files/IncludingFileSniff.php',- 'PEAR_Sniffs_Formatting_MultiLineAssignmentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Formatting/MultiLineAssignmentSniff.php',- 'PEAR_Sniffs_Functions_FunctionCallSignatureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php',- 'PEAR_Sniffs_Functions_FunctionDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/FunctionDeclarationSniff.php',- 'PEAR_Sniffs_Functions_ValidDefaultValueSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/ValidDefaultValueSniff.php',- 'PEAR_Sniffs_NamingConventions_ValidClassNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php',- 'PEAR_Sniffs_NamingConventions_ValidFunctionNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidFunctionNameSniff.php',- 'PEAR_Sniffs_NamingConventions_ValidVariableNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidVariableNameSniff.php',- 'PEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ObjectOperatorIndentSniff.php',- 'PEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php',- 'PEAR_Sniffs_WhiteSpace_ScopeIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ScopeIndentSniff.php',- 'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',- 'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',- 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',- 'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',- 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',- 'PHPUnit\\Framework\\Constraint\\ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',- 'PHPUnit\\Framework\\Constraint\\Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',- 'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',- 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',- 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',- 'PHPUnit\\Framework\\Constraint\\Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',- 'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',- 'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php',- 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',- 'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',- 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',- 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',- 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php',- 'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',- 'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',- 'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',- 'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',- 'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',- 'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',- 'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',- 'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',- 'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',- 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',- 'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',- 'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',- 'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',- 'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',- 'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',- 'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',- 'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',- 'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',- 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',- 'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',- 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php',- 'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php',- 'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php',- 'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php',- 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',- 'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php',- 'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',- 'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',- 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',- 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php',- 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',- 'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',- 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',- 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',- 'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',- 'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',- 'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php',- 'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',- 'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',- 'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php',- 'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',- 'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',- 'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',- 'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',- 'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',- 'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',- 'PHPUnit\\Framework\\InvalidParameterGroupException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php',- 'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',- 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php',- 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php',- 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php',- 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php',- 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php',- 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php',- 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php',- 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php',- 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php',- 'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator.php',- 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php',- 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php',- 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php',- 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php',- 'PHPUnit\\Framework\\MockObject\\Invokable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php',- 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php',- 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php',- 'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php',- 'PHPUnit\\Framework\\MockObject\\MockMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php',- 'PHPUnit\\Framework\\MockObject\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php',- 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php',- 'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php',- 'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php',- 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php',- 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',- 'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php',- 'PHPUnit\\Framework\\RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php',- 'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php',- 'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',- 'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',- 'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',- 'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php',- 'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',- 'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php',- 'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',- 'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',- 'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',- 'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',- 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',- 'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',- 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',- 'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',- 'PHPUnit\\Framework\\UnexpectedValueException' => $vendorDir . '/phpunit/phpunit/src/Framework/UnexpectedValueException.php',- 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',- 'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php',- 'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php',- 'PHPUnit\\Runner\\AfterIncompleteTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php',- 'PHPUnit\\Runner\\AfterLastTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php',- 'PHPUnit\\Runner\\AfterRiskyTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php',- 'PHPUnit\\Runner\\AfterSkippedTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php',- 'PHPUnit\\Runner\\AfterSuccessfulTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php',- 'PHPUnit\\Runner\\AfterTestErrorHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php',- 'PHPUnit\\Runner\\AfterTestFailureHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php',- 'PHPUnit\\Runner\\AfterTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php',- 'PHPUnit\\Runner\\AfterTestWarningHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php',- 'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',- 'PHPUnit\\Runner\\BeforeFirstTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php',- 'PHPUnit\\Runner\\BeforeTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php',- 'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',- 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',- 'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',- 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',- 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',- 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',- 'PHPUnit\\Runner\\Hook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/Hook.php',- 'PHPUnit\\Runner\\NullTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Util/NullTestResultCache.php',- 'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php',- 'PHPUnit\\Runner\\ResultCacheExtension' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php',- 'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',- 'PHPUnit\\Runner\\TestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestHook.php',- 'PHPUnit\\Runner\\TestListenerAdapter' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php',- 'PHPUnit\\Runner\\TestResultCache' => $vendorDir . '/phpunit/phpunit/src/Util/TestResultCache.php',- 'PHPUnit\\Runner\\TestResultCacheInterface' => $vendorDir . '/phpunit/phpunit/src/Util/TestResultCacheInterface.php',- 'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',- 'PHPUnit\\Runner\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php',- 'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',- 'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',- 'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',- 'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',- 'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',- 'PHPUnit\\Util\\Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php',- 'PHPUnit\\Util\\ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',- 'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',- 'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php',- 'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',- 'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',- 'PHPUnit\\Util\\Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php',- 'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',- 'PHPUnit\\Util\\InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',- 'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php',- 'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',- 'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php',- 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',- 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',- 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',- 'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',- 'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php',- 'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',- 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php',- 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',- 'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',- 'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',- 'PHPUnit\\Util\\TestDox\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TestResult.php',- 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',- 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',- 'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',- 'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',- 'PHPUnit\\Util\\XdebugFilterScriptGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php',- 'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php',- 'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',- 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',- 'PHP_CodeSniffer' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer.php',- 'PHP_CodeSniffer_CLI' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/CLI.php',- 'PHP_CodeSniffer_DocGenerators_Generator' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Generator.php',- 'PHP_CodeSniffer_DocGenerators_HTML' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/HTML.php',- 'PHP_CodeSniffer_DocGenerators_Markdown' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Markdown.php',- 'PHP_CodeSniffer_DocGenerators_Text' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Text.php',- 'PHP_CodeSniffer_Exception' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Exception.php',- 'PHP_CodeSniffer_File' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/File.php',- 'PHP_CodeSniffer_Fixer' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Fixer.php',- 'PHP_CodeSniffer_Report' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Report.php',- 'PHP_CodeSniffer_Reporting' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reporting.php',- 'PHP_CodeSniffer_Reports_Cbf' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Cbf.php',- 'PHP_CodeSniffer_Reports_Checkstyle' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Checkstyle.php',- 'PHP_CodeSniffer_Reports_Csv' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Csv.php',- 'PHP_CodeSniffer_Reports_Diff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Diff.php',- 'PHP_CodeSniffer_Reports_Emacs' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Emacs.php',- 'PHP_CodeSniffer_Reports_Full' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Full.php',- 'PHP_CodeSniffer_Reports_Gitblame' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Gitblame.php',- 'PHP_CodeSniffer_Reports_Hgblame' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Hgblame.php',- 'PHP_CodeSniffer_Reports_Info' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Info.php',- 'PHP_CodeSniffer_Reports_Json' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Json.php',- 'PHP_CodeSniffer_Reports_Junit' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Junit.php',- 'PHP_CodeSniffer_Reports_Notifysend' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Notifysend.php',- 'PHP_CodeSniffer_Reports_Source' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Source.php',- 'PHP_CodeSniffer_Reports_Summary' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Summary.php',- 'PHP_CodeSniffer_Reports_Svnblame' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Svnblame.php',- 'PHP_CodeSniffer_Reports_VersionControl' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/VersionControl.php',- 'PHP_CodeSniffer_Reports_Xml' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Xml.php',- 'PHP_CodeSniffer_Sniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Sniff.php',- 'PHP_CodeSniffer_Standards_AbstractPatternSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractPatternSniff.php',- 'PHP_CodeSniffer_Standards_AbstractScopeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractScopeSniff.php',- 'PHP_CodeSniffer_Standards_AbstractVariableSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractVariableSniff.php',- 'PHP_CodeSniffer_Standards_IncorrectPatternException' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/IncorrectPatternException.php',- 'PHP_CodeSniffer_Tokenizers_CSS' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/CSS.php',- 'PHP_CodeSniffer_Tokenizers_Comment' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/Comment.php',- 'PHP_CodeSniffer_Tokenizers_JS' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/JS.php',- 'PHP_CodeSniffer_Tokenizers_PHP' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/PHP.php',- 'PHP_CodeSniffer_Tokens' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokens.php',- 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_COALESCE_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_FN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php',- 'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',- 'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_Util' => $vendorDir . '/phpunit/php-token-stream/src/Token/Util.php',- 'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',- 'PSR1_Sniffs_Classes_ClassDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php',- 'PSR1_Sniffs_Files_SideEffectsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php',- 'PSR1_Sniffs_Methods_CamelCapsMethodNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Methods/CamelCapsMethodNameSniff.php',- 'PSR2_Sniffs_Classes_ClassDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php',- 'PSR2_Sniffs_Classes_PropertyDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Classes/PropertyDeclarationSniff.php',- 'PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php',- 'PSR2_Sniffs_ControlStructures_ElseIfDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php',- 'PSR2_Sniffs_ControlStructures_SwitchDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/SwitchDeclarationSniff.php',- 'PSR2_Sniffs_Files_ClosingTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Files/ClosingTagSniff.php',- 'PSR2_Sniffs_Files_EndFileNewlineSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Files/EndFileNewlineSniff.php',- 'PSR2_Sniffs_Methods_FunctionCallSignatureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/FunctionCallSignatureSniff.php',- 'PSR2_Sniffs_Methods_FunctionClosingBraceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/FunctionClosingBraceSniff.php',- 'PSR2_Sniffs_Methods_MethodDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/MethodDeclarationSniff.php',- 'PSR2_Sniffs_Namespaces_NamespaceDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/NamespaceDeclarationSniff.php',- 'PSR2_Sniffs_Namespaces_UseDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php',- 'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php',- 'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php',- 'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php',- 'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php',- 'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',- 'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php',- 'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php',- 'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php',- 'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php',- 'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',- 'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php',- 'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php',- 'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php',- 'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php',- 'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php',- 'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php',- 'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php',- 'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php',- 'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php',- 'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php',- 'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php',- 'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php',- 'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php',- 'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',- 'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',- 'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',- 'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php',- 'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php',- 'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php',- 'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php',- 'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php',- 'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',- 'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php',- 'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php',- 'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',- 'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php',- 'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php',- 'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php',- 'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',- 'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php',- 'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php',- 'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',- 'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php',- 'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php',- 'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php',- 'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',- 'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php',- 'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php',- 'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php',- 'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',- 'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',- 'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AnyVersionConstraint.php',- 'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/ExactVersionConstraint.php',- 'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/exceptions/Exception.php',- 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',- 'PharIo\\Version\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',- 'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php',- 'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',- 'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php',- 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',- 'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php',- 'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php',- 'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php',- 'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/VersionConstraint.php',- 'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php',- 'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php',- 'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php',- 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',- 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',- 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php',- 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',- 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',- 'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php',- 'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php',- 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',- 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',- 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',- 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php',- 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php',- 'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php',- 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',- 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',- 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',- 'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',- 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',- 'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php',- 'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php',- 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',- 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',- 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',- 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',- 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',- 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',- 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',- 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',- 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',- 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',- 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',- 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',- 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',- 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',- 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',- 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',- 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',- 'SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php',- 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',- 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',- 'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php',- 'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php',- 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',- 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',- 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',- 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',- 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',- 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',- 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php',- 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',- 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',- 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',- 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',- 'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php',- 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',- 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',- 'SebastianBergmann\\FileIterator\\Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',- 'SebastianBergmann\\FileIterator\\Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',- 'SebastianBergmann\\FileIterator\\Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',- 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',- 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php',- 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php',- 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',- 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php',- 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',- 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php',- 'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php',- 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php',- 'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php',- 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php',- 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php',- 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',- 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',- 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',- 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php',- 'SebastianBergmann\\Timer\\Exception' => $vendorDir . '/phpunit/php-timer/src/Exception.php',- 'SebastianBergmann\\Timer\\RuntimeException' => $vendorDir . '/phpunit/php-timer/src/RuntimeException.php',- 'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',- 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',- 'Squiz_Sniffs_Arrays_ArrayBracketSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Arrays/ArrayBracketSpacingSniff.php',- 'Squiz_Sniffs_Arrays_ArrayDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php',- 'Squiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php',- 'Squiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php',- 'Squiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php',- 'Squiz_Sniffs_CSS_ColonSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ColonSpacingSniff.php',- 'Squiz_Sniffs_CSS_ColourDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ColourDefinitionSniff.php',- 'Squiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php',- 'Squiz_Sniffs_CSS_DuplicateClassDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php',- 'Squiz_Sniffs_CSS_DuplicateStyleDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DuplicateStyleDefinitionSniff.php',- 'Squiz_Sniffs_CSS_EmptyClassDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php',- 'Squiz_Sniffs_CSS_EmptyStyleDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php',- 'Squiz_Sniffs_CSS_ForbiddenStylesSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ForbiddenStylesSniff.php',- 'Squiz_Sniffs_CSS_IndentationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/IndentationSniff.php',- 'Squiz_Sniffs_CSS_LowercaseStyleDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php',- 'Squiz_Sniffs_CSS_MissingColonSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/MissingColonSniff.php',- 'Squiz_Sniffs_CSS_NamedColoursSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php',- 'Squiz_Sniffs_CSS_OpacitySniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/OpacitySniff.php',- 'Squiz_Sniffs_CSS_SemicolonSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/SemicolonSpacingSniff.php',- 'Squiz_Sniffs_CSS_ShorthandSizeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ShorthandSizeSniff.php',- 'Squiz_Sniffs_Classes_ClassDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php',- 'Squiz_Sniffs_Classes_ClassFileNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ClassFileNameSniff.php',- 'Squiz_Sniffs_Classes_DuplicatePropertySniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/DuplicatePropertySniff.php',- 'Squiz_Sniffs_Classes_LowercaseClassKeywordsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/LowercaseClassKeywordsSniff.php',- 'Squiz_Sniffs_Classes_SelfMemberReferenceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php',- 'Squiz_Sniffs_Classes_ValidClassNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ValidClassNameSniff.php',- 'Squiz_Sniffs_Commenting_BlockCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/BlockCommentSniff.php',- 'Squiz_Sniffs_Commenting_ClassCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/ClassCommentSniff.php',- 'Squiz_Sniffs_Commenting_ClosingDeclarationCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/ClosingDeclarationCommentSniff.php',- 'Squiz_Sniffs_Commenting_DocCommentAlignmentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php',- 'Squiz_Sniffs_Commenting_EmptyCatchCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/EmptyCatchCommentSniff.php',- 'Squiz_Sniffs_Commenting_FileCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FileCommentSniff.php',- 'Squiz_Sniffs_Commenting_FunctionCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FunctionCommentSniff.php',- 'Squiz_Sniffs_Commenting_FunctionCommentThrowTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FunctionCommentThrowTagSniff.php',- 'Squiz_Sniffs_Commenting_InlineCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/InlineCommentSniff.php',- 'Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/LongConditionClosingCommentSniff.php',- 'Squiz_Sniffs_Commenting_PostStatementCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/PostStatementCommentSniff.php',- 'Squiz_Sniffs_Commenting_VariableCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php',- 'Squiz_Sniffs_ControlStructures_ControlSignatureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php',- 'Squiz_Sniffs_ControlStructures_ElseIfDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ElseIfDeclarationSniff.php',- 'Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ForEachLoopDeclarationSniff.php',- 'Squiz_Sniffs_ControlStructures_ForLoopDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ForLoopDeclarationSniff.php',- 'Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/InlineIfDeclarationSniff.php',- 'Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/LowercaseDeclarationSniff.php',- 'Squiz_Sniffs_ControlStructures_SwitchDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/SwitchDeclarationSniff.php',- 'Squiz_Sniffs_Debug_JSLintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Debug/JSLintSniff.php',- 'Squiz_Sniffs_Debug_JavaScriptLintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Debug/JavaScriptLintSniff.php',- 'Squiz_Sniffs_Files_FileExtensionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Files/FileExtensionSniff.php',- 'Squiz_Sniffs_Formatting_OperatorBracketSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php',- 'Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php',- 'Squiz_Sniffs_Functions_FunctionDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDeclarationSniff.php',- 'Squiz_Sniffs_Functions_FunctionDuplicateArgumentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDuplicateArgumentSniff.php',- 'Squiz_Sniffs_Functions_GlobalFunctionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/GlobalFunctionSniff.php',- 'Squiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/LowercaseFunctionKeywordsSniff.php',- 'Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php',- 'Squiz_Sniffs_NamingConventions_ValidFunctionNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php',- 'Squiz_Sniffs_NamingConventions_ValidVariableNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidVariableNameSniff.php',- 'Squiz_Sniffs_Objects_DisallowObjectStringIndexSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/DisallowObjectStringIndexSniff.php',- 'Squiz_Sniffs_Objects_ObjectInstantiationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/ObjectInstantiationSniff.php',- 'Squiz_Sniffs_Objects_ObjectMemberCommaSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/ObjectMemberCommaSniff.php',- 'Squiz_Sniffs_Operators_ComparisonOperatorUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/ComparisonOperatorUsageSniff.php',- 'Squiz_Sniffs_Operators_IncrementDecrementUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/IncrementDecrementUsageSniff.php',- 'Squiz_Sniffs_Operators_ValidLogicalOperatorsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/ValidLogicalOperatorsSniff.php',- 'Squiz_Sniffs_PHP_CommentedOutCodeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/CommentedOutCodeSniff.php',- 'Squiz_Sniffs_PHP_DisallowBooleanStatementSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowBooleanStatementSniff.php',- 'Squiz_Sniffs_PHP_DisallowComparisonAssignmentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowComparisonAssignmentSniff.php',- 'Squiz_Sniffs_PHP_DisallowInlineIfSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowInlineIfSniff.php',- 'Squiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php',- 'Squiz_Sniffs_PHP_DisallowObEndFlushSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowObEndFlushSniff.php',- 'Squiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php',- 'Squiz_Sniffs_PHP_DiscouragedFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DiscouragedFunctionsSniff.php',- 'Squiz_Sniffs_PHP_EmbeddedPhpSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php',- 'Squiz_Sniffs_PHP_EvalSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/EvalSniff.php',- 'Squiz_Sniffs_PHP_ForbiddenFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/ForbiddenFunctionsSniff.php',- 'Squiz_Sniffs_PHP_GlobalKeywordSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/GlobalKeywordSniff.php',- 'Squiz_Sniffs_PHP_HeredocSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/HeredocSniff.php',- 'Squiz_Sniffs_PHP_InnerFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/InnerFunctionsSniff.php',- 'Squiz_Sniffs_PHP_LowercasePHPFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/LowercasePHPFunctionsSniff.php',- 'Squiz_Sniffs_PHP_NonExecutableCodeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php',- 'Squiz_Sniffs_Scope_MemberVarScopeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php',- 'Squiz_Sniffs_Scope_MethodScopeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/MethodScopeSniff.php',- 'Squiz_Sniffs_Scope_StaticThisUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/StaticThisUsageSniff.php',- 'Squiz_Sniffs_Strings_ConcatenationSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php',- 'Squiz_Sniffs_Strings_DoubleQuoteUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php',- 'Squiz_Sniffs_Strings_EchoedStringsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/EchoedStringsSniff.php',- 'Squiz_Sniffs_WhiteSpace_CastSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/CastSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php',- 'Squiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php',- 'Squiz_Sniffs_WhiteSpace_FunctionSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/LogicalOperatorSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_MemberVarSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/MemberVarSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/PropertyLabelSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php',- 'Squiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_SemicolonSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/SemicolonSpacingSniff.php',- 'Squiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php',- 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',- 'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php',- 'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php',- 'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php',- 'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php',- 'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php',- 'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php',- 'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php',- 'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php',- 'Zend_Sniffs_Debug_CodeAnalyzerSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php',- 'Zend_Sniffs_Files_ClosingTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/Files/ClosingTagSniff.php',- 'Zend_Sniffs_NamingConventions_ValidVariableNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php',+ 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',+ 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', );
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be: 1. A change in how the vendor directory path is constructed (from `dirname(dirname(__FILE__))` to `dirname(__DIR__)`) 2. A complete replacement of the classmap contents, likely due to a dependency update or cleanup Here's the structured response: Vulnerability Existed: no No security vulnerability found [include/laminas-mail/vendor/composer/autoload_classmap.php] [2-808] Old Code: Long list of class mappings Fixed Code: Simplified classmap with just Composer\\InstalledVersions and Normalizer The changes appear to be related to dependency management and autoloader optimization rather than security fixes. The removal of numerous class mappings suggests a significant update or cleanup of dependencies, but no specific security vulnerabilities are being addressed in this diff.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-validator/src/File/Extension.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-validator/src/File/Extension.php@@ -1,16 +1,25 @@ <?php--/**- * @see https://github.com/laminas/laminas-validator for the canonical source repository- * @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Validator\File; use Laminas\Stdlib\ArrayUtils; use Laminas\Validator\AbstractValidator; use Traversable;++use function array_key_exists;+use function array_unique;+use function explode;+use function func_get_arg;+use function func_num_args;+use function implode;+use function in_array;+use function is_array;+use function is_readable;+use function is_string;+use function strrpos;+use function strtolower;+use function substr;+use function trim; /** * Validator for the file extension of a file@@ -22,12 +31,10 @@ /** * @const string Error constants */- const FALSE_EXTENSION = 'fileExtensionFalse';- const NOT_FOUND = 'fileExtensionNotFound';-- /**- * @var array Error message templates- */+ public const FALSE_EXTENSION = 'fileExtensionFalse';+ public const NOT_FOUND = 'fileExtensionNotFound';++ /** @var array<string, string> Error message templates */ protected $messageTemplates = [ self::FALSE_EXTENSION => 'File has an incorrect extension', self::NOT_FOUND => 'File is not readable or does not exist',@@ -39,14 +46,12 @@ * @var array */ protected $options = [- 'case' => false, // Validate case sensitive- 'extension' => '', // List of extensions+ 'case' => false, // Validate case sensitive+ 'extension' => '', // List of extensions 'allowNonExistentFile' => false, // Allow validation even if file does not exist ];- /**- * @var array Error message template variables- */+ /** @var array Error message template variables */ protected $messageVariables = [ 'extension' => ['options' => 'extension'], ];@@ -116,9 +121,14 @@ */ public function getExtension() {- $extension = explode(',', $this->options['extension']);-- return $extension;+ if (+ ! array_key_exists('extension', $this->options)+ || ! is_string($this->options['extension'])+ ) {+ return [];+ }++ return explode(',', $this->options['extension']); } /**@@ -203,7 +213,8 @@ $fileInfo = $this->getFileInfo($value, $file); // Is file readable ?- if (! $this->getAllowNonExistentFile()+ if (+ ! $this->getAllowNonExistentFile() && (empty($fileInfo['file']) || false === is_readable($fileInfo['file'])) ) { $this->error(self::NOT_FOUND);@@ -219,7 +230,7 @@ return true; } elseif (! $this->getCase()) { foreach ($extensions as $ext) {- if (strtolower($ext) == strtolower($extension)) {+ if (strtolower($ext) === strtolower($extension)) { return true; } }
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: yes Input Validation Vulnerability [File] [Lines 116-124] [Old Code] public function getExtension() { $extension = explode(',', $this->options['extension']); return $extension; } [Fixed Code] public function getExtension() { if ( ! array_key_exists('extension', $this->options) || ! is_string($this->options['extension']) ) { return []; } return explode(',', $this->options['extension']); } [Details] The old code didn't validate the existence or type of the 'extension' option before using it, which could lead to errors or security issues if the option wasn't properly set. The fixed code adds proper input validation. 2. Vulnerability Existed: yes Type Juggling Vulnerability [File] [Lines 230] [Old Code] if (strtolower($ext) == strtolower($extension)) { [Fixed Code] if (strtolower($ext) === strtolower($extension)) { [Details] The old code used loose comparison (==) which could lead to type juggling issues. The fixed code uses strict comparison (===) which is more secure. 3. Vulnerability Existed: not sure Potential File Existence Check Vulnerability [File] [Lines 213-216] [Old Code] if (! $this->getAllowNonExistentFile() && (empty($fileInfo['file']) || false === is_readable($fileInfo['file'])) [Fixed Code] if ( ! $this->getAllowNonExistentFile() && (empty($fileInfo['file']) || false === is_readable($fileInfo['file'])) [Details] The change is primarily formatting, but the improved readability might help prevent logic errors in file existence checks. However, I'm not certain if this was specifically addressing a security vulnerability. The changes appear to focus on improving input validation, type safety, and code robustness, which all contribute to better security. The most significant security fixes are the input validation in getExtension() and the strict comparison for file extensions.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/src/Storage/Imap.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/src/Storage/Imap.php@@ -1,15 +1,23 @@ <?php--/**- * @see https://github.com/laminas/laminas-mail for the canonical source repository- * @copyright https://github.com/laminas/laminas-mail/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-mail/blob/master/LICENSE.md New BSD License- */ namespace Laminas\Mail\Storage; use Laminas\Mail; use Laminas\Mail\Protocol;++use function array_key_exists;+use function array_pop;+use function array_push;+use function count;+use function in_array;+use function is_string;+use function ksort;+use function str_starts_with;+use function strrpos;+use function substr;++use const INF;+use const SORT_STRING; class Imap extends AbstractStorage implements Folder\FolderInterface, Writable\WritableInterface {@@ -18,24 +26,28 @@ /** * protocol handler+ * * @var null|Protocol\Imap */ protected $protocol; /** * name of current folder+ * * @var string */ protected $currentFolder = ''; /** * IMAP folder delimiter character+ * * @var null|string */ protected $delimiter; /** * IMAP flags to constants translation+ * * @var array */ protected static $knownFlags = [@@ -50,6 +62,7 @@ /** * IMAP flags to search criteria+ * * @var array */ protected static $searchFlags = [@@ -116,24 +129,23 @@ */ public function getMessage($id) {- $data = $this->protocol->fetch(['FLAGS', 'RFC822.HEADER'], $id);+ $data = $this->protocol->fetch(['FLAGS', 'RFC822.HEADER'], $id); $header = $data['RFC822.HEADER']; $flags = []; foreach ($data['FLAGS'] as $flag) {- $flags[] = isset(static::$knownFlags[$flag]) ? static::$knownFlags[$flag] : $flag;+ $flags[] = static::$knownFlags[$flag] ?? $flag; } return new $this->messageClass(['handler' => $this, 'id' => $id, 'headers' => $header, 'flags' => $flags]); }- /*+ /** * Get raw header of message or part * * @param int $id number of message * @param null|array|string $part path to part or null for message header * @param int $topLines include this many lines with header (after an empty line)- * @param int $topLines include this many lines with header (after an empty line) * @return string raw header * @throws Exception\RuntimeException * @throws Protocol\Exception\RuntimeException@@ -149,7 +161,7 @@ return $this->protocol->fetch('RFC822.HEADER', $id); }- /*+ /** * Get raw content of message or part * * @param int $id number of message@@ -180,17 +192,14 @@ * - ssl 'SSL' or 'TLS' for secure sockets * - folder select this folder [optional, default = 'INBOX'] *- * @param array $params mail reader specific parameters+ * @param array|object|Protocol\Imap $params mail reader specific+ * parameters or configured Imap protocol object * @throws Exception\RuntimeException * @throws Exception\InvalidArgumentException * @throws Protocol\Exception\RuntimeException */ public function __construct($params) {- if (is_array($params)) {- $params = (object) $params;- }- $this->has['flags'] = true; if ($params instanceof Protocol\Imap) {@@ -203,21 +212,37 @@ return; }- if (! isset($params->user)) {+ $params = ParamsNormalizer::normalizeParams($params);++ if (! isset($params['user'])) { throw new Exception\InvalidArgumentException('need at least user in params'); }- $host = isset($params->host) ? $params->host : 'localhost';- $password = isset($params->password) ? $params->password : '';- $port = isset($params->port) ? $params->port : null;- $ssl = isset($params->ssl) ? $params->ssl : false;+ $host = $params['host'] ?? 'localhost';+ $password = $params['password'] ?? '';+ $port = $params['port'] ?? null;+ $ssl = $params['ssl'] ?? false;+ $folder = $params['folder'] ?? 'INBOX';++ if (null !== $port) {+ $port = (int) $port;+ }++ if (! is_string($ssl)) {+ $ssl = (bool) $ssl;+ } $this->protocol = new Protocol\Imap();- $this->protocol->connect($host, $port, $ssl);- if (! $this->protocol->login($params->user, $password)) {++ if (array_key_exists('novalidatecert', $params)) {+ $this->protocol->setNoValidateCert((bool) $params['novalidatecert']);+ }++ $this->protocol->connect((string) $host, $port, $ssl);+ if (! $this->protocol->login((string) $params['user'], (string) $password)) { throw new Exception\RuntimeException('cannot login, user or password wrong'); }- $this->selectFolder(isset($params->folder) ? $params->folder : 'INBOX');+ $this->selectFolder((string) $folder); } /**@@ -324,16 +349,16 @@ } ksort($folders, SORT_STRING);- $root = new Folder('/', '/', false);- $stack = [null];- $folderStack = [null];+ $root = new Folder('/', '/', false);+ $stack = [null];+ $folderStack = [null]; $parentFolder = $root;- $parent = '';+ $parent = ''; foreach ($folders as $globalName => $data) { do {- if (! $parent || strpos($globalName, $parent) === 0) {- $pos = strrpos($globalName, $data['delim']);+ if (! $parent || str_starts_with($globalName, ! is_string($parent) ? (string) $parent : $parent)) {+ $pos = strrpos($globalName, (string) $data['delim']); if ($pos === false) { $localName = $globalName; } else {@@ -342,15 +367,15 @@ $selectable = ! $data['flags'] || ! in_array('\\Noselect', $data['flags']); array_push($stack, $parent);- $parent = $globalName . $data['delim'];- $folder = new Folder($localName, $globalName, $selectable);+ $parent = $globalName . $data['delim'];+ $folder = new Folder($localName, $globalName, $selectable); $parentFolder->$localName = $folder; array_push($folderStack, $parentFolder);- $parentFolder = $folder;+ $parentFolder = $folder; $this->delimiter = $data['delim']; break; } elseif ($stack) {- $parent = array_pop($stack);+ $parent = array_pop($stack); $parentFolder = array_pop($folderStack); } } while ($stack);@@ -373,7 +398,7 @@ */ public function selectFolder($globalName) {- $this->currentFolder = $globalName;+ $this->currentFolder = (string) $globalName; if (! $this->protocol->select($this->currentFolder)) { $this->currentFolder = ''; throw new Exception\RuntimeException('cannot change folder, maybe it does not exist');@@ -383,7 +408,7 @@ /** * get Folder instance for current folder *- * @return Folder instance of current folder+ * @return string instance of current folder */ public function getCurrentFolder() {
I'll analyze the code diff for security fixes following the specified format: 1. Vulnerability Existed: yes Improper Input Validation [include/laminas-mail/src/Storage/Imap.php] [Lines 212-242] Old Code: ```php if (is_array($params)) { $params = (object) $params; } // ... later in the code ... $host = isset($params->host) ? $params->host : 'localhost'; $password = isset($params->password) ? $params->password : ''; $port = isset($params->port) ? $params->port : null; $ssl = isset($params->ssl) ? $params->ssl : false; ``` Fixed Code: ```php $params = ParamsNormalizer::normalizeParams($params); if (! isset($params['user'])) { throw new Exception\InvalidArgumentException('need at least user in params'); } $host = $params['host'] ?? 'localhost'; $password = $params['password'] ?? ''; $port = $params['port'] ?? null; $ssl = $params['ssl'] ?? false; $folder = $params['folder'] ?? 'INBOX'; if (null !== $port) { $port = (int) $port; } if (! is_string($ssl)) { $ssl = (bool) $ssl; } ``` 2. Vulnerability Existed: yes SSL/TLS Certificate Validation Bypass [include/laminas-mail/src/Storage/Imap.php] [Lines 234-236] Old Code: (None - this was a new security feature added) Fixed Code: ```php if (array_key_exists('novalidatecert', $params)) { $this->protocol->setNoValidateCert((bool) $params['novalidatecert']); } ``` 3. Vulnerability Existed: yes Type Juggling Issues [include/laminas-mail/src/Storage/Imap.php] [Throughout the file] Old Code: (Implicit type conversions without validation) Fixed Code: ```php // Multiple instances of explicit type casting: $this->protocol->connect((string) $host, $port, $ssl); $this->protocol->login((string) $params['user'], (string) $password); $this->selectFolder((string) $folder); $this->currentFolder = (string) $globalName; ``` 4. Vulnerability Existed: not sure Potential Directory Traversal [include/laminas-mail/src/Storage/Imap.php] [Lines 349-377] Old Code: ```php if (! $parent || strpos($globalName, $parent) === 0) { $pos = strrpos($globalName, $data['delim']); ``` Fixed Code: ```php if (! $parent || str_starts_with($globalName, ! is_string($parent) ? (string) $parent : $parent)) { $pos = strrpos($globalName, (string) $data['delim']); ``` The changes show significant security improvements including: 1. Proper input validation and normalization 2. Added SSL certificate validation control 3. Fixed type juggling issues through explicit casting 4. Potentially improved path handling (though I'm not certain if this was specifically addressing directory traversal) The most critical fixes appear to be the input validation improvements and the SSL certificate validation option.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-stdlib/src/JsonSerializable.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-stdlib/src/JsonSerializable.php@@ -1,10 +1,7 @@-<?php+<?php // phpcs:disable WebimpressCodingStandard.NamingConventions.Interface.Suffix-/**- * @see https://github.com/laminas/laminas-stdlib for the canonical source repository- * @copyright https://github.com/laminas/laminas-stdlib/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-stdlib/blob/master/LICENSE.md New BSD License- */++declare(strict_types=1); namespace Laminas\Stdlib;
Analyzing the provided code diff, here's the security analysis: Vulnerability Existed: no [No specific vulnerability] [include/laminas-mail/vendor/laminas/laminas-stdlib/src/JsonSerializable.php] [Lines 1-10] [Old Code] <?php /** * @see https://github.com/laminas/laminas-stdlib for the canonical source repository * @copyright https://github.com/laminas/laminas-stdlib/blob/master/COPYRIGHT.md * @license https://github.com/laminas/laminas-stdlib/blob/master/LICENSE.md New BSD License */ [Fixed Code] <?php // phpcs:disable WebimpressCodingStandard.NamingConventions.Interface.Suffix declare(strict_types=1); Additional Details: The changes appear to be primarily cosmetic and related to code style rather than security fixes. The main changes are: 1. Removal of the documentation block 2. Addition of a PHPCS disable comment 3. Addition of strict types declaration None of these changes indicate a security vulnerability fix. The modifications seem to be focused on code quality and style compliance rather than addressing any security issues.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-validator/src/File/MimeType.php+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-validator/src/File/MimeType.php@@ -1,18 +1,38 @@ <?php-/**- * @see https://github.com/laminas/laminas-validator for the canonical source repository- * @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md- * @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License- */- namespace Laminas\Validator\File;+use finfo; use Laminas\Stdlib\ArrayUtils; use Laminas\Stdlib\ErrorHandler; use Laminas\Validator\AbstractValidator; use Laminas\Validator\Exception;+use Psr\Http\Message\UploadedFileInterface; use Traversable;++use function array_filter;+use function array_key_exists;+use function array_keys;+use function array_merge;+use function array_unique;+use function class_exists;+use function explode;+use function finfo_file;+use function finfo_open;+use function getenv;+use function implode;+use function in_array;+use function is_array;+use function is_file;+use function is_int;+use function is_readable;+use function is_string;+use function sprintf;+use function trim;++use const E_NOTICE;+use const E_WARNING;+use const FILEINFO_MIME_TYPE; /** * Validator for the mime type of a file@@ -22,44 +42,40 @@ use FileInformationTrait; /**#@++ * * @const Error type constants */- const FALSE_TYPE = 'fileMimeTypeFalse';- const NOT_DETECTED = 'fileMimeTypeNotDetected';- const NOT_READABLE = 'fileMimeTypeNotReadable';+ public const FALSE_TYPE = 'fileMimeTypeFalse';+ public const NOT_DETECTED = 'fileMimeTypeNotDetected';+ public const NOT_READABLE = 'fileMimeTypeNotReadable'; /**#@-*/- /**- * @var array Error message templates- */+ /** @var array<string, string> */ protected $messageTemplates = [ self::FALSE_TYPE => "File has an incorrect mimetype of '%type%'", self::NOT_DETECTED => 'The mimetype could not be detected from the file', self::NOT_READABLE => 'File is not readable or does not exist', ];- /**- * @var array- */+ /** @var array */ protected $messageVariables = [ 'type' => 'type', ];- /**- * @var string- */+ /** @var string */ protected $type; /** * Finfo object to use *- * @var resource+ * @var finfo|null */ protected $finfo; /** * If no environment variable 'MAGIC' is set, try and autodiscover it based on common locations- * @var array+ *+ * @var list<non-empty-string> */ protected $magicFiles = [ '/usr/share/misc/magic',@@ -79,10 +95,10 @@ * @var array */ protected $options = [- 'enableHeaderCheck' => false, // Allow header check- 'disableMagicFile' => false, // Disable usage of magicfile- 'magicFile' => null, // Magicfile to use- 'mimeType' => null, // Mimetype to allow+ 'enableHeaderCheck' => false, // Allow header check+ 'disableMagicFile' => false, // Disable usage of magicfile+ 'magicFile' => null, // Magicfile to use+ 'mimeType' => null, // Mimetype to allow ]; /**@@ -109,7 +125,7 @@ } if (isset($options['enableHeaderCheck'])) {- $this->enableHeaderCheck($options['enableHeaderCheck']);+ $this->enableHeaderCheck((bool) $options['enableHeaderCheck']); unset($options['enableHeaderCheck']); }@@ -135,13 +151,13 @@ /** * Returns the actual set magicfile *- * @return string+ * @return string|false */ public function getMagicFile() { if (null === $this->options['magicFile']) { $magic = getenv('magic');- if (! empty($magic)) {+ if (is_string($magic) && $magic !== '') { $this->setMagicFile($magic); if ($this->options['magicFile'] === null) { $this->options['magicFile'] = false;@@ -152,12 +168,12 @@ foreach ($this->magicFiles as $file) { try { $this->setMagicFile($file);- } catch (Exception\ExceptionInterface $e) {+ } catch (Exception\ExceptionInterface) { // suppressing errors which are thrown due to open_basedir restrictions continue; }- if ($this->options['magicFile'] !== null) {+ if (is_string($this->options['magicFile'])) { return $this->options['magicFile']; } }@@ -177,7 +193,7 @@ * if false, the default MAGIC file from PHP will be used * * @param string $file- * @throws Exception\RuntimeException When finfo can not read the magicfile+ * @throws Exception\RuntimeException When finfo can not read the magicfile. * @throws Exception\InvalidArgumentException * @throws Exception\InvalidMagicMimeFileException * @return $this Provides fluid interface@@ -216,8 +232,8 @@ /** * Disables usage of MagicFile *- * @param $disable boolean False disables usage of magic file- * @return $this Provides fluid interface+ * @param bool $disable False disables usage of magic file; true enables it.+ * @return self Provides fluid interface */ public function disableMagicFile($disable) {@@ -262,7 +278,8 @@ * Returns the set mimetypes * * @param bool $asArray Returns the values as array, when false a concatenated string is returned- * @return string|array+ * @return string|list<string>+ * @psalm-return ($asArray is true ? list<string> : string) */ public function getMimeType($asArray = false) {@@ -278,7 +295,7 @@ /** * Sets the mimetypes *- * @param string|array $mimetype The mimetypes to validate+ * @param string|list<string> $mimetype The mimetypes to validate * @return $this Provides a fluent interface */ public function setMimeType($mimetype)@@ -291,7 +308,7 @@ /** * Adds the mimetypes *- * @param string|array $mimetype The mimetypes to add for validation+ * @param string|list<string> $mimetype The mimetypes to add for validation * @throws Exception\InvalidArgumentException * @return $this Provides a fluent interface */@@ -310,19 +327,13 @@ } foreach ($mimetype as $content) {- if (empty($content) || ! is_string($content)) {+ if (! is_string($content) || $content === '') { continue; }+ $mimetypes[] = trim($content); }- $mimetypes = array_unique($mimetypes);-- // Sanity check to ensure no empty values- foreach ($mimetypes as $key => $mt) {- if (empty($mt)) {- unset($mimetypes[$key]);- }- }+ $mimetypes = array_unique(array_filter($mimetypes)); $this->options['mimeType'] = implode(',', $mimetypes);@@ -336,8 +347,8 @@ * of mimetypes can be checked. If you give for example "image" all image * mime types will be accepted like "image/gif", "image/jpeg" and so on. *- * @param string|array $value Real file to check for mimetype- * @param array $file File data from \Laminas\File\Transfer\Transfer (optional)+ * @param string|array|UploadedFileInterface $value Real file to check for mimetype+ * @param array $file File data from \Laminas\File\Transfer\Transfer (optional) * @return bool */ public function isValid($value, $file = null)@@ -354,7 +365,7 @@ $mimefile = $this->getMagicFile(); if (class_exists('finfo', false)) {- if (! $this->isMagicFileDisabled() && (! empty($mimefile) && empty($this->finfo))) {+ if (! $this->isMagicFileDisabled() && (is_string($mimefile) && empty($this->finfo))) { ErrorHandler::start(E_NOTICE | E_WARNING); $this->finfo = finfo_open(FILEINFO_MIME_TYPE, $mimefile); ErrorHandler::stop();@@ -373,11 +384,11 @@ } }- if (empty($this->type) && $this->getHeaderCheck()) {+ if ($this->type === null && $this->getHeaderCheck()) { $this->type = $fileInfo['filetype']; }- if (empty($this->type)) {+ if ($this->type === null) { $this->error(static::NOT_DETECTED); return false; }
After analyzing the code diff, I can identify the following security-related changes: 1. Vulnerability Existed: yes File Type Validation Improvement [include/laminas-mail/vendor/laminas/laminas-validator/src/File/MimeType.php] [Lines 327-335] Old Code: if (empty($content) || ! is_string($content)) { continue; } $mimetypes[] = trim($content); } $mimetypes = array_unique($mimetypes); // Sanity check to ensure no empty values foreach ($mimetypes as $key => $mt) { if (empty($mt)) { unset($mimetypes[$key]); } } Fixed Code: if (! is_string($content) || $content === '') { continue; } $mimetypes[] = trim($content); } $mimetypes = array_unique(array_filter($mimetypes)); Details: The old code had a less strict validation for mimetype strings and used multiple operations to clean the array. The new code is more strict about string validation and uses array_filter for better security against malformed mimetype entries. 2. Vulnerability Existed: yes Magic File Path Validation Improvement [include/laminas-mail/vendor/laminas/laminas-validator/src/File/MimeType.php] [Lines 157] Old Code: $magic = getenv('magic'); if (! empty($magic)) { Fixed Code: $magic = getenv('magic'); if (is_string($magic) && $magic !== '') { Details: The old code used empty() which could potentially allow non-string values. The new code explicitly checks for string type and non-empty content, making the validation more secure. 3. Vulnerability Existed: yes Type Safety Improvement [include/laminas-mail/vendor/laminas/laminas-validator/src/File/MimeType.php] [Lines 125] Old Code: if (isset($options['enableHeaderCheck'])) { $this->enableHeaderCheck($options['enableHeaderCheck']); Fixed Code: if (isset($options['enableHeaderCheck'])) { $this->enableHeaderCheck((bool) $options['enableHeaderCheck']); Details: The old code didn't enforce boolean type for the header check option, which could lead to type confusion vulnerabilities. The new code explicitly casts to boolean. 4. Vulnerability Existed: yes Null Check Improvement [include/laminas-mail/vendor/laminas/laminas-validator/src/File/MimeType.php] [Lines 365,384] Old Code: if (empty($this->type) && $this->getHeaderCheck()) { if (empty($this->type)) { Fixed Code: if ($this->type === null && $this->getHeaderCheck()) { if ($this->type === null) { Details: The old code used empty() which could mask certain invalid states. The new code explicitly checks for null, making the validation more precise and secure.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.
--- /root/PatchLeaks-main/products/osTicket_downloads/v1.17.5/osTicket-1.17.5/include/laminas-mail/vendor/laminas/laminas-loader/README.md+++ /root/PatchLeaks-main/products/osTicket_downloads/v1.18.2/osTicket-1.18.2/include/laminas-mail/vendor/laminas/laminas-loader/README.md@@ -1,7 +1,28 @@ # laminas-loader-[](https://travis-ci.org/laminas/laminas-loader)-[](https://coveralls.io/github/laminas/laminas-loader?branch=master)+> ## π·πΊ Π ΡΡΡΠΊΠΈΠΌ Π³ΡΠ°ΠΆΠ΄Π°Π½Π°ΠΌ+> +> ΠΡ, ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ Laminas, ΡΠΎΠ΄ΠΈΠ»ΠΈΡΡ ΠΈ ΠΆΠΈΠ²Π΅ΠΌ Π² ΡΠ°Π·Π½ΡΡ ΡΡΡΠ°Π½Π°Ρ . Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΈΠ· Π½Π°Ρ Π΅ΡΡΡ Π΄ΡΡΠ·ΡΡ, ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΊΠ°ΠΊ Π² Π ΠΎΡΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ Π² Π£ΠΊΡΠ°ΠΈΠ½Π΅. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°Ρ ΡΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² Π ΠΎΡΡΠΈΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°Ρ ΠΆΠΈΠ²ΡΡ Π² Π ΠΎΡΡΠΈΠΈ. Π£ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π±Π°Π±ΡΡΠΊΠΈ ΠΈ Π΄Π΅Π΄ΡΡΠΊΠΈ ΡΡΠ°ΠΆΠ°Π»ΠΈΡΡ Ρ ΡΠ°ΡΠΈΡΡΠ°ΠΌΠΈ Π²ΠΎ ΠΡΠΎΡΠΎΠΉ ΠΌΠΈΡΠΎΠ²ΠΎΠΉ Π²ΠΎΠΉΠ½Π΅. ΠΠ΄Π΅ΡΡ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΠΈΠ·ΠΌ.+> +> Π£ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°Ρ Π΅ΡΡΡ ΡΠΊΡΠ°ΠΈΠ½ΡΠΊΠ°Ρ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΠ°ΡΠ»Π°ΡΡ ΠΈΠ· Π΄ΠΎΠΌΠ° Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠ½ΠΎΠΌ. ΠΠΎΠ΅Π·Π΄ Π·Π°Π΄Π΅ΡΠΆΠ°Π»ΡΡ ΠΈΠ·-Π·Π° Π±ΠΎΠΌΠ±Π΅ΠΆΠΊΠΈ Π½Π° Π΄ΠΎΡΠΎΠ³Π΅ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ. Π£ Π½Π°Ρ Π΅ΡΡΡ Π΄ΡΡΠ·ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΡΡΡΡΡΡ Π² Π±ΠΎΠΌΠ±ΠΎΡΠ±Π΅ΠΆΠΈΡΠ°Ρ . ΠΡ Ρ ΡΡΠ΅Π²ΠΎΠ³ΠΎΠΉ ΠΆΠ΄Π΅ΠΌ Π²Π΅ΡΡΠΎΡΠΊΠΈ ΠΎΡ Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·Π΄ΡΡΠ½ΡΡ Π½Π°Π»Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ½ΠΎ Π½Π°Π½ΠΎΡΡΡ ΡΠ΄Π°ΡΡ ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ ΠΏΠΎ Π±ΠΎΠ»ΡΠ½ΠΈΡΠ°ΠΌ, ΡΠΊΠΎΠ»Π°ΠΌ, Π΄Π΅ΡΡΠΊΠΈΠΌ ΡΠ°Π΄Π°ΠΌ ΠΈ Π΄ΠΎΠΌΠ°ΠΌ. ΠΡ Π½Π΅ Π±Π΅ΡΠ΅ΠΌ ΡΡΠΎ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π‘ΠΠ. ΠΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌ ΡΡΠΎ Π½Π°ΠΏΡΡΠΌΡΡ.+> +> ΠΡ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ Π½Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ ΠΌΡ ΠΏΡΠΎΡΠΈΠΌ Π²Π°Ρ Π΄ΠΎΠ²Π΅ΡΠΈΡΡΡΡ Π½Π°ΠΌ Π²Π½ΠΎΠ²Ρ. ΠΡ Π½ΡΠΆΠ΄Π°Π΅ΠΌΡΡ Π² ΠΏΠΎΠΌΠΎΡΠΈ. ΠΡΡ ΠΎΠ΄ΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡΠΉΡΠ΅ ΠΏΡΠΎΡΠΈΠ² ΡΡΠΎΠΉ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π²ΠΎΠΉΠ½Ρ. ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΡΠΎΠ²ΠΎΠΏΡΠΎΠ»ΠΈΡΠΈΠ΅. Π‘ΠΊΠ°ΠΆΠΈΡΠ΅ "ΠΠ΅Ρ Π²ΠΎΠΉΠ½Π΅!"+> +> ## πΊπΈ To Citizens of Russia+> +> We at Laminas come from all over the world. Many of us have friends, family and colleagues in both Russia and Ukraine. Some of us were born in Russia. Some of us currently live in Russia. Some have grandparents who fought Nazis in World War II. Nobody here supports fascism.+> +> One team member has a Ukrainian relative who fled her home with her son. The train was delayed due to bombing on the road ahead. We have friends who are hiding in bomb shelters. We anxiously follow up on them after the air raids, which indiscriminately fire at hospitals, schools, kindergartens and houses. We're not taking this from any media. These are our actual experiences.+> +> You trust us enough to use our software. We ask that you trust us to say the truth on this. We need your help. Go out and protest this unnecessary war. Stop the bloodshed. Say "stop the war!"+++> This package is considered feature-complete, and is now in **security-only** maintenance mode, following a [decision by the Technical Steering Committee](https://github.com/laminas/technical-steering-committee/blob/2b55453e172a1b8c9c4c212be7cf7e7a58b9352c/meetings/minutes/2020-08-03-TSC-Minutes.md#vote-on-components-to-mark-as-security-only).+> If you have a security issue, please [follow our security reporting guidelines](https://getlaminas.org/security/).+> If you wish to take on the role of maintainer, please [nominate yourself](https://github.com/laminas/technical-steering-committee/issues/new?assignees=&labels=Nomination&template=Maintainer_Nomination.md&title=%5BNOMINATION%5D%5BMAINTAINER%5D%3A+%7Bname+of+person+being+nominated%7D)+++[](https://github.com/laminas/laminas-loader/actions?query=workflow%3A"Continuous+Integration") laminas-loader provides different strategies for autoloading PHP classes.
After analyzing the provided code diff, I can confirm that this is purely a documentation/README update with no code changes that would indicate security fixes. The changes consist of: 1. Adding a political statement about the Russia-Ukraine war in multiple languages 2. Updating the build status badge URL 3. Adding a note about the package being in security-only maintenance mode There are no actual code changes, only markdown documentation changes. Therefore: Vulnerability Existed: no No code changes were made in this diff, only documentation updates. No security vulnerabilities were addressed. The diff shows no changes to any executable code, only to the README.md documentation file. The changes are entirely related to project messaging and status updates, not security fixes.
osTicket prior to v1.17.6 and v1.18.2 are vulnerable to Broken Access Control Vulnerability in /scp/ajax.php.
A SQL injection vulnerability in the "Search" functionality of "tickets.php" page in osTicket <=1.17.5 allows authenticated attackers to execute arbitrary SQL commands via the "keywords" and "topic_id" URL parameters combination.