From 9b7b78f996217fa35b086924b9f44fea0a20ef0c Mon Sep 17 00:00:00 2001
From: Kevin Cristiano <kcristiano@kcristiano.com>
Date: Tue, 4 Aug 2020 08:51:41 -0400
Subject: [PATCH] civicrm release

---
 civicrm.php                                   |  4 +-
 civicrm/CRM/Contribute/BAO/Contribution.php   |  3 +-
 civicrm/CRM/Core/Action.php                   | 34 ++++++++---
 civicrm/CRM/Core/Error.php                    | 12 ----
 civicrm/CRM/Price/BAO/PriceFieldValue.php     |  4 +-
 civicrm/CRM/Report/Form.php                   | 15 +----
 .../Upgrade/Incremental/sql/5.27.4.mysql.tpl  |  1 +
 civicrm/CRM/Utils/System/WordPress.php        |  7 ---
 civicrm/civicrm-version.php                   |  2 +-
 civicrm/release-notes.md                      |  9 +++
 civicrm/release-notes/5.27.4.md               | 56 +++++++++++++++++++
 civicrm/sql/civicrm_data.mysql                |  2 +-
 civicrm/sql/civicrm_generated.mysql           |  2 +-
 civicrm/vendor/autoload.php                   |  2 +-
 civicrm/vendor/composer/autoload_real.php     | 14 ++---
 civicrm/vendor/composer/autoload_static.php   | 12 ++--
 civicrm/xml/version.xml                       |  2 +-
 17 files changed, 118 insertions(+), 63 deletions(-)
 create mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.27.4.mysql.tpl
 create mode 100644 civicrm/release-notes/5.27.4.md

diff --git a/civicrm.php b/civicrm.php
index b1270e419f..e4a935902c 100644
--- a/civicrm.php
+++ b/civicrm.php
@@ -2,7 +2,7 @@
 /*
 Plugin Name: CiviCRM
 Description: CiviCRM - Growing and Sustaining Relationships
-Version: 5.27.3
+Version: 5.27.4
 Requires at least: 4.9
 Requires PHP:      7.1
 Author: CiviCRM LLC
@@ -56,7 +56,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
 
 
 // Set version here: when it changes, will force JS to reload
-define( 'CIVICRM_PLUGIN_VERSION', '5.27.3' );
+define( 'CIVICRM_PLUGIN_VERSION', '5.27.4' );
 
 // Store reference to this file
 if (!defined('CIVICRM_PLUGIN_FILE')) {
diff --git a/civicrm/CRM/Contribute/BAO/Contribution.php b/civicrm/CRM/Contribute/BAO/Contribution.php
index 655a9c63ac..9d11cb0c9a 100644
--- a/civicrm/CRM/Contribute/BAO/Contribution.php
+++ b/civicrm/CRM/Contribute/BAO/Contribution.php
@@ -1311,7 +1311,8 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
           FALSE,
           'Payment.edit.action',
           'Payment',
-          $resultDAO->id
+          $resultDAO->id,
+          'icon'
         );
       }
 
diff --git a/civicrm/CRM/Core/Action.php b/civicrm/CRM/Core/Action.php
index f147507602..2211d6cdb6 100644
--- a/civicrm/CRM/Core/Action.php
+++ b/civicrm/CRM/Core/Action.php
@@ -178,6 +178,12 @@ class CRM_Core_Action {
    * @param null $op
    * @param null $objectName
    * @param int $objectId
+   * @param string $iconMode
+   *   - `text`: even if `icon` is set for a link, display the `name`
+   *   - `icon`: display only the `icon` for each link if it's available, and
+   *     don't tuck anything under "more >"
+   *   - `both`: if `icon` is available, display it next to the `name` for each
+   *     link
    *
    * @return string
    *   the html string
@@ -190,7 +196,8 @@ class CRM_Core_Action {
     $enclosedAllInSingleUL = FALSE,
     $op = NULL,
     $objectName = NULL,
-    $objectId = NULL
+    $objectId = NULL,
+    $iconMode = 'text'
   ) {
     if (empty($links)) {
       return NULL;
@@ -243,11 +250,22 @@ class CRM_Core_Action {
         if (strpos($urlPath, '/delete') || strpos($urlPath, 'action=delete')) {
           $classes .= " small-popup";
         }
+
+        $linkContent = $link['name'];
+        if (!empty($link['icon'])) {
+          if ($iconMode == 'icon') {
+            $linkContent = CRM_Core_Page::crmIcon($link['icon'], $link['name'], TRUE, ['title' => '']);
+          }
+          elseif ($iconMode == 'both') {
+            $linkContent = CRM_Core_Page::crmIcon($link['icon']) . ' ' . $linkContent;
+          }
+        }
+
         $url[] = sprintf('<a href="%s" class="%s" %s' . $extra . '>%s</a>',
           $urlPath,
           $classes,
           !empty($link['title']) ? "title='{$link['title']}' " : '',
-          empty($link['icon']) ? $link['name'] : CRM_Core_Page::crmIcon($link['icon'], $link['name'], TRUE, ['title' => ''])
+          $linkContent
         );
       }
     }
@@ -261,11 +279,13 @@ class CRM_Core_Action {
     }
     else {
       $extra = '';
-      $extraLinks = array_splice($url, 2);
-      if (count($extraLinks) > 1) {
-        $mainLinks = array_slice($url, 0, 2);
-        CRM_Utils_String::append($extra, '</li><li>', $extraLinks);
-        $extra = "{$extraULName}<ul class='panel'><li>{$extra}</li></ul>";
+      if ($iconMode != 'icon') {
+        $extraLinks = array_splice($url, 2);
+        if (count($extraLinks) > 1) {
+          $mainLinks = array_slice($url, 0, 2);
+          CRM_Utils_String::append($extra, '</li><li>', $extraLinks);
+          $extra = "{$extraULName}<ul class='panel'><li>{$extra}</li></ul>";
+        }
       }
       $resultLinks = '';
       CRM_Utils_String::append($resultLinks, '', $mainLinks);
diff --git a/civicrm/CRM/Core/Error.php b/civicrm/CRM/Core/Error.php
index 573cd4739c..39cac95159 100644
--- a/civicrm/CRM/Core/Error.php
+++ b/civicrm/CRM/Core/Error.php
@@ -572,18 +572,6 @@ class CRM_Core_Error extends PEAR_ErrorStack {
     }
     $file_log->close();
 
-    // Use the custom fatalErrorHandler if defined
-    if (in_array($priority, [PEAR_LOG_EMERG, PEAR_LOG_ALERT, PEAR_LOG_CRIT, PEAR_LOG_ERR])) {
-      if ($config->fatalErrorHandler && function_exists($config->fatalErrorHandler)) {
-        $name = $config->fatalErrorHandler;
-        $vars = [
-          'debugLogMessage' => $message,
-          'priority' => $priority,
-        ];
-        $name($vars);
-      }
-    }
-
     if (!isset(\Civi::$statics[__CLASS__]['userFrameworkLogging'])) {
       // Set it to FALSE first & then try to set it. This is to prevent a loop as calling
       // $config->userFrameworkLogging can trigger DB queries & under log mode this
diff --git a/civicrm/CRM/Price/BAO/PriceFieldValue.php b/civicrm/CRM/Price/BAO/PriceFieldValue.php
index 7ad8514b75..e33b1ed83b 100644
--- a/civicrm/CRM/Price/BAO/PriceFieldValue.php
+++ b/civicrm/CRM/Price/BAO/PriceFieldValue.php
@@ -29,8 +29,6 @@ class CRM_Price_BAO_PriceFieldValue extends CRM_Price_DAO_PriceFieldValue {
    * @return CRM_Price_DAO_PriceFieldValue
    */
   public static function add($params) {
-    $fieldValueBAO = self::writeRecord($params);
-
     if (!empty($params['is_default'])) {
       $priceFieldID = $params['price_field_id'] ?? CRM_Core_DAO::getFieldValue('CRM_Price_BAO_PriceFieldValue', $fieldValueBAO->id, 'price_field_id');
       $query = 'UPDATE civicrm_price_field_value SET is_default = 0 WHERE  price_field_id = %1';
@@ -38,6 +36,8 @@ class CRM_Price_BAO_PriceFieldValue extends CRM_Price_DAO_PriceFieldValue {
       CRM_Core_DAO::executeQuery($query, $p);
     }
 
+    $fieldValueBAO = self::writeRecord($params);
+
     // Reset the cached values in this function.
     CRM_Price_BAO_PriceField::getOptions(CRM_Utils_Array::value('price_field_id', $params), FALSE, TRUE);
     return $fieldValueBAO;
diff --git a/civicrm/CRM/Report/Form.php b/civicrm/CRM/Report/Form.php
index 3690f84c8c..0768843c5e 100644
--- a/civicrm/CRM/Report/Form.php
+++ b/civicrm/CRM/Report/Form.php
@@ -139,11 +139,6 @@ class CRM_Report_Form extends CRM_Core_Form {
    */
   protected $_groupFilter = FALSE;
 
-  /**
-   * Required for civiexportexcel.
-   */
-  public $supportsExportExcel = TRUE;
-
   /**
    * Has the report been optimised for group filtering.
    *
@@ -1440,7 +1435,7 @@ class CRM_Report_Form extends CRM_Core_Form {
     if (!CRM_Core_Permission::check('view report sql')) {
       return;
     }
-    $ignored_output_modes = ['pdf', 'csv', 'print', 'excel2007'];
+    $ignored_output_modes = ['pdf', 'csv', 'print'];
     if (in_array($this->_outputMode, $ignored_output_modes)) {
       return;
     }
@@ -2866,11 +2861,6 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
       $this->_absoluteUrl = TRUE;
       $this->addPaging = FALSE;
     }
-    elseif ($this->_outputMode == 'excel2007') {
-      $printOnly = TRUE;
-      $this->_absoluteUrl = TRUE;
-      $this->addPaging = FALSE;
-    }
     elseif ($this->_outputMode == 'copy' && $this->_criteriaForm) {
       $this->_createNew = TRUE;
     }
@@ -3508,9 +3498,6 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
     elseif ($this->_outputMode == 'csv') {
       CRM_Report_Utils_Report::export2csv($this, $rows);
     }
-    elseif ($this->_outputMode == 'excel2007') {
-      CRM_CiviExportExcel_Utils_Report::export2excel2007($this, $rows);
-    }
     elseif ($this->_outputMode == 'group') {
       $group = $this->_params['groups'];
       $this->add2group($group);
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.27.4.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.27.4.mysql.tpl
new file mode 100644
index 0000000000..2f3f74114c
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/sql/5.27.4.mysql.tpl
@@ -0,0 +1 @@
+{* file to handle db changes in 5.27.4 during upgrade *}
diff --git a/civicrm/CRM/Utils/System/WordPress.php b/civicrm/CRM/Utils/System/WordPress.php
index a4c79c7193..0a80bd2bd4 100644
--- a/civicrm/CRM/Utils/System/WordPress.php
+++ b/civicrm/CRM/Utils/System/WordPress.php
@@ -56,13 +56,6 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
       };
       Civi::paths()->register('cms', $cmsRoot);
       Civi::paths()->register('cms.root', $cmsRoot);
-      Civi::paths()->register('civicrm.files', function () {
-        $upload_dir = wp_get_upload_dir();
-        return [
-          'path' => $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'civicrm' . DIRECTORY_SEPARATOR,
-          'url' => $upload_dir['baseurl'] . '/civicrm/',
-        ];
-      });
       Civi::paths()->register('civicrm.root', function () {
         return [
           'path' => CIVICRM_PLUGIN_DIR . 'civicrm' . DIRECTORY_SEPARATOR,
diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php
index 3e845c18ea..675c06727f 100644
--- a/civicrm/civicrm-version.php
+++ b/civicrm/civicrm-version.php
@@ -1,7 +1,7 @@
 <?php
 /** @deprecated */
 function civicrmVersion( ) {
-  return array( 'version'  => '5.27.3',
+  return array( 'version'  => '5.27.4',
                 'cms'      => 'Wordpress',
                 'revision' => '' );
 }
diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md
index 3dfe1298d6..9725481ed8 100644
--- a/civicrm/release-notes.md
+++ b/civicrm/release-notes.md
@@ -15,6 +15,15 @@ Other resources for identifying changes are:
     * https://github.com/civicrm/civicrm-joomla
     * https://github.com/civicrm/civicrm-wordpress
 
+## CiviCRM 5.27.4
+
+Released August 3, 2020
+
+- **[Synopsis](release-notes/5.27.4.md#synopsis)**
+- **[Bugs resolved](release-notes/5.27.4.md#bugs)**
+- **[Credits](release-notes/5.27.4.md#credits)**
+- **[Feedback](release-notes/5.27.4.md#feedback)**
+
 ## CiviCRM 5.27.3
 
 Released July 23, 2020
diff --git a/civicrm/release-notes/5.27.4.md b/civicrm/release-notes/5.27.4.md
new file mode 100644
index 0000000000..feaaaa0e4e
--- /dev/null
+++ b/civicrm/release-notes/5.27.4.md
@@ -0,0 +1,56 @@
+# CiviCRM 5.27.4
+
+Released August 3, 2020
+
+- **[Synopsis](#synopsis)**
+- **[Bugs resolved](#bugs)**
+- **[Credits](#credits)**
+- **[Feedback](#feedback)**
+
+## <a name="synopsis"></a>Synopsis
+
+| *Does this version...?*                                         |         |
+|:--------------------------------------------------------------- |:-------:|
+| Fix security vulnerabilities?                                   |   no    |
+| Change the database schema?                                     |   no    |
+| Alter the API?                                                  |   no    |
+| **Require attention to configuration options?**                 | **yes** |
+| **Fix problems installing or upgrading to a previous version?** | **yes** |
+| Introduce features?                                             |   no    |
+| **Fix bugs?**                                                   | **yes** |
+
+## <a name="bugs"></a>Bugs resolved
+
+* **_CiviCase_: Action links are missing text labels ([dev/core#1899](https://lab.civicrm.org/dev/core/-/issues/1899):
+  [#17947](https://github.com/civicrm/civicrm-core/pull/17947))**
+* **_CiviContribute_: When editing "Amounts", default is mis-saved ([dev/core#1911](https://lab.civicrm.org/dev/core/-/issues/1911):
+  [#17960](https://github.com/civicrm/civicrm-core/pull/17960))**
+
+  If you recently edited any "Amounts", then please review and verify that the default is correct.
+  Mis-saved defaults can cause problems when submitting contributions.
+
+* **_CiviMail_: Blasts sent via Job Manager do not recover from errors ([dev/mail#72](https://lab.civicrm.org/dev/mail/-/issues/72):
+  [#18017](https://github.com/civicrm/civicrm-core/pull/18017))**
+* **_WordPress_: `[civicrm.files]` is incorrect on older sites ([dev/wordpress#66](https://lab.civicrm.org/dev/wordpress/-/issues/66):
+  [#17868](https://github.com/civicrm/civicrm-core/pull/17868))**
+
+  This fixes a regression affecting older WordPress deployments by partially reverting
+  [dev/wordpress#47](https://lab.civicrm.org/dev/wordpress/-/issues/47).  This means that some WordPress configurations
+  (eg Polylang) may return to being unsupported.  The issue is scheduled to be revisited circa 5.29.  
+
+## <a name="credits"></a>Credits
+
+<!-- X: TIP: In buildkit, the CLI command civicredits.php can help autocomplete contributor names with the typical formatting.  -->
+
+This release was developed by the following authors and reviewers:
+
+Wikimedia Foundation - Eileen McNaughton; Team Expansion - Greg Harris; Tadpole Collective - Kevin
+Cristiano; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; JMA
+Consulting - Seamus Lee; Dave D; CiviCRM - Tim Otten; Christian Wach; Agileware - Justin Freeman;
+AGH Strategies - Andrew Hunt
+
+## <a name="feedback"></a>Feedback
+
+These release notes are edited by Tim Otten and Andrew Hunt.  If you'd like to
+provide feedback on them, please login to https://chat.civicrm.org/civicrm and
+contact `@agh1`.
diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql
index 4747aea9fe..1b5e2b547b 100644
--- a/civicrm/sql/civicrm_data.mysql
+++ b/civicrm/sql/civicrm_data.mysql
@@ -23897,4 +23897,4 @@ INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
     (  @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}');
-UPDATE civicrm_domain SET version = '5.27.3';
+UPDATE civicrm_domain SET version = '5.27.4';
diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql
index 92451d956f..7bb9948304 100644
--- a/civicrm/sql/civicrm_generated.mysql
+++ b/civicrm/sql/civicrm_generated.mysql
@@ -399,7 +399,7 @@ UNLOCK TABLES;
 
 LOCK TABLES `civicrm_domain` WRITE;
 /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */;
-INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,'5.27.3',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
+INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,'5.27.4',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
 /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */;
 UNLOCK TABLES;
 
diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php
index afc2fef0c1..8adc26af71 100644
--- a/civicrm/vendor/autoload.php
+++ b/civicrm/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer/autoload_real.php';
 
-return ComposerAutoloaderInitca5a215181f6be4f111a9c4dab5c9ac2::getLoader();
+return ComposerAutoloaderInit329a6691f1578f9719198bc39d257f6b::getLoader();
diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php
index 16a1c5c6da..764800436b 100644
--- a/civicrm/vendor/composer/autoload_real.php
+++ b/civicrm/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInitca5a215181f6be4f111a9c4dab5c9ac2
+class ComposerAutoloaderInit329a6691f1578f9719198bc39d257f6b
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitca5a215181f6be4f111a9c4dab5c9ac2
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInitca5a215181f6be4f111a9c4dab5c9ac2', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInit329a6691f1578f9719198bc39d257f6b', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInitca5a215181f6be4f111a9c4dab5c9ac2', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInit329a6691f1578f9719198bc39d257f6b', 'loadClassLoader'));
 
         $includePaths = require __DIR__ . '/include_paths.php';
         $includePaths[] = get_include_path();
@@ -31,7 +31,7 @@ class ComposerAutoloaderInitca5a215181f6be4f111a9c4dab5c9ac2
         if ($useStaticLoader) {
             require_once __DIR__ . '/autoload_static.php';
 
-            call_user_func(\Composer\Autoload\ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2::getInitializer($loader));
+            call_user_func(\Composer\Autoload\ComposerStaticInit329a6691f1578f9719198bc39d257f6b::getInitializer($loader));
         } else {
             $map = require __DIR__ . '/autoload_namespaces.php';
             foreach ($map as $namespace => $path) {
@@ -52,19 +52,19 @@ class ComposerAutoloaderInitca5a215181f6be4f111a9c4dab5c9ac2
         $loader->register(true);
 
         if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2::$files;
+            $includeFiles = Composer\Autoload\ComposerStaticInit329a6691f1578f9719198bc39d257f6b::$files;
         } else {
             $includeFiles = require __DIR__ . '/autoload_files.php';
         }
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequireca5a215181f6be4f111a9c4dab5c9ac2($fileIdentifier, $file);
+            composerRequire329a6691f1578f9719198bc39d257f6b($fileIdentifier, $file);
         }
 
         return $loader;
     }
 }
 
-function composerRequireca5a215181f6be4f111a9c4dab5c9ac2($fileIdentifier, $file)
+function composerRequire329a6691f1578f9719198bc39d257f6b($fileIdentifier, $file)
 {
     if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
         require $file;
diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php
index ec6f260aa2..8879d9e787 100644
--- a/civicrm/vendor/composer/autoload_static.php
+++ b/civicrm/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
 
 namespace Composer\Autoload;
 
-class ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2
+class ComposerStaticInit329a6691f1578f9719198bc39d257f6b
 {
     public static $files = array (
         '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
@@ -497,11 +497,11 @@ class ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2
     public static function getInitializer(ClassLoader $loader)
     {
         return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2::$prefixDirsPsr4;
-            $loader->prefixesPsr0 = ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2::$prefixesPsr0;
-            $loader->fallbackDirsPsr0 = ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2::$fallbackDirsPsr0;
-            $loader->classMap = ComposerStaticInitca5a215181f6be4f111a9c4dab5c9ac2::$classMap;
+            $loader->prefixLengthsPsr4 = ComposerStaticInit329a6691f1578f9719198bc39d257f6b::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = ComposerStaticInit329a6691f1578f9719198bc39d257f6b::$prefixDirsPsr4;
+            $loader->prefixesPsr0 = ComposerStaticInit329a6691f1578f9719198bc39d257f6b::$prefixesPsr0;
+            $loader->fallbackDirsPsr0 = ComposerStaticInit329a6691f1578f9719198bc39d257f6b::$fallbackDirsPsr0;
+            $loader->classMap = ComposerStaticInit329a6691f1578f9719198bc39d257f6b::$classMap;
 
         }, null, ClassLoader::class);
     }
diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml
index 2d10e7413a..bc63dfd7c7 100644
--- a/civicrm/xml/version.xml
+++ b/civicrm/xml/version.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="iso-8859-1" ?>
 <version>
-  <version_no>5.27.3</version_no>
+  <version_no>5.27.4</version_no>
 </version>
-- 
GitLab