drawinglayer/source/processor2d/vclprocessor2d.cxx |   16 
 vcl/qa/cppunit/pdfexport/data/tdf101686.fodt       |  592 +++++++++++++++++++++
 vcl/qa/cppunit/pdfexport/pdfexport2.cxx            |   41 +
 3 files changed, 645 insertions(+), 4 deletions(-)

New commits:
commit 041f8afceba0331a2c64004dfcf840c6122812b5
Author:     Jonathan Clark <[email protected]>
AuthorDate: Wed Jul 3 08:56:46 2024 -0600
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Jul 24 12:04:49 2024 +0200

    tdf#101686 Writer textbox direction changes depending on zoom
    
    Previously, DrawingLayer would apply RTL flags in the case of RTL text,
    but it would not clear them in the case of LTR text.
    
    In certain situations, it is possible for Writer to draw the contents of
    a text box while the VCL output device is configured for RTL output. As
    a result, whether DrawingLayer correctly drew LTR text as LTR would
    depend on the order that text was rendered. This issue would manifest as
    text boxes appearing to spontaneously mirror themselves while zooming
    and scrolling through Writer documents containing RTL text.
    
    This change updates the relevant portion of DrawingLayer to also clear
    the RTL flags in the case of LTR text.
    
    Change-Id: I3a75561d08cdf3ee6c74b8f6e62f75a1dfcf165e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169942
    Tested-by: Jenkins
    Reviewed-by: Jonathan Clark <[email protected]>
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170928

diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index c04041e54dd5..b402d395a171 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -315,6 +315,8 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
             // set parameters and paint text snippet
             const basegfx::BColor aRGBFontColor(
                 
maBColorModifierStack.getModifiedColor(rTextCandidate.getFontColor()));
+
+            // Store previous complex text layout state, to be restored after 
drawing
             const vcl::text::ComplexTextLayoutFlags 
nOldLayoutMode(mpOutputDevice->GetLayoutMode());
 
             if (rTextCandidate.getFontAttribute().getRTL())
@@ -325,6 +327,14 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
                                   | 
vcl::text::ComplexTextLayoutFlags::TextOriginLeft;
                 mpOutputDevice->SetLayoutMode(nRTLLayoutMode);
             }
+            else
+            {
+                // tdf#101686: This is LTR text, but the output device may 
have RTL state.
+                vcl::text::ComplexTextLayoutFlags 
nLTRLayoutMode(nOldLayoutMode);
+                nLTRLayoutMode = nLTRLayoutMode & 
~vcl::text::ComplexTextLayoutFlags::BiDiRtl;
+                nLTRLayoutMode = nLTRLayoutMode & 
~vcl::text::ComplexTextLayoutFlags::BiDiStrong;
+                mpOutputDevice->SetLayoutMode(nLTRLayoutMode);
+            }
 
             OUString aText(rTextCandidate.getText());
             sal_Int32 nPos = rTextCandidate.getTextPosition();
@@ -461,10 +471,8 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
                 }
             }
 
-            if (rTextCandidate.getFontAttribute().getRTL())
-            {
-                mpOutputDevice->SetLayoutMode(nOldLayoutMode);
-            }
+            // Restore previous layout mode
+            mpOutputDevice->SetLayoutMode(nOldLayoutMode);
 
             if (bChangeMapMode)
                 mpOutputDevice->Pop();
diff --git a/vcl/qa/cppunit/pdfexport/data/tdf101686.fodt 
b/vcl/qa/cppunit/pdfexport/data/tdf101686.fodt
new file mode 100644
index 000000000000..0a76451165bd
--- /dev/null
+++ b/vcl/qa/cppunit/pdfexport/data/tdf101686.fodt
@@ -0,0 +1,592 @@
+<?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><meta:initial-creator>Hameedullah</meta:initial-creator><meta:creation-date>2016-06-21T18:15:00</meta:creation-date><dc:date>2024-07-03T08:51:13.405933256</dc:date><meta:editing-cycles>6</meta:editing-cycles><meta:editing-duration>PT10M59S</meta:editing-duration><meta:generator>LibreOfficeDev/25.2.0.0.alpha0$Linux_X86_64
 
LibreOffice_project/c792fe496ef8913c4d2fec7739d197d6f1a18693</meta:generator><meta:print-date>2024-07-03T08:50:25.292450393</meta:print-date><meta:printed-by>PDF
 files</meta:printed-by><meta:document-statistic meta:table-count="0" 
meta:image-count="0" meta:object-count="0" meta:page-count="1" 
meta:paragraph-count="2" meta:word-count="2" meta:character-count="6" 
meta:non-whitespace-character-count="6"/><meta:template xlink:type="simple" 
xlink:actuate="onRequest" xlink:title="Normal" xlink:href=""/></office:meta>
+ <office:settings>
+  <config:config-item-set config:name="ooo:view-settings">
+   <config:config-item config:name="ViewAreaTop" 
config:type="long">0</config:config-item>
+   <config:config-item config:name="ViewAreaLeft" 
config:type="long">0</config:config-item>
+   <config:config-item config:name="ViewAreaWidth" 
config:type="long">26598</config:config-item>
+   <config:config-item config:name="ViewAreaHeight" 
config:type="long">18480</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">false</config:config-item>
+   <config:config-item-map-indexed config:name="Views">
+    <config:config-item-map-entry>
+     <config:config-item config:name="ViewId" 
config:type="string">view2</config:config-item>
+     <config:config-item config:name="ViewLeft" 
config:type="long">3748</config:config-item>
+     <config:config-item config:name="ViewTop" 
config:type="long">501</config:config-item>
+     <config:config-item config:name="VisibleLeft" 
config:type="long">0</config:config-item>
+     <config:config-item config:name="VisibleTop" 
config:type="long">0</config:config-item>
+     <config:config-item config:name="VisibleRight" 
config:type="long">26596</config:config-item>
+     <config:config-item config:name="VisibleBottom" 
config:type="long">18479</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">1</config:config-item>
+     <config:config-item config:name="ViewLayoutBookMode" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="ZoomFactor" 
config:type="short">250</config:config-item>
+     <config:config-item config:name="IsSelectedFrame" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="KeepRatio" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="AnchoredTextOverflowLegacy" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="LegacySingleLineFontwork" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="ConnectorUseSnapRect" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="IgnoreBreakAfterMultilineField" 
config:type="boolean">false</config:config-item>
+    </config:config-item-map-entry>
+   </config:config-item-map-indexed>
+  </config:config-item-set>
+  <config:config-item-set config:name="ooo:configuration-settings">
+   <config:config-item config:name="PrintProspectRTL" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintPageBackground" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintDrawings" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintFaxName" config:type="string"/>
+   <config:config-item config:name="PrintReversed" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintAnnotationMode" 
config:type="short">0</config:config-item>
+   <config:config-item config:name="PrintHiddenText" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintEmptyPages" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PaintHellOverHeaderFooter" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintGraphics" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="NoNumberingShowFollowBy" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="HyphenateURLs" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ImagePreferredDPI" 
config:type="int">0</config:config-item>
+   <config:config-item config:name="FootnoteInColumnToPageEnd" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="GutterAtTop" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ContinuousEndnotes" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="FrameAutowidthWithMorePara" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="SubtractFlysAnchoredAtFlys" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="SurroundTextWrapSmall" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintControls" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="TreatSingleColumnBreakAsPageBreak" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TabOverSpacing" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AutoFirstLineIndentDisregardLineSpace" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="TabOverMargin" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedComplexScriptFonts" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedAsianScriptFonts" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintTextPlaceholder" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ApplyTextAttrToEmptyLineAtEndOfParagraph" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedSystemFonts" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="EmbedFonts" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="DisableOffPagePositioning" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="BackgroundParaOverDrawings" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TabOverflow" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="AllowPrintJobCancel" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="AddVerticalFrameOffsets" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ProtectBookmarks" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AddFrameOffsets" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintBlackFonts" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TableRowKeep" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ApplyParagraphMarkFormatToNumbering" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrinterIndependentLayout" 
config:type="string">high-resolution</config:config-item>
+   <config:config-item config:name="JustifyLinesWithShrinking" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="RsidRoot" 
config:type="int">1185464</config:config-item>
+   <config:config-item config:name="PrintProspect" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="CollapseEmptyCellPara" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintPaperFromSetup" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="CurrentDatabaseCommand" 
config:type="string"/>
+   <config:config-item config:name="CurrentDatabaseDataSource" 
config:type="string"/>
+   <config:config-item config:name="SaveThumbnail" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbeddedDatabaseName" 
config:type="string"/>
+   <config:config-item config:name="UnbreakableNumberings" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="SaveGlobalDocumentLinks" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="MsWordCompTrailingBlanks" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintTables" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintLeftPages" 
config:type="boolean">true</config:config-item>
+   <config:config-item-map-indexed config:name="ForbiddenCharacters">
+    <config:config-item-map-entry>
+     <config:config-item config:name="Language" 
config:type="string">ja</config:config-item>
+     <config:config-item config:name="Country" 
config:type="string">JP</config:config-item>
+     <config:config-item config:name="Variant" config:type="string"/>
+     <config:config-item config:name="BeginLine" 
config:type="string">!%),.:;?]}¢°’”‰′″℃、。々〉》」』】〕゛゜ゝゞ・ヽヾ!%),.:;?]}。」、・゙゚¢</config:config-item>
+     <config:config-item config:name="EndLine" 
config:type="string">$([\{£¥‘“〈《「『【〔$([{「£¥</config:config-item>
+    </config:config-item-map-entry>
+   </config:config-item-map-indexed>
+   <config:config-item config:name="AddParaTableSpacing" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrinterPaperFromSetup" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="CurrentDatabaseCommandType" 
config:type="int">0</config:config-item>
+   <config:config-item config:name="ChartAutoUpdate" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="OutlineLevelYieldsNumbering" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UseOldNumbering" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AddParaSpacingToTableCells" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="FieldAutoUpdate" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PropLineSpacingShrinksFirstLine" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="TabAtLeftIndentForParagraphsInList" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintRightPages" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="DoNotCaptureDrawObjsOnPage" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="LoadReadonly" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="HeaderSpacingBelowLastPara" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="SaveVersionOnClose" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ClippedPictures" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="MathBaselineAlignment" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="AlignTabStopPosition" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="UseFormerLineSpacing" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrinterName" config:type="string"/>
+   <config:config-item config:name="AddParaLineSpacingToTableCells" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="IsKernAsianPunctuation" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="DoNotJustifyLinesWithManualBreak" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="CharacterCompressionType" 
config:type="short">0</config:config-item>
+   <config:config-item config:name="IsLabelDocument" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="EmbedLatinScriptFonts" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
+   <config:config-item config:name="UseVariableWidthNBSP" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="EmbedOnlyUsedFonts" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ApplyUserData" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="AddParaTableSpacingAtStart" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="InvertBorderSpacing" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ProtectFields" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AddExternalLeading" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="LinkUpdateMode" 
config:type="short">1</config:config-item>
+   <config:config-item config:name="UseFormerObjectPositioning" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UnxForceZeroExtLeading" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UseFormerTextWrapping" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ConsiderTextWrapOnObjPos" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="StylesNoDefault" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IgnoreFirstLineIndentInNumbering" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="NoGapAfterNoteNumber" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmptyDbFieldHidesPara" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="DoNotResetParaAttrsForNumFont" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="DropCapPunctuation" 
config:type="boolean">true</config:config-item>
+   <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">false</config:config-item>
+   <config:config-item config:name="Rsid" 
config:type="int">1350167</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>
+   <config:config-item config:name="SmallCapsPercentage66" 
config:type="boolean">false</config:config-item>
+  </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+  <office:script script:language="ooo:Basic">
+   <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:xlink="http://www.w3.org/1999/xlink"/>
+  </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+  <style:font-face style:name="Arial" svg:font-family="Arial" 
style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Calibri" svg:font-family="Calibri" 
style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Courier New" svg:font-family="&apos;Courier 
New&apos;" style:font-family-generic="modern"/>
+  <style:font-face style:name="Liberation Sans" 
svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" 
style:font-pitch="variable"/>
+  <style:font-face style:name="Liberation Serif" 
svg:font-family="&apos;Liberation Serif&apos;" 
style:font-family-generic="roman" style:font-pitch="variable"/>
+  <style:font-face style:name="Noto Sans" svg:font-family="&apos;Noto 
Sans&apos;" style:font-family-generic="swiss"/>
+  <style:font-face style:name="Noto Sans CJK SC" svg:font-family="&apos;Noto 
Sans CJK SC&apos;" style:font-family-generic="system" 
style:font-pitch="variable"/>
+  <style:font-face style:name="Noto Sans1" svg:font-family="&apos;Noto 
Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Noto Serif" svg:font-family="&apos;Noto 
Serif&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="Symbol" svg:font-family="Symbol" 
style:font-family-generic="roman" style:font-pitch="variable" 
style:font-charset="x-symbol"/>
+  <style:font-face style:name="Tahoma" svg:font-family="Tahoma" 
style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Wingdings" svg:font-family="Wingdings" 
style:font-pitch="variable" style:font-charset="x-symbol"/>
+ </office:font-face-decls>
+ <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="8.5pt" 
draw:shadow-offset-y="8.5pt" draw:start-line-spacing-horizontal="8.02pt" 
draw:start-line-spacing-vertical="8.02pt" 
draw:end-line-spacing-horizontal="8.02pt" 
draw:end-line-spacing-vertical="8.02pt" style:writing-mode="lr-tb" 
style:flow-with-text="false"/>
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" loext:tab-stop-distance="0pt" 
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="Liberation Serif" fo:font-size="12pt" 
fo:language="en" fo:country="US" style:letter-kerning="true" 
style:font-name-asian="Noto Serif" style:font-size-asian="10.5pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Noto Sans" style:font-size-complex="12pt" 
style:language-complex="ar" style:country-complex="SA"/>
+  </style:default-style>
+  <style:default-style style:family="paragraph">
+   <style:paragraph-properties fo:hyphenation-ladder-count="no-limit" 
fo:hyphenation-keep="auto" loext:hyphenation-keep-type="column" 
style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" 
style:line-break="strict" style:tab-stop-distance="36pt" 
style:writing-mode="lr-tb"/>
+   <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" 
fo:language="en" fo:country="US" style:letter-kerning="true" 
style:font-name-asian="Noto Serif" style:font-size-asian="10.5pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Noto Sans" style:font-size-complex="12pt" 
style:language-complex="ar" style:country-complex="SA" fo:hyphenate="false" 
fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" 
loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" 
loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/>
+  </style:default-style>
+  <style:default-style style:family="table">
+   <style:table-properties table:border-model="collapsing"/>
+  </style:default-style>
+  <style:default-style style:family="table-row">
+   <style:table-row-properties fo:keep-together="auto"/>
+  </style:default-style>
+  <style:style style:name="Standard" style:family="paragraph" 
style:class="text">
+   <style:paragraph-properties fo:margin-left="0pt" fo:margin-right="0pt" 
fo:margin-top="0pt" fo:margin-bottom="10.01pt" style:contextual-spacing="false" 
fo:line-height="115%" fo:text-align="end" style:justify-single-word="false" 
fo:orphans="2" fo:widows="2" fo:text-indent="0pt" 
style:auto-text-indent="false" style:writing-mode="rl-tb"/>
+   <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" style:font-name="Calibri" fo:font-family="Calibri" 
style:font-family-generic="swiss" style:font-pitch="variable" 
fo:font-size="11pt" fo:language="en" fo:country="US" 
style:font-name-asian="Noto Sans1" style:font-family-asian="&apos;Noto 
Sans&apos;" style:font-family-generic-asian="swiss" 
style:font-pitch-asian="variable" style:font-size-asian="11pt" 
style:font-name-complex="Arial" style:font-family-complex="Arial" 
style:font-family-generic-complex="swiss" style:font-pitch-complex="variable" 
style:font-size-complex="11pt" style:language-complex="ar" 
style:country-complex="SA"/>
+  </style:style>
+  <style:style style:name="Heading" style:family="paragraph" 
style:parent-style-name="Standard" style:next-style-name="Text_20_body" 
style:class="text">
+   <style:paragraph-properties fo:margin-top="11.99pt" 
fo:margin-bottom="6.01pt" style:contextual-spacing="false" 
fo:keep-with-next="always"/>
+   <style:text-properties style:font-name="Liberation Sans" 
fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" 
style:font-pitch="variable" fo:font-size="14pt" style:font-name-asian="Noto 
Sans CJK SC" style:font-family-asian="&apos;Noto Sans CJK SC&apos;" 
style:font-family-generic-asian="system" style:font-pitch-asian="variable" 
style:font-size-asian="14pt" style:font-name-complex="Noto Sans" 
style:font-family-complex="&apos;Noto Sans&apos;" 
style:font-family-generic-complex="swiss" style:font-size-complex="14pt"/>
+  </style:style>
+  <style:style style:name="Text_20_body" style:display-name="Text body" 
style:family="paragraph" style:parent-style-name="Standard" style:class="text">
+   <style:paragraph-properties fo:margin-top="0pt" fo:margin-bottom="7pt" 
style:contextual-spacing="false" fo:line-height="115%"/>
+  </style:style>
+  <style:style style:name="List" style:family="paragraph" 
style:parent-style-name="Text_20_body" style:class="list">
+   <style:text-properties style:font-size-asian="12pt" 
style:font-name-complex="Noto Sans" style:font-family-complex="&apos;Noto 
Sans&apos;" style:font-family-generic-complex="swiss"/>
+  </style:style>
+  <style:style style:name="Caption" style:family="paragraph" 
style:parent-style-name="Standard" style:class="extra">
+   <style:paragraph-properties fo:margin-top="6.01pt" 
fo:margin-bottom="6.01pt" style:contextual-spacing="false" 
text:number-lines="false" text:line-number="0"/>
+   <style:text-properties fo:font-size="12pt" fo:font-style="italic" 
style:font-size-asian="12pt" style:font-style-asian="italic" 
style:font-name-complex="Noto Sans" style:font-family-complex="&apos;Noto 
Sans&apos;" style:font-family-generic-complex="swiss" 
style:font-size-complex="12pt" style:font-style-complex="italic"/>
+  </style:style>
+  <style:style style:name="Index" style:family="paragraph" 
style:parent-style-name="Standard" style:class="index">
+   <style:paragraph-properties text:number-lines="false" text:line-number="0"/>
+   <style:text-properties style:font-size-asian="12pt" 
style:font-name-complex="Noto Sans" style:font-family-complex="&apos;Noto 
Sans&apos;" style:font-family-generic-complex="swiss"/>
+  </style:style>
+  <style:style style:name="Balloon_20_Text" style:display-name="Balloon Text" 
style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-top="0pt" fo:margin-bottom="0pt" 
style:contextual-spacing="false" fo:line-height="100%"/>
+   <style:text-properties style:font-name="Tahoma" fo:font-family="Tahoma" 
style:font-family-generic="swiss" style:font-pitch="variable" 
fo:font-size="8pt" style:font-size-asian="8pt" style:font-name-complex="Tahoma" 
style:font-family-complex="Tahoma" style:font-family-generic-complex="swiss" 
style:font-pitch-complex="variable" style:font-size-complex="8pt"/>
+  </style:style>
+  <style:style style:name="Frame_20_contents" style:display-name="Frame 
contents" style:family="paragraph" style:parent-style-name="Standard" 
style:class="extra"/>
+  <style:style style:name="WW8Num1z0" style:family="text">
+   <style:text-properties style:font-name="Calibri" fo:font-family="Calibri" 
style:font-family-generic="swiss" style:font-pitch="variable" 
fo:font-size="10pt" style:font-name-asian="Calibri" 
style:font-family-asian="Calibri" style:font-family-generic-asian="swiss" 
style:font-pitch-asian="variable" style:font-size-asian="10pt" 
style:font-name-complex="Noto Sans1" style:font-family-complex="&apos;Noto 
Sans&apos;" style:font-family-generic-complex="swiss" 
style:font-pitch-complex="variable"/>
+  </style:style>
+  <style:style style:name="WW8Num1z1" style:family="text">
+   <style:text-properties style:font-name="Courier New" 
fo:font-family="&apos;Courier New&apos;" style:font-family-generic="modern" 
style:font-name-complex="Courier New" style:font-family-complex="&apos;Courier 
New&apos;" style:font-family-generic-complex="modern"/>
+  </style:style>
+  <style:style style:name="WW8Num1z2" style:family="text">
+   <style:text-properties style:font-name="Wingdings" 
fo:font-family="Wingdings" style:font-pitch="variable" 
style:font-charset="x-symbol" style:font-name-complex="Wingdings" 
style:font-family-complex="Wingdings" style:font-pitch-complex="variable" 
style:font-charset-complex="x-symbol"/>
+  </style:style>
+  <style:style style:name="WW8Num1z3" style:family="text">
+   <style:text-properties style:font-name="Symbol" fo:font-family="Symbol" 
style:font-family-generic="roman" style:font-pitch="variable" 
style:font-charset="x-symbol" style:font-name-complex="Symbol" 
style:font-family-complex="Symbol" style:font-family-generic-complex="roman" 
style:font-pitch-complex="variable" style:font-charset-complex="x-symbol"/>
+  </style:style>
+  <style:style style:name="WW8Num2z0" style:family="text">
+   <style:text-properties style:font-name="Noto Sans1" 
fo:font-family="&apos;Noto Sans&apos;" style:font-family-generic="swiss" 
style:font-pitch="variable" style:font-name-asian="Calibri" 
style:font-family-asian="Calibri" style:font-family-generic-asian="swiss" 
style:font-pitch-asian="variable" style:font-name-complex="Arial" 
style:font-family-complex="Arial" style:font-family-generic-complex="swiss" 
style:font-pitch-complex="variable"/>
+  </style:style>
+  <style:style style:name="WW8Num2z1" style:family="text">
+   <style:text-properties style:font-name="Courier New" 
fo:font-family="&apos;Courier New&apos;" style:font-family-generic="modern" 
style:font-name-complex="Courier New" style:font-family-complex="&apos;Courier 
New&apos;" style:font-family-generic-complex="modern"/>
+  </style:style>
+  <style:style style:name="WW8Num2z2" style:family="text">
+   <style:text-properties style:font-name="Wingdings" 
fo:font-family="Wingdings" style:font-pitch="variable" 
style:font-charset="x-symbol" style:font-name-complex="Wingdings" 
style:font-family-complex="Wingdings" style:font-pitch-complex="variable" 
style:font-charset-complex="x-symbol"/>
+  </style:style>
+  <style:style style:name="WW8Num2z3" style:family="text">
+   <style:text-properties style:font-name="Symbol" fo:font-family="Symbol" 
style:font-family-generic="roman" style:font-pitch="variable" 
style:font-charset="x-symbol" style:font-name-complex="Symbol" 
style:font-family-complex="Symbol" style:font-family-generic-complex="roman" 
style:font-pitch-complex="variable" style:font-charset-complex="x-symbol"/>
+  </style:style>
+  <style:style style:name="WW8Num3z0" style:family="text">
+   <style:text-properties style:font-name="Symbol" fo:font-family="Symbol" 
style:font-family-generic="roman" style:font-pitch="variable" 
style:font-charset="x-symbol" style:font-name-complex="Symbol" 
style:font-family-complex="Symbol" style:font-family-generic-complex="roman" 
style:font-pitch-complex="variable" style:font-charset-complex="x-symbol"/>
+  </style:style>
+  <style:style style:name="WW8Num3z1" style:family="text">
+   <style:text-properties style:font-name="Courier New" 
fo:font-family="&apos;Courier New&apos;" style:font-family-generic="modern" 
style:font-name-complex="Courier New" style:font-family-complex="&apos;Courier 
New&apos;" style:font-family-generic-complex="modern"/>
+  </style:style>
+  <style:style style:name="WW8Num3z2" style:family="text">
+   <style:text-properties style:font-name="Wingdings" 
fo:font-family="Wingdings" style:font-pitch="variable" 
style:font-charset="x-symbol" style:font-name-complex="Wingdings" 
style:font-family-complex="Wingdings" style:font-pitch-complex="variable" 
style:font-charset-complex="x-symbol"/>
+  </style:style>
+  <style:style style:name="Default_20_Paragraph_20_Font" 
style:display-name="Default Paragraph Font" style:family="text"/>
+  <style:style style:name="Internet_20_link" style:display-name="Internet 
link" style:family="text" 
style:parent-style-name="Default_20_Paragraph_20_Font">
+   <style:text-properties fo:color="#0000ff" loext:opacity="100%" 
style:text-underline-style="solid" style:text-underline-width="auto" 
style:text-underline-color="font-color"/>
+  </style:style>
+  <style:style style:name="Balloon_20_Text_20_Char" 
style:display-name="Balloon Text Char" style:family="text" 
style:parent-style-name="Default_20_Paragraph_20_Font">
+   <style:text-properties style:font-name="Tahoma" fo:font-family="Tahoma" 
style:font-family-generic="swiss" style:font-pitch="variable" 
fo:font-size="8pt" style:font-size-asian="8pt" style:font-name-complex="Tahoma" 
style:font-family-complex="Tahoma" style:font-family-generic-complex="swiss" 
style:font-pitch-complex="variable" style:font-size-complex="8pt"/>
+  </style:style>
+  <style:style style:name="Frame" style:family="graphic">
+   <style:graphic-properties text:anchor-type="paragraph" svg:x="0pt" 
svg:y="0pt" fo:margin-left="5.7pt" fo:margin-right="5.7pt" 
fo:margin-top="5.7pt" fo:margin-bottom="5.7pt" style:wrap="parallel" 
style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" 
style:vertical-pos="top" style:vertical-rel="paragraph-content" 
style:horizontal-pos="center" style:horizontal-rel="paragraph-content" 
fo:background-color="transparent" draw:fill="none" draw:fill-color="#729fcf" 
fo:padding="4.25pt" fo:border="0.06pt solid #000000"/>
+  </style:style>
+  <text:outline-style style:name="Outline">
+   <text:outline-level-style text:level="1" loext:num-list-format="%1%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="2" loext:num-list-format="%2%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="3" loext:num-list-format="%3%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="4" loext:num-list-format="%4%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="5" loext:num-list-format="%5%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="6" loext:num-list-format="%6%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="7" loext:num-list-format="%7%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="8" loext:num-list-format="%8%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="9" loext:num-list-format="%9%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="10" loext:num-list-format="%10%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+  </text:outline-style>
+  <text:list-style style:name="WW8Num1" text:consecutive-numbering="true">
+   <text:list-level-style-bullet text:level="1" text:style-name="WW8Num1z0" 
loext:num-list-format="%1%." style:num-suffix="." text:bullet-char="-">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="36pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Noto Sans1"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="2" text:style-name="WW8Num1z1" 
loext:num-list-format="%2%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="72pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="3" text:style-name="WW8Num1z2" 
loext:num-list-format="%3%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="108pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="4" text:style-name="WW8Num1z3" 
loext:num-list-format="%4%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="144pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Symbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="5" text:style-name="WW8Num1z1" 
loext:num-list-format="%5%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="180pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="6" text:style-name="WW8Num1z2" 
loext:num-list-format="%6%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="216pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="7" text:style-name="WW8Num1z3" 
loext:num-list-format="%7%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="252pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Symbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="8" text:style-name="WW8Num1z1" 
loext:num-list-format="%8%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="288pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="9" text:style-name="WW8Num1z2" 
loext:num-list-format="%9%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="324pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-number text:level="10" loext:num-list-format="%10%." 
style:num-suffix="." style:num-format="1">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
text:list-tab-stop-position="198pt" fo:text-indent="-18pt" 
fo:margin-left="198pt"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+  </text:list-style>
+  <text:list-style style:name="WW8Num2" text:consecutive-numbering="true">
+   <text:list-level-style-bullet text:level="1" text:style-name="WW8Num2z0" 
loext:num-list-format="%1%." style:num-suffix="." text:bullet-char="-">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="36pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Noto Sans1"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="2" text:style-name="WW8Num2z1" 
loext:num-list-format="%2%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="72pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="3" text:style-name="WW8Num2z2" 
loext:num-list-format="%3%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="108pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="4" text:style-name="WW8Num2z3" 
loext:num-list-format="%4%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="144pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Symbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="5" text:style-name="WW8Num2z1" 
loext:num-list-format="%5%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="180pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="6" text:style-name="WW8Num2z2" 
loext:num-list-format="%6%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="216pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="7" text:style-name="WW8Num2z3" 
loext:num-list-format="%7%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="252pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Symbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="8" text:style-name="WW8Num2z1" 
loext:num-list-format="%8%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="288pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="9" text:style-name="WW8Num2z2" 
loext:num-list-format="%9%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="324pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-number text:level="10" loext:num-list-format="%10%." 
style:num-suffix="." style:num-format="1">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
text:list-tab-stop-position="198pt" fo:text-indent="-18pt" 
fo:margin-left="198pt"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+  </text:list-style>
+  <text:list-style style:name="WW8Num3" text:consecutive-numbering="true">
+   <text:list-level-style-bullet text:level="1" text:style-name="WW8Num3z0" 
loext:num-list-format="%1%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="36pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Symbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="2" text:style-name="WW8Num3z1" 
loext:num-list-format="%2%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="72pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="3" text:style-name="WW8Num3z2" 
loext:num-list-format="%3%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="108pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="4" text:style-name="WW8Num3z0" 
loext:num-list-format="%4%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="144pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Symbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="5" text:style-name="WW8Num3z1" 
loext:num-list-format="%5%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="180pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="6" text:style-name="WW8Num3z2" 
loext:num-list-format="%6%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="216pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="7" text:style-name="WW8Num3z0" 
loext:num-list-format="%7%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="252pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Symbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="8" text:style-name="WW8Num3z1" 
loext:num-list-format="%8%." style:num-suffix="." text:bullet-char="o">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="288pt"/>
+    </style:list-level-properties>
+    <style:text-properties fo:font-family="&apos;Noto Sans&apos;" 
style:font-family-generic="modern"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="9" text:style-name="WW8Num3z2" 
loext:num-list-format="%9%." style:num-suffix="." text:bullet-char="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
fo:text-indent="-18pt" fo:margin-left="324pt"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="Wingdings"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-number text:level="10" loext:num-list-format="%10%." 
style:num-suffix="." style:num-format="1">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" 
text:list-tab-stop-position="198pt" fo:text-indent="-18pt" 
fo:margin-left="198pt"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+  </text:list-style>
+  <text:notes-configuration text:note-class="footnote" style:num-format="1" 
text:start-value="0" text:footnotes-position="page" 
text:start-numbering-at="document"/>
+  <text:notes-configuration text:note-class="endnote" style:num-format="i" 
text:start-value="0"/>
+  <text:linenumbering-configuration text:number-lines="false" 
text:offset="14.14pt" style:num-format="1" text:number-position="left" 
text:increment="5"/>
+  <style:default-page-layout>
+   <style:page-layout-properties style:writing-mode="lr-tb" 
style:layout-grid-standard-mode="true"/>
+  </style:default-page-layout>
+  <loext:theme loext:name="Office">
+   <loext:theme-colors loext:name="LibreOffice">
+    <loext:color loext:name="dark1" loext:color="#000000"/>
+    <loext:color loext:name="light1" loext:color="#ffffff"/>
+    <loext:color loext:name="dark2" loext:color="#000000"/>
+    <loext:color loext:name="light2" loext:color="#ffffff"/>
+    <loext:color loext:name="accent1" loext:color="#18a303"/>
+    <loext:color loext:name="accent2" loext:color="#0369a3"/>
+    <loext:color loext:name="accent3" loext:color="#a33e03"/>
+    <loext:color loext:name="accent4" loext:color="#8e03a3"/>
+    <loext:color loext:name="accent5" loext:color="#c99c00"/>
+    <loext:color loext:name="accent6" loext:color="#c9211e"/>
+    <loext:color loext:name="hyperlink" loext:color="#0000ee"/>
+    <loext:color loext:name="followed-hyperlink" loext:color="#551a8b"/>
+   </loext:theme-colors>
+  </loext:theme>
+ </office:styles>
+ <office:automatic-styles>
+  <style:style style:name="P1" style:family="paragraph" 
style:parent-style-name="Standard" style:list-style-name="WW8Num3">
+   <style:paragraph-properties fo:margin-left="36pt" fo:margin-right="0pt" 
fo:text-align="start" style:justify-single-word="false" fo:text-indent="-18pt" 
style:auto-text-indent="false" style:writing-mode="lr-tb"/>
+   <style:text-properties style:font-name="Noto Sans1" fo:font-size="12pt" 
fo:language="none" fo:country="none" style:font-size-asian="12pt" 
style:language-asian="none" style:country-asian="none" 
style:font-name-complex="Noto Sans1" style:font-size-complex="12pt"/>
+  </style:style>
+  <style:style style:name="P2" style:family="paragraph">
+   <style:paragraph-properties fo:margin-left="0pt" fo:margin-right="0pt" 
fo:margin-top="0pt" fo:margin-bottom="0pt" fo:line-height="107%" 
fo:text-align="justify" fo:text-indent="0pt" style:writing-mode="lr-tb"/>
+  </style:style>
+  <style:style style:name="P3" style:family="paragraph">
+   <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+   <style:paragraph-properties fo:margin-left="0pt" fo:margin-right="0pt" 
fo:margin-top="0pt" fo:margin-bottom="0pt" fo:line-height="107%" 
fo:text-align="justify" fo:text-indent="0pt"/>
+   <style:text-properties style:font-name="Noto Sans1"/>
+  </style:style>
+  <style:style style:name="P4" style:family="paragraph" 
style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-right="0pt" fo:text-align="start" 
style:justify-single-word="false"/>
+   <style:text-properties fo:color="#2e2d30" loext:opacity="100%" 
style:font-name="Noto Sans1" fo:font-size="14pt" officeooo:rsid="001216b8" 
officeooo:paragraph-rsid="001216b8" style:font-size-asian="14pt" 
style:font-name-complex="Noto Sans1" style:font-size-complex="14pt"/>
+  </style:style>
+  <style:style style:name="T1" style:family="text">
+   <style:text-properties fo:color="#2e2d30" loext:opacity="100%" 
style:font-name="Noto Sans1" fo:font-size="9pt" fo:language="en" 
fo:country="US" style:font-name-asian="Noto Sans1" style:font-size-asian="9pt" 
style:font-name-complex="Noto Sans1" style:font-size-complex="9pt" 
style:language-complex="ar" style:country-complex="SA"/>
+  </style:style>
+  <style:style style:name="fr1" style:family="graphic" 
style:parent-style-name="Frame">
+   <style:graphic-properties fo:margin-left="9.04pt" fo:margin-right="9.04pt" 
fo:margin-top="0pt" fo:margin-bottom="0pt" style:wrap="run-through" 
style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" 
style:vertical-rel="paragraph" style:horizontal-pos="from-left" 
style:horizontal-rel="paragraph" fo:background-color="#ffffff" 
style:background-transparency="100%" draw:fill="solid" 
draw:fill-color="#ffffff" draw:opacity="0%" fo:padding="0.06pt" 
fo:border="none"/>
+  </style:style>
+  <style:style style:name="gr1" style:family="graphic">
+   <style:graphic-properties draw:stroke="none" draw:fill="none" 
draw:fill-color="#ffffff" draw:textarea-horizontal-align="justify" 
draw:textarea-vertical-align="top" draw:auto-grow-height="false" 
draw:auto-grow-width="false" fo:padding-top="0pt" fo:padding-bottom="0pt" 
fo:padding-left="0pt" fo:padding-right="0pt" fo:wrap-option="wrap" 
draw:shadow-color="#808080" loext:decorative="false" 
style:run-through="foreground" style:vertical-pos="from-top" 
style:vertical-rel="paragraph" style:horizontal-pos="from-left" 
style:horizontal-rel="paragraph" 
draw:wrap-influence-on-position="once-concurrent" loext:allow-overlap="true" 
style:flow-with-text="false"/>
+   <style:paragraph-properties style:writing-mode="lr-tb"/>
+  </style:style>
+  <style:page-layout style:name="pm1">
+   <style:page-layout-properties fo:page-width="613.45pt" 
fo:page-height="860.4pt" style:num-format="1" 
style:print-orientation="portrait" fo:margin-top="0pt" fo:margin-bottom="0pt" 
fo:margin-left="0pt" fo:margin-right="0pt" style:writing-mode="lr-tb" 
style:layout-grid-color="#c0c0c0" style:layout-grid-lines="47" 
style:layout-grid-base-height="18pt" style:layout-grid-ruby-height="0pt" 
style:layout-grid-mode="none" style:layout-grid-ruby-below="false" 
style:layout-grid-print="false" style:layout-grid-display="false" 
style:layout-grid-base-width="11pt" style:layout-grid-snap-to="true" 
style:footnote-max-height="0pt" loext:margin-gutter="0pt">
+    <style:footnote-sep style:width="0.51pt" 
style:distance-before-sep="2.86pt" style:distance-after-sep="2.86pt" 
style:line-style="solid" style:adjustment="left" style:rel-width="25%" 
style:color="#000000"/>
+   </style:page-layout-properties>
+   <style:header-style/>
+   <style:footer-style/>
+  </style:page-layout>
+  <style:style style:name="dp1" style:family="drawing-page">
+   <style:drawing-page-properties draw:background-size="full"/>
+  </style:style>
+ </office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Standard" style:page-layout-name="pm1" 
draw:style-name="dp1"/>
+ </office:master-styles>
+ <office:body>
+  <office:text>
+   <office:forms form:automatic-focus="false" form:apply-design-mode="false"/>
+   <text:sequence-decls>
+    <text:sequence-decl text:display-outline-level="0" 
text:name="Illustration"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
+   </text:sequence-decls>
+   <text:list text:style-name="WW8Num3">
+    <text:list-header>
+     <text:p text:style-name="P1"><draw:frame text:anchor-type="char" 
draw:z-index="1" draw:name="Shape1" draw:style-name="gr1" 
draw:text-style-name="P3" svg:width="108.03pt" svg:height="17.43pt" 
svg:x="194.94pt" svg:y="27.5pt">
+       <draw:text-box>
+        <text:p text:style-name="P2"><text:span 
text:style-name="T1">Textbox</text:span></text:p>
+       </draw:text-box>
+      </draw:frame><draw:frame text:anchor-type="char" draw:z-index="2" 
draw:name="Shape 1" draw:style-name="gr1" draw:text-style-name="P3" 
svg:width="108.03pt" svg:height="17.43pt" svg:x="194.66pt" svg:y="89.01pt">
+       <draw:text-box>
+        <text:p text:style-name="P2"><text:span 
text:style-name="T1">Textbox</text:span></text:p>
+       </draw:text-box>
+      </draw:frame><draw:frame draw:style-name="fr1" draw:name="Frame31" 
text:anchor-type="char" svg:x="164.04pt" svg:y="53.69pt" svg:width="305.8pt" 
svg:height="19.11pt" draw:z-index="0">
+       <draw:text-box>
+        <text:p text:style-name="P4">Frame</text:p>
+       </draw:text-box>
+      </draw:frame></text:p>
+    </text:list-header>
+   </text:list>
+  </office:text>
+ </office:body>
+</office:document>
\ No newline at end of file
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index e771c8ba6e2a..bdcd57ee80b4 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -5227,6 +5227,47 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf71956)
     fnEqualPos(aRect[5], aRect[6]);
 }
 
+// tdf#101686 - Verifies that drawinglayer clears RTL flags while drawing 
Writer text boxes
+CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf101686)
+{
+    aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr;
+    saveAsPDF(u"tdf101686.fodt");
+    std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport();
+
+    CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount());
+
+    // Get the first pace
+    std::unique_ptr<vcl::pdf::PDFiumPage> pPdfPage = 
pPdfDocument->openPage(/*nIndex*/ 0);
+    CPPUNIT_ASSERT(pPdfPage);
+    std::unique_ptr<vcl::pdf::PDFiumTextPage> pTextPage = 
pPdfPage->getTextPage();
+    CPPUNIT_ASSERT(pTextPage);
+
+    int nPageObjectCount = pPdfPage->getObjectCount();
+    CPPUNIT_ASSERT_EQUAL(3, nPageObjectCount);
+
+    std::vector<OUString> aText;
+
+    int nTextObjectCount = 0;
+    for (int i = 0; i < nPageObjectCount; ++i)
+    {
+        auto pPageObject = pPdfPage->getObject(i);
+        CPPUNIT_ASSERT_MESSAGE("no object", pPageObject != nullptr);
+        if (pPageObject->getType() == vcl::pdf::PDFPageObjectType::Text)
+        {
+            aText.push_back(pPageObject->getText(pTextPage));
+            ++nTextObjectCount;
+        }
+    }
+
+    CPPUNIT_ASSERT_EQUAL(3, nTextObjectCount);
+
+    CPPUNIT_ASSERT_EQUAL(u"Frame"_ustr, aText[0].trim());
+
+    // Without the fix, one of these two will be "xobtxeT"
+    CPPUNIT_ASSERT_EQUAL(u"Textbox"_ustr, aText[1].trim());
+    CPPUNIT_ASSERT_EQUAL(u"Textbox"_ustr, aText[2].trim());
+}
+
 } // end anonymous namespace
 
 CPPUNIT_PLUGIN_IMPLEMENT();

Reply via email to