diff --git a/.github/workflows/static-code-analysis.yml b/.github/workflows/static-code-analysis.yml
index 814964036794c..e30e41a4e684e 100644
--- a/.github/workflows/static-code-analysis.yml
+++ b/.github/workflows/static-code-analysis.yml
@@ -36,7 +36,7 @@ jobs:
 
       - name: Show potential changes in Psalm baseline
         if: always()
-        run: git diff -- . ':!lib/composer'
+        run: git diff --exit-code -- . ':!lib/composer'
 
       - name: Upload Analysis results to GitHub
         if: always()
@@ -98,4 +98,4 @@ jobs:
 
       - name: Show potential changes in Psalm baseline
         if: always()
-        run: git diff -- . ':!lib/composer'
+        run: git diff --exit-code -- . ':!lib/composer'
diff --git a/build/psalm-baseline-ocp.xml b/build/psalm-baseline-ocp.xml
index 09110c581906e..68f18c5c3dc53 100644
--- a/build/psalm-baseline-ocp.xml
+++ b/build/psalm-baseline-ocp.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<files psalm-version="5.9.0@8b9ad1eb9e8b7d3101f949291da2b9f7767cd163">
+<files psalm-version="5.26.1@d747f6500b38ac4f7dfc5edbcae6e4b637d7add0">
   <file src="lib/private/legacy/OC_Template.php">
     <UndefinedClass>
-      <code>OC</code>
+      <code><![CDATA[OC]]></code>
     </UndefinedClass>
   </file>
   <file src="lib/public/AppFramework/ApiController.php">
@@ -15,84 +15,85 @@
       <code><![CDATA[new RouteConfig($this->container, $router, $routes)]]></code>
     </InternalMethod>
     <UndefinedClass>
-      <code>\OC</code>
+      <code><![CDATA[\OC]]></code>
     </UndefinedClass>
   </file>
   <file src="lib/public/AppFramework/Db/Entity.php">
     <InvalidNullableReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>$column</code>
+      <code><![CDATA[$column]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/public/AppFramework/Http/RedirectToDefaultAppResponse.php">
     <UndefinedClass>
-      <code>\OC</code>
+      <code><![CDATA[\OC]]></code>
     </UndefinedClass>
   </file>
   <file src="lib/public/AppFramework/Http/Response.php">
     <UndefinedClass>
-      <code>\OC</code>
-      <code>\OC</code>
+      <code><![CDATA[\OC]]></code>
     </UndefinedClass>
   </file>
+  <file src="lib/public/DB/QueryBuilder/IQueryBuilder.php">
+    <InvalidDocblock>
+      <code><![CDATA[public function createFunction($call);]]></code>
+    </InvalidDocblock>
+  </file>
   <file src="lib/public/Defaults.php">
     <UndefinedClass>
-      <code>\OC</code>
+      <code><![CDATA[\OC]]></code>
     </UndefinedClass>
   </file>
   <file src="lib/public/Diagnostics/IQueryLogger.php">
     <LessSpecificImplementedReturnType>
-      <code>mixed</code>
+      <code><![CDATA[mixed]]></code>
     </LessSpecificImplementedReturnType>
   </file>
   <file src="lib/public/EventDispatcher/GenericEvent.php">
     <MissingTemplateParam>
-      <code>ArrayAccess</code>
-      <code>IteratorAggregate</code>
+      <code><![CDATA[ArrayAccess]]></code>
+      <code><![CDATA[IteratorAggregate]]></code>
     </MissingTemplateParam>
   </file>
   <file src="lib/public/Files.php">
     <FalsableReturnStatement>
-      <code>\OC_App::getStorage($app)</code>
+      <code><![CDATA[\OC_App::getStorage($app)]]></code>
     </FalsableReturnStatement>
     <UndefinedClass>
-      <code>\OC</code>
+      <code><![CDATA[\OC]]></code>
     </UndefinedClass>
   </file>
   <file src="lib/public/L10N/ILanguageIterator.php">
     <MissingTemplateParam>
-      <code>\Iterator</code>
+      <code><![CDATA[\Iterator]]></code>
     </MissingTemplateParam>
   </file>
   <file src="lib/public/Template.php">
     <UndefinedFunction>
-      <code>\html_select_options($options, $selected, $params)</code>
-      <code>\human_file_size($bytes)</code>
-      <code>\image_path($app, $image)</code>
-      <code>\mimetype_icon($mimetype)</code>
-      <code>\preview_icon($path)</code>
-      <code>\publicPreview_icon($path, $token)</code>
-      <code>\relative_modified_date($timestamp, null, $dateOnly)</code>
+      <code><![CDATA[\html_select_options($options, $selected, $params)]]></code>
+      <code><![CDATA[\human_file_size($bytes)]]></code>
+      <code><![CDATA[\image_path($app, $image)]]></code>
+      <code><![CDATA[\mimetype_icon($mimetype)]]></code>
+      <code><![CDATA[\preview_icon($path)]]></code>
+      <code><![CDATA[\publicPreview_icon($path, $token)]]></code>
+      <code><![CDATA[\relative_modified_date($timestamp, null, $dateOnly)]]></code>
     </UndefinedFunction>
   </file>
   <file src="lib/public/Util.php">
     <UndefinedClass>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
-      <code>\OC</code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
+      <code><![CDATA[\OC]]></code>
     </UndefinedClass>
   </file>
 </files>
diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml
index f3f53d02215f3..bff1ee6815f0d 100644
--- a/build/psalm-baseline.xml
+++ b/build/psalm-baseline.xml
@@ -1,94 +1,92 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<files psalm-version="5.9.0@8b9ad1eb9e8b7d3101f949291da2b9f7767cd163">
+<files psalm-version="5.26.1@d747f6500b38ac4f7dfc5edbcae6e4b637d7add0">
   <file src="3rdparty/sabre/dav/lib/CalDAV/Calendar.php">
     <MoreSpecificImplementedParamType>
-      <code>$data</code>
+      <code><![CDATA[$data]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="3rdparty/sabre/dav/lib/CalDAV/CalendarHome.php">
     <MoreSpecificImplementedParamType>
-      <code>$data</code>
+      <code><![CDATA[$data]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="3rdparty/sabre/dav/lib/CalDAV/Principal/User.php">
     <MoreSpecificImplementedParamType>
-      <code>$data</code>
+      <code><![CDATA[$data]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="3rdparty/sabre/dav/lib/CardDAV/AddressBook.php">
     <MoreSpecificImplementedParamType>
-      <code>$data</code>
+      <code><![CDATA[$data]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="3rdparty/sabre/dav/lib/CardDAV/AddressBookHome.php">
     <InvalidPropertyAssignmentValue>
-      <code>$principalUri</code>
+      <code><![CDATA[$principalUri]]></code>
     </InvalidPropertyAssignmentValue>
     <MoreSpecificImplementedParamType>
-      <code>$data</code>
+      <code><![CDATA[$data]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="3rdparty/sabre/dav/lib/CardDAV/Card.php">
     <MoreSpecificImplementedParamType>
-      <code>$cardData</code>
+      <code><![CDATA[$cardData]]></code>
     </MoreSpecificImplementedParamType>
   </file>
+  <file src="3rdparty/sabre/dav/lib/DAV/SimpleCollection.php">
+    <NoValue>
+      <code><![CDATA[$child]]></code>
+      <code><![CDATA[$child]]></code>
+    </NoValue>
+  </file>
   <file src="3rdparty/sabre/dav/lib/DAVACL/AbstractPrincipalCollection.php">
     <LessSpecificImplementedReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </LessSpecificImplementedReturnType>
   </file>
-  <file src="apps/comments/lib/Notification/Listener.php">
-    <LessSpecificReturnStatement>
-      <code>$uids</code>
-    </LessSpecificReturnStatement>
-    <MoreSpecificReturnType>
-      <code><![CDATA[list<string>]]></code>
-    </MoreSpecificReturnType>
-  </file>
   <file src="apps/dav/appinfo/v1/caldav.php">
     <UndefinedGlobalVariable>
-      <code>$baseuri</code>
+      <code><![CDATA[$baseuri]]></code>
     </UndefinedGlobalVariable>
   </file>
   <file src="apps/dav/appinfo/v1/carddav.php">
     <UndefinedGlobalVariable>
-      <code>$baseuri</code>
+      <code><![CDATA[$baseuri]]></code>
     </UndefinedGlobalVariable>
   </file>
   <file src="apps/dav/appinfo/v1/publicwebdav.php">
     <InternalMethod>
-      <code>\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper($previousLog)</code>
-      <code>\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(false)</code>
+      <code><![CDATA[\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper($previousLog)]]></code>
+      <code><![CDATA[\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(false)]]></code>
     </InternalMethod>
     <UndefinedGlobalVariable>
-      <code>$baseuri</code>
+      <code><![CDATA[$baseuri]]></code>
     </UndefinedGlobalVariable>
   </file>
   <file src="apps/dav/appinfo/v1/webdav.php">
     <UndefinedGlobalVariable>
-      <code>$baseuri</code>
+      <code><![CDATA[$baseuri]]></code>
     </UndefinedGlobalVariable>
   </file>
   <file src="apps/dav/appinfo/v2/direct.php">
     <UndefinedGlobalVariable>
-      <code>$baseuri</code>
+      <code><![CDATA[$baseuri]]></code>
     </UndefinedGlobalVariable>
   </file>
   <file src="apps/dav/appinfo/v2/remote.php">
     <UndefinedGlobalVariable>
-      <code>$baseuri</code>
+      <code><![CDATA[$baseuri]]></code>
     </UndefinedGlobalVariable>
   </file>
   <file src="apps/dav/lib/AppInfo/Application.php">
     <InvalidArgument>
-      <code>registerEventListener</code>
+      <code><![CDATA[registerEventListener]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/dav/lib/CalDAV/BirthdayService.php">
     <UndefinedMethod>
-      <code>setDateTime</code>
-      <code>setDateTime</code>
+      <code><![CDATA[setDateTime]]></code>
+      <code><![CDATA[setDateTime]]></code>
     </UndefinedMethod>
     <UndefinedPropertyFetch>
       <code><![CDATA[$existingBirthday->VEVENT->DTSTART]]></code>
@@ -102,62 +100,61 @@
       <code><![CDATA[$this->objectData['calendardata']]]></code>
     </NullableReturnStatement>
     <ParamNameMismatch>
-      <code>$calendarData</code>
-      <code>$calendarData</code>
+      <code><![CDATA[$calendarData]]></code>
+      <code><![CDATA[$calendarData]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/CalDAV/CalDavBackend.php">
     <InvalidNullableReturnType>
-      <code>array</code>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidNullableReturnType>
     <LessSpecificReturnStatement>
-      <code>Reader::read($objectData)</code>
+      <code><![CDATA[Reader::read($objectData)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificImplementedParamType>
-      <code>$objectData</code>
-      <code>$uris</code>
-      <code>$uris</code>
+      <code><![CDATA[$objectData]]></code>
+      <code><![CDATA[$uris]]></code>
+      <code><![CDATA[$uris]]></code>
     </MoreSpecificImplementedParamType>
     <MoreSpecificReturnType>
-      <code>VCalendar</code>
+      <code><![CDATA[VCalendar]]></code>
     </MoreSpecificReturnType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="apps/dav/lib/CalDAV/CalendarHome.php">
     <InvalidNullableReturnType>
-      <code>INode</code>
+      <code><![CDATA[INode]]></code>
     </InvalidNullableReturnType>
     <LessSpecificImplementedReturnType>
-      <code>INode</code>
+      <code><![CDATA[INode]]></code>
     </LessSpecificImplementedReturnType>
     <NullableReturnStatement>
       <code><![CDATA[$calendarPlugin->getCalendarInCalendarHome($this->principalInfo['uri'], $calendarUri)]]></code>
     </NullableReturnStatement>
     <UndefinedInterfaceMethod>
-      <code>calendarSearch</code>
+      <code><![CDATA[calendarSearch]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/dav/lib/CalDAV/CalendarRoot.php">
     <ParamNameMismatch>
-      <code>$principal</code>
+      <code><![CDATA[$principal]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/CalDAV/Plugin.php">
     <ImplementedReturnTypeMismatch>
-      <code>string|null</code>
+      <code><![CDATA[string|null]]></code>
     </ImplementedReturnTypeMismatch>
   </file>
   <file src="apps/dav/lib/CalDAV/Principal/Collection.php">
     <ParamNameMismatch>
-      <code>$principalInfo</code>
+      <code><![CDATA[$principalInfo]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/CalDAV/PublicCalendar.php">
     <MoreSpecificImplementedParamType>
-      <code>$paths</code>
+      <code><![CDATA[$paths]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="apps/dav/lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php">
@@ -165,47 +162,47 @@
       <code><![CDATA[$vevent->DTEND]]></code>
     </LessSpecificReturnStatement>
     <UndefinedMethod>
-      <code>hasTime</code>
-      <code>isFloating</code>
-      <code>isFloating</code>
+      <code><![CDATA[hasTime]]></code>
+      <code><![CDATA[isFloating]]></code>
+      <code><![CDATA[isFloating]]></code>
     </UndefinedMethod>
   </file>
   <file src="apps/dav/lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php">
     <LessSpecificReturnStatement>
-      <code>$emailAddresses</code>
+      <code><![CDATA[$emailAddresses]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
       <code><![CDATA[array<string, array{LANG?: string}>]]></code>
     </MoreSpecificReturnType>
     <UndefinedMethod>
-      <code>getDateTime</code>
-      <code>getDateTime</code>
-      <code>isFloating</code>
+      <code><![CDATA[getDateTime]]></code>
+      <code><![CDATA[getDateTime]]></code>
+      <code><![CDATA[isFloating]]></code>
     </UndefinedMethod>
   </file>
   <file src="apps/dav/lib/CalDAV/Reminder/NotificationProviderManager.php">
     <UndefinedConstant>
-      <code>$provider::NOTIFICATION_TYPE</code>
+      <code><![CDATA[$provider::NOTIFICATION_TYPE]]></code>
     </UndefinedConstant>
   </file>
   <file src="apps/dav/lib/CalDAV/Reminder/Notifier.php">
     <TypeDoesNotContainType>
-      <code>$diff === false</code>
+      <code><![CDATA[$diff === false]]></code>
     </TypeDoesNotContainType>
   </file>
   <file src="apps/dav/lib/CalDAV/Reminder/ReminderService.php">
     <LessSpecificReturnStatement>
-      <code>$vevents</code>
-      <code>VObject\Reader::read($calendarData,
-				VObject\Reader::OPTION_FORGIVING)</code>
+      <code><![CDATA[$vevents]]></code>
+      <code><![CDATA[VObject\Reader::read($calendarData,
+				VObject\Reader::OPTION_FORGIVING)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>VObject\Component\VCalendar|null</code>
-      <code>VObject\Component\VEvent[]</code>
+      <code><![CDATA[VObject\Component\VCalendar|null]]></code>
+      <code><![CDATA[VObject\Component\VEvent[]]]></code>
     </MoreSpecificReturnType>
     <UndefinedMethod>
-      <code>getDateTime</code>
-      <code>getDateTime</code>
+      <code><![CDATA[getDateTime]]></code>
+      <code><![CDATA[getDateTime]]></code>
     </UndefinedMethod>
     <UndefinedPropertyFetch>
       <code><![CDATA[$valarm->parent->UID]]></code>
@@ -213,17 +210,17 @@
   </file>
   <file src="apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php">
     <InvalidNullableReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidNullableReturnType>
     <InvalidReturnStatement>
-      <code>$principals</code>
+      <code><![CDATA[$principals]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string[]</code>
+      <code><![CDATA[string[]]]></code>
     </InvalidReturnType>
     <NullableReturnStatement>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="apps/dav/lib/CalDAV/Schedule/IMipPlugin.php">
@@ -237,8 +234,8 @@
   </file>
   <file src="apps/dav/lib/CalDAV/Schedule/IMipService.php">
     <UndefinedMethod>
-      <code>getNormalizedValue</code>
-      <code>getNormalizedValue</code>
+      <code><![CDATA[getNormalizedValue]]></code>
+      <code><![CDATA[getNormalizedValue]]></code>
     </UndefinedMethod>
   </file>
   <file src="apps/dav/lib/CalDAV/Schedule/Plugin.php">
@@ -250,20 +247,20 @@
       <code><![CDATA[$vevent->DTEND]]></code>
     </LessSpecificReturnStatement>
     <UndefinedInterfaceMethod>
-      <code>get</code>
-      <code>getChildren</code>
+      <code><![CDATA[get]]></code>
+      <code><![CDATA[getChildren]]></code>
     </UndefinedInterfaceMethod>
     <UndefinedMethod>
-      <code>getDateTime</code>
-      <code>hasTime</code>
-      <code>isFloating</code>
-      <code>isFloating</code>
-      <code>principalSearch</code>
+      <code><![CDATA[getDateTime]]></code>
+      <code><![CDATA[hasTime]]></code>
+      <code><![CDATA[isFloating]]></code>
+      <code><![CDATA[isFloating]]></code>
+      <code><![CDATA[principalSearch]]></code>
     </UndefinedMethod>
   </file>
   <file src="apps/dav/lib/CalDAV/Search/SearchPlugin.php">
     <InvalidNullableReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidNullableReturnType>
   </file>
   <file src="apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php">
@@ -274,7 +271,7 @@
 		]]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php">
@@ -289,7 +286,7 @@
   </file>
   <file src="apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php">
     <InvalidArgument>
-      <code>$webcalData</code>
+      <code><![CDATA[$webcalData]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/dav/lib/CardDAV/AddressBookImpl.php">
@@ -298,26 +295,26 @@
       <code><![CDATA[$this->getKey()]]></code>
     </InvalidArgument>
     <LessSpecificReturnStatement>
-      <code>Reader::read($cardData)</code>
+      <code><![CDATA[Reader::read($cardData)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>VCard</code>
+      <code><![CDATA[VCard]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="apps/dav/lib/CardDAV/AddressBookRoot.php">
     <ParamNameMismatch>
-      <code>$principal</code>
+      <code><![CDATA[$principal]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/CardDAV/CardDavBackend.php">
     <FalsableReturnStatement>
-      <code>false</code>
+      <code><![CDATA[false]]></code>
     </FalsableReturnStatement>
     <LessSpecificReturnStatement>
-      <code>Reader::read($cardData)</code>
+      <code><![CDATA[Reader::read($cardData)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>VCard</code>
+      <code><![CDATA[VCard]]></code>
     </MoreSpecificReturnType>
     <TypeDoesNotContainType>
       <code><![CDATA[$addressBooks[$row['id']][$readOnlyPropertyName] === 0]]></code>
@@ -325,23 +322,12 @@
   </file>
   <file src="apps/dav/lib/CardDAV/MultiGetExportPlugin.php">
     <InvalidNullableReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidNullableReturnType>
   </file>
-  <file src="apps/dav/lib/CardDAV/PhotoCache.php">
-    <LessSpecificReturnStatement>
-      <code><![CDATA[[
-				'Content-Type' => $type,
-				'body' => $val
-			]]]></code>
-    </LessSpecificReturnStatement>
-    <MoreSpecificReturnType>
-      <code>false|array{body: string, Content-Type: string}</code>
-    </MoreSpecificReturnType>
-  </file>
   <file src="apps/dav/lib/CardDAV/Plugin.php">
     <ImplementedReturnTypeMismatch>
-      <code>string|null</code>
+      <code><![CDATA[string|null]]></code>
     </ImplementedReturnTypeMismatch>
   </file>
   <file src="apps/dav/lib/CardDAV/UserAddressBooks.php">
@@ -352,55 +338,55 @@
   </file>
   <file src="apps/dav/lib/CardDAV/Xml/Groups.php">
     <InvalidPropertyAssignmentValue>
-      <code>$groups</code>
+      <code><![CDATA[$groups]]></code>
     </InvalidPropertyAssignmentValue>
   </file>
   <file src="apps/dav/lib/Comments/CommentsPlugin.php">
     <UndefinedFunction>
-      <code>\Sabre\HTTP\toDate($value)</code>
+      <code><![CDATA[\Sabre\HTTP\toDate($value)]]></code>
     </UndefinedFunction>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php">
     <InvalidNullableReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidNullableReturnType>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/Auth.php">
     <LessSpecificReturnStatement>
-      <code>$data</code>
+      <code><![CDATA[$data]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>array{bool, string}</code>
+      <code><![CDATA[array{bool, string}]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/BearerAuth.php">
     <UndefinedInterfaceMethod>
-      <code>tryTokenLogin</code>
+      <code><![CDATA[tryTokenLogin]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/Directory.php">
     <InvalidPropertyAssignmentValue>
-      <code>$nodes</code>
+      <code><![CDATA[$nodes]]></code>
     </InvalidPropertyAssignmentValue>
     <InvalidReturnStatement>
       <code><![CDATA[$this->dirContent]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>\Sabre\DAV\INode[]</code>
+      <code><![CDATA[\Sabre\DAV\INode[]]]></code>
     </InvalidReturnType>
     <LessSpecificReturnStatement>
       <code><![CDATA[$this->node]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>Folder</code>
+      <code><![CDATA[Folder]]></code>
     </MoreSpecificReturnType>
     <NullArgument>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
     <ParamNameMismatch>
-      <code>$fullSourcePath</code>
+      <code><![CDATA[$fullSourcePath]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/File.php">
@@ -408,33 +394,39 @@
       <code><![CDATA[$this->node]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificImplementedParamType>
-      <code>$data</code>
+      <code><![CDATA[$data]]></code>
     </MoreSpecificImplementedParamType>
     <MoreSpecificReturnType>
-      <code>\OCP\Files\File</code>
+      <code><![CDATA[\OCP\Files\File]]></code>
     </MoreSpecificReturnType>
+    <NoValue>
+      <code><![CDATA[$data]]></code>
+    </NoValue>
+    <RedundantCondition>
+      <code><![CDATA[$data !== null]]></code>
+    </RedundantCondition>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/FilesReportPlugin.php">
     <InvalidArgument>
-      <code>0</code>
+      <code><![CDATA[0]]></code>
     </InvalidArgument>
     <InvalidNullableReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidNullableReturnType>
     <TooManyArguments>
       <code><![CDATA[new PreconditionFailed('Cannot filter by non-existing tag', 0, $e)]]></code>
     </TooManyArguments>
     <UndefinedClass>
-      <code>\OCA\Circles\Api\v1\Circles</code>
+      <code><![CDATA[\OCA\Circles\Api\v1\Circles]]></code>
     </UndefinedClass>
     <UndefinedInterfaceMethod>
-      <code>getPath</code>
+      <code><![CDATA[getPath]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/Node.php">
     <InvalidNullableReturnType>
-      <code>int</code>
-      <code>integer</code>
+      <code><![CDATA[int]]></code>
+      <code><![CDATA[integer]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
       <code><![CDATA[$this->info->getId()]]></code>
@@ -443,41 +435,41 @@
   </file>
   <file src="apps/dav/lib/Connector/Sabre/Principal.php">
     <InvalidNullableReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidNullableReturnType>
     <InvalidReturnStatement>
-      <code>$principals</code>
+      <code><![CDATA[$principals]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string[]</code>
+      <code><![CDATA[string[]]]></code>
     </InvalidReturnType>
     <InvalidScalarArgument>
-      <code>$results</code>
+      <code><![CDATA[$results]]></code>
     </InvalidScalarArgument>
     <NullableReturnStatement>
       <code><![CDATA[$this->circleToPrincipal($decodedName)
 					?: $this->circleToPrincipal($name)]]></code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
     <UndefinedClass>
-      <code>\OCA\Circles\Api\v1\Circles</code>
-      <code>\OCA\Circles\Api\v1\Circles</code>
+      <code><![CDATA[\OCA\Circles\Api\v1\Circles]]></code>
+      <code><![CDATA[\OCA\Circles\Api\v1\Circles]]></code>
     </UndefinedClass>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/ServerFactory.php">
     <TooManyArguments>
-      <code>new \OCA\DAV\Connector\Sabre\QuotaPlugin($view, true)</code>
+      <code><![CDATA[new \OCA\DAV\Connector\Sabre\QuotaPlugin($view, true)]]></code>
     </TooManyArguments>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/ShareTypeList.php">
     <InvalidArgument>
-      <code>$shareType</code>
+      <code><![CDATA[$shareType]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/dav/lib/Connector/Sabre/ShareeList.php">
@@ -487,10 +479,10 @@
   </file>
   <file src="apps/dav/lib/Connector/Sabre/TagsPlugin.php">
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
     <UndefinedInterfaceMethod>
-      <code>getId</code>
+      <code><![CDATA[getId]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/dav/lib/Controller/InvitationResponseController.php">
@@ -500,39 +492,39 @@
   </file>
   <file src="apps/dav/lib/DAV/CustomPropertiesBackend.php">
     <InvalidArgument>
-      <code>$whereValues</code>
+      <code><![CDATA[$whereValues]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/dav/lib/DAV/GroupPrincipalBackend.php">
     <InvalidNullableReturnType>
-      <code>array</code>
-      <code>string</code>
+      <code><![CDATA[array]]></code>
+      <code><![CDATA[string]]></code>
     </InvalidNullableReturnType>
     <InvalidReturnStatement>
-      <code>$principals</code>
+      <code><![CDATA[$principals]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string[]</code>
+      <code><![CDATA[string[]]]></code>
     </InvalidReturnType>
     <MoreSpecificImplementedParamType>
-      <code>$members</code>
+      <code><![CDATA[$members]]></code>
     </MoreSpecificImplementedParamType>
     <NullableReturnStatement>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="apps/dav/lib/DAV/SystemPrincipalBackend.php">
     <InvalidNullableReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="apps/dav/lib/Direct/Server.php">
@@ -542,13 +534,13 @@
   </file>
   <file src="apps/dav/lib/Files/FileSearchBackend.php">
     <InvalidReturnStatement>
-      <code>$value</code>
+      <code><![CDATA[$value]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>?string</code>
+      <code><![CDATA[?string]]></code>
     </InvalidReturnType>
     <ParamNameMismatch>
-      <code>$search</code>
+      <code><![CDATA[$search]]></code>
     </ParamNameMismatch>
     <RedundantCondition>
       <code><![CDATA[$date->getTimestamp() !== false]]></code>
@@ -563,7 +555,7 @@
       <code><![CDATA[$this->backend->getArbiterPath()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/dav/lib/HookManager.php">
@@ -574,12 +566,12 @@
   </file>
   <file src="apps/dav/lib/Migration/BuildCalendarSearchIndexBackgroundJob.php">
     <ParamNameMismatch>
-      <code>$arguments</code>
+      <code><![CDATA[$arguments]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/Migration/BuildSocialSearchIndexBackgroundJob.php">
     <ParamNameMismatch>
-      <code>$arguments</code>
+      <code><![CDATA[$arguments]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/Search/ContactsSearchProvider.php">
@@ -604,14 +596,14 @@
       <code><![CDATA[$this->l10n->l('date', $startDateTime, ['width' => 'medium'])]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidReturnType>
     <UndefinedMethod>
-      <code>getDateTime</code>
-      <code>getDateTime</code>
-      <code>hasTime</code>
-      <code>isFloating</code>
-      <code>isFloating</code>
+      <code><![CDATA[getDateTime]]></code>
+      <code><![CDATA[getDateTime]]></code>
+      <code><![CDATA[hasTime]]></code>
+      <code><![CDATA[isFloating]]></code>
+      <code><![CDATA[isFloating]]></code>
     </UndefinedMethod>
   </file>
   <file src="apps/dav/lib/Search/TasksSearchProvider.php">
@@ -619,52 +611,52 @@
       <code><![CDATA[$query->getCursor()]]></code>
     </InvalidOperand>
     <UndefinedMethod>
-      <code>getDateTime</code>
-      <code>getDateTime</code>
-      <code>hasTime</code>
+      <code><![CDATA[getDateTime]]></code>
+      <code><![CDATA[getDateTime]]></code>
+      <code><![CDATA[hasTime]]></code>
     </UndefinedMethod>
   </file>
   <file src="apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php">
     <ParamNameMismatch>
-      <code>$tagId</code>
-      <code>$tagName</code>
+      <code><![CDATA[$tagId]]></code>
+      <code><![CDATA[$tagName]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/SystemTag/SystemTagsObjectTypeCollection.php">
     <ParamNameMismatch>
-      <code>$objectName</code>
+      <code><![CDATA[$objectName]]></code>
     </ParamNameMismatch>
   </file>
   <file src="apps/dav/lib/Traits/PrincipalProxyTrait.php">
     <MoreSpecificImplementedParamType>
-      <code>$members</code>
+      <code><![CDATA[$members]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="apps/dav/lib/Upload/AssemblyStream.php">
     <FalsableReturnStatement>
-      <code>false</code>
+      <code><![CDATA[false]]></code>
     </FalsableReturnStatement>
     <InvalidPropertyAssignmentValue>
       <code><![CDATA[$this->currentStream]]></code>
     </InvalidPropertyAssignmentValue>
     <InvalidReturnStatement>
-      <code>$context</code>
+      <code><![CDATA[$context]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidReturnType>
     <RedundantFunctionCall>
-      <code>array_values</code>
+      <code><![CDATA[array_values]]></code>
     </RedundantFunctionCall>
   </file>
   <file src="apps/dav/lib/Upload/ChunkingV2Plugin.php">
     <UndefinedInterfaceMethod>
-      <code>getId</code>
-      <code>getId</code>
-      <code>getId</code>
-      <code>getInternalPath</code>
-      <code>getNode</code>
-      <code>getSize</code>
+      <code><![CDATA[getId]]></code>
+      <code><![CDATA[getId]]></code>
+      <code><![CDATA[getId]]></code>
+      <code><![CDATA[getInternalPath]]></code>
+      <code><![CDATA[getNode]]></code>
+      <code><![CDATA[getSize]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/dav/lib/UserMigration/ContactsMigrator.php">
@@ -677,7 +669,7 @@
 		]]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>array{name: string, displayName: string, description: ?string, vCards: VCard[]}</code>
+      <code><![CDATA[array{name: string, displayName: string, description: ?string, vCards: VCard[]}]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="apps/encryption/lib/Command/FixKeyLocation.php">
@@ -692,12 +684,12 @@
   </file>
   <file src="apps/encryption/lib/Crypto/Encryption.php">
     <ImplementedParamTypeMismatch>
-      <code>$position</code>
+      <code><![CDATA[$position]]></code>
     </ImplementedParamTypeMismatch>
   </file>
   <file src="apps/encryption/lib/KeyManager.php">
     <InvalidThrow>
-      <code>throw $exception;</code>
+      <code><![CDATA[throw $exception;]]></code>
     </InvalidThrow>
   </file>
   <file src="apps/encryption/lib/Session.php">
@@ -710,64 +702,56 @@
       <code><![CDATA[$this->files->getMount($path)->getStorage()]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>\OC\Files\Storage\Storage|null</code>
+      <code><![CDATA[\OC\Files\Storage\Storage|null]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="apps/federatedfilesharing/lib/Controller/RequestHandlerController.php">
     <InvalidArgument>
-      <code>$id</code>
-      <code>$id</code>
-      <code>$id</code>
-      <code>$id</code>
-      <code>$id</code>
-      <code>$id</code>
-      <code>$remoteId</code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$remoteId]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/federatedfilesharing/lib/FederatedShareProvider.php">
     <InvalidArgument>
-      <code>$shareId</code>
-      <code>$shareId</code>
-      <code>$shareId</code>
-      <code>$shareId</code>
+      <code><![CDATA[$shareId]]></code>
+      <code><![CDATA[$shareId]]></code>
+      <code><![CDATA[$shareId]]></code>
+      <code><![CDATA[$shareId]]></code>
       <code><![CDATA[(int)$data['id']]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/federatedfilesharing/lib/Notifications.php">
     <InvalidReturnType>
-      <code>bool</code>
-      <code>bool</code>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
+      <code><![CDATA[bool]]></code>
+      <code><![CDATA[bool]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php">
     <InvalidArgument>
-      <code>$id</code>
-      <code>$id</code>
-      <code>$id</code>
-      <code>$id</code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$id]]></code>
+      <code><![CDATA[$id]]></code>
     </InvalidArgument>
     <InvalidReturnStatement>
-      <code>$shareId</code>
+      <code><![CDATA[$shareId]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidReturnType>
     <InvalidScalarArgument>
       <code><![CDATA[(int)$share['id']]]></code>
     </InvalidScalarArgument>
   </file>
-  <file src="apps/federation/lib/DbHandler.php">
-    <LessSpecificReturnStatement>
-      <code>$result</code>
-    </LessSpecificReturnStatement>
-    <MoreSpecificReturnType>
-      <code><![CDATA[list<array{id: int, url: string, url_hash: string, shared_secret: ?string, status: int, sync_token: ?string}>]]></code>
-    </MoreSpecificReturnType>
-  </file>
   <file src="apps/files/ajax/download.php">
     <InvalidArgument>
-      <code>$files_list</code>
+      <code><![CDATA[$files_list]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/files/lib/Activity/Provider.php">
@@ -775,11 +759,11 @@
       <code><![CDATA[$this->fileEncrypted[$fileId]]]></code>
     </FalsableReturnStatement>
     <LessSpecificReturnStatement>
-      <code>$folder</code>
+      <code><![CDATA[$folder]]></code>
       <code><![CDATA[$this->fileEncrypted[$fileId]]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>Folder</code>
+      <code><![CDATA[Folder]]></code>
     </MoreSpecificReturnType>
     <TypeDoesNotContainType>
       <code><![CDATA[$this->fileIsEncrypted]]></code>
@@ -800,50 +784,50 @@
   </file>
   <file src="apps/files/lib/Command/ScanAppData.php">
     <NullArgument>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="apps/files/lib/Controller/DirectEditingController.php">
     <InvalidArgument>
-      <code>$templateId</code>
+      <code><![CDATA[$templateId]]></code>
     </InvalidArgument>
     <UndefinedInterfaceMethod>
-      <code>getTemplates</code>
-      <code>open</code>
+      <code><![CDATA[getTemplates]]></code>
+      <code><![CDATA[open]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/files/lib/Helper.php">
     <UndefinedInterfaceMethod>
-      <code>$file</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
-      <code>$i</code>
+      <code><![CDATA[$file]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
+      <code><![CDATA[$i]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/files/lib/Service/OwnershipTransferService.php">
     <UndefinedInterfaceMethod>
-      <code>isReadyForUser</code>
+      <code><![CDATA[isReadyForUser]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/files_external/appinfo/routes.php">
     <InvalidScope>
-      <code>$this</code>
+      <code><![CDATA[$this]]></code>
     </InvalidScope>
   </file>
   <file src="apps/files_external/lib/Controller/StoragesController.php">
     <RedundantCast>
       <code><![CDATA[(int)$e->getCode()]]></code>
-      <code>(int)$status</code>
+      <code><![CDATA[(int)$status]]></code>
     </RedundantCast>
   </file>
   <file src="apps/files_external/lib/Lib/Backend/Backend.php">
@@ -856,8 +840,14 @@
   </file>
   <file src="apps/files_external/lib/Lib/Storage/SFTP.php">
     <InternalMethod>
-      <code>put</code>
+      <code><![CDATA[put]]></code>
     </InternalMethod>
+    <InvalidNullableReturnType>
+      <code><![CDATA[int]]></code>
+    </InvalidNullableReturnType>
+    <NullableReturnStatement>
+      <code><![CDATA[$size]]></code>
+    </NullableReturnStatement>
   </file>
   <file src="apps/files_external/lib/Lib/Storage/SMB.php">
     <RedundantCast>
@@ -875,59 +865,59 @@
       <code><![CDATA[$object->lastModified]]></code>
     </InvalidArgument>
     <InvalidNullableReturnType>
-      <code>filetype</code>
-      <code>fopen</code>
+      <code><![CDATA[filetype]]></code>
+      <code><![CDATA[fopen]]></code>
     </InvalidNullableReturnType>
   </file>
   <file src="apps/files_external/lib/Migration/DummyUserSession.php">
     <InvalidReturnType>
-      <code>login</code>
+      <code><![CDATA[login]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/files_external/lib/MountConfig.php">
     <InternalMethod>
-      <code>decrypt</code>
-      <code>encrypt</code>
-      <code>setIV</code>
-      <code>setIV</code>
-      <code>setKey</code>
+      <code><![CDATA[decrypt]]></code>
+      <code><![CDATA[encrypt]]></code>
+      <code><![CDATA[setIV]]></code>
+      <code><![CDATA[setIV]]></code>
+      <code><![CDATA[setKey]]></code>
     </InternalMethod>
     <TooManyArguments>
-      <code>test</code>
+      <code><![CDATA[test]]></code>
     </TooManyArguments>
   </file>
   <file src="apps/files_sharing/lib/Controller/ShareAPIController.php">
     <RedundantCast>
-      <code>(int)$code</code>
-      <code>(int)$code</code>
+      <code><![CDATA[(int)$code]]></code>
+      <code><![CDATA[(int)$code]]></code>
     </RedundantCast>
     <UndefinedClass>
-      <code>\OCA\Circles\Api\v1\Circles</code>
-      <code>\OCA\Circles\Api\v1\Circles</code>
+      <code><![CDATA[\OCA\Circles\Api\v1\Circles]]></code>
+      <code><![CDATA[\OCA\Circles\Api\v1\Circles]]></code>
     </UndefinedClass>
     <UndefinedDocblockClass>
       <code><![CDATA[$this->getRoomShareHelper()]]></code>
       <code><![CDATA[$this->getRoomShareHelper()]]></code>
       <code><![CDATA[$this->getRoomShareHelper()]]></code>
-      <code>\OCA\Talk\Share\Helper\ShareAPIController</code>
+      <code><![CDATA[\OCA\Talk\Share\Helper\ShareAPIController]]></code>
     </UndefinedDocblockClass>
   </file>
   <file src="apps/files_sharing/lib/Controller/ShareController.php">
     <InvalidArgument>
-      <code>$files_list</code>
+      <code><![CDATA[$files_list]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/files_sharing/lib/External/Manager.php">
     <LessSpecificReturnStatement>
-      <code>$mount</code>
+      <code><![CDATA[$mount]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>Mount</code>
+      <code><![CDATA[Mount]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="apps/files_sharing/lib/External/Scanner.php">
     <MoreSpecificImplementedParamType>
-      <code>$cacheData</code>
+      <code><![CDATA[$cacheData]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php">
@@ -937,26 +927,26 @@
   </file>
   <file src="apps/files_sharing/lib/MountProvider.php">
     <RedundantFunctionCall>
-      <code>array_values</code>
+      <code><![CDATA[array_values]]></code>
     </RedundantFunctionCall>
   </file>
   <file src="apps/files_sharing/lib/ShareBackend/File.php">
     <InvalidArgument>
-      <code>$itemSource</code>
-      <code>$itemSource</code>
+      <code><![CDATA[$itemSource]]></code>
+      <code><![CDATA[$itemSource]]></code>
     </InvalidArgument>
     <MoreSpecificImplementedParamType>
-      <code>$shareWith</code>
+      <code><![CDATA[$shareWith]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="apps/files_sharing/lib/ShareBackend/Folder.php">
     <UndefinedInterfaceMethod>
-      <code>fetchRow</code>
+      <code><![CDATA[fetchRow]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/files_sharing/lib/SharedMount.php">
     <InvalidReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/files_sharing/lib/SharedStorage.php">
@@ -964,10 +954,10 @@
       <code><![CDATA[$this->sourceRootInfo]]></code>
     </FalsableReturnStatement>
     <InvalidNullableReturnType>
-      <code>ICacheEntry</code>
+      <code><![CDATA[ICacheEntry]]></code>
     </InvalidNullableReturnType>
     <InvalidReturnStatement>
-      <code>new FailedCache()</code>
+      <code><![CDATA[new FailedCache()]]></code>
     </InvalidReturnStatement>
     <NullableReturnStatement>
       <code><![CDATA[$this->sourceRootInfo]]></code>
@@ -975,7 +965,7 @@
   </file>
   <file src="apps/files_sharing/lib/Updater.php">
     <UndefinedMethod>
-      <code>moveMount</code>
+      <code><![CDATA[moveMount]]></code>
     </UndefinedMethod>
   </file>
   <file src="apps/files_sharing/templates/public.php">
@@ -986,7 +976,7 @@
   </file>
   <file src="apps/files_trashbin/lib/Sabre/AbstractTrash.php">
     <InvalidNullableReturnType>
-      <code>int</code>
+      <code><![CDATA[int]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
       <code><![CDATA[$this->data->getId()]]></code>
@@ -994,66 +984,66 @@
   </file>
   <file src="apps/files_trashbin/lib/Sabre/AbstractTrashFolder.php">
     <InvalidReturnStatement>
-      <code>$entry</code>
+      <code><![CDATA[$entry]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>ITrash</code>
+      <code><![CDATA[ITrash]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/files_trashbin/lib/Sabre/RestoreFolder.php">
     <InvalidNullableReturnType>
-      <code>getChild</code>
+      <code><![CDATA[getChild]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="apps/files_trashbin/lib/Sabre/RootCollection.php">
     <MismatchingDocblockReturnType>
-      <code>INode</code>
+      <code><![CDATA[INode]]></code>
     </MismatchingDocblockReturnType>
   </file>
   <file src="apps/files_trashbin/lib/Sabre/TrashRoot.php">
     <InvalidReturnStatement>
-      <code>$entry</code>
+      <code><![CDATA[$entry]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>ITrash</code>
+      <code><![CDATA[ITrash]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/files_trashbin/lib/Trash/LegacyTrashBackend.php">
     <UndefinedInterfaceMethod>
-      <code>$file</code>
+      <code><![CDATA[$file]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/files_trashbin/lib/Trashbin.php">
     <FalsableReturnStatement>
-      <code>false</code>
+      <code><![CDATA[false]]></code>
     </FalsableReturnStatement>
     <InvalidArgument>
-      <code>$timestamp</code>
+      <code><![CDATA[$timestamp]]></code>
     </InvalidArgument>
     <InvalidScalarArgument>
-      <code>$timestamp</code>
+      <code><![CDATA[$timestamp]]></code>
     </InvalidScalarArgument>
   </file>
   <file src="apps/files_versions/appinfo/routes.php">
     <InvalidScope>
-      <code>$this</code>
-      <code>$this</code>
+      <code><![CDATA[$this]]></code>
+      <code><![CDATA[$this]]></code>
     </InvalidScope>
   </file>
   <file src="apps/files_versions/lib/Sabre/RestoreFolder.php">
     <InvalidNullableReturnType>
-      <code>getChild</code>
+      <code><![CDATA[getChild]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="apps/files_versions/lib/Sabre/VersionHome.php">
     <InvalidNullableReturnType>
-      <code>getChild</code>
+      <code><![CDATA[getChild]]></code>
     </InvalidNullableReturnType>
   </file>
   <file src="apps/files_versions/lib/Storage.php">
@@ -1073,23 +1063,23 @@
   </file>
   <file src="apps/provisioning_api/lib/Controller/UsersController.php">
     <TypeDoesNotContainNull>
-      <code>$groupid === null</code>
-      <code>$groupid === null</code>
+      <code><![CDATA[$groupid === null]]></code>
+      <code><![CDATA[$groupid === null]]></code>
     </TypeDoesNotContainNull>
   </file>
   <file src="apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php">
     <InvalidReturnType>
-      <code>Response</code>
+      <code><![CDATA[Response]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/settings/lib/AppInfo/Application.php">
     <UndefinedInterfaceMethod>
-      <code>getSettingsManager</code>
+      <code><![CDATA[getSettingsManager]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/settings/lib/Controller/AppSettingsController.php">
     <UndefinedInterfaceMethod>
-      <code>ignoreNextcloudRequirementForApp</code>
+      <code><![CDATA[ignoreNextcloudRequirementForApp]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/settings/lib/Hooks.php">
@@ -1099,12 +1089,12 @@
   </file>
   <file src="apps/settings/lib/Settings/Admin/Security.php">
     <UndefinedInterfaceMethod>
-      <code>isReady</code>
+      <code><![CDATA[isReady]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/settings/lib/Settings/Admin/Sharing.php">
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="apps/sharebymail/lib/ShareByMailProvider.php">
@@ -1121,79 +1111,282 @@
   </file>
   <file src="apps/theming/lib/Jobs/MigrateBackgroundImages.php">
     <OverriddenInterfaceConstant>
-      <code>TIME_SENSITIVE</code>
+      <code><![CDATA[TIME_SENSITIVE]]></code>
     </OverriddenInterfaceConstant>
   </file>
   <file src="apps/theming/lib/Util.php">
     <InvalidReturnStatement>
+      <code><![CDATA[$svg]]></code>
       <code><![CDATA[array_values($color->getRgb())]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>array{0: int, 1: int, 2: int}</code>
+      <code><![CDATA[array{0: int, 1: int, 2: int}]]></code>
+      <code><![CDATA[string]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/user_ldap/ajax/getNewServerConfigPrefix.php">
     <InvalidScalarArgument>
-      <code>$ln + 1</code>
+      <code><![CDATA[$ln + 1]]></code>
     </InvalidScalarArgument>
   </file>
+  <file src="apps/user_ldap/ajax/wizard.php">
+    <UndefinedMagicPropertyAssignment>
+      <code><![CDATA[$con->ldapConfigurationActive]]></code>
+    </UndefinedMagicPropertyAssignment>
+  </file>
   <file src="apps/user_ldap/appinfo/routes.php">
     <InvalidScope>
-      <code>$this</code>
+      <code><![CDATA[$this]]></code>
     </InvalidScope>
   </file>
   <file src="apps/user_ldap/lib/Access.php">
     <InvalidReturnStatement>
-      <code>$uuid</code>
-      <code>$values</code>
+      <code><![CDATA[$uuid]]></code>
+      <code><![CDATA[$values]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string[]</code>
+      <code><![CDATA[string[]]]></code>
     </InvalidReturnType>
     <RedundantCast>
       <code><![CDATA[(int)$e->getCode()]]></code>
     </RedundantCast>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$this->connection->ldapAttributesForGroupSearch]]></code>
+      <code><![CDATA[$this->connection->ldapAttributesForUserSearch]]></code>
+      <code><![CDATA[$this->connection->ldapBase]]></code>
+      <code><![CDATA[$this->connection->ldapBaseGroups]]></code>
+      <code><![CDATA[$this->connection->ldapBaseGroups]]></code>
+      <code><![CDATA[$this->connection->ldapBaseGroups]]></code>
+      <code><![CDATA[$this->connection->ldapBaseUsers]]></code>
+      <code><![CDATA[$this->connection->ldapBaseUsers]]></code>
+      <code><![CDATA[$this->connection->ldapBaseUsers]]></code>
+      <code><![CDATA[$this->connection->ldapBaseUsers]]></code>
+      <code><![CDATA[$this->connection->ldapBaseUsers]]></code>
+      <code><![CDATA[$this->connection->ldapCacheTTL]]></code>
+      <code><![CDATA[$this->connection->ldapCacheTTL]]></code>
+      <code><![CDATA[$this->connection->ldapExpertUUIDGroupAttr]]></code>
+      <code><![CDATA[$this->connection->ldapExpertUUIDGroupAttr]]></code>
+      <code><![CDATA[$this->connection->ldapExpertUUIDUserAttr]]></code>
+      <code><![CDATA[$this->connection->ldapExpertUUIDUserAttr]]></code>
+      <code><![CDATA[$this->connection->ldapExpertUUIDUserAttr]]></code>
+      <code><![CDATA[$this->connection->ldapExpertUsernameAttr]]></code>
+      <code><![CDATA[$this->connection->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->connection->ldapIgnoreNamingRules]]></code>
+      <code><![CDATA[$this->connection->ldapLoginFilter]]></code>
+      <code><![CDATA[$this->connection->ldapLoginFilter]]></code>
+      <code><![CDATA[$this->connection->ldapPagingSize]]></code>
+      <code><![CDATA[$this->connection->ldapPagingSize]]></code>
+      <code><![CDATA[$this->connection->ldapPagingSize]]></code>
+      <code><![CDATA[$this->connection->ldapPagingSize]]></code>
+      <code><![CDATA[$this->connection->ldapPagingSize]]></code>
+      <code><![CDATA[$this->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapUserDisplayName2]]></code>
+      <code><![CDATA[$this->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$this->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$this->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$this->connection->ldapUuidUserAttribute]]></code>
+      <code><![CDATA[$this->connection->turnOnPasswordChange]]></code>
+    </UndefinedMagicPropertyFetch>
+  </file>
+  <file src="apps/user_ldap/lib/Command/CreateEmptyConfig.php">
+    <UndefinedMagicPropertyAssignment>
+      <code><![CDATA[$configHolder->ldapConfigurationActive]]></code>
+    </UndefinedMagicPropertyAssignment>
+  </file>
+  <file src="apps/user_ldap/lib/Command/PromoteGroup.php">
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$access->connection->ldapAdminGroup]]></code>
+    </UndefinedMagicPropertyFetch>
+  </file>
+  <file src="apps/user_ldap/lib/Configuration.php">
+    <UndefinedThisPropertyFetch>
+      <code><![CDATA[$this->ldapUserAvatarRule]]></code>
+    </UndefinedThisPropertyFetch>
   </file>
   <file src="apps/user_ldap/lib/Connection.php">
     <NoValue>
-      <code>$subj</code>
+      <code><![CDATA[$subj]]></code>
     </NoValue>
     <ParadoxicalCondition>
-      <code>default:
+      <code><![CDATA[default:
 						$subj = $key;
-						break;</code>
+						break;]]></code>
     </ParadoxicalCondition>
+    <UndefinedMagicPropertyAssignment>
+      <code><![CDATA[$this->configuration->ldapBackupPort]]></code>
+      <code><![CDATA[$this->configuration->ldapTLS]]></code>
+    </UndefinedMagicPropertyAssignment>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$this->configuration->ldapAgentName]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentName]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentName]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentPassword]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentPassword]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentPassword]]></code>
+      <code><![CDATA[$this->configuration->ldapBackupPort]]></code>
+      <code><![CDATA[$this->configuration->ldapBase]]></code>
+      <code><![CDATA[$this->configuration->ldapBase]]></code>
+      <code><![CDATA[$this->configuration->ldapBaseGroups]]></code>
+      <code><![CDATA[$this->configuration->ldapBaseUsers]]></code>
+      <code><![CDATA[$this->configuration->ldapCacheTTL]]></code>
+      <code><![CDATA[$this->configuration->ldapCacheTTL]]></code>
+      <code><![CDATA[$this->configuration->ldapConfigurationActive]]></code>
+      <code><![CDATA[$this->configuration->ldapConfigurationActive]]></code>
+      <code><![CDATA[$this->configuration->ldapConfigurationActive]]></code>
+      <code><![CDATA[$this->configuration->ldapConnectionTimeout]]></code>
+      <code><![CDATA[$this->configuration->ldapHost]]></code>
+      <code><![CDATA[$this->configuration->ldapHost]]></code>
+      <code><![CDATA[$this->configuration->ldapLoginFilter]]></code>
+      <code><![CDATA[$this->configuration->ldapOverrideMainServer]]></code>
+      <code><![CDATA[$this->configuration->ldapPort]]></code>
+      <code><![CDATA[$this->configuration->ldapTLS]]></code>
+      <code><![CDATA[$this->configuration->ldapTLS]]></code>
+      <code><![CDATA[$this->configuration->turnOffCertCheck]]></code>
+    </UndefinedMagicPropertyFetch>
+  </file>
+  <file src="apps/user_ldap/lib/Controller/ConfigAPIController.php">
+    <UndefinedMagicPropertyAssignment>
+      <code><![CDATA[$configHolder->ldapConfigurationActive]]></code>
+    </UndefinedMagicPropertyAssignment>
   </file>
   <file src="apps/user_ldap/lib/Group_LDAP.php">
+    <InvalidArgument>
+      <code><![CDATA[$filterParts]]></code>
+      <code><![CDATA[$filterParts]]></code>
+      <code><![CDATA[[
+						str_replace('%uid', trim($member), $this->access->connection->ldapLoginFilter),
+						$this->access->combineFilterWithAnd([
+							$this->access->getFilterPartForUserSearch($search),
+							$this->access->connection->ldapUserFilter
+						])
+					]]]></code>
+      <code><![CDATA[[
+					str_replace('%uid', $member, $this->access->connection->ldapLoginFilter),
+					$this->access->getFilterPartForUserSearch($search)
+				]]]></code>
+    </InvalidArgument>
     <InvalidScalarArgument>
-      <code>$groupID</code>
+      <code><![CDATA[$groupID]]></code>
     </InvalidScalarArgument>
+    <UndefinedMagicPropertyAssignment>
+      <code><![CDATA[$this->access->connection->ldapMatchingRuleInChainState]]></code>
+      <code><![CDATA[$this->access->connection->ldapMatchingRuleInChainState]]></code>
+    </UndefinedMagicPropertyAssignment>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$this->access->connection->hasMemberOfFilterSupport]]></code>
+      <code><![CDATA[$this->access->connection->hasMemberOfFilterSupport]]></code>
+      <code><![CDATA[$this->access->connection->ldapAdminGroup]]></code>
+      <code><![CDATA[$this->access->connection->ldapBaseGroups]]></code>
+      <code><![CDATA[$this->access->connection->ldapDynamicGroupMemberURL]]></code>
+      <code><![CDATA[$this->access->connection->ldapDynamicGroupMemberURL]]></code>
+      <code><![CDATA[$this->access->connection->ldapGidNumber]]></code>
+      <code><![CDATA[$this->access->connection->ldapGidNumber]]></code>
+      <code><![CDATA[$this->access->connection->ldapGidNumber]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupMemberAssocAttr]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupMemberAssocAttr]]></code>
+      <code><![CDATA[$this->access->connection->ldapGroupMemberAssocAttr]]></code>
+      <code><![CDATA[$this->access->connection->ldapHost]]></code>
+      <code><![CDATA[$this->access->connection->ldapLoginFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapLoginFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapLoginFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapMatchingRuleInChainState]]></code>
+      <code><![CDATA[$this->access->connection->ldapMatchingRuleInChainState]]></code>
+      <code><![CDATA[$this->access->connection->ldapNestedGroups]]></code>
+      <code><![CDATA[$this->access->connection->ldapNestedGroups]]></code>
+      <code><![CDATA[$this->access->connection->ldapNestedGroups]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$this->access->connection->useMemberOfToDetectMembership]]></code>
+      <code><![CDATA[$this->access->connection->useMemberOfToDetectMembership]]></code>
+    </UndefinedMagicPropertyFetch>
   </file>
   <file src="apps/user_ldap/lib/Group_Proxy.php">
     <ParamNameMismatch>
-      <code>$gid</code>
+      <code><![CDATA[$gid]]></code>
     </ParamNameMismatch>
+    <UnsupportedPropertyReferenceUsage>
+      <code><![CDATA[$this->refBackend = &$this->backends[$configPrefix]]]></code>
+    </UnsupportedPropertyReferenceUsage>
+  </file>
+  <file src="apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php">
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$access->connection->ldapExtStorageHomeAttribute]]></code>
+    </UndefinedMagicPropertyFetch>
   </file>
   <file src="apps/user_ldap/lib/Jobs/Sync.php">
     <InvalidOperand>
-      <code>$i</code>
+      <code><![CDATA[$i]]></code>
     </InvalidOperand>
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$access->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$access->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$connection->ldapPagingSize]]></code>
+      <code><![CDATA[$ldapConfig->ldapPagingSize]]></code>
+    </UndefinedMagicPropertyFetch>
+  </file>
+  <file src="apps/user_ldap/lib/LDAP.php">
+    <UndefinedVariable>
+      <code><![CDATA[$oldHandler]]></code>
+    </UndefinedVariable>
   </file>
   <file src="apps/user_ldap/lib/Mapping/AbstractMapping.php">
     <RedundantCondition>
-      <code>isset($qb)</code>
+      <code><![CDATA[isset($qb)]]></code>
     </RedundantCondition>
     <TypeDoesNotContainNull>
-      <code>isset($qb)</code>
+      <code><![CDATA[isset($qb)]]></code>
     </TypeDoesNotContainNull>
   </file>
   <file src="apps/user_ldap/lib/User/Manager.php">
     <InvalidDocblock>
-      <code>public function setLdapAccess(Access $access) {</code>
+      <code><![CDATA[public function setLdapAccess(Access $access) {]]></code>
     </InvalidDocblock>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$this->access->getConnection()->homeFolderNamingRule]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributeAddress]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributeBiography]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributeFediverse]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributeHeadline]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributeOrganisation]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributePhone]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributeRole]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributeTwitter]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapAttributeWebsite]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapEmailAttribute]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapExpertUUIDUserAttr]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapExtStorageHomeAttribute]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapQuotaAttribute]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->access->getConnection()->ldapUserDisplayName2]]></code>
+    </UndefinedMagicPropertyFetch>
   </file>
   <file src="apps/user_ldap/lib/User/User.php">
     <FalsableReturnStatement>
@@ -1203,46 +1396,137 @@
       <code><![CDATA[$this->refreshedFeatures]]></code>
     </InvalidPropertyAssignmentValue>
     <InvalidReturnType>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </InvalidReturnType>
     <RedundantCondition>
       <code><![CDATA[$aQuota && (count($aQuota) > 0)]]></code>
     </RedundantCondition>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$this->access->connection->homeFolderNamingRule]]></code>
+      <code><![CDATA[$this->connection->homeFolderNamingRule]]></code>
+      <code><![CDATA[$this->connection->ldapAttributeAddress]]></code>
+      <code><![CDATA[$this->connection->ldapAttributeBiography]]></code>
+      <code><![CDATA[$this->connection->ldapAttributeFediverse]]></code>
+      <code><![CDATA[$this->connection->ldapAttributeHeadline]]></code>
+      <code><![CDATA[$this->connection->ldapAttributeOrganisation]]></code>
+      <code><![CDATA[$this->connection->ldapAttributePhone]]></code>
+      <code><![CDATA[$this->connection->ldapAttributeRole]]></code>
+      <code><![CDATA[$this->connection->ldapAttributeTwitter]]></code>
+      <code><![CDATA[$this->connection->ldapAttributeWebsite]]></code>
+      <code><![CDATA[$this->connection->ldapDefaultPPolicyDN]]></code>
+      <code><![CDATA[$this->connection->ldapEmailAttribute]]></code>
+      <code><![CDATA[$this->connection->ldapEmailAttribute]]></code>
+      <code><![CDATA[$this->connection->ldapExtStorageHomeAttribute]]></code>
+      <code><![CDATA[$this->connection->ldapExtStorageHomeAttribute]]></code>
+      <code><![CDATA[$this->connection->ldapQuotaAttribute]]></code>
+      <code><![CDATA[$this->connection->ldapQuotaAttribute]]></code>
+      <code><![CDATA[$this->connection->ldapQuotaDefault]]></code>
+      <code><![CDATA[$this->connection->ldapQuotaDefault]]></code>
+      <code><![CDATA[$this->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->connection->ldapUserDisplayName2]]></code>
+      <code><![CDATA[$this->connection->turnOnPasswordChange]]></code>
+    </UndefinedMagicPropertyFetch>
   </file>
   <file src="apps/user_ldap/lib/User_LDAP.php">
     <ImplementedReturnTypeMismatch>
-      <code>string|false</code>
+      <code><![CDATA[string|false]]></code>
     </ImplementedReturnTypeMismatch>
     <MoreSpecificImplementedParamType>
-      <code>$limit</code>
-      <code>$offset</code>
+      <code><![CDATA[$limit]]></code>
+      <code><![CDATA[$offset]]></code>
     </MoreSpecificImplementedParamType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
     <RedundantCondition>
       <code><![CDATA[$displayName && (count($displayName) > 0)]]></code>
-      <code>is_string($dn)</code>
+      <code><![CDATA[is_string($dn)]]></code>
     </RedundantCondition>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$this->access->connection->ldapDefaultPPolicyDN]]></code>
+      <code><![CDATA[$this->access->connection->ldapHost]]></code>
+      <code><![CDATA[$this->access->connection->ldapHost]]></code>
+      <code><![CDATA[$this->access->connection->ldapPort]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserAvatarRule]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserDisplayName2]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$this->access->connection->ldapUserFilter]]></code>
+      <code><![CDATA[$this->access->connection->markRemnantsAsDisabled]]></code>
+      <code><![CDATA[$this->access->connection->turnOnPasswordChange]]></code>
+      <code><![CDATA[$this->access->connection->turnOnPasswordChange]]></code>
+    </UndefinedMagicPropertyFetch>
   </file>
   <file src="apps/user_ldap/lib/User_Proxy.php">
     <ParamNameMismatch>
-      <code>$uid</code>
+      <code><![CDATA[$uid]]></code>
     </ParamNameMismatch>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$this->getAccess(array_key_first($this->backends) ?? '')->connection->markRemnantsAsDisabled]]></code>
+    </UndefinedMagicPropertyFetch>
+    <UnsupportedPropertyReferenceUsage>
+      <code><![CDATA[$this->refBackend = &$this->backends[$configPrefix]]]></code>
+    </UnsupportedPropertyReferenceUsage>
   </file>
   <file src="apps/user_ldap/lib/Wizard.php">
     <InvalidArrayOffset>
-      <code>$possibleAttrs[$i]</code>
+      <code><![CDATA[$possibleAttrs[$i]]]></code>
     </InvalidArrayOffset>
+    <UndefinedMagicPropertyAssignment>
+      <code><![CDATA[$this->configuration->hasMemberOfFilterSupport]]></code>
+    </UndefinedMagicPropertyAssignment>
+    <UndefinedMagicPropertyFetch>
+      <code><![CDATA[$this->access->connection->ldapLoginFilter]]></code>
+      <code><![CDATA[$this->configuration->hasMemberOfFilterSupport]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentName]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentName]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentName]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentName]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentPassword]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentPassword]]></code>
+      <code><![CDATA[$this->configuration->ldapAgentPassword]]></code>
+      <code><![CDATA[$this->configuration->ldapBase]]></code>
+      <code><![CDATA[$this->configuration->ldapBase]]></code>
+      <code><![CDATA[$this->configuration->ldapBase]]></code>
+      <code><![CDATA[$this->configuration->ldapBase]]></code>
+      <code><![CDATA[$this->configuration->ldapBaseGroups]]></code>
+      <code><![CDATA[$this->configuration->ldapEmailAttribute]]></code>
+      <code><![CDATA[$this->configuration->ldapGroupDisplayName]]></code>
+      <code><![CDATA[$this->configuration->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->configuration->ldapGroupFilter]]></code>
+      <code><![CDATA[$this->configuration->ldapGroupFilterGroups]]></code>
+      <code><![CDATA[$this->configuration->ldapGroupFilterObjectclass]]></code>
+      <code><![CDATA[$this->configuration->ldapHost]]></code>
+      <code><![CDATA[$this->configuration->ldapHost]]></code>
+      <code><![CDATA[$this->configuration->ldapHost]]></code>
+      <code><![CDATA[$this->configuration->ldapHost]]></code>
+      <code><![CDATA[$this->configuration->ldapHost]]></code>
+      <code><![CDATA[$this->configuration->ldapLoginFilterAttributes]]></code>
+      <code><![CDATA[$this->configuration->ldapLoginFilterAttributes]]></code>
+      <code><![CDATA[$this->configuration->ldapLoginFilterEmail]]></code>
+      <code><![CDATA[$this->configuration->ldapLoginFilterUsername]]></code>
+      <code><![CDATA[$this->configuration->ldapPort]]></code>
+      <code><![CDATA[$this->configuration->ldapPort]]></code>
+      <code><![CDATA[$this->configuration->ldapTLS]]></code>
+      <code><![CDATA[$this->configuration->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->configuration->ldapUserDisplayName]]></code>
+      <code><![CDATA[$this->configuration->ldapUserFilter]]></code>
+      <code><![CDATA[$this->configuration->ldapUserFilter]]></code>
+      <code><![CDATA[$this->configuration->ldapUserFilter]]></code>
+      <code><![CDATA[$this->configuration->ldapUserFilter]]></code>
+      <code><![CDATA[$this->configuration->ldapUserFilterGroups]]></code>
+      <code><![CDATA[$this->configuration->ldapUserFilterObjectclass]]></code>
+    </UndefinedMagicPropertyFetch>
   </file>
   <file src="apps/user_status/lib/AppInfo/Application.php">
     <UndefinedInterfaceMethod>
-      <code>registerProvider</code>
+      <code><![CDATA[registerProvider]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="apps/workflowengine/lib/Check/AbstractStringCheck.php">
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="apps/workflowengine/lib/Check/FileSize.php">
@@ -1250,27 +1534,27 @@
       <code><![CDATA[$this->size]]></code>
     </FalsableReturnStatement>
     <InvalidPropertyAssignmentValue>
-      <code>$size</code>
+      <code><![CDATA[$size]]></code>
     </InvalidPropertyAssignmentValue>
     <InvalidReturnStatement>
       <code><![CDATA[$this->size]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/workflowengine/lib/Check/RequestRemoteAddress.php">
     <InvalidArgument>
-      <code>$decodedValue[1]</code>
-      <code>$decodedValue[1]</code>
-      <code>$decodedValue[1]</code>
-      <code>$decodedValue[1]</code>
+      <code><![CDATA[$decodedValue[1]]]></code>
+      <code><![CDATA[$decodedValue[1]]]></code>
+      <code><![CDATA[$decodedValue[1]]]></code>
+      <code><![CDATA[$decodedValue[1]]]></code>
     </InvalidArgument>
   </file>
   <file src="apps/workflowengine/lib/Check/RequestTime.php">
     <InvalidScalarArgument>
-      <code>$hour1</code>
-      <code>$minute1</code>
+      <code><![CDATA[$hour1]]></code>
+      <code><![CDATA[$minute1]]></code>
     </InvalidScalarArgument>
   </file>
   <file src="apps/workflowengine/lib/Check/TFileCheck.php">
@@ -1280,56 +1564,56 @@
   </file>
   <file src="apps/workflowengine/lib/Entity/File.php">
     <InvalidReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/workflowengine/lib/Manager.php">
     <InvalidArgument>
-      <code>$missingCheck</code>
+      <code><![CDATA[$missingCheck]]></code>
     </InvalidArgument>
     <InvalidOperand>
-      <code>$result</code>
+      <code><![CDATA[$result]]></code>
     </InvalidOperand>
     <InvalidReturnStatement>
-      <code>$result</code>
+      <code><![CDATA[$result]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidReturnType>
   </file>
   <file src="apps/workflowengine/lib/Service/RuleMatcher.php">
     <UndefinedInterfaceMethod>
-      <code>getAllConfiguredScopesForOperation</code>
-      <code>getChecks</code>
-      <code>getOperations</code>
-      <code>getOperations</code>
-      <code>isUserScopeEnabled</code>
+      <code><![CDATA[getAllConfiguredScopesForOperation]]></code>
+      <code><![CDATA[getChecks]]></code>
+      <code><![CDATA[getOperations]]></code>
+      <code><![CDATA[getOperations]]></code>
+      <code><![CDATA[isUserScopeEnabled]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="core/BackgroundJobs/CheckForUserCertificates.php">
     <ParamNameMismatch>
-      <code>$arguments</code>
+      <code><![CDATA[$arguments]]></code>
     </ParamNameMismatch>
   </file>
   <file src="core/Command/App/Install.php">
     <TypeDoesNotContainType>
-      <code>$result === false</code>
+      <code><![CDATA[$result === false]]></code>
     </TypeDoesNotContainType>
   </file>
   <file src="core/Command/App/ListApps.php">
     <LessSpecificImplementedReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </LessSpecificImplementedReturnType>
   </file>
   <file src="core/Command/App/Update.php">
     <RedundantCondition>
-      <code>$result === true</code>
+      <code><![CDATA[$result === true]]></code>
     </RedundantCondition>
   </file>
   <file src="core/Command/Config/Import.php">
     <InvalidScalarArgument>
-      <code>0</code>
-      <code>1</code>
+      <code><![CDATA[0]]></code>
+      <code><![CDATA[1]]></code>
     </InvalidScalarArgument>
   </file>
   <file src="core/Command/Config/ListConfigs.php">
@@ -1337,31 +1621,31 @@
       <code><![CDATA[$this->appConfig->getValues($app, false)]]></code>
     </FalsableReturnStatement>
     <TooManyArguments>
-      <code>getFilteredValues</code>
+      <code><![CDATA[getFilteredValues]]></code>
     </TooManyArguments>
   </file>
   <file src="core/Command/Db/ConvertType.php">
     <InvalidScalarArgument>
-      <code>0</code>
-      <code>1</code>
+      <code><![CDATA[0]]></code>
+      <code><![CDATA[1]]></code>
     </InvalidScalarArgument>
   </file>
   <file src="core/Command/Encryption/Enable.php">
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="core/Command/Log/File.php">
     <InvalidReturnStatement>
-      <code>[0]</code>
+      <code><![CDATA[[0]]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string[]</code>
+      <code><![CDATA[string[]]]></code>
     </InvalidReturnType>
   </file>
   <file src="core/Command/Log/Manage.php">
     <InvalidArgument>
-      <code>$levelNum</code>
+      <code><![CDATA[$levelNum]]></code>
     </InvalidArgument>
   </file>
   <file src="core/Command/Maintenance/DataFingerprint.php">
@@ -1369,43 +1653,48 @@
       <code><![CDATA[$this->timeFactory->getTime()]]></code>
     </InvalidScalarArgument>
   </file>
+  <file src="core/Command/Maintenance/Mimetype/GenerateMimetypeFileBuilder.php">
+    <InvalidArrayAccess>
+      <code><![CDATA[$key[0]]]></code>
+    </InvalidArrayAccess>
+  </file>
   <file src="core/Command/Maintenance/Mimetype/UpdateDB.php">
     <UndefinedInterfaceMethod>
-      <code>getAllMappings</code>
-      <code>updateFilecache</code>
+      <code><![CDATA[getAllMappings]]></code>
+      <code><![CDATA[updateFilecache]]></code>
     </UndefinedInterfaceMethod>
   </file>
-  <file src="core/Command/Maintenance/RepairShareOwnership.php">
-    <LessSpecificReturnStatement>
-      <code>$found</code>
-      <code>$found</code>
-    </LessSpecificReturnStatement>
-    <MoreSpecificReturnType>
-      <code>array{shareId: int, fileTarget: string, initiator: string, receiver: string, owner: string, mountOwner: string}[]</code>
-      <code>array{shareId: int, fileTarget: string, initiator: string, receiver: string, owner: string, mountOwner: string}[]</code>
-    </MoreSpecificReturnType>
+  <file src="core/Command/Preview/Generate.php">
+    <UndefinedVariable>
+      <code><![CDATA[$error]]></code>
+    </UndefinedVariable>
   </file>
   <file src="core/Command/Preview/Repair.php">
     <UndefinedInterfaceMethod>
-      <code>section</code>
-      <code>section</code>
+      <code><![CDATA[section]]></code>
+      <code><![CDATA[section]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="core/Command/Preview/ResetRenderedTexts.php">
     <InvalidReturnStatement>
-      <code>[]</code>
+      <code><![CDATA[[]]]></code>
     </InvalidReturnStatement>
   </file>
   <file src="core/Controller/ClientFlowLoginV2Controller.php">
     <TypeDoesNotContainType>
-      <code>!is_string($stateToken)</code>
+      <code><![CDATA[!is_string($stateToken)]]></code>
     </TypeDoesNotContainType>
   </file>
   <file src="core/Controller/CollaborationResourcesController.php">
     <UndefinedInterfaceMethod>
-      <code>searchCollections</code>
+      <code><![CDATA[searchCollections]]></code>
     </UndefinedInterfaceMethod>
   </file>
+  <file src="core/Controller/LoginController.php">
+    <UndefinedThisPropertyFetch>
+      <code><![CDATA[$emailConfig->__get('ldapLoginFilterEmail')]]></code>
+    </UndefinedThisPropertyFetch>
+  </file>
   <file src="core/Controller/LostController.php">
     <RedundantCast>
       <code><![CDATA[(int)$e->getCode()]]></code>
@@ -1413,7 +1702,7 @@
   </file>
   <file src="core/Controller/UnifiedSearchController.php">
     <UndefinedInterfaceMethod>
-      <code>findMatchingRoute</code>
+      <code><![CDATA[findMatchingRoute]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="core/Middleware/TwoFactorMiddleware.php">
@@ -1423,14 +1712,13 @@
   </file>
   <file src="core/routes.php">
     <InvalidScope>
-      <code>$this</code>
-      <code>$this</code>
+      <code><![CDATA[$this]]></code>
       <code><![CDATA[$this->create('core_ajax_update', '/core/ajax/update.php')]]></code>
     </InvalidScope>
   </file>
   <file src="core/templates/layout.public.php">
     <UndefinedInterfaceMethod>
-      <code>getIcon</code>
+      <code><![CDATA[getIcon]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/autoloader.php">
@@ -1440,12 +1728,12 @@
   </file>
   <file src="lib/base.php">
     <InvalidArgument>
-      <code>$restrictions</code>
+      <code><![CDATA[$restrictions]]></code>
     </InvalidArgument>
   </file>
   <file src="lib/private/Activity/Event.php">
     <ParamNameMismatch>
-      <code>$affectedUser</code>
+      <code><![CDATA[$affectedUser]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Activity/Manager.php">
@@ -1458,7 +1746,7 @@
       <code><![CDATA[$this->settings]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>ActivitySettings[]</code>
+      <code><![CDATA[ActivitySettings[]]]></code>
     </MoreSpecificReturnType>
     <TypeDoesNotContainType>
       <code><![CDATA[!is_string($currentUserId) && $currentUserId !== null]]></code>
@@ -1466,47 +1754,53 @@
   </file>
   <file src="lib/private/AllConfig.php">
     <MoreSpecificImplementedParamType>
-      <code>$key</code>
+      <code><![CDATA[$key]]></code>
     </MoreSpecificImplementedParamType>
     <TypeDoesNotContainType>
-      <code>!is_array($userIds)</code>
+      <code><![CDATA[!is_array($userIds)]]></code>
     </TypeDoesNotContainType>
   </file>
   <file src="lib/private/App/AppManager.php">
     <LessSpecificImplementedReturnType>
-      <code>array</code>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
+      <code><![CDATA[array]]></code>
     </LessSpecificImplementedReturnType>
   </file>
   <file src="lib/private/App/AppStore/Fetcher/Fetcher.php">
     <TooManyArguments>
-      <code>fetch</code>
+      <code><![CDATA[fetch]]></code>
     </TooManyArguments>
   </file>
   <file src="lib/private/App/DependencyAnalyzer.php">
     <InvalidNullableReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>version_compare($first, $second, $operator)</code>
+      <code><![CDATA[version_compare($first, $second, $operator)]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/private/App/InfoParser.php">
     <InvalidArrayOffset>
-      <code>$array[$element][]</code>
-      <code>$array[$element][]</code>
+      <code><![CDATA[$array[$element][]]]></code>
+      <code><![CDATA[$array[$element][]]]></code>
     </InvalidArrayOffset>
     <InvalidReturnStatement>
-      <code>(string)$xml</code>
+      <code><![CDATA[(string)$xml]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/AppConfig.php">
     <NullableReturnStatement>
       <code><![CDATA[$this->fastCache[$app][$key] ?? $default]]></code>
     </NullableReturnStatement>
+    <UnsupportedPropertyReferenceUsage>
+      <code><![CDATA[$cache = &$this->fastCache]]></code>
+      <code><![CDATA[$cache = &$this->fastCache]]></code>
+      <code><![CDATA[$cache = &$this->lazyCache]]></code>
+      <code><![CDATA[$cache = &$this->lazyCache]]></code>
+    </UnsupportedPropertyReferenceUsage>
   </file>
   <file src="lib/private/AppFramework/Bootstrap/Coordinator.php">
     <InvalidPropertyAssignmentValue>
@@ -1515,21 +1809,21 @@
   </file>
   <file src="lib/private/AppFramework/Bootstrap/FunctionInjector.php">
     <UndefinedMethod>
-      <code>getName</code>
+      <code><![CDATA[getName]]></code>
     </UndefinedMethod>
   </file>
   <file src="lib/private/AppFramework/DependencyInjection/DIContainer.php">
     <ImplementedReturnTypeMismatch>
-      <code>boolean|null</code>
+      <code><![CDATA[boolean|null]]></code>
     </ImplementedReturnTypeMismatch>
     <InvalidReturnStatement>
       <code><![CDATA[$this->server]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>\OCP\IServerContainer</code>
+      <code><![CDATA[\OCP\IServerContainer]]></code>
     </InvalidReturnType>
     <UndefinedInterfaceMethod>
-      <code>getAppDataDir</code>
+      <code><![CDATA[getAppDataDir]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/AppFramework/Http/Dispatcher.php">
@@ -1537,45 +1831,53 @@
       <code><![CDATA[$this->request->method]]></code>
     </NoInterfaceProperties>
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="lib/private/AppFramework/Http/Output.php">
     <InvalidReturnStatement>
-      <code>@readfile($path)</code>
-      <code>http_response_code()</code>
+      <code><![CDATA[@readfile($path)]]></code>
+      <code><![CDATA[http_response_code()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>bool</code>
-      <code>int</code>
+      <code><![CDATA[bool]]></code>
+      <code><![CDATA[int]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/AppFramework/Http/Request.php">
     <NullableReturnStatement>
-      <code>$name</code>
-      <code>$remoteAddress</code>
+      <code><![CDATA[$remoteAddress]]></code>
       <code><![CDATA[$this->getOverwriteHost()]]></code>
-      <code><![CDATA[$this->method]]></code>
-      <code>$uri</code>
+      <code><![CDATA[$uri]]></code>
       <code><![CDATA[isset($this->cookies[$key]) ? $this->cookies[$key] : null]]></code>
       <code><![CDATA[isset($this->env[$key]) ? $this->env[$key] : null]]></code>
       <code><![CDATA[isset($this->files[$key]) ? $this->files[$key] : null]]></code>
     </NullableReturnStatement>
     <RedundantCondition>
-      <code>\is_array($params)</code>
+      <code><![CDATA[\is_array($params)]]></code>
     </RedundantCondition>
     <UndefinedFunction>
-      <code>\Sabre\HTTP\decodePath($pathInfo)</code>
+      <code><![CDATA[\Sabre\HTTP\decodePath($pathInfo)]]></code>
     </UndefinedFunction>
+    <UndefinedThisPropertyFetch>
+      <code><![CDATA[$this->method]]></code>
+      <code><![CDATA[$this->method]]></code>
+      <code><![CDATA[$this->method]]></code>
+      <code><![CDATA[$this->method]]></code>
+      <code><![CDATA[$this->method]]></code>
+      <code><![CDATA[$this->parameters]]></code>
+      <code><![CDATA[$this->server]]></code>
+      <code><![CDATA[$this->server]]></code>
+    </UndefinedThisPropertyFetch>
   </file>
   <file src="lib/private/AppFramework/Logger.php">
     <InvalidReturnType>
-      <code>log</code>
+      <code><![CDATA[log]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/AppFramework/Middleware/OCSMiddleware.php">
     <InternalMethod>
-      <code>setOCSVersion</code>
+      <code><![CDATA[setOCSVersion]]></code>
     </InternalMethod>
   </file>
   <file src="lib/private/AppFramework/Middleware/Security/CORSMiddleware.php">
@@ -1589,7 +1891,7 @@
       <code><![CDATA[$this->request->server]]></code>
     </NoInterfaceProperties>
     <UndefinedClass>
-      <code>\OCA\Talk\Controller\PageController</code>
+      <code><![CDATA[\OCA\Talk\Controller\PageController]]></code>
     </UndefinedClass>
   </file>
   <file src="lib/private/AppFramework/Routing/RouteConfig.php">
@@ -1599,7 +1901,7 @@
   </file>
   <file src="lib/private/AppFramework/Services/AppConfig.php">
     <MoreSpecificImplementedParamType>
-      <code>$default</code>
+      <code><![CDATA[$default]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="lib/private/AppFramework/Utility/SimpleContainer.php">
@@ -1645,43 +1947,46 @@
 		}, $constructor->getParameters()))]]></code>
     </LessSpecificReturnStatement>
     <MissingTemplateParam>
-      <code>ArrayAccess</code>
+      <code><![CDATA[ArrayAccess]]></code>
     </MissingTemplateParam>
     <MoreSpecificReturnType>
-      <code>\stdClass</code>
+      <code><![CDATA[\stdClass]]></code>
     </MoreSpecificReturnType>
     <RedundantCast>
       <code><![CDATA[(int) $e->getCode()]]></code>
     </RedundantCast>
   </file>
   <file src="lib/private/Archive/TAR.php">
+    <NoValue>
+      <code><![CDATA[return $string;]]></code>
+    </NoValue>
     <UndefinedDocblockClass>
       <code><![CDATA[$this->tar->extractInString($path)]]></code>
     </UndefinedDocblockClass>
   </file>
   <file src="lib/private/Authentication/LoginCredentials/Store.php">
     <RedundantCondition>
-      <code>$trySession</code>
+      <code><![CDATA[$trySession]]></code>
     </RedundantCondition>
   </file>
   <file src="lib/private/Authentication/Token/PublicKeyToken.php">
     <UndefinedMagicMethod>
-      <code>getExpires</code>
-      <code>getLastCheck</code>
-      <code>getLoginName</code>
-      <code>getName</code>
-      <code>getPassword</code>
-      <code>getRemember</code>
-      <code>getScope</code>
-      <code>setExpires</code>
-      <code>setLastCheck</code>
-      <code>setName</code>
-      <code>setPassword</code>
-      <code>setPasswordInvalid</code>
-      <code>setScope</code>
-      <code>setScope</code>
-      <code>setToken</code>
-      <code>setType</code>
+      <code><![CDATA[getExpires]]></code>
+      <code><![CDATA[getLastCheck]]></code>
+      <code><![CDATA[getLoginName]]></code>
+      <code><![CDATA[getName]]></code>
+      <code><![CDATA[getPassword]]></code>
+      <code><![CDATA[getRemember]]></code>
+      <code><![CDATA[getScope]]></code>
+      <code><![CDATA[setExpires]]></code>
+      <code><![CDATA[setLastCheck]]></code>
+      <code><![CDATA[setName]]></code>
+      <code><![CDATA[setPassword]]></code>
+      <code><![CDATA[setPasswordInvalid]]></code>
+      <code><![CDATA[setScope]]></code>
+      <code><![CDATA[setScope]]></code>
+      <code><![CDATA[setToken]]></code>
+      <code><![CDATA[setType]]></code>
     </UndefinedMagicMethod>
   </file>
   <file src="lib/private/Authentication/TwoFactorAuth/ProviderSet.php">
@@ -1690,13 +1995,13 @@
     </InvalidArgument>
     <InvalidPropertyAssignmentValue>
       <code><![CDATA[$this->providers]]></code>
-      <code>[]</code>
+      <code><![CDATA[[]]]></code>
     </InvalidPropertyAssignmentValue>
     <InvalidReturnStatement>
       <code><![CDATA[$this->providers]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>IProvider[]</code>
+      <code><![CDATA[IProvider[]]]></code>
     </InvalidReturnType>
     <UndefinedInterfaceMethod>
       <code><![CDATA[$this->providers]]></code>
@@ -1704,27 +2009,27 @@
   </file>
   <file src="lib/private/Blurhash/Listener/GenerateBlurhashMetadata.php">
     <InvalidArgument>
-      <code>$image</code>
-      <code>$image</code>
-      <code>$image</code>
-      <code>$image</code>
+      <code><![CDATA[$image]]></code>
+      <code><![CDATA[$image]]></code>
+      <code><![CDATA[$image]]></code>
+      <code><![CDATA[$image]]></code>
     </InvalidArgument>
     <InvalidReturnStatement>
-      <code>($newImage !== false) ? $newImage : $image</code>
+      <code><![CDATA[($newImage !== false) ? $newImage : $image]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>GdImage|false</code>
+      <code><![CDATA[GdImage|false]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Cache/CappedMemoryCache.php">
     <MissingTemplateParam>
-      <code>\ArrayAccess</code>
+      <code><![CDATA[\ArrayAccess]]></code>
     </MissingTemplateParam>
   </file>
   <file src="lib/private/Cache/File.php">
     <LessSpecificImplementedReturnType>
-      <code>bool|mixed</code>
-      <code>bool|mixed</code>
+      <code><![CDATA[bool|mixed]]></code>
+      <code><![CDATA[bool|mixed]]></code>
     </LessSpecificImplementedReturnType>
   </file>
   <file src="lib/private/Calendar/Manager.php">
@@ -1746,7 +2051,7 @@
 		)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>ICreateFromString[]</code>
+      <code><![CDATA[ICreateFromString[]]]></code>
     </MoreSpecificReturnType>
     <NamedArgumentNotAllowed>
       <code><![CDATA[array_map(function ($registration) use ($principalUri, $calendarUris) {
@@ -1766,17 +2071,17 @@
   </file>
   <file src="lib/private/Command/CallableJob.php">
     <ParamNameMismatch>
-      <code>$serializedCallable</code>
+      <code><![CDATA[$serializedCallable]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Command/ClosureJob.php">
     <InvalidArgument>
-      <code>[LaravelClosure::class]</code>
+      <code><![CDATA[[LaravelClosure::class]]]></code>
     </InvalidArgument>
   </file>
   <file src="lib/private/Comments/Manager.php">
     <RedundantCast>
-      <code>(string)$id</code>
+      <code><![CDATA[(string)$id]]></code>
     </RedundantCast>
   </file>
   <file src="lib/private/Config.php">
@@ -1785,8 +2090,8 @@
       <code><![CDATA[$this->set($key, $value)]]></code>
     </InvalidOperand>
     <UndefinedVariable>
-      <code>$CONFIG</code>
-      <code>$CONFIG</code>
+      <code><![CDATA[$CONFIG]]></code>
+      <code><![CDATA[$CONFIG]]></code>
     </UndefinedVariable>
   </file>
   <file src="lib/private/Console/Application.php">
@@ -1796,12 +2101,12 @@
   </file>
   <file src="lib/private/ContactsManager.php">
     <InvalidArgument>
-      <code>$searchOptions</code>
+      <code><![CDATA[$searchOptions]]></code>
     </InvalidArgument>
   </file>
   <file src="lib/private/DB/AdapterMySQL.php">
     <InternalMethod>
-      <code>getParams</code>
+      <code><![CDATA[getParams]]></code>
     </InternalMethod>
     <InvalidArrayOffset>
       <code><![CDATA[$params['collation']]]></code>
@@ -1809,10 +2114,10 @@
   </file>
   <file src="lib/private/DB/Connection.php">
     <InternalMethod>
-      <code>getParams</code>
+      <code><![CDATA[getParams]]></code>
     </InternalMethod>
     <InvalidArgument>
-      <code>$params</code>
+      <code><![CDATA[$params]]></code>
     </InvalidArgument>
     <InvalidArrayOffset>
       <code><![CDATA[$params['adapter']]]></code>
@@ -1824,15 +2129,15 @@
       <code><![CDATA[is_int($original->getCode())]]></code>
     </RedundantCondition>
     <TypeDoesNotContainType>
-      <code>0</code>
+      <code><![CDATA[0]]></code>
     </TypeDoesNotContainType>
   </file>
   <file src="lib/private/DB/MigrationService.php">
     <LessSpecificReturnStatement>
-      <code>$s</code>
+      <code><![CDATA[$s]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>IMigrationStep</code>
+      <code><![CDATA[IMigrationStep]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php">
@@ -1840,13 +2145,13 @@
       <code><![CDATA[$this->functionBuilder->lower($x)]]></code>
     </ImplicitToStringCast>
     <InvalidArgument>
-      <code>$y</code>
-      <code>$y</code>
+      <code><![CDATA[$y]]></code>
+      <code><![CDATA[$y]]></code>
     </InvalidArgument>
   </file>
   <file src="lib/private/DB/QueryBuilder/ExpressionBuilder/MySqlExpressionBuilder.php">
     <InternalMethod>
-      <code>getParams</code>
+      <code><![CDATA[getParams]]></code>
     </InternalMethod>
     <InvalidArrayOffset>
       <code><![CDATA[$params['collation']]]></code>
@@ -1854,21 +2159,21 @@
   </file>
   <file src="lib/private/DB/QueryBuilder/QueryBuilder.php">
     <InvalidNullableReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>$alias</code>
+      <code><![CDATA[$alias]]></code>
     </NullableReturnStatement>
     <ParamNameMismatch>
-      <code>$selects</code>
+      <code><![CDATA[$selects]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/DB/QueryBuilder/QuoteHelper.php">
     <InvalidNullableReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>$string</code>
+      <code><![CDATA[$string]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/private/DateTimeFormatter.php">
@@ -1883,25 +2188,25 @@
 		])]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/DateTimeZone.php">
     <InvalidScalarArgument>
-      <code>$timestamp</code>
+      <code><![CDATA[$timestamp]]></code>
     </InvalidScalarArgument>
   </file>
   <file src="lib/private/Diagnostics/Query.php">
     <ImplementedReturnTypeMismatch>
-      <code>float</code>
+      <code><![CDATA[float]]></code>
     </ImplementedReturnTypeMismatch>
   </file>
   <file src="lib/private/Diagnostics/QueryLogger.php">
     <InvalidArgument>
-      <code>microtime(true)</code>
+      <code><![CDATA[microtime(true)]]></code>
     </InvalidArgument>
     <InvalidReturnType>
-      <code>stopQuery</code>
+      <code><![CDATA[stopQuery]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/DirectEditing/Manager.php">
@@ -1909,14 +2214,17 @@
       <code><![CDATA[$query->execute()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>TemplateResponse</code>
-      <code>int</code>
+      <code><![CDATA[TemplateResponse]]></code>
+      <code><![CDATA[int]]></code>
     </InvalidReturnType>
+    <NoValue>
+      <code><![CDATA[$filePath]]></code>
+    </NoValue>
     <UndefinedMethod>
-      <code>$template</code>
-      <code>$template</code>
-      <code>$template</code>
-      <code>$template</code>
+      <code><![CDATA[$template]]></code>
+      <code><![CDATA[$template]]></code>
+      <code><![CDATA[$template]]></code>
+      <code><![CDATA[$template]]></code>
     </UndefinedMethod>
   </file>
   <file src="lib/private/DirectEditing/Token.php">
@@ -1924,35 +2232,27 @@
       <code><![CDATA[$this->manager->getFileForToken($this->data['user_id'], $this->data['file_id'], $this->data['file_path'])]]></code>
     </LessSpecificReturnStatement>
     <UndefinedMethod>
-      <code>getShareForToken</code>
+      <code><![CDATA[getShareForToken]]></code>
     </UndefinedMethod>
   </file>
-  <file src="lib/private/Encryption/File.php">
-    <LessSpecificReturnStatement>
-      <code><![CDATA[['users' => $uniqueUserIds, 'public' => $public]]]></code>
-    </LessSpecificReturnStatement>
-    <MoreSpecificReturnType>
-      <code>array{users: string[], public: bool}</code>
-    </MoreSpecificReturnType>
-  </file>
   <file src="lib/private/Encryption/Keys/Storage.php">
     <InvalidNullableReturnType>
-      <code>deleteUserKey</code>
+      <code><![CDATA[deleteUserKey]]></code>
     </InvalidNullableReturnType>
     <NullArgument>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="lib/private/Encryption/Manager.php">
     <ImplementedReturnTypeMismatch>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </ImplementedReturnTypeMismatch>
   </file>
   <file src="lib/private/Federation/CloudFederationProviderManager.php">
     <ParamNameMismatch>
-      <code>$providerId</code>
+      <code><![CDATA[$providerId]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Files/AppData/AppData.php">
@@ -1960,58 +2260,58 @@
       <code><![CDATA[$this->folder]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>Folder</code>
+      <code><![CDATA[Folder]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="lib/private/Files/Cache/Cache.php">
     <InvalidArgument>
-      <code>$parentData</code>
+      <code><![CDATA[$parentData]]></code>
     </InvalidArgument>
     <InvalidNullableReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidNullableReturnType>
     <InvalidScalarArgument>
-      <code>$path</code>
-      <code>\OC_Util::normalizeUnicode($path)</code>
+      <code><![CDATA[$path]]></code>
+      <code><![CDATA[\OC_Util::normalizeUnicode($path)]]></code>
     </InvalidScalarArgument>
     <NullableReturnStatement>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/private/Files/Cache/FailedCache.php">
     <InvalidReturnStatement>
-      <code>[]</code>
+      <code><![CDATA[[]]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>getIncomplete</code>
-      <code>insert</code>
-      <code>put</code>
+      <code><![CDATA[getIncomplete]]></code>
+      <code><![CDATA[insert]]></code>
+      <code><![CDATA[put]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Files/Cache/HomeCache.php">
     <FalsableReturnStatement>
-      <code>$data</code>
+      <code><![CDATA[$data]]></code>
     </FalsableReturnStatement>
     <MoreSpecificImplementedParamType>
-      <code>$file</code>
-      <code>$file</code>
+      <code><![CDATA[$file]]></code>
+      <code><![CDATA[$file]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="lib/private/Files/Cache/Scanner.php">
     <InvalidArgument>
-      <code>self::SCAN_RECURSIVE_INCOMPLETE</code>
+      <code><![CDATA[self::SCAN_RECURSIVE_INCOMPLETE]]></code>
     </InvalidArgument>
     <InvalidReturnStatement>
-      <code>$existingChildren</code>
+      <code><![CDATA[$existingChildren]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>array[]</code>
+      <code><![CDATA[array[]]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Files/Cache/Storage.php">
     <InvalidNullableReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
       <code><![CDATA[self::getGlobalCache()->getStorageInfo($storageId)]]></code>
@@ -2024,13 +2324,13 @@
   </file>
   <file src="lib/private/Files/Cache/Wrapper/CacheWrapper.php">
     <LessSpecificImplementedReturnType>
-      <code>array</code>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
+      <code><![CDATA[array]]></code>
     </LessSpecificImplementedReturnType>
   </file>
   <file src="lib/private/Files/Config/MountProviderCollection.php">
     <InvalidOperand>
-      <code>$user</code>
+      <code><![CDATA[$user]]></code>
     </InvalidOperand>
     <RedundantCondition>
       <code><![CDATA[get_class($provider) !== 'OCA\Files_Sharing\MountProvider']]></code>
@@ -2041,17 +2341,17 @@
   </file>
   <file src="lib/private/Files/Config/UserMountCache.php">
     <InvalidReturnType>
-      <code>remoteStorageMounts</code>
-      <code>removeUserStorageMount</code>
+      <code><![CDATA[remoteStorageMounts]]></code>
+      <code><![CDATA[removeUserStorageMount]]></code>
     </InvalidReturnType>
     <LessSpecificImplementedReturnType>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </LessSpecificImplementedReturnType>
     <LessSpecificReturnStatement>
       <code><![CDATA[$this->cacheInfoCache[$fileId]]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>array{int, string, int}</code>
+      <code><![CDATA[array{int, string, int}]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="lib/private/Files/Filesystem.php">
@@ -2061,25 +2361,25 @@
       <code><![CDATA[self::getMountManager()->findByStorageId($id)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>Mount\MountPoint[]</code>
-      <code>Mount\MountPoint[]</code>
-      <code>\OC\Files\Storage\Storage|null</code>
+      <code><![CDATA[Mount\MountPoint[]]]></code>
+      <code><![CDATA[Mount\MountPoint[]]]></code>
+      <code><![CDATA[\OC\Files\Storage\Storage|null]]></code>
     </MoreSpecificReturnType>
     <TooManyArguments>
-      <code>addStorageWrapper</code>
+      <code><![CDATA[addStorageWrapper]]></code>
     </TooManyArguments>
   </file>
   <file src="lib/private/Files/Mount/MountPoint.php">
     <UndefinedInterfaceMethod>
-      <code>wrap</code>
+      <code><![CDATA[wrap]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/Files/Mount/ObjectHomeMountProvider.php">
     <InvalidNullableReturnType>
-      <code>\OCP\Files\Mount\IMountPoint</code>
+      <code><![CDATA[\OCP\Files\Mount\IMountPoint]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/private/Files/Node/File.php">
@@ -2087,7 +2387,7 @@
       <code><![CDATA[$this->view->hash($type, $this->path, $raw)]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Files/Node/Folder.php">
@@ -2098,29 +2398,28 @@
 		}, $files)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificImplementedParamType>
-      <code>$node</code>
+      <code><![CDATA[$node]]></code>
     </MoreSpecificImplementedParamType>
     <MoreSpecificReturnType>
-      <code>\OC\Files\Node\Node</code>
-      <code>\OC\Files\Node\Node[]</code>
-      <code>\OC\Files\Node\Node[]</code>
+      <code><![CDATA[\OC\Files\Node\Node]]></code>
+      <code><![CDATA[\OC\Files\Node\Node[]]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="lib/private/Files/Node/HookConnector.php">
     <UndefinedInterfaceMethod>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/Files/Node/LazyFolder.php">
@@ -2130,30 +2429,30 @@
   </file>
   <file src="lib/private/Files/Node/LazyUserFolder.php">
     <LessSpecificReturnStatement>
-      <code>$node</code>
+      <code><![CDATA[$node]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>Folder</code>
+      <code><![CDATA[Folder]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="lib/private/Files/Node/Node.php">
     <InvalidNullableReturnType>
-      <code>FileInfo</code>
+      <code><![CDATA[FileInfo]]></code>
     </InvalidNullableReturnType>
     <InvalidReturnType>
-      <code>getChecksum</code>
+      <code><![CDATA[getChecksum]]></code>
     </InvalidReturnType>
     <LessSpecificReturnStatement>
       <code><![CDATA[$this->parent]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>INode|IRootFolder</code>
+      <code><![CDATA[INode|IRootFolder]]></code>
     </MoreSpecificReturnType>
     <NullableReturnStatement>
       <code><![CDATA[$this->fileInfo]]></code>
     </NullableReturnStatement>
     <ParamNameMismatch>
-      <code>$type</code>
+      <code><![CDATA[$type]]></code>
     </ParamNameMismatch>
     <UndefinedInterfaceMethod>
       <code><![CDATA[$this->fileInfo]]></code>
@@ -2162,7 +2461,7 @@
   </file>
   <file src="lib/private/Files/Node/Root.php">
     <LessSpecificReturnStatement>
-      <code>$folders</code>
+      <code><![CDATA[$folders]]></code>
       <code><![CDATA[$this->createNode($fullPath, $fileInfo, false)]]></code>
       <code><![CDATA[$this->mountManager->findByNumericId($numericId)]]></code>
       <code><![CDATA[$this->mountManager->findByStorageId($storageId)]]></code>
@@ -2170,58 +2469,58 @@
       <code><![CDATA[$this->user]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>MountPoint[]</code>
-      <code>Node</code>
-      <code>\OC\Files\Mount\MountPoint[]</code>
-      <code>\OC\Files\Mount\MountPoint[]</code>
-      <code>\OC\User\User</code>
+      <code><![CDATA[MountPoint[]]]></code>
+      <code><![CDATA[Node]]></code>
+      <code><![CDATA[\OC\Files\Mount\MountPoint[]]]></code>
+      <code><![CDATA[\OC\Files\Mount\MountPoint[]]]></code>
+      <code><![CDATA[\OC\User\User]]></code>
     </MoreSpecificReturnType>
     <NullableReturnStatement>
       <code><![CDATA[$this->user]]></code>
     </NullableReturnStatement>
     <UndefinedMethod>
-      <code>remove</code>
+      <code><![CDATA[remove]]></code>
     </UndefinedMethod>
   </file>
   <file src="lib/private/Files/ObjectStore/ObjectStoreStorage.php">
     <InvalidScalarArgument>
-      <code>$source</code>
+      <code><![CDATA[$source]]></code>
     </InvalidScalarArgument>
   </file>
   <file src="lib/private/Files/ObjectStore/S3ConnectionTrait.php">
     <InternalClass>
-      <code>ClientResolver::_default_signature_provider()</code>
-      <code>ClientResolver::_default_signature_provider()</code>
+      <code><![CDATA[ClientResolver::_default_signature_provider()]]></code>
+      <code><![CDATA[ClientResolver::_default_signature_provider()]]></code>
     </InternalClass>
     <InternalMethod>
-      <code>ClientResolver::_default_signature_provider()</code>
+      <code><![CDATA[ClientResolver::_default_signature_provider()]]></code>
     </InternalMethod>
     <UndefinedFunction>
-      <code>Promise\promise_for(
+      <code><![CDATA[Promise\promise_for(
 					new Credentials($key, $secret)
-				)</code>
+				)]]></code>
       <code><![CDATA[\Aws\or_chain([self::class, 'legacySignatureProvider'], ClientResolver::_default_signature_provider())]]></code>
     </UndefinedFunction>
   </file>
   <file src="lib/private/Files/ObjectStore/S3ObjectTrait.php">
     <InternalMethod>
-      <code>upload</code>
+      <code><![CDATA[upload]]></code>
     </InternalMethod>
     <UndefinedFunction>
-      <code>\Aws\serialize($command)</code>
+      <code><![CDATA[\Aws\serialize($command)]]></code>
     </UndefinedFunction>
   </file>
   <file src="lib/private/Files/ObjectStore/S3Signature.php">
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="lib/private/Files/Storage/Common.php">
     <ImplementedReturnTypeMismatch>
-      <code>string|false</code>
+      <code><![CDATA[string|false]]></code>
     </ImplementedReturnTypeMismatch>
     <InvalidOperand>
-      <code>!$permissions</code>
+      <code><![CDATA[!$permissions]]></code>
       <code><![CDATA[$this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file)]]></code>
     </InvalidOperand>
     <NoInterfaceProperties>
@@ -2237,36 +2536,37 @@
   </file>
   <file src="lib/private/Files/Storage/DAV.php">
     <InvalidClass>
-      <code>ArrayCache</code>
-      <code>ArrayCache</code>
+      <code><![CDATA[ArrayCache]]></code>
+      <code><![CDATA[ArrayCache]]></code>
     </InvalidClass>
     <InvalidReturnStatement>
       <code><![CDATA[$response->getBody()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>fopen</code>
+      <code><![CDATA[fopen]]></code>
     </InvalidReturnType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/private/Files/Storage/FailedStorage.php">
     <InvalidReturnStatement>
-      <code>new FailedCache()</code>
-      <code>true</code>
+      <code><![CDATA[new FailedCache()]]></code>
+      <code><![CDATA[true]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>getCache</code>
-      <code>verifyPath</code>
+      <code><![CDATA[getCache]]></code>
+      <code><![CDATA[verifyPath]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Files/Storage/Local.php">
     <TypeDoesNotContainNull>
-      <code>$space === false || is_null($space)</code>
-      <code>is_null($space)</code>
+      <code><![CDATA[$space === false || is_null($space)]]></code>
+      <code><![CDATA[is_null($space)]]></code>
     </TypeDoesNotContainNull>
     <TypeDoesNotContainType>
-      <code>$stat === false</code>
+      <code><![CDATA[$currentPath === '']]></code>
+      <code><![CDATA[$stat === false]]></code>
     </TypeDoesNotContainType>
   </file>
   <file src="lib/private/Files/Storage/LocalRootStorage.php">
@@ -2277,9 +2577,9 @@
   </file>
   <file src="lib/private/Files/Storage/Wrapper/Encoding.php">
     <InvalidArgument>
-      <code>\Normalizer::FORM_C</code>
-      <code>\Normalizer::FORM_C</code>
-      <code>\Normalizer::FORM_D</code>
+      <code><![CDATA[\Normalizer::FORM_C]]></code>
+      <code><![CDATA[\Normalizer::FORM_C]]></code>
+      <code><![CDATA[\Normalizer::FORM_D]]></code>
     </InvalidArgument>
     <UndefinedInterfaceMethod>
       <code><![CDATA[$this->namesCache]]></code>
@@ -2303,21 +2603,21 @@
   </file>
   <file src="lib/private/Files/Storage/Wrapper/Encryption.php">
     <InvalidOperand>
-      <code>$result</code>
-      <code>$result</code>
+      <code><![CDATA[$result]]></code>
+      <code><![CDATA[$result]]></code>
       <code><![CDATA[$this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file, false, $isRename)]]></code>
     </InvalidOperand>
     <InvalidReturnStatement>
-      <code>$newUnencryptedSize</code>
-      <code>$result</code>
+      <code><![CDATA[$newUnencryptedSize]]></code>
+      <code><![CDATA[$result]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>bool</code>
-      <code>int</code>
+      <code><![CDATA[bool]]></code>
+      <code><![CDATA[int]]></code>
     </InvalidReturnType>
     <InvalidScalarArgument>
-      <code>$lastChunkPos</code>
-      <code>$size</code>
+      <code><![CDATA[$lastChunkPos]]></code>
+      <code><![CDATA[$size]]></code>
     </InvalidScalarArgument>
   </file>
   <file src="lib/private/Files/Storage/Wrapper/Jail.php">
@@ -2325,7 +2625,7 @@
       <code><![CDATA[$this->getWrapperStorage()->filetype($this->getUnjailedPath($path))]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Files/Storage/Wrapper/Wrapper.php">
@@ -2333,23 +2633,23 @@
       <code><![CDATA[$this->getWrapperStorage()->test()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>true</code>
+      <code><![CDATA[true]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Files/Stream/SeekableHttpStream.php">
     <InvalidReturnType>
-      <code>stream_close</code>
-      <code>stream_flush</code>
+      <code><![CDATA[stream_close]]></code>
+      <code><![CDATA[stream_flush]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Files/Template/TemplateManager.php">
     <RedundantCondition>
-      <code>!$isDefaultTemplates</code>
+      <code><![CDATA[!$isDefaultTemplates]]></code>
     </RedundantCondition>
   </file>
   <file src="lib/private/Files/Type/Detection.php">
     <ParamNameMismatch>
-      <code>$mimetype</code>
+      <code><![CDATA[$mimetype]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Files/Type/Loader.php">
@@ -2357,25 +2657,25 @@
       <code><![CDATA[$update->execute()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>int</code>
+      <code><![CDATA[int]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Files/Utils/Scanner.php">
     <LessSpecificReturnStatement>
-      <code>$mounts</code>
+      <code><![CDATA[$mounts]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>\OC\Files\Mount\MountPoint[]</code>
+      <code><![CDATA[\OC\Files\Mount\MountPoint[]]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="lib/private/Files/View.php">
     <InvalidScalarArgument>
-      <code>$mtime</code>
+      <code><![CDATA[$mtime]]></code>
     </InvalidScalarArgument>
     <UndefinedInterfaceMethod>
-      <code>acquireLock</code>
-      <code>changeLock</code>
-      <code>releaseLock</code>
+      <code><![CDATA[acquireLock]]></code>
+      <code><![CDATA[changeLock]]></code>
+      <code><![CDATA[releaseLock]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/FullTextSearch/Model/IndexDocument.php">
@@ -2385,16 +2685,16 @@
   </file>
   <file src="lib/private/Group/Group.php">
     <InvalidArgument>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidArgument>
     <InvalidOperand>
-      <code>$hide</code>
+      <code><![CDATA[$hide]]></code>
     </InvalidOperand>
     <LessSpecificReturnStatement>
-      <code>$users</code>
+      <code><![CDATA[$users]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>\OC\User\User[]</code>
+      <code><![CDATA[\OC\User\User[]]]></code>
     </MoreSpecificReturnType>
     <RedundantCondition>
       <code><![CDATA[$this->emitter]]></code>
@@ -2402,31 +2702,35 @@
       <code><![CDATA[$this->emitter]]></code>
     </RedundantCondition>
     <UndefinedMethod>
-      <code>addToGroup</code>
-      <code>countUsersInGroup</code>
-      <code>deleteGroup</code>
-      <code>removeFromGroup</code>
+      <code><![CDATA[addToGroup]]></code>
+      <code><![CDATA[countUsersInGroup]]></code>
+      <code><![CDATA[deleteGroup]]></code>
+      <code><![CDATA[removeFromGroup]]></code>
     </UndefinedMethod>
   </file>
   <file src="lib/private/Group/Manager.php">
     <LessSpecificReturnStatement>
-      <code>$groups</code>
-      <code>array_values($groups)</code>
-      <code>array_values($groups)</code>
+      <code><![CDATA[$groups]]></code>
+      <code><![CDATA[array_values($groups)]]></code>
+      <code><![CDATA[array_values($groups)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>\OC\Group\Group[]</code>
-      <code>\OC\Group\Group[]</code>
+      <code><![CDATA[\OC\Group\Group[]]]></code>
+      <code><![CDATA[\OC\Group\Group[]]]></code>
     </MoreSpecificReturnType>
     <UndefinedInterfaceMethod>
-      <code>createGroup</code>
-      <code>getGroupDetails</code>
-      <code>isAdmin</code>
+      <code><![CDATA[createGroup]]></code>
+      <code><![CDATA[getGroupDetails]]></code>
+      <code><![CDATA[isAdmin]]></code>
     </UndefinedInterfaceMethod>
+    <UnsupportedPropertyReferenceUsage>
+      <code><![CDATA[$cachedGroups = &$this->cachedGroups]]></code>
+      <code><![CDATA[$cachedUserGroups = &$this->cachedUserGroups]]></code>
+    </UnsupportedPropertyReferenceUsage>
   </file>
   <file src="lib/private/Http/Client/Response.php">
     <InvalidNullableReturnType>
-      <code>string|resource</code>
+      <code><![CDATA[string|resource]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
       <code><![CDATA[$this->stream ?
@@ -2436,15 +2740,19 @@
   </file>
   <file src="lib/private/Installer.php">
     <InvalidArgument>
-      <code>false</code>
-      <code>false</code>
+      <code><![CDATA[false]]></code>
+      <code><![CDATA[false]]></code>
     </InvalidArgument>
     <InvalidArrayOffset>
       <code><![CDATA[$app['path']]]></code>
       <code><![CDATA[$app['path']]]></code>
     </InvalidArrayOffset>
+    <InvalidPropertyFetch>
+      <code><![CDATA[$xml->id]]></code>
+      <code><![CDATA[$xml->version]]></code>
+    </InvalidPropertyFetch>
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="lib/private/IntegrityCheck/Checker.php">
@@ -2454,41 +2762,41 @@
       <code><![CDATA[$x509->getDN(true)['CN']]]></code>
     </InvalidArrayAccess>
     <UndefinedInterfaceMethod>
-      <code>getOnlyDefaultAliases</code>
+      <code><![CDATA[getOnlyDefaultAliases]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/IntegrityCheck/Iterator/ExcludeFileByNameFilterIterator.php">
     <MissingTemplateParam>
-      <code>ExcludeFileByNameFilterIterator</code>
+      <code><![CDATA[ExcludeFileByNameFilterIterator]]></code>
     </MissingTemplateParam>
   </file>
   <file src="lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php">
     <MissingTemplateParam>
-      <code>ExcludeFoldersByPathFilterIterator</code>
+      <code><![CDATA[ExcludeFoldersByPathFilterIterator]]></code>
     </MissingTemplateParam>
   </file>
   <file src="lib/private/L10N/Factory.php">
     <ImplementedReturnTypeMismatch>
-      <code>null|string</code>
+      <code><![CDATA[null|string]]></code>
     </ImplementedReturnTypeMismatch>
     <LessSpecificImplementedReturnType>
-      <code>array|mixed</code>
+      <code><![CDATA[array|mixed]]></code>
     </LessSpecificImplementedReturnType>
   </file>
   <file src="lib/private/LargeFileHelper.php">
     <InvalidOperand>
-      <code>$matches[1]</code>
+      <code><![CDATA[$matches[1]]]></code>
     </InvalidOperand>
   </file>
   <file src="lib/private/Lockdown/Filesystem/NullCache.php">
     <InvalidNullableReturnType>
-      <code>get</code>
+      <code><![CDATA[get]]></code>
     </InvalidNullableReturnType>
     <InvalidReturnStatement>
-      <code>[]</code>
+      <code><![CDATA[[]]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>getIncomplete</code>
+      <code><![CDATA[getIncomplete]]></code>
     </InvalidReturnType>
     <NullableReturnStatement>
       <code><![CDATA[$file !== '' ? null :
@@ -2509,41 +2817,41 @@
   </file>
   <file src="lib/private/Lockdown/Filesystem/NullStorage.php">
     <InvalidNullableReturnType>
-      <code>getOwner</code>
-      <code>getPermissions</code>
+      <code><![CDATA[getOwner]]></code>
+      <code><![CDATA[getPermissions]]></code>
     </InvalidNullableReturnType>
     <InvalidReturnStatement>
-      <code>new IteratorDirectory([])</code>
-      <code>new NullCache()</code>
+      <code><![CDATA[new IteratorDirectory([])]]></code>
+      <code><![CDATA[new NullCache()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>getCache</code>
-      <code>opendir</code>
+      <code><![CDATA[getCache]]></code>
+      <code><![CDATA[opendir]]></code>
     </InvalidReturnType>
     <NullableReturnStatement>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
     <TooManyArguments>
-      <code>new IteratorDirectory([])</code>
+      <code><![CDATA[new IteratorDirectory([])]]></code>
     </TooManyArguments>
   </file>
   <file src="lib/private/Lockdown/LockdownManager.php">
     <InvalidFunctionCall>
-      <code>$callback()</code>
+      <code><![CDATA[$callback()]]></code>
     </InvalidFunctionCall>
     <InvalidPropertyAssignmentValue>
-      <code>$sessionCallback</code>
+      <code><![CDATA[$sessionCallback]]></code>
     </InvalidPropertyAssignmentValue>
   </file>
   <file src="lib/private/Log.php">
     <RedundantCondition>
-      <code>$request</code>
+      <code><![CDATA[$request]]></code>
     </RedundantCondition>
   </file>
   <file src="lib/private/Log/File.php">
     <TypeDoesNotContainNull>
-      <code>$limit === null</code>
+      <code><![CDATA[$limit === null]]></code>
     </TypeDoesNotContainNull>
   </file>
   <file src="lib/private/Log/LogDetails.php">
@@ -2563,58 +2871,63 @@
       <code><![CDATA[apcu_add($this->getPrefix() . $key, $value, $ttl)]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>bool</code>
+      <code><![CDATA[bool]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Memcache/Cache.php">
     <LessSpecificImplementedReturnType>
-      <code>mixed</code>
-      <code>mixed</code>
-      <code>mixed</code>
-      <code>mixed</code>
+      <code><![CDATA[mixed]]></code>
+      <code><![CDATA[mixed]]></code>
+      <code><![CDATA[mixed]]></code>
+      <code><![CDATA[mixed]]></code>
     </LessSpecificImplementedReturnType>
   </file>
   <file src="lib/private/Preview/BackgroundCleanupJob.php">
     <InvalidReturnStatement>
-      <code>[]</code>
+      <code><![CDATA[[]]]></code>
     </InvalidReturnStatement>
   </file>
   <file src="lib/private/Preview/Generator.php">
     <InvalidArgument>
-      <code>$maxPreviewImage</code>
+      <code><![CDATA[$maxPreviewImage]]></code>
     </InvalidArgument>
     <LessSpecificReturnType>
-      <code>null|string</code>
+      <code><![CDATA[null|string]]></code>
     </LessSpecificReturnType>
     <MismatchingDocblockParamType>
-      <code>ISimpleFile</code>
+      <code><![CDATA[ISimpleFile]]></code>
     </MismatchingDocblockParamType>
     <UndefinedInterfaceMethod>
-      <code>height</code>
-      <code>height</code>
-      <code>preciseResizeCopy</code>
-      <code>resizeCopy</code>
-      <code>valid</code>
-      <code>width</code>
-      <code>width</code>
+      <code><![CDATA[height]]></code>
+      <code><![CDATA[height]]></code>
+      <code><![CDATA[preciseResizeCopy]]></code>
+      <code><![CDATA[resizeCopy]]></code>
+      <code><![CDATA[valid]]></code>
+      <code><![CDATA[width]]></code>
+      <code><![CDATA[width]]></code>
     </UndefinedInterfaceMethod>
   </file>
+  <file src="lib/private/Preview/MimeIconProvider.php">
+    <InvalidArrayAccess>
+      <code><![CDATA[$key[0]]]></code>
+    </InvalidArrayAccess>
+  </file>
   <file src="lib/private/Preview/ProviderV1Adapter.php">
     <InvalidReturnStatement>
-      <code>$thumbnail === false ? null: $thumbnail</code>
+      <code><![CDATA[$thumbnail === false ? null: $thumbnail]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>?IImage</code>
+      <code><![CDATA[?IImage]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/RedisFactory.php">
     <InvalidArgument>
-      <code>\RedisCluster::OPT_SLAVE_FAILOVER</code>
+      <code><![CDATA[\RedisCluster::OPT_SLAVE_FAILOVER]]></code>
     </InvalidArgument>
   </file>
   <file src="lib/private/Remote/Api/OCS.php">
     <ImplementedReturnTypeMismatch>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </ImplementedReturnTypeMismatch>
   </file>
   <file src="lib/private/Remote/Instance.php">
@@ -2622,25 +2935,25 @@
       <code><![CDATA[$request->getBody()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>bool|string</code>
+      <code><![CDATA[bool|string]]></code>
     </InvalidReturnType>
     <InvalidScalarArgument>
-      <code>$response</code>
+      <code><![CDATA[$response]]></code>
     </InvalidScalarArgument>
   </file>
   <file src="lib/private/Repair/Owncloud/CleanPreviews.php">
     <InvalidArgument>
-      <code>false</code>
+      <code><![CDATA[false]]></code>
     </InvalidArgument>
   </file>
   <file src="lib/private/Repair/Owncloud/CleanPreviewsBackgroundJob.php">
     <ParamNameMismatch>
-      <code>$arguments</code>
+      <code><![CDATA[$arguments]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Repair/Owncloud/MoveAvatarsBackgroundJob.php">
     <ParamNameMismatch>
-      <code>$arguments</code>
+      <code><![CDATA[$arguments]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Repair/RemoveLinkShares.php">
@@ -2650,20 +2963,20 @@
   </file>
   <file src="lib/private/Repair/RepairInvalidShares.php">
     <ParamNameMismatch>
-      <code>$out</code>
+      <code><![CDATA[$out]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Repair/RepairMimeTypes.php">
     <ParamNameMismatch>
-      <code>$out</code>
+      <code><![CDATA[$out]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Route/Router.php">
     <InvalidClass>
-      <code>\OC_APP</code>
+      <code><![CDATA[\OC_APP]]></code>
     </InvalidClass>
     <InvalidNullableReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
       <code><![CDATA[$this->collectionName]]></code>
@@ -2671,7 +2984,7 @@
   </file>
   <file src="lib/private/Search.php">
     <RedundantCondition>
-      <code>$provider instanceof Provider</code>
+      <code><![CDATA[$provider instanceof Provider]]></code>
     </RedundantCondition>
   </file>
   <file src="lib/private/Search/Result/File.php">
@@ -2684,7 +2997,7 @@
   </file>
   <file src="lib/private/Security/Bruteforce/Throttler.php">
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php">
@@ -2703,25 +3016,25 @@
       <code><![CDATA[$qb->execute()]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>int</code>
-      <code>int</code>
+      <code><![CDATA[int]]></code>
+      <code><![CDATA[int]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/Security/Crypto.php">
     <InternalMethod>
-      <code>decrypt</code>
-      <code>encrypt</code>
-      <code>setIV</code>
-      <code>setIV</code>
-      <code>setPassword</code>
-      <code>setPassword</code>
+      <code><![CDATA[decrypt]]></code>
+      <code><![CDATA[encrypt]]></code>
+      <code><![CDATA[setIV]]></code>
+      <code><![CDATA[setIV]]></code>
+      <code><![CDATA[setPassword]]></code>
+      <code><![CDATA[setPassword]]></code>
     </InternalMethod>
   </file>
   <file src="lib/private/Server.php">
     <ImplementedReturnTypeMismatch>
-      <code>\OCP\Calendar\Resource\IManager</code>
-      <code>\OCP\Calendar\Room\IManager</code>
-      <code>\OCP\Files\Folder|null</code>
+      <code><![CDATA[\OCP\Calendar\Resource\IManager]]></code>
+      <code><![CDATA[\OCP\Calendar\Room\IManager]]></code>
+      <code><![CDATA[\OCP\Files\Folder|null]]></code>
     </ImplementedReturnTypeMismatch>
     <LessSpecificReturnStatement>
       <code><![CDATA[$this->get(IFile::class)]]></code>
@@ -2732,15 +3045,15 @@
       <code><![CDATA[$this->get(\OCP\Encryption\IManager::class)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>\OC\Encryption\File</code>
-      <code>\OC\Encryption\Manager</code>
-      <code>\OC\Group\Manager</code>
-      <code>\OC\NavigationManager</code>
-      <code>\OC\User\Manager</code>
-      <code>\OC\User\Session</code>
+      <code><![CDATA[\OC\Encryption\File]]></code>
+      <code><![CDATA[\OC\Encryption\Manager]]></code>
+      <code><![CDATA[\OC\Group\Manager]]></code>
+      <code><![CDATA[\OC\NavigationManager]]></code>
+      <code><![CDATA[\OC\User\Manager]]></code>
+      <code><![CDATA[\OC\User\Session]]></code>
     </MoreSpecificReturnType>
     <UndefinedDocblockClass>
-      <code>\OC\OCSClient</code>
+      <code><![CDATA[\OC\OCSClient]]></code>
     </UndefinedDocblockClass>
   </file>
   <file src="lib/private/ServerContainer.php">
@@ -2753,12 +3066,12 @@
   </file>
   <file src="lib/private/Session/Internal.php">
     <MoreSpecificImplementedParamType>
-      <code>$value</code>
+      <code><![CDATA[$value]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="lib/private/Session/Memory.php">
     <MoreSpecificImplementedParamType>
-      <code>$value</code>
+      <code><![CDATA[$value]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="lib/private/Setup.php">
@@ -2766,7 +3079,7 @@
       <code><![CDATA[$type === 'pdo']]></code>
     </RedundantCondition>
     <UndefinedVariable>
-      <code>$vendor</code>
+      <code><![CDATA[$vendor]]></code>
     </UndefinedVariable>
   </file>
   <file src="lib/private/Setup/AbstractDatabase.php">
@@ -2787,154 +3100,160 @@
       <code><![CDATA[(int)$data['id']]]></code>
     </InvalidArgument>
     <TooManyArguments>
-      <code>set</code>
+      <code><![CDATA[set]]></code>
     </TooManyArguments>
     <UndefinedInterfaceMethod>
-      <code>getParent</code>
+      <code><![CDATA[getParent]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/Share20/Manager.php">
     <InvalidArgument>
-      <code>$id</code>
+      <code><![CDATA[$id]]></code>
     </InvalidArgument>
     <TooManyArguments>
-      <code>update</code>
+      <code><![CDATA[update]]></code>
     </TooManyArguments>
     <UndefinedClass>
-      <code>\OCA\Circles\Api\v1\Circles</code>
+      <code><![CDATA[\OCA\Circles\Api\v1\Circles]]></code>
     </UndefinedClass>
     <UndefinedInterfaceMethod>
-      <code>getChildren</code>
+      <code><![CDATA[getChildren]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/Share20/ProviderFactory.php">
     <InvalidNullableReturnType>
-      <code>FederatedShareProvider</code>
-      <code>ShareByMailProvider</code>
+      <code><![CDATA[FederatedShareProvider]]></code>
+      <code><![CDATA[ShareByMailProvider]]></code>
     </InvalidNullableReturnType>
     <InvalidReturnStatement>
-      <code>$provider</code>
-      <code>$provider</code>
+      <code><![CDATA[$provider]]></code>
+      <code><![CDATA[$provider]]></code>
       <code><![CDATA[$this->shareByCircleProvider]]></code>
     </InvalidReturnStatement>
     <InvalidReturnType>
-      <code>getProviderForType</code>
+      <code><![CDATA[getProviderForType]]></code>
     </InvalidReturnType>
     <NullableReturnStatement>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
     <ParamNameMismatch>
-      <code>$shareProviderClass</code>
+      <code><![CDATA[$shareProviderClass]]></code>
     </ParamNameMismatch>
     <UndefinedClass>
-      <code>\OCA\Circles\ShareByCircleProvider</code>
+      <code><![CDATA[\OCA\Circles\ShareByCircleProvider]]></code>
     </UndefinedClass>
     <UndefinedDocblockClass>
-      <code>RoomShareProvider</code>
-      <code>\OCA\Circles\ShareByCircleProvider</code>
-      <code>\OCA\Talk\Share\RoomShareProvider</code>
-      <code>private $roomShareProvider = null;</code>
-      <code>private $shareByCircleProvider = null;</code>
+      <code><![CDATA[RoomShareProvider]]></code>
+      <code><![CDATA[\OCA\Circles\ShareByCircleProvider]]></code>
+      <code><![CDATA[\OCA\Talk\Share\RoomShareProvider]]></code>
+      <code><![CDATA[private $roomShareProvider = null;]]></code>
+      <code><![CDATA[private $shareByCircleProvider = null;]]></code>
     </UndefinedDocblockClass>
   </file>
   <file src="lib/private/Share20/Share.php">
+    <InvalidCast>
+      <code><![CDATA[$id]]></code>
+    </InvalidCast>
     <LessSpecificReturnStatement>
       <code><![CDATA[$this->node]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>getNode</code>
+      <code><![CDATA[getNode]]></code>
     </MoreSpecificReturnType>
   </file>
   <file src="lib/private/Streamer.php">
     <UndefinedInterfaceMethod>
-      <code>get</code>
+      <code><![CDATA[get]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/SubAdmin.php">
     <UndefinedInterfaceMethod>
-      <code>listen</code>
-      <code>listen</code>
+      <code><![CDATA[listen]]></code>
+      <code><![CDATA[listen]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/Support/Subscription/Registry.php">
     <UndefinedInterfaceMethod>
-      <code>getSupportedApps</code>
+      <code><![CDATA[getSupportedApps]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/TagManager.php">
     <InvalidNullableReturnType>
-      <code>\OCP\ITags</code>
+      <code><![CDATA[\OCP\ITags]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/private/Tags.php">
     <InvalidScalarArgument>
-      <code>$from</code>
-      <code>$names</code>
+      <code><![CDATA[$from]]></code>
+      <code><![CDATA[$names]]></code>
     </InvalidScalarArgument>
     <MoreSpecificImplementedParamType>
-      <code>$tag</code>
+      <code><![CDATA[$tag]]></code>
     </MoreSpecificImplementedParamType>
   </file>
   <file src="lib/private/TempManager.php">
     <FalsableReturnStatement>
-      <code>false</code>
-      <code>false</code>
+      <code><![CDATA[false]]></code>
+      <code><![CDATA[false]]></code>
     </FalsableReturnStatement>
   </file>
   <file src="lib/private/Template/CSSResourceLocator.php">
     <ParamNameMismatch>
-      <code>$style</code>
-      <code>$style</code>
+      <code><![CDATA[$style]]></code>
+      <code><![CDATA[$style]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/Template/JSConfigHelper.php">
     <NullArgument>
-      <code>null</code>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
   </file>
   <file src="lib/private/Template/JSResourceLocator.php">
     <InvalidArgument>
-      <code>false</code>
+      <code><![CDATA[false]]></code>
     </InvalidArgument>
     <ParamNameMismatch>
-      <code>$script</code>
-      <code>$script</code>
+      <code><![CDATA[$script]]></code>
+      <code><![CDATA[$script]]></code>
     </ParamNameMismatch>
   </file>
   <file src="lib/private/URLGenerator.php">
     <InvalidReturnStatement>
-      <code>$path</code>
+      <code><![CDATA[$path]]></code>
     </InvalidReturnStatement>
   </file>
   <file src="lib/private/User/Database.php">
     <FalsableReturnStatement>
-      <code>false</code>
+      <code><![CDATA[false]]></code>
     </FalsableReturnStatement>
   </file>
   <file src="lib/private/User/Manager.php">
     <ImplementedReturnTypeMismatch>
-      <code>IUser|false</code>
+      <code><![CDATA[IUser|false]]></code>
     </ImplementedReturnTypeMismatch>
     <InvalidArgument>
-      <code>$backend</code>
+      <code><![CDATA[$backend]]></code>
     </InvalidArgument>
     <UndefinedInterfaceMethod>
-      <code>createUser</code>
-      <code>getUsersForUserValueCaseInsensitive</code>
+      <code><![CDATA[createUser]]></code>
+      <code><![CDATA[getUsersForUserValueCaseInsensitive]]></code>
     </UndefinedInterfaceMethod>
+    <UnsupportedPropertyReferenceUsage>
+      <code><![CDATA[$cachedUsers = &$this->cachedUsers]]></code>
+    </UnsupportedPropertyReferenceUsage>
   </file>
   <file src="lib/private/User/Session.php">
     <ImplementedReturnTypeMismatch>
-      <code>boolean|null</code>
+      <code><![CDATA[boolean|null]]></code>
     </ImplementedReturnTypeMismatch>
     <NoInterfaceProperties>
       <code><![CDATA[$request->server]]></code>
@@ -2946,77 +3265,84 @@
   </file>
   <file src="lib/private/User/User.php">
     <UndefinedInterfaceMethod>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
-      <code>emit</code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
+      <code><![CDATA[emit]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/legacy/OC_API.php">
     <InvalidNullableReturnType>
-      <code>int</code>
+      <code><![CDATA[int]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/private/legacy/OC_App.php">
     <InvalidArgument>
-      <code>$groupsList</code>
+      <code><![CDATA[$groupsList]]></code>
     </InvalidArgument>
     <InvalidArrayOffset>
       <code><![CDATA[$dir['path']]]></code>
       <code><![CDATA[$dir['url']]]></code>
     </InvalidArrayOffset>
     <NullArgument>
-      <code>null</code>
+      <code><![CDATA[null]]></code>
     </NullArgument>
     <TypeDoesNotContainNull>
-      <code>$appId === null</code>
-      <code>$appId === null</code>
+      <code><![CDATA[$appId === null]]></code>
+      <code><![CDATA[$appId === null]]></code>
     </TypeDoesNotContainNull>
   </file>
   <file src="lib/private/legacy/OC_FileChunking.php">
     <UndefinedDocblockClass>
-      <code>\OC\InsufficientStorageException</code>
+      <code><![CDATA[\OC\InsufficientStorageException]]></code>
     </UndefinedDocblockClass>
   </file>
   <file src="lib/private/legacy/OC_Files.php">
+    <InvalidIterator>
+      <code><![CDATA[$files]]></code>
+      <code><![CDATA[$files]]></code>
+    </InvalidIterator>
+    <NoValue>
+      <code><![CDATA[$files]]></code>
+    </NoValue>
     <RedundantCondition>
-      <code>$getType === self::ZIP_DIR</code>
-      <code>$getType === self::ZIP_DIR</code>
+      <code><![CDATA[$getType === self::ZIP_DIR]]></code>
+      <code><![CDATA[$getType === self::ZIP_DIR]]></code>
     </RedundantCondition>
     <UndefinedInterfaceMethod>
-      <code>get</code>
-      <code>get</code>
+      <code><![CDATA[get]]></code>
+      <code><![CDATA[get]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/legacy/OC_Helper.php">
     <InvalidArrayOffset>
-      <code>$matches[0][$last_match]</code>
-      <code>$matches[1][$last_match]</code>
+      <code><![CDATA[$matches[0][$last_match]]]></code>
+      <code><![CDATA[$matches[1][$last_match]]]></code>
     </InvalidArrayOffset>
     <InvalidScalarArgument>
-      <code>$path</code>
+      <code><![CDATA[$path]]></code>
     </InvalidScalarArgument>
     <UndefinedInterfaceMethod>
-      <code>getQuota</code>
+      <code><![CDATA[getQuota]]></code>
     </UndefinedInterfaceMethod>
   </file>
   <file src="lib/private/legacy/OC_Template.php">
     <InvalidReturnType>
-      <code>bool|string</code>
+      <code><![CDATA[bool|string]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/private/legacy/OC_User.php">
     <UndefinedClass>
-      <code>\Test\Util\User\Dummy</code>
+      <code><![CDATA[\Test\Util\User\Dummy]]></code>
     </UndefinedClass>
   </file>
   <file src="lib/private/legacy/OC_Util.php">
     <InvalidReturnType>
-      <code>void</code>
+      <code><![CDATA[void]]></code>
     </InvalidReturnType>
   </file>
   <file src="lib/public/AppFramework/ApiController.php">
@@ -3031,10 +3357,10 @@
   </file>
   <file src="lib/public/AppFramework/Db/Entity.php">
     <InvalidNullableReturnType>
-      <code>string</code>
+      <code><![CDATA[string]]></code>
     </InvalidNullableReturnType>
     <NullableReturnStatement>
-      <code>$column</code>
+      <code><![CDATA[$column]]></code>
     </NullableReturnStatement>
   </file>
   <file src="lib/public/AppFramework/Http/Response.php">
@@ -3042,50 +3368,46 @@
       <code><![CDATA[array_merge($mergeWith, $this->headers)]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>array{X-Request-Id: string, Cache-Control: string, Content-Security-Policy: string, Feature-Policy: string, X-Robots-Tag: string, Last-Modified?: string, ETag?: string, ...H}</code>
+      <code><![CDATA[array{X-Request-Id: string, Cache-Control: string, Content-Security-Policy: string, Feature-Policy: string, X-Robots-Tag: string, Last-Modified?: string, ETag?: string, ...H}]]></code>
     </MoreSpecificReturnType>
   </file>
-  <file src="lib/public/Authentication/Token/IToken.php">
-    <AmbiguousConstantInheritance>
-      <code>DO_NOT_REMEMBER</code>
-      <code>PERMANENT_TOKEN</code>
-      <code>REMEMBER</code>
-      <code>TEMPORARY_TOKEN</code>
-      <code>WIPE_TOKEN</code>
-    </AmbiguousConstantInheritance>
-  </file>
   <file src="lib/public/Color.php">
     <LessSpecificReturnStatement>
-      <code>$step</code>
+      <code><![CDATA[$step]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>array{0: int, 1: int, 2: int}</code>
+      <code><![CDATA[array{0: int, 1: int, 2: int}]]></code>
     </MoreSpecificReturnType>
   </file>
+  <file src="lib/public/DB/QueryBuilder/IQueryBuilder.php">
+    <InvalidDocblock>
+      <code><![CDATA[public function createFunction($call);]]></code>
+    </InvalidDocblock>
+  </file>
   <file src="lib/public/Diagnostics/IQueryLogger.php">
     <LessSpecificImplementedReturnType>
-      <code>mixed</code>
+      <code><![CDATA[mixed]]></code>
     </LessSpecificImplementedReturnType>
   </file>
   <file src="lib/public/EventDispatcher/GenericEvent.php">
     <MissingTemplateParam>
-      <code>ArrayAccess</code>
-      <code>IteratorAggregate</code>
+      <code><![CDATA[ArrayAccess]]></code>
+      <code><![CDATA[IteratorAggregate]]></code>
     </MissingTemplateParam>
   </file>
   <file src="lib/public/Files.php">
     <FalsableReturnStatement>
-      <code>\OC_App::getStorage($app)</code>
+      <code><![CDATA[\OC_App::getStorage($app)]]></code>
     </FalsableReturnStatement>
   </file>
   <file src="lib/public/Files/Storage.php">
     <InvalidParamDefault>
-      <code>array</code>
+      <code><![CDATA[array]]></code>
     </InvalidParamDefault>
   </file>
   <file src="lib/public/L10N/ILanguageIterator.php">
     <MissingTemplateParam>
-      <code>\Iterator</code>
+      <code><![CDATA[\Iterator]]></code>
     </MissingTemplateParam>
   </file>
   <file src="lib/public/Preview/BeforePreviewFetchedEvent.php">
@@ -3093,7 +3415,7 @@
       <code><![CDATA[$this->mode]]></code>
     </LessSpecificReturnStatement>
     <MoreSpecificReturnType>
-      <code>null|IPreview::MODE_FILL|IPreview::MODE_COVER</code>
+      <code><![CDATA[null|IPreview::MODE_FILL|IPreview::MODE_COVER]]></code>
     </MoreSpecificReturnType>
   </file>
 </files>
diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock
index 1794df5aa8dc6..8a9c5709aa212 100644
--- a/vendor-bin/psalm/composer.lock
+++ b/vendor-bin/psalm/composer.lock
@@ -8,16 +8,16 @@
     "packages": [
         {
             "name": "amphp/amp",
-            "version": "v2.6.2",
+            "version": "v2.6.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/amphp/amp.git",
-                "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb"
+                "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb",
-                "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb",
+                "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d",
+                "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d",
                 "shasum": ""
             },
             "require": {
@@ -29,8 +29,8 @@
                 "ext-json": "*",
                 "jetbrains/phpstorm-stubs": "^2019.3",
                 "phpunit/phpunit": "^7 | ^8 | ^9",
-                "psalm/phar": "^3.11@dev",
-                "react/promise": "^2"
+                "react/promise": "^2",
+                "vimeo/psalm": "^3.12"
             },
             "type": "library",
             "extra": {
@@ -85,7 +85,7 @@
             "support": {
                 "irc": "irc://irc.freenode.org/amphp",
                 "issues": "https://github.com/amphp/amp/issues",
-                "source": "https://github.com/amphp/amp/tree/v2.6.2"
+                "source": "https://github.com/amphp/amp/tree/v2.6.4"
             },
             "funding": [
                 {
@@ -93,20 +93,20 @@
                     "type": "github"
                 }
             ],
-            "time": "2022-02-20T17:52:18+00:00"
+            "time": "2024-03-21T18:52:26+00:00"
         },
         {
             "name": "amphp/byte-stream",
-            "version": "v1.8.1",
+            "version": "v1.8.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/amphp/byte-stream.git",
-                "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd"
+                "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd",
-                "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd",
+                "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc",
+                "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc",
                 "shasum": ""
             },
             "require": {
@@ -122,11 +122,6 @@
                 "psalm/phar": "^3.11.4"
             },
             "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.x-dev"
-                }
-            },
             "autoload": {
                 "files": [
                     "lib/functions.php"
@@ -150,7 +145,7 @@
                 }
             ],
             "description": "A stream abstraction to make working with non-blocking I/O simple.",
-            "homepage": "http://amphp.org/byte-stream",
+            "homepage": "https://amphp.org/byte-stream",
             "keywords": [
                 "amp",
                 "amphp",
@@ -160,9 +155,8 @@
                 "stream"
             ],
             "support": {
-                "irc": "irc://irc.freenode.org/amphp",
                 "issues": "https://github.com/amphp/byte-stream/issues",
-                "source": "https://github.com/amphp/byte-stream/tree/v1.8.1"
+                "source": "https://github.com/amphp/byte-stream/tree/v1.8.2"
             },
             "funding": [
                 {
@@ -170,34 +164,42 @@
                     "type": "github"
                 }
             ],
-            "time": "2021-03-30T17:13:30+00:00"
+            "time": "2024-04-13T18:00:56+00:00"
         },
         {
             "name": "composer/pcre",
-            "version": "3.0.2",
+            "version": "3.3.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/pcre.git",
-                "reference": "4482b6409ca6bfc2af043a5711cd21ac3e7a8dfb"
+                "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/pcre/zipball/4482b6409ca6bfc2af043a5711cd21ac3e7a8dfb",
-                "reference": "4482b6409ca6bfc2af043a5711cd21ac3e7a8dfb",
+                "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4",
+                "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4",
                 "shasum": ""
             },
             "require": {
                 "php": "^7.4 || ^8.0"
             },
+            "conflict": {
+                "phpstan/phpstan": "<1.11.10"
+            },
             "require-dev": {
-                "phpstan/phpstan": "^1.3",
+                "phpstan/phpstan": "^1.11.10",
                 "phpstan/phpstan-strict-rules": "^1.1",
-                "symfony/phpunit-bridge": "^5"
+                "phpunit/phpunit": "^8 || ^9"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
                     "dev-main": "3.x-dev"
+                },
+                "phpstan": {
+                    "includes": [
+                        "extension.neon"
+                    ]
                 }
             },
             "autoload": {
@@ -225,7 +227,7 @@
             ],
             "support": {
                 "issues": "https://github.com/composer/pcre/issues",
-                "source": "https://github.com/composer/pcre/tree/3.0.2"
+                "source": "https://github.com/composer/pcre/tree/3.3.1"
             },
             "funding": [
                 {
@@ -241,28 +243,28 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-11-03T20:24:16+00:00"
+            "time": "2024-08-27T18:44:43+00:00"
         },
         {
             "name": "composer/semver",
-            "version": "3.3.2",
+            "version": "3.4.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/semver.git",
-                "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+                "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
-                "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+                "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+                "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
                 "shasum": ""
             },
             "require": {
                 "php": "^5.3.2 || ^7.0 || ^8.0"
             },
             "require-dev": {
-                "phpstan/phpstan": "^1.4",
-                "symfony/phpunit-bridge": "^4.2 || ^5"
+                "phpstan/phpstan": "^1.11",
+                "symfony/phpunit-bridge": "^3 || ^7"
             },
             "type": "library",
             "extra": {
@@ -304,9 +306,9 @@
                 "versioning"
             ],
             "support": {
-                "irc": "irc://irc.freenode.org/composer",
+                "irc": "ircs://irc.libera.chat:6697/composer",
                 "issues": "https://github.com/composer/semver/issues",
-                "source": "https://github.com/composer/semver/tree/3.3.2"
+                "source": "https://github.com/composer/semver/tree/3.4.3"
             },
             "funding": [
                 {
@@ -322,20 +324,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-04-01T19:23:25+00:00"
+            "time": "2024-09-19T14:15:21+00:00"
         },
         {
             "name": "composer/xdebug-handler",
-            "version": "3.0.3",
+            "version": "3.0.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/xdebug-handler.git",
-                "reference": "ced299686f41dce890debac69273b47ffe98a40c"
+                "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
-                "reference": "ced299686f41dce890debac69273b47ffe98a40c",
+                "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+                "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
                 "shasum": ""
             },
             "require": {
@@ -346,7 +348,7 @@
             "require-dev": {
                 "phpstan/phpstan": "^1.0",
                 "phpstan/phpstan-strict-rules": "^1.1",
-                "symfony/phpunit-bridge": "^6.0"
+                "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
             },
             "type": "library",
             "autoload": {
@@ -370,9 +372,9 @@
                 "performance"
             ],
             "support": {
-                "irc": "irc://irc.freenode.org/composer",
+                "irc": "ircs://irc.libera.chat:6697/composer",
                 "issues": "https://github.com/composer/xdebug-handler/issues",
-                "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
+                "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
             },
             "funding": [
                 {
@@ -388,7 +390,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-02-25T21:32:43+00:00"
+            "time": "2024-05-06T16:37:16+00:00"
         },
         {
             "name": "dnoegel/php-xdg-base-dir",
@@ -427,6 +429,53 @@
             },
             "time": "2019-12-04T15:06:13+00:00"
         },
+        {
+            "name": "doctrine/deprecations",
+            "version": "1.1.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/deprecations.git",
+                "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+                "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.1 || ^8.0"
+            },
+            "require-dev": {
+                "doctrine/coding-standard": "^9",
+                "phpstan/phpstan": "1.4.10 || 1.10.15",
+                "phpstan/phpstan-phpunit": "^1.0",
+                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+                "psalm/plugin-phpunit": "0.18.4",
+                "psr/log": "^1 || ^2 || ^3",
+                "vimeo/psalm": "4.30.0 || 5.12.0"
+            },
+            "suggest": {
+                "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
+            "homepage": "https://www.doctrine-project.org/",
+            "support": {
+                "issues": "https://github.com/doctrine/deprecations/issues",
+                "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
+            },
+            "time": "2024-01-30T19:34:25+00:00"
+        },
         {
             "name": "felixfbecker/advanced-json-rpc",
             "version": "v3.2.1",
@@ -474,16 +523,16 @@
         },
         {
             "name": "felixfbecker/language-server-protocol",
-            "version": "v1.5.2",
+            "version": "v1.5.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/felixfbecker/php-language-server-protocol.git",
-                "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842"
+                "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842",
-                "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842",
+                "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9",
+                "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9",
                 "shasum": ""
             },
             "require": {
@@ -524,22 +573,22 @@
             ],
             "support": {
                 "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
-                "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2"
+                "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3"
             },
-            "time": "2022-03-02T22:36:06+00:00"
+            "time": "2024-04-30T00:40:11+00:00"
         },
         {
             "name": "fidry/cpu-core-counter",
-            "version": "0.5.1",
+            "version": "1.2.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/theofidry/cpu-core-counter.git",
-                "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623"
+                "reference": "8520451a140d3f46ac33042715115e290cf5785f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623",
-                "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623",
+                "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f",
+                "reference": "8520451a140d3f46ac33042715115e290cf5785f",
                 "shasum": ""
             },
             "require": {
@@ -547,13 +596,13 @@
             },
             "require-dev": {
                 "fidry/makefile": "^0.2.0",
+                "fidry/php-cs-fixer-config": "^1.1.2",
                 "phpstan/extension-installer": "^1.2.0",
                 "phpstan/phpstan": "^1.9.2",
                 "phpstan/phpstan-deprecation-rules": "^1.0.0",
                 "phpstan/phpstan-phpunit": "^1.2.2",
                 "phpstan/phpstan-strict-rules": "^1.4.4",
-                "phpunit/phpunit": "^9.5.26 || ^8.5.31",
-                "theofidry/php-cs-fixer-config": "^1.0",
+                "phpunit/phpunit": "^8.5.31 || ^9.5.26",
                 "webmozarts/strict-phpunit": "^7.5"
             },
             "type": "library",
@@ -579,7 +628,7 @@
             ],
             "support": {
                 "issues": "https://github.com/theofidry/cpu-core-counter/issues",
-                "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1"
+                "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0"
             },
             "funding": [
                 {
@@ -587,20 +636,20 @@
                     "type": "github"
                 }
             ],
-            "time": "2022-12-24T12:35:10+00:00"
+            "time": "2024-08-06T10:04:20+00:00"
         },
         {
             "name": "netresearch/jsonmapper",
-            "version": "v4.0.0",
+            "version": "v4.5.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/cweiske/jsonmapper.git",
-                "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d"
+                "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d",
-                "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d",
+                "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5",
+                "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5",
                 "shasum": ""
             },
             "require": {
@@ -611,7 +660,7 @@
                 "php": ">=7.1"
             },
             "require-dev": {
-                "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0",
+                "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0",
                 "squizlabs/php_codesniffer": "~3.5"
             },
             "type": "library",
@@ -636,31 +685,31 @@
             "support": {
                 "email": "cweiske@cweiske.de",
                 "issues": "https://github.com/cweiske/jsonmapper/issues",
-                "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0"
+                "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0"
             },
-            "time": "2020-12-01T19:48:11+00:00"
+            "time": "2024-09-08T10:13:13+00:00"
         },
         {
             "name": "nikic/php-parser",
-            "version": "v4.15.1",
+            "version": "v4.19.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900"
+                "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900",
-                "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2",
+                "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2",
                 "shasum": ""
             },
             "require": {
                 "ext-tokenizer": "*",
-                "php": ">=7.0"
+                "php": ">=7.1"
             },
             "require-dev": {
                 "ircmaxell/php-yacc": "^0.0.7",
-                "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
             },
             "bin": [
                 "bin/php-parse"
@@ -692,9 +741,9 @@
             ],
             "support": {
                 "issues": "https://github.com/nikic/PHP-Parser/issues",
-                "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1"
+                "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4"
             },
-            "time": "2022-09-04T07:30:47+00:00"
+            "time": "2024-09-29T15:01:53+00:00"
         },
         {
             "name": "phpdocumentor/reflection-common",
@@ -751,28 +800,35 @@
         },
         {
             "name": "phpdocumentor/reflection-docblock",
-            "version": "5.3.0",
+            "version": "5.4.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
-                "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
+                "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
-                "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
+                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
+                "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
                 "shasum": ""
             },
             "require": {
+                "doctrine/deprecations": "^1.1",
                 "ext-filter": "*",
-                "php": "^7.2 || ^8.0",
+                "php": "^7.4 || ^8.0",
                 "phpdocumentor/reflection-common": "^2.2",
-                "phpdocumentor/type-resolver": "^1.3",
+                "phpdocumentor/type-resolver": "^1.7",
+                "phpstan/phpdoc-parser": "^1.7",
                 "webmozart/assert": "^1.9.1"
             },
             "require-dev": {
-                "mockery/mockery": "~1.3.2",
-                "psalm/phar": "^4.8"
+                "mockery/mockery": "~1.3.5",
+                "phpstan/extension-installer": "^1.1",
+                "phpstan/phpstan": "^1.8",
+                "phpstan/phpstan-mockery": "^1.1",
+                "phpstan/phpstan-webmozart-assert": "^1.2",
+                "phpunit/phpunit": "^9.5",
+                "vimeo/psalm": "^5.13"
             },
             "type": "library",
             "extra": {
@@ -796,36 +852,39 @@
                 },
                 {
                     "name": "Jaap van Otterdijk",
-                    "email": "account@ijaap.nl"
+                    "email": "opensource@ijaap.nl"
                 }
             ],
             "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
             "support": {
                 "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
-                "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
+                "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1"
             },
-            "time": "2021-10-19T17:43:47+00:00"
+            "time": "2024-05-21T05:55:05+00:00"
         },
         {
             "name": "phpdocumentor/type-resolver",
-            "version": "1.6.2",
+            "version": "1.8.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpDocumentor/TypeResolver.git",
-                "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d"
+                "reference": "153ae662783729388a584b4361f2545e4d841e3c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d",
-                "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d",
+                "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
+                "reference": "153ae662783729388a584b4361f2545e4d841e3c",
                 "shasum": ""
             },
             "require": {
-                "php": "^7.4 || ^8.0",
-                "phpdocumentor/reflection-common": "^2.0"
+                "doctrine/deprecations": "^1.0",
+                "php": "^7.3 || ^8.0",
+                "phpdocumentor/reflection-common": "^2.0",
+                "phpstan/phpdoc-parser": "^1.13"
             },
             "require-dev": {
                 "ext-tokenizer": "*",
+                "phpbench/phpbench": "^1.2",
                 "phpstan/extension-installer": "^1.1",
                 "phpstan/phpstan": "^1.8",
                 "phpstan/phpstan-phpunit": "^1.1",
@@ -857,9 +916,56 @@
             "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
             "support": {
                 "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
-                "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2"
+                "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
+            },
+            "time": "2024-02-23T11:10:43+00:00"
+        },
+        {
+            "name": "phpstan/phpdoc-parser",
+            "version": "1.32.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpstan/phpdoc-parser.git",
+                "reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
+                "reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
+                "shasum": ""
             },
-            "time": "2022-10-14T12:47:21+00:00"
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "require-dev": {
+                "doctrine/annotations": "^2.0",
+                "nikic/php-parser": "^4.15",
+                "php-parallel-lint/php-parallel-lint": "^1.2",
+                "phpstan/extension-installer": "^1.0",
+                "phpstan/phpstan": "^1.5",
+                "phpstan/phpstan-phpunit": "^1.1",
+                "phpstan/phpstan-strict-rules": "^1.0",
+                "phpunit/phpunit": "^9.5",
+                "symfony/process": "^5.2"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "PHPStan\\PhpDocParser\\": [
+                        "src/"
+                    ]
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "PHPDoc parser with support for nullable, intersection and generic types",
+            "support": {
+                "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+                "source": "https://github.com/phpstan/phpdoc-parser/tree/1.32.0"
+            },
+            "time": "2024-09-26T07:23:32+00:00"
         },
         {
             "name": "psr/container",
@@ -961,16 +1067,16 @@
         },
         {
             "name": "sebastian/diff",
-            "version": "4.0.4",
+            "version": "4.0.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+                "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
-                "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+                "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
                 "shasum": ""
             },
             "require": {
@@ -1015,7 +1121,7 @@
             ],
             "support": {
                 "issues": "https://github.com/sebastianbergmann/diff/issues",
-                "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+                "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
             },
             "funding": [
                 {
@@ -1023,20 +1129,20 @@
                     "type": "github"
                 }
             ],
-            "time": "2020-10-26T13:10:38+00:00"
+            "time": "2024-03-02T06:30:58+00:00"
         },
         {
             "name": "spatie/array-to-xml",
-            "version": "3.1.5",
+            "version": "3.3.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/spatie/array-to-xml.git",
-                "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43"
+                "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/13f76acef5362d15c71ae1ac6350cc3df5e25e43",
-                "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43",
+                "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f56b220fe2db1ade4c88098d83413ebdfc3bf876",
+                "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876",
                 "shasum": ""
             },
             "require": {
@@ -1049,6 +1155,11 @@
                 "spatie/pest-plugin-snapshots": "^1.1"
             },
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.x-dev"
+                }
+            },
             "autoload": {
                 "psr-4": {
                     "Spatie\\ArrayToXml\\": "src"
@@ -1074,7 +1185,7 @@
                 "xml"
             ],
             "support": {
-                "source": "https://github.com/spatie/array-to-xml/tree/3.1.5"
+                "source": "https://github.com/spatie/array-to-xml/tree/3.3.0"
             },
             "funding": [
                 {
@@ -1086,20 +1197,20 @@
                     "type": "github"
                 }
             ],
-            "time": "2022-12-24T13:43:51+00:00"
+            "time": "2024-05-01T10:20:27+00:00"
         },
         {
             "name": "symfony/console",
-            "version": "v5.4.15",
+            "version": "v5.4.44",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/console.git",
-                "reference": "ea59bb0edfaf9f28d18d8791410ee0355f317669"
+                "reference": "5b5a0aa66e3296e303e22490f90f521551835a83"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/ea59bb0edfaf9f28d18d8791410ee0355f317669",
-                "reference": "ea59bb0edfaf9f28d18d8791410ee0355f317669",
+                "url": "https://api.github.com/repos/symfony/console/zipball/5b5a0aa66e3296e303e22490f90f521551835a83",
+                "reference": "5b5a0aa66e3296e303e22490f90f521551835a83",
                 "shasum": ""
             },
             "require": {
@@ -1164,12 +1275,12 @@
             "homepage": "https://symfony.com",
             "keywords": [
                 "cli",
-                "command line",
+                "command-line",
                 "console",
                 "terminal"
             ],
             "support": {
-                "source": "https://github.com/symfony/console/tree/v5.4.15"
+                "source": "https://github.com/symfony/console/tree/v5.4.44"
             },
             "funding": [
                 {
@@ -1185,20 +1296,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-10-26T21:41:52+00:00"
+            "time": "2024-09-20T07:56:40+00:00"
         },
         {
             "name": "symfony/deprecation-contracts",
-            "version": "v2.5.2",
+            "version": "v2.5.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/deprecation-contracts.git",
-                "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
+                "reference": "80d075412b557d41002320b96a096ca65aa2c98d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
-                "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
+                "reference": "80d075412b557d41002320b96a096ca65aa2c98d",
                 "shasum": ""
             },
             "require": {
@@ -1236,7 +1347,7 @@
             "description": "A generic function and convention to trigger deprecation notices",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3"
             },
             "funding": [
                 {
@@ -1252,20 +1363,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-01-02T09:53:40+00:00"
+            "time": "2023-01-24T14:02:46+00:00"
         },
         {
             "name": "symfony/filesystem",
-            "version": "v5.4.21",
+            "version": "v5.4.44",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/filesystem.git",
-                "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f"
+                "reference": "76c3818964e9d32be3862c9318ae3ba9aa280ddc"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/filesystem/zipball/e75960b1bbfd2b8c9e483e0d74811d555ca3de9f",
-                "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f",
+                "url": "https://api.github.com/repos/symfony/filesystem/zipball/76c3818964e9d32be3862c9318ae3ba9aa280ddc",
+                "reference": "76c3818964e9d32be3862c9318ae3ba9aa280ddc",
                 "shasum": ""
             },
             "require": {
@@ -1274,6 +1385,9 @@
                 "symfony/polyfill-mbstring": "~1.8",
                 "symfony/polyfill-php80": "^1.16"
             },
+            "require-dev": {
+                "symfony/process": "^5.4|^6.4"
+            },
             "type": "library",
             "autoload": {
                 "psr-4": {
@@ -1300,7 +1414,7 @@
             "description": "Provides basic utilities for the filesystem",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/filesystem/tree/v5.4.21"
+                "source": "https://github.com/symfony/filesystem/tree/v5.4.44"
             },
             "funding": [
                 {
@@ -1316,24 +1430,24 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-02-14T08:03:56+00:00"
+            "time": "2024-09-16T14:52:48+00:00"
         },
         {
             "name": "symfony/polyfill-ctype",
-            "version": "v1.26.0",
+            "version": "v1.31.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-ctype.git",
-                "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4"
+                "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
-                "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+                "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.1"
+                "php": ">=7.2"
             },
             "provide": {
                 "ext-ctype": "*"
@@ -1343,9 +1457,6 @@
             },
             "type": "library",
             "extra": {
-                "branch-alias": {
-                    "dev-main": "1.26-dev"
-                },
                 "thanks": {
                     "name": "symfony/polyfill",
                     "url": "https://github.com/symfony/polyfill"
@@ -1382,7 +1493,7 @@
                 "portable"
             ],
             "support": {
-                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0"
+                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
             },
             "funding": [
                 {
@@ -1398,33 +1509,30 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-05-24T11:49:31+00:00"
+            "time": "2024-09-09T11:45:10+00:00"
         },
         {
             "name": "symfony/polyfill-intl-grapheme",
-            "version": "v1.26.0",
+            "version": "v1.31.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
-                "reference": "433d05519ce6990bf3530fba6957499d327395c2"
+                "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2",
-                "reference": "433d05519ce6990bf3530fba6957499d327395c2",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+                "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.1"
+                "php": ">=7.2"
             },
             "suggest": {
                 "ext-intl": "For best performance"
             },
             "type": "library",
             "extra": {
-                "branch-alias": {
-                    "dev-main": "1.26-dev"
-                },
                 "thanks": {
                     "name": "symfony/polyfill",
                     "url": "https://github.com/symfony/polyfill"
@@ -1463,7 +1571,7 @@
                 "shim"
             ],
             "support": {
-                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0"
+                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
             },
             "funding": [
                 {
@@ -1479,33 +1587,30 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-05-24T11:49:31+00:00"
+            "time": "2024-09-09T11:45:10+00:00"
         },
         {
             "name": "symfony/polyfill-intl-normalizer",
-            "version": "v1.26.0",
+            "version": "v1.31.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
-                "reference": "219aa369ceff116e673852dce47c3a41794c14bd"
+                "reference": "3833d7255cc303546435cb650316bff708a1c75c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd",
-                "reference": "219aa369ceff116e673852dce47c3a41794c14bd",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+                "reference": "3833d7255cc303546435cb650316bff708a1c75c",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.1"
+                "php": ">=7.2"
             },
             "suggest": {
                 "ext-intl": "For best performance"
             },
             "type": "library",
             "extra": {
-                "branch-alias": {
-                    "dev-main": "1.26-dev"
-                },
                 "thanks": {
                     "name": "symfony/polyfill",
                     "url": "https://github.com/symfony/polyfill"
@@ -1547,7 +1652,7 @@
                 "shim"
             ],
             "support": {
-                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0"
+                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
             },
             "funding": [
                 {
@@ -1563,24 +1668,24 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-05-24T11:49:31+00:00"
+            "time": "2024-09-09T11:45:10+00:00"
         },
         {
             "name": "symfony/polyfill-mbstring",
-            "version": "v1.26.0",
+            "version": "v1.31.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-mbstring.git",
-                "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
+                "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
-                "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+                "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.1"
+                "php": ">=7.2"
             },
             "provide": {
                 "ext-mbstring": "*"
@@ -1590,9 +1695,6 @@
             },
             "type": "library",
             "extra": {
-                "branch-alias": {
-                    "dev-main": "1.26-dev"
-                },
                 "thanks": {
                     "name": "symfony/polyfill",
                     "url": "https://github.com/symfony/polyfill"
@@ -1630,7 +1732,7 @@
                 "shim"
             ],
             "support": {
-                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
             },
             "funding": [
                 {
@@ -1646,30 +1748,27 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-05-24T11:49:31+00:00"
+            "time": "2024-09-09T11:45:10+00:00"
         },
         {
             "name": "symfony/polyfill-php73",
-            "version": "v1.26.0",
+            "version": "v1.31.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-php73.git",
-                "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85"
+                "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85",
-                "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85",
+                "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+                "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.1"
+                "php": ">=7.2"
             },
             "type": "library",
             "extra": {
-                "branch-alias": {
-                    "dev-main": "1.26-dev"
-                },
                 "thanks": {
                     "name": "symfony/polyfill",
                     "url": "https://github.com/symfony/polyfill"
@@ -1709,7 +1808,7 @@
                 "shim"
             ],
             "support": {
-                "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0"
+                "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0"
             },
             "funding": [
                 {
@@ -1725,30 +1824,27 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-05-24T11:49:31+00:00"
+            "time": "2024-09-09T11:45:10+00:00"
         },
         {
             "name": "symfony/polyfill-php80",
-            "version": "v1.26.0",
+            "version": "v1.31.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-php80.git",
-                "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace"
+                "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace",
-                "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+                "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.1"
+                "php": ">=7.2"
             },
             "type": "library",
             "extra": {
-                "branch-alias": {
-                    "dev-main": "1.26-dev"
-                },
                 "thanks": {
                     "name": "symfony/polyfill",
                     "url": "https://github.com/symfony/polyfill"
@@ -1792,7 +1888,7 @@
                 "shim"
             ],
             "support": {
-                "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0"
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
             },
             "funding": [
                 {
@@ -1808,20 +1904,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-05-10T07:21:04+00:00"
+            "time": "2024-09-09T11:45:10+00:00"
         },
         {
             "name": "symfony/service-contracts",
-            "version": "v2.5.2",
+            "version": "v2.5.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/service-contracts.git",
-                "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+                "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
-                "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3",
+                "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3",
                 "shasum": ""
             },
             "require": {
@@ -1875,7 +1971,7 @@
                 "standards"
             ],
             "support": {
-                "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+                "source": "https://github.com/symfony/service-contracts/tree/v2.5.3"
             },
             "funding": [
                 {
@@ -1891,20 +1987,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-05-30T19:17:29+00:00"
+            "time": "2023-04-21T15:04:16+00:00"
         },
         {
             "name": "symfony/string",
-            "version": "v5.4.15",
+            "version": "v5.4.44",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/string.git",
-                "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed"
+                "reference": "832caa16b6d9aac6bf11747315225f5aba384c24"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed",
-                "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed",
+                "url": "https://api.github.com/repos/symfony/string/zipball/832caa16b6d9aac6bf11747315225f5aba384c24",
+                "reference": "832caa16b6d9aac6bf11747315225f5aba384c24",
                 "shasum": ""
             },
             "require": {
@@ -1961,7 +2057,7 @@
                 "utf8"
             ],
             "support": {
-                "source": "https://github.com/symfony/string/tree/v5.4.15"
+                "source": "https://github.com/symfony/string/tree/v5.4.44"
             },
             "funding": [
                 {
@@ -1977,20 +2073,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-10-05T15:16:54+00:00"
+            "time": "2024-09-20T07:56:40+00:00"
         },
         {
             "name": "vimeo/psalm",
-            "version": "5.9.0",
+            "version": "5.26.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/vimeo/psalm.git",
-                "reference": "8b9ad1eb9e8b7d3101f949291da2b9f7767cd163"
+                "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/vimeo/psalm/zipball/8b9ad1eb9e8b7d3101f949291da2b9f7767cd163",
-                "reference": "8b9ad1eb9e8b7d3101f949291da2b9f7767cd163",
+                "url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0",
+                "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0",
                 "shasum": ""
             },
             "require": {
@@ -2009,14 +2105,17 @@
                 "ext-tokenizer": "*",
                 "felixfbecker/advanced-json-rpc": "^3.1",
                 "felixfbecker/language-server-protocol": "^1.5.2",
-                "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1",
+                "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0",
                 "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
-                "nikic/php-parser": "^4.14",
-                "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0",
-                "sebastian/diff": "^4.0 || ^5.0",
+                "nikic/php-parser": "^4.17",
+                "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
+                "sebastian/diff": "^4.0 || ^5.0 || ^6.0",
                 "spatie/array-to-xml": "^2.17.0 || ^3.0",
-                "symfony/console": "^4.1.6 || ^5.0 || ^6.0",
-                "symfony/filesystem": "^5.4 || ^6.0"
+                "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0",
+                "symfony/filesystem": "^5.4 || ^6.0 || ^7.0"
+            },
+            "conflict": {
+                "nikic/php-parser": "4.17.0"
             },
             "provide": {
                 "psalm/psalm": "self.version"
@@ -2035,7 +2134,7 @@
                 "psalm/plugin-phpunit": "^0.18",
                 "slevomat/coding-standard": "^8.4",
                 "squizlabs/php_codesniffer": "^3.6",
-                "symfony/process": "^4.4 || ^5.0 || ^6.0"
+                "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0"
             },
             "suggest": {
                 "ext-curl": "In order to send data to shepherd",
@@ -2048,7 +2147,7 @@
                 "psalm-refactor",
                 "psalter"
             ],
-            "type": "library",
+            "type": "project",
             "extra": {
                 "branch-alias": {
                     "dev-master": "5.x-dev",
@@ -2080,10 +2179,11 @@
                 "static analysis"
             ],
             "support": {
+                "docs": "https://psalm.dev/docs",
                 "issues": "https://github.com/vimeo/psalm/issues",
-                "source": "https://github.com/vimeo/psalm/tree/5.9.0"
+                "source": "https://github.com/vimeo/psalm"
             },
-            "time": "2023-03-29T21:38:21+00:00"
+            "time": "2024-09-08T18:53:08+00:00"
         },
         {
             "name": "webmozart/assert",
@@ -2155,5 +2255,5 @@
     "platform-overrides": {
         "php": "8.0"
     },
-    "plugin-api-version": "2.3.0"
+    "plugin-api-version": "2.6.0"
 }
