android/source/src/java/org/libreoffice/LOKitTileProvider.java    |    9 
 bin/check-elf-dynamic-objects                                     |    9 
 bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx                 |    2 
 chart2/source/controller/dialogs/RangeSelectionListener.cxx       |   18 
 chart2/source/controller/dialogs/res_ErrorBar.cxx                 |   11 
 chart2/source/controller/dialogs/tp_DataSource.cxx                |   15 
 chart2/source/controller/dialogs/tp_RangeChooser.cxx              |   13 
 chart2/source/controller/inc/RangeSelectionListener.hxx           |    9 
 configure.ac                                                      |   14 
 cui/source/options/optaboutconfig.cxx                             |    2 
 download.lst                                                      |    4 
 external/curl/ExternalProject_curl.mk                             |    3 
 formula/source/core/api/FormulaCompiler.cxx                       |   17 
 include/formula/FormulaCompiler.hxx                               |    2 
 lingucomponent/source/spellcheck/languagetool/languagetoolimp.cxx |   11 
 offapi/com/sun/star/graphic/MediaProperties.idl                   |    8 
 officecfg/registry/schema/org/openoffice/Office/Writer.xcs        |    7 
 package/inc/ByteGrabber.hxx                                       |    1 
 package/inc/ZipFile.hxx                                           |   22 
 package/inc/ZipPackage.hxx                                        |    1 
 package/source/zipapi/ByteGrabber.cxx                             |   18 
 package/source/zipapi/ZipFile.cxx                                 |  446 -
 package/source/zippackage/ZipPackage.cxx                          |   38 
 package/source/zippackage/zipfileaccess.cxx                       |    2 
 readlicense_oo/license/CREDITS.fodt                               | 4443 
+++++-----
 sc/qa/unit/data/functions/text/fods/exact.fods                    |   40 
 sc/qa/unit/subsequent_filters_test4.cxx                           |   10 
 sc/qa/unit/ucalc.cxx                                              |   74 
 sc/source/core/data/table2.cxx                                    |    3 
 sc/source/core/tool/interpr1.cxx                                  |    2 
 sc/source/core/tool/token.cxx                                     |    2 
 sfx2/source/dialog/filedlghelper.cxx                              |   36 
 sfx2/source/dialog/filedlgimpl.hxx                                |    3 
 svl/source/items/IndexedStyleSheets.cxx                           |   15 
 sw/inc/ToxTabStopTokenHandler.hxx                                 |   14 
 sw/inc/ToxTextGenerator.hxx                                       |    3 
 sw/inc/doc.hxx                                                    |    3 
 sw/inc/fesh.hxx                                                   |    1 
 sw/inc/tblafmt.hxx                                                |    1 
 sw/qa/core/data/ooxml/pass/tdf161139_orrick-org-min3.docx         |binary
 sw/qa/core/doc/data/tdf160843.odt                                 |binary
 sw/qa/core/doc/doc.cxx                                            |   23 
 sw/qa/core/test_ToxTextGenerator.cxx                              |    9 
 sw/qa/extras/rtfexport/data/tdf160976_headerFooter.odt            |binary
 sw/qa/extras/rtfexport/data/tdf160976_headerFooter2.odt           |binary
 sw/qa/extras/rtfexport/data/tdf160976_headerFooter3.odt           |binary
 sw/qa/extras/rtfexport/rtfexport8.cxx                             |   55 
 sw/qa/extras/uiwriter/uiwriter6.cxx                               |    2 
 sw/source/core/doc/docfmt.cxx                                     |    3 
 sw/source/core/doc/docnew.cxx                                     |    6 
 sw/source/core/doc/doctxm.cxx                                     |   45 
 sw/source/core/doc/fmtcol.cxx                                     |    7 
 sw/source/core/doc/tblafmt.cxx                                    |   10 
 sw/source/core/doc/tblrwcl.cxx                                    |   15 
 sw/source/core/docnode/ndtbl.cxx                                  |   40 
 sw/source/core/frmedt/fetab.cxx                                   |   27 
 sw/source/core/text/itrcrsr.cxx                                   |   58 
 sw/source/core/tox/ToxTabStopTokenHandler.cxx                     |   64 
 sw/source/core/tox/ToxTextGenerator.cxx                           |   14 
 sw/source/core/txtnode/ndtxt.cxx                                  |    5 
 sw/source/core/undo/untbl.cxx                                     |    8 
 sw/source/filter/html/htmlforw.cxx                                |    8 
 sw/source/filter/ww8/rtfexport.cxx                                |   53 
 sw/source/filter/ww8/rtfexport.hxx                                |    3 
 sw/source/filter/ww8/ww8par.cxx                                   |    2 
 sw/source/ui/fldui/fldref.cxx                                     |    6 
 sw/source/ui/table/instable.cxx                                   |   14 
 sw/source/ui/table/tautofmt.cxx                                   |   19 
 sw/source/uibase/uiview/formatclipboard.cxx                       |  103 
 sw/source/uibase/uiview/view.cxx                                  |   20 
 vcl/osx/salnsmenu.mm                                              |   76 
 vcl/qa/cppunit/graphicfilter/filters-webp-test.cxx                |    4 
 vcl/qa/cppunit/pdfexport/pdfexport.cxx                            |    4 
 vcl/source/app/salvtables.cxx                                     |    2 
 vcl/source/app/weldutils.cxx                                      |    2 
 vcl/source/bitmap/BitmapEx.cxx                                    |    3 
 vcl/source/filter/webp/writer.cxx                                 |    4 
 vcl/source/gdi/pdfwriter_impl.cxx                                 |   12 
 writerfilter/source/dmapper/DomainMapper.cxx                      |    1 
 writerfilter/source/filter/WriterFilter.cxx                       |    1 
 xmlsecurity/source/dialogs/certificatechooser.cxx                 |   17 
 xmlsecurity/uiconfig/ui/selectcertificatedialog.ui                |   36 
 82 files changed, 3562 insertions(+), 2551 deletions(-)

New commits:
commit be5e7ffd7c202069508d2d2cc5ac8ed38730076e
Author:     Bjoern Michaelsen <[email protected]>
AuthorDate: Wed Jul 31 11:30:12 2024 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    tdf#160843: fix page count reset
    
    - SwTextFormatColl and SwTextNode: explicitly forward page count hint
    - add test
    
    Change-Id: Ic37bece92828f21632acff8f802d4847e820542f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171329
    Reviewed-by: Michael Stahl <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 39fd178b86608ebb0717bf15992bdf6b16d6e92a)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171362
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172110

diff --git a/sw/qa/core/doc/data/tdf160843.odt 
b/sw/qa/core/doc/data/tdf160843.odt
new file mode 100644
index 000000000000..97f0619a433b
Binary files /dev/null and b/sw/qa/core/doc/data/tdf160843.odt differ
diff --git a/sw/qa/core/doc/doc.cxx b/sw/qa/core/doc/doc.cxx
index b653a1cc2201..2fdd062f5c81 100644
--- a/sw/qa/core/doc/doc.cxx
+++ b/sw/qa/core/doc/doc.cxx
@@ -609,6 +609,29 @@ CPPUNIT_TEST_FIXTURE(SwCoreDocTest, testSplitFlyInsertUndo)
     CPPUNIT_ASSERT(!rFlyFormats.empty());
 }
 
+CPPUNIT_TEST_FIXTURE(SwCoreDocTest, testVirtPageNumReset)
+{
+    createSwDoc("tdf160843.odt");
+    auto pWrtShell = getSwDocShell()->GetWrtShell();
+    sal_uInt16 nPhys = 0;
+    sal_uInt16 nVirt = 0;
+
+    pWrtShell->GotoPage(1, false);
+    pWrtShell->GetPageNum(nPhys, nVirt, true, false);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(1), nPhys);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(1), nVirt);
+
+    pWrtShell->GotoPage(3, false);
+    pWrtShell->GetPageNum(nPhys, nVirt, true, false);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(3), nPhys);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(1), nVirt);
+
+    pWrtShell->GotoPage(5, false);
+    pWrtShell->GetPageNum(nPhys, nVirt, true, false);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(5), nPhys);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(1), nVirt);
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/doc/fmtcol.cxx b/sw/source/core/doc/fmtcol.cxx
index 4d87241a03ba..c63d28e73af4 100644
--- a/sw/source/core/doc/fmtcol.cxx
+++ b/sw/source/core/doc/fmtcol.cxx
@@ -132,7 +132,12 @@ void SwTextFormatColl::SwClientNotify(const SwModify& 
rModify, const SfxHint& rH
         CallSwClientNotify(rHint);
         return;
     }
-    if (rHint.GetId() != SfxHintId::SwLegacyModify)
+    else if (rHint.GetId() == SfxHintId::SwVirtPageNumHint)
+    {
+        CallSwClientNotify(rHint);
+        return;
+    }
+    else if (rHint.GetId() != SfxHintId::SwLegacyModify)
         return;
     auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
     if(GetDoc()->IsInDtor())
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 77dbe2e0290f..c679afc618a6 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -5546,13 +5546,16 @@ void SwTextNode::SwClientNotify( const SwModify& 
rModify, const SfxHint& rHint )
     if(rHint.GetId() == SfxHintId::SwAutoFormatUsedHint)
     {
         static_cast<const sw::AutoFormatUsedHint&>(rHint).CheckNode(this);
-        return;
     }
     else if (rHint.GetId() == SfxHintId::SwLegacyModify)
     {
         auto pLegacyHint = static_cast<const sw::LegacyModifyHint*>(&rHint);
         TriggerNodeUpdate(*pLegacyHint);
     }
+    else if (rHint.GetId() == SfxHintId::SwVirtPageNumHint)
+    {
+        CallSwClientNotify(rHint);
+    }
     else if (dynamic_cast<const SwAttrHint*>(&rHint))
     {
         if (&rModify == GetRegisteredIn())
commit d3969d1c7857747ee66fb3b54f3730c19517955c
Author:     Mike Kaganski <[email protected]>
AuthorDate: Sun Aug 18 16:08:12 2024 +0500
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    Add missing property to com.sun.star.graphic.MediaProperties service
    
    An omission from commit 8484e52675052848d2d3ffe07378ce2ad29fd288
    "tdf#117427 missing API for determining and loading linked graphic",
    2018-05-12, that introduced it.
    
    Change-Id: Ibf4c754931f813c5234daa5f7b7c907ed84efdef
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172008
    Reviewed-by: Mike Kaganski <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 2a122f47dfa1b127c35838afb0ddac4e8524e400)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171993
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/offapi/com/sun/star/graphic/MediaProperties.idl 
b/offapi/com/sun/star/graphic/MediaProperties.idl
index ac1d64b96faf..c4a89393aa3c 100644
--- a/offapi/com/sun/star/graphic/MediaProperties.idl
+++ b/offapi/com/sun/star/graphic/MediaProperties.idl
@@ -101,6 +101,14 @@ published service MediaProperties
     appropriate filter module.
     */
     [optional, property] ::com::sun::star::beans::PropertyValues FilterData;
+
+    /** This property is only used for loading graphics
+
+        <p>Load the graphic as an external link</p>
+
+        @since LibreOffice 6.1
+    */
+    [optional, property] boolean LoadAsLink;
 };
 
 } ; } ; } ; } ;
commit 1af71783a96c06d8f019c6af47535054253f63a2
Author:     Justin Luth <[email protected]>
AuthorDate: Mon Aug 19 13:52:38 2024 -0400
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    tdf#161139: add unit test to sw filters pass
    
    make CppunitTest_sw_filters_test
    
    Change-Id: I6764dfb19ec8af12da44821bf1a55ff300780369
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172051
    Reviewed-by: Justin Luth <[email protected]>
    Tested-by: Jenkins
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172074

diff --git a/sw/qa/core/data/ooxml/pass/tdf161139_orrick-org-min3.docx 
b/sw/qa/core/data/ooxml/pass/tdf161139_orrick-org-min3.docx
new file mode 100644
index 000000000000..2f1634dd5480
Binary files /dev/null and 
b/sw/qa/core/data/ooxml/pass/tdf161139_orrick-org-min3.docx differ
commit 1092312bbf7d19bcede0a76c3c395c836adc1a12
Author:     Mike Kaganski <[email protected]>
AuthorDate: Tue Aug 13 16:58:50 2024 +0500
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    Handle possible exceptions in SwView::ImpSetVerb
    
    This reportedly may crash on unhandled exception, with the following stack:
    
     KernelBase.dll!00007ffaa227fabc()
     [External Code]
     emboleobj.dll!OleComponent::GetVerbList() Line 1013
            at D:\lombeddedobj\source\msole\olecomponent.cxx(1013)
     emboleobj.dll!OleEmbeddedObject::getSupportedVerbs() Line 1000
            at D:\lombeddedobj\source\msole\oleembed.cxx(1000)
     swlo.dll!SwView::ImpSetVerb(SelectionType nSelType) Line 162
            at D:\lo\sw\source\uibase\uiviewiew.cxx(162)
     swlo.dll!SwView::SelectShell() Line 309
            at D:\lo\sw\source\uibase\uiviewiew.cxx(309)
     swlo.dll!SwView::AttrChangedNotify(LinkParamNone * __formal) Line 574
            at D:\lo\sw\source\uibase\uiviewiew.cxx(574)
     [Inline Frame] swlo.dll!Link<LinkParamNone *,void>::Call(LinkParamNone *) 
Line 111
            at D:\lo\include    ools\link.hxx(111)
     swlo.dll!SwCursorShell::CallChgLnk() Line 2903
            at D:\lo\sw\source     swlo.dll!SwRootFrame::EndAllAction() Line 
1941
            at D:\lo\sw\source     
swlo.dll!UnoActionContext::~UnoActionContext() Line 212
            at D:\lo\sw\source     swlo.dll!SwXFrame::setPropertyValue(const 
rtl::OUString & rPropertyName, const com::sun::star::uno::Any & _rValue) Line 
1605
            at D:\lo\sw\source     mscx_uno.dll!`anonymous 
namespace'::cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy * pThis, 
bridges::cpp_uno::shared::VtableSlot aVtableSlot, 
_typelib_TypeDescriptionReference * pReturnTypeRef, long nParams, 
_typelib_MethodParameter * pParams, void * pUnoReturn, void * * pUnoArgs, 
_uno_Any * * ppUnoExc) Line 214
            at D:\loridges\source     
mscx_uno.dll!unoInterfaceProxyDispatch(_uno_Interface * pUnoI, const 
_typelib_TypeDescription * pMemberTD, void * pReturn, void * * pArgs, _uno_Any 
* * ppException) Line 430
            at D:\loridges\source     
binaryurplo.dll!binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny 
* returnValue, 
std::vector<binaryurp::BinaryAny,std::allocator<binaryurp::BinaryAny> > * 
outArguments) Line 239
            at D:\loinaryurp\source\incomingrequest.cxx(239)
     binaryurplo.dll!binaryurp::IncomingRequest::execute() Line 79
            at D:\loinaryurp\source\incomingrequest.cxx(79)
     binaryurplo.dll!request(void * pThreadSpecificData) Line 84
            at D:\loinaryurp\source eader.cxx(84)
     cppu3.dll!cppu_threadpool::JobQueue::enter(const void * nDisposeId, bool 
bReturnWhenNoJob) Line 101
            at D:\lo     cppu3.dll!cppu_threadpool::ORequestThread::run() Line 
169
            at D:\lo     cppu3.dll!threadFunc(void * param) Line 190
            at D:\lo\include\osl        hread.hxx(190)
     sal3.dll!oslWorkerWrapperFunction(void * pData) Line 67
            at D:\lo\sal\osl\w32        hread.cxx(67)
    
    Change-Id: Ifef15938c7986c4179d61cfa07973ad9b13d4ad4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171823
    Reviewed-by: Mike Kaganski <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 97fa167baa062ef4d26053924527d114e0394fff)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171997
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit 4a972b9203d1ed5bfe8f21a71455502633ffb604)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172076

diff --git a/sw/source/uibase/uiview/view.cxx b/sw/source/uibase/uiview/view.cxx
index 7ed676df1aca..9efc27622c15 100644
--- a/sw/source/uibase/uiview/view.cxx
+++ b/sw/source/uibase/uiview/view.cxx
@@ -26,6 +26,7 @@
 
 #include <stdlib.h>
 #include <hintids.hxx>
+#include <comphelper/diagnose_ex.hxx>
 #include <comphelper/string.hxx>
 #include <comphelper/lok.hxx>
 #include <o3tl/any.hxx>
@@ -150,7 +151,7 @@ SfxDispatcher &SwView::GetDispatcher()
 
 void SwView::ImpSetVerb( SelectionType nSelType )
 {
-    bool bResetVerbs = m_bVerbsActive;
+    Sequence<embed::VerbDescriptor> newVerbs;
     if ( !GetViewFrame().GetFrame().IsInPlace() &&
          (SelectionType::Ole|SelectionType::Graphic) & nSelType )
     {
@@ -159,16 +160,21 @@ void SwView::ImpSetVerb( SelectionType nSelType )
         {
             if ( nSelType & SelectionType::Ole )
             {
-                SetVerbs( GetWrtShell().GetOLEObject()->getSupportedVerbs() );
-                m_bVerbsActive = true;
-                bResetVerbs = false;
+                try
+                {
+                    newVerbs = 
GetWrtShell().GetOLEObject()->getSupportedVerbs();
+                }
+                catch (css::uno::Exception&)
+                {
+                    DBG_UNHANDLED_EXCEPTION("sw.ui", "Failed to retrieve 
supported verbs");
+                }
             }
         }
     }
-    if ( bResetVerbs )
+    if (m_bVerbsActive || newVerbs.hasElements())
     {
-        SetVerbs( Sequence< embed::VerbDescriptor >() );
-        m_bVerbsActive = false;
+        SetVerbs(newVerbs);
+        m_bVerbsActive = newVerbs.hasElements();
     }
 }
 
commit 9111b7784604abf20c13b1b5b4237ec563482dba
Author:     Mike Kaganski <[email protected]>
AuthorDate: Mon Aug 12 16:02:27 2024 +0500
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    Another case of pointers comparison
    
    Similar to https://gerrit.libreoffice.org/c/core/+/171756, this was
    this way since commit 7333881bb7b04f7e4e2a28638024ae82a9c14e81 (Formula
    tokens, formula cells and formula interpreters to use shared strings,
    2013-10-11). I don't know if this causes actual problems, but looks
    suspicious, and string comparison compares pointers for optimization.
    
    Change-Id: I544846b8b839606bdf2f118b87e5ea0c5961852f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171757
    Reviewed-by: Noel Grandin <[email protected]>
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>
    (cherry picked from commit a9577dd52d4bcf273bae4abbc8f168eab777172d)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172001
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index 7e327bdac8b8..6d18bbe3a1d5 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -857,7 +857,7 @@ bool ScExternalNameToken::operator==( const FormulaToken& r 
) const
     if (mnFileId != r.GetIndex())
         return false;
 
-    return maName.getData() == r.GetString().getData();
+    return maName == r.GetString();
 }
 
 ScTableRefToken::ScTableRefToken( sal_uInt16 nIndex, ScTableRefToken::Item 
eItem ) :
commit 64e35d7e92d67391a7e537dae2a6d4e600d36c71
Author:     Mike Kaganski <[email protected]>
AuthorDate: Mon Aug 12 15:58:24 2024 +0500
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    tdf#162439: compare strings, not pointers
    
    Change-Id: Id107eaee553531f49da4ad06c681a34cdc08e4da
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171756
    Reviewed-by: Noel Grandin <[email protected]>
    Reviewed-by: Mike Kaganski <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 26931fa1ce1c22f0c54ab2916e9924b1c78f8efe)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171999
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sc/qa/unit/data/functions/text/fods/exact.fods 
b/sc/qa/unit/data/functions/text/fods/exact.fods
index 5a97d27654ec..db69bed3dba5 100644
--- a/sc/qa/unit/data/functions/text/fods/exact.fods
+++ b/sc/qa/unit/data/functions/text/fods/exact.fods
@@ -2799,25 +2799,41 @@
      <table:table-cell table:style-name="ce9"/>
      <table:table-cell table:number-columns-repeated="8"/>
     </table:table-row>
-    <table:table-row table:style-name="ro2" table:number-rows-repeated="182">
-     <table:table-cell table:number-columns-repeated="2"/>
-     <table:table-cell table:style-name="ce6"/>
-     <table:table-cell table:style-name="ce11"/>
+    <table:table-row table:style-name="ro2">
+     <table:table-cell table:style-name="ce23" 
table:formula="of:=EXACT(1;[.L2])" office:value-type="boolean" 
calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce24" table:formula="of:=TRUE()" 
office:value-type="boolean" calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce6" 
table:formula="of:=[.A77]=[.B77]" office:value-type="boolean" 
calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce11" 
table:formula="of:=FORMULA([.A77])" office:value-type="string" 
calcext:value-type="string"/>
      <table:table-cell table:number-columns-repeated="6"/>
      <table:table-cell table:style-name="ce9"/>
      <table:table-cell table:number-columns-repeated="8"/>
     </table:table-row>
-    <table:table-row table:style-name="ro2" table:number-rows-repeated="4">
-     <table:table-cell table:number-columns-repeated="2"/>
-     <table:table-cell table:style-name="ce6"/>
-     <table:table-cell table:style-name="ce11"/>
-     <table:table-cell table:number-columns-repeated="15"/>
+    <table:table-row table:style-name="ro2">
+     <table:table-cell table:style-name="ce23" 
table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="2" 
table:formula="of:=EXACT(1;[.L2:.L3])" office:value-type="boolean" 
calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce24" table:formula="of:=TRUE()" 
office:value-type="boolean" calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce6" 
table:formula="of:=[.A78]=[.B78]" office:value-type="boolean" 
calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce11" 
table:formula="of:=FORMULA([.A78])" office:value-type="string" 
calcext:value-type="string"/>
+     <table:table-cell table:number-columns-repeated="6"/>
+     <table:table-cell table:style-name="ce9"/>
+     <table:table-cell table:number-columns-repeated="8"/>
     </table:table-row>
-    <table:table-row table:style-name="ro2" 
table:number-rows-repeated="1048313">
-     <table:table-cell table:number-columns-repeated="19"/>
+    <table:table-row table:style-name="ro2">
+     <table:table-cell table:style-name="ce23" office:value-type="boolean" 
calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce24" table:formula="of:=FALSE()" 
office:value-type="boolean" calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce6" 
table:formula="of:=[.A79]=[.B79]" office:value-type="boolean" 
calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce11" 
table:formula="of:=FORMULA([.A79])" office:value-type="string" 
calcext:value-type="string"/>
+     <table:table-cell table:number-columns-repeated="6"/>
+     <table:table-cell table:style-name="ce9"/>
+     <table:table-cell table:number-columns-repeated="8"/>
     </table:table-row>
     <table:table-row table:style-name="ro2">
-     <table:table-cell table:number-columns-repeated="19"/>
+     <table:table-cell table:style-name="ce23" 
table:number-matrix-columns-spanned="1" table:number-matrix-rows-spanned="1" 
table:formula="of:=EXACT(1;{1})" office:value-type="boolean" 
calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce24" table:formula="of:=TRUE()" 
office:value-type="boolean" calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce6" 
table:formula="of:=[.A80]=[.B80]" office:value-type="boolean" 
calcext:value-type="boolean"/>
+     <table:table-cell table:style-name="ce11" 
table:formula="of:=FORMULA([.A80])" office:value-type="string" 
calcext:value-type="string"/>
+     <table:table-cell table:number-columns-repeated="6"/>
+     <table:table-cell table:style-name="ce9"/>
+     <table:table-cell table:number-columns-repeated="8"/>
     </table:table-row>
     <calcext:conditional-formats>
      <calcext:conditional-format 
calcext:target-range-address="Sheet2.C2:Sheet2.C262">
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 9e0f09912647..c6eabab262ea 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -10441,7 +10441,7 @@ void ScInterpreter::ScExact()
     {
         svl::SharedString s1 = GetString();
         svl::SharedString s2 = GetString();
-        PushInt( int(s1.getData() == s2.getData()) );
+        PushInt(int(s1 == s2));
     }
 }
 
commit 996218bce9e6075f1e5725d7aa00dc55c36d1edc
Author:     Michael Stahl <[email protected]>
AuthorDate: Tue Aug 13 17:59:18 2024 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    package: ZipPackage: add additional check for entries STORED with
    
    ... data descriptor; only allow it for encrypted ODF entries, which
    requires reading the manifest first.
    
    Change-Id: If36d31a4cb93e7af78f48be3ed899ad9d9bb28f0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171911
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit 32cad89592ec04ab552399095c91dd76afb3002c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171779
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/package/inc/ZipPackage.hxx b/package/inc/ZipPackage.hxx
index dbfbfe1bc17d..9848396dcf11 100644
--- a/package/inc/ZipPackage.hxx
+++ b/package/inc/ZipPackage.hxx
@@ -104,6 +104,7 @@ class ZipPackage final : public cppu::WeakImplHelper
 
     bool isLocalFile() const;
 
+    void checkZipEntriesWithDD();
     void parseManifest();
     void parseContentType();
     void getZipFileContents();
diff --git a/package/source/zipapi/ZipFile.cxx 
b/package/source/zipapi/ZipFile.cxx
index 7647de9707b0..12c625dab4d0 100644
--- a/package/source/zipapi/ZipFile.cxx
+++ b/package/source/zipapi/ZipFile.cxx
@@ -1014,7 +1014,11 @@ sal_uInt64 ZipFile::readLOC(ZipEntry &rEntry)
         if ((rEntry.nFlag & 0x08) != 0)
         {
 #if 0
-            if (nLocMethod == STORED) // example: fdo68983.odt has this :(
+            // Unfortunately every encrypted ODF package entry hits this,
+            // because ODF requires deflated entry with value STORED and OOo/LO
+            // has always written compressed streams with data descriptor.
+            // So it is checked later in ZipPackage::checkZipEntriesWithDD()
+            if (nLocMethod == STORED)
             {
                 SAL_INFO("package", "LOC STORED with data descriptor: \"" << 
rEntry.sPath << "\"");
                 bBroken = true;
@@ -1387,6 +1391,11 @@ sal_Int32 ZipFile::readCEN()
             if (o3tl::checked_multiply<sal_Int64>(aEntry.nOffset, -1, 
aEntry.nOffset))
                 throw ZipException("Integer-overflow");
 
+            if (aEntry.nMethod == STORED && aEntry.nCompressedSize != 
aEntry.nSize)
+            {
+                throw ZipException(u"entry STORED with inconsistent 
size"_ustr);
+            }
+
             aMemGrabber.skipBytes(nCommentLen);
 
             // unfortunately readLOC is required now to check the consistency
diff --git a/package/source/zippackage/ZipPackage.cxx 
b/package/source/zippackage/ZipPackage.cxx
index 8b24e7989480..4d206962eae3 100644
--- a/package/source/zippackage/ZipPackage.cxx
+++ b/package/source/zippackage/ZipPackage.cxx
@@ -165,6 +165,31 @@ bool ZipPackage::isLocalFile() const
     return comphelper::isFileUrl(m_aURL);
 }
 
+// note: don't check for StorageFormats::ZIP, it breaks signing!
+void ZipPackage::checkZipEntriesWithDD()
+{
+    if (!m_bForceRecovery)
+    {
+        ZipEnumeration entries{m_pZipFile->entries()};
+        while (entries.hasMoreElements())
+        {
+            ZipEntry const& rEntry{*entries.nextElement()};
+            if ((rEntry.nFlag & 0x08) != 0 && rEntry.nMethod == STORED)
+            {
+                uno::Reference<XPropertySet> xStream;
+                getByHierarchicalName(rEntry.sPath) >>= xStream;
+                if (!xStream->getPropertyValue("WasEncrypted").get<bool>())
+                {
+                    SAL_INFO("package", "entry STORED with data descriptor but 
not encrypted: \"" << rEntry.sPath << "\"");
+                    throw ZipIOException(
+                        THROW_WHERE
+                        "entry STORED with data descriptor but not encrypted");
+                }
+            }
+        }
+    }
+}
+
 void ZipPackage::parseManifest()
 {
     if ( m_nFormat != embed::StorageFormats::PACKAGE )
@@ -419,6 +444,8 @@ void ZipPackage::parseManifest()
                     bManifestParsed = true;
                 }
 
+                checkZipEntriesWithDD(); // check before removing entries!
+
                 // now hide the manifest.xml file from user
                 xMetaInfFolder->removeByName( sManifest );
             }
@@ -665,7 +692,10 @@ void ZipPackage::getZipFileContents()
     if ( m_nFormat == embed::StorageFormats::PACKAGE )
         parseManifest();
     else if ( m_nFormat == embed::StorageFormats::OFOPXML )
+    {
         parseContentType();
+        checkZipEntriesWithDD();
+    }
 }
 
 void SAL_CALL ZipPackage::initialize( const uno::Sequence< Any >& aArguments )
commit 011545763de57ea6d059da6d50216a3e92720d89
Author:     Michael Stahl <[email protected]>
AuthorDate: Wed Aug 7 11:35:42 2024 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    tdf#162121 sw: fix tab stop position in columned ToX
    
    There is a SvxTabAdjust::End but this only exists in the definition of
    index entry templates, it is not possible to set this on a tab stop on a
    text node.
    
    So the ToxTabStopTokenHandler converts this into a SvxTabAdjust::Right
    tab stop with a fixed position.
    
    DefaultToxTabStopTokenHandler::CanUseLayoutRectangle() has inverted
    condition but that doesn't matter because there are no layout frames at
    that point.
    (regression from commit 3aca57fb9c7c979d971cae6bb3ad73c6dc412685)
    
    The main problem is that getting the with from the layout rectangle
    never works because there's no layout frame, and the alternative only
    takes into account the page dimensions and not any margins of the
    section, columns, or gap between columns, not to mention that the ToX
    could also be in a table etc.
    
    Refactor this so that the tab stops are set only after all the layout
    frames are created.
    
    An unfixable problem remains in case the ToX has columns of different
    width.
    
    The wrong tab positions are problematic if TabOverMargin is enabled
    since commit 10d753b8aadb50ec4309551b97d4cf2163ea3e3d
    
    Change-Id: Ia712c9bf42b2518e396f1b9e7efd65869ebc5ab4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171585
    Reviewed-by: Michael Stahl <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 0633189fabe85f73062ff2ce67b5f40af7d3f504)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171596
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/sw/inc/ToxTabStopTokenHandler.hxx 
b/sw/inc/ToxTabStopTokenHandler.hxx
index 89a74fe6e65b..29d634c67914 100644
--- a/sw/inc/ToxTabStopTokenHandler.hxx
+++ b/sw/inc/ToxTabStopTokenHandler.hxx
@@ -45,8 +45,11 @@ public:
      *          and to provide the returned SvxTabStop to the attributes of 
the node.
      */
     virtual HandledTabStopToken
-    HandleTabStopToken(const SwFormToken& aToken, const SwTextNode& targetNode,
-            const SwRootFrame *currentLayout) const = 0;
+    HandleTabStopToken(const SwFormToken& aToken, const SwTextNode& targetNode)
+        const = 0;
+
+    virtual auto CalcEndStop(SwTextNode const& rNode,
+            SwRootFrame const* pLayout) const -> tools::Long = 0;
 };
 
 /** The default implementation of ToxTabStopTokenHandler */
@@ -83,8 +86,11 @@ public:
      * method behaves differently when deriving the tab stop position.
      */
     ToxTabStopTokenHandler::HandledTabStopToken
-    HandleTabStopToken(const SwFormToken& aToken, const SwTextNode& targetNode,
-            const SwRootFrame *currentLayout) const override;
+    HandleTabStopToken(const SwFormToken& aToken, const SwTextNode& targetNode)
+        const override;
+
+    auto CalcEndStop(SwTextNode const& rNode,
+            SwRootFrame const* pLayout) const -> tools::Long override;
 
 private:
     /** Test whether the page layout can be obtained by a layout rectangle.
diff --git a/sw/inc/ToxTextGenerator.hxx b/sw/inc/ToxTextGenerator.hxx
index 35eefd0fb7ab..105aa9eb0660 100644
--- a/sw/inc/ToxTextGenerator.hxx
+++ b/sw/inc/ToxTextGenerator.hxx
@@ -26,6 +26,7 @@
 #include "fmtautofmt.hxx"
 
 #include <memory>
+#include <optional>
 #include <vector>
 #include <unordered_map>
 
@@ -67,7 +68,7 @@ public:
      * This method will process the entries in @p entries, starting at @p 
indexOfEntryToProcess and
      * process @p numberOfEntriesToProcess entries.
      */
-    void
+    std::optional<std::pair<SwTextNode *, SvxTabStopItem>>
     GenerateText(SwDoc *doc,
         std::unordered_map<OUString, int> & rMarkURLs,
         const std::vector<std::unique_ptr<SwTOXSortTabBase>>& entries,
diff --git a/sw/qa/core/test_ToxTextGenerator.cxx 
b/sw/qa/core/test_ToxTextGenerator.cxx
index c0b667a27334..bc21e3de19e2 100644
--- a/sw/qa/core/test_ToxTextGenerator.cxx
+++ b/sw/qa/core/test_ToxTextGenerator.cxx
@@ -113,10 +113,15 @@ namespace {
 class MockedToxTabStopTokenHandler : public ToxTabStopTokenHandler {
 public:
     virtual HandledTabStopToken
-    HandleTabStopToken(const SwFormToken&, const SwTextNode&,
-            const SwRootFrame *) const override {
+    HandleTabStopToken(const SwFormToken&, const SwTextNode&) const override
+    {
         return HandledTabStopToken();
     }
+
+    auto CalcEndStop(SwTextNode const&, SwRootFrame const*) const -> 
tools::Long override
+    {
+        return 0;
+    }
 };
 
 class ToxTextGeneratorWithMockedChapterField : public ToxTextGenerator {
diff --git a/sw/qa/extras/uiwriter/uiwriter6.cxx 
b/sw/qa/extras/uiwriter/uiwriter6.cxx
index c9f4f5d5acd4..5a666501d3cb 100644
--- a/sw/qa/extras/uiwriter/uiwriter6.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter6.cxx
@@ -2194,7 +2194,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest6, testTdf116403)
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), aTabs.getLength());
     // This was still 17000, refreshing ToX didn't take borders spacings and 
widths into account
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Page borders must be considered for 
right-aligned tabstop",
-                                 static_cast<sal_Int32>(17000 - 2 * 500 - 2 * 
1),
+                                 static_cast<sal_Int32>(17000 - 2 * 500 - 2 * 
1 - 1),
                                  aTabs[0].Position);
 }
 
diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx
index f9533b37f647..a0ea88ec1936 100644
--- a/sw/source/core/doc/doctxm.cxx
+++ b/sw/source/core/doc/doctxm.cxx
@@ -1067,6 +1067,13 @@ void SwTOXBaseSection::Update(const SfxItemSet* pAttr,
     // Sort the List of all TOC Marks and TOC Sections
     std::vector<SwTextFormatColl*> aCollArr( GetTOXForm().GetFormMax(), 
nullptr );
     std::unordered_map<OUString, int> markURLs;
+    std::vector<std::pair<SwTextNode *, SvxTabStopItem>> tabStops;
+    std::shared_ptr<sw::ToxTabStopTokenHandler> const pTabStopTokenHandler =
+        std::make_shared<sw::DefaultToxTabStopTokenHandler>(
+            pSectNd->GetIndex(), *pDefaultPageDesc, GetTOXForm().IsRelTabPos(),
+            
rDoc.GetDocumentSettingManager().get(DocumentSettingId::TABS_RELATIVE_TO_INDENT)
+                ? 
sw::DefaultToxTabStopTokenHandler::TABSTOPS_RELATIVE_TO_INDENT
+                : 
sw::DefaultToxTabStopTokenHandler::TABSTOPS_RELATIVE_TO_PAGE);
     SwNodeIndex aInsPos( *pFirstEmptyNd, 1 );
     for( size_t nCnt = 0; nCnt < m_aSortArr.size(); ++nCnt )
     {
@@ -1081,7 +1088,6 @@ void SwTOXBaseSection::Update(const SfxItemSet* pAttr,
             aCollArr[ nLvl ] = pColl;
         }
 
-        // Generate: Set dynamic TabStops
         SwTextNode* pTOXNd = rDoc.GetNodes().MakeTextNode( aInsPos.GetNode() , 
pColl );
         m_aSortArr[ nCnt ]->pTOXNd = pTOXNd;
 
@@ -1112,14 +1118,13 @@ void SwTOXBaseSection::Update(const SfxItemSet* pAttr,
         // to method <GenerateText(..)>.
         ::SetProgressState( 0, rDoc.GetDocShell() );
 
-        std::shared_ptr<sw::ToxTabStopTokenHandler> tabStopTokenHandler =
-                std::make_shared<sw::DefaultToxTabStopTokenHandler>(
-                        pSectNd->GetIndex(), *pDefaultPageDesc, 
GetTOXForm().IsRelTabPos(),
-                        
rDoc.GetDocumentSettingManager().get(DocumentSettingId::TABS_RELATIVE_TO_INDENT)
 ?
-                                
sw::DefaultToxTabStopTokenHandler::TABSTOPS_RELATIVE_TO_INDENT :
-                                
sw::DefaultToxTabStopTokenHandler::TABSTOPS_RELATIVE_TO_PAGE);
-        sw::ToxTextGenerator ttgn(GetTOXForm(), tabStopTokenHandler);
-        ttgn.GenerateText(GetFormat()->GetDoc(), markURLs, m_aSortArr, nCnt, 
nRange, pLayout);
+        sw::ToxTextGenerator ttgn(GetTOXForm(), pTabStopTokenHandler);
+        std::optional<std::pair<SwTextNode *, SvxTabStopItem>> const oTabStops 
=
+            ttgn.GenerateText(GetFormat()->GetDoc(), markURLs, m_aSortArr, 
nCnt, nRange, pLayout);
+        if (oTabStops)
+        {
+            tabStops.emplace_back(*oTabStops);
+        }
         nCnt += nRange - 1;
     }
 
@@ -1157,6 +1162,28 @@ void SwTOXBaseSection::Update(const SfxItemSet* pAttr,
     {
         SwFrame::CheckPageDescs( static_cast<SwPageFrame*>(rpLayout->Lower()) 
);
     }
+    // delay setting tab stops until the layout frames exist, in case the ToX
+    // is in columns or other non-body environment; best way is to check uppers
+    // (what if columns have different widths? no idea what to do about 
that...)
+    for (auto & it : tabStops)
+    {
+        std::vector<SvxTabStop> tabs;
+        for (size_t i = 0; i < it.second.Count(); ++i)
+        {
+            tabs.emplace_back(it.second.At(i));
+        }
+        it.second.Remove(0, it.second.Count());
+        for (SvxTabStop & rTab : tabs)
+        {
+            if (rTab.GetAdjustment() == SvxTabAdjust::Right)
+            {
+                assert(rTab.GetTabPos() == 0);
+                rTab.GetTabPos() = 
pTabStopTokenHandler->CalcEndStop(*it.first, pLayout);
+            }
+            it.second.Insert(rTab);
+        }
+        it.first->SetAttr(it.second);
+    }
 
     SetProtect( SwTOXBase::IsProtected() );
 }
diff --git a/sw/source/core/tox/ToxTabStopTokenHandler.cxx 
b/sw/source/core/tox/ToxTabStopTokenHandler.cxx
index b3943d6e5393..2cdcc358c971 100644
--- a/sw/source/core/tox/ToxTabStopTokenHandler.cxx
+++ b/sw/source/core/tox/ToxTabStopTokenHandler.cxx
@@ -18,6 +18,7 @@
 #include <fmtpdsc.hxx>
 #include <frmfmt.hxx>
 #include <frmatr.hxx>
+#include <frmtool.hxx>
 #include <ndtxt.hxx>
 #include <pagedesc.hxx>
 #include <pagefrm.hxx>
@@ -40,7 +41,7 @@ 
DefaultToxTabStopTokenHandler::DefaultToxTabStopTokenHandler(SwNodeOffset indexO
 
 ToxTabStopTokenHandler::HandledTabStopToken
 DefaultToxTabStopTokenHandler::HandleTabStopToken(
-        const SwFormToken& aToken, const SwTextNode& targetNode, const 
SwRootFrame *currentLayout) const
+        const SwFormToken& aToken, const SwTextNode& targetNode) const
 {
     HandledTabStopToken result;
 
@@ -61,29 +62,62 @@ DefaultToxTabStopTokenHandler::HandleTabStopToken(
         return result;
     }
 
-    SwRect aNdRect;
-    if (CanUseLayoutRectangle(targetNode, currentLayout)) {
-        aNdRect = targetNode.FindLayoutRect(true);
-    }
+    // note: this will be filled later by CalcEndStop()
+    result.tabStop = SvxTabStop(0, SvxTabAdjust::Right, cDfltDecimalChar, 
aToken.cTabFillChar);
+    return result;
+}
+
+auto DefaultToxTabStopTokenHandler::CalcEndStop(SwTextNode const& rNode,
+        SwRootFrame const*const pLayout) const -> tools::Long
+{
     tools::Long nRightMargin;
-    if (aNdRect.IsEmpty()) {
-        nRightMargin = CalculatePageMarginFromPageDescription(targetNode);
-    } else {
-        nRightMargin = aNdRect.Width();
+    if (CanUseLayoutRectangle(rNode, pLayout))
+    {
+        // in case it's in a header, any frame should do
+        SwContentFrame const*const pFrame(rNode.getLayoutFrame(pLayout));
+        assert(pFrame); // created in SwTOXBaseSection::Update()
+        SwRectFnSet const fnRect(pFrame->GetUpper());
+        SwRect rect = pFrame->getFramePrintArea();
+        if (fnRect.GetWidth(rect) == 0) // typically it's newly created
+        {
+            if (pFrame->GetUpper()->IsSctFrame())
+            {   // this is set in SwSectionFrame::Init()
+                rect = pFrame->GetUpper()->GetUpper()->getFramePrintArea();
+                assert(fnRect.GetWidth(rect) != 0);
+            }
+            else if (pFrame->GetUpper()->IsColBodyFrame())
+            {
+                SwFrame const*const pColFrame(pFrame->GetUpper()->GetUpper());
+                assert(pColFrame->IsColumnFrame());
+                rect = pColFrame->getFrameArea();
+                // getFramePrintArea() is not valid yet, manually subtract...
+                // (it can have a border too!)
+                SwBorderAttrAccess access(SwFrame::GetCache(), pColFrame);
+                SwBorderAttrs const& rAttrs(*access.Get());
+                auto const nLeft(rAttrs.CalcLeft(pColFrame));
+                auto const nRight(rAttrs.CalcRight(pColFrame));
+                fnRect.SetWidth(rect, fnRect.GetWidth(rect) - nLeft - nRight);
+                assert(fnRect.GetWidth(rect) != 0);
+            }
+            else assert(false);
+        }
+        nRightMargin = fnRect.GetWidth(rect);
+    }
+    else
+    {
+        nRightMargin = CalculatePageMarginFromPageDescription(rNode);
     }
     //#i24363# tab stops relative to indent
     if (mTabStopReferencePolicy == TABSTOPS_RELATIVE_TO_INDENT) {
         // left margin of paragraph style
         SvxFirstLineIndentItem const& rFirstLine(
-            targetNode.GetTextColl()->GetFirstLineIndent());
+            rNode.GetTextColl()->GetFirstLineIndent());
         SvxTextLeftMarginItem const& rTextLeftMargin(
-            targetNode.GetTextColl()->GetTextLeftMargin());
+            rNode.GetTextColl()->GetTextLeftMargin());
         nRightMargin -= rTextLeftMargin.GetLeft(rFirstLine);
         nRightMargin -= rFirstLine.GetTextFirstLineOffset();
     }
-
-    result.tabStop = SvxTabStop(nRightMargin, SvxTabAdjust::Right, 
cDfltDecimalChar, aToken.cTabFillChar);
-    return result;
+    return nRightMargin - 1; // subtract 1 twip to avoid equal for 
TabOverMargin
 }
 
 tools::Long
@@ -113,7 +147,7 @@ DefaultToxTabStopTokenHandler::CanUseLayoutRectangle(const 
SwTextNode& targetNod
             targetNode.SwContentNode::GetAttr(RES_PAGEDESC).GetPageDesc();
 
     if (!pageDescription) {
-        return false;
+        return true;
     }
     const SwFrame* pFrame = targetNode.getLayoutFrame(currentLayout);
     if (!pFrame) {
diff --git a/sw/source/core/tox/ToxTextGenerator.cxx 
b/sw/source/core/tox/ToxTextGenerator.cxx
index 158cc0c72bc7..32d18d1c8087 100644
--- a/sw/source/core/tox/ToxTextGenerator.cxx
+++ b/sw/source/core/tox/ToxTextGenerator.cxx
@@ -165,15 +165,14 @@ ToxTextGenerator::GenerateTextForChapterToken(const 
SwFormToken& chapterToken, c
     return retval;
 }
 
-// Add parameter <_TOXSectNdIdx> and <_pDefaultPageDesc> in order to control,
-// which page description is used, no appropriate one is found.
-void
+std::optional<std::pair<SwTextNode *, SvxTabStopItem>>
 ToxTextGenerator::GenerateText(SwDoc* pDoc,
         std::unordered_map<OUString, int> & rMarkURLs,
         const std::vector<std::unique_ptr<SwTOXSortTabBase>> &entries,
         sal_uInt16 indexOfEntryToProcess, sal_uInt16 numberOfEntriesToProcess,
         SwRootFrame const*const pLayout)
 {
+    std::optional<std::pair<SwTextNode *, SvxTabStopItem>> oRet;
     // pTOXNd is only set at the first mark
     SwTextNode* pTOXNd = 
const_cast<SwTextNode*>(entries.at(indexOfEntryToProcess)->pTOXNd);
     // FIXME this operates directly on the node text
@@ -188,7 +187,7 @@ ToxTextGenerator::GenerateText(SwDoc* pDoc,
         sal_uInt16 nLvl = rBase.GetLevel();
         OSL_ENSURE( nLvl < mToxForm.GetFormMax(), "invalid FORM_LEVEL");
 
-        SvxTabStopItem aTStops( 0, 0, SvxTabAdjust::Default, 
RES_PARATR_TABSTOP );
+        oRet.emplace(pTOXNd, SvxTabStopItem(0, 0, SvxTabAdjust::Default, 
RES_PARATR_TABSTOP));
         // create an enumerator
         // #i21237#
         SwFormTokens aPattern = mToxForm.GetPattern(nLvl);
@@ -228,9 +227,9 @@ ToxTextGenerator::GenerateText(SwDoc* pDoc,
 
             case TOKEN_TAB_STOP: {
                 ToxTabStopTokenHandler::HandledTabStopToken htst =
-                        mTabStopTokenHandler->HandleTabStopToken(aToken, 
*pTOXNd, pDoc->getIDocumentLayoutAccess().GetCurrentLayout());
+                    mTabStopTokenHandler->HandleTabStopToken(aToken, *pTOXNd);
                 rText += htst.text;
-                aTStops.Insert(htst.tabStop);
+                oRet->second.Insert(htst.tabStop);
                 break;
             }
 
@@ -304,10 +303,9 @@ ToxTextGenerator::GenerateText(SwDoc* pDoc,
                 }
             }
         }
-
-        pTOXNd->SetAttr( aTStops );
     }
     mLinkProcessor->InsertLinkAttributes(*pTOXNd);
+    return oRet;
 }
 
 /*static*/ std::shared_ptr<SfxItemSet>
commit fab6f878aed72c250eaea474cf12befc4ff29cc3
Author:     Patrick Luby <[email protected]>
AuthorDate: Wed Aug 7 19:51:57 2024 -0400
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    tdf#140061 keep SwCharFormat instances alive while SwDoc is alive
    
    Change-Id: I22a7fc1e109e641932f348e9ac3b85f11ce46c9d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171608
    Reviewed-by: Patrick Luby <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 7b7347bb2112d89b2ad463a464cabe0c8926e0d0)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171677
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index b5028561fb66..17f0ce4ea36f 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -248,6 +248,7 @@ class SW_DLLPUBLIC SwDoc final
 
     std::unique_ptr<sw::FrameFormats<SwFrameFormat*>>    mpFrameFormatTable;   
 //< Format table
     std::unique_ptr<SwCharFormats>     mpCharFormatTable;
+    std::unique_ptr<SwCharFormats>     mpCharFormatDeletionTable;
     std::unique_ptr<sw::FrameFormats<sw::SpzFrameFormat*>>    
mpSpzFrameFormatTable;
     std::unique_ptr<SwSectionFormats>  mpSectionFormatTable;
     std::unique_ptr<sw::TableFrameFormats>    mpTableFrameFormatTable; //< For 
tables
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 3390a506052c..755ee2541fde 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -691,7 +691,8 @@ void SwDoc::DelCharFormat(size_t nFormat, bool bBroadcast)
             std::make_unique<SwUndoCharFormatDelete>(pDel, *this));
     }
 
-    delete (*mpCharFormatTable)[nFormat];
+    // tdf#140061 keep SwCharFormat instances alive while SwDoc is alive
+    mpCharFormatDeletionTable->insert(pDel);
     mpCharFormatTable->erase(mpCharFormatTable->begin() + nFormat);
 
     getIDocumentState().SetModified();
diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
index bb0cd32d2c19..1a1684ae46b1 100644
--- a/sw/source/core/doc/docnew.cxx
+++ b/sw/source/core/doc/docnew.cxx
@@ -234,6 +234,7 @@ SwDoc::SwDoc()
     mpDfltGrfFormatColl( new SwGrfFormatColl( GetAttrPool(), 
"Graphikformatvorlage" ) ),
     mpFrameFormatTable( new sw::FrameFormats<SwFrameFormat*>() ),
     mpCharFormatTable( new SwCharFormats ),
+    mpCharFormatDeletionTable( new SwCharFormats ),
     mpSpzFrameFormatTable( new sw::FrameFormats<sw::SpzFrameFormat*>() ),
     mpSectionFormatTable( new SwSectionFormats ),
     mpTableFrameFormatTable( new sw::TableFrameFormats() ),
@@ -592,6 +593,10 @@ SwDoc::~SwDoc()
     mpStyleAccess.reset();
 
     mpCharFormatTable.reset();
+    // tdf#140061 keep SwCharFormat instances alive while SwDoc is alive
+    if (mpCharFormatDeletionTable)
+        mpCharFormatDeletionTable->DeleteAndDestroyAll(/*keepDefault*/false);
+    mpCharFormatDeletionTable.reset();
     mpSectionFormatTable.reset();
     mpTableFrameFormatTable.reset();
     mpDfltTextFormatColl.reset();
@@ -746,6 +751,7 @@ void SwDoc::ClearDoc()
     mpTextFormatCollTable->DeleteAndDestroy(1, mpTextFormatCollTable->size());
     mpGrfFormatCollTable->DeleteAndDestroy(1, mpGrfFormatCollTable->size());
     mpCharFormatTable->DeleteAndDestroyAll(/*keepDefault*/true);
+    mpCharFormatDeletionTable->DeleteAndDestroyAll(/*keepDefault*/false);
 
     if( getIDocumentLayoutAccess().GetCurrentViewShell() )
     {
commit babcaf0e6b8dfefe9058502324ccff1f23afe309
Author:     Rene Engelhard <[email protected]>
AuthorDate: Thu Aug 8 17:36:14 2024 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    fix build on armhf with gcc 14
    
    /uno2cpp.cxx: In function ‘void {anonymous}::callVirtualMethod(void*, 
sal_Int32, void*, typelib_TypeDescriptionReference*, sal_uInt32*, sal_uInt32, 
sal_uInt32*, sal_uInt32, double*)’:
    /<<PKGBUILDDIR>>/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx:278:5: 
error: ‘asm’ operand has impossible constraints or there are not enough 
registers
      278 |     __asm__ __volatile__ (
          |     ^~~~~~~
    make[2]: *** [/<<PKGBUILDDIR>>/solenv/gbuild/LinkTarget.mk:338: 
/<<PKGBUILDDIR>>/workdir/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.o]
 Error 1
    
    Just removing them makes it work, they are mentioned before anyway, too
    (thanks Caolan)
    
    Change-Id: Ibb9118b268a587ebdcfce343e2ee2605ac979915
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171650
    Tested-by: Caolán McNamara <[email protected]>
    Reviewed-by: Caolán McNamara <[email protected]>
    (cherry picked from commit d9e818f3d706145aba95587d685cbcfdeb797edb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171668
    Tested-by: Jenkins

diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx 
b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
index 001384e005fc..e08ec4ad8f85 100644
--- a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
@@ -298,7 +298,7 @@ void callVirtualMethod(
         "mov %[r1], r1
        "
         : [r0]"=r" (r0), [r1]"=r" (r1)
         : [pmethod]"m" (pMethod), [pgpr]"m" (pGPR), [pfpr]"m" (pFPR)
-        : "r0", "r1", "r2", "r3", "r4", "r5");
+        : "r2", "r3", "r4", "r5");
 
     MapReturn(r0, r1, pReturnType, static_cast<sal_uInt32*>(pRegisterReturn));
 }
commit 1e87d4fc9973a0b272e2ad3699da541e5b1e8b28
Author:     Xisco Fauli <[email protected]>
AuthorDate: Tue Jul 30 14:05:32 2024 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    tdf#156689: don't initialize the last columns from the default attributes
    
    Regression from dd8e061406fac581d399da088c7f0187278035dc
    "tdf#153437 sc: fix broken formatting without performance regression"
    
    Change-Id: Ifacc48db93f28ec7b539af640e95eff8ad5ec535
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171242
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit e552de24b646f8dc59551203edd901dad6af0ff5)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171200
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 3f9acb979163..2665ba3cec52 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -227,6 +227,80 @@ CPPUNIT_TEST_FIXTURE(Test, testSharedStringPool)
     m_pDoc->DeleteTab(0);
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testBackgroundColorDeleteColumn)
+{
+    m_pDoc->InsertTab(0, u"Table1"_ustr);
+
+    ScMarkData aMark(m_pDoc->GetSheetLimits());
+
+    // Set Values to B1, C2, D5
+    m_pDoc->SetValue(ScAddress(1, 0, 0), 1.0); // B1
+    m_pDoc->SetValue(ScAddress(2, 1, 0), 2.0); // C2
+    m_pDoc->SetValue(ScAddress(3, 4, 0), 3.0); // D5
+
+    // Add patterns
+    ScPatternAttr aCellBlueColor(m_pDoc->GetPool());
+    aCellBlueColor.GetItemSet().Put(SvxBrushItem(COL_BLUE, ATTR_BACKGROUND));
+    m_pDoc->ApplyPatternAreaTab(3, 0, 3, m_pDoc->MaxRow(), 0, aCellBlueColor);
+
+    // Delete column 10
+    m_pDoc->DeleteCol(ScRange(9,0,0,9,m_pDoc->MaxRow(),0));
+
+    // Check patterns
+    const SfxPoolItem* pItem = nullptr;
+    m_pDoc->GetPattern(ScAddress(3, 1000, 
0))->GetItemSet().HasItem(ATTR_BACKGROUND, &pItem);
+    CPPUNIT_ASSERT(pItem);
+    CPPUNIT_ASSERT_EQUAL(COL_BLUE, static_cast<const 
SvxBrushItem*>(pItem)->GetColor());
+
+    // Delete column 2
+    m_pDoc->DeleteCol(ScRange(1,0,0,1,m_pDoc->MaxRow(),0));
+
+    // Check patterns
+    pItem = nullptr;
+    m_pDoc->GetPattern(ScAddress(2, 1000, 
0))->GetItemSet().HasItem(ATTR_BACKGROUND, &pItem);
+    CPPUNIT_ASSERT(pItem);
+    CPPUNIT_ASSERT_EQUAL(COL_BLUE, static_cast<const 
SvxBrushItem*>(pItem)->GetColor());
+
+    m_pDoc->DeleteTab(0);
+}
+
+CPPUNIT_TEST_FIXTURE(Test, testBackgroundColorDeleteRow)
+{
+    m_pDoc->InsertTab(0, u"Table1"_ustr);
+
+    ScMarkData aMark(m_pDoc->GetSheetLimits());
+
+    // Set Values to B1, C2, D5
+    m_pDoc->SetValue(ScAddress(1, 0, 0), 1.0); // B1
+    m_pDoc->SetValue(ScAddress(2, 1, 0), 2.0); // C2
+    m_pDoc->SetValue(ScAddress(3, 4, 0), 3.0); // D5
+
+    // Add patterns
+    ScPatternAttr aCellBlueColor(m_pDoc->GetPool());
+    aCellBlueColor.GetItemSet().Put(SvxBrushItem(COL_BLUE, ATTR_BACKGROUND));
+    m_pDoc->ApplyPatternAreaTab(0, 3, m_pDoc->MaxCol(), 3, 0, aCellBlueColor);
+
+    // Delete row 10
+    m_pDoc->DeleteRow(ScRange(0,9,0,m_pDoc->MaxCol(),9,0));
+
+    // Check patterns
+    const SfxPoolItem* pItem = nullptr;
+    m_pDoc->GetPattern(ScAddress(1000, 3, 
0))->GetItemSet().HasItem(ATTR_BACKGROUND, &pItem);
+    CPPUNIT_ASSERT(pItem);
+    CPPUNIT_ASSERT_EQUAL(COL_BLUE, static_cast<const 
SvxBrushItem*>(pItem)->GetColor());
+
+    // Delete row 2
+    m_pDoc->DeleteRow(ScRange(0,1,0,m_pDoc->MaxCol(),1,0));
+
+    // Check patterns
+    pItem = nullptr;
+    m_pDoc->GetPattern(ScAddress(1000, 2, 
0))->GetItemSet().HasItem(ATTR_BACKGROUND, &pItem);
+    CPPUNIT_ASSERT(pItem);
+    CPPUNIT_ASSERT_EQUAL(COL_BLUE, static_cast<const 
SvxBrushItem*>(pItem)->GetColor());
+
+    m_pDoc->DeleteTab(0);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testSharedStringPoolUndoDoc)
 {
     struct
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index 7f2933529a8a..db31b75e3bf9 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -400,9 +400,6 @@ void ScTable::DeleteCol(
     {
         for (SCCOL nCol = nStartCol + nSize; nCol < aCol.size(); ++nCol)
             aCol[nCol].SwapCol(aCol[nCol - nSize]);
-        // When delete column(s), initialize the last columns from the default 
attributes
-        for (SCCOL nCol = aCol.size() < static_cast<SCCOL>(nSize) ? 0 : 
aCol.size() - nSize; nCol < aCol.size(); ++nCol)
-            aCol[nCol].Init(nCol, aCol[nCol].GetTab(), rDocument, false);
     }
     else
     {
commit 6873dfaba18388550b17930dfb72c9fd1a6299b9
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Thu Aug 8 22:54:24 2024 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Fri Aug 23 11:17:13 2024 +0200

    update credits
    
    Change-Id: I5619e8dcc9670ea09f6f27bc15a5b248e83378d9
    (cherry picked from commit 8632088f95050cea4b44b519d04466bb7a98ebac)

diff --git a/readlicense_oo/license/CREDITS.fodt 
b/readlicense_oo/license/CREDITS.fodt
index 2b36596b6033..6b51bbaca007 100644
--- a/readlicense_oo/license/CREDITS.fodt
+++ b/readlicense_oo/license/CREDITS.fodt
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <office:document xmlns:css3t="http://www.w3.org/TR/css3-text/"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xforms="http://www.w3.org/2002/xforms"; 
xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
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:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:c
 alcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext: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:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form: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:officeooo="http://openoffice.org/2009/office"; 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:
 meta:1.0" 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><dc:title>Credits » 
LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits
 for the LibreOffice 
development/coding.</dc:description><meta:generator>LibreOffice/24.2.4.2$Linux_X86_64
 
LibreOffice_project/51a6219feb6075d9a4c46691dcfe0cd9c4fff3c2</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic
 meta:table-count="5" meta:image-count="1" meta:object-count="0" 
meta:page-count="2" meta:paragraph-count="4949" meta:word-count="18519" 
meta:character-count="134125" 
meta:non-whitespace-character-count="117661"/><meta:user-defined 
meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
+ <office:meta><dc:title>Credits » 
LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits
 for the LibreOffice 
development/coding.</dc:description><meta:generator>LibreOffice/24.2.4.2$Linux_X86_64
 
LibreOffice_project/51a6219feb6075d9a4c46691dcfe0cd9c4fff3c2</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic
 meta:table-count="5" meta:image-count="1" meta:object-count="0" 
meta:page-count="2" meta:paragraph-count="4959" meta:word-count="18558" 
meta:character-count="134395" 
meta:non-whitespace-character-count="117897"/><meta:user-defined 
meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
  <office:settings>
   <config:config-item-set config:name="ooo:view-settings">
-   <config:config-item config:name="ViewAreaTop" 
config:type="long">635</config:config-item>
+   <config:config-item config:name="ViewAreaTop" 
config:type="long">2588</config:config-item>
    <config:config-item config:name="ViewAreaLeft" 
config:type="long">501</config:config-item>
-   <config:config-item config:name="ViewAreaWidth" 
config:type="long">55167</config:config-item>
-   <config:config-item config:name="ViewAreaHeight" 
config:type="long">26963</config:config-item>
+   <config:config-item config:name="ViewAreaWidth" 
config:type="long">38313</config:config-item>
+   <config:config-item config:name="ViewAreaHeight" 
config:type="long">26090</config:config-item>
    <config:config-item config:name="ShowRedlineChanges" 
config:type="boolean">true</config:config-item>
    <config:config-item config:name="InBrowseMode" 
config:type="boolean">true</config:config-item>
    <config:config-item-map-indexed config:name="Views">
@@ -16,9 +16,9 @@
      <config:config-item config:name="ViewLeft" 
config:type="long">3623</config:config-item>
      <config:config-item config:name="ViewTop" 
config:type="long">3434</config:config-item>
      <config:config-item config:name="VisibleLeft" 
config:type="long">501</config:config-item>
-     <config:config-item config:name="VisibleTop" 
config:type="long">635</config:config-item>
-     <config:config-item config:name="VisibleRight" 
config:type="long">55667</config:config-item>
-     <config:config-item config:name="VisibleBottom" 
config:type="long">27596</config:config-item>
+     <config:config-item config:name="VisibleTop" 
config:type="long">2588</config:config-item>
+     <config:config-item config:name="VisibleRight" 
config:type="long">38813</config:config-item>
+     <config:config-item config:name="VisibleBottom" 
config:type="long">28676</config:config-item>
      <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutColumns" 
config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutBookMode" 
config:type="boolean">false</config:config-item>
@@ -147,7 +147,7 @@
    <config:config-item config:name="UseOldPrinterMetrics" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="RedlineProtectionKey" 
config:type="base64Binary"/>
    <config:config-item config:name="TabsRelativeToIndent" 
config:type="boolean">true</config:config-item>
-   <config:config-item config:name="Rsid" 
config:type="int">13654134</config:config-item>
+   <config:config-item config:name="Rsid" 
config:type="int">13750073</config:config-item>
    <config:config-item config:name="UpdateFromTemplate" 
config:type="boolean">true</config:config-item>
    <config:config-item config:name="ProtectForm" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="MsWordCompMinLineHeightByFly" 
config:type="boolean">false</config:config-item>
@@ -177,7 +177,7 @@
  <office:styles>
   <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" draw:start-line-spacing-horizontal="0.283cm" 
draw:start-line-spacing-vertical="0.283cm" 
draw:end-line-spacing-horizontal="0.283cm" 
draw:end-line-spacing-vertical="0.283cm" style:writing-mode="lr-tb" 
style:flow-with-text="true"/>
-   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" loext:tab-stop-distance="0cm" 
style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" loext:tab-stop-distance="0cm" 
style:font-independent-line-spacing="false">
     <style:tab-stops/>
    </style:paragraph-properties>
    <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" 
fo:language="hu" fo:country="HU" style:letter-kerning="true" 
style:font-name-asian="SimSun" style:font-size-asian="12pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Mangal1" style:font-size-complex="12pt" 
style:language-complex="hi" style:country-complex="IN"/>
@@ -371,20 +371,26 @@
  </office:styles>
  <office:automatic-styles>
   <style:style style:name="Tabelle1" style:family="table">
-   <style:table-properties style:width="25.963cm" table:align="left"/>
+   <style:table-properties style:width="26.28cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle1.A" style:family="table-column">
-   <style:table-column-properties style:column-width="6.828cm"/>
+   <style:table-column-properties style:column-width="6.669cm"/>
   </style:style>
   <style:style style:name="Tabelle1.B" style:family="table-column">
-   <style:table-column-properties style:column-width="6.219cm"/>
+   <style:table-column-properties style:column-width="6.696cm"/>
   </style:style>
   <style:style style:name="Tabelle1.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.696cm"/>
+   <style:table-column-properties style:column-width="6.034cm"/>
+  </style:style>
+  <style:style style:name="Tabelle1.D" style:family="table-column">
+   <style:table-column-properties style:column-width="6.881cm"/>
   </style:style>
   <style:style style:name="Tabelle1.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
   </style:style>
+  <style:style style:name="Tabelle1.B463" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
+  </style:style>
   <style:style style:name="Tabelle2" style:family="table">
    <style:table-properties style:width="18.078cm" table:align="left"/>
   </style:style>
@@ -449,21 +455,21 @@
    <style:table-properties style:width="32.683cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle5.A" style:family="table-column">
-   <style:table-column-properties style:column-width="6.722cm"/>
+   <style:table-column-properties style:column-width="11.723cm"/>
   </style:style>
   <style:style style:name="Tabelle5.B" style:family="table-column">
-   <style:table-column-properties style:column-width="6.219cm"/>
+   <style:table-column-properties style:column-width="7.966cm"/>
   </style:style>
   <style:style style:name="Tabelle5.C" style:family="table-column">
-   <style:table-column-properties style:column-width="11.696cm"/>
+   <style:table-column-properties style:column-width="6.696cm"/>
   </style:style>
   <style:style style:name="Tabelle5.D" style:family="table-column">
-   <style:table-column-properties style:column-width="8.045cm"/>
+   <style:table-column-properties style:column-width="6.299cm"/>
   </style:style>
   <style:style style:name="Tabelle5.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle5.C730" style:family="table-cell">
+  <style:style style:name="Tabelle5.D731" style:family="table-cell">
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="P1" style:family="paragraph" 
style:parent-style-name="Table_20_Contents">
@@ -1161,20 +1167,20 @@
    </draw:frame>
    <text:section text:style-name="Sect1" text:name="BgContainer">
     <text:p text:style-name="P32">Credits</text:p>
-    <text:p text:style-name="Text_20_body">1974 individuals contributed to 
OpenOffice.org (and whose contributions were imported into LibreOffice) or 
LibreOffice until 2024-07-10 13:20:35.</text:p>
+    <text:p text:style-name="Text_20_body">1979 individuals contributed to 
OpenOffice.org (and whose contributions were imported into LibreOffice) or 
LibreOffice until 2024-08-08 18:06:26.</text:p>
     <text:p text:style-name="Text_20_body"><text:span 
text:style-name="T1">*</text:span> marks developers whose first contributions 
happened after 2010-09-28.</text:p>
     <text:h text:style-name="Heading_20_2" text:outline-level="2">Developers 
committing code since 2010-09-28</text:h>
     <table:table table:name="Tabelle1" table:style-name="Tabelle1">
      <table:table-column table:style-name="Tabelle1.A"/>
      <table:table-column table:style-name="Tabelle1.B"/>
      <table:table-column table:style-name="Tabelle1.C"/>
-     <table:table-column table:style-name="Tabelle1.B"/>
+     <table:table-column table:style-name="Tabelle1.D"/>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ruediger 
Timm<text:line-break/>Commits: 82464<text:line-break/>Joined: 
2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Caolán 
McNamara<text:line-break/>Commits: 35643<text:line-break/>Joined: 
2000-10-10</text:p>
+       <text:p text:style-name="Table_20_Contents">Caolán 
McNamara<text:line-break/>Commits: 35763<text:line-break/>Joined: 
2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Kurt 
Zenker<text:line-break/>Commits: 31752<text:line-break/>Joined: 
2000-09-25</text:p>
@@ -1191,15 +1197,15 @@
        <text:p text:style-name="Table_20_Contents">Vladimir 
Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 
2000-12-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Stephan 
Bergmann<text:line-break/>Commits: 21231<text:line-break/>Joined: 
2000-10-04</text:p>
+       <text:p text:style-name="Table_20_Contents">Stephan 
Bergmann<text:line-break/>Commits: 21271<text:line-break/>Joined: 
2000-10-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 
18998<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-12-12</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 
19083<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-12-12</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Miklos 
Vajna<text:line-break/>Commits: 10002<text:line-break/>Joined: 
2010-07-29</text:p>
+       <text:p text:style-name="Table_20_Contents">Miklos 
Vajna<text:line-break/>Commits: 10023<text:line-break/>Joined: 
2010-07-29</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ivo 
Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 
2002-09-09</text:p>
@@ -1208,7 +1214,7 @@
        <text:p text:style-name="Table_20_Contents">Tor 
Lillqvist<text:line-break/>Commits: 9160<text:line-break/>Joined: 
2010-03-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Michael 
Stahl<text:line-break/>Commits: 8522<text:line-break/>Joined: 
2008-06-16</text:p>
+       <text:p text:style-name="Table_20_Contents">Michael 
Stahl<text:line-break/>Commits: 8538<text:line-break/>Joined: 
2008-06-16</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1216,7 +1222,7 @@
        <text:p text:style-name="Table_20_Contents">Kohei 
Yoshida<text:line-break/>Commits: 5571<text:line-break/>Joined: 
2009-06-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Eike 
Rathke<text:line-break/>Commits: 5359<text:line-break/>Joined: 
2000-10-11</text:p>
+       <text:p text:style-name="Table_20_Contents">Eike 
Rathke<text:line-break/>Commits: 5367<text:line-break/>Joined: 
2000-10-11</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Markus Mohrhard<text:line-break/>Commits: 
5203<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-03-17</text:span></text:p>
@@ -1227,30 +1233,30 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 
4090<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-10-30</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 
4143<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-10-30</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 
3903<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-04</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 
3913<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-04</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">David 
Tardon<text:line-break/>Commits: 3648<text:line-break/>Joined: 
2009-11-12</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 
3533<text:line-break/>Joined: <text:span 
text:style-name="T2">2012-06-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 
3537<text:line-break/>Joined: <text:span 
text:style-name="T2">2012-06-02</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 
3480<text:line-break/>Joined: <text:span 
text:style-name="T2">2015-04-26</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 
3535<text:line-break/>Joined: <text:span 
text:style-name="T2">2015-04-26</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Luboš 
Luňák<text:line-break/>Commits: 3201<text:line-break/>Joined: 
2010-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Hans-Joachim 
Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 
2000-09-19</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 
3031<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-02-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 
2986<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-02-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Hans-Joachim 
Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 
2000-09-19</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1261,7 +1267,7 @@
        <text:p text:style-name="Table_20_Contents">Jan 
Holesovsky<text:line-break/>Commits: 2672<text:line-break/>Joined: 
2009-06-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Oliver 
Specht<text:line-break/>Commits: 2605<text:line-break/>Joined: 
2000-09-21</text:p>
+       <text:p text:style-name="Table_20_Contents">Oliver 
Specht<text:line-break/>Commits: 2615<text:line-break/>Joined: 
2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Mathias 
Bauer<text:line-break/>Commits: 2580<text:line-break/>Joined: 
2000-09-20</text:p>
@@ -1269,10 +1275,10 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Michael 
Meeks<text:line-break/>Commits: 2515<text:line-break/>Joined: 
2004-08-05</text:p>
+       <text:p text:style-name="Table_20_Contents">Michael 
Meeks<text:line-break/>Commits: 2520<text:line-break/>Joined: 
2004-08-05</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Bjoern 
Michaelsen<text:line-break/>Commits: 2493<text:line-break/>Joined: 
2009-10-14</text:p>
+       <text:p text:style-name="Table_20_Contents">Bjoern 
Michaelsen<text:line-break/>Commits: 2500<text:line-break/>Joined: 
2009-10-14</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Norbert Thiebaud<text:line-break/>Commits: 
2176<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-09-29</text:span></text:p>
@@ -1283,7 +1289,7 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 
2142<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-10-25</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 
2156<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-10-25</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Philipp Lohmann 
[pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p>
@@ -1297,10 +1303,10 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Matúš Kukan<text:line-break/>Commits: 
1712<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-04-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Armin Le Grand 
(Collabora)<text:line-break/>Commits: 1725<text:line-break/>Joined: 
2000-09-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Armin Le Grand 
(allotropia)<text:line-break/>Commits: 1705<text:line-break/>Joined: 
2000-09-25</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Matúš Kukan<text:line-break/>Commits: 
1712<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-04-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 
1486<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-08</text:span></text:p>
@@ -1317,29 +1323,29 @@
        <text:p text:style-name="Table_20_Contents">Thorsten 
Behrens<text:line-break/>Commits: 1442<text:line-break/>Joined: 
2001-04-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Fridrich 
Štrba<text:line-break/>Commits: 1339<text:line-break/>Joined: 
2007-02-22</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Michael Weghorn<text:line-break/>Commits: 
1362<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-09-10</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 
1326<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-06-08</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Fridrich 
Štrba<text:line-break/>Commits: 1340<text:line-break/>Joined: 
2007-02-22</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Thomas Lange 
[tl]<text:line-break/>Commits: 1310<text:line-break/>Joined: 2000-09-22</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 
1332<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-06-08</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Niklas 
Nebel<text:line-break/>Commits: 1296<text:line-break/>Joined: 
2000-09-19</text:p>
+       <text:p text:style-name="Table_20_Contents">Thomas Lange 
[tl]<text:line-break/>Commits: 1310<text:line-break/>Joined: 2000-09-22</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Michael Weghorn<text:line-break/>Commits: 
1271<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-09-10</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Niklas 
Nebel<text:line-break/>Commits: 1296<text:line-break/>Joined: 
2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Christian 
Lohmaier<text:line-break/>Commits: 1268<text:line-break/>Joined: 
2008-06-01</text:p>
+       <text:p text:style-name="Table_20_Contents">Christian 
Lohmaier<text:line-break/>Commits: 1280<text:line-break/>Joined: 
2008-06-01</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 
1261<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-03-22</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 
1262<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-03-22</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Jan-Marek Glogowski<text:line-break/>Commits: 
1232<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-11-14</text:span></text:p>
@@ -1457,10 +1463,10 @@
        <text:p text:style-name="Table_20_Contents">Ingrid 
Halama<text:line-break/>Commits: 639<text:line-break/>Joined: 
2001-01-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 
626<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-09-30</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Jim Raykowski<text:line-break/>Commits: 
630<text:line-break/>Joined: <text:span 
text:style-name="T2">2017-04-16</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Jim Raykowski<text:line-break/>Commits: 
621<text:line-break/>Joined: <text:span 
text:style-name="T2">2017-04-16</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 
626<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-09-30</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1474,7 +1480,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 
603<text:line-break/>Joined: <text:span 
text:style-name="T2">2018-04-21</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Rene 
Engelhard<text:line-break/>Commits: 592<text:line-break/>Joined: 
2005-03-14</text:p>
+       <text:p text:style-name="Table_20_Contents">Rene 
Engelhard<text:line-break/>Commits: 593<text:line-break/>Joined: 
2005-03-14</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1482,7 +1488,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Jochen Nitschke<text:line-break/>Commits: 
587<text:line-break/>Joined: <text:span 
text:style-name="T2">2016-02-02</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Adolfo Jayme 
Barrientos<text:line-break/>Commits: 583<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-06-21</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Adolfo Jayme 
Barrientos<text:line-break/>Commits: 586<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-06-21</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Yousuf Philips<text:line-break/>Commits: 
569<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-09-21</text:span></text:p>
@@ -1496,7 +1502,7 @@
        <text:p text:style-name="Table_20_Contents">Jürgen 
Schmidt<text:line-break/>Commits: 512<text:line-break/>Joined: 
2000-10-09</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Heiko Tietze<text:line-break/>Commits: 
501<text:line-break/>Joined: <text:span 
text:style-name="T2">2016-10-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Heiko Tietze<text:line-break/>Commits: 
509<text:line-break/>Joined: <text:span 
text:style-name="T2">2016-10-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Peter Foley<text:line-break/>Commits: 
489<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-09-04</text:span></text:p>
@@ -1516,7 +1522,7 @@
        <text:p text:style-name="Table_20_Contents">Dirk 
Voelzke<text:line-break/>Commits: 392<text:line-break/>Joined: 
2000-11-27</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Henry Castro<text:line-break/>Commits: 
390<text:line-break/>Joined: <text:span 
text:style-name="T2">2015-01-09</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Henry Castro<text:line-break/>Commits: 
391<text:line-break/>Joined: <text:span 
text:style-name="T2">2015-01-09</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1524,13 +1530,13 @@
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Laurent BP<text:line-break/>Commits: 
389<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-08-31</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Ivan Timofeev<text:line-break/>Commits: 
380<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-09-16</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Jean-Pierre Ledure<text:line-break/>Commits: 
382<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-10-12</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Jean-Pierre Ledure<text:line-break/>Commits: 
380<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-10-12</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Rafael Lima<text:line-break/>Commits: 
381<text:line-break/>Joined: <text:span 
text:style-name="T2">2020-11-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Rafael Lima<text:line-break/>Commits: 
373<text:line-break/>Joined: <text:span 
text:style-name="T2">2020-11-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Ivan Timofeev<text:line-break/>Commits: 
380<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-09-16</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1555,7 +1561,7 @@
        <text:p text:style-name="Table_20_Contents">Matthias Huetsch 
[mhu]<text:line-break/>Commits: 360<text:line-break/>Joined: 2000-09-28</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Arnaud VERSINI<text:line-break/>Commits: 
359<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-10-05</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Arnaud VERSINI<text:line-break/>Commits: 
360<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-10-05</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Patrick 
Luby<text:line-break/>Commits: 335<text:line-break/>Joined: 2000-09-21</text:p>
@@ -1566,7 +1572,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>David Ostrovsky<text:line-break/>Commits: 
334<text:line-break/>Joined: <text:span 
text:style-name="T2">2012-04-01</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Stanislav Horacek<text:line-break/>Commits: 
317<text:line-break/>Joined: <text:span 
text:style-name="T2">2012-12-09</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Stanislav Horacek<text:line-break/>Commits: 
319<text:line-break/>Joined: <text:span 
text:style-name="T2">2012-12-09</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Radek 
Doulik<text:line-break/>Commits: 305<text:line-break/>Joined: 
2010-05-03</text:p>
@@ -1580,35 +1586,35 @@
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Chr. Rossmanith<text:line-break/>Commits: 
300<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-01-03</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>August Sodora<text:line-break/>Commits: 
285<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-10-18</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Andreas Heinisch<text:line-break/>Commits: 
286<text:line-break/>Joined: <text:span 
text:style-name="T2">2019-05-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Andreas Heinisch<text:line-break/>Commits: 
285<text:line-break/>Joined: <text:span 
text:style-name="T2">2019-05-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>August Sodora<text:line-break/>Commits: 
285<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-10-18</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Regina Henschel<text:line-break/>Commits: 
281<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-04</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Regina Henschel<text:line-break/>Commits: 
282<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-04</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Siqi Liu<text:line-break/>Commits: 
277<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-04-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 
281<text:line-break/>Joined: <text:span 
text:style-name="T2">2020-02-03</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Pierre-André 
Jacquod<text:line-break/>Commits: 276<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Siqi Liu<text:line-break/>Commits: 
277<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-04-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Vasily Melenchuk<text:line-break/>Commits: 
274<text:line-break/>Joined: <text:span 
text:style-name="T2">2015-01-27</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Pierre-André 
Jacquod<text:line-break/>Commits: 276<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Bartosz 
Kosiorek<text:line-break/>Commits: 264<text:line-break/>Joined: 
2010-09-17</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Vasily Melenchuk<text:line-break/>Commits: 
275<text:line-break/>Joined: <text:span 
text:style-name="T2">2015-01-27</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Lars 
Langhans<text:line-break/>Commits: 260<text:line-break/>Joined: 
2000-09-22</text:p>
+       <text:p text:style-name="Table_20_Contents">Bartosz 
Kosiorek<text:line-break/>Commits: 264<text:line-break/>Joined: 
2010-09-17</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 
259<text:line-break/>Joined: <text:span 
text:style-name="T2">2020-02-03</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Lars 
Langhans<text:line-break/>Commits: 260<text:line-break/>Joined: 
2000-09-22</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Muthu 
Subramanian<text:line-break/>Commits: 250<text:line-break/>Joined: 
2010-08-25</text:p>
@@ -1618,29 +1624,29 @@
       </table:table-cell>
      </table:table-row>
      <table:table-row>
+      <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Ilmari Lauhakangas<text:line-break/>Commits: 
219<text:line-break/>Joined: <text:span 
text:style-name="T2">2017-04-15</text:span></text:p>
+      </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Winfried Donkers<text:line-break/>Commits: 
217<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-11-11</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Balazs Varga<text:line-break/>Commits: 
212<text:line-break/>Joined: <text:span 
text:style-name="T2">2022-06-29</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Balazs Varga<text:line-break/>Commits: 
215<text:line-break/>Joined: <text:span 
text:style-name="T2">2022-06-29</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Dennis Francis<text:line-break/>Commits: 
206<text:line-break/>Joined: <text:span 
text:style-name="T2">2018-11-15</text:span></text:p>
       </table:table-cell>
+     </table:table-row>
+     <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Tamas Bunth<text:line-break/>Commits: 
203<text:line-break/>Joined: <text:span 
text:style-name="T2">2016-03-08</text:span></text:p>
       </table:table-cell>
-     </table:table-row>
-     <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ingo 
Schmidt<text:line-break/>Commits: 202<text:line-break/>Joined: 
2004-02-05</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Arkadiy Illarionov<text:line-break/>Commits: 
201<text:line-break/>Joined: <text:span 
text:style-name="T2">2017-01-15</text:span></text:p>
       </table:table-cell>
-      <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Ilmari Lauhakangas<text:line-break/>Commits: 
200<text:line-break/>Joined: <text:span 
text:style-name="T2">2017-04-15</text:span></text:p>
-      </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Jacobo Aragunde 
Pérez<text:line-break/>Commits: 192<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-09-25</text:span></text:p>
       </table:table-cell>
@@ -1661,16 +1667,16 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>François Tigeot<text:line-break/>Commits: 
176<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-01-31</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 
178<text:line-break/>Joined: <text:span 
text:style-name="T2">2023-02-14</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 
175<text:line-break/>Joined: <text:span 
text:style-name="T2">2023-02-14</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>François Tigeot<text:line-break/>Commits: 
176<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-01-31</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-e 
... etc. - the rest is truncated

Reply via email to