basic/qa/basic_coverage/test_format_function.bas                          |    
6 
 basic/qa/basic_coverage/test_str_method.bas                               |   
42 
 basic/qa/basic_coverage/test_typename_method.bas                          |    
2 
 basic/source/classes/image.cxx                                            |    
3 
 basic/source/comp/scanner.cxx                                             |    
2 
 basic/source/comp/symtbl.cxx                                              |    
5 
 basic/source/inc/filefmt.hxx                                              |    
2 
 basic/source/runtime/methods.cxx                                          |   
19 
 basic/source/runtime/runtime.cxx                                          |    
4 
 basic/source/sbx/sbxscan.cxx                                              |   
10 
 download.lst                                                              |    
4 
 drawinglayer/source/primitive2d/textbreakuphelper.cxx                     |    
5 
 drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx              |    
4 
 drawinglayer/source/primitive2d/textprimitive2d.cxx                       |    
3 
 drawinglayer/source/processor2d/vclprocessor2d.cxx                        |    
3 
 drawinglayer/source/tools/emfphelperdata.cxx                              |    
2 
 drawinglayer/source/tools/wmfemfhelper.cxx                                |    
5 
 external/curl/0001-cookie-don-t-treat-the-leading-slash-as-trailing.patch |   
54 
 external/curl/0001-ws-get-a-new-mask-for-each-new-outgoing-frame.patch    |   
61 
 external/curl/UnpackedTarball_curl.mk                                     |    
2 
 external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk       |    
1 
 external/mariadb-connector-c/c23.patch.0                                  |   
11 
 extras/source/templates/presnt/Candy/styles.xml                           |    
8 
 include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx             |    
1 
 include/drawinglayer/primitive2d/textprimitive2d.hxx                      |    
7 
 sc/qa/unit/data/functions/array/fods/sumproduct.fods                      | 
6862 +++++-----
 sc/qa/unit/data/ods/tdf140866.ods                                         
|binary
 sc/qa/unit/scshapetest.cxx                                                |   
50 
 sc/qa/unit/tiledrendering/data/tdf167042.ods                              
|binary
 sc/qa/unit/tiledrendering/tiledrendering2.cxx                             |   
53 
 sc/source/core/data/drwlayer.cxx                                          |    
4 
 sc/source/core/tool/compiler.cxx                                          |    
2 
 sc/source/ui/undo/undoblk.cxx                                             |    
6 
 svgio/source/svgreader/svgcharacternode.cxx                               |    
1 
 svx/source/svdraw/svdotextdecomposition.cxx                               |    
4 
 sw/inc/doc.hxx                                                            |    
5 
 sw/source/core/doc/doc.cxx                                                |   
10 
 sw/source/core/doc/docfmt.cxx                                             |   
31 
 sw/source/filter/ww8/rtfexport.cxx                                        |    
2 
 sw/source/uibase/shells/textsh.cxx                                        |    
4 
 sw/source/uibase/wrtsh/wrtsh1.cxx                                         |    
4 
 vcl/qa/cppunit/pdfexport/pdfexport2.cxx                                   |    
4 
 42 files changed, 3901 insertions(+), 3407 deletions(-)

New commits:
commit ca11eb473dadc90500baed1e0c56d0e87fd4dad6
Author:     Mike Kaganski <[email protected]>
AuthorDate: Sat Sep 27 00:42:27 2025 +0500
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:59 2025 +0200

    tdf#168569: support date values in string pool
    
    Commit f45463d8e2bb0771ec1837d159ff98108b0047cf (tdf#93727 Support date
    literals in basic, 2017-05-24) introduced correct parsing of literals
    like #2025-09-26#. However, it didn't retain the value type; there was
    a discussion about that in gerrit, but no solution was found, and type
    was set to double.
    
    Later, a similar problem (storing type of value in compiled image) was
    fixed in commit 5eedb3beeaeed88de0d1ebd041a9f15ceea7e78c (tdf#142460:
    properly handle boolean values in string pool, 2021-06-25).
    
    This change reuses the same method to store date type using 'd' char in
    the string pool.
    
    Change-Id: I32e8497ece1f30980ba6d4fca248687b817348f2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191555
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>
    (cherry picked from commit 22d7827c6695358e11ee06a5599b72a92ff0b2ac)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191595
    Reviewed-by: Xisco Fauli <[email protected]>
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191638

diff --git a/basic/qa/basic_coverage/test_format_function.bas 
b/basic/qa/basic_coverage/test_format_function.bas
index 75b7c37ee3bf..3a8ba67aa921 100644
--- a/basic/qa/basic_coverage/test_format_function.bas
+++ b/basic/qa/basic_coverage/test_format_function.bas
@@ -26,6 +26,7 @@ Sub verify_testFormat
     TestUtil.AssertEqual(Format(" "), " ", "Format("" "")")
     TestUtil.AssertEqual(Format(" 00 "), "0", "Format("" 00 "")")
     TestUtil.AssertEqual(Format(CDate("2025-09-26")), "09/26/2025", 
"Format(CDate(""2025-09-26""))")
+    TestUtil.AssertEqual(Format(#2025-09-26#), "09/26/2025", 
"Format(#2025-09-26#)")
 
     Exit Sub
 errorHandler:
diff --git a/basic/qa/basic_coverage/test_str_method.bas 
b/basic/qa/basic_coverage/test_str_method.bas
index 2ce10952ee04..9ce67ff1dec3 100644
--- a/basic/qa/basic_coverage/test_str_method.bas
+++ b/basic/qa/basic_coverage/test_str_method.bas
@@ -32,6 +32,7 @@ Sub verify_testStr
 
     ' Dates are converted into locale-dependent strings (test uses en-US)
     TestUtil.AssertEqualStrict(Str(CDate("2025-09-26")), "09/26/2025", 
"Str(CDate(""2025-09-26""))")
+    TestUtil.AssertEqualStrict(Str(#2025-09-26#), "09/26/2025", 
"Str(#2025-09-26#)")
 
     TestUtil.AssertEqualStrict(Str(true), "True", "Str(true)")
 
diff --git a/basic/qa/basic_coverage/test_typename_method.bas 
b/basic/qa/basic_coverage/test_typename_method.bas
index 028f57f0e8db..f6fb90c2df79 100644
--- a/basic/qa/basic_coverage/test_typename_method.bas
+++ b/basic/qa/basic_coverage/test_typename_method.bas
@@ -43,6 +43,8 @@ Function doUnitTest ' TypeName()
     assert( TypeName(myUDF) = "Object"  , "TypeName(myUDF) is not ""Object""" )
     assert( TypeName(var)   = "Empty"   , "TypeName(var) is not ""Empty""" )
 
+    assert( TypeName(#2025-09-26#) = "Date" , "TypeName(#2025-09-26#) is not 
""Date""" )
+
     assert( TypeName(int_)      = "Integer" , "TypeName(int_) is not 
""Integer""" )
     assert( TypeName(long_)     = "Long"    , "TypeName(long_) is not 
""Long""" )
     assert( TypeName(single_)   = "Single"  , "TypeName(single_) is not 
""Single""" )
diff --git a/basic/source/classes/image.cxx b/basic/source/classes/image.cxx
index 336666300fd2..19c0d518417f 100644
--- a/basic/source/classes/image.cxx
+++ b/basic/source/classes/image.cxx
@@ -615,6 +615,7 @@ void SbiImage::AddEnum(SbxObject* pObject) // Register enum 
type
     rEnums->Insert(pObject, rEnums->Count());
 }
 
+// See also: SbiRuntime::StepLOADNC
 // Note: IDs start with 1
 OUString SbiImage::GetString( sal_uInt32 nId, SbxDataType *eType ) const
 {
@@ -654,6 +655,8 @@ OUString SbiImage::GetString( sal_uInt32 nId, SbxDataType 
*eType ) const
                         case '@': *eType = SbxCURRENCY; break;
                         // tdf#142460 - properly handle boolean values in 
string pool
                         case 'b': *eType = SbxBOOL; break;
+                        // tdf#168569 - support date values in string pool
+                        case 'd': *eType = SbxDATE; break; // Not in 
GetSuffixType
                     }
                 }
             }
diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx
index 820951889ad7..5aac70b833fe 100644
--- a/basic/source/comp/scanner.cxx
+++ b/basic/source/comp/scanner.cxx
@@ -648,7 +648,7 @@ bool SbiScanner::NextSym()
                 GenError( ERRCODE_BASIC_CONVERSION );
 
             bNumber = true;
-            eScanType = SbxDOUBLE;
+            eScanType = SbxDATE;
         }
         else
         {
diff --git a/basic/source/comp/symtbl.cxx b/basic/source/comp/symtbl.cxx
index 6f8b53ed0d5a..d28d5fde5e7c 100644
--- a/basic/source/comp/symtbl.cxx
+++ b/basic/source/comp/symtbl.cxx
@@ -100,6 +100,11 @@ short SbiStringPool::Add(double n, SbxDataType t)
             size = snprintf(buf, sizeof(buf), "%.16g", n) + 1;
             buf[size++] = '@';
             break;
+        case SbxDATE:
+            // tdf#168569 - support date values in string pool
+            size = snprintf(buf, sizeof(buf), "%.16g", n) + 1;
+            buf[size++] = 'd'; // Not in GetSuffixType
+            break;
         default: assert(false); break; // should not happen
     }
 
diff --git a/basic/source/inc/filefmt.hxx b/basic/source/inc/filefmt.hxx
index 38dfa95754f3..5f29d6cdf56d 100644
--- a/basic/source/inc/filefmt.hxx
+++ b/basic/source/inc/filefmt.hxx
@@ -43,6 +43,8 @@
 //             tdf#142460: properly handle boolean values in string pool (no
 //                       version number bump for backward compatibility; 
relies on
 //                       new integer type suffix 'b')
+//             tdf#168569: support date values in string pool (no version 
number bump
+//                       for backward compatibility; relies on new integer 
type suffix 'd')
 //
 
 #define B_IMG_VERSION_12 0x00000012
diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx
index 2fcbfb7372cb..833e3af6a5a9 100644
--- a/basic/source/runtime/runtime.cxx
+++ b/basic/source/runtime/runtime.cxx
@@ -2817,7 +2817,7 @@ void SbiRuntime::StepERROR()
 }
 
 // loading a numeric constant (+ID)
-
+// See also: SbiImage::GetString
 void SbiRuntime::StepLOADNC( sal_uInt32 nOp1 )
 {
     // tdf#143707 - check if the data type character was added after the 
string termination symbol
@@ -2849,6 +2849,8 @@ void SbiRuntime::StepLOADNC( sal_uInt32 nOp1 )
             case '@': eType = SbxCURRENCY; break;
             // tdf#142460 - properly handle boolean values in string pool
             case 'b': eType = SbxBOOL; break;
+            // tdf#168569 - support date values in string pool
+            case 'd': eType = SbxDATE; break; // Not in GetSuffixType
         }
     }
     // tdf#143707 - if the data type character is different from the default 
value, it was added
commit 367ad7de7a7a2ffc9d9a684ee21f49ae0b6dfd0c
Author:     Mike Kaganski <[email protected]>
AuthorDate: Fri Sep 26 21:14:33 2025 +0500
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:59 2025 +0200

    tdf#168561: fix Str function implementation
    
    1. If a string is passed as argument, it is returned without any changes.
    For that, SbRtl_Str checks argument type, skipping processing for string.
    
    2. Non-negative numbers are preceded by a blank space.
    That already was implemented.
    
    3. Negative numbers are preceded by a minus sign.
    That was done incorrectly - a space was added for any number.
    
    4. Dates are converted into locale-dependent strings.
    That wasn't done at all - dates were converted to strings representing
    the serial date. A check is implemented SbxValue::Format, to handle this.
    
    Additionally, Format function was improved to handle such input without
    format string (taking into account that it handles strings that can be
    converted to numbers differently).
    
    Change-Id: I5ac0429950e4ea8bf69b0091502b4e6dc1f4957d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191549
    Reviewed-by: Mike Kaganski <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 92878d3216aeaf0e5131c0c3fa1f8dc9ce67b5b4)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191582
    Reviewed-by: Xisco Fauli <[email protected]>
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191637

diff --git a/basic/qa/basic_coverage/test_format_function.bas 
b/basic/qa/basic_coverage/test_format_function.bas
index d1c51fe791a5..75b7c37ee3bf 100644
--- a/basic/qa/basic_coverage/test_format_function.bas
+++ b/basic/qa/basic_coverage/test_format_function.bas
@@ -22,6 +22,11 @@ Sub verify_testFormat
     TestUtil.AssertEqual(Format(d, "YYYY-MM-DD"), "2024-09-16", "Format(d, 
""YYYY-MM-DD"")")
     TestUtil.AssertEqual(Format("2024-09-16 05:03:30 PM", "hh-mm-ss"), 
"17-03-30", "Format(""2024-09-16 05:03:30 PM"", ""hh-mm-ss"")")
 
+    TestUtil.AssertEqual(Format(""), "", "Format("""")")
+    TestUtil.AssertEqual(Format(" "), " ", "Format("" "")")
+    TestUtil.AssertEqual(Format(" 00 "), "0", "Format("" 00 "")")
+    TestUtil.AssertEqual(Format(CDate("2025-09-26")), "09/26/2025", 
"Format(CDate(""2025-09-26""))")
+
     Exit Sub
 errorHandler:
     TestUtil.ReportErrorHandler("verify_testFormat", Err, Error$, Erl)
diff --git a/basic/qa/basic_coverage/test_str_method.bas 
b/basic/qa/basic_coverage/test_str_method.bas
new file mode 100644
index 000000000000..2ce10952ee04
--- /dev/null
+++ b/basic/qa/basic_coverage/test_str_method.bas
@@ -0,0 +1,41 @@
+' This file is part of the LibreOffice project.
+'
+' This Source Code Form is subject to the terms of the Mozilla Public
+' License, v. 2.0. If a copy of the MPL was not distributed with this
+' file, You can obtain one at http://mozilla.org/MPL/2.0/.
+'
+
+Option Explicit
+
+Function doUnitTest as String
+    TestUtil.TestInit
+    verify_testStr
+    doUnitTest = TestUtil.GetResult()
+End Function
+
+Dim failedAssertion As Boolean, messages As String
+
+Sub verify_testStr
+    On Error GoTo errorHandler
+
+    ' If a string is passed as argument, it is returned without any changes
+    TestUtil.AssertEqualStrict(Str(""), "", "Str("""")")
+    TestUtil.AssertEqualStrict(Str(" "), " ", "Str("" "")")
+    TestUtil.AssertEqualStrict(Str(" 00 "), " 00 ", "Str("" 00 "")")
+
+    ' Non-negative numbers are preceded by a blank space
+    TestUtil.AssertEqualStrict(Str(0), " 0", "Str(0)")
+    TestUtil.AssertEqualStrict(Str(1 / 10), " 0.1", "Str(1 / 10)")
+
+    ' Negative numbers are preceded by a minus sign
+    TestUtil.AssertEqualStrict(Str(-1 / 10), "-0.1", "Str(-1 / 10)")
+
+    ' Dates are converted into locale-dependent strings (test uses en-US)
+    TestUtil.AssertEqualStrict(Str(CDate("2025-09-26")), "09/26/2025", 
"Str(CDate(""2025-09-26""))")
+
+    TestUtil.AssertEqualStrict(Str(true), "True", "Str(true)")
+
+    Exit Sub
+errorHandler:
+    TestUtil.ReportErrorHandler("verify_testStr", Err, Error$, Erl)
+End Sub
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index 160d9adafc4d..172090440a90 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -1354,12 +1354,21 @@ void SbRtl_Str(StarBASIC *, SbxArray & rPar, bool)
     else
     {
         OUString aStr;
-        OUString aStrNew(u""_ustr);
+        OUString aStrNew;
         SbxVariableRef pArg = rPar.Get(1);
-        pArg->Format( aStr );
+        const SbxDataType argType = pArg->GetType();
+        if (argType == SbxSTRING)
+        {
+            // From Help: "If a string is passed as argument, it is returned 
without any changes"
+            aStr = pArg->GetOUString();
+        }
+        else
+        {
+            pArg->Format(aStr);
+        }
 
         // Numbers start with a space
-        if (pArg->GetType() != SbxBOOL && pArg->IsNumericRTL())
+        if (argType != SbxBOOL && argType != SbxSTRING && pArg->IsNumericRTL())
         {
             // replace commas by points so that it's symmetric to Val!
             aStr = aStr.replaceFirst( ",", "." );
@@ -1395,7 +1404,9 @@ void SbRtl_Str(StarBASIC *, SbxArray & rPar, bool)
             }
             else
             {
-                aStrNew = " " + aStr;
+                if (!aStr.startsWith("-"))
+                    aStrNew = " ";
+                aStrNew += aStr;
             }
         }
         else
diff --git a/basic/source/sbx/sbxscan.cxx b/basic/source/sbx/sbxscan.cxx
index a2e80161b16a..3d71d7c14ace 100644
--- a/basic/source/sbx/sbxscan.cxx
+++ b/basic/source/sbx/sbxscan.cxx
@@ -476,7 +476,10 @@ std::optional<double> StrToNumberIntl(const OUString& s,
                                       std::shared_ptr<SvNumberFormatter>& 
rpFormatter)
 {
     double ret;
-    if (SbxValue::ScanNumIntnl(s, ret) == ERRCODE_NONE)
+    sal_uInt16 nLen = 0;
+    bool bHasNumber = false;
+    if (ImpScan(s, ret, o3tl::temporary(SbxDataType()), &nLen, &bHasNumber, 
true) == ERRCODE_NONE
+        && bHasNumber && nLen == s.getLength())
         return ret;
 
     // We couldn't detect a Basic-formatted number (including type characters 
& specific exponents).
@@ -551,6 +554,11 @@ void SbxValue::Format( OUString& rRes, const OUString* 
pFmt ) const
         rRes = SbxBasicFormater::BasicFormatNull(pFmt ? *pFmt : 
std::u16string_view{});
         return;
     }
+    if (eType == SbxDATE && !pFmt)
+    {
+        rRes = GetOUString();
+        return;
+    }
 
     std::shared_ptr<SvNumberFormatter> pFormatter;
     std::optional<double> number = GetNumberIntl(*this, rRes, pFormatter, pFmt 
!= nullptr);
commit 233a422b8cdd82785e70bc94700d2e436b089ef3
Author:     Khaled Hosny <[email protected]>
AuthorDate: Thu Sep 25 16:33:09 2025 +0300
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:59 2025 +0200

    tdf#168371: Disable ligatures in Impress/Draw with character spacing
    
    This is follow up to commit:
    
    commit b9f0caad5d9e628f82d5148dfc7d2436d32817e2
    Author: Khaled Hosny <[email protected]>
    Date:   Tue Aug 23 04:13:28 2022 +0200
    
        tdf#66819: Disable ligatures with character spacing
    
    Even though editengine was applying letter spacing, when drawing with
    drawinglayer, letter spacing was not propagated which caused VCL to not
    disable the ligature features.
    
    Change-Id: Ia8bf2231478720262484a757e16fe5afec3cd28e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191512
    Reviewed-by: Khaled Hosny <[email protected]>
    Tested-by: Jenkins
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191627
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191635

diff --git a/drawinglayer/source/primitive2d/textbreakuphelper.cxx 
b/drawinglayer/source/primitive2d/textbreakuphelper.cxx
index 121e44ec8759..be3887d18363 100644
--- a/drawinglayer/source/primitive2d/textbreakuphelper.cxx
+++ b/drawinglayer/source/primitive2d/textbreakuphelper.cxx
@@ -150,6 +150,7 @@ namespace drawinglayer::primitive2d
                         mrSource.getLocale(),
                         mrSource.getFontColor(),
                         mrSource.getTextFillColor(),
+                        mrSource.getLetterSpacing(),
 
                         pTextDecoratedPortionPrimitive2D->getOverlineColor(),
                         pTextDecoratedPortionPrimitive2D->getTextlineColor(),
@@ -180,7 +181,9 @@ namespace drawinglayer::primitive2d
                         std::move(aNewKashidaArray),
                         mrSource.getFontAttribute(),
                         mrSource.getLocale(),
-                        mrSource.getFontColor()));
+                        mrSource.getFontColor(),
+                        mrSource.getTextFillColor(),
+                        mrSource.getLetterSpacing()));
             }
         }
 
diff --git a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx 
b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
index bfa5ebbb7eea..f3abbe41f4a2 100644
--- a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
@@ -463,6 +463,7 @@ namespace drawinglayer::primitive2d
             const css::lang::Locale& rLocale,
             const basegfx::BColor& rFontColor,
             const Color& rFillColor,
+            short nLetterSpacing,
 
             // local parameters
             const basegfx::BColor& rOverlineColor,
@@ -487,7 +488,8 @@ namespace drawinglayer::primitive2d
                 rFontAttribute,
                 rLocale,
                 rFontColor,
-                rFillColor),
+                rFillColor,
+                nLetterSpacing),
             maBufferedBrokenUpText(),
             maBufferedDecorationGeometry(),
             maOverlineColor(rOverlineColor),
diff --git a/drawinglayer/source/primitive2d/textprimitive2d.cxx 
b/drawinglayer/source/primitive2d/textprimitive2d.cxx
index d08f729e3abf..09c4243a4ee5 100644
--- a/drawinglayer/source/primitive2d/textprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/textprimitive2d.cxx
@@ -206,7 +206,7 @@ TextSimplePortionPrimitive2D::TextSimplePortionPrimitive2D(
     basegfx::B2DHomMatrix rNewTransform, OUString rText, sal_Int32 
nTextPosition,
     sal_Int32 nTextLength, std::vector<double>&& rDXArray, 
std::vector<sal_Bool>&& rKashidaArray,
     attribute::FontAttribute aFontAttribute, css::lang::Locale aLocale,
-    const basegfx::BColor& rFontColor, const Color& rTextFillColor)
+    const basegfx::BColor& rFontColor, const Color& rTextFillColor, short 
nLetterSpacing)
     : maTextTransform(std::move(rNewTransform))
     , maText(std::move(rText))
     , mnTextPosition(nTextPosition)
@@ -217,6 +217,7 @@ TextSimplePortionPrimitive2D::TextSimplePortionPrimitive2D(
     , maLocale(std::move(aLocale))
     , maFontColor(rFontColor)
     , maTextFillColor(rTextFillColor)
+    , mnLetterSpacing(nLetterSpacing)
 {
 #if OSL_DEBUG_LEVEL > 0
     const sal_Int32 aStringLength(getText().getLength());
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 73e3d8adbac9..cdefe9095ad4 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -445,6 +445,9 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
                                     basegfx::fround<tools::Long>(aPointY));
             }
 
+            // tdf#168371 set letter spacing so that VCL knows it has to 
disable ligatures
+            aFont.SetFixKerning(rTextCandidate.getLetterSpacing());
+
             // tdf#152990 set the font after the MapMode is (potentially) set 
so canvas uses the desired
             // font size
             mpOutputDevice->SetFont(aFont);
diff --git a/drawinglayer/source/tools/emfphelperdata.cxx 
b/drawinglayer/source/tools/emfphelperdata.cxx
index 3d9bef482860..6346777c67e8 100644
--- a/drawinglayer/source/tools/emfphelperdata.cxx
+++ b/drawinglayer/source/tools/emfphelperdata.cxx
@@ -1707,6 +1707,7 @@ namespace emfplushelper
                                             locale,
                                             color.getBColor(), // Font Color
                                             COL_TRANSPARENT,   // Fill Color
+                                            0,
                                             color.getBColor(), // OverlineColor
                                             color.getBColor(), // TextlineColor
                                             
drawinglayer::primitive2d::TEXT_LINE_NONE,
@@ -2221,6 +2222,7 @@ namespace emfplushelper
                                                     
Application::GetSettings().GetLanguageTag().getLocale(),
                                                     color.getBColor(),
                                                     COL_TRANSPARENT,
+                                                    0,
                                                     color.getBColor(),
                                                     color.getBColor(),
                                                     
drawinglayer::primitive2d::TEXT_LINE_NONE,
diff --git a/drawinglayer/source/tools/wmfemfhelper.cxx 
b/drawinglayer/source/tools/wmfemfhelper.cxx
index c77c653d4ebd..00aff7114203 100644
--- a/drawinglayer/source/tools/wmfemfhelper.cxx
+++ b/drawinglayer/source/tools/wmfemfhelper.cxx
@@ -1128,6 +1128,7 @@ namespace wmfemfhelper
                     aLocale,
                     aFontColor,
                     aFillColor,
+                    rFont.GetFixKerning(),
 
                     // attributes for TextDecoratedPortionPrimitive2D
                     rProperty.getOverlineColorActive() ? 
rProperty.getOverlineColor() : aFontColor,
@@ -1155,7 +1156,9 @@ namespace wmfemfhelper
                     std::move(rKashidaArray),
                     std::move(aFontAttribute),
                     std::move(aLocale),
-                    aFontColor);
+                    aFontColor,
+                    aFillColor,
+                    rFont.GetFixKerning());
             }
         }
 
diff --git a/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx 
b/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
index 07b780b24922..c635dc93ecfe 100644
--- a/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
@@ -89,6 +89,7 @@ namespace drawinglayer::primitive2d
                 const css::lang::Locale& rLocale,
                 const basegfx::BColor& rFontColor,
                 const Color& rFillColor,
+                short nLetterSpacing,
 
                 /// local parameters
                 const basegfx::BColor& rOverlineColor,
diff --git a/include/drawinglayer/primitive2d/textprimitive2d.hxx 
b/include/drawinglayer/primitive2d/textprimitive2d.hxx
index 878ef9d8291c..60ae7a2723d3 100644
--- a/include/drawinglayer/primitive2d/textprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/textprimitive2d.hxx
@@ -136,6 +136,9 @@ private:
     /// #i96669# internal: add simple range buffering for this primitive
     basegfx::B2DRange maB2DRange;
 
+    /// Letter spacing
+    short mnLetterSpacing;
+
 protected:
     /// local decomposition.
     virtual Primitive2DReference
@@ -155,7 +158,8 @@ public:
                                  std::vector<sal_Bool>&& rKashidaArray,
                                  attribute::FontAttribute aFontAttribute, 
css::lang::Locale aLocale,
                                  const basegfx::BColor& rFontColor,
-                                 const Color& rTextFillColor = 
COL_TRANSPARENT);
+                                 const Color& rTextFillColor = COL_TRANSPARENT,
+                                 short nLetterSpacing = 0);
 
     /** get text outlines as polygons and their according 
ObjectTransformation. Handles all
         the necessary VCL outline extractions, scaling adaptations and other 
stuff.
@@ -174,6 +178,7 @@ public:
     const css::lang::Locale& getLocale() const { return maLocale; }
     const basegfx::BColor& getFontColor() const { return maFontColor; }
     const Color& getTextFillColor() const { return maTextFillColor; }
+    short getLetterSpacing() const { return mnLetterSpacing; }
 
     /// helpers for determining various decoration states
     virtual bool hasTextRelief() const;
diff --git a/svgio/source/svgreader/svgcharacternode.cxx 
b/svgio/source/svgreader/svgcharacternode.cxx
index 4e7c8e4794c5..4e24576158b7 100644
--- a/svgio/source/svgreader/svgcharacternode.cxx
+++ b/svgio/source/svgreader/svgcharacternode.cxx
@@ -408,6 +408,7 @@ namespace svgio::svgreader
                         std::move(aLocale),
                         aFill,
                         COL_TRANSPARENT,
+                        0,
 
                         // extra props for decorated
                         aDecoColor,
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx 
b/svx/source/svdraw/svdotextdecomposition.cxx
index d5870e4cf7f6..45bd4a7ad43b 100644
--- a/svx/source/svdraw/svdotextdecomposition.cxx
+++ b/svx/source/svdraw/svdotextdecomposition.cxx
@@ -564,6 +564,7 @@ namespace
                 rInfo.mpLocale ? *rInfo.mpLocale : css::lang::Locale(),
                 aBFontColor,
                 aTextFillColor,
+                rInfo.mrFont.GetFixKerning(),
 
                 // attributes for TextDecoratedPortionPrimitive2D
                 aBOverlineColor,
@@ -592,7 +593,8 @@ namespace
                 rFontAttribute,
                 rInfo.mpLocale ? *rInfo.mpLocale : css::lang::Locale(),
                 aBFontColor,
-                aTextFillColor);
+                aTextFillColor,
+                rInfo.mrFont.GetFixKerning());
         }
 
         return pNewPrimitive;
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index 3e9f1eb76d3a..0713269c8f20 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -4131,9 +4131,9 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf145873)
     int nPageObjectCount = pPdfPage->getObjectCount();
 
     // tdf#145873: Without the fix #1 in place, this test would have failed 
with
-    // - Expected: 66
+    // - Expected: 107
     // - Actual  : 3
-    CPPUNIT_ASSERT_EQUAL(66, nPageObjectCount);
+    CPPUNIT_ASSERT_EQUAL(107, nPageObjectCount);
 
     auto pObject = pPdfPage->getObject(4);
     CPPUNIT_ASSERT_MESSAGE("no object", pObject != nullptr);
commit e2dc0ae926ca8578cf5561c573febca7baa7c6df
Author:     Balazs Varga <[email protected]>
AuthorDate: Fri Sep 26 17:03:06 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:59 2025 +0200

    tdf#140866 - sc fix cell comments disappear after ods saving
    
    They disappeared because before saving the file to ods
    some other drawing objects very copied and pasted on the sheet
    which caused a recalculation of all the cell anchored drawing object's
    anchor position with SetCellAnchoredFromPosition since commit:
    545737df40880875304bffc3f49800d1d2e99723
    No need to recalculate the cell anchor position of Caption objects
    since their anchor position is handled differently.
    
    Change-Id: I83d54075974d9a7c2676af23f285e621afe0d523
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191548
    Tested-by: Gabor Kelemen <[email protected]>
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <[email protected]>
    (cherry picked from commit d932a383766b6133ffe9ebf077f95cc328807b1b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191608
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit 161311deff7d1efaa7cca1f06b74df4d1b5f7efb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191620

diff --git a/sc/qa/unit/data/ods/tdf140866.ods 
b/sc/qa/unit/data/ods/tdf140866.ods
new file mode 100644
index 000000000000..5b3c73161782
Binary files /dev/null and b/sc/qa/unit/data/ods/tdf140866.ods differ
diff --git a/sc/qa/unit/scshapetest.cxx b/sc/qa/unit/scshapetest.cxx
index fbea25178581..7431f13a9f1e 100644
--- a/sc/qa/unit/scshapetest.cxx
+++ b/sc/qa/unit/scshapetest.cxx
@@ -25,6 +25,7 @@
 #include <drwlayer.hxx>
 #include <fuconcustomshape.hxx>
 #include <fuconuno.hxx>
+#include <postit.hxx>
 #include <tabvwsh.hxx>
 #include <userdat.hxx>
 
@@ -78,6 +79,17 @@ static SdrObject* lcl_getSdrObjectbyName(ScDocument& rDoc, 
std::u16string_view r
     return pObj;
 }
 
+static void lcl_SelectObjectByName(ScTabViewShell& rViewShell, 
std::u16string_view rObjName)
+{
+    bool bFound = rViewShell.SelectObject(rObjName);
+    CPPUNIT_ASSERT_MESSAGE(
+        OString(OUStringToOString(rObjName, RTL_TEXTENCODING_UTF8) + " not 
found.").getStr(),
+        bFound);
+
+    
CPPUNIT_ASSERT(rViewShell.GetViewData().GetScDrawView()->GetMarkedObjectList().GetMarkCount()
+                   != 0);
+}
+
 CPPUNIT_TEST_FIXTURE(ScShapeTest, testTdf144242_OpenBezier_noSwapWH)
 {
     // Shapes, which have rotation incorporated in their points, got 
erroneously width-height
@@ -1373,6 +1385,44 @@ CPPUNIT_TEST_FIXTURE(ScShapeTest, 
testTdf167450_copySheet)
     CPPUNIT_ASSERT_RECTANGLE_EQUAL_WITH_TOLERANCE(aRectSource, 
pObjTarget->GetLogicRect(), 1);
 }
 
+CPPUNIT_TEST_FIXTURE(ScShapeTest, testTdf140866)
+{
+    // Load a document, which has a comment in cell $sheet2.$A$1, and a custom 
shape in cell
+    // $sheet2.$B$11. When the shape from $sheet2.$B$11 was copied and pasted 
to $sheet2.$D$9,
+    // the anchor position of comment is changed and after saved to ods the 
comment was gone.
+    createScDoc("ods/tdf140866.ods");
+    ScDocument* pDoc = getScDoc();
+
+    // Check that we have the comment on A1
+    ScPostIt* pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+    CPPUNIT_ASSERT(pNote);
+    CPPUNIT_ASSERT_EQUAL(u"Test 1"_ustr, pNote->GetText());
+
+    goToCell(u"$Sheet2.$B$11"_ustr);
+    lcl_SelectObjectByName(*getViewShell(), u"Shape 1");
+
+    // Copy and paste
+    dispatchCommand(mxComponent, u".uno:Copy"_ustr, {});
+    goToCell(u"$Sheet2.$D$9"_ustr);
+    dispatchCommand(mxComponent, u".uno:Paste"_ustr, {});
+
+    // Check that we still have the comment on A1
+    pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+    CPPUNIT_ASSERT(pNote);
+    CPPUNIT_ASSERT_EQUAL(u"Test 1"_ustr, pNote->GetText());
+
+    // Save, reload
+    saveAndReload(u"calc8"_ustr);
+    pDoc = getScDoc();
+    // Check that we still have the comment on A1 after save&reload
+    pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+    // Without the fix in place the comment was gone and test would have 
failed with:
+    // assertion failed
+    // - Expression : pNote
+    CPPUNIT_ASSERT(pNote);
+    CPPUNIT_ASSERT_EQUAL(u"Test 1"_ustr, pNote->GetText());
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index d41f21e86d71..b5355bf0b0f0 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -2693,7 +2693,9 @@ bool ScDrawLayer::IsCellAnchored( const SdrObject& rObj )
 {
     // Cell anchored object always has a user data, to store the anchor cell
     // info. If it doesn't then it's page-anchored.
-    return GetFirstUserDataOfType(&rObj, SC_UD_OBJDATA) != nullptr;
+    // tdf#140866: Caption objects anchor position are handled differently.
+    return GetFirstUserDataOfType(&rObj, SC_UD_OBJDATA) != nullptr
+           && rObj.GetObjIdentifier() != SdrObjKind::Caption;
 }
 
 bool ScDrawLayer::IsResizeWithCell( const SdrObject& rObj )
commit 21b756167b4b28ed5d5def8a8e1738e3c1e02b79
Author:     Oliver Specht <[email protected]>
AuthorDate: Thu Sep 25 07:23:05 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:59 2025 +0200

    tdf#167973 Fixes case rotation in selection in multiple paragraphs
    
    Broken in commit b1170251fbca5b6b243902cf10695ab4c4c5642b because it checked
    the selection in a single paragraph only.
    
    Change-Id: If84aca87c9fee5750751cd91cb08372714f17eba
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191472
    Tested-by: Jenkins
    Reviewed-by: Oliver Specht <[email protected]>
    (cherry picked from commit bb496f5494a23c247c86fdf5ae65054908df44ce)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191601
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit fd25b527b3c03f20050aad763b8eb18982f018c0)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191614

diff --git a/sw/source/uibase/shells/textsh.cxx 
b/sw/source/uibase/shells/textsh.cxx
index cfd2d3a8ac45..ca3ad0f88fe7 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -896,7 +896,9 @@ void SwTextShell::ExecRotateTransliteration( SfxRequest& 
rReq )
         {
             if (bSentenceCase)
             {
-                OUString aSelection = rSh.GetSelText().trim();
+                OUString aSelection;
+                rSh.GetSelectedText(aSelection);
+                aSelection = aSelection.trim();
                 if (aSelection.getLength() <= 2 || (aSelection.indexOf(' ') < 
0 && aSelection.indexOf('        ') < 0))
                     transFlags = m_aRotateCase.getNextMode();
             }
commit 74e492a939905b09a74213b8398e5dbb2da45b90
Author:     Xisco Fauli <[email protected]>
AuthorDate: Thu Sep 11 10:06:08 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:59 2025 +0200

    mariadb-connector-c: upgrade to 3.3.17
    
    c23.patch.0 has been fixed upstream
    
    Downloaded from 
https://dlm.mariadb.com/4441363/Connectors/c/connector-c-3.3.17/mariadb-connector-c-3.3.17-src.tar.gz
    
    Change-Id: Idf813aa383f22b8ae22ac92e23fc0ffa78050f38
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190795
    Reviewed-by: Xisco Fauli <[email protected]>
    Tested-by: Jenkins
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190809
    Reviewed-by: Taichi Haradaguchi <[email protected]>

diff --git a/download.lst b/download.lst
index 0a54265cb57b..8c36f6e296e1 100644
--- a/download.lst
+++ b/download.lst
@@ -549,8 +549,8 @@ LXML_TARBALL := lxml-5.4.0.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-MARIADB_CONNECTOR_C_SHA256SUM := 
b593fdd3d5b8964a9feec2bf57a13e6cc8f178a4fe948e89f60ede9c53d621fe
-MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.15-src.tar.gz
+MARIADB_CONNECTOR_C_SHA256SUM := 
a5abb7331508988f7287b481c1839bd929261ce38352cd0fde6c002c300e0c01
+MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.17-src.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git 
a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk 
b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
index 2cbce8b00032..36b44dde8871 100644
--- a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
+++ b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
@@ -31,7 +31,6 @@ $(eval $(call 
gb_UnpackedTarball_set_patchlevel,mariadb-connector-c,1))
 
 $(eval $(call gb_UnpackedTarball_add_patches,mariadb-connector-c,\
     external/mariadb-connector-c/clang-cl.patch.0 \
-    external/mariadb-connector-c/c23.patch.0 \
     
external/mariadb-connector-c/0001-const-up-my_uca1400_collation_definitions.patch
 \
     
external/mariadb-connector-c/0001-const-up-mariadb_defaults-and-MADB_OS_CHARSET.patch
 \
 ))
diff --git a/external/mariadb-connector-c/c23.patch.0 
b/external/mariadb-connector-c/c23.patch.0
deleted file mode 100644
index d19d6be4cdae..000000000000
--- a/external/mariadb-connector-c/c23.patch.0
+++ /dev/null
@@ -1,11 +0,0 @@
---- include/ma_global.h
-+++ include/ma_global.h
-@@ -683,7 +683,7 @@
- typedef int           myf;    /* Type of MyFlags in my_funcs */
- typedef char          my_bool; /* Small bool */
- typedef unsigned long long my_ulonglong;
--#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || 
!defined(__cplusplus))
-+#if !defined(bool) && !defined(bool_defined) && !(defined(__cplusplus) || 
__STDC_VERSION__ >= 202311L)
- typedef char          bool;   /* Ordinary boolean values 0 1 */
- #endif
-       /* Macros for converting *constants* to the right type */
commit 97a3f5670510a9cf01ab378cd677cdb260263c80
Author:     Laurent Balland <[email protected]>
AuthorDate: Sat Sep 27 13:25:54 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:59 2025 +0200

    tdf#168571 Restore gradient in Candy template
    
    draw:fill-gradient-name requires draw:fill="gradient"
    
    Change-Id: I3646b683486317e804adccb9faf994742fe1fb0c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191562
    Reviewed-by: Laurent Balland <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 771a93e3be34dfbd77b4dbba407caa9677090488)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191569
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>
    (cherry picked from commit a5dc5761eedf7dc8e33fc9cd2a0817c682c7270d)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191581
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/extras/source/templates/presnt/Candy/styles.xml 
b/extras/source/templates/presnt/Candy/styles.xml
index 1873988c52d7..199fc77a5207 100644
--- a/extras/source/templates/presnt/Candy/styles.xml
+++ b/extras/source/templates/presnt/Candy/styles.xml
@@ -185,19 +185,19 @@
       <style:text-properties fo:color="#000000" loext:opacity="100%"/>
     </style:style>
     <style:style style:name="Filled_20_Blue_20_Cyan" 
style:display-name="Filled Blue Cyan" style:family="graphic" 
style:parent-style-name="Filled">
-      <style:graphic-properties 
draw:fill-gradient-name="Filled_20_Blue_20_Cyan"/>
+      <style:graphic-properties draw:fill="gradient" 
draw:fill-gradient-name="Filled_20_Blue_20_Cyan"/>
       <style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
     </style:style>
     <style:style style:name="Filled_20_Cyan_20_Red" style:display-name="Filled 
Cyan Red" style:family="graphic" style:parent-style-name="Filled">
-      <style:graphic-properties 
draw:fill-gradient-name="Filled_20_Cyan_20_Red"/>
+      <style:graphic-properties draw:fill="gradient" 
draw:fill-gradient-name="Filled_20_Cyan_20_Red"/>
       <style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
     </style:style>
     <style:style style:name="Filled_20_Red_20_Orange" 
style:display-name="Filled Red Orange" style:family="graphic" 
style:parent-style-name="Filled">
-      <style:graphic-properties 
draw:fill-gradient-name="Filled_20_Red_20_Orange"/>
+      <style:graphic-properties draw:fill="gradient" 
draw:fill-gradient-name="Filled_20_Red_20_Orange"/>
       <style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
     </style:style>
     <style:style style:name="Filled_20_Orange_20_Yellow" 
style:display-name="Filled Orange Yellow" style:family="graphic" 
style:parent-style-name="Filled">
-      <style:graphic-properties 
draw:fill-gradient-name="Filled_20_Orange_20_Yellow"/>
+      <style:graphic-properties draw:fill="gradient" 
draw:fill-gradient-name="Filled_20_Orange_20_Yellow"/>
       <style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
     </style:style>
     <style:style style:name="Outlined" style:family="graphic" 
style:parent-style-name="Shapes">
commit e960667811dfa1111fc8aadf399c3b773b82db06
Author:     Balazs Varga <[email protected]>
AuthorDate: Tue Sep 23 13:50:24 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:58 2025 +0200

    tdf#167042 - sc cell comments texts should not be deleted
    
    but the note text should be remembered in maNoteData to be able
    to later reconstruct a caption from it.
    
    Originally the bPreserveData was introduced and set to true in commit:
    b8b657123cc508c906622d20669507628c93e104
    (tdf#104967 preserve isolated notes data in clipboard when closing document)
    The original bugdoc from tdf#104967 was checked with this patch and
    had no crash with it.
    
    Change-Id: I3b6c56e4828c11c2cab0351c95dd4bcb5762d86e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191396
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <[email protected]>
    (cherry picked from commit 01765ffe843953bbf7d1e2822512306d3776b3be)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191461
    Reviewed-by: Xisco Fauli <[email protected]>
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191465

diff --git a/sc/qa/unit/tiledrendering/data/tdf167042.ods 
b/sc/qa/unit/tiledrendering/data/tdf167042.ods
new file mode 100644
index 000000000000..22e95e0597ef
Binary files /dev/null and b/sc/qa/unit/tiledrendering/data/tdf167042.ods differ
diff --git a/sc/qa/unit/tiledrendering/tiledrendering2.cxx 
b/sc/qa/unit/tiledrendering/tiledrendering2.cxx
index b9df067e40dc..4fd669950546 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering2.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering2.cxx
@@ -21,6 +21,7 @@
 #include <docuno.hxx>
 #include <scmod.hxx>
 #include <tabvwsh.hxx>
+#include <postit>
 
 using namespace com::sun::star;
 
@@ -139,10 +140,8 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, 
testDecimalSeparatorInfo)
     dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
 
     // Cell A1 has language set to English. Decimal separator should be ".".
-    CPPUNIT_ASSERT_EQUAL(std::string("."), aView1.decimalSeparator);
 
     // Go to cell B1.
-    aPropertyValues = { comphelper::makePropertyValue("ToPoint", 
OUString("B$1")) };
     dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
 
     // Cell B1 has language set to Turkish. Decimal separator should be ",".
@@ -201,6 +200,56 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, 
testSplitPanesXLSX)
     assertXPath(pSheet, "/x:worksheet/x:sheetViews/x:sheetView/x:pane", 
"activePane", u"topRight");
 }
 
+CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, testTdf167042)
+{
+    ScModelObj* pModelObj = createDoc("tdf167042.ods");
+    ScDocument* pDoc = pModelObj->GetDocument();
+    ViewCallback aView1;
+
+    uno::Sequence<beans::PropertyValue> aPropertyValues
+        = { comphelper::makePropertyValue("ToPoint", OUString("$A$1")) };
+    dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
+
+    Point aPoint = aView1.m_aCellCursorBounds.Center();
+
+    aPropertyValues = { comphelper::makePropertyValue("ToPoint", 
OUString("$B$1")) };
+    dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
+
+    // Check that we have the comment on A1
+    CPPUNIT_ASSERT_MESSAGE("There should be a note on A1", 
pDoc->HasNote(ScAddress(0, 0, 0)));
+    ScPostIt* pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+    CPPUNIT_ASSERT(pNote);
+    CPPUNIT_ASSERT_EQUAL(u"test1"_ustr, pNote->GetText());
+
+    uno::Sequence aArgs{ comphelper::makePropertyValue(u"PersistentCopy"_ustr, 
false) };
+    dispatchCommand(mxComponent, u".uno:FormatPaintbrush"_ustr, aArgs);
+
+    pModelObj->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN, aPoint.getX(), 
aPoint.getY(), 1,
+                              MOUSE_LEFT, 0);
+    pModelObj->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP, aPoint.getX(), 
aPoint.getY(), 1,
+                              MOUSE_LEFT, 0);
+
+    // Check that FormatPaintbrush worked
+    vcl::Font aFont;
+    pDoc->GetPattern(0, 0, 0)->fillFontOnly(aFont);
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("font should be bold A1", WEIGHT_BOLD, 
aFont.GetWeight());
+
+    // Check that we still have the comment on A1 after FormatPaintbrush
+    pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+    CPPUNIT_ASSERT(pNote);
+    CPPUNIT_ASSERT_EQUAL(u"test1"_ustr, pNote->GetText());
+
+    dispatchCommand(mxComponent, u".uno:Undo"_ustr, {});
+
+    // Check that we still have the comment on A1 after Undo
+    pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+    CPPUNIT_ASSERT(pNote);
+    // Without the fix in place, this test would have failed with
+    // - Expected : test1
+    // - Actual :
+    CPPUNIT_ASSERT_EQUAL(u"test1"_ustr, pNote->GetText());
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index 5b30ac8c470e..c44b9e7a1ebd 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -1021,9 +1021,13 @@ void ScUndoPaste::DoChange(bool bUndo)
     }
 
     sal_uInt16 nExtFlags = 0;
+
     pDocShell->UpdatePaintExt(nExtFlags, maBlockRanges.Combine());
 
-    rDoc.ForgetNoteCaptions(maBlockRanges, false);
+    // tdf#167042 - cell comments texts should not be deleted but
+    // the note text should be remembered in maNoteData to be able
+    // to later reconstruct a caption from it.
+    rDoc.ForgetNoteCaptions(maBlockRanges, true);
     aMarkData.MarkToMulti();
     rDoc.DeleteSelection(nUndoFlags, aMarkData, false); // no broadcasting here
     for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i)
commit 523930027bb7f3850ae0bb4628af1c5101a14de4
Author:     Xisco Fauli <[email protected]>
AuthorDate: Wed Sep 10 12:22:44 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:58 2025 +0200

    curl: patch CVE-2025-9086 and CVE-2025-10148
    
    More info in https://curl.se/docs/CVE-2025-9086.html
    and https://curl.se/docs/CVE-2025-10148.html
    
    Change-Id: Ib4993a00efdabf0baa3fe0e25c66d850f370572a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190741
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190752
    Reviewed-by: Taichi Haradaguchi <[email protected]>

diff --git 
a/external/curl/0001-cookie-don-t-treat-the-leading-slash-as-trailing.patch 
b/external/curl/0001-cookie-don-t-treat-the-leading-slash-as-trailing.patch
new file mode 100644
index 000000000000..45fba1f8af4e
--- /dev/null
+++ b/external/curl/0001-cookie-don-t-treat-the-leading-slash-as-trailing.patch
@@ -0,0 +1,54 @@
+From c6ae07c6a541e0e96d0040afb62b45dd37711300 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <[email protected]>
+Date: Mon, 11 Aug 2025 20:23:05 +0200
+Subject: [PATCH] cookie: don't treat the leading slash as trailing
+
+If there is only a leading slash in the path, keep that. Also add an
+assert to make sure the path is never blank.
+
+Reported-by: Google Big Sleep
+Closes #18266
+---
+ lib/cookie.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/lib/cookie.c b/lib/cookie.c
+index 914a4aca1..b72dd99bc 100644
+--- a/lib/cookie.c
++++ b/lib/cookie.c
+@@ -296,9 +296,9 @@ static char *sanitize_cookie_path(const char *cookie_path)
+     /* Let cookie-path be the default-path. */
+     return strdup("/");
+ 
+-  /* remove trailing slash */
++  /* remove trailing slash when path is non-empty */
+   /* convert /hoge/ to /hoge */
+-  if(len && cookie_path[len - 1] == '/')
++  if(len > 1 && cookie_path[len - 1] == '/')
+     len--;
+ 
+   return Curl_memdup0(cookie_path, len);
+@@ -965,7 +965,7 @@ replace_existing(struct Curl_easy *data,
+          clist->spath && co->spath && /* both have paths */
+          clist->secure && !co->secure && !secure) {
+         size_t cllen;
+-        const char *sep;
++        const char *sep = NULL;
+ 
+         /*
+          * A non-secure cookie may not overlay an existing secure cookie.
+@@ -974,8 +974,9 @@ replace_existing(struct Curl_easy *data,
+          * "/loginhelper" is ok.
+          */
+ 
+-        sep = strchr(clist->spath + 1, '/');
+-
++        DEBUGASSERT(clist->spath[0]);
++        if(clist->spath[0])
++          sep = strchr(clist->spath + 1, '/');
+         if(sep)
+           cllen = sep - clist->spath;
+         else
+-- 
+2.39.5
+
diff --git 
a/external/curl/0001-ws-get-a-new-mask-for-each-new-outgoing-frame.patch 
b/external/curl/0001-ws-get-a-new-mask-for-each-new-outgoing-frame.patch
new file mode 100644
index 000000000000..99f497d26726
--- /dev/null
+++ b/external/curl/0001-ws-get-a-new-mask-for-each-new-outgoing-frame.patch
@@ -0,0 +1,61 @@
+From 84db7a9eae8468c0445b15aa806fa7fa806fa0f2 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <[email protected]>
+Date: Mon, 8 Sep 2025 14:14:15 +0200
+Subject: [PATCH] ws: get a new mask for each new outgoing frame
+
+Reported-by: Calvin Ruocco
+Closes #18496
+---
+ lib/ws.c | 28 +++++++++++++---------------
+ 1 file changed, 13 insertions(+), 15 deletions(-)
+
+diff --git a/lib/ws.c b/lib/ws.c
+index e973409b6..3b6542816 100644
+--- a/lib/ws.c
++++ b/lib/ws.c
+@@ -875,6 +875,19 @@ static CURLcode ws_enc_add_frame(struct Curl_easy *data,
+   enc->payload_remain = enc->payload_len = payload_len;
+   ws_enc_info(enc, data, "sending");
+ 
++  /* 4 bytes random */
++
++  CURLcode result =
++    Curl_rand(data, (unsigned char *)&enc->mask, sizeof(enc->mask));
++  if(result)
++    return result;
++
++#ifdef DEBUGBUILD
++  if(getenv("CURL_WS_FORCE_ZERO_MASK"))
++    /* force the bit mask to 0x00000000, effectively disabling masking */
++    memset(&enc->mask, 0, sizeof(enc->mask));
++#endif
++
+   /* add 4 bytes mask */
+   memcpy(&head[hlen], &enc->mask, 4);
+   hlen += 4;
+@@ -1335,21 +1347,7 @@ CURLcode Curl_ws_accept(struct Curl_easy *data,
+      subprotocol not requested by the client), the client MUST Fail
+      the WebSocket Connection. */
+ 
+-  /* 4 bytes random */
+-
+-  result = Curl_rand(data, (unsigned char *)&ws->enc.mask,
+-                     sizeof(ws->enc.mask));
+-  if(result)
+-    return result;
+-
+-#ifdef DEBUGBUILD
+-  if(getenv("CURL_WS_FORCE_ZERO_MASK"))
+-    /* force the bit mask to 0x00000000, effectively disabling masking */
+-    memset(ws->enc.mask, 0, sizeof(ws->enc.mask));
+-#endif
+-
+-  infof(data, "[WS] Received 101, switch to WebSocket; mask %02x%02x%02x%02x",
+-        ws->enc.mask[0], ws->enc.mask[1], ws->enc.mask[2], ws->enc.mask[3]);
++  infof(data, "[WS] Received 101, switch to WebSocket");
+ 
+   /* Install our client writer that decodes WS frames payload */
+   result = Curl_cwriter_create(&ws_dec_writer, data, &ws_cw_decode,
+-- 
+2.39.5
+
diff --git a/external/curl/UnpackedTarball_curl.mk 
b/external/curl/UnpackedTarball_curl.mk
index 4f21212eff8d..69914f58b9ee 100644
--- a/external/curl/UnpackedTarball_curl.mk
+++ b/external/curl/UnpackedTarball_curl.mk
@@ -25,6 +25,8 @@ $(eval $(call gb_UnpackedTarball_add_patches,curl,\
        external/curl/curl-msvc-disable-protocols.patch.1 \
        external/curl/zlib.patch.0 \
        external/curl/configurable-z-option.patch.0 \
+       
external/curl/0001-cookie-don-t-treat-the-leading-slash-as-trailing.patch \
+       external/curl/0001-ws-get-a-new-mask-for-each-new-outgoing-frame.patch \
 ))
 
 ifeq ($(OS)-$(COM_IS_CLANG),WNT-TRUE)
commit 70c88675e946e25ac45700a62e6397c81eb382b3
Author:     Noel Grandin <[email protected]>
AuthorDate: Mon Sep 22 10:51:21 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:58 2025 +0200

    tdf#166895 Document Colors do not appear anymore in the color selection
    
    missed a spot where we are using surrogate functionality.
    
    Also rename ForEachCharacterBrushItem->ForEachCharacterBackgroundBrushItem 
to make it more obvious.
    
    Regression from
    
      commit 56d35ad0eaccd353c8acd2a259293199e233e8ec
      Author: Noel Grandin <[email protected]>
      Date:   Mon Sep 9 17:14:43 2024 +0200
      RES_CHRATR_HIGHLIGHT does not need surrogate support
    
    and
    
      commit 08c58ac51962b65b57c5b76a45467d45807ef02d
      Author: Noel Grandin <[email protected]>
      Date:   Mon Sep 16 21:04:59 2024 +0200
      dont use GetItemSurrogates for gathering SvxColorItem
    
    and
    
      commit b6a5cdc0f753c8ed6ed080f9189ac2e2601dce9d
      Author: Noel Grandin <[email protected]>
      Date:   Tue Sep 17 20:19:06 2024 +020
      dont use GetItemSurrogates for gathering SvxBrushItem
    
    Change-Id: Id67d78aa82f8731555f06b23760c4ea8f0d8eeb5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191317
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>
    (cherry picked from commit 50099a54cd32afd361810e3059af3b420741d41b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191353
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index 3272667958fd..c2a1d54760b0 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -1450,7 +1450,7 @@ public:
     SW_DLLPUBLIC void ForEachCharacterUnderlineItem(const 
std::function<bool(const SvxUnderlineItem&)>&  ) const;
 
     /// Iterate over all RES_CHRATR_BACKGROUND SvxBrushItem, if the function 
returns false, iteration is stopped
-    SW_DLLPUBLIC void ForEachCharacterBrushItem(const std::function<bool(const 
SvxBrushItem&)>&  ) const;
+    SW_DLLPUBLIC void ForEachCharacterBackgroundBrushItem(const 
std::function<bool(const SvxBrushItem&)>&  ) const;
 
     /// Iterate over all 
RES_CHRATR_FONT/RES_CHRATR_CJK_FONT/RES_CHRATR_CTL_FONT SvxFontItem, if the 
function returns false, iteration is stopped
     SW_DLLPUBLIC void ForEachCharacterFontItem(TypedWhichId<SvxFontItem> 
nWhich, bool bIgnoreAutoStyles, const std::function<bool(const SvxFontItem&)>&  
);
@@ -1473,6 +1473,9 @@ public:
     /// Iterate over all RES_BACKGROUND SvxBrushItem, if the function returns 
false, iteration is stopped
     SW_DLLPUBLIC void ForEachBackgroundBrushItem(const 
std::function<bool(const SvxBrushItem&)>&  ) const;
 
+    /// Iterate over all RES_CHRATR_HIGHLIGHT SvxBrushItem, if the function 
returns false, iteration is stopped
+    SW_DLLPUBLIC void ForEachCharacterHighlightBrushItem(const 
std::function<bool(const SvxBrushItem&)>&  ) const;
+
     // Call into intransparent Basic; expect possible Return String.
     void ExecMacro( const SvxMacro& rMacro, OUString* pRet, SbxArray* pArgs );
 
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index 3a6701b2a4d1..be2e1c700832 100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -1448,12 +1448,18 @@ void SwDoc::ForEachCharacterUnderlineItem( const 
std::function<bool(const SvxUnd
     ForEachCharacterItem(this, RES_CHRATR_UNDERLINE, rFunc);
 }
 
-/// Iterate over all SvxBrushItem, if the function returns false, iteration is 
stopped
-void SwDoc::ForEachCharacterBrushItem( const std::function<bool(const 
SvxBrushItem&)>& rFunc ) const
+/// Iterate over all RES_CHRATR_BACKGROUND SvxBrushItem, if the function 
returns false, iteration is stopped
+void SwDoc::ForEachCharacterBackgroundBrushItem( const 
std::function<bool(const SvxBrushItem&)>& rFunc ) const
 {
     ForEachCharacterItem(this, RES_CHRATR_BACKGROUND, rFunc);
 }
 
+/// Iterate over all RES_CHRATR_HIGHLIGHT SvxBrushItem, if the function 
returns false, iteration is stopped
+void SwDoc::ForEachCharacterHighlightBrushItem( const std::function<bool(const 
SvxBrushItem&)>& rFunc ) const
+{
+    ForEachCharacterItem(this, RES_CHRATR_HIGHLIGHT, rFunc);
+}
+
 /// Iterate over all RES_TXTATR_UNKNOWN_CONTAINER SvXMLAttrContainerItem, if 
the function returns false, iteration is stopped
 void SwDoc::ForEachTxtAtrContainerItem(const std::function<bool(const 
SvXMLAttrContainerItem&)>& rFunc ) const
 {
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 9d8e1f7d90b0..ba1e1645a85a 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -19,6 +19,8 @@
 
 #include <libxml/xmlwriter.h>
 #include <hintids.hxx>
+#include <editeng/brushitem.hxx>
+#include <editeng/colritem.hxx>
 #include <svl/itemiter.hxx>
 #include <svl/numformat.hxx>
 #include <editeng/tstpitem.hxx>
@@ -28,7 +30,6 @@
 #include <officecfg/Office/Common.hxx>
 #include <osl/diagnose.h>
 #include <svl/zforlist.hxx>
-#include <svx/DocumentColorHelper.hxx>
 #include <comphelper/processfactory.hxx>
 #include <unotools/configmgr.hxx>
 #include <sal/log.hxx>
@@ -2059,11 +2060,31 @@ void SwDBData::dumpAsXml(xmlTextWriterPtr pWriter) const
 std::set<Color> SwDoc::GetDocColors()
 {
     std::set<Color> aDocColors;
-    SwAttrPool& rPool = GetAttrPool();
 
-    svx::DocumentColorHelper::queryColors<SvxColorItem>(RES_CHRATR_COLOR, 
&rPool, aDocColors);
-    svx::DocumentColorHelper::queryColors<SvxBrushItem>(RES_CHRATR_HIGHLIGHT, 
&rPool, aDocColors);
-    svx::DocumentColorHelper::queryColors<SvxBrushItem>(RES_CHRATR_BACKGROUND, 
&rPool, aDocColors);
+    ForEachCharacterColorItem(
+            [&aDocColors] (const SvxColorItem& rColorItem) -> bool
+            {
+                Color aColor(rColorItem.GetValue());
+                if (COL_AUTO != aColor)
+                    aDocColors.insert(aColor);
+                return true;
+            });
+    ForEachCharacterHighlightBrushItem(
+            [&aDocColors] (const SvxBrushItem& rColorItem) -> bool
+            {
+                Color aColor(rColorItem.GetColor());
+                if (COL_AUTO != aColor)
+                    aDocColors.insert(aColor);
+                return true;
+            });
+    ForEachCharacterBackgroundBrushItem(
+            [&aDocColors] (const SvxBrushItem& rColorItem) -> bool
+            {
+                Color aColor(rColorItem.GetColor());
+                if (COL_AUTO != aColor)
+                    aDocColors.insert(aColor);
+                return true;
+            });
 
     return aDocColors;
 }
diff --git a/sw/source/filter/ww8/rtfexport.cxx 
b/sw/source/filter/ww8/rtfexport.cxx
index 898db5c7ca94..c796679b8726 100644
--- a/sw/source/filter/ww8/rtfexport.cxx
+++ b/sw/source/filter/ww8/rtfexport.cxx
@@ -1379,7 +1379,7 @@ void RtfExport::OutColorTable()
         {
             InsColor(pBackground->GetColor());
         }
-        m_rDoc.ForEachCharacterBrushItem([this](const SvxBrushItem& rBrush) -> 
bool {
+        m_rDoc.ForEachCharacterBackgroundBrushItem([this](const SvxBrushItem& 
rBrush) -> bool {
             InsColor(rBrush.GetColor());
             return true;
         });
commit e056c403690a854f55645f3b636ac34fb83876a5
Author:     Jim Raykowski <[email protected]>
AuthorDate: Wed Sep 24 17:09:25 2025 -0800
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:58 2025 +0200

    tdf#166713 Fix crash in lcl_FoldedOutlineNodeEndOfParaSplit
    
    by handling the case of a paragraph outline level set by direct
    formatting.
    
    Change-Id: Ida0c8f91f0fb0584b39c16b3ddf2201429c6943f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191471
    Tested-by: Jenkins
    Reviewed-by: Jim Raykowski <[email protected]>
    (cherry picked from commit fd9ae53e39f3219474461d1e8e3220d8efdfcecb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191482
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit 5b9e275838ec1cd08f1c1755de545b4f7f34c7d1)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191500

diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx 
b/sw/source/uibase/wrtsh/wrtsh1.cxx
index c9fd6049fc1b..959eb327a8a4 100644
--- a/sw/source/uibase/wrtsh/wrtsh1.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh1.cxx
@@ -1394,6 +1394,10 @@ static bool 
lcl_FoldedOutlineNodeEndOfParaSplit(SwWrtShell *pThis)
 
             SwTextNode* pNd = pDoc->GetNodes().MakeTextNode(*pEndNd, 
pTextNode->GetTextColl(), true);
 
+            // if the outline level is not set in style then it is set in 
direct formatting
+            if (!pTextNode->GetTextColl()->GetAttrOutlineLevel())
+                pNd->SetAttrOutlineLevel(pTextNode->GetAttrOutlineLevel());
+
             (void) rOutlineNodes.Seek_Entry(pNd, &nPos);
             pThis->GotoOutline(nPos);
 
commit 7d2d7beda29d204bae39b66121f5723ff3aa5cc1
Author:     Balazs Varga <[email protected]>
AuthorDate: Mon Sep 22 17:39:58 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:31:58 2025 +0200

    tdf#168422 - Fix SUMPRODUCT calculation is broken in some cases
    
    Double refs with operators only trimmable in case of one root paramater.
    
    Follow up of: 969ddf72824942be9755a8d14482d6549a2231ce
    
    regression after commit: 969ddf72824942be9755a8d14482d6549a2231ce
    
    Change-Id: I87365efc5b7bc54bfdda4d33e4b5b9550d6e2602
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191365
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <[email protected]>
    (cherry picked from commit 22c0eb18f5dcaa76d4fc7a65e98e1d20589ced04)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191380
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sc/qa/unit/data/functions/array/fods/sumproduct.fods 
b/sc/qa/unit/data/functions/array/fods/sumproduct.fods
index 405b4f56f918..39a1a5260ebc 100644
--- a/sc/qa/unit/data/functions/array/fods/sumproduct.fods
+++ b/sc/qa/unit/data/functions/array/fods/sumproduct.fods
@@ -1,2875 +1,3056 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<office:document 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" 
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:scr
 ipt="urn:oasis:names:tc:opendocument:xmlns:script:1.0" 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:xforms="http://www.w3.org/2002/xforms"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:form
 x="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" 
xmlns:css3t="http://www.w3.org/TR/css3-text/"; office:version="1.2" 
office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
+<office:document 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:ooow="http://openoffice.org/200
 4/writer" xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:xforms="http://www.w3.org/2002/xforms"; 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
 xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" 
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
 xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; xmlns
 :css3t="http://www.w3.org/TR/css3-text/"; 
xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" 
office:version="1.4" 
office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
+ 
<office:meta><dc:date>2025-09-22T19:44:09.641976200</dc:date><meta:editing-duration>PT10M48S</meta:editing-duration><meta:editing-cycles>4</meta:editing-cycles><meta:generator>Collabora_OfficeDev/25.04.5.1$Windows_X86_64
 
LibreOffice_project/3dc7fe01dec3493d3e905e6099ffa574ec741c95</meta:generator><meta:document-statistic
 meta:table-count="2" meta:cell-count="298" 
meta:object-count="0"/></office:meta>
+ <office:settings>
+  <config:config-item-set config:name="ooo:view-settings">
+   <config:config-item config:name="VisibleAreaTop" 
config:type="int">0</config:config-item>
+   <config:config-item config:name="VisibleAreaLeft" 
config:type="int">0</config:config-item>
+   <config:config-item config:name="VisibleAreaWidth" 
config:type="int">22010</config:config-item>
+   <config:config-item config:name="VisibleAreaHeight" 
config:type="int">4262</config:config-item>
+   <config:config-item-map-indexed config:name="Views">
+    <config:config-item-map-entry>
+     <config:config-item config:name="ViewId" 
config:type="string">view1</config:config-item>
+     <config:config-item-map-named config:name="Tables">
+      <config:config-item-map-entry config:name="Sheet1">
+       <config:config-item config:name="CursorPositionX" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="CursorPositionY" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="ActiveSplitRange" 
config:type="short">2</config:config-item>
+       <config:config-item config:name="PositionLeft" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionRight" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionTop" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionBottom" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
+       <config:config-item config:name="ZoomValue" 
config:type="int">100</config:config-item>
+       <config:config-item config:name="PageViewZoomValue" 
config:type="int">60</config:config-item>
+       <config:config-item config:name="ShowGrid" 
config:type="boolean">true</config:config-item>
+       <config:config-item config:name="AnchoredTextOverflowLegacy" 
config:type="boolean">false</config:config-item>
+       <config:config-item config:name="LegacySingleLineFontwork" 
config:type="boolean">false</config:config-item>
+       <config:config-item config:name="ConnectorUseSnapRect" 
config:type="boolean">false</config:config-item>
+       <config:config-item config:name="IgnoreBreakAfterMultilineField" 
config:type="boolean">false</config:config-item>
+       <config:config-item config:name="UseTrailingEmptyLinesInLayout" 
config:type="boolean">false</config:config-item>
+      </config:config-item-map-entry>
+      <config:config-item-map-entry config:name="Sheet2">
+       <config:config-item config:name="CursorPositionX" 
config:type="int">3</config:config-item>
+       <config:config-item config:name="CursorPositionY" 
config:type="int">51</config:config-item>
+       <config:config-item config:name="ActiveSplitRange" 
config:type="short">2</config:config-item>
+       <config:config-item config:name="PositionLeft" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionRight" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionTop" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionBottom" 
config:type="int">25</config:config-item>
+       <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
+       <config:config-item config:name="ZoomValue" 
config:type="int">100</config:config-item>
+       <config:config-item config:name="PageViewZoomValue" 
config:type="int">60</config:config-item>
+       <config:config-item config:name="ShowGrid" 
config:type="boolean">true</config:config-item>
+       <config:config-item config:name="AnchoredTextOverflowLegacy" 
config:type="boolean">false</config:config-item>
+       <config:config-item config:name="LegacySingleLineFontwork" 
config:type="boolean">false</config:config-item>
+       <config:config-item config:name="ConnectorUseSnapRect" 
config:type="boolean">false</config:config-item>
+       <config:config-item config:name="IgnoreBreakAfterMultilineField" 
config:type="boolean">false</config:config-item>
+       <config:config-item config:name="UseTrailingEmptyLinesInLayout" 
config:type="boolean">false</config:config-item>
+      </config:config-item-map-entry>
+     </config:config-item-map-named>
+     <config:config-item config:name="ActiveTable" 
config:type="string">Sheet1</config:config-item>
+     <config:config-item config:name="HorizontalScrollbarWidth" 
config:type="int">1851</config:config-item>
+     <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
+     <config:config-item config:name="ZoomValue" 
config:type="int">100</config:config-item>
+     <config:config-item config:name="PageViewZoomValue" 
config:type="int">60</config:config-item>
+     <config:config-item config:name="ShowPageBreakPreview" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="ShowZeroValues" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="ShowNotes" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="ShowNoteAuthor" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="ShowFormulasMarks" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="ShowGrid" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="GridColor" 
config:type="int">12632256</config:config-item>
+     <config:config-item config:name="ShowPageBreaks" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="HasColumnRowHeaders" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="HasSheetTabs" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="IsOutlineSymbolsSet" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="IsValueHighlightingEnabled" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="IsSnapToRaster" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="RasterIsVisible" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="RasterResolutionX" 
config:type="int">1000</config:config-item>
+     <config:config-item config:name="RasterResolutionY" 
config:type="int">1000</config:config-item>
+     <config:config-item config:name="RasterSubdivisionX" 
config:type="int">1</config:config-item>
+     <config:config-item config:name="RasterSubdivisionY" 
config:type="int">1</config:config-item>
+     <config:config-item config:name="IsRasterAxisSynchronized" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="FormulaBarHeight" 
config:type="short">1</config:config-item>
+     <config:config-item config:name="AnchoredTextOverflowLegacy" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="LegacySingleLineFontwork" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="ConnectorUseSnapRect" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="IgnoreBreakAfterMultilineField" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="UseTrailingEmptyLinesInLayout" 
config:type="boolean">false</config:config-item>
+    </config:config-item-map-entry>
+   </config:config-item-map-indexed>
+  </config:config-item-set>
+  <config:config-item-set config:name="ooo:configuration-settings">
+   <config:config-item config:name="AllowPrintJobCancel" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ApplyUserData" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="AutoCalculate" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="CharacterCompressionType" 
config:type="short">0</config:config-item>
+   <config:config-item config:name="EmbedAsianScriptFonts" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedComplexScriptFonts" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedFonts" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="EmbedLatinScriptFonts" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedOnlyUsedFonts" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="GridColor" 
config:type="int">12632256</config:config-item>
+   <config:config-item config:name="HasColumnRowHeaders" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="HasSheetTabs" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ImagePreferredDPI" 
config:type="int">0</config:config-item>
+   <config:config-item config:name="IsDocumentShared" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IsKernAsianPunctuation" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IsOutlineSymbolsSet" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="IsRasterAxisSynchronized" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="IsSnapToRaster" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="LinkUpdateMode" 
config:type="short">3</config:config-item>
+   <config:config-item config:name="LoadReadonly" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrinterName" 
config:type="string">Microsoft Print to PDF (átirányítás: 
1)</config:config-item>
+   <config:config-item config:name="PrinterPaperFromSetup" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrinterSetup" 
config:type="base64Binary">hBb+/01pY3Jvc29mdCBQcmludCB0byBQREYgKMOhdGlyw6FuecOtdMOhczogMSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUmVtb3RlIERlc2t0b3AgRWFzeSBQcmludAAAAAAAAAAWAAEAPhUAAAAAAAAEAAhSAAAEdAAAM1ROVwAAAAAKAE0AaQBjAHIAbwBzAG8AZgB0ACAAUAByAGkAbgB0ACAAdABvACAAUABEAEYAIAAoAOEAdABpAHIA4QBuAAAAAAABBAMG3ABYFAMtAQABAAkAmgs0CGQAAQAPAFgCAgABAFgCAwABAEEANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAABAAAA/////0dJUzQAAAAAAAAAAAAAAABESU5VIgDQACwDLBHiXo1TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAABkAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAFNNVEoAAAAAEADAAHsAMAA4ADQARgAwADEARgBBAC0ARQA2ADMANAAtADQARAA3ADcALQA4ADMARQBFAC0AMAA3ADQAOAAxADcAQwAwADMANQA4ADEAfQAAAFJFU0RMTABVbmlyZXNETEwAUGFwZXJTaXplAEE0AE9yaWVudGF0aW9uAFBPUlRSQUlUAFJlc29sdXRpb24AUmVzT3B0aW9uMQBDb2xvck1vZGUAQ29sb3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwRAABWNERNAQAAAAAAAACcCnAiHAAAAOwAAAADAAAA+gFPCDTmd02D7gdIF8A1gdAAAABMAAAAAwAAAAAIAAAAAAAAAAAAAAMAAAAACAAAKgAAAAAIAAADAAAAQAAAAFYAAAAAEAAARABvAGMAdQBtAGUAbgB0AFUAcwBlAHIAUABhAHMAcwB3AG8AcgBkAAAARABvAGMAdQBtAGUAbgB0AE8AdwBuAGUAcgBQAGEAcwBzAHcAbwByAGQAAABEAG8AYwB1AG0AZQBuAHQAQwByA
 
HkAcAB0AFMAZQBjAHUAcgBpAHQAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAENPTVBBVF9EVVBMRVhfTU9ERRMARHVwbGV4TW9kZTo6VW5rbm93bgwAUFJJTlRFUl9OQU1FKwBNaWNyb3NvZnQgUHJpbnQgdG8gUERGICjDoXRpcsOhbnnDrXTDoXM6IDEpCwBEUklWRVJfTkFNRRkAUmVtb3RlIERlc2t0b3AgRWFzeSBQcmludA==</config:config-item>
+   <config:config-item config:name="RasterIsVisible" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="RasterResolutionX" 
config:type="int">1000</config:config-item>
+   <config:config-item config:name="RasterResolutionY" 
config:type="int">1000</config:config-item>
+   <config:config-item config:name="RasterSubdivisionX" 
config:type="int">1</config:config-item>
+   <config:config-item config:name="RasterSubdivisionY" 
config:type="int">1</config:config-item>
+   <config:config-item config:name="SaveThumbnail" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="SaveVersionOnClose" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ShowFormulasMarks" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ShowGrid" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ShowNoteAuthor" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ShowNotes" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ShowPageBreaks" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ShowZeroValues" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="SyntaxStringRef" 
config:type="short">7</config:config-item>
+   <config:config-item config:name="UpdateFromTemplate" 
config:type="boolean">true</config:config-item>
+   <config:config-item-map-named config:name="ScriptConfiguration">
+    <config:config-item-map-entry config:name="Sheet1">
+     <config:config-item config:name="CodeName" 
config:type="string">Sheet1</config:config-item>
+    </config:config-item-map-entry>
+    <config:config-item-map-entry config:name="Sheet2">
+     <config:config-item config:name="CodeName" 
config:type="string">Sheet2</config:config-item>
+    </config:config-item-map-entry>
+   </config:config-item-map-named>
+  </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+  <office:script script:language="ooo:Basic">
+   <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:xlink="http://www.w3.org/1999/xlink"/>
+  </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+  <style:font-face style:name="Droid Sans Devanagari" 
svg:font-family="&apos;Droid Sans Devanagari&apos;" 
style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="Droid Sans Fallback" 
svg:font-family="&apos;Droid Sans Fallback&apos;" 
style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="Liberation Sans" 
svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" 
style:font-pitch="variable"/>
+  <style:font-face style:name="Lucida Sans" svg:font-family="&apos;Lucida 
Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="Microsoft YaHei" 
svg:font-family="&apos;Microsoft YaHei&apos;" 
style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
  <office:styles>
   <style:default-style style:family="table-cell">
-   <style:paragraph-properties style:tab-stop-distance="36pt"/>
-   <style:text-properties style:font-name="Liberation Sans" fo:language="en" 
fo:country="US" style:font-name-asian="DejaVu Sans1" style:language-asian="zh" 
style:country-asian="CN" style:font-name-complex="DejaVu Sans1" 
style:language-complex="hi" style:country-complex="IN"/>
+   <style:paragraph-properties style:tab-stop-distance="1.27cm"/>
+   <style:text-properties style:font-name="Liberation Sans" 
fo:font-size="10pt" fo:language="en" fo:country="US" 
style:font-name-asian="Microsoft YaHei" style:font-size-asian="10pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Lucida Sans" style:font-size-complex="10pt" 
style:language-complex="hi" style:country-complex="IN"/>
   </style:default-style>
+  <style:default-style style:family="graphic">
+   <style:graphic-properties svg:stroke-color="#3465a4" 
draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" 
draw:shadow-offset-y="0.3cm" style:writing-mode="page"/>
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:punctuation-wrap="simple" style:line-break="strict" 
loext:tab-stop-distance="0cm" style:writing-mode="page" 
style:font-independent-line-spacing="false">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" fo:font-family="&apos;Liberation Serif&apos;" 
style:font-family-generic="roman" style:font-pitch="variable" 
fo:font-size="12pt" fo:language="en" fo:country="US" 
style:letter-kerning="true" style:font-family-asian="&apos;Segoe UI&apos;" 
style:font-family-generic-asian="system" style:font-pitch-asian="variable" 
style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" 
style:font-family-complex="Tahoma" style:font-family-generic-complex="system" 
style:font-pitch-complex="variable" style:font-size-complex="12pt" 
style:language-complex="hi" style:country-complex="IN"/>
+  </style:default-style>
+  <style:style style:name="Default" style:family="graphic"/>
+  <style:style style:name="Note" style:family="graphic" 
style:parent-style-name="Default">
+   <style:graphic-properties draw:stroke="solid" 
draw:marker-start="Arrowheads_20_1" draw:marker-start-width="0.2cm" 
draw:marker-start-center="false" draw:fill="solid" draw:fill-color="#ffffc0" 
draw:auto-grow-height="true" draw:auto-grow-width="false" 
fo:padding-top="0.1cm" fo:padding-bottom="0.1cm" fo:padding-left="0.1cm" 
fo:padding-right="0.1cm" draw:shadow="visible" draw:shadow-offset-x="0.1cm" 
draw:shadow-offset-y="0.1cm"/>
+   <style:text-properties style:font-name="Liberation Sans" 
fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" 
style:font-pitch="variable" fo:font-size="10pt" 
style:font-name-asian="Microsoft YaHei" 
style:font-family-asian="&apos;Microsoft YaHei&apos;" 
style:font-family-generic-asian="system" style:font-pitch-asian="variable" 
style:font-size-asian="10pt" style:font-name-complex="Lucida Sans" 
style:font-family-complex="&apos;Lucida Sans&apos;" 
style:font-family-generic-complex="system" style:font-pitch-complex="variable" 
style:font-size-complex="10pt"/>
+  </style:style>
   <number:number-style style:name="N0">
    <number:number number:min-integer-digits="1"/>
   </number:number-style>
   <number:number-style style:name="N3">
-   <number:number number:decimal-places="0" loext:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:number number:decimal-places="0" number:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
   </number:number-style>
-  <number:currency-style style:name="N122P0" style:volatile="true">
-   <number:number number:decimal-places="2" loext:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
+  <number:currency-style style:name="N149P0" style:volatile="true">
+   <number:number number:decimal-places="2" number:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
    <number:text> </number:text>
    <number:currency-symbol number:language="cs" 
number:country="CZ">Kč</number:currency-symbol>
   </number:currency-style>
-  <number:currency-style style:name="N122">
+  <number:currency-style style:name="N149">
    <style:text-properties fo:color="#ff0000"/>
    <number:text>-</number:text>
-   <number:number number:decimal-places="2" loext:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:number number:decimal-places="2" number:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
    <number:text> </number:text>
    <number:currency-symbol number:language="cs" 
number:country="CZ">Kč</number:currency-symbol>
-   <style:map style:condition="value()&gt;=0" style:apply-style-name="N122P0"/>
+   <style:map style:condition="value()&gt;=0" style:apply-style-name="N149P0"/>
   </number:currency-style>
-  <number:number-style style:name="N126P0" style:volatile="true">
+  <number:number-style style:name="N153P0" style:volatile="true">
    <number:text> $</number:text>
-   <number:number number:decimal-places="2" loext:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:number number:decimal-places="2" number:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
    <number:text> </number:text>
   </number:number-style>
-  <number:number-style style:name="N126P1" style:volatile="true">
+  <number:number-style style:name="N153P1" style:volatile="true">
    <number:text> $(</number:text>
-   <number:number number:decimal-places="2" loext:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:number number:decimal-places="2" number:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
    <number:text>)</number:text>
   </number:number-style>
-  <number:number-style style:name="N126P2" style:volatile="true">
+  <number:number-style style:name="N153P2" style:volatile="true">
    <number:text> $-</number:text>
-   <number:number number:decimal-places="0" loext:min-decimal-places="0" 
number:min-integer-digits="0"/>
+   <number:number number:decimal-places="0" number:min-decimal-places="0" 
number:min-integer-digits="0"/>
    <number:text> </number:text>
   </number:number-style>
-  <number:text-style style:name="N126">
+  <number:text-style style:name="N153">
    <number:text-content/>
    <number:text> </number:text>
-   <style:map style:condition="value()&gt;0" style:apply-style-name="N126P0"/>
-   <style:map style:condition="value()&lt;0" style:apply-style-name="N126P1"/>
-   <style:map style:condition="value()=0" style:apply-style-name="N126P2"/>
+   <style:map style:condition="value()&gt;0" style:apply-style-name="N153P0"/>
+   <style:map style:condition="value()&lt;0" style:apply-style-name="N153P1"/>
+   <style:map style:condition="value()=0" style:apply-style-name="N153P2"/>
   </number:text-style>
-  <number:number-style style:name="N127">
-   <number:scientific-number number:decimal-places="14" 
loext:min-decimal-places="14" number:min-integer-digits="1" 
number:min-exponent-digits="3" loext:exponent-interval="1" 
loext:forced-exponent-sign="true"/>
+  <number:number-style style:name="N154">
+   <number:scientific-number number:decimal-places="14" 
number:min-decimal-places="14" number:min-integer-digits="1" 
number:min-exponent-digits="3" number:exponent-interval="1" 
number:forced-exponent-sign="true"/>
   </number:number-style>
-  <number:number-style style:name="N315P0" style:volatile="true">
-   <number:number number:decimal-places="0" loext:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
+  <number:number-style style:name="N157P0" style:volatile="true">
+   <number:number number:decimal-places="0" number:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
   </number:number-style>
-  <number:number-style style:name="N315P1" style:volatile="true">
+  <number:number-style style:name="N157P1" style:volatile="true">
    <number:text>-</number:text>
-   <number:number number:decimal-places="0" loext:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:number number:decimal-places="0" number:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
   </number:number-style>
-  <number:number-style style:name="N315P2" style:volatile="true">
+  <number:number-style style:name="N157P2" style:volatile="true">
    <number:text>- </number:text>
   </number:number-style>
-  <number:text-style style:name="N315">
+  <number:text-style style:name="N157">
    <number:text-content/>
    <number:text> </number:text>
-   <style:map style:condition="value()&gt;0" style:apply-style-name="N315P0"/>
-   <style:map style:condition="value()&lt;0" style:apply-style-name="N315P1"/>
-   <style:map style:condition="value()=0" style:apply-style-name="N315P2"/>
+   <style:map style:condition="value()&gt;0" style:apply-style-name="N157P0"/>
+   <style:map style:condition="value()&lt;0" style:apply-style-name="N157P1"/>
+   <style:map style:condition="value()=0" style:apply-style-name="N157P2"/>
   </number:text-style>
-  <number:currency-style style:name="N129P0" style:volatile="true">
+  <number:currency-style style:name="N159P0" style:volatile="true">
+   <number:number number:decimal-places="2" number:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:text> </number:text>
+   <number:currency-symbol number:language="de" 
number:country="DE">€</number:currency-symbol>
+  </number:currency-style>
+  <number:currency-style style:name="N159">
+   <style:text-properties fo:color="#ff0000"/>
+   <number:text>-</number:text>
+   <number:number number:decimal-places="2" number:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:text> </number:text>
+   <number:currency-symbol number:language="de" 
number:country="DE">€</number:currency-symbol>
+   <style:map style:condition="value()&gt;=0" style:apply-style-name="N159P0"/>
+  </number:currency-style>
+  <number:number-style style:name="N160">
+   <number:number number:decimal-places="0" number:min-decimal-places="0" 
number:min-integer-digits="1"/>
+   <number:text>×</number:text>
+  </number:number-style>
+  <number:currency-style style:name="N162P0" style:volatile="true">
    <number:currency-symbol number:language="en" 
number:country="GB">£</number:currency-symbol>
-   <number:number number:decimal-places="0" loext:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:number number:decimal-places="0" number:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
   </number:currency-style>
-  <number:currency-style style:name="N129">
+  <number:currency-style style:name="N162">
    <number:text>-</number:text>
    <number:currency-symbol number:language="en" 
number:country="GB">£</number:currency-symbol>
-   <number:number number:decimal-places="0" loext:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
-   <style:map style:condition="value()&gt;=0" style:apply-style-name="N129P0"/>
+   <number:number number:decimal-places="0" number:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
+   <style:map style:condition="value()&gt;=0" style:apply-style-name="N162P0"/>
   </number:currency-style>
-  <number:currency-style style:name="N131P0" style:volatile="true">
+  <number:currency-style style:name="N164P0" style:volatile="true">
    <number:currency-symbol number:language="en" 
number:country="GB">£</number:currency-symbol>
-   <number:number number:decimal-places="2" loext:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:number number:decimal-places="2" number:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
   </number:currency-style>
-  <number:currency-style style:name="N131">
+  <number:currency-style style:name="N164">
    <number:text>-</number:text>
    <number:currency-symbol number:language="en" 
number:country="GB">£</number:currency-symbol>
-   <number:number number:decimal-places="2" loext:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
-   <style:map style:condition="value()&gt;=0" style:apply-style-name="N131P0"/>
+   <number:number number:decimal-places="2" number:min-decimal-places="2" 
number:min-integer-digits="1" number:grouping="true"/>
+   <style:map style:condition="value()&gt;=0" style:apply-style-name="N164P0"/>
   </number:currency-style>
-  <number:currency-style style:name="N132P0" style:volatile="true">
+  <number:currency-style style:name="N165P0" style:volatile="true">
    <number:currency-symbol number:language="en" 
number:country="GB">£</number:currency-symbol>
-   <number:number number:decimal-places="0" loext:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
+   <number:number number:decimal-places="0" number:min-decimal-places="0" 
number:min-integer-digits="1" number:grouping="true"/>
   </number:currency-style>
-  <number:currency-style style:name="N132">
+  <number:currency-style style:name="N165">
    <style:text-properties fo:color="#ff0000"/>
-e 
... etc. - the rest is truncated

Reply via email to