1 diff --git basctl/util/makefile.mk basctl/util/makefile.mk
2 index 1867774..c6d6c26 100644
3 --- basctl/util/makefile.mk
4 +++ basctl/util/makefile.mk
5 @@ -54,6 +54,7 @@ SHL1TARGET= basctl$(DLLPOSTFIX)
13 diff --git chart2/source/controller/makefile.mk chart2/source/controller/makefile.mk
14 index 8c215a0..0d88f3d 100644
15 --- chart2/source/controller/makefile.mk
16 +++ chart2/source/controller/makefile.mk
17 @@ -90,6 +90,7 @@ SHL1STDLIBS= $(CHARTTOOLS) \
25 diff --git chart2/source/view/makefile.mk chart2/source/view/makefile.mk
26 index 8f10548..17a2ea9 100644
27 --- chart2/source/view/makefile.mk
28 +++ chart2/source/view/makefile.mk
29 @@ -83,7 +83,7 @@ SHL1STDLIBS= $(CHARTTOOLS) \
38 diff --git dbaccess/source/ext/macromigration/makefile.mk dbaccess/source/ext/macromigration/makefile.mk
39 index 17e51d9..d2f39cc 100644
40 --- dbaccess/source/ext/macromigration/makefile.mk
41 +++ dbaccess/source/ext/macromigration/makefile.mk
42 @@ -78,6 +78,7 @@ SHL1STDLIBS= \
50 diff --git dbaccess/util/makefile.mk dbaccess/util/makefile.mk
51 index 92e038a..4a148ad 100644
52 --- dbaccess/util/makefile.mk
53 +++ dbaccess/util/makefile.mk
54 @@ -112,6 +112,7 @@ LIB2FILES=\
55 SHL2TARGET=$(TARGET2)$(DLLPOSTFIX)
62 diff --git extensions/source/abpilot/makefile.mk extensions/source/abpilot/makefile.mk
63 index e76840e..34b504b 100644
64 --- extensions/source/abpilot/makefile.mk
65 +++ extensions/source/abpilot/makefile.mk
66 @@ -94,6 +94,7 @@ SHL1STDLIBS= \
73 SHL1LIBS= $(SLB)$/$(TARGET).lib
74 diff --git extensions/source/oooimprovecore/makefile.mk extensions/source/oooimprovecore/makefile.mk
75 index 0547be9..83b04b6 100644
76 --- extensions/source/oooimprovecore/makefile.mk
77 +++ extensions/source/oooimprovecore/makefile.mk
78 @@ -58,6 +58,7 @@ SHL1STDLIBS= \
86 diff --git extensions/source/preload/makefile.mk extensions/source/preload/makefile.mk
87 index 8186d73..629aa53 100644
88 --- extensions/source/preload/makefile.mk
89 +++ extensions/source/preload/makefile.mk
90 @@ -64,7 +64,7 @@ SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
91 SHL1VERSIONMAP= $(TARGET).map
99 diff --git extensions/source/propctrlr/makefile.mk extensions/source/propctrlr/makefile.mk
100 index 4db4596..89a04d9 100644
101 --- extensions/source/propctrlr/makefile.mk
102 +++ extensions/source/propctrlr/makefile.mk
103 @@ -118,6 +118,7 @@ SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
104 SHL1VERSIONMAP= $(TARGET).map
111 diff --git filter/source/config/fragments/filters/MS_PowerPoint_97.xcu filter/source/config/fragments/filters/MS_PowerPoint_97.xcu
112 index cab11c1..1ec0fb7 100644
113 --- filter/source/config/fragments/filters/MS_PowerPoint_97.xcu
114 +++ filter/source/config/fragments/filters/MS_PowerPoint_97.xcu
116 <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
117 <prop oor:name="UIComponent"/>
118 <prop oor:name="FilterService"/>
119 - <prop oor:name="UserData"><value>emp</value></prop>
120 + <prop oor:name="UserData"><value>sdfilt</value></prop>
121 <prop oor:name="UIName">
122 <value xml:lang="x-default">Microsoft PowerPoint 97/2000/XP</value>
124 diff --git filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu
125 index 50b2c34..c4a28e8 100644
126 --- filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu
127 +++ filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu
129 <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH ALIEN</value></prop>
130 <prop oor:name="UIComponent"/>
131 <prop oor:name="FilterService"/>
132 - <prop oor:name="UserData"><value>emp</value></prop>
133 + <prop oor:name="UserData"><value>sdfilt</value></prop>
134 <prop oor:name="FileFormatVersion"><value>0</value></prop>
135 <prop oor:name="Type"><value>impress_MS_PowerPoint_97_Vorlage</value></prop>
136 <prop oor:name="TemplateName"/>
137 diff --git filter/source/config/fragments/filters/MS_Word_2007_XML.xcu filter/source/config/fragments/filters/MS_Word_2007_XML.xcu
138 index d8a3740..69feaa0 100644
139 --- filter/source/config/fragments/filters/MS_Word_2007_XML.xcu
140 +++ filter/source/config/fragments/filters/MS_Word_2007_XML.xcu
142 <node oor:name="MS Word 2007 XML" oor:op="replace">
143 - <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER</value></prop>
144 + <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
145 <prop oor:name="UIComponent"/>
146 <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WriterFilter</value></prop>
147 + <!-- <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.DocxExport</value></prop> -->
148 <prop oor:name="UserData"><value>OXML</value></prop>
149 <prop oor:name="UIName">
150 <value xml:lang="x-default">Microsoft Word 2007 XML</value>
151 diff --git filter/source/svg/makefile.mk filter/source/svg/makefile.mk
152 index ddb2dd2..4d04bef 100644
153 --- filter/source/svg/makefile.mk
154 +++ filter/source/svg/makefile.mk
155 @@ -66,8 +66,7 @@ CFLAGS+=-DUSE_MODERN_SPIRIT
156 SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
165 diff --git forms/util/makefile.mk forms/util/makefile.mk
166 index cbf8bd9..9474f8e 100644
167 --- forms/util/makefile.mk
168 +++ forms/util/makefile.mk
169 @@ -73,7 +73,7 @@ SHL1STDLIBS= \
178 diff --git lotuswordpro/util/makefile.mk lotuswordpro/util/makefile.mk
179 index 63950f1..6611150 100644
180 --- lotuswordpro/util/makefile.mk
181 +++ lotuswordpro/util/makefile.mk
182 @@ -23,7 +23,7 @@ SHL1STDLIBS+= \
191 diff --git oox/inc/oox/core/xmlfilterbase.hxx oox/inc/oox/core/xmlfilterbase.hxx
192 index c46ee40..1f4edc3 100644
193 --- oox/inc/oox/core/xmlfilterbase.hxx
194 +++ oox/inc/oox/core/xmlfilterbase.hxx
197 namespace com { namespace sun { namespace star {
198 namespace container { class XNameContainer; }
199 + namespace document { class XDocumentProperties; }
200 namespace xml { namespace sax { class XLocator; } }
201 namespace xml { namespace sax { class XFastDocumentHandler; } }
203 @@ -191,6 +192,14 @@ public:
204 inline ::rtl::OString GetUniqueIdOString() { return ::rtl::OString::valueOf( mnMaxDocId++ ); }
205 inline ::rtl::OUString GetUniqueIdOUString() { return ::rtl::OUString::valueOf( mnMaxDocId++ ); }
207 + /** Write the document properties into into the current OPC package.
209 + @param xProperties The document properties to export.
213 + XmlFilterBase& exportDocumentProperties( ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentProperties > xProperties );
216 virtual StorageRef implCreateStorage(
217 ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxInStream,
218 diff --git oox/inc/oox/export/drawingml.hxx oox/inc/oox/export/drawingml.hxx
220 index 0000000..3c89b99
222 +++ oox/inc/oox/export/drawingml.hxx
224 +#ifndef _OOX_EXPORT_DRAWINGML_HXX_
225 +#define _OOX_EXPORT_DRAWINGML_HXX_
227 +#include <oox/dllapi.h>
228 +#include <sax/fshelper.hxx>
229 +#include <rtl/strbuf.hxx>
230 +#include <com/sun/star/awt/FontDescriptor.hpp>
231 +#include <com/sun/star/uno/XReference.hpp>
232 +#include <tools/poly.hxx>
233 +#include <svx/escherex.hxx>
238 +namespace com { namespace sun { namespace star {
240 + class XPropertySet;
241 + class XPropertyState;
247 + class XTextContent;
254 + class XmlFilterBase;
257 +namespace drawingml {
259 +class OOX_DLLPUBLIC DrawingML {
261 + enum DocumentType { DOCUMENT_DOCX, DOCUMENT_PPTX, DOCUMENT_XLSX };
264 + ::sax_fastparser::FSHelperPtr mpFS;
265 + ::oox::core::XmlFilterBase* mpFB;
267 + static int mnImageCounter;
269 + /// To specify where write eg. the images to (like 'ppt', or 'word' - according to the OPC).
270 + DocumentType meDocumentType;
273 + ::com::sun::star::uno::Any mAny;
275 + bool GetProperty( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet, String aName );
276 + bool GetPropertyAndState( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet,
277 + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState > rXPropState,
278 + String aName, ::com::sun::star::beans::PropertyState& eState );
279 + const char* GetFieldType( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > rRun );
281 + rtl::OUString WriteImage( const rtl::OUString& rURL );
284 + DrawingML( ::sax_fastparser::FSHelperPtr pFS, ::oox::core::XmlFilterBase* pFB = NULL, DocumentType eDocumentType = DOCUMENT_PPTX ) : mpFS( pFS ), mpFB( pFB ), meDocumentType( eDocumentType ) {}
285 + void SetFS( ::sax_fastparser::FSHelperPtr pFS ) { mpFS = pFS; }
286 + ::sax_fastparser::FSHelperPtr GetFS() { return mpFS; }
287 + ::oox::core::XmlFilterBase* GetFB() { return mpFB; }
289 + rtl::OUString WriteImage( const Graphic &rGraphic );
291 + void WriteColor( sal_uInt32 nColor );
292 + void WriteGradientStop( sal_uInt16 nStop, sal_uInt32 nColor );
293 + void WriteLineArrow( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet, sal_Bool bLineStart );
294 + void WriteConnectorConnections( EscherConnectorListEntry& rConnectorEntry, sal_Int32 nStartID, sal_Int32 nEndID );
296 + void WriteSolidFill( sal_uInt32 nColor );
297 + void WriteSolidFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet );
298 + void WriteGradientFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet );
299 + void WriteBlipFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet, String sURLPropName, sal_Int32 nXmlNamespace );
300 + void WriteBlipFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet, String sURLPropName );
301 + void WriteOutline( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet );
302 + void WriteStretch();
304 + ::rtl::OUString WriteBlip( ::rtl::OUString& rURL );
305 + void WriteBlipMode( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet );
307 + void WriteShapeTransformation( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > rXShape,
308 + sal_Bool bFlipH = false, sal_Bool bFlipV = false, sal_Int32 nRotation = 0 );
309 + void WriteTransformation( const Rectangle& rRectangle,
310 + sal_Bool bFlipH = false, sal_Bool bFlipV = false, sal_Int32 nRotation = 0 );
312 + void WriteText( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > rXShape );
313 + void WriteParagraph( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > rParagraph );
314 + void WriteParagraphProperties( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > rParagraph );
315 + void WriteParagraphNumbering( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet,
316 + sal_Int16 nLevel );
317 + void WriteRun( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > rRun );
318 + void WriteRunProperties( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > rRun );
320 + void WritePresetShape( const char* pShape );
321 + void WritePresetShape( const char* pShape, MSO_SPT eShapeType, sal_Bool bPredefinedHandlesUsed, sal_Int32 nAdjustmentsWhichNeedsToBeConverted, const ::com::sun::star::beans::PropertyValue& rProp );
322 + void WritePolyPolygon( const PolyPolygon& rPolyPolygon );
324 + static void ResetCounters();
326 + void GetUUID( ::rtl::OStringBuffer& rBuffer );
328 + static sal_Unicode SubstituteBullet( sal_Unicode cBulletId, ::com::sun::star::awt::FontDescriptor& rFontDesc );
330 + sal_uInt32 ColorWithIntensity( sal_uInt32 nColor, sal_uInt32 nIntensity );
332 + static const char* GetAlignment( sal_Int32 nAlignment );
339 diff --git oox/inc/oox/export/shapes.hxx oox/inc/oox/export/shapes.hxx
341 index 0000000..40b87c4
343 +++ oox/inc/oox/export/shapes.hxx
345 +/*************************************************************************
347 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
349 + * Copyright 2008 by Sun Microsystems, Inc.
351 + * OpenOffice.org - a multi-platform office productivity suite
356 + * This file is part of OpenOffice.org.
358 + * OpenOffice.org is free software: you can redistribute it and/or modify
359 + * it under the terms of the GNU Lesser General Public License version 3
360 + * only, as published by the Free Software Foundation.
362 + * OpenOffice.org is distributed in the hope that it will be useful,
363 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
364 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
365 + * GNU Lesser General Public License version 3 for more details
366 + * (a copy is included in the LICENSE file that accompanied this code).
368 + * You should have received a copy of the GNU Lesser General Public License
369 + * version 3 along with OpenOffice.org. If not, see
370 + * <http://www.openoffice.org/license.html>
371 + * for a copy of the LGPLv3 License.
373 + ************************************************************************/
375 +#ifndef _OOX_EXPORT_SHAPES_HXX_
376 +#define _OOX_EXPORT_SHAPES_HXX_
378 +#include <oox/dllapi.h>
379 +#include <com/sun/star/uno/XReference.hpp>
380 +#include <oox/export/drawingml.hxx>
381 +#include <sax/fshelper.hxx>
382 +#include <vcl/mapmod.hxx>
385 +namespace com { namespace sun { namespace star {
387 + class XPropertySet;
395 +namespace oox { namespace drawingml {
397 +class OOX_DLLPUBLIC ShapeExport : public DrawingML {
399 + sal_Int32 mnXmlNamespace;
400 + sal_Int32 mnShapeIdMax, mnPictureIdMax;
401 + Fraction maFraction;
402 + MapMode maMapModeSrc, maMapModeDest;
404 + ::com::sun::star::awt::Size MapSize( const ::com::sun::star::awt::Size& ) const;
408 + bool operator()( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape> s1, const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape> s2 ) const
416 + std::hash<const char*> maHashFunction;
418 + size_t operator()( const ::com::sun::star::uno::Reference < ::com::sun::star::drawing::XShape > ) const;
421 + typedef std::hash_map< const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape>, sal_Int32, ShapeHash, ShapeCheck> ShapeHashMap;
422 + ShapeHashMap maShapeMap;
425 + ShapeExport( sal_Int32 nXmlNamespace, ::sax_fastparser::FSHelperPtr pFS, ::oox::core::XmlFilterBase* pFB = NULL, DocumentType eDocumentType = DOCUMENT_PPTX );
426 + virtual ~ShapeExport() {}
428 + sal_Int32 GetXmlNamespace() const;
429 + ShapeExport& SetXmlNamespace( sal_Int32 nXmlNamespace );
431 + static sal_Bool NonEmptyText( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
433 + virtual ShapeExport&
434 + WriteBezierShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape, sal_Bool bClosed );
435 + virtual ShapeExport&
436 + WriteClosedBezierShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
437 + virtual ShapeExport&
438 + WriteConnectorShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
439 + virtual ShapeExport&
440 + WriteCustomShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
441 + virtual ShapeExport&
442 + WriteEllipseShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
443 + virtual ShapeExport&
444 + WriteFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xPropSet );
445 + virtual ShapeExport&
446 + WriteGraphicObjectShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
447 + virtual ShapeExport&
448 + WriteLineShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
449 + virtual ShapeExport&
450 + WriteNonVisualDrawingProperties( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape, const char* sName );
451 + virtual ShapeExport&
452 + WriteNonVisualProperties( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
453 + virtual ShapeExport&
454 + WriteOpenBezierShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
455 + virtual ShapeExport&
456 + WriteRectangleShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
459 + * Write the DrawingML for a particular shape.
461 + * <p>This is the member function you want. It performs the type lookup and
462 + * invokes the appropriate corresponding Write*() method for the specific
465 + * <p>To write an XShape, XShape::getShapeType() is called to determine
466 + * the shape type, and the corresponding method in this table is
470 + * <tr><th>Shape Type</th><th>Method</th></tr>
471 + * <tr><td><tt>com.sun.star.drawing.ClosedBezierShape</tt></td> <td>ShapeExport::WriteClosedBezierShape</td></tr>
472 + * <tr><td><tt>com.sun.star.drawing.CustomShape</tt></td> <td>ShapeExport::WriteCustomShape</td></tr>
473 + * <tr><td><tt>com.sun.star.drawing.EllipseShape</tt></td> <td>ShapeExport::WriteEllipseShape</td></tr>
474 + * <tr><td><tt>com.sun.star.drawing.GraphicObjectShape</tt></td> <td>ShapeExport::WriteGraphicObjectShape</td></tr>
475 + * <tr><td><tt>com.sun.star.drawing.LineShape</tt></td> <td>ShapeExport::WriteLineShape</td></tr>
476 + * <tr><td><tt>com.sun.star.drawing.OpenBezierShape</tt></td> <td>ShapeExport::WriteOpenBezierShape</td></tr>
477 + * <tr><td><tt>com.sun.star.drawing.RectangleShape</tt></td> <td>ShapeExport::WriteRectangleShape</td></tr>
478 + * <tr><td><tt>com.sun.star.drawing.TextShape</tt></td> <td>ShapeExport::WriteTextShape</td></tr>
479 + * <tr><td><tt>com.sun.star.presentation.DateTimeShape</tt></td> <td>ShapeExport::WriteTextShape</td></tr>
480 + * <tr><td><tt>com.sun.star.presentation.FooterShape</tt></td> <td>ShapeExport::WriteTextShape</td></tr>
481 + * <tr><td><tt>com.sun.star.presentation.HeaderShape</tt></td> <td>ShapeExport::WriteTextShape</td></tr>
482 + * <tr><td><tt>com.sun.star.presentation.NotesShape</tt></td> <td>ShapeExport::WriteTextShape</td></tr>
483 + * <tr><td><tt>com.sun.star.presentation.OutlinerShape</tt></td> <td>ShapeExport::WriteTextShape</td></tr>
484 + * <tr><td><tt>com.sun.star.presentation.SlideNumberShape</tt></td><td>ShapeExport::WriteTextShape</td></tr>
485 + * <tr><td><tt>com.sun.star.presentation.TitleTextShape</tt></td> <td>ShapeExport::WriteTextShape</td></tr>
488 + * <p>If the shape type is not recognized, then
489 + * <tt>ShapeExport::WriteUnknownShape</tt> is called.</p>
491 + * @param xShape The shape to export as DrawingML.
492 + * @return <tt>*this</tt>
494 + virtual ShapeExport&
495 + WriteShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
496 + virtual ShapeExport&
497 + WriteTextBox( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
498 + virtual ShapeExport&
499 + WriteTextShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
500 + virtual ShapeExport&
501 + WriteUnknownShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
503 + sal_Int32 GetNewShapeID( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > rShape );
504 + sal_Int32 GetShapeID( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > rShape );
509 +#endif /* ndef _OOX_EXPORT_SHAPES_HXX_ */
510 diff --git oox/inc/oox/export/utils.hxx oox/inc/oox/export/utils.hxx
512 index 0000000..5063105
514 +++ oox/inc/oox/export/utils.hxx
516 +/*************************************************************************
518 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
520 + * Copyright 2008 by Sun Microsystems, Inc.
522 + * OpenOffice.org - a multi-platform office productivity suite
527 + * This file is part of OpenOffice.org.
529 + * OpenOffice.org is free software: you can redistribute it and/or modify
530 + * it under the terms of the GNU Lesser General Public License version 3
531 + * only, as published by the Free Software Foundation.
533 + * OpenOffice.org is distributed in the hope that it will be useful,
534 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
535 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
536 + * GNU Lesser General Public License version 3 for more details
537 + * (a copy is included in the LICENSE file that accompanied this code).
539 + * You should have received a copy of the GNU Lesser General Public License
540 + * version 3 along with OpenOffice.org. If not, see
541 + * <http://www.openoffice.org/license.html>
542 + * for a copy of the LGPLv3 License.
544 + ************************************************************************/
546 +#ifndef _OOX_EXPORT_UTILS_HXX_
547 +#define _OOX_EXPORT_UTILS_HXX_
549 +#define S(x) String( RTL_CONSTASCII_USTRINGPARAM( x ) )
550 +#define US(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ))
551 +#define I32S(x) OString::valueOf( (sal_Int32) x ).getStr()
552 +#define I64S(x) OString::valueOf( (sal_Int64) x ).getStr()
553 +#define H32S(x) OString::valueOf( (sal_Int32) x, 16 ).getStr()
554 +#define H64S(x) OString::valueOf( (sal_Int64) x, 16 ).getStr()
555 +#define IS(x) OString::valueOf( x ).getStr()
556 +#define USS(x) OUStringToOString( x, RTL_TEXTENCODING_UTF8 ).getStr()
557 +#define ST(x) ByteString( x, RTL_TEXTENCODING_UTF8 ).GetBuffer()
560 +# if OSL_DEBUG_LEVEL > 0
567 +// ---------------------------------------------------------------------------------------------
569 +static inline sal_Int64 PPTtoEMU( INT32 nPPT )
571 + return (sal_Int64)( (double)nPPT * 1587.5 );
574 +// ---------------------------------------------------------------------------------------------
576 +static inline sal_Int64 MM100toEMU( INT32 nMM100 )
578 + return (sal_Int64)nMM100 * 360;
581 +// ---------------------------------------------------------------------------------------------
583 +static inline sal_Int64 TwipsToEMU( sal_Int32 nTwips )
585 + return sal_Int64( nTwips ) * 635;
589 diff --git oox/inc/oox/export/vmlexport.hxx oox/inc/oox/export/vmlexport.hxx
591 index 0000000..199bc43
593 +++ oox/inc/oox/export/vmlexport.hxx
595 +/*************************************************************************
597 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
599 + * Copyright 2008 by Sun Microsystems, Inc.
601 + * OpenOffice.org - a multi-platform office productivity suite
606 + * This file is part of OpenOffice.org.
608 + * OpenOffice.org is free software: you can redistribute it and/or modify
609 + * it under the terms of the GNU Lesser General Public License version 3
610 + * only, as published by the Free Software Foundation.
612 + * OpenOffice.org is distributed in the hope that it will be useful,
613 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
614 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
615 + * GNU Lesser General Public License version 3 for more details
616 + * (a copy is included in the LICENSE file that accompanied this code).
618 + * You should have received a copy of the GNU Lesser General Public License
619 + * version 3 along with OpenOffice.org. If not, see
620 + * <http://www.openoffice.org/license.html>
621 + * for a copy of the LGPLv3 License.
623 + ************************************************************************/
625 +#include <oox/dllapi.h>
626 +#include <sax/fshelper.hxx>
627 +#include <svx/escherex.hxx>
631 + class OStringBuffer;
638 +class OOX_DLLPUBLIC VMLExport : public EscherEx
640 + /// Fast serializer to output the data
641 + ::sax_fastparser::FSHelperPtr m_pSerializer;
643 + /// Fill the shape attributes as they come.
644 + ::sax_fastparser::FastAttributeList *m_pShapeAttrList;
646 + /// Remember the shape type.
647 + sal_uInt32 m_nShapeType;
649 + /// Remember the shape flags.
650 + sal_uInt32 m_nShapeFlags;
652 + /// Remember style, the most important shape attribute ;-)
653 + rtl::OStringBuffer *m_pShapeStyle;
655 + /// Remember which shape types we had already written.
656 + bool *m_pShapeTypeWritten;
659 + VMLExport( ::sax_fastparser::FSHelperPtr pSerializer );
660 + virtual ~VMLExport();
662 + ::sax_fastparser::FSHelperPtr
663 + GetFS() { return m_pSerializer; }
665 + /// Export the sdr object as VML.
667 + /// Call this when you need to export the object as VML.
668 + using EscherEx::AddSdrObject;
671 + /// Add an attribute to the generated <v:shape/> element.
673 + /// This should be called from within StartShape() to ensure that the
674 + /// added attribute is preserved.
675 + void AddShapeAttribute( sal_Int32 nAttribute, const rtl::OString& sValue );
677 + /// Start the shape for which we just collected the information.
679 + /// Returns the element's tag number, -1 means we wrote nothing.
680 + virtual sal_Int32 StartShape();
684 + /// The parameter is just what we got from StartShape().
685 + virtual void EndShape( sal_Int32 nShapeElement );
687 + virtual void Commit( EscherPropertyContainer& rProps, const Rectangle& rRect );
691 + virtual void OpenContainer( UINT16 nEscherContainer, int nRecInstance = 0 );
692 + virtual void CloseContainer();
694 + virtual UINT32 EnterGroup( const String& rShapeName, const Rectangle* pBoundRect = 0 );
695 + virtual void LeaveGroup();
697 + virtual void AddShape( UINT32 nShapeType, UINT32 nShapeFlags, UINT32 nShapeId = 0 );
700 + /// Create an OString representing the id from a numerical id.
701 + static rtl::OString ShapeIdString( sal_uInt32 nId );
703 + /// Add starting and ending point of a line to the m_pShapeAttrList.
704 + void AddLineDimensions( const Rectangle& rRectangle );
706 + /// Add position and size to the OStringBuffer.
707 + void AddRectangleDimensions( rtl::OStringBuffer& rBuffer, const Rectangle& rRectangle );
713 diff --git oox/prj/build.lst oox/prj/build.lst
714 index b582229..e3d36b8 100644
715 --- oox/prj/build.lst
716 +++ oox/prj/build.lst
718 -oox oox : vos cppu cppuhelper comphelper sal offapi sax basegfx tools unotools BOOST:boost NULL
719 +oox oox : vos cppu cppuhelper comphelper sal offapi sax basegfx svx tools unotools vcl BOOST:boost NULL
720 oox oox usr1 - all oox_mkout NULL
721 oox oox\prj get - all oox_prj NULL
722 oox oox\source\token nmake - all oox_token NULL
723 @@ -15,4 +15,5 @@ oox oox\source\vml nmake - all oox_vml oox_token NULL
724 oox oox\source\xls nmake - all oox_xls oox_token NULL
725 oox oox\source\dump nmake - all oox_dump oox_token NULL
726 oox oox\source\shape nmake - all oox_shape oox_token NULL
727 -oox oox\util nmake - all oox_util oox_token oox_helper oox_core oox_ole oox_vml oox_drawingml oox_diagram oox_chart oox_table oox_ppt oox_xls oox_dump oox_shape oox_docprop NULL
728 +oox oox\source\export nmake - all oox_export oox_token NULL
729 +oox oox\util nmake - all oox_util oox_token oox_helper oox_core oox_ole oox_vml oox_drawingml oox_diagram oox_chart oox_table oox_ppt oox_xls oox_dump oox_export oox_shape oox_docprop NULL
730 diff --git oox/prj/d.lst oox/prj/d.lst
731 index 54fc7f7..2bf664a 100644
735 mkdir: %_DEST%\inc%_EXT%\oox
736 mkdir: %_DEST%\inc%_EXT%\oox\core
737 +mkdir: %_DEST%\inc%_EXT%\oox\export
738 mkdir: %_DEST%\inc%_EXT%\oox\helper
739 mkdir: %_DEST%\inc%_EXT%\oox\vml
740 mkdir: %_DEST%\inc%_EXT%\oox\drawingml
741 @@ -27,6 +28,7 @@ mkdir: %_DEST%\inc%_EXT%\oox\drawingml\table
742 ..\inc\oox\drawingml\chart\chartconverter.hxx %_DEST%\inc%_EXT%\oox\drawingml\chart\chartconverter.hxx
743 ..\inc\oox\drawingml\table\tablestylelist.hxx %_DEST%\inc%_EXT%\oox\drawingml\table\tablestylelist.hxx
744 ..\inc\oox\vml\shape.hxx %_DEST%\inc%_EXT%\oox\vml\shape.hxx
745 +..\inc\oox\export\*.hxx %_DEST%\inc%_EXT%\oox\export\*.hxx
747 ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
749 diff --git oox/source/core/xmlfilterbase.cxx oox/source/core/xmlfilterbase.cxx
750 index 3e6d72b..8ff8f0d 100644
751 --- oox/source/core/xmlfilterbase.cxx
752 +++ oox/source/core/xmlfilterbase.cxx
754 ************************************************************************/
756 #include "oox/core/xmlfilterbase.hxx"
757 +#include "oox/core/fasttokenhandler.hxx"
758 +#include "oox/core/fragmenthandler.hxx"
759 +#include "oox/core/modelobjectcontainer.hxx"
760 +#include "oox/core/namespaces.hxx"
761 +#include "oox/core/recordparser.hxx"
762 +#include "oox/core/relationshandler.hxx"
763 +#include "oox/helper/containerhelper.hxx"
764 +#include "oox/helper/zipstorage.hxx"
771 #include <rtl/ustrbuf.hxx>
773 #include <com/sun/star/beans/XPropertySet.hpp>
774 #include <com/sun/star/container/XNameContainer.hpp>
775 #include <com/sun/star/document/XDocumentSubStorageSupplier.hpp>
777 #include <com/sun/star/embed/XRelationshipAccess.hpp>
778 #include <com/sun/star/xml/sax/InputSource.hpp>
779 #include <com/sun/star/xml/sax/XFastParser.hpp>
780 +#include <com/sun/star/document/XDocumentProperties.hpp>
781 #include <sax/fshelper.hxx>
782 -#include "oox/helper/containerhelper.hxx"
783 -#include "oox/helper/zipstorage.hxx"
784 -#include "oox/core/fasttokenhandler.hxx"
785 -#include "oox/core/fragmenthandler.hxx"
786 -#include "oox/core/modelobjectcontainer.hxx"
787 -#include "oox/core/namespaces.hxx"
788 -#include "oox/core/recordparser.hxx"
789 -#include "oox/core/relationshandler.hxx"
791 +#include "tokens.hxx"
793 using ::rtl::OUString;
794 using ::rtl::OUStringBuffer;
795 @@ -61,6 +68,7 @@ using ::com::sun::star::uno::RuntimeException;
796 using ::com::sun::star::uno::UNO_QUERY;
797 using ::com::sun::star::uno::UNO_QUERY_THROW;
798 using ::com::sun::star::uno::makeAny;
799 +using ::com::sun::star::lang::Locale;
800 using ::com::sun::star::lang::XMultiServiceFactory;
801 using ::com::sun::star::embed::XRelationshipAccess;
802 using ::com::sun::star::embed::XStorage;
803 @@ -75,6 +83,8 @@ using ::com::sun::star::xml::sax::XFastTokenHandler;
804 using ::com::sun::star::xml::sax::XFastDocumentHandler;
805 using ::com::sun::star::xml::sax::InputSource;
806 using ::com::sun::star::xml::sax::SAXException;
807 +using ::com::sun::star::document::XDocumentProperties;
808 +using ::com::sun::star::util::DateTime;
809 using ::sax_fastparser::FastSerializerHelper;
810 using ::sax_fastparser::FSHelperPtr;
812 @@ -363,6 +373,186 @@ OUString XmlFilterBase::addRelation( const Reference< XOutputStream > xOutputStr
817 +writeElement( FSHelperPtr pDoc, sal_Int32 nXmlElement, const OUString& sValue )
819 + if( sValue.getLength() == 0 )
821 + pDoc->startElement( nXmlElement, FSEND );
822 + pDoc->write( sValue );
823 + pDoc->endElement( nXmlElement );
827 +writeElement( FSHelperPtr pDoc, sal_Int32 nXmlElement, const sal_Int32 nValue )
829 + pDoc->startElement( nXmlElement, FSEND );
830 + pDoc->write( OUString::valueOf( nValue ) );
831 + pDoc->endElement( nXmlElement );
835 +writeElement( FSHelperPtr pDoc, sal_Int32 nXmlElement, const DateTime& rTime )
837 + if( rTime.Year == 0 )
840 + pDoc->startElement( nXmlElement,
841 + FSNS( XML_xsi, XML_type ), "dcterms:W3CDTF",
845 + snprintf( pStr, sizeof( pStr ), "%d-%02d-%02dT%02d:%02d:%02d.%02dZ",
846 + rTime.Year, rTime.Month, rTime.Day,
847 + rTime.Hours, rTime.Minutes, rTime.Seconds,
848 + rTime.HundredthSeconds );
850 + pDoc->write( pStr );
852 + pDoc->endElement( nXmlElement );
856 +writeElement( FSHelperPtr pDoc, sal_Int32 nXmlElement, Sequence< rtl::OUString > aItems )
858 + if( aItems.getLength() == 0 )
861 + OUStringBuffer sRep;
862 + sRep.append( aItems[ 0 ] );
864 + for( sal_Int32 i = 1, end = aItems.getLength(); i < end; ++i )
866 + sRep.appendAscii( " " ).append( aItems[ i ] );
869 + writeElement( pDoc, nXmlElement, sRep.makeStringAndClear() );
873 +writeElement( FSHelperPtr pDoc, sal_Int32 nXmlElement, const Locale& rLocale )
875 + // TODO: what to do with .Country and .Variant
876 + writeElement( pDoc, nXmlElement, rLocale.Language );
880 +writeCoreProperties( XmlFilterBase& rSelf, Reference< XDocumentProperties > xProperties )
883 + CREATE_OUSTRING( "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" ),
884 + CREATE_OUSTRING( "docProps/core.xml" ) );
885 + FSHelperPtr pCoreProps = rSelf.openOutputStreamWithSerializer(
886 + CREATE_OUSTRING( "docProps/core.xml" ),
887 + CREATE_OUSTRING( "application/vnd.openxmlformats-package.core-properties+xml" ) );
888 + pCoreProps->startElementNS( XML_cp, XML_coreProperties,
889 + FSNS( XML_xmlns, XML_cp ), "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
890 + FSNS( XML_xmlns, XML_dc ), "http://purl.org/dc/elements/1.1/",
891 + FSNS( XML_xmlns, XML_dcterms ), "http://purl.org/dc/terms/",
892 + FSNS( XML_xmlns, XML_dcmitype ), "http://purl.org/dc/dcmitype/",
893 + FSNS( XML_xmlns, XML_xsi ), "http://www.w3.org/2001/XMLSchema-instance",
897 + writeElement( pCoreProps, FSNS( XML_cp, XML_category ), "category" );
898 + writeElement( pCoreProps, FSNS( XML_cp, XML_contentStatus ), "status" );
899 + writeElement( pCoreProps, FSNS( XML_cp, XML_contentType ), "contentType" );
900 +#endif /* def OOXTODO */
901 + writeElement( pCoreProps, FSNS( XML_dcterms, XML_created ), xProperties->getCreationDate() );
902 + writeElement( pCoreProps, FSNS( XML_dc, XML_creator ), xProperties->getAuthor() );
903 + writeElement( pCoreProps, FSNS( XML_dc, XML_description ), xProperties->getDescription() );
905 + writeElement( pCoreProps, FSNS( XML_dc, XML_identifier ), "ident" );
906 +#endif /* def OOXTODO */
907 + writeElement( pCoreProps, FSNS( XML_cp, XML_keywords ), xProperties->getKeywords() );
908 + writeElement( pCoreProps, FSNS( XML_dc, XML_language ), xProperties->getLanguage() );
909 + writeElement( pCoreProps, FSNS( XML_cp, XML_lastModifiedBy ), xProperties->getModifiedBy() );
910 + writeElement( pCoreProps, FSNS( XML_cp, XML_lastPrinted ), xProperties->getPrintDate() );
911 + writeElement( pCoreProps, FSNS( XML_dcterms, XML_modified ), xProperties->getModificationDate() );
912 + writeElement( pCoreProps, FSNS( XML_cp, XML_revision ), xProperties->getEditingCycles() );
913 + writeElement( pCoreProps, FSNS( XML_dc, XML_subject ), xProperties->getSubject() );
914 + writeElement( pCoreProps, FSNS( XML_dc, XML_title ), xProperties->getTitle() );
916 + writeElement( pCoreProps, FSNS( XML_cp, XML_version ), "version" );
917 +#endif /* def OOXTODO */
919 + pCoreProps->endElementNS( XML_cp, XML_coreProperties );
923 +writeAppProperties( XmlFilterBase& rSelf, Reference< XDocumentProperties > xProperties )
926 + CREATE_OUSTRING( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" ),
927 + CREATE_OUSTRING( "docProps/app.xml" ) );
928 + FSHelperPtr pAppProps = rSelf.openOutputStreamWithSerializer(
929 + CREATE_OUSTRING( "docProps/app.xml" ),
930 + CREATE_OUSTRING( "application/vnd.openxmlformats-officedocument.extended-properties+xml" ) );
931 + pAppProps->startElement( XML_Properties,
932 + XML_xmlns, "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
933 + FSNS( XML_xmlns, XML_vt ), "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
936 + writeElement( pAppProps, XML_Template, xProperties->getTemplateName() );
938 + writeElement( pAppProps, XML_Manager, "manager" );
939 + writeElement( pAppProps, XML_Company, "company" );
940 + writeElement( pAppProps, XML_Pages, "pages" );
941 + writeElement( pAppProps, XML_Words, "words" );
942 + writeElement( pAppProps, XML_Characters, "characters" );
943 + writeElement( pAppProps, XML_PresentationFormat, "presentation format" );
944 + writeElement( pAppProps, XML_Lines, "lines" );
945 + writeElement( pAppProps, XML_Paragraphs, "paragraphs" );
946 + writeElement( pAppProps, XML_Slides, "slides" );
947 + writeElement( pAppProps, XML_Notes, "notes" );
948 +#endif /* def OOXTODO */
949 + writeElement( pAppProps, XML_TotalTime, xProperties->getEditingDuration() );
951 + writeElement( pAppProps, XML_HiddenSlides, "hidden slides" );
952 + writeElement( pAppProps, XML_MMClips, "mm clips" );
953 + writeElement( pAppProps, XML_ScaleCrop, "scale crop" );
954 + writeElement( pAppProps, XML_HeadingPairs, "heading pairs" );
955 + writeElement( pAppProps, XML_TitlesOfParts, "titles of parts" );
956 + writeElement( pAppProps, XML_LinksUpToDate, "links up-to-date" );
957 + writeElement( pAppProps, XML_CharactersWithSpaces, "characters with spaces" );
958 + writeElement( pAppProps, XML_SharedDoc, "shared doc" );
959 + writeElement( pAppProps, XML_HyperlinkBase, "hyperlink base" );
960 + writeElement( pAppProps, XML_HLinks, "hlinks" );
961 + writeElement( pAppProps, XML_HyperlinksChanged, "hyperlinks changed" );
962 + writeElement( pAppProps, XML_DigSig, "digital signature" );
963 +#endif /* def OOXTODO */
964 + writeElement( pAppProps, XML_Application, xProperties->getGenerator() );
966 + writeElement( pAppProps, XML_AppVersion, "app version" );
967 + writeElement( pAppProps, XML_DocSecurity, "doc security" );
968 +#endif /* def OOXTODO */
969 + pAppProps->endElement( XML_Properties );
972 +XmlFilterBase& XmlFilterBase::exportDocumentProperties( Reference< XDocumentProperties > xProperties )
974 + if( xProperties.is() )
976 + writeCoreProperties( *this, xProperties );
977 + writeAppProperties( *this, xProperties );
978 + Sequence< ::com::sun::star::beans::NamedValue > aStats = xProperties->getDocumentStatistics();
979 + printf( "# Document Statistics:\n" );
980 + for( sal_Int32 i = 0, end = aStats.getLength(); i < end; ++i )
982 + ::com::sun::star::uno::Any aValue = aStats[ i ].Value;
983 + ::rtl::OUString sValue;
984 + bool bHaveString = aValue >>= sValue;
985 + printf ("#\t%s=%s [%s]\n",
986 + OUStringToOString( aStats[ i ].Name, RTL_TEXTENCODING_UTF8 ).getStr(),
988 + ? OUStringToOString( sValue, RTL_TEXTENCODING_UTF8 ).getStr()
989 + : "<unconvertable>",
990 + OUStringToOString( aValue.getValueTypeName(), RTL_TEXTENCODING_UTF8 ).getStr());
996 // ============================================================================
999 diff --git oox/source/export/README oox/source/export/README
1000 new file mode 100644
1001 index 0000000..56195b9
1003 +++ oox/source/export/README
1005 +presetTextWarpDefinitions.xml and presetShapeDefinitions.xml come from the
1006 +OOXML documentation (TC45).
1007 diff --git oox/source/export/drawingml.cxx oox/source/export/drawingml.cxx
1008 new file mode 100644
1009 index 0000000..1d29513
1011 +++ oox/source/export/drawingml.cxx
1013 +/*************************************************************************
1015 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1017 + * Copyright 2008 by Sun Microsystems, Inc.
1019 + * OpenOffice.org - a multi-platform office productivity suite
1024 + * This file is part of OpenOffice.org.
1026 + * OpenOffice.org is free software: you can redistribute it and/or modify
1027 + * it under the terms of the GNU Lesser General Public License version 3
1028 + * only, as published by the Free Software Foundation.
1030 + * OpenOffice.org is distributed in the hope that it will be useful,
1031 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1032 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1033 + * GNU Lesser General Public License version 3 for more details
1034 + * (a copy is included in the LICENSE file that accompanied this code).
1036 + * You should have received a copy of the GNU Lesser General Public License
1037 + * version 3 along with OpenOffice.org. If not, see
1038 + * <http://www.openoffice.org/license.html>
1039 + * for a copy of the LGPLv3 License.
1041 + ************************************************************************/
1043 +#include "tokens.hxx"
1044 +#include "oox/core/xmlfilterbase.hxx"
1045 +#include "oox/export/drawingml.hxx"
1046 +#include "oox/export/utils.hxx"
1049 +#include <com/sun/star/awt/CharSet.hpp>
1050 +#include <com/sun/star/awt/FontDescriptor.hpp>
1051 +#include <com/sun/star/awt/FontSlant.hpp>
1052 +#include <com/sun/star/awt/FontWeight.hpp>
1053 +#include <com/sun/star/awt/FontUnderline.hpp>
1054 +#include <com/sun/star/awt/Gradient.hpp>
1055 +#include <com/sun/star/beans/XPropertySet.hpp>
1056 +#include <com/sun/star/beans/XPropertyState.hpp>
1057 +#include <com/sun/star/container/XEnumerationAccess.hpp>
1058 +#include <com/sun/star/drawing/BitmapMode.hpp>
1059 +#include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
1060 +#include <com/sun/star/drawing/LineDash.hpp>
1061 +#include <com/sun/star/drawing/LineJoint.hpp>
1062 +#include <com/sun/star/drawing/LineStyle.hpp>
1063 +#include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
1064 +#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
1065 +#include <com/sun/star/i18n/ScriptType.hpp>
1066 +#include <com/sun/star/io/XOutputStream.hpp>
1067 +#include <com/sun/star/style/ParagraphAdjust.hpp>
1068 +#include <com/sun/star/text/XText.hpp>
1069 +#include <com/sun/star/text/XTextContent.hpp>
1070 +#include <com/sun/star/text/XTextField.hpp>
1071 +#include <com/sun/star/text/XTextRange.hpp>
1072 +#include <tools/stream.hxx>
1073 +#include <tools/string.hxx>
1074 +#include <vcl/cvtgrf.hxx>
1075 +#include <vcl/fontcvt.hxx>
1076 +#include <vcl/graph.hxx>
1077 +#include <goodies/grfmgr.hxx>
1078 +#include <rtl/strbuf.hxx>
1079 +#include <sfx2/app.hxx>
1080 +#include <svtools/languageoptions.hxx>
1081 +#include <svx/escherex.hxx>
1082 +#include <svx/svxenum.hxx>
1084 +using namespace ::com::sun::star;
1085 +using namespace ::com::sun::star::uno;
1086 +using namespace ::com::sun::star::drawing;
1087 +using namespace ::com::sun::star::i18n;
1088 +using ::com::sun::star::beans::PropertyState;
1089 +using ::com::sun::star::beans::PropertyValue;
1090 +using ::com::sun::star::beans::XPropertySet;
1091 +using ::com::sun::star::beans::XPropertyState;
1092 +using ::com::sun::star::container::XEnumeration;
1093 +using ::com::sun::star::container::XEnumerationAccess;
1094 +using ::com::sun::star::container::XIndexAccess;
1095 +using ::com::sun::star::io::XOutputStream;
1096 +using ::com::sun::star::text::XText;
1097 +using ::com::sun::star::text::XTextContent;
1098 +using ::com::sun::star::text::XTextField;
1099 +using ::com::sun::star::text::XTextRange;
1100 +using ::rtl::OString;
1101 +using ::rtl::OStringBuffer;
1102 +using ::rtl::OUString;
1103 +using ::rtl::OUStringBuffer;
1104 +using ::sax_fastparser::FSHelperPtr;
1106 +DBG(extern void dump_pset(Reference< XPropertySet > rXPropSet));
1109 +namespace drawingml {
1111 +#define GETA(propName) \
1112 + GetProperty( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( #propName ) ) )
1114 +#define GETAD(propName) \
1115 + ( GetPropertyAndState( rXPropSet, rXPropState, String( RTL_CONSTASCII_USTRINGPARAM( #propName ) ), eState ) && eState == beans::PropertyState_DIRECT_VALUE )
1117 +#define GET(variable, propName) \
1118 + if ( GETA(propName) ) \
1119 + mAny >>= variable;
1122 +int DrawingML::mnImageCounter = 1;
1124 +void DrawingML::ResetCounters()
1126 + mnImageCounter = 1;
1129 +bool DrawingML::GetProperty( Reference< XPropertySet > rXPropSet, String aName )
1131 + bool bRetValue = false;
1134 + mAny = rXPropSet->getPropertyValue( aName );
1135 + if ( mAny.hasValue() )
1137 + } catch( Exception& ) { /* printf ("exception when trying to get value of property: %s\n", ST(aName)); */ }
1142 +bool DrawingML::GetPropertyAndState( Reference< XPropertySet > rXPropSet, Reference< XPropertyState > rXPropState, String aName, PropertyState& eState )
1144 + bool bRetValue = false;
1147 + mAny = rXPropSet->getPropertyValue( aName );
1148 + if ( mAny.hasValue() ) {
1150 + eState = rXPropState->getPropertyState( aName );
1152 + } catch( Exception& ) { /* printf ("exception when trying to get value of property: %s\n", ST(aName)); */ }
1157 +void DrawingML::WriteColor( sal_uInt32 nColor )
1159 + OString sColor = OString::valueOf( ( sal_Int64 ) nColor, 16 );
1160 + if( sColor.getLength() < 6 ) {
1161 + OStringBuffer sBuf( "0" );
1162 + int remains = 5 - sColor.getLength();
1164 + while( remains > 0 ) {
1165 + sBuf.append( "0" );
1169 + sBuf.append( sColor );
1171 + sColor = sBuf.getStr();
1173 + mpFS->singleElementNS( XML_a, XML_srgbClr, XML_val, sColor.getStr(), FSEND );
1176 +void DrawingML::WriteSolidFill( sal_uInt32 nColor )
1178 + mpFS->startElementNS( XML_a, XML_solidFill, FSEND );
1179 + WriteColor( nColor );
1180 + mpFS->endElementNS( XML_a, XML_solidFill );
1183 +void DrawingML::WriteSolidFill( Reference< XPropertySet > rXPropSet )
1185 + if ( GetProperty( rXPropSet, S( "FillColor" ) ) )
1186 + WriteSolidFill( *((sal_uInt32*) mAny.getValue()) & 0xffffff );
1189 +void DrawingML::WriteGradientStop( sal_uInt16 nStop, sal_uInt32 nColor )
1191 + mpFS->startElementNS( XML_a, XML_gs,
1192 + XML_pos, I32S( nStop * 1000 ),
1194 + WriteColor( nColor );
1195 + mpFS->endElementNS( XML_a, XML_gs );
1198 +sal_uInt32 DrawingML::ColorWithIntensity( sal_uInt32 nColor, sal_uInt32 nIntensity )
1200 + return ( ( ( nColor & 0xff ) * nIntensity ) / 100 )
1201 + | ( ( ( ( ( nColor & 0xff00 ) >> 8 ) * nIntensity ) / 100 ) << 8 )
1202 + | ( ( ( ( ( nColor & 0xff0000 ) >> 8 ) * nIntensity ) / 100 ) << 8 );
1205 +void DrawingML::WriteGradientFill( Reference< XPropertySet > rXPropSet )
1207 + awt::Gradient aGradient;
1208 + if( GETA( FillGradient ) ) {
1209 + aGradient = *static_cast< const awt::Gradient* >( mAny.getValue() );
1211 + mpFS->startElementNS( XML_a, XML_gradFill, FSEND );
1213 + switch( aGradient.Style ) {
1215 + case GradientStyle_LINEAR:
1216 + mpFS->startElementNS( XML_a, XML_gsLst, FSEND );
1217 + WriteGradientStop( 0, ColorWithIntensity( aGradient.StartColor, aGradient.StartIntensity ) );
1218 + WriteGradientStop( 100, ColorWithIntensity( aGradient.EndColor, aGradient.EndIntensity ) );
1219 + mpFS->endElementNS( XML_a, XML_gsLst );
1220 + mpFS->singleElementNS( XML_a, XML_lin,
1221 + XML_ang, I32S( ( ( ( 3600 - aGradient.Angle + 900 ) * 6000 ) % 21600000 ) ),
1225 + case GradientStyle_AXIAL:
1226 + mpFS->startElementNS( XML_a, XML_gsLst, FSEND );
1227 + WriteGradientStop( 0, ColorWithIntensity( aGradient.EndColor, aGradient.EndIntensity ) );
1228 + WriteGradientStop( 50, ColorWithIntensity( aGradient.StartColor, aGradient.StartIntensity ) );
1229 + WriteGradientStop( 100, ColorWithIntensity( aGradient.EndColor, aGradient.EndIntensity ) );
1230 + mpFS->endElementNS( XML_a, XML_gsLst );
1231 + mpFS->singleElementNS( XML_a, XML_lin,
1232 + XML_ang, I32S( ( ( ( 3600 - aGradient.Angle + 900 ) * 6000 ) % 21600000 ) ),
1236 + /* I don't see how to apply transformation to gradients, so
1237 + * elliptical will end as radial and square as
1238 + * rectangular. also position offsets are not applied */
1239 + case GradientStyle_RADIAL:
1240 + case GradientStyle_ELLIPTICAL:
1241 + case GradientStyle_RECT:
1242 + case GradientStyle_SQUARE:
1243 + mpFS->startElementNS( XML_a, XML_gsLst, FSEND );
1244 + WriteGradientStop( 0, ColorWithIntensity( aGradient.EndColor, aGradient.EndIntensity ) );
1245 + WriteGradientStop( 100, ColorWithIntensity( aGradient.StartColor, aGradient.StartIntensity ) );
1246 + mpFS->endElementNS( XML_a, XML_gsLst );
1247 + mpFS->singleElementNS( XML_a, XML_path,
1248 + XML_path, ( aGradient.Style == awt::GradientStyle_RADIAL || aGradient.Style == awt::GradientStyle_ELLIPTICAL ) ? "circle" : "rect",
1253 + mpFS->endElementNS( XML_a, XML_gradFill );
1258 +void DrawingML::WriteLineArrow( Reference< XPropertySet > rXPropSet, sal_Bool bLineStart )
1260 + ESCHER_LineEnd eLineEnd;
1261 + sal_Int32 nArrowLength;
1262 + sal_Int32 nArrowWidth;
1264 + if ( EscherPropertyContainer::GetLineArrow( bLineStart, rXPropSet, eLineEnd, nArrowLength, nArrowWidth ) ) {
1267 + const char* width;
1269 + switch( nArrowLength ) {
1270 + case ESCHER_LineShortArrow:
1274 + case ESCHER_LineMediumLenArrow:
1277 + case ESCHER_LineLongArrow:
1282 + switch( eLineEnd ) {
1284 + case ESCHER_LineNoEnd:
1287 + case ESCHER_LineArrowEnd:
1288 + type = "triangle";
1290 + case ESCHER_LineArrowStealthEnd:
1293 + case ESCHER_LineArrowDiamondEnd:
1296 + case ESCHER_LineArrowOvalEnd:
1299 + case ESCHER_LineArrowOpenEnd:
1304 + switch( nArrowWidth ) {
1305 + case ESCHER_LineNarrowArrow:
1309 + case ESCHER_LineMediumWidthArrow:
1312 + case ESCHER_LineWideArrow:
1317 + mpFS->singleElementNS( XML_a, bLineStart ? XML_headEnd : XML_tailEnd,
1325 +void DrawingML::WriteOutline( Reference< XPropertySet > rXPropSet )
1327 + drawing::LineStyle aLineStyle( drawing::LineStyle_NONE );
1329 + GET( aLineStyle, LineStyle );
1331 + if( aLineStyle == drawing::LineStyle_NONE )
1334 + sal_uInt32 nLineWidth = 0;
1335 + sal_uInt32 nColor = 0;
1336 + sal_Bool bColorSet = FALSE;
1337 + const char* cap = NULL;
1338 + drawing::LineDash aLineDash;
1339 + sal_Bool bDashSet = FALSE;
1341 + GET( nLineWidth, LineWidth );
1343 + switch( aLineStyle ) {
1344 + case drawing::LineStyle_DASH:
1345 + if( GETA( LineDash ) ) {
1346 + aLineDash = *(drawing::LineDash*) mAny.getValue();
1348 + if( aLineDash.Style == DashStyle_ROUND || aLineDash.Style == DashStyle_ROUNDRELATIVE )
1351 + DBG(printf("dash dots: %d dashes: %d dotlen: %d dashlen: %d distance: %d\n",
1352 + int( aLineDash.Dots ), int( aLineDash.Dashes ), int( aLineDash.DotLen ), int( aLineDash.DashLen ), int( aLineDash.Distance )));
1354 + /* fallthru intended */
1355 + case drawing::LineStyle_SOLID:
1357 + if ( GETA( LineColor ) ) {
1358 + nColor = *((sal_uInt32*) mAny.getValue()) & 0xffffff;
1364 + mpFS->startElementNS( XML_a, XML_ln,
1366 + XML_w, nLineWidth > 1 ? I64S( MM100toEMU( nLineWidth ) ) : NULL,
1369 + WriteSolidFill( nColor );
1372 + mpFS->startElementNS( XML_a, XML_custDash, FSEND );
1374 + for( i = 0; i < aLineDash.Dots; i ++ )
1375 + mpFS->singleElementNS( XML_a, XML_ds,
1376 + XML_d, aLineDash.DotLen ? I64S( aLineDash.DotLen*1000 ) : "100000",
1377 + XML_sp, I64S( aLineDash.Distance*1000 ),
1379 + for( i = 0; i < aLineDash.Dashes; i ++ )
1380 + mpFS->singleElementNS( XML_a, XML_ds,
1381 + XML_d, aLineDash.DashLen ? I64S( aLineDash.DashLen*1000 ) : "100000",
1382 + XML_sp, I64S( aLineDash.Distance*1000 ),
1384 + mpFS->endElementNS( XML_a, XML_custDash );
1387 + if( nLineWidth > 1 && GETA( LineJoint ) ) {
1388 + LineJoint eLineJoint;
1390 + mAny >>= eLineJoint;
1391 + switch( eLineJoint ) {
1392 + case LineJoint_NONE:
1393 + case LineJoint_MIDDLE:
1394 + case LineJoint_BEVEL:
1395 + mpFS->singleElementNS( XML_a, XML_bevel, FSEND );
1398 + case LineJoint_MITER:
1399 + mpFS->singleElementNS( XML_a, XML_miter, FSEND );
1401 + case LineJoint_ROUND:
1402 + mpFS->singleElementNS( XML_a, XML_round, FSEND );
1407 + WriteLineArrow( rXPropSet, sal_True );
1408 + WriteLineArrow( rXPropSet, sal_False );
1410 + mpFS->endElementNS( XML_a, XML_ln );
1413 +OUString DrawingML::WriteImage( const OUString& rURL )
1415 + ByteString aURLBS( UniString( rURL ), RTL_TEXTENCODING_UTF8 );
1417 + const char aURLBegin[] = "vnd.sun.star.GraphicObject:";
1418 + int index = aURLBS.Search( aURLBegin );
1420 + if ( index != STRING_NOTFOUND ) {
1421 + DBG(printf ("begin: %ld %s\n", long( sizeof( aURLBegin ) ), USS( rURL ) + sizeof( aURLBegin ) - 1 ));
1422 + aURLBS.Erase( 0, sizeof( aURLBegin ) - 1 );
1423 + Graphic aGraphic = GraphicObject( aURLBS ).GetTransformedGraphic ();
1425 + return WriteImage( aGraphic );
1427 + // add link to relations
1430 + return OUString();
1433 +OUString DrawingML::WriteImage( const Graphic& rGraphic )
1435 + GfxLink aLink = rGraphic.GetLink ();
1436 + OUString sMediaType;
1437 + const char* sExtension = NULL;
1440 + SvMemoryStream aStream;
1441 + const void* aData = aLink.GetData();
1442 + sal_Size nDataSize = aLink.GetDataSize();
1444 + switch ( aLink.GetType() ) {
1445 + case GFX_LINK_TYPE_NATIVE_GIF:
1446 + sMediaType = US( "image/gif" );
1447 + sExtension = ".gif";
1449 + case GFX_LINK_TYPE_NATIVE_JPG:
1450 + sMediaType = US( "image/jpeg" );
1451 + sExtension = ".jpeg";
1453 + case GFX_LINK_TYPE_NATIVE_PNG:
1454 + sMediaType = US( "image/png" );
1455 + sExtension = ".png";
1457 + case GFX_LINK_TYPE_NATIVE_TIF:
1458 + sMediaType = US( "image/tiff" );
1459 + sExtension = ".tiff";
1461 + case GFX_LINK_TYPE_NATIVE_WMF:
1462 + sMediaType = US( "image/x-wmf" );
1463 + sExtension = ".wmf";
1465 + case GFX_LINK_TYPE_NATIVE_MET:
1466 + sMediaType = US( "image/x-met" );
1467 + sExtension = ".met";
1469 + case GFX_LINK_TYPE_NATIVE_PCT:
1470 + sMediaType = US( "image/x-pict" );
1471 + sExtension = ".pct";
1474 + GraphicType aType = rGraphic.GetType();
1475 + if ( aType == GRAPHIC_BITMAP ) {
1476 + GraphicConverter::Export( aStream, rGraphic, CVT_PNG );
1477 + sMediaType = US( "image/png" );
1478 + sExtension = ".png";
1479 + } else if ( aType == GRAPHIC_GDIMETAFILE ) {
1480 + GraphicConverter::Export( aStream, rGraphic, CVT_EMF );
1481 + sMediaType = US( "image/x-emf" );
1482 + sExtension = ".emf";
1484 + OSL_TRACE( "unhandled graphic type" );
1488 + aData = aStream.GetData();
1489 + nDataSize = aStream.GetSize();
1494 + const char *pComponent = NULL;
1495 + switch ( meDocumentType )
1497 + case DOCUMENT_DOCX: pComponent = "word"; break;
1498 + case DOCUMENT_PPTX: pComponent = "ppt"; break;
1499 + case DOCUMENT_XLSX: pComponent = "xl"; break;
1502 + Reference< XOutputStream > xOutStream = mpFB->openOutputStream( OUStringBuffer()
1503 + .appendAscii( pComponent )
1504 + .appendAscii( "/media/image" )
1505 + .append( (sal_Int32) mnImageCounter )
1506 + .appendAscii( sExtension )
1507 + .makeStringAndClear(),
1509 + xOutStream->writeBytes( Sequence< sal_Int8 >( (const sal_Int8*) aData, nDataSize ) );
1510 + xOutStream->closeOutput();
1512 + const char *pImagePrefix = NULL;
1513 + switch ( meDocumentType )
1515 + case DOCUMENT_DOCX:
1516 + pImagePrefix = "media/image";
1518 + case DOCUMENT_PPTX:
1519 + case DOCUMENT_XLSX:
1520 + pImagePrefix = "../media/image";
1524 + sRelId = mpFB->addRelation( mpFS->getOutputStream(),
1525 + US( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" ),
1527 + .appendAscii( pImagePrefix )
1528 + .append( (sal_Int32) mnImageCounter ++ )
1529 + .appendAscii( sExtension )
1530 + .makeStringAndClear() );
1535 +OUString DrawingML::WriteBlip( OUString& rURL )
1537 + OUString sRelId = WriteImage( rURL );
1539 + mpFS->singleElementNS( XML_a, XML_blip,
1540 + FSNS( XML_r, XML_embed), OUStringToOString( sRelId, RTL_TEXTENCODING_UTF8 ).getStr(),
1546 +void DrawingML::WriteBlipMode( Reference< XPropertySet > rXPropSet )
1548 + BitmapMode eBitmapMode( BitmapMode_NO_REPEAT );
1549 + if (GetProperty( rXPropSet, S( "FillBitmapMode" ) ) )
1550 + mAny >>= eBitmapMode;
1552 + DBG(printf("fill bitmap mode: %d\n", eBitmapMode));
1554 + switch (eBitmapMode) {
1555 + case BitmapMode_REPEAT:
1556 + mpFS->singleElementNS( XML_a, XML_tile, FSEND );
1563 +void DrawingML::WriteBlipFill( Reference< XPropertySet > rXPropSet, String sURLPropName )
1565 + WriteBlipFill( rXPropSet, sURLPropName, XML_a );
1568 +void DrawingML::WriteBlipFill( Reference< XPropertySet > rXPropSet, String sURLPropName, sal_Int32 nXmlNamespace )
1570 + if ( GetProperty( rXPropSet, sURLPropName ) ) {
1574 + DBG(printf ("URL: %s\n", OUStringToOString( aURL, RTL_TEXTENCODING_UTF8 ).getStr() ));
1576 + if( !aURL.getLength() )
1579 + mpFS->startElementNS( nXmlNamespace , XML_blipFill, FSEND );
1581 + WriteBlip( aURL );
1583 + if( sURLPropName == S( "FillBitmapURL" ) )
1584 + WriteBlipMode( rXPropSet );
1585 + else if( GetProperty( rXPropSet, S( "FillBitmapStretch" ) ) ) {
1586 + bool bStretch = false;
1587 + mAny >>= bStretch;
1593 + mpFS->endElementNS( nXmlNamespace, XML_blipFill );
1597 +void DrawingML::WriteStretch()
1599 + mpFS->startElementNS( XML_a, XML_stretch, FSEND );
1600 + mpFS->singleElementNS( XML_a, XML_fillRect, FSEND );
1601 + mpFS->endElementNS( XML_a, XML_stretch );
1604 +void DrawingML::WriteTransformation( const Rectangle& rRect,
1605 + sal_Bool bFlipH, sal_Bool bFlipV, sal_Int32 nRotation )
1607 + mpFS->startElementNS( XML_a, XML_xfrm,
1608 + XML_flipH, bFlipH ? "1" : NULL,
1609 + XML_flipV, bFlipV ? "1" : NULL,
1610 + XML_rot, nRotation ? I32S( nRotation ) : NULL,
1613 + mpFS->singleElementNS( XML_a, XML_off, XML_x, IS( MM100toEMU( rRect.Left() ) ), XML_y, IS( MM100toEMU( rRect.Top() ) ), FSEND );
1614 + mpFS->singleElementNS( XML_a, XML_ext, XML_cx, IS( MM100toEMU( rRect.GetWidth() ) ), XML_cy, IS( MM100toEMU( rRect.GetHeight() ) ), FSEND );
1616 + mpFS->endElementNS( XML_a, XML_xfrm );
1619 +void DrawingML::WriteShapeTransformation( Reference< XShape > rXShape, sal_Bool bFlipH, sal_Bool bFlipV, sal_Int32 nRotation )
1621 + DBG(printf( "write shape transformation\n" ));
1623 + awt::Point aPos = rXShape->getPosition();
1624 + awt::Size aSize = rXShape->getSize();
1626 + WriteTransformation( Rectangle( Point( aPos.X, aPos.Y ), Size( aSize.Width, aSize.Height ) ), bFlipH, bFlipV, nRotation );
1629 +void DrawingML::WriteRunProperties( Reference< XTextRange > rRun )
1631 + Reference< XPropertySet > rXPropSet( rRun, UNO_QUERY );
1632 + Reference< XPropertyState > rXPropState( rRun, UNO_QUERY );
1633 + OUString usLanguage;
1634 + PropertyState eState;
1635 + sal_Int16 nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage( Application::GetSettings().GetLanguage() );
1636 + sal_Bool bComplex = ( nScriptType == ScriptType::COMPLEX );
1637 + const char* bold = NULL;
1638 + const char* italic = NULL;
1639 + const char* underline = NULL;
1640 + sal_Int32 nSize = 1800;
1642 + if( GETAD( CharHeight ) )
1643 + nSize = (sal_Int32) (100*(*((float*) mAny.getValue())));
1645 + if ( ( bComplex && GETAD( CharWeightComplex ) ) || GETAD( CharWeight ) )
1646 + if ( *((float*) mAny.getValue()) >= awt::FontWeight::SEMIBOLD )
1649 + if ( ( bComplex && GETAD( CharPostureComplex ) ) || GETAD( CharPosture ) )
1650 + switch ( *((awt::FontSlant*) mAny.getValue()) )
1652 + case awt::FontSlant_OBLIQUE :
1653 + case awt::FontSlant_ITALIC :
1660 + if ( GETAD( CharUnderline ) )
1661 + switch ( *((sal_Int16*) mAny.getValue()) )
1663 + case awt::FontUnderline::SINGLE :
1664 + underline = "sng";
1666 + case awt::FontUnderline::DOUBLE :
1667 + underline = "dbl";
1669 + case awt::FontUnderline::DOTTED :
1670 + underline = "dotted";
1672 + case awt::FontUnderline::DASH :
1673 + underline = "dash";
1675 + case awt::FontUnderline::LONGDASH :
1676 + underline = "dashLong";
1678 + case awt::FontUnderline::DASHDOT :
1679 + underline = "dotDash";
1681 + case awt::FontUnderline::DASHDOTDOT :
1682 + underline = "dotDotDash";
1684 + case awt::FontUnderline::WAVE :
1685 + underline = "wavy";
1687 + case awt::FontUnderline::DOUBLEWAVE :
1688 + underline = "wavyDbl";
1690 + case awt::FontUnderline::BOLD :
1691 + underline = "heavy";
1693 + case awt::FontUnderline::BOLDDOTTED :
1694 + underline = "dottedHeavy";
1696 + case awt::FontUnderline::BOLDDASH :
1697 + underline = "dashHeavy";
1699 + case awt::FontUnderline::BOLDLONGDASH :
1700 + underline = "dashLongHeavy";
1702 + case awt::FontUnderline::BOLDDASHDOT :
1703 + underline = "dotDashHeavy";
1705 + case awt::FontUnderline::BOLDDASHDOTDOT :
1706 + underline = "dotDotDashHeavy";
1708 + case awt::FontUnderline::BOLDWAVE :
1709 + underline = "wavyHeavy";
1713 + if( GETA( CharLocale ) ) {
1714 + com::sun::star::lang::Locale eLocale;
1717 + OUStringBuffer usLanguageBuffer = eLocale.Language;
1718 + if( eLocale.Country.getLength() ) {
1719 + usLanguageBuffer.appendAscii( "-" );
1720 + usLanguageBuffer.append( eLocale.Country );
1723 + if( usLanguageBuffer.getLength() )
1724 + usLanguage = usLanguageBuffer.makeStringAndClear();
1727 + mpFS->startElementNS( XML_a, XML_rPr,
1730 + XML_lang, usLanguage.getLength() ? USS( usLanguage ) : NULL,
1731 + XML_sz, nSize == 1800 ? NULL : IS( nSize ),
1735 + // mso doesn't like text color to be placed after typeface
1736 + if( GETAD( CharColor ) ) {
1737 + sal_uInt32 color = *((sal_uInt32*) mAny.getValue());
1738 + DBG(printf("run color: %x auto: %x\n", static_cast<unsigned int>( color ), static_cast<unsigned int>( COL_AUTO )));
1740 + if( color == COL_AUTO ) { // nCharColor depends to the background color
1741 + sal_Bool bIsDark = sal_False;
1742 + GET( bIsDark, IsBackgroundDark );
1743 + color = bIsDark ? 0xffffff : 0x000000;
1745 + color &= 0xffffff;
1747 + // TODO: special handle embossed/engraved
1749 + WriteSolidFill( color );
1752 + if( GETAD( CharFontName ) ) {
1753 + const char* typeface = NULL;
1754 + const char* pitch = NULL;
1755 + const char* charset = NULL;
1756 + OUString usTypeface, usPitch, usCharset;
1758 + mAny >>= usTypeface;
1759 + String aSubstName( GetSubsFontName( usTypeface, SUBSFONT_ONLYONE | SUBSFONT_MS ) );
1760 + if( aSubstName.Len() )
1761 + typeface = ST( aSubstName );
1763 + typeface = USS( usTypeface );
1767 + mpFS->singleElementNS( XML_a, XML_latin,
1768 + XML_typeface, typeface,
1769 + XML_pitchFamily, pitch,
1770 + XML_charset, charset,
1774 + if( ( bComplex && GETAD( CharFontNameComplex ) ) || ( !bComplex && GETAD( CharFontNameAsian ) ) ) {
1775 + const char* typeface = NULL;
1776 + const char* pitch = NULL;
1777 + const char* charset = NULL;
1778 + OUString usTypeface, usPitch, usCharset;
1780 + mAny >>= usTypeface;
1781 + String aSubstName( GetSubsFontName( usTypeface, SUBSFONT_ONLYONE | SUBSFONT_MS ) );
1782 + if( aSubstName.Len() )
1783 + typeface = ST( aSubstName );
1785 + typeface = USS( usTypeface );
1787 + mpFS->singleElementNS( XML_a, bComplex ? XML_cs : XML_ea,
1788 + XML_typeface, typeface,
1789 + XML_pitchFamily, pitch,
1790 + XML_charset, charset,
1794 + mpFS->endElementNS( XML_a, XML_rPr );
1797 +const char* DrawingML::GetFieldType( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > rRun )
1799 + const char* sType = NULL;
1800 + Reference< XPropertySet > rXPropSet( rRun, UNO_QUERY );
1801 + String aFieldType;
1803 + if( GETA( TextPortionType ) ) {
1804 + aFieldType = String( *(::rtl::OUString*)mAny.getValue() );
1805 + DBG(printf ("field type: %s\n", ST(aFieldType) ));
1808 + if( aFieldType == S( "TextField" ) ) {
1809 + Reference< XTextField > rXTextField;
1810 + GET( rXTextField, TextField );
1811 + if( rXTextField.is() ) {
1812 + rXPropSet.set( rXTextField, UNO_QUERY );
1813 + if( rXPropSet.is() ) {
1814 + String aFieldKind( rXTextField->getPresentation( TRUE ) );
1815 + DBG(printf ("field kind: %s\n", ST(aFieldKind) ));
1816 + if( aFieldKind == S( "Page" ) ) {
1817 + return "slidenum";
1826 +void DrawingML::GetUUID( OStringBuffer& rBuffer )
1828 + Sequence< sal_uInt8 > aSeq( 16 );
1829 + static char cDigits[17] = "0123456789ABCDEF";
1830 + rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
1833 + rBuffer.append( '{' );
1834 + for( i = 0; i < 4; i++ ) {
1835 + rBuffer.append( cDigits[ aSeq[i] >> 4 ] );
1836 + rBuffer.append( cDigits[ aSeq[i] && 0xf ] );
1838 + rBuffer.append( '-' );
1839 + for( ; i < 6; i++ ) {
1840 + rBuffer.append( cDigits[ aSeq[i] >> 4 ] );
1841 + rBuffer.append( cDigits[ aSeq[i] && 0xf ] );
1843 + rBuffer.append( '-' );
1844 + for( ; i < 8; i++ ) {
1845 + rBuffer.append( cDigits[ aSeq[i] >> 4 ] );
1846 + rBuffer.append( cDigits[ aSeq[i] && 0xf ] );
1848 + rBuffer.append( '-' );
1849 + for( ; i < 10; i++ ) {
1850 + rBuffer.append( cDigits[ aSeq[i] >> 4 ] );
1851 + rBuffer.append( cDigits[ aSeq[i] && 0xf ] );
1853 + rBuffer.append( '-' );
1854 + for( ; i < 16; i++ ) {
1855 + rBuffer.append( cDigits[ aSeq[i] >> 4 ] );
1856 + rBuffer.append( cDigits[ aSeq[i] && 0xf ] );
1858 + rBuffer.append( '}' );
1861 +void DrawingML::WriteRun( Reference< XTextRange > rRun )
1863 + const char* sFieldType;
1864 + bool bIsField = false;
1865 + OUString sText = rRun->getString();
1867 + if( sText.getLength() < 1)
1870 + if( ( sFieldType = GetFieldType( rRun ) ) ) {
1871 + OStringBuffer sUUID(39);
1874 + mpFS->startElementNS( XML_a, XML_fld,
1875 + XML_id, sUUID.getStr(),
1876 + XML_type, sFieldType,
1880 + mpFS->startElementNS( XML_a, XML_r, FSEND );
1882 + WriteRunProperties( rRun );
1884 + mpFS->startElementNS( XML_a, XML_t, FSEND );
1885 + mpFS->writeEscaped( sText );
1886 + mpFS->endElementNS( XML_a, XML_t );
1889 + mpFS->endElementNS( XML_a, XML_fld );
1891 + mpFS->endElementNS( XML_a, XML_r );
1894 +#define AUTONUM(x) \
1896 + pAutoNumType = #x "ParenBoth"; \
1897 + else if( bPBehind ) \
1898 + pAutoNumType = #x "ParenR"; \
1899 + else if( bSDot ) \
1900 + pAutoNumType = #x "Period";
1903 +inline static const char* GetAutoNumType( sal_Int16 nNumberingType, bool bSDot, bool bPBehind, bool bPBoth )
1905 + const char* pAutoNumType = NULL;
1907 + switch( (SvxExtNumType)nNumberingType )
1909 + case SVX_NUM_CHARS_UPPER_LETTER_N :
1910 + case SVX_NUM_CHARS_UPPER_LETTER :
1911 + AUTONUM( alphaUc );
1913 + case SVX_NUM_CHARS_LOWER_LETTER_N :
1914 + case SVX_NUM_CHARS_LOWER_LETTER :
1915 + AUTONUM( alphaLc );
1917 + case SVX_NUM_ROMAN_UPPER :
1918 + AUTONUM( romanUc );
1920 + case SVX_NUM_ROMAN_LOWER :
1921 + AUTONUM( romanLc );
1923 + case SVX_NUM_ARABIC :
1926 + pAutoNumType = "arabicPlain";
1932 + return pAutoNumType;
1935 +void DrawingML::WriteParagraphNumbering( Reference< XPropertySet > rXPropSet, sal_Int16 nLevel )
1937 + if( nLevel >= 0 && GETA( NumberingRules ) )
1939 + Reference< XIndexAccess > rXIndexAccess;
1941 + if ( ( mAny >>= rXIndexAccess ) && nLevel < rXIndexAccess->getCount() )
1943 + DBG(printf ("numbering rules\n"));
1945 + Sequence< PropertyValue > aPropertySequence;
1946 + rXIndexAccess->getByIndex( nLevel ) >>= aPropertySequence;
1949 + const PropertyValue* pPropValue = aPropertySequence.getArray();
1951 + sal_Int32 nPropertyCount = aPropertySequence.getLength();
1953 + if ( nPropertyCount ) {
1955 + sal_Int16 nNumberingType = -1;
1956 + bool bSDot = false;
1957 + bool bPBehind = false;
1958 + bool bPBoth = false;
1959 + sal_Unicode aBulletChar = 0x2022; // a bullet
1960 + awt::FontDescriptor aFontDesc;
1961 + bool bHasFontDesc = false;
1962 + OUString aGraphicURL;
1963 + sal_Int16 nBulletRelSize = 0;
1965 + for ( sal_Int32 i = 0; i < nPropertyCount; i++ ) {
1966 + const void* pValue = pPropValue[ i ].Value.getValue();
1968 + OUString aPropName( pPropValue[ i ].Name );
1969 + DBG(printf ("pro name: %s\n", OUStringToOString( aPropName, RTL_TEXTENCODING_UTF8 ).getStr()));
1970 + if ( aPropName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "NumberingType" ) ) )
1971 + nNumberingType = *( (sal_Int16*)pValue );
1972 + else if ( aPropName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Prefix" ) ) ) {
1973 + if( *(OUString*)pValue == US( ")" ) )
1975 + } else if ( aPropName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Suffix" ) ) ) {
1976 + if( *(OUString*)pValue == US( "." ) )
1978 + else if( *(OUString*)pValue == US( ")" ) )
1980 + } else if ( aPropName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "BulletChar" ) ) )
1982 + aBulletChar = String ( *( (String*)pValue ) ).GetChar( 0 );
1983 + //printf ("bullet char: %d\n", aBulletChar.getStr());
1985 + else if ( aPropName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "BulletFont" ) ) )
1987 + aFontDesc = *( (awt::FontDescriptor*)pValue );
1988 + bHasFontDesc = true;
1990 + // Our numbullet dialog has set the wrong textencoding for our "StarSymbol" font,
1991 + // instead of a Unicode encoding the encoding RTL_TEXTENCODING_SYMBOL was used.
1992 + // Because there might exist a lot of damaged documemts I added this two lines
1993 + // which fixes the bullet problem for the export.
1994 + if ( aFontDesc.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "StarSymbol" ) ) )
1995 + aFontDesc.CharSet = RTL_TEXTENCODING_MS_1252;
1997 + } else if ( aPropName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "BulletRelSize" ) ) ) {
1998 + nBulletRelSize = *( (sal_Int16*)pValue );
1999 + } else if ( aPropName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "GraphicURL" ) ) ) {
2000 + aGraphicURL = ( *(OUString*)pValue );
2001 + DBG(printf ("graphic url: %s\n", OUStringToOString( aGraphicURL, RTL_TEXTENCODING_UTF8 ).getStr()));
2002 + } else if ( aPropName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "GraphicSize" ) ) )
2004 + if ( pPropValue[ i ].Value.getValueType() == ::getCppuType( (awt::Size*)0) )
2006 + // don't cast awt::Size to Size as on 64-bits they are not the same.
2007 + ::com::sun::star::awt::Size aSize;
2008 + pPropValue[ i ].Value >>= aSize;
2009 + //aBuGraSize.nA = aSize.Width;
2010 + //aBuGraSize.nB = aSize.Height;
2011 + DBG(printf("graphic size: %dx%d\n", int( aSize.Width ), int( aSize.Height )));
2017 + const char* pAutoNumType = GetAutoNumType( nNumberingType, bSDot, bPBehind, bPBoth );
2019 + if( nLevel >= 0 ) {
2020 + if( aGraphicURL.getLength() > 0 ) {
2021 + OUString sRelId = WriteImage( aGraphicURL );
2023 + mpFS->startElementNS( XML_a, XML_buBlip, FSEND );
2024 + mpFS->singleElementNS( XML_a, XML_blip, FSNS( XML_r, XML_embed ), USS( sRelId ), FSEND );
2025 + mpFS->endElementNS( XML_a, XML_buBlip );
2027 + if( nBulletRelSize && nBulletRelSize != 100 )
2028 + mpFS->singleElementNS( XML_a, XML_buSzPct,
2029 + XML_val, IS( 1000*( (sal_Int32)nBulletRelSize ) ), FSEND );
2030 + if( bHasFontDesc )
2031 + mpFS->singleElementNS( XML_a, XML_buFont,
2032 + XML_typeface, OUStringToOString( aFontDesc.Name, RTL_TEXTENCODING_UTF8 ).getStr(),
2033 + XML_charset, (aFontDesc.CharSet == awt::CharSet::SYMBOL) ? "2" : NULL,
2036 + if( pAutoNumType )
2037 + mpFS->singleElementNS( XML_a, XML_buAutoNum, XML_type, pAutoNumType, FSEND );
2039 + aBulletChar = SubstituteBullet( aBulletChar, aFontDesc );
2040 + mpFS->singleElementNS( XML_a, XML_buChar, XML_char, USS( OUString( aBulletChar ) ), FSEND );
2049 +const char* DrawingML::GetAlignment( sal_Int32 nAlignment )
2051 + const char* sAlignment = NULL;
2053 + switch( nAlignment ) {
2054 + case style::ParagraphAdjust_CENTER:
2055 + sAlignment = "ctr";
2057 + case style::ParagraphAdjust_RIGHT:
2060 + case style::ParagraphAdjust_BLOCK:
2061 + sAlignment = "just";
2067 + return sAlignment;
2070 +void DrawingML::WriteParagraphProperties( Reference< XTextContent > rParagraph )
2072 + Reference< XPropertySet > rXPropSet( rParagraph, UNO_QUERY );
2073 + Reference< XPropertyState > rXPropState( rParagraph, UNO_QUERY );
2075 + if( !rXPropSet.is() || !rXPropState.is() )
2078 + sal_Int16 nLevel = -1;
2079 + GET( nLevel, NumberingLevel );
2081 + sal_Int32 nLeftMargin = 0;
2082 + // fix coordinates
2083 + //GET( nLeftMargin, ParaLeftMargin );
2085 + sal_Int16 nAlignment( style::ParagraphAdjust_LEFT );
2086 + GET( nAlignment, ParaAdjust );
2089 + || nLeftMargin > 0
2090 + || nAlignment != style::ParagraphAdjust_LEFT ) {
2091 + mpFS->startElementNS( XML_a, XML_pPr,
2092 + XML_lvl, nLevel > 0 ? I32S( nLevel ) : NULL,
2093 + XML_marL, nLeftMargin > 0 ? IS( nLeftMargin ) : NULL,
2094 + XML_algn, GetAlignment( nAlignment ),
2097 + WriteParagraphNumbering( rXPropSet, nLevel );
2099 + mpFS->endElementNS( XML_a, XML_pPr );
2103 +void DrawingML::WriteParagraph( Reference< XTextContent > rParagraph )
2105 + Reference< XEnumerationAccess > access( rParagraph, UNO_QUERY );
2106 + if( !access.is() )
2109 + Reference< XEnumeration > enumeration( access->createEnumeration() );
2110 + if( !enumeration.is() )
2113 + mpFS->startElementNS( XML_a, XML_p, FSEND );
2115 + sal_Bool bPropertiesWritten = FALSE;
2116 + while( enumeration->hasMoreElements() ) {
2117 + Reference< XTextRange > run;
2118 + Any any ( enumeration->nextElement() );
2120 + if (any >>= run) {
2121 + if( !bPropertiesWritten && run->getString().getLength() ) {
2122 + WriteParagraphProperties( rParagraph );
2123 + bPropertiesWritten = TRUE;
2128 + mpFS->singleElementNS( XML_a, XML_endParaRPr, FSEND );
2130 + mpFS->endElementNS( XML_a, XML_p );
2133 +void DrawingML::WriteText( Reference< XShape > rXShape )
2135 + Reference< XText > xXText( rXShape, UNO_QUERY );
2136 + Reference< XPropertySet > rXPropSet( rXShape, UNO_QUERY );
2138 + if( !xXText.is() )
2141 +#define DEFLRINS 254
2142 +#define DEFTBINS 127
2143 + sal_Int32 nLeft, nRight, nTop, nBottom;
2144 + nLeft = nRight = DEFLRINS;
2145 + nTop = nBottom = DEFTBINS;
2147 + // top inset looks a bit different compared to ppt export
2148 + // check if something related doesn't work as expected
2149 + GET( nLeft, TextLeftDistance );
2150 + GET( nRight, TextRightDistance );
2151 + GET( nTop, TextUpperDistance );
2152 + GET( nBottom, TextLowerDistance );
2154 + TextVerticalAdjust eVerticalAlignment( TextVerticalAdjust_TOP );
2155 + const char* sVerticalAlignment = NULL;
2156 + GET( eVerticalAlignment, TextVerticalAdjust );
2157 + switch( eVerticalAlignment ) {
2158 + case TextVerticalAdjust_BOTTOM:
2159 + sVerticalAlignment = "b";
2161 + case TextVerticalAdjust_CENTER:
2162 + sVerticalAlignment = "ctr";
2164 + case TextVerticalAdjust_TOP:
2169 + TextHorizontalAdjust eHorizontalAlignment( TextHorizontalAdjust_CENTER );
2170 + bool bHorizontalCenter = false;
2171 + GET( eHorizontalAlignment, TextHorizontalAdjust );
2172 + if( eHorizontalAlignment == TextHorizontalAdjust_CENTER )
2173 + bHorizontalCenter = true;
2175 + sal_Bool bHasWrap = FALSE;
2176 + sal_Bool bWrap = FALSE;
2177 + if( GETA( TextWordWrap ) ) {
2180 + //DBG(printf("wrap: %d\n", bWrap));
2183 + mpFS->singleElementNS( XML_a, XML_bodyPr,
2184 + XML_wrap, bHasWrap && !bWrap ? "none" : NULL,
2185 + XML_lIns, (nLeft != DEFLRINS) ? IS( MM100toEMU( nLeft ) ) : NULL,
2186 + XML_rIns, (nRight != DEFLRINS) ? IS( MM100toEMU( nRight ) ) : NULL,
2187 + XML_tIns, (nTop != DEFTBINS) ? IS( MM100toEMU( nTop ) ) : NULL,
2188 + XML_bIns, (nBottom != DEFTBINS) ? IS( MM100toEMU( nBottom ) ) : NULL,
2189 + XML_anchor, sVerticalAlignment,
2190 + XML_anchorCtr, bHorizontalCenter ? "1" : NULL,
2193 + Reference< XEnumerationAccess > access( xXText, UNO_QUERY );
2194 + if( !access.is() )
2197 + Reference< XEnumeration > enumeration( access->createEnumeration() );
2198 + if( !enumeration.is() )
2201 + while( enumeration->hasMoreElements() ) {
2202 + Reference< XTextContent > paragraph;
2203 + Any any ( enumeration->nextElement() );
2205 + if( any >>= paragraph)
2206 + WriteParagraph( paragraph );
2211 +void DrawingML::WritePresetShape( const char* pShape )
2213 + mpFS->startElementNS( XML_a, XML_prstGeom,
2216 + mpFS->singleElementNS( XML_a, XML_avLst, FSEND );
2217 + mpFS->endElementNS( XML_a, XML_prstGeom );
2220 +void DrawingML::WritePresetShape( const char* pShape, MSO_SPT eShapeType, sal_Bool bPredefinedHandlesUsed, sal_Int32 nAdjustmentsWhichNeedsToBeConverted, const PropertyValue& rProp )
2222 + mpFS->startElementNS( XML_a, XML_prstGeom,
2225 + mpFS->startElementNS( XML_a, XML_avLst, FSEND );
2227 + Sequence< drawing::EnhancedCustomShapeAdjustmentValue > aAdjustmentSeq;
2228 + if ( rProp.Value >>= aAdjustmentSeq ) {
2229 + DBG(printf("adj seq len: %d\n", int( aAdjustmentSeq.getLength() )));
2230 + if ( bPredefinedHandlesUsed )
2231 + EscherPropertyContainer::LookForPolarHandles( eShapeType, nAdjustmentsWhichNeedsToBeConverted );
2233 + sal_Int32 nValue, nLength = aAdjustmentSeq.getLength();
2234 + for( sal_Int32 i=0; i < nLength; i++ )
2235 + if( EscherPropertyContainer::GetAdjustmentValue( aAdjustmentSeq[ i ], i, nAdjustmentsWhichNeedsToBeConverted, nValue ) )
2236 + mpFS->singleElementNS( XML_a, XML_gd,
2237 + XML_name, nLength > 1 ? ( OString( "adj" ) + OString::valueOf( i + 1 ) ).getStr() : "adj",
2238 + XML_fmla, (OString("val ") + OString::valueOf( nValue )).getStr(),
2242 + mpFS->endElementNS( XML_a, XML_avLst );
2243 + mpFS->endElementNS( XML_a, XML_prstGeom );
2246 +void DrawingML::WritePolyPolygon( const PolyPolygon& rPolyPolygon )
2248 + if( rPolyPolygon.Count() < 1 )
2251 + mpFS->startElementNS( XML_a, XML_custGeom, FSEND );
2252 + mpFS->singleElementNS( XML_a, XML_avLst, FSEND );
2253 + mpFS->singleElementNS( XML_a, XML_gdLst, FSEND );
2254 + mpFS->singleElementNS( XML_a, XML_ahLst, FSEND );
2255 + mpFS->singleElementNS( XML_a, XML_rect,
2262 + mpFS->startElementNS( XML_a, XML_pathLst, FSEND );
2264 + for( USHORT i = 0; i < rPolyPolygon.Count(); i ++ ) {
2266 + const Polygon& rPoly = rPolyPolygon[ i ];
2267 + Rectangle aRect( rPoly.GetBoundRect() );
2268 + sal_Bool bBezier = FALSE;
2270 + mpFS->startElementNS( XML_a, XML_path,
2271 + XML_w, I64S( aRect.GetWidth() ),
2272 + XML_h, I64S( aRect.GetHeight() ),
2275 + if( rPoly.GetSize() > 0 )
2277 + mpFS->startElementNS( XML_a, XML_moveTo, FSEND );
2279 + mpFS->singleElementNS( XML_a, XML_pt,
2280 + XML_x, I64S( rPoly[ 0 ].X() - aRect.Left() ),
2281 + XML_y, I64S( rPoly[ 0 ].Y() - aRect.Top() ),
2284 + mpFS->endElementNS( XML_a, XML_moveTo );
2287 + for( USHORT j = 1; j < rPoly.GetSize(); j ++ )
2289 + enum PolyFlags flags = rPoly.GetFlags(j);
2290 + if( flags == POLY_CONTROL && !bBezier )
2292 + mpFS->startElementNS( XML_a, XML_cubicBezTo, FSEND );
2295 + else if( flags == POLY_NORMAL && !bBezier )
2296 + mpFS->startElementNS( XML_a, XML_lnTo, FSEND );
2298 + mpFS->singleElementNS( XML_a, XML_pt,
2299 + XML_x, I64S( rPoly[j].X() - aRect.Left() ),
2300 + XML_y, I64S( rPoly[j].Y() - aRect.Top() ),
2303 + if( ( flags == POLY_NORMAL || flags == POLY_SYMMTR ) && bBezier )
2305 + mpFS->endElementNS( XML_a, XML_cubicBezTo );
2308 + else if( flags == POLY_NORMAL && !bBezier )
2309 + mpFS->endElementNS( XML_a, XML_lnTo );
2310 + else if( bBezier && ( j % 3 ) == 0 )
2312 + // //a:cubicBezTo can only contain 3 //a:pt elements, so we
2313 + // need to break things up...
2314 + mpFS->endElementNS( XML_a, XML_cubicBezTo );
2315 + mpFS->startElementNS( XML_a, XML_cubicBezTo, FSEND );
2317 +// switch( rPoly.GetFlags(j) ) {
2318 +// case POLY_NORMAL:
2319 +// DBG(printf("normal\n"));
2321 +// case POLY_SMOOTH:
2322 +// DBG(printf("smooth\n"));
2324 +// case POLY_CONTROL:
2325 +// DBG(printf("control\n"));
2327 +// case POLY_SYMMTR:
2328 +// DBG(printf("symmtr\n"));
2331 +// DBG(printf("point %ld %ld\n", rPoly[j].X() - aRect.Left(), rPoly[j].Y() - aRect.Top()));
2334 + mpFS->endElementNS( XML_a, XML_path );
2337 + mpFS->endElementNS( XML_a, XML_pathLst );
2339 + mpFS->endElementNS( XML_a, XML_custGeom );
2342 +void DrawingML::WriteConnectorConnections( EscherConnectorListEntry& rConnectorEntry, sal_Int32 nStartID, sal_Int32 nEndID )
2344 + mpFS->singleElementNS( XML_a, XML_stCxn,
2345 + XML_id, I32S( nStartID ),
2346 + XML_idx, I64S( rConnectorEntry.GetConnectorRule( TRUE ) ),
2348 + mpFS->singleElementNS( XML_a, XML_endCxn,
2349 + XML_id, I32S( nEndID ),
2350 + XML_idx, I64S( rConnectorEntry.GetConnectorRule( FALSE ) ),
2354 +// from sw/source/filter/ww8/wrtw8num.cxx for default bullets to export to MS intact
2355 +static void lcl_SubstituteBullet(String& rNumStr, rtl_TextEncoding& rChrSet, String& rFontName)
2357 + StarSymbolToMSMultiFont *pConvert = 0;
2358 + FontFamily eFamily = FAMILY_DECORATIVE;
2362 + pConvert = CreateStarSymbolToMSMultiFont();
2364 + sal_Unicode cChar = rNumStr.GetChar(0);
2365 + String sFont = pConvert->ConvertChar(cChar);
2368 + rNumStr = static_cast< sal_Unicode >(cChar | 0xF000);
2369 + rFontName = sFont;
2370 + rChrSet = RTL_TEXTENCODING_SYMBOL;
2372 + else if ( (rNumStr.GetChar(0) < 0xE000 || rNumStr.GetChar(0) > 0xF8FF) )
2375 + Ok we can't fit into a known windows unicode font, but
2376 + we are not in the private area, so we are a
2377 + standardized symbol, so turn off the symbol bit and
2378 + let words own font substitution kick in
2380 + rChrSet = RTL_TEXTENCODING_UNICODE;
2381 + eFamily = FAMILY_SWISS;
2382 + rFontName = ::GetFontToken(rFontName, 0);
2387 + Well we don't have an available substition, and we're
2388 + in our private area, so give up and show a standard
2391 + rFontName.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Wingdings"));
2392 + rNumStr = static_cast< sal_Unicode >(0x6C);
2397 +sal_Unicode DrawingML::SubstituteBullet( sal_Unicode cBulletId, ::com::sun::star::awt::FontDescriptor& rFontDesc )
2399 + String sNumStr = cBulletId;
2401 + if ( rFontDesc.Name.equalsIgnoreAsciiCaseAscii("starsymbol") ||
2402 + rFontDesc.Name.equalsIgnoreAsciiCaseAscii("opensymbol") ) {
2403 + String sFontName = rFontDesc.Name;
2404 + rtl_TextEncoding aCharSet = rFontDesc.CharSet;
2406 + lcl_SubstituteBullet( sNumStr, aCharSet, sFontName );
2408 + rFontDesc.Name = sFontName;
2409 + rFontDesc.CharSet = aCharSet;
2412 + return sNumStr.GetChar( 0 );
2417 diff --git oox/source/export/makefile.mk oox/source/export/makefile.mk
2418 new file mode 100644
2419 index 0000000..b9d2195
2421 +++ oox/source/export/makefile.mk
2429 +ENABLE_EXCEPTIONS=TRUE
2431 +# --- Settings -----------------------------------------------------
2433 +.INCLUDE : settings.mk
2434 +.INCLUDE: $(PRJ)$/util$/makefile.pmk
2436 +# --- Files --------------------------------------------------------
2439 + $(SLO)$/drawingml.obj \
2440 + $(SLO)$/shapes.obj \
2441 + $(SLO)$/vmlexport.obj \
2442 + $(SLO)$/vmlexport-shape-types.obj
2444 +# --- Targets -------------------------------------------------------
2446 +.INCLUDE : target.mk
2448 +$(MISC)$/vmlexport-shape-types.cxx : preset-definitions-to-shape-types.pl presetShapeDefinitions.xml presetTextWarpDefinitions.xml
2449 + $(PERL) $< > $@.in_progress 2> $(MISC)$/vmlexport-shape-types.log && mv $@.in_progress $@
2450 diff --git oox/source/export/preset-definitions-to-shape-types.pl oox/source/export/preset-definitions-to-shape-types.pl
2451 new file mode 100644
2452 index 0000000..1608f8c
2454 +++ oox/source/export/preset-definitions-to-shape-types.pl
2456 +#! /usr/bin/perl -w
2457 +#*************************************************************************
2459 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2461 +# Copyright 2008 by Sun Microsystems, Inc.
2463 +# OpenOffice.org - a multi-platform office productivity suite
2465 +# This file is part of OpenOffice.org.
2467 +# OpenOffice.org is free software: you can redistribute it and/or modify
2468 +# it under the terms of the GNU Lesser General Public License version 3
2469 +# only, as published by the Free Software Foundation.
2471 +# OpenOffice.org is distributed in the hope that it will be useful,
2472 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
2473 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2474 +# GNU Lesser General Public License version 3 for more details
2475 +# (a copy is included in the LICENSE file that accompanied this code).
2477 +# You should have received a copy of the GNU Lesser General Public License
2478 +# version 3 along with OpenOffice.org. If not, see
2479 +# <http://www.openoffice.org/license.html>
2480 +# for a copy of the LGPLv3 License.
2482 +#*************************************************************************
2487 + print STDERR <<EOF;
2488 +Usage: preset-definitions-to-shape-types.pl <shapes> <text>
2490 +Converts presetShapeDefinitions.xml and presetTextWarpDefinitions.xml to a
2491 +.cxx that contains VML with the definitions of the shapes. The result is
2494 +<shapes> presetShapeDefinitions.xml (including the path to it)
2495 +<text> presetTextWarpDefinitions.xml (including the path to it)
2500 +sub show_call_stack
2502 + my ( $path, $line, $subr );
2503 + my $max_depth = 30;
2505 + print STDERR "--- Begin stack trace ---\n";
2506 + while ( (my @call_details = (caller($i++))) && ($i<$max_depth) ) {
2507 + print STDERR "$call_details[1] line $call_details[2] in function $call_details[3]\n";
2509 + print STDERR "--- End stack trace ---\n";
2512 +$src_shapes = shift;
2515 +usage() if ( !defined( $src_shapes ) || !defined( $src_text ) ||
2516 + $src_shapes eq "-h" || $src_shapes eq "--help" ||
2517 + !-f $src_shapes || !-f $src_text );
2528 +$ignore_this_shape = 0;
2537 +@quadratic_bezier = ();
2539 +%result_shapes = ();
2542 + 0 => 'notPrimitive',
2544 + 2 => 'roundRectangle',
2548 + 6 => 'rtTriangle',
2549 + 7 => 'parallelogram',
2555 + 13 => 'rightArrow',
2556 + 14 => 'thickArrow', # should not be used
2557 + 15 => 'homePlate',
2559 + 17 => 'wedgeRoundRectCallout', # balloon
2560 + 18 => 'star16', # seal
2566 + 24 => 'textPlain', # textSimple - FIXME MS Office 2007 converts these to textboxes with unstyled text, so is it actually correct to map it to a real style?
2567 + 25 => 'textStop', # textOctagon FIXME see 24
2568 + 26 => 'textTriangle', # textHexagon FIXMME see 24
2569 + 27 => 'textCanDown', # textCurve FIXMME see 24
2570 + 28 => 'textWave1', # textWave FIXMME see 24
2571 + 29 => 'textArchUpPour', # textRing FIXMME see 24
2572 + 30 => 'textCanDown', # textOnCurve FIXMME see 24
2573 + 31 => 'textArchUp', # textOnRing FIXMME see 24
2574 + 32 => 'straightConnector1',
2575 + 33 => 'bentConnector2',
2576 + 34 => 'bentConnector3',
2577 + 35 => 'bentConnector4',
2578 + 36 => 'bentConnector5',
2579 + 37 => 'curvedConnector2',
2580 + 38 => 'curvedConnector3',
2581 + 39 => 'curvedConnector4',
2582 + 40 => 'curvedConnector5',
2586 + 44 => 'accentCallout1',
2587 + 45 => 'accentCallout2',
2588 + 46 => 'accentCallout3',
2589 + 47 => 'borderCallout1',
2590 + 48 => 'borderCallout2',
2591 + 49 => 'borderCallout3',
2592 + 50 => 'accentBorderCallout1',
2593 + 51 => 'accentBorderCallout2',
2594 + 52 => 'accentBorderCallout3',
2599 + 57 => 'noSmoking',
2600 + 58 => 'star8', # seal8
2601 + 59 => 'star16', # seal16
2602 + 60 => 'star32', # seal32
2603 + 61 => 'wedgeRectCallout',
2604 + 62 => 'wedgeRoundRectCallout', # wedgeRRectCallout
2605 + 63 => 'wedgeEllipseCallout',
2607 + 65 => 'foldedCorner',
2608 + 66 => 'leftArrow',
2609 + 67 => 'downArrow',
2611 + 69 => 'leftRightArrow',
2612 + 70 => 'upDownArrow',
2613 + 71 => 'irregularSeal1',
2614 + 72 => 'irregularSeal2',
2615 + 73 => 'lightningBolt',
2617 + 75 => 'frame', # pictureFrame
2618 + 76 => 'quadArrow',
2619 + 77 => 'leftArrowCallout',
2620 + 78 => 'rightArrowCallout',
2621 + 79 => 'upArrowCallout',
2622 + 80 => 'downArrowCallout',
2623 + 81 => 'leftRightArrowCallout',
2624 + 82 => 'upDownArrowCallout',
2625 + 83 => 'quadArrowCallout',
2627 + 85 => 'leftBracket',
2628 + 86 => 'rightBracket',
2629 + 87 => 'leftBrace',
2630 + 88 => 'rightBrace',
2631 + 89 => 'leftUpArrow',
2632 + 90 => 'bentUpArrow',
2633 + 91 => 'bentArrow',
2634 + 92 => 'star24', # seal24
2635 + 93 => 'stripedRightArrow',
2636 + 94 => 'notchedRightArrow',
2638 + 96 => 'smileyFace',
2639 + 97 => 'verticalScroll',
2640 + 98 => 'horizontalScroll',
2641 + 99 => 'circularArrow',
2642 + 100 => 'notchedCircularArrow', # should not be used
2643 + 101 => 'uturnArrow',
2644 + 102 => 'curvedRightArrow',
2645 + 103 => 'curvedLeftArrow',
2646 + 104 => 'curvedUpArrow',
2647 + 105 => 'curvedDownArrow',
2648 + 106 => 'cloudCallout',
2649 + 107 => 'ellipseRibbon',
2650 + 108 => 'ellipseRibbon2',
2651 + 109 => 'flowChartProcess',
2652 + 110 => 'flowChartDecision',
2653 + 111 => 'flowChartInputOutput',
2654 + 112 => 'flowChartPredefinedProcess',
2655 + 113 => 'flowChartInternalStorage',
2656 + 114 => 'flowChartDocument',
2657 + 115 => 'flowChartMultidocument',
2658 + 116 => 'flowChartTerminator',
2659 + 117 => 'flowChartPreparation',
2660 + 118 => 'flowChartManualInput',
2661 + 119 => 'flowChartManualOperation',
2662 + 120 => 'flowChartConnector',
2663 + 121 => 'flowChartPunchedCard',
2664 + 122 => 'flowChartPunchedTape',
2665 + 123 => 'flowChartSummingJunction',
2666 + 124 => 'flowChartOr',
2667 + 125 => 'flowChartCollate',
2668 + 126 => 'flowChartSort',
2669 + 127 => 'flowChartExtract',
2670 + 128 => 'flowChartMerge',
2671 + 129 => 'flowChartOfflineStorage',
2672 + 130 => 'flowChartOnlineStorage',
2673 + 131 => 'flowChartMagneticTape',
2674 + 132 => 'flowChartMagneticDisk',
2675 + 133 => 'flowChartMagneticDrum',
2676 + 134 => 'flowChartDisplay',
2677 + 135 => 'flowChartDelay',
2678 + 136 => 'textPlain', # textPlainText
2679 + 137 => 'textStop',
2680 + 138 => 'textTriangle',
2681 + 139 => 'textTriangleInverted',
2682 + 140 => 'textChevron',
2683 + 141 => 'textChevronInverted',
2684 + 142 => 'textRingInside',
2685 + 143 => 'textRingOutside',
2686 + 144 => 'textArchUp', # textArchUpCurve
2687 + 145 => 'textArchDown', # textArchDownCurve
2688 + 146 => 'textCircle', # textCircleCurve
2689 + 147 => 'textButton', # textButtonCurve
2690 + 148 => 'textArchUpPour',
2691 + 149 => 'textArchDownPour',
2692 + 150 => 'textCirclePour',
2693 + 151 => 'textButtonPour',
2694 + 152 => 'textCurveUp',
2695 + 153 => 'textCurveDown',
2696 + 154 => 'textCascadeUp',
2697 + 155 => 'textCascadeDown',
2698 + 156 => 'textWave1',
2699 + 157 => 'textWave2',
2700 + 158 => 'textWave3',
2701 + 159 => 'textWave4',
2702 + 160 => 'textInflate',
2703 + 161 => 'textDeflate',
2704 + 162 => 'textInflateBottom',
2705 + 163 => 'textDeflateBottom',
2706 + 164 => 'textInflateTop',
2707 + 165 => 'textDeflateTop',
2708 + 166 => 'textDeflateInflate',
2709 + 167 => 'textDeflateInflateDeflate',
2710 + 168 => 'textFadeRight',
2711 + 169 => 'textFadeLeft',
2712 + 170 => 'textFadeUp',
2713 + 171 => 'textFadeDown',
2714 + 172 => 'textSlantUp',
2715 + 173 => 'textSlantDown',
2716 + 174 => 'textCanUp',
2717 + 175 => 'textCanDown',
2718 + 176 => 'flowChartAlternateProcess',
2719 + 177 => 'flowChartOffpageConnector',
2720 + 178 => 'callout1', # callout90
2721 + 179 => 'accentCallout1', # accentCallout90
2722 + 180 => 'borderCallout1', # borderCallout90
2723 + 181 => 'accentBorderCallout1', # accentBorderCallout90
2724 + 182 => 'leftRightUpArrow',
2727 + 185 => 'bracketPair',
2728 + 186 => 'bracePair',
2729 + 187 => 'star4', # seal4
2730 + 188 => 'doubleWave',
2731 + 189 => 'actionButtonBlank',
2732 + 190 => 'actionButtonHome',
2733 + 191 => 'actionButtonHelp',
2734 + 192 => 'actionButtonInformation',
2735 + 193 => 'actionButtonForwardNext',
2736 + 194 => 'actionButtonBackPrevious',
2737 + 195 => 'actionButtonEnd',
2738 + 196 => 'actionButtonBeginning',
2739 + 197 => 'actionButtonReturn',
2740 + 198 => 'actionButtonDocument',
2741 + 199 => 'actionButtonSound',
2742 + 200 => 'actionButtonMovie',
2743 + 201 => 'hostControl', # should not be used
2746 +# An error occured, we have to ignore this shape
2751 + $ignore_this_shape = 1;
2752 + print STDERR "ERROR (in $shape_name ): $msg\n";
2755 +# Check that we are in the correct level
2758 + my ( $level, $value ) = @_;
2760 + if ( $level > 0 ) {
2761 + error( "Error in is_level(), \$level should be <= 0." );
2763 + return ( $#levels + $level > 0 ) && ( $levels[$#levels + $level] eq $value );
2766 +# Setup the %variables map with predefined values
2767 +sub setup_variables()
2780 + 'ssd2' => 10800, # 1/2
2781 + 'ssd4' => 5400, # 1/4
2782 + 'ssd6' => 3600, # 1/6
2783 + 'ssd8' => 2700, # 1/8
2784 + 'ssd16' => 1350, # 1/16
2785 + 'ssd32' => 675, # 1/32
2787 + 'hc' => 10800, # horizontal center
2788 + 'vc' => 10800, # vertical center
2790 + 'wd2' => 10800, # 1/2
2791 + 'wd3' => 7200, # 1/3
2792 + 'wd4' => 5400, # 1/4
2793 + 'wd5' => 4320, # 1/5
2794 + 'wd6' => 3600, # 1/6
2795 + 'wd8' => 2700, # 1/8
2796 + 'wd10' => 2160, # 1/10
2797 + 'wd12' => 1800, # 1/12
2798 + 'wd32' => 675, # 1/32
2800 + 'hd2' => 10800, # 1/2
2801 + 'hd3' => 7200, # 1/3
2802 + 'hd4' => 5400, # 1/4
2803 + 'hd5' => 4320, # 1/5
2804 + 'hd6' => 3600, # 1/6
2805 + 'hd8' => 2700, # 1/8
2806 + 'hd10' => 2160, # 1/10
2807 + 'hd12' => 1800, # 1/12
2808 + 'hd32' => 675, # 1/32
2813 + 'cd4' => 90, # 1/4 of a circle
2814 + 'cd2' => 180, # 1/2 of a circle
2815 + '3cd4' => 270, # 3/4 of a circle
2817 + 'cd8' => 45, # 1/8 of a circle
2818 + '3cd8' => 135, # 3/8 of a circle
2819 + '5cd8' => 225, # 5/8 of a circle
2820 + '7cd8' => 315, # 7/8 of a circle
2822 + '-5400000' => -90,
2823 + '-10800000'=> -180,
2824 + '-16200000'=> -270,
2825 + '-21600000'=> -360,
2826 + '-21599999'=> -360,
2829 + '10800000' => 180,
2830 + '16200000' => 270,
2831 + '21600000' => 360,
2834 +# '21600000' => 360, # angle conversions
2835 +# '27000000' => 450,
2836 +# '32400000' => 540,
2837 +# '37800000' => 630
2841 +# Convert the (predefiend) value to a number
2846 + my $result = $variables{$val};
2847 + return $result if ( defined( $result ) );
2849 + return $val if ( $val =~ /^[0-9-]+$/ );
2851 + error( "Unknown variable '$val'." );
2853 + show_call_stack();
2857 +# Convert the DrawingML formula to a VML one
2858 +%command_variables = (
2865 +# The same as value(), but some of the hardcoded values can have a name
2866 +sub command_value( $ )
2868 + my ( $value ) = @_;
2870 + return "" if ( $value eq "" );
2872 + return $value if ( $value =~ /^@/ );
2874 + my $command_val = $command_variables{$value};
2875 + if ( defined( $command_val ) ) {
2876 + return $command_val;
2879 + return value( $value );
2882 +# Insert the new formula to the list of formulas
2883 +# Creates the name if it's empty...
2884 +sub insert_formula( $$ )
2886 + my ( $name, $fmla ) = @_;
2889 + foreach $f ( @formulas ) {
2890 + if ( $f eq $fmla ) {
2891 + if ( $name ne "" ) {
2892 + $variables{$name} = "@" . $i;
2899 + if ( $name eq "" ) {
2900 + $name = "@" . ( $#formulas + 1 );
2903 + $variables{$name} = "@" . ( $#formulas + 1 );
2904 + push @formulas, $fmla;
2906 + if ( $#formulas > 127 ) {
2907 + error( "Reached the maximum amount of formulas, have to ignore the shape '$shape_name'" );
2910 + return $variables{$name};
2913 +# The same as insert_formula(), but converts the params
2914 +sub insert_formula_params( $$$$$ )
2916 + my ( $name, $command, $p1, $p2, $p3 ) = @_;
2918 + my $result = $command;
2919 + if ( $p1 ne "" ) {
2920 + $result .= " " . command_value( $p1 );
2921 + if ( $p2 ne "" ) {
2922 + $result .= " " . command_value( $p2 );
2923 + if ( $p3 ne "" ) {
2924 + $result .= " " . command_value( $p3 );
2929 + return insert_formula( $name, $result );
2932 +# Convert the formula from DrawingML to VML
2933 +sub convert_formula( $$ )
2935 + my ( $name, $fmla ) = @_;
2937 + if ( $fmla =~ /^([^ ]+)/ ) {
2940 + # parse the parameters
2941 + ( my $values = $fmla ) =~ s/^([^ ]+) *//;
2942 + my $p1 = "", $p2 = "", $p3 = "";
2943 + if ( $values =~ /^([^ ]+)/ ) {
2945 + $values =~ s/^([^ ]+) *//;
2946 + if ( $values =~ /^([^ ]+)/ ) {
2948 + $values =~ s/^([^ ]+) *//;
2949 + if ( $values =~ /^([^ ]+)/ ) {
2955 + # now convert the formula
2956 + if ( $command eq "+-" ) {
2957 + if ( $p1 eq "100000" ) {
2958 + $p1 = value( 'w' );
2960 + insert_formula_params( $name, "sum", $p1, $p2, $p3 );
2963 + elsif ( $command eq "*/" ) {
2964 + if ( ( $p2 =~ /^(w|h|ss|hd2|wd2|vc)$/ ) && defined( $variables{$p1} ) ) {
2965 + # switch it ;-) - presetTextWarpDefinitions.xml has it in other order
2971 + if ( ( $p1 =~ /^(w|h|ss|hd2|wd2|vc)$/ ) && defined( $variables{$p2} ) ) {
2973 + if ( $val3 =~ /^[0-9-]+$/ ) {
2974 + $val3 *= ( value( 'w' ) / value( $p1 ) );
2976 + # Oh yes, I'm too lazy to implement the full GCD here ;-)
2977 + if ( ( $val3 % 100000 ) == 0 ) {
2979 + $p3 = sprintf( "%.0f", ( $val3 / 100000 ) );
2981 + elsif ( $val3 < 100000 ) {
2983 + while ( ( ( $p3 * 100000 ) % $val3 ) != 0 ) {
2986 + $p1 = ( $p3 * 100000 ) / $val3;
2989 + error( "Need to count the greatest common divisor." );
2993 + elsif ( $p3 eq "100000" && $p2 =~ /^[0-9-]+$/ ) {
2994 + # prevent overflows in some shapes
2995 + $p2 = sprintf( "%.0f", ( $p2 / 10 ) );
2998 + elsif ( $p3 eq "32768" && $p2 =~ /^[0-9-]+$/ ) {
2999 + # prevent overflows in some shapes
3000 + $p2 = sprintf( "%.0f", ( $p2 / 8 ) );
3003 + elsif ( $p3 eq "50000" ) {
3006 + elsif ( $name =~ /^maxAdj/ ) {
3007 + my $val = value( $p1 );
3008 + if ( $val =~ /^[0-9-]+$/ ) {
3009 + $p1 = sprintf( "%.0f", ( value( 'w' ) * $val / 100000 ) );
3013 + if ( ( value( $p1 ) eq value( $p3 ) ) || ( value( $p2 ) eq value( $p3 ) ) ) {
3014 + my $val = value( ( value( $p1 ) eq value( $p3 ) )? $p2: $p1 );
3015 + if ( $val =~ /^@([0-9]+)$/ ) {
3016 + insert_formula( $name, $formulas[$1] );
3019 + insert_formula( $name, "val $val" );
3023 + insert_formula_params( $name, "prod", $p1, $p2, $p3 );
3027 + elsif ( $command eq "+/" ) {
3028 + # we have to split this into 2 formulas - 'sum' and 'prod'
3029 + my $constructed = insert_formula_params( "", "sum", $p1, $p2, "0" );
3030 + insert_formula_params( $name, "prod", 1, $constructed, $p3); # references the 'sum' formula
3033 + elsif ( $command eq "?:" ) {
3034 + insert_formula_params( $name, "if", $p1, $p2, $p3 );
3037 + elsif ( $command eq "sin" || $command eq "cos" ) {
3038 + if ( $p2 =~ /^[0-9-]+$/ && ( ( $p2 % 60000 ) == 0 ) ) {
3042 + $p2 = insert_formula_params( "", "prod", "1", $p2, "60000" );
3044 + # we have to use 'sumangle' even for the case when $p2 is const
3045 + # and theoretically could be written as such; but Word does not
3047 + my $conv = insert_formula_params( "", "sumangle", "0", $p2, "0" );
3051 + insert_formula_params( $name, $command, $p1, $p2, "" );
3054 + elsif ( $command eq "abs" ) {
3055 + insert_formula_params( $name, $command, $p1, "", "" );
3058 + elsif ( $command eq "max" || $command eq "min" ) {
3059 + insert_formula_params( $name, $command, $p1, $p2, "" );
3062 + elsif ( $command eq "at2" ) {
3063 + insert_formula_params( $name, "atan2", $p1, $p2, "" );
3066 + elsif ( $command eq "cat2" ) {
3067 + insert_formula_params( $name, "cosatan2", $p1, $p2, $p3 );
3070 + elsif ( $command eq "sat2" ) {
3071 + insert_formula_params( $name, "sinatan2", $p1, $p2, $p3 );
3074 + elsif ( $command eq "sqrt" ) {
3075 + insert_formula_params( $name, "sqrt", $p1, "", "" );
3078 + elsif ( $command eq "mod" ) {
3079 + insert_formula_params( $name, "mod", $p1, $p2, $p3 );
3082 + elsif ( $command eq "val" ) {
3083 + insert_formula_params( $name, "val", value( $p1 ), "", "" );
3087 + error( "Unknown formula '$name', '$fmla'." );
3091 + error( "Cannot convert formula's command '$name', '$fmla'." );
3095 +# There's no exact equivalent of 'arcTo' in VML, we have to do some special casing...
3100 + 'op' => [ 'sum 0 __last_x__ __wR__', 'sum __hR__ __last_y__ 0' ],
3104 + 'op' => [ 'sum 0 __last_x__ __wR__', 'sum 0 __last_y__ __hR__' ],
3110 + 'op' => [ 'sum 0 __last_x__ __wR__', 'sum 0 __last_y__ __hR__' ],
3114 + 'op' => [ 'sum __wR__ __last_x__ 0', 'sum 0 __last_y__ __hR__' ],
3120 + 'op' => [ 'sum __wR__ __last_x__ 0', 'sum 0 __last_y__ __hR__' ],
3124 + 'op' => [ 'sum __wR__ __last_x__ 0', 'sum __hR__ __last_y__ 0' ],
3130 + 'op' => [ 'sum __wR__ __last_x__ 0', 'sum __hR__ __last_y__ 0' ],
3134 + 'op' => [ 'sum 0 __last_x__ __wR__', 'sum __hR__ __last_y__ 0' ],
3139 +# Elliptic quadrant
3140 +# FIXME optimize so that we compute the const values when possible
3141 +sub elliptic_quadrant( $$$$ )
3143 + my ( $wR, $hR, $stAng, $swAng ) = @_;
3145 + if ( defined( $convert_arcTo{$stAng} ) && defined( $convert_arcTo{$stAng}{$swAng} ) ) {
3146 + my $conv_path = $convert_arcTo{$stAng}{$swAng}{'path'};
3147 + my $conv_op_ref = $convert_arcTo{$stAng}{$swAng}{'op'};
3149 + $path .= "$conv_path";
3151 + my $pos_x = $last_pos_x;
3152 + my $pos_y = $last_pos_y;
3153 + for ( my $i = 0; $i <= $#{$conv_op_ref}; ++$i ) {
3154 + my $op = $conv_op_ref->[$i];
3156 + $op =~ s/__last_x__/$last_pos_x/g;
3157 + $op =~ s/__last_y__/$last_pos_y/g;
3158 + $op =~ s/__wR__/$wR/g;
3159 + $op =~ s/__hR__/$hR/g;
3161 + my $fmla = insert_formula( "", $op );
3165 + # so far it's sufficient just to rotate the positions
3166 + # FIXME if not ;-)
3170 + $last_pos_x = $pos_x;
3171 + $last_pos_y = $pos_y;
3174 + error( "Unhandled elliptic_quadrant(), input is ($wR, $hR, $stAng, $swAng)." );
3178 +# Convert the quadratic bezier to cubic (exact)
3179 +# No idea why, but the 'qb' did not work for me :-(
3180 +sub quadratic_to_cubic_bezier( $ )
3182 + my ( $axis ) = @_;
3184 + my $a0 = $quadratic_bezier[0]->{$axis};
3185 + my $a1 = $quadratic_bezier[1]->{$axis};
3186 + my $a2 = $quadratic_bezier[2]->{$axis};
3190 + # $b1 = $a0 + 2/3 * ( $a1 - $a0 ), but in VML
3191 + # FIXME optimize for constants - compute directly
3192 + my $b1_1 = insert_formula_params( "", "sum", "0", $a1, $a0 );
3193 + my $b1_2 = insert_formula_params( "", "prod", "2", $b1_1, "3" );
3194 + my $b1 = insert_formula_params( "", "sum", $a0, $b1_2, "0" );
3196 + # $b2 = $b1 + 1/3 * ( $a2 - $a0 );
3197 + # FIXME optimize for constants - compute directly
3198 + my $b2_1 = insert_formula_params( "", "sum", "0", $a2, $a0 );
3199 + my $b2_2 = insert_formula_params( "", "prod", "1", $b2_1, "3" );
3200 + my $b2 = insert_formula_params( "", "sum", $b1, $b2_2, "0" );
3204 + return ( $b0, $b1, $b2, $b3 );
3207 +# Extend $path by one more point
3208 +sub add_point_to_path( $$ )
3210 + my ( $x, $y ) = @_;
3212 + if ( $path =~ /[0-9]$/ && $x =~ /^[0-9-]/ ) {
3217 + if ( $path =~ /[0-9]$/ && $y =~ /^[0-9-]/ ) {
3223 +# Start of an element
3224 +sub start_element( $% )
3226 + my ( $element, %attr ) = @_;
3228 + push @levels, $element;
3230 + #print "element: $element\n";
3232 + if ( is_level( -1, "presetShapeDefinitons" ) || is_level( -1, "presetTextWarpDefinitions" ) ) {
3233 + $shape_name = $element;
3236 + $ignore_this_shape = 0;
3242 + $textboxrect = "";
3247 + @quadratic_bezier = ();
3249 + setup_variables();
3251 + if ( $shape_name eq "sun" ) {
3252 + # hack for this shape
3253 + $variables{'100000'} = "21600";
3254 + $variables{'50000'} = "10800";
3255 + $variables{'25000'} = "5400";
3256 + $variables{'12500'} = "2700";
3257 + $variables{'3662'} = "791";
3261 + foreach my $name ( values( %shapes_ids ) ) {
3262 + if ( $name eq $shape_name ) {
3268 + error( "Unknown shape '$shape_name'." );
3271 + elsif ( $element eq "pathLst" ) {
3274 + elsif ( $element eq "avLst" ) {
3275 + $state = "adjust";
3277 + elsif ( $element eq "gdLst" ) {
3278 + $state = "formulas";
3280 + elsif ( $element eq "ahLst" ) {
3281 + $state = "handles";
3283 + elsif ( $element eq "rect" ) {
3284 + $textboxrect = value( $attr{'l'} ) . "," . value( $attr{'t'} ) . "," .
3285 + value( $attr{'r'} ) . "," . value( $attr{'b'} );
3287 + elsif ( $state eq "path" ) {
3288 + if ( $element eq "path" ) {
3289 + $no_stroke = ( defined( $attr{'stroke'} ) && $attr{'stroke'} eq 'false' );
3290 + $no_fill = ( defined( $attr{'fill'} ) && $attr{'fill'} eq 'none' );
3291 + $path_w = $attr{'w'};
3292 + $path_h = $attr{'h'};
3294 + elsif ( $element eq "moveTo" ) {
3297 + elsif ( $element eq "lnTo" ) {
3300 + elsif ( $element eq "cubicBezTo" ) {
3303 + elsif ( $element eq "quadBezTo" ) {
3304 + my %points = ( 'x' => $last_pos_x, 'y' => $last_pos_y );
3305 + @quadratic_bezier = ( \%points );
3307 + elsif ( $element eq "close" ) {
3310 + elsif ( $element eq "pt" ) {
3311 + # rememeber the last position for the arcTo
3312 + $last_pos_x = value( $attr{'x'} );
3313 + $last_pos_y = value( $attr{'y'} );
3315 + $last_pos_x *= ( value( 'w' ) / $path_w ) if ( defined( $path_w ) );
3316 + $last_pos_y *= ( value( 'h' ) / $path_h ) if ( defined( $path_h ) );
3318 + if ( $#quadratic_bezier >= 0 ) {
3319 + my %points = ( 'x' => $last_pos_x, 'y' => $last_pos_y );
3320 + push( @quadratic_bezier, \%points );
3323 + add_point_to_path( $last_pos_x, $last_pos_y );
3326 + elsif ( ( $element eq "arcTo" ) && ( $last_pos_x ne "" ) && ( $last_pos_y ne "" ) ) {
3327 + # there's no exact equivalent of arcTo in VML, so we have to
3328 + # compute here a bit...
3329 + my $stAng = value( $attr{'stAng'} );
3330 + my $swAng = value( $attr{'swAng'} );
3331 + my $wR = value( $attr{'wR'} );
3332 + my $hR = value( $attr{'hR'} );
3334 + $wR *= ( value( 'w' ) / $path_w ) if ( defined( $path_w ) );
3335 + $hR *= ( value( 'h' ) / $path_h ) if ( defined( $path_h ) );
3337 + if ( ( $stAng =~ /^[0-9-]+$/ ) && ( $swAng =~ /^[0-9-]+$/ ) ) {
3338 + if ( ( ( $stAng % 90 ) == 0 ) && ( ( $swAng % 90 ) == 0 ) && ( $swAng != 0 ) ) {
3339 + my $end = $stAng + $swAng;
3340 + my $step = ( $swAng > 0 )? 90: -90;
3342 + for ( my $cur = $stAng; $cur != $end; $cur += $step ) {
3343 + elliptic_quadrant( $wR, $hR, ( $cur % 360 ), $step );
3347 + error( "Unsupported numeric 'arcTo' ($attr{'wR'}, $attr{'hR'}, $stAng, $swAng)." );
3351 + error( "Unsupported 'arcTo' conversion ($attr{'wR'}, $attr{'hR'}, $stAng, $swAng)." );
3355 + error( "Unhandled path element '$element'." );
3358 + elsif ( $state eq "adjust" ) {
3359 + if ( $element eq "gd" ) {
3360 + my $adj_no = $attr{'name'};
3363 + $adj_no =~ s/^adj//;
3364 + if ( $adj_no eq "" ) {
3367 + elsif ( !( $adj_no =~ /^[0-9]*$/ ) ) {
3371 + elsif ( $adj_no != $max_adj_no + 1 ) {
3372 + error( "Wrong order of adj values." );
3376 + $max_adj_no = $adj_no;
3379 + if ( $attr{'fmla'} =~ /^val ([0-9-]*)$/ ) {
3380 + my $val = sprintf( "%.0f", ( 21600 * $1 ) / 100000 );
3381 + if ( $is_const ) {
3382 + $variables{$adj_no} = $val;
3384 + elsif ( $adjust eq "" ) {
3388 + $adjust = "$val,$adjust";
3392 + error( "Wrong fmla '$attr{'fmla'}'." );
3396 + error( "Unhandled adjust element '$element'." );
3399 + elsif ( $state eq "formulas" ) {
3400 + if ( $element eq "gd" ) {
3401 + if ( $attr{'fmla'} =~ /^\*\/ (h|w|ss) adj([0-9]+) 100000$/ ) {
3402 + insert_formula( $attr{'name'}, "val #" . ( $max_adj_no - $2 ) );
3404 + elsif ( $attr{'fmla'} =~ /^pin [^ ]+ ([^ ]+) / ) {
3405 + print STDERR "TODO Map 'pin' to VML as xrange for handles.\n";
3407 + if ( $pin_val eq "adj" ) {
3408 + insert_formula( $attr{'name'}, "val #0" );
3410 + elsif ( $pin_val =~ /^adj([0-9]+)/ ) {
3411 + insert_formula( $attr{'name'}, "val #" . ( $max_adj_no - $1 ) );
3414 + insert_formula( $attr{'name'}, "val " . value( $pin_val ) );
3417 + elsif ( $attr{'fmla'} =~ /adj/ ) {
3418 + error( "Non-standard usage of adj in '$attr{'fmla'}'." );
3421 + convert_formula( $attr{'name'}, $attr{'fmla'} );
3425 + elsif ( $state eq "handles" ) {
3426 + if ( $element eq "pos" ) {
3427 + $handles .= "<v:h position=\"" . value( $attr{'x'} ) . "," . value( $attr{'y'} ) . "\"/>\n";
3432 +# End of an element
3433 +sub end_element( $ )
3435 + my ( $element ) = @_;
3439 + if ( $element eq $shape_name ) {
3440 + if ( !$ignore_this_shape ) {
3441 + # we have all the info, generate the shape now
3445 + my $out = "<v:shapetype id=\"shapetype___ID__\" coordsize=\"21600,21600\" o:spt=\"__ID__\" ";
3446 + if ( $adjust ne "" ) {
3447 + $out .= "adj=\"$adjust\" ";
3450 + # optimize it [yes, we need this twice ;-)]
3451 + $path =~ s/([^0-9-@])0([^0-9-@])/$1$2/g;
3452 + $path =~ s/([^0-9-@])0([^0-9-@])/$1$2/g;
3454 + $out .= "path=\"$path\">\n";
3457 + $out .= "<v:stroke joinstyle=\"miter\"/>\n";
3460 + if ( $#formulas >= 0 )
3462 + $out .= "<v:formulas>\n";
3463 + foreach $fmla ( @formulas ) {
3464 + $out .= "<v:f eqn=\"$fmla\"/>\n"
3466 + $out .= "</v:formulas>\n";
3470 + if ( $textboxrect ne "" ) { # TODO connectlocs, connectangles
3471 + $out .= "<v:path gradientshapeok=\"t\" o:connecttype=\"rect\" textboxrect=\"$textboxrect\"/>\n";
3475 + if ( $handles ne "" ) {
3476 + $out .= "<v:handles>\n$handles</v:handles>\n";
3479 + $out .="</v:shapetype>";
3482 + $result_shapes{$shape_name} = $out;
3485 + print STDERR "Shape '$shape_name' ignored; see the above error(s) for the reason.\n";
3489 + elsif ( $state eq "path" ) {
3490 + if ( $element eq "path" ) {
3491 + $path .= "ns" if ( $no_stroke );
3492 + $path .= "nf" if ( $no_fill );
3495 + elsif ( $element eq "quadBezTo" ) {
3496 + # we have to convert the quadratic bezier to cubic
3497 + if ( $#quadratic_bezier == 2 ) {
3498 + my @points_x = quadratic_to_cubic_bezier( 'x' );
3499 + my @points_y = quadratic_to_cubic_bezier( 'y' );
3502 + # ignore the starting point
3503 + for ( my $i = 1; $i < 4; ++$i ) {
3504 + add_point_to_path( $points_x[$i], $points_y[$i] );
3508 + error( "Wrong number of points of the quadratic bezier." );
3510 + @quadratic_bezier = ();
3513 + elsif ( $element eq "avLst" ) {
3516 + elsif ( $element eq "gdLst" ) {
3519 + elsif ( $element eq "ahLst" ) {
3524 +# Text inside an element
3525 +sub characters( $ )
3527 + #my ( $text ) = @_;
3530 +#################### A trivial XML parser ####################
3532 +# Parse the attributes
3533 +sub parse_start_element( $ )
3535 + # split the string containing both the elements and attributes
3536 + my ( $element_tmp ) = @_;
3538 + $element_tmp =~ s/\s*$//;
3539 + $element_tmp =~ s/^\s*//;
3541 + ( my $element = $element_tmp ) =~ s/\s.*$//;
3542 + if ( $element_tmp =~ /\s/ ) {
3543 + $element_tmp =~ s/^[^\s]*\s//;
3546 + $element_tmp = "";
3549 + # we have the element, now the attributes
3553 + foreach my $tmp ( split( /"/, $element_tmp ) ) {
3557 + $key =~ s/\s*=\s*$//;
3560 + $attr{$key} = $tmp;
3562 + $is_key = !$is_key;
3565 + if ( $element ne "" ) {
3566 + start_element( $element, %attr );
3573 + my ( $file ) = @_;
3575 + my $in_comment = 0;
3580 + s/<!--[^>]*-->//g;
3585 + elsif ( /-->/ && $in_comment ) {
3589 + elsif ( $in_comment ) {
3592 + # ignore empty lines
3596 + next if ( $_ eq "" );
3598 + # take care of lines where element continues
3599 + if ( $line ne "" ) {
3600 + $line .= " " . $_;
3605 + next if ( !/>$/ );
3607 + # the actual parsing
3608 + my @starts = split( /</, $line );
3610 + foreach $start ( @starts ) {
3611 + next if ( $start eq "" );
3613 + @ends = split( />/, $start );
3614 + my $element = $ends[0];
3615 + my $data = $ends[1];
3617 + # start or end element
3618 + if ( $element =~ /^\/(.*)/ ) {
3619 + end_element( $1 );
3621 + elsif ( $element =~ /^(.*)\/$/ ) {
3622 + parse_start_element( $1 );
3623 + ( my $end = $1 ) =~ s/\s.*$//;
3624 + end_element( $end );
3627 + parse_start_element( $element );
3631 + characters( $data ) if ( defined( $data ) && $data ne "" );
3637 +open( IN, "<$src_shapes" ) || die "Cannot open $src_shapes.";
3641 +open( IN, "<$src_text" ) || die "Cannot open $src_text.";
3645 +if ( !defined( $result_shapes{'textBox'} ) ) {
3646 + $result_shapes{'textBox'} =
3647 + "<v:shapetype id=\"shapetype___ID__\" coordsize=\"21600,21600\" " .
3648 + "o:spt=\"__ID__\" path=\"m,l,21600l21600,21600l21600,xe\">\n" .
3649 + "<v:stroke joinstyle=\"miter\"/>\n" .
3650 + "<v:path gradientshapeok=\"t\" o:connecttype=\"rect\"/>\n" .
3654 +# Generate the code
3656 +// Shape types generated from
3660 +// which are part of the OOXML documentation
3662 +#include <svx/escherex.hxx>
3664 +const char* pShapeTypes[ ESCHER_ShpInst_COUNT ] =
3668 +for ( $i = 0; $i < 203; ++$i ) {
3670 + print " /* $i - $shapes_ids{$i} - handled separately */\n NULL,\n";
3673 + print " /* $i - $shapes_ids{$i} */\n";
3674 + my $out = $result_shapes{$shapes_ids{$i}};
3675 + if ( defined( $out ) ) {
3677 + $out =~ s/__ID__/$i/g;
3680 + $out =~ s/"/\\"/g;
3682 + # output as string
3684 + $out =~ s/\n/"\n "/g;
3698 diff --git oox/source/export/presetShapeDefinitions.xml oox/source/export/presetShapeDefinitions.xml
3699 new file mode 100644
3700 index 0000000..f5fead7
3702 +++ oox/source/export/presetShapeDefinitions.xml
3704 +<?xml version="1.0" encoding="utf-8"?>
3705 +<presetShapeDefinitons>
3706 + <accentBorderCallout1>
3708 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3710 + <gd name="adj1" fmla="val 18750" />
3712 + <gd name="adj2" fmla="val -8333" />
3714 + <gd name="adj3" fmla="val 112500" />
3716 + <gd name="adj4" fmla="val -38333" />
3719 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3720 + <gd name="y1" fmla="*/ h adj1 100000" />
3721 + <gd name="x1" fmla="*/ w adj2 100000" />
3722 + <gd name="y2" fmla="*/ h adj3 100000" />
3723 + <gd name="x2" fmla="*/ w adj4 100000" />
3725 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3726 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
3727 + <pos x="x1" y="y1" />
3729 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
3730 + <pos x="x2" y="y2" />
3733 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3735 + <pos x="r" y="vc" />
3738 + <pos x="hc" y="b" />
3741 + <pos x="l" y="vc" />
3744 + <pos x="hc" y="t" />
3747 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
3748 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3749 + <path extrusionOk="false">
3751 + <pt x="l" y="t" />
3754 + <pt x="r" y="t" />
3757 + <pt x="r" y="b" />
3760 + <pt x="l" y="b" />
3764 + <path fill="none" extrusionOk="false">
3766 + <pt x="x1" y="t" />
3770 + <pt x="x1" y="b" />
3773 + <path fill="none" extrusionOk="false">
3775 + <pt x="x1" y="y1" />
3778 + <pt x="x2" y="y2" />
3783 + </accentBorderCallout1>
3784 + <accentBorderCallout2>
3786 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3788 + <gd name="adj1" fmla="val 18750" />
3790 + <gd name="adj2" fmla="val -8333" />
3792 + <gd name="adj3" fmla="val 18750" />
3794 + <gd name="adj4" fmla="val -16667" />
3796 + <gd name="adj5" fmla="val 112500" />
3798 + <gd name="adj6" fmla="val -46667" />
3801 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3802 + <gd name="y1" fmla="*/ h adj1 100000" />
3803 + <gd name="x1" fmla="*/ w adj2 100000" />
3804 + <gd name="y2" fmla="*/ h adj3 100000" />
3805 + <gd name="x2" fmla="*/ w adj4 100000" />
3806 + <gd name="y3" fmla="*/ h adj5 100000" />
3807 + <gd name="x3" fmla="*/ w adj6 100000" />
3809 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3810 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
3811 + <pos x="x1" y="y1" />
3813 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
3814 + <pos x="x2" y="y2" />
3816 + <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">
3817 + <pos x="x3" y="y3" />
3820 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3822 + <pos x="r" y="vc" />
3825 + <pos x="hc" y="b" />
3828 + <pos x="l" y="vc" />
3831 + <pos x="hc" y="t" />
3834 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
3835 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3836 + <path extrusionOk="false">
3838 + <pt x="l" y="t" />
3841 + <pt x="r" y="t" />
3844 + <pt x="r" y="b" />
3847 + <pt x="l" y="b" />
3851 + <path fill="none" extrusionOk="false">
3853 + <pt x="x1" y="t" />
3857 + <pt x="x1" y="b" />
3860 + <path fill="none" extrusionOk="false">
3862 + <pt x="x1" y="y1" />
3865 + <pt x="x2" y="y2" />
3868 + <pt x="x3" y="y3" />
3873 + </accentBorderCallout2>
3874 + <accentBorderCallout3>
3876 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3878 + <gd name="adj1" fmla="val 18750" />
3880 + <gd name="adj2" fmla="val -8333" />
3882 + <gd name="adj3" fmla="val 18750" />
3884 + <gd name="adj4" fmla="val -16667" />
3886 + <gd name="adj5" fmla="val 100000" />
3888 + <gd name="adj6" fmla="val -16667" />
3890 + <gd name="adj7" fmla="val 112963" />
3892 + <gd name="adj8" fmla="val -8333" />
3895 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3896 + <gd name="y1" fmla="*/ h adj1 100000" />
3897 + <gd name="x1" fmla="*/ w adj2 100000" />
3898 + <gd name="y2" fmla="*/ h adj3 100000" />
3899 + <gd name="x2" fmla="*/ w adj4 100000" />
3900 + <gd name="y3" fmla="*/ h adj5 100000" />
3901 + <gd name="x3" fmla="*/ w adj6 100000" />
3902 + <gd name="y4" fmla="*/ h adj7 100000" />
3903 + <gd name="x4" fmla="*/ w adj8 100000" />
3905 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3906 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
3907 + <pos x="x1" y="y1" />
3909 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
3910 + <pos x="x2" y="y2" />
3912 + <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">
3913 + <pos x="x3" y="y3" />
3915 + <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">
3916 + <pos x="x4" y="y4" />
3919 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3921 + <pos x="r" y="vc" />
3924 + <pos x="hc" y="b" />
3927 + <pos x="l" y="vc" />
3930 + <pos x="hc" y="t" />
3933 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
3934 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3935 + <path extrusionOk="false">
3937 + <pt x="l" y="t" />
3940 + <pt x="r" y="t" />
3943 + <pt x="r" y="b" />
3946 + <pt x="l" y="b" />
3950 + <path fill="none" extrusionOk="false">
3952 + <pt x="x1" y="t" />
3956 + <pt x="x1" y="b" />
3959 + <path fill="none" extrusionOk="false">
3961 + <pt x="x1" y="y1" />
3964 + <pt x="x2" y="y2" />
3967 + <pt x="x3" y="y3" />
3970 + <pt x="x4" y="y4" />
3975 + </accentBorderCallout3>
3978 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3980 + <gd name="adj1" fmla="val 18750" />
3982 + <gd name="adj2" fmla="val -8333" />
3984 + <gd name="adj3" fmla="val 112500" />
3986 + <gd name="adj4" fmla="val -38333" />
3989 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3990 + <gd name="y1" fmla="*/ h adj1 100000" />
3991 + <gd name="x1" fmla="*/ w adj2 100000" />
3992 + <gd name="y2" fmla="*/ h adj3 100000" />
3993 + <gd name="x2" fmla="*/ w adj4 100000" />
3995 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
3996 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
3997 + <pos x="x1" y="y1" />
3999 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
4000 + <pos x="x2" y="y2" />
4003 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4005 + <pos x="r" y="vc" />
4008 + <pos x="hc" y="b" />
4011 + <pos x="l" y="vc" />
4014 + <pos x="hc" y="t" />
4017 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4018 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4019 + <path stroke="false" extrusionOk="false">
4021 + <pt x="l" y="t" />
4024 + <pt x="r" y="t" />
4027 + <pt x="r" y="b" />
4030 + <pt x="l" y="b" />
4034 + <path fill="none" extrusionOk="false">
4036 + <pt x="x1" y="t" />
4040 + <pt x="x1" y="b" />
4043 + <path fill="none" extrusionOk="false">
4045 + <pt x="x1" y="y1" />
4048 + <pt x="x2" y="y2" />
4056 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4058 + <gd name="adj1" fmla="val 18750" />
4060 + <gd name="adj2" fmla="val -8333" />
4062 + <gd name="adj3" fmla="val 18750" />
4064 + <gd name="adj4" fmla="val -16667" />
4066 + <gd name="adj5" fmla="val 112500" />
4068 + <gd name="adj6" fmla="val -46667" />
4071 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4072 + <gd name="y1" fmla="*/ h adj1 100000" />
4073 + <gd name="x1" fmla="*/ w adj2 100000" />
4074 + <gd name="y2" fmla="*/ h adj3 100000" />
4075 + <gd name="x2" fmla="*/ w adj4 100000" />
4076 + <gd name="y3" fmla="*/ h adj5 100000" />
4077 + <gd name="x3" fmla="*/ w adj6 100000" />
4079 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4080 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
4081 + <pos x="x1" y="y1" />
4083 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
4084 + <pos x="x2" y="y2" />
4086 + <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">
4087 + <pos x="x3" y="y3" />
4090 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4092 + <pos x="r" y="vc" />
4095 + <pos x="hc" y="b" />
4098 + <pos x="l" y="vc" />
4101 + <pos x="hc" y="t" />
4104 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4105 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4106 + <path stroke="false" extrusionOk="false">
4108 + <pt x="l" y="t" />
4111 + <pt x="r" y="t" />
4114 + <pt x="r" y="b" />
4117 + <pt x="l" y="b" />
4121 + <path fill="none" extrusionOk="false">
4123 + <pt x="x1" y="t" />
4127 + <pt x="x1" y="b" />
4130 + <path fill="none" extrusionOk="false">
4132 + <pt x="x1" y="y1" />
4135 + <pt x="x2" y="y2" />
4138 + <pt x="x3" y="y3" />
4146 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4148 + <gd name="adj1" fmla="val 18750" />
4150 + <gd name="adj2" fmla="val -8333" />
4152 + <gd name="adj3" fmla="val 18750" />
4154 + <gd name="adj4" fmla="val -16667" />
4156 + <gd name="adj5" fmla="val 100000" />
4158 + <gd name="adj6" fmla="val -16667" />
4160 + <gd name="adj7" fmla="val 112963" />
4162 + <gd name="adj8" fmla="val -8333" />
4165 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4166 + <gd name="y1" fmla="*/ h adj1 100000" />
4167 + <gd name="x1" fmla="*/ w adj2 100000" />
4168 + <gd name="y2" fmla="*/ h adj3 100000" />
4169 + <gd name="x2" fmla="*/ w adj4 100000" />
4170 + <gd name="y3" fmla="*/ h adj5 100000" />
4171 + <gd name="x3" fmla="*/ w adj6 100000" />
4172 + <gd name="y4" fmla="*/ h adj7 100000" />
4173 + <gd name="x4" fmla="*/ w adj8 100000" />
4175 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4176 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
4177 + <pos x="x1" y="y1" />
4179 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
4180 + <pos x="x2" y="y2" />
4182 + <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">
4183 + <pos x="x3" y="y3" />
4185 + <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">
4186 + <pos x="x4" y="y4" />
4189 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4191 + <pos x="r" y="vc" />
4194 + <pos x="hc" y="b" />
4197 + <pos x="l" y="vc" />
4200 + <pos x="hc" y="t" />
4203 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4204 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4205 + <path stroke="false" extrusionOk="false">
4207 + <pt x="l" y="t" />
4210 + <pt x="r" y="t" />
4213 + <pt x="r" y="b" />
4216 + <pt x="l" y="b" />
4220 + <path fill="none" extrusionOk="false">
4222 + <pt x="x1" y="t" />
4226 + <pt x="x1" y="b" />
4229 + <path fill="none" extrusionOk="false">
4231 + <pt x="x1" y="y1" />
4234 + <pt x="x2" y="y2" />
4237 + <pt x="x3" y="y3" />
4240 + <pt x="x4" y="y4" />
4246 + <actionButtonBackPrevious>
4247 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4248 + <gd name="dx2" fmla="*/ ss 3 8" />
4249 + <gd name="g9" fmla="+- vc 0 dx2" />
4250 + <gd name="g10" fmla="+- vc dx2 0" />
4251 + <gd name="g11" fmla="+- hc 0 dx2" />
4252 + <gd name="g12" fmla="+- hc dx2 0" />
4254 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4256 + <pos x="r" y="vc" />
4259 + <pos x="hc" y="b" />
4262 + <pos x="l" y="vc" />
4265 + <pos x="hc" y="t" />
4268 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4269 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4270 + <path stroke="false" extrusionOk="false">
4272 + <pt x="l" y="t" />
4275 + <pt x="r" y="t" />
4278 + <pt x="r" y="b" />
4281 + <pt x="l" y="b" />
4285 + <pt x="g11" y="vc" />
4288 + <pt x="g12" y="g9" />
4291 + <pt x="g12" y="g10" />
4295 + <path stroke="false" fill="darken" extrusionOk="false">
4297 + <pt x="g11" y="vc" />
4300 + <pt x="g12" y="g9" />
4303 + <pt x="g12" y="g10" />
4307 + <path fill="none" extrusionOk="false">
4309 + <pt x="g11" y="vc" />
4312 + <pt x="g12" y="g9" />
4315 + <pt x="g12" y="g10" />
4319 + <path fill="none">
4321 + <pt x="l" y="t" />
4324 + <pt x="r" y="t" />
4327 + <pt x="r" y="b" />
4330 + <pt x="l" y="b" />
4335 + </actionButtonBackPrevious>
4336 + <actionButtonBeginning>
4338 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4339 + <gd name="dx2" fmla="*/ ss 3 8" />
4340 + <gd name="g9" fmla="+- vc 0 dx2" />
4341 + <gd name="g10" fmla="+- vc dx2 0" />
4342 + <gd name="g11" fmla="+- hc 0 dx2" />
4343 + <gd name="g12" fmla="+- hc dx2 0" />
4344 + <gd name="g13" fmla="*/ ss 3 4" />
4345 + <gd name="g14" fmla="*/ g13 1 8" />
4346 + <gd name="g15" fmla="*/ g13 1 4" />
4347 + <gd name="g16" fmla="+- g11 g14 0" />
4348 + <gd name="g17" fmla="+- g11 g15 0" />
4351 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4353 + <pos x="r" y="vc" />
4356 + <pos x="hc" y="b" />
4359 + <pos x="l" y="vc" />
4362 + <pos x="hc" y="t" />
4366 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4368 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4369 + <path stroke="false" extrusionOk="false">
4371 + <pt x="l" y="t" />
4374 + <pt x="r" y="t" />
4377 + <pt x="r" y="b" />
4380 + <pt x="l" y="b" />
4384 + <pt x="g17" y="vc" />
4388 + <pt x="g12" y="g9" />
4391 + <pt x="g12" y="g10" />
4395 + <pt x="g16" y="g9" />
4399 + <pt x="g11" y="g9" />
4402 + <pt x="g11" y="g10" />
4405 + <pt x="g16" y="g10" />
4409 + <path stroke="false" fill="darken" extrusionOk="false">
4411 + <pt x="g17" y="vc" />
4415 + <pt x="g12" y="g9" />
4418 + <pt x="g12" y="g10" />
4422 + <pt x="g16" y="g9" />
4426 + <pt x="g11" y="g9" />
4429 + <pt x="g11" y="g10" />
4432 + <pt x="g16" y="g10" />
4436 + <path fill="none" extrusionOk="false">
4438 + <pt x="g17" y="vc" />
4442 + <pt x="g12" y="g9" />
4445 + <pt x="g12" y="g10" />
4449 + <pt x="g16" y="g9" />
4453 + <pt x="g16" y="g10" />
4456 + <pt x="g11" y="g10" />
4459 + <pt x="g11" y="g9" />
4463 + <path fill="none">
4465 + <pt x="l" y="t" />
4469 + <pt x="r" y="t" />
4472 + <pt x="r" y="b" />
4475 + <pt x="l" y="b" />
4481 + </actionButtonBeginning>
4482 + <actionButtonBlank>
4484 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4486 + <pos x="r" y="vc" />
4489 + <pos x="hc" y="b" />
4492 + <pos x="l" y="vc" />
4495 + <pos x="hc" y="t" />
4499 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4501 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4504 + <pt x="l" y="t" />
4507 + <pt x="r" y="t" />
4510 + <pt x="r" y="b" />
4513 + <pt x="l" y="b" />
4519 + </actionButtonBlank>
4520 + <actionButtonDocument>
4522 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4523 + <gd name="dx2" fmla="*/ ss 3 8" />
4524 + <gd name="g9" fmla="+- vc 0 dx2" />
4525 + <gd name="g10" fmla="+- vc dx2 0" />
4526 + <gd name="dx1" fmla="*/ ss 9 32" />
4527 + <gd name="g11" fmla="+- hc 0 dx1" />
4528 + <gd name="g12" fmla="+- hc dx1 0" />
4529 + <gd name="g13" fmla="*/ ss 3 16" />
4530 + <gd name="g14" fmla="+- g12 0 g13" />
4531 + <gd name="g15" fmla="+- g9 g13 0" />
4534 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4536 + <pos x="r" y="vc" />
4539 + <pos x="hc" y="b" />
4542 + <pos x="l" y="vc" />
4545 + <pos x="hc" y="t" />
4549 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4551 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4552 + <path stroke="false" extrusionOk="false">
4554 + <pt x="l" y="t" />
4557 + <pt x="r" y="t" />
4560 + <pt x="r" y="b" />
4563 + <pt x="l" y="b" />
4567 + <pt x="g11" y="g9" />
4570 + <pt x="g14" y="g9" />
4573 + <pt x="g12" y="g15" />
4576 + <pt x="g12" y="g10" />
4579 + <pt x="g11" y="g10" />
4583 + <path stroke="false" fill="darkenLess" extrusionOk="false">
4586 + <pt x="g11" y="g9" />
4589 + <pt x="g14" y="g9" />
4592 + <pt x="g14" y="g15" />
4595 + <pt x="g12" y="g15" />
4598 + <pt x="g12" y="g10" />
4601 + <pt x="g11" y="g10" />
4605 + <path stroke="false" fill="darken" extrusionOk="false">
4607 + <pt x="g14" y="g9" />
4611 + <pt x="g14" y="g15" />
4614 + <pt x="g12" y="g15" />
4618 + <path fill="none" extrusionOk="false">
4620 + <pt x="g11" y="g9" />
4623 + <pt x="g14" y="g9" />
4626 + <pt x="g12" y="g15" />
4629 + <pt x="g12" y="g10" />
4632 + <pt x="g11" y="g10" />
4636 + <pt x="g12" y="g15" />
4639 + <pt x="g14" y="g15" />
4642 + <pt x="g14" y="g9" />
4645 + <path fill="none">
4647 + <pt x="l" y="t" />
4651 + <pt x="r" y="t" />
4654 + <pt x="r" y="b" />
4657 + <pt x="l" y="b" />
4663 + </actionButtonDocument>
4666 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4667 + <gd name="dx2" fmla="*/ ss 3 8" />
4668 + <gd name="g9" fmla="+- vc 0 dx2" />
4669 + <gd name="g10" fmla="+- vc dx2 0" />
4670 + <gd name="g11" fmla="+- hc 0 dx2" />
4671 + <gd name="g12" fmla="+- hc dx2 0" />
4672 + <gd name="g13" fmla="*/ ss 3 4" />
4673 + <gd name="g14" fmla="*/ g13 3 4" />
4674 + <gd name="g15" fmla="*/ g13 7 8" />
4675 + <gd name="g16" fmla="+- g11 g14 0" />
4676 + <gd name="g17" fmla="+- g11 g15 0" />
4679 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4681 + <pos x="r" y="vc" />
4684 + <pos x="hc" y="b" />
4687 + <pos x="l" y="vc" />
4690 + <pos x="hc" y="t" />
4694 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4696 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4697 + <path stroke="false" extrusionOk="false">
4699 + <pt x="l" y="t" />
4702 + <pt x="r" y="t" />
4705 + <pt x="r" y="b" />
4708 + <pt x="l" y="b" />
4712 + <pt x="g16" y="vc" />
4716 + <pt x="g11" y="g9" />
4719 + <pt x="g11" y="g10" />
4723 + <pt x="g17" y="g9" />
4727 + <pt x="g12" y="g9" />
4730 + <pt x="g12" y="g10" />
4733 + <pt x="g17" y="g10" />
4737 + <path stroke="false" fill="darken" extrusionOk="false">
4739 + <pt x="g16" y="vc" />
4743 + <pt x="g11" y="g9" />
4746 + <pt x="g11" y="g10" />
4750 + <pt x="g17" y="g9" />
4754 + <pt x="g12" y="g9" />
4757 + <pt x="g12" y="g10" />
4760 + <pt x="g17" y="g10" />
4764 + <path fill="none" extrusionOk="false">
4766 + <pt x="g16" y="vc" />
4770 + <pt x="g11" y="g10" />
4773 + <pt x="g11" y="g9" />
4777 + <pt x="g17" y="g9" />
4781 + <pt x="g12" y="g9" />
4784 + <pt x="g12" y="g10" />
4787 + <pt x="g17" y="g10" />
4791 + <path fill="none">
4793 + <pt x="l" y="t" />
4797 + <pt x="r" y="t" />
4800 + <pt x="r" y="b" />
4803 + <pt x="l" y="b" />
4809 + </actionButtonEnd>
4810 + <actionButtonForwardNext>
4811 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4812 + <gd name="dx2" fmla="*/ ss 3 8" />
4813 + <gd name="g9" fmla="+- vc 0 dx2" />
4814 + <gd name="g10" fmla="+- vc dx2 0" />
4815 + <gd name="g11" fmla="+- hc 0 dx2" />
4816 + <gd name="g12" fmla="+- hc dx2 0" />
4818 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4820 + <pos x="r" y="vc" />
4823 + <pos x="hc" y="b" />
4826 + <pos x="l" y="vc" />
4829 + <pos x="hc" y="t" />
4832 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4833 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4834 + <path stroke="false" extrusionOk="false">
4836 + <pt x="l" y="t" />
4839 + <pt x="r" y="t" />
4842 + <pt x="r" y="b" />
4845 + <pt x="l" y="b" />
4849 + <pt x="g12" y="vc" />
4852 + <pt x="g11" y="g9" />
4855 + <pt x="g11" y="g10" />
4859 + <path stroke="false" fill="darken" extrusionOk="false">
4861 + <pt x="g12" y="vc" />
4864 + <pt x="g11" y="g9" />
4867 + <pt x="g11" y="g10" />
4871 + <path fill="none" extrusionOk="false">
4873 + <pt x="g12" y="vc" />
4876 + <pt x="g11" y="g10" />
4879 + <pt x="g11" y="g9" />
4883 + <path fill="none">
4885 + <pt x="l" y="t" />
4888 + <pt x="r" y="t" />
4891 + <pt x="r" y="b" />
4894 + <pt x="l" y="b" />
4899 + </actionButtonForwardNext>
4900 + <actionButtonHelp>
4902 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4903 + <gd name="dx2" fmla="*/ ss 3 8" />
4904 + <gd name="g9" fmla="+- vc 0 dx2" />
4905 + <gd name="g11" fmla="+- hc 0 dx2" />
4906 + <gd name="g13" fmla="*/ ss 3 4" />
4907 + <gd name="g14" fmla="*/ g13 1 7" />
4908 + <gd name="g15" fmla="*/ g13 3 14" />
4909 + <gd name="g16" fmla="*/ g13 2 7" />
4910 + <gd name="g19" fmla="*/ g13 3 7" />
4911 + <gd name="g20" fmla="*/ g13 4 7" />
4912 + <gd name="g21" fmla="*/ g13 17 28" />
4913 + <gd name="g23" fmla="*/ g13 21 28" />
4914 + <gd name="g24" fmla="*/ g13 11 14" />
4915 + <gd name="g27" fmla="+- g9 g16 0" />
4916 + <gd name="g29" fmla="+- g9 g21 0" />
4917 + <gd name="g30" fmla="+- g9 g23 0" />
4918 + <gd name="g31" fmla="+- g9 g24 0" />
4919 + <gd name="g33" fmla="+- g11 g15 0" />
4920 + <gd name="g36" fmla="+- g11 g19 0" />
4921 + <gd name="g37" fmla="+- g11 g20 0" />
4922 + <gd name="g41" fmla="*/ g13 1 14" />
4923 + <gd name="g42" fmla="*/ g13 3 28" />
4926 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4928 + <pos x="r" y="vc" />
4931 + <pos x="hc" y="b" />
4934 + <pos x="l" y="vc" />
4937 + <pos x="hc" y="t" />
4941 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
4943 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
4944 + <path stroke="false" extrusionOk="false">
4946 + <pt x="l" y="t" />
4949 + <pt x="r" y="t" />
4952 + <pt x="r" y="b" />
4955 + <pt x="l" y="b" />
4959 + <pt x="g33" y="g27" />
4962 + <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />
4963 + <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />
4964 + <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />
4966 + <pt x="g37" y="g30" />
4969 + <pt x="g36" y="g30" />
4972 + <pt x="g36" y="g29" />
4974 + <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />
4975 + <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />
4976 + <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />
4979 + <pt x="hc" y="g31" />
4982 + <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />
4985 + <path stroke="false" fill="darken" extrusionOk="false">
4987 + <pt x="g33" y="g27" />
4990 + <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />
4991 + <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />
4992 + <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />
4994 + <pt x="g37" y="g30" />
4997 + <pt x="g36" y="g30" />
5000 + <pt x="g36" y="g29" />
5002 + <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />
5003 + <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />
5004 + <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />
5007 + <pt x="hc" y="g31" />
5010 + <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />
5013 + <path fill="none" extrusionOk="false">
5015 + <pt x="g33" y="g27" />
5018 + <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />
5019 + <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />
5020 + <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />
5022 + <pt x="g37" y="g30" />
5025 + <pt x="g36" y="g30" />
5028 + <pt x="g36" y="g29" />
5030 + <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />
5031 + <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />
5032 + <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />
5035 + <pt x="hc" y="g31" />
5038 + <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />
5041 + <path fill="none">
5043 + <pt x="l" y="t" />
5047 + <pt x="r" y="t" />
5050 + <pt x="r" y="b" />
5053 + <pt x="l" y="b" />
5059 + </actionButtonHelp>
5060 + <actionButtonHome>
5062 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5063 + <gd name="dx2" fmla="*/ ss 3 8" />
5064 + <gd name="g9" fmla="+- vc 0 dx2" />
5065 + <gd name="g10" fmla="+- vc dx2 0" />
5066 + <gd name="g11" fmla="+- hc 0 dx2" />
5067 + <gd name="g12" fmla="+- hc dx2 0" />
5068 + <gd name="g13" fmla="*/ ss 3 4" />
5069 + <gd name="g14" fmla="*/ g13 1 16" />
5070 + <gd name="g15" fmla="*/ g13 1 8" />
5071 + <gd name="g16" fmla="*/ g13 3 16" />
5072 + <gd name="g17" fmla="*/ g13 5 16" />
5073 + <gd name="g18" fmla="*/ g13 7 16" />
5074 + <gd name="g19" fmla="*/ g13 9 16" />
5075 + <gd name="g20" fmla="*/ g13 11 16" />
5076 + <gd name="g21" fmla="*/ g13 3 4" />
5077 + <gd name="g22" fmla="*/ g13 13 16" />
5078 + <gd name="g23" fmla="*/ g13 7 8" />
5079 + <gd name="g24" fmla="+- g9 g14 0" />
5080 + <gd name="g25" fmla="+- g9 g16 0" />
5081 + <gd name="g26" fmla="+- g9 g17 0" />
5082 + <gd name="g27" fmla="+- g9 g21 0" />
5083 + <gd name="g28" fmla="+- g11 g15 0" />
5084 + <gd name="g29" fmla="+- g11 g18 0" />
5085 + <gd name="g30" fmla="+- g11 g19 0" />
5086 + <gd name="g31" fmla="+- g11 g20 0" />
5087 + <gd name="g32" fmla="+- g11 g22 0" />
5088 + <gd name="g33" fmla="+- g11 g23 0" />
5091 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5093 + <pos x="r" y="vc" />
5096 + <pos x="hc" y="b" />
5099 + <pos x="l" y="vc" />
5102 + <pos x="hc" y="t" />
5106 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
5108 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5109 + <path stroke="false" extrusionOk="false">
5111 + <pt x="l" y="t" />
5114 + <pt x="r" y="t" />
5117 + <pt x="r" y="b" />
5120 + <pt x="l" y="b" />
5124 + <pt x="hc" y="g9" />
5127 + <pt x="g11" y="vc" />
5130 + <pt x="g28" y="vc" />
5133 + <pt x="g28" y="g10" />
5136 + <pt x="g33" y="g10" />
5139 + <pt x="g33" y="vc" />
5142 + <pt x="g12" y="vc" />
5145 + <pt x="g32" y="g26" />
5148 + <pt x="g32" y="g24" />
5151 + <pt x="g31" y="g24" />
5154 + <pt x="g31" y="g25" />
5158 + <path stroke="false" fill="darkenLess" extrusionOk="false">
5161 + <pt x="g32" y="g26" />
5164 + <pt x="g32" y="g24" />
5167 + <pt x="g31" y="g24" />
5170 + <pt x="g31" y="g25" />
5174 + <pt x="g28" y="vc" />
5178 + <pt x="g28" y="g10" />
5181 + <pt x="g29" y="g10" />
5184 + <pt x="g29" y="g27" />
5187 + <pt x="g30" y="g27" />
5190 + <pt x="g30" y="g10" />
5193 + <pt x="g33" y="g10" />
5196 + <pt x="g33" y="vc" />
5200 + <path stroke="false" fill="darken" extrusionOk="false">
5202 + <pt x="hc" y="g9" />
5206 + <pt x="g11" y="vc" />
5209 + <pt x="g12" y="vc" />
5213 + <pt x="g29" y="g27" />
5217 + <pt x="g30" y="g27" />
5220 + <pt x="g30" y="g10" />
5223 + <pt x="g29" y="g10" />
5227 + <path fill="none" extrusionOk="false">
5229 + <pt x="hc" y="g9" />
5232 + <pt x="g31" y="g25" />
5235 + <pt x="g31" y="g24" />
5238 + <pt x="g32" y="g24" />
5241 + <pt x="g32" y="g26" />
5244 + <pt x="g12" y="vc" />
5247 + <pt x="g33" y="vc" />
5250 + <pt x="g33" y="g10" />
5253 + <pt x="g28" y="g10" />
5256 + <pt x="g28" y="vc" />
5259 + <pt x="g11" y="vc" />
5263 + <pt x="g31" y="g25" />
5266 + <pt x="g32" y="g26" />
5270 + <pt x="g33" y="vc" />
5273 + <pt x="g28" y="vc" />
5277 + <pt x="g29" y="g10" />
5281 + <pt x="g29" y="g27" />
5284 + <pt x="g30" y="g27" />
5287 + <pt x="g30" y="g10" />
5290 + <path fill="none">
5292 + <pt x="l" y="t" />
5296 + <pt x="r" y="t" />
5299 + <pt x="r" y="b" />
5302 + <pt x="l" y="b" />
5308 + </actionButtonHome>
5309 + <actionButtonInformation>
5311 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5312 + <gd name="dx2" fmla="*/ ss 3 8" />
5313 + <gd name="g9" fmla="+- vc 0 dx2" />
5314 + <gd name="g11" fmla="+- hc 0 dx2" />
5315 + <gd name="g13" fmla="*/ ss 3 4" />
5316 + <gd name="g14" fmla="*/ g13 1 32" />
5317 + <gd name="g17" fmla="*/ g13 5 16" />
5318 + <gd name="g18" fmla="*/ g13 3 8" />
5319 + <gd name="g19" fmla="*/ g13 13 32" />
5320 + <gd name="g20" fmla="*/ g13 19 32" />
5321 + <gd name="g22" fmla="*/ g13 11 16" />
5322 + <gd name="g23" fmla="*/ g13 13 16" />
5323 + <gd name="g24" fmla="*/ g13 7 8" />
5324 + <gd name="g25" fmla="+- g9 g14 0" />
5325 + <gd name="g28" fmla="+- g9 g17 0" />
5326 + <gd name="g29" fmla="+- g9 g18 0" />
5327 + <gd name="g30" fmla="+- g9 g23 0" />
5328 + <gd name="g31" fmla="+- g9 g24 0" />
5329 + <gd name="g32" fmla="+- g11 g17 0" />
5330 + <gd name="g34" fmla="+- g11 g19 0" />
5331 + <gd name="g35" fmla="+- g11 g20 0" />
5332 + <gd name="g37" fmla="+- g11 g22 0" />
5333 + <gd name="g38" fmla="*/ g13 3 32" />
5336 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5338 + <pos x="r" y="vc" />
5341 + <pos x="hc" y="b" />
5344 + <pos x="l" y="vc" />
5347 + <pos x="hc" y="t" />
5351 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
5353 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5354 + <path stroke="false" extrusionOk="false">
5356 + <pt x="l" y="t" />
5359 + <pt x="r" y="t" />
5362 + <pt x="r" y="b" />
5365 + <pt x="l" y="b" />
5369 + <pt x="hc" y="g9" />
5372 + <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />
5375 + <path stroke="false" fill="darken" extrusionOk="false">
5377 + <pt x="hc" y="g9" />
5380 + <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />
5383 + <pt x="hc" y="g25" />
5386 + <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />
5388 + <pt x="g32" y="g28" />
5392 + <pt x="g32" y="g29" />
5395 + <pt x="g34" y="g29" />
5398 + <pt x="g34" y="g30" />
5401 + <pt x="g32" y="g30" />
5404 + <pt x="g32" y="g31" />
5407 + <pt x="g37" y="g31" />
5410 + <pt x="g37" y="g30" />
5413 + <pt x="g35" y="g30" />
5416 + <pt x="g35" y="g28" />
5420 + <path stroke="false" fill="lighten" extrusionOk="false">
5422 + <pt x="hc" y="g25" />
5425 + <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />
5427 + <pt x="g32" y="g28" />
5431 + <pt x="g35" y="g28" />
5434 + <pt x="g35" y="g30" />
5437 + <pt x="g37" y="g30" />
5440 + <pt x="g37" y="g31" />
5443 + <pt x="g32" y="g31" />
5446 + <pt x="g32" y="g30" />
5449 + <pt x="g34" y="g30" />
5452 + <pt x="g34" y="g29" />
5455 + <pt x="g32" y="g29" />
5459 + <path fill="none" extrusionOk="false">
5461 + <pt x="hc" y="g9" />
5464 + <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />
5467 + <pt x="hc" y="g25" />
5470 + <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />
5472 + <pt x="g32" y="g28" />
5476 + <pt x="g35" y="g28" />
5479 + <pt x="g35" y="g30" />
5482 + <pt x="g37" y="g30" />
5485 + <pt x="g37" y="g31" />
5488 + <pt x="g32" y="g31" />
5491 + <pt x="g32" y="g30" />
5494 + <pt x="g34" y="g30" />
5497 + <pt x="g34" y="g29" />
5500 + <pt x="g32" y="g29" />
5504 + <path fill="none">
5506 + <pt x="l" y="t" />
5510 + <pt x="r" y="t" />
5513 + <pt x="r" y="b" />
5516 + <pt x="l" y="b" />
5522 + </actionButtonInformation>
5523 + <actionButtonMovie>
5525 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5526 + <gd name="dx2" fmla="*/ ss 3 8" />
5527 + <gd name="g9" fmla="+- vc 0 dx2" />
5528 + <gd name="g10" fmla="+- vc dx2 0" />
5529 + <gd name="g11" fmla="+- hc 0 dx2" />
5530 + <gd name="g12" fmla="+- hc dx2 0" />
5531 + <gd name="g13" fmla="*/ ss 3 4" />
5532 + <gd name="g14" fmla="*/ g13 1455 21600" />
5533 + <gd name="g15" fmla="*/ g13 1905 21600" />
5534 + <gd name="g16" fmla="*/ g13 2325 21600" />
5535 + <gd name="g17" fmla="*/ g13 16155 21600" />
5536 + <gd name="g18" fmla="*/ g13 17010 21600" />
5537 + <gd name="g19" fmla="*/ g13 19335 21600" />
5538 + <gd name="g20" fmla="*/ g13 19725 21600" />
5539 + <gd name="g21" fmla="*/ g13 20595 21600" />
5540 + <gd name="g22" fmla="*/ g13 5280 21600" />
5541 + <gd name="g23" fmla="*/ g13 5730 21600" />
5542 + <gd name="g24" fmla="*/ g13 6630 21600" />
5543 + <gd name="g25" fmla="*/ g13 7492 21600" />
5544 + <gd name="g26" fmla="*/ g13 9067 21600" />
5545 + <gd name="g27" fmla="*/ g13 9555 21600" />
5546 + <gd name="g28" fmla="*/ g13 13342 21600" />
5547 + <gd name="g29" fmla="*/ g13 14580 21600" />
5548 + <gd name="g30" fmla="*/ g13 15592 21600" />
5549 + <gd name="g31" fmla="+- g11 g14 0" />
5550 + <gd name="g32" fmla="+- g11 g15 0" />
5551 + <gd name="g33" fmla="+- g11 g16 0" />
5552 + <gd name="g34" fmla="+- g11 g17 0" />
5553 + <gd name="g35" fmla="+- g11 g18 0" />
5554 + <gd name="g36" fmla="+- g11 g19 0" />
5555 + <gd name="g37" fmla="+- g11 g20 0" />
5556 + <gd name="g38" fmla="+- g11 g21 0" />
5557 + <gd name="g39" fmla="+- g9 g22 0" />
5558 + <gd name="g40" fmla="+- g9 g23 0" />
5559 + <gd name="g41" fmla="+- g9 g24 0" />
5560 + <gd name="g42" fmla="+- g9 g25 0" />
5561 + <gd name="g43" fmla="+- g9 g26 0" />
5562 + <gd name="g44" fmla="+- g9 g27 0" />
5563 + <gd name="g45" fmla="+- g9 g28 0" />
5564 + <gd name="g46" fmla="+- g9 g29 0" />
5565 + <gd name="g47" fmla="+- g9 g30 0" />
5566 + <gd name="g48" fmla="+- g9 g31 0" />
5569 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5571 + <pos x="r" y="vc" />
5574 + <pos x="hc" y="b" />
5577 + <pos x="l" y="vc" />
5580 + <pos x="hc" y="t" />
5584 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
5586 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5587 + <path stroke="false" extrusionOk="false">
5589 + <pt x="l" y="t" />
5592 + <pt x="r" y="t" />
5595 + <pt x="r" y="b" />
5598 + <pt x="l" y="b" />
5602 + <pt x="g11" y="g39" />
5606 + <pt x="g11" y="g44" />
5609 + <pt x="g31" y="g44" />
5612 + <pt x="g32" y="g43" />
5615 + <pt x="g33" y="g43" />
5618 + <pt x="g33" y="g47" />
5621 + <pt x="g35" y="g47" />
5624 + <pt x="g35" y="g45" />
5627 + <pt x="g36" y="g45" />
5630 + <pt x="g38" y="g46" />
5633 + <pt x="g12" y="g46" />
5636 + <pt x="g12" y="g41" />
5639 + <pt x="g38" y="g41" />
5642 + <pt x="g37" y="g42" />
5645 + <pt x="g35" y="g42" />
5648 + <pt x="g35" y="g41" />
5651 + <pt x="g34" y="g40" />
5654 + <pt x="g32" y="g40" />
5657 + <pt x="g31" y="g39" />
5661 + <path stroke="false" fill="darken" extrusionOk="false">
5663 + <pt x="g11" y="g39" />
5667 + <pt x="g11" y="g44" />
5670 + <pt x="g31" y="g44" />
5673 + <pt x="g32" y="g43" />
5676 + <pt x="g33" y="g43" />
5679 + <pt x="g33" y="g47" />
5682 + <pt x="g35" y="g47" />
5685 + <pt x="g35" y="g45" />
5688 + <pt x="g36" y="g45" />
5691 + <pt x="g38" y="g46" />
5694 + <pt x="g12" y="g46" />
5697 + <pt x="g12" y="g41" />
5700 + <pt x="g38" y="g41" />
5703 + <pt x="g37" y="g42" />
5706 + <pt x="g35" y="g42" />
5709 + <pt x="g35" y="g41" />
5712 + <pt x="g34" y="g40" />
5715 + <pt x="g32" y="g40" />
5718 + <pt x="g31" y="g39" />
5722 + <path fill="none" extrusionOk="false">
5724 + <pt x="g11" y="g39" />
5728 + <pt x="g31" y="g39" />
5731 + <pt x="g32" y="g40" />
5734 + <pt x="g34" y="g40" />
5737 + <pt x="g35" y="g41" />
5740 + <pt x="g35" y="g42" />
5743 + <pt x="g37" y="g42" />
5746 + <pt x="g38" y="g41" />
5749 + <pt x="g12" y="g41" />
5752 + <pt x="g12" y="g46" />
5755 + <pt x="g38" y="g46" />
5758 + <pt x="g36" y="g45" />
5761 + <pt x="g35" y="g45" />
5764 + <pt x="g35" y="g47" />
5767 + <pt x="g33" y="g47" />
5770 + <pt x="g33" y="g43" />
5773 + <pt x="g32" y="g43" />
5776 + <pt x="g31" y="g44" />
5779 + <pt x="g11" y="g44" />
5783 + <path fill="none">
5785 + <pt x="l" y="t" />
5789 + <pt x="r" y="t" />
5792 + <pt x="r" y="b" />
5795 + <pt x="l" y="b" />
5801 + </actionButtonMovie>
5802 + <actionButtonReturn>
5804 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5805 + <gd name="dx2" fmla="*/ ss 3 8" />
5806 + <gd name="g9" fmla="+- vc 0 dx2" />
5807 + <gd name="g10" fmla="+- vc dx2 0" />
5808 + <gd name="g11" fmla="+- hc 0 dx2" />
5809 + <gd name="g12" fmla="+- hc dx2 0" />
5810 + <gd name="g13" fmla="*/ ss 3 4" />
5811 + <gd name="g14" fmla="*/ g13 7 8" />
5812 + <gd name="g15" fmla="*/ g13 3 4" />
5813 + <gd name="g16" fmla="*/ g13 5 8" />
5814 + <gd name="g17" fmla="*/ g13 3 8" />
5815 + <gd name="g18" fmla="*/ g13 1 4" />
5816 + <gd name="g19" fmla="+- g9 g15 0" />
5817 + <gd name="g20" fmla="+- g9 g16 0" />
5818 + <gd name="g21" fmla="+- g9 g18 0" />
5819 + <gd name="g22" fmla="+- g11 g14 0" />
5820 + <gd name="g23" fmla="+- g11 g15 0" />
5821 + <gd name="g24" fmla="+- g11 g16 0" />
5822 + <gd name="g25" fmla="+- g11 g17 0" />
5823 + <gd name="g26" fmla="+- g11 g18 0" />
5824 + <gd name="g27" fmla="*/ g13 1 8" />
5827 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5829 + <pos x="r" y="vc" />
5832 + <pos x="hc" y="b" />
5835 + <pos x="l" y="vc" />
5838 + <pos x="hc" y="t" />
5842 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
5844 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
5845 + <path stroke="false" extrusionOk="false">
5847 + <pt x="l" y="t" />
5850 + <pt x="r" y="t" />
5853 + <pt x="r" y="b" />
5856 + <pt x="l" y="b" />
5860 + <pt x="g12" y="g21" />
5863 + <pt x="g23" y="g9" />
5866 + <pt x="hc" y="g21" />
5869 + <pt x="g24" y="g21" />
5872 + <pt x="g24" y="g20" />
5874 + <arcTo wR="g27" hR="g27" stAng="0" swAng="cd4" />
5876 + <pt x="g25" y="g19" />
5878 + <arcTo wR="g27" hR="g27" stAng="cd4" swAng="cd4" />
5880 + <pt x="g26" y="g21" />
5883 + <pt x="g11" y="g21" />
5886 + <pt x="g11" y="g20" />
5888 + <arcTo wR="g17" hR="g17" stAng="cd2" swAng="-5400000" />
5890 + <pt x="hc" y="g10" />
5892 + <arcTo wR="g17" hR="g17" stAng="cd4" swAng="-5400000" />
5894 + <pt x="g22" y="g21" />
5898 + <path stroke="false" fill="darken" extrusionOk="false">
5900 + <pt x="g12" y="g21" />
5903 + <pt x="g23" y="g9" />
5906 + <pt x="hc" y="g21" />
5909 + <pt x="g24" y="g21" />
5912 + <pt x="g24" y="g20" />
5914 + <arcTo wR="g27" hR="g27" stAng="0" swAng="cd4" />
5916 + <pt x="g25" y="g19" />
5918 + <arcTo wR="g27" hR="g27" stAng="cd4" swAng="cd4" />
5920 + <pt x="g26" y="g21" />
5923 + <pt x="g11" y="g21" />
5926 + <pt x="g11" y="g20" />
5928 + <arcTo wR="g17" hR="g17" stAng="cd2" swAng="-5400000" />
5930 + <pt x="hc" y="g10" />
5932 + <arcTo wR="g17" hR="g17" stAng="cd4" swAng="-5400000" />
5934 + <pt x="g22" y="g21" />
5938 + <path fill="none" extrusionOk="false">
5940 + <pt x="g12" y="g21" />
5943 + <pt x="g22" y="g21" />
5946 + <pt x="g22" y="g20" />
5948 + <arcTo wR="g17" hR="g17" stAng="0" swAng="cd4" />
5950 + <pt x="g25" y="g10" />
5952 + <arcTo wR="g17" hR="g17" stAng="cd4" swAng="cd4" />
5954 + <pt x="g11" y="g21" />
5957 + <pt x="g26" y="g21" />
5960 + <pt x="g26" y="g20" />
5962 + <arcTo wR="g27" hR="g27" stAng="cd2" swAng="-5400000" />
5964 + <pt x="hc" y="g19" />
5966 + <arcTo wR="g27" hR="g27" stAng="cd4" swAng="-5400000" />
5968 + <pt x="g24" y="g21" />
5971 + <pt x="hc" y="g21" />
5974 + <pt x="g23" y="g9" />
5978 + <path fill="none">
5980 + <pt x="l" y="t" />
5984 + <pt x="r" y="t" />
5987 + <pt x="r" y="b" />
5990 + <pt x="l" y="b" />
5996 + </actionButtonReturn>
5997 + <actionButtonSound>
5999 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6000 + <gd name="dx2" fmla="*/ ss 3 8" />
6001 + <gd name="g9" fmla="+- vc 0 dx2" />
6002 + <gd name="g10" fmla="+- vc dx2 0" />
6003 + <gd name="g11" fmla="+- hc 0 dx2" />
6004 + <gd name="g12" fmla="+- hc dx2 0" />
6005 + <gd name="g13" fmla="*/ ss 3 4" />
6006 + <gd name="g14" fmla="*/ g13 1 8" />
6007 + <gd name="g15" fmla="*/ g13 5 16" />
6008 + <gd name="g16" fmla="*/ g13 5 8" />
6009 + <gd name="g17" fmla="*/ g13 11 16" />
6010 + <gd name="g18" fmla="*/ g13 3 4" />
6011 + <gd name="g19" fmla="*/ g13 7 8" />
6012 + <gd name="g20" fmla="+- g9 g14 0" />
6013 + <gd name="g21" fmla="+- g9 g15 0" />
6014 + <gd name="g22" fmla="+- g9 g17 0" />
6015 + <gd name="g23" fmla="+- g9 g19 0" />
6016 + <gd name="g24" fmla="+- g11 g15 0" />
6017 + <gd name="g25" fmla="+- g11 g16 0" />
6018 + <gd name="g26" fmla="+- g11 g18 0" />
6021 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6023 + <pos x="r" y="vc" />
6026 + <pos x="hc" y="b" />
6029 + <pos x="l" y="vc" />
6032 + <pos x="hc" y="t" />
6036 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6038 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6039 + <path stroke="false" extrusionOk="false">
6041 + <pt x="l" y="t" />
6044 + <pt x="r" y="t" />
6047 + <pt x="r" y="b" />
6050 + <pt x="l" y="b" />
6054 + <pt x="g11" y="g21" />
6058 + <pt x="g11" y="g22" />
6061 + <pt x="g24" y="g22" />
6064 + <pt x="g25" y="g10" />
6067 + <pt x="g25" y="g9" />
6070 + <pt x="g24" y="g21" />
6074 + <path stroke="false" fill="darken" extrusionOk="false">
6076 + <pt x="g11" y="g21" />
6080 + <pt x="g11" y="g22" />
6083 + <pt x="g24" y="g22" />
6086 + <pt x="g25" y="g10" />
6089 + <pt x="g25" y="g9" />
6092 + <pt x="g24" y="g21" />
6096 + <path fill="none" extrusionOk="false">
6098 + <pt x="g11" y="g21" />
6102 + <pt x="g24" y="g21" />
6105 + <pt x="g25" y="g9" />
6108 + <pt x="g25" y="g10" />
6111 + <pt x="g24" y="g22" />
6114 + <pt x="g11" y="g22" />
6118 + <pt x="g26" y="g21" />
6121 + <pt x="g12" y="g20" />
6124 + <pt x="g26" y="vc" />
6127 + <pt x="g12" y="vc" />
6130 + <pt x="g26" y="g22" />
6133 + <pt x="g12" y="g23" />
6136 + <path fill="none">
6138 + <pt x="l" y="t" />
6142 + <pt x="r" y="t" />
6145 + <pt x="r" y="b" />
6148 + <pt x="l" y="b" />
6154 + </actionButtonSound>
6156 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6157 + <gd name="adj1" fmla="val 16200000" />
6158 + <gd name="adj2" fmla="val 0" />
6160 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6161 + <gd name="stAng" fmla="pin 0 adj1 21599999" />
6162 + <gd name="enAng" fmla="pin 0 adj2 21599999" />
6163 + <gd name="sw11" fmla="+- enAng 0 stAng" />
6164 + <gd name="sw12" fmla="+- sw11 21600000 0" />
6165 + <gd name="swAng" fmla="?: sw11 sw11 sw12" />
6166 + <gd name="wt1" fmla="sin wd2 stAng" />
6167 + <gd name="ht1" fmla="cos hd2 stAng" />
6168 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />
6169 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />
6170 + <gd name="wt2" fmla="sin wd2 enAng" />
6171 + <gd name="ht2" fmla="cos hd2 enAng" />
6172 + <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />
6173 + <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />
6174 + <gd name="x1" fmla="+- hc dx1 0" />
6175 + <gd name="y1" fmla="+- vc dy1 0" />
6176 + <gd name="x2" fmla="+- hc dx2 0" />
6177 + <gd name="y2" fmla="+- vc dy2 0" />
6178 + <gd name="sw0" fmla="+- 21600000 0 stAng" />
6179 + <gd name="da1" fmla="+- swAng 0 sw0" />
6180 + <gd name="g1" fmla="max x1 x2" />
6181 + <gd name="ir" fmla="?: da1 r g1" />
6182 + <gd name="sw1" fmla="+- cd4 0 stAng" />
6183 + <gd name="sw2" fmla="+- 27000000 0 stAng" />
6184 + <gd name="sw3" fmla="?: sw1 sw1 sw2" />
6185 + <gd name="da2" fmla="+- swAng 0 sw3" />
6186 + <gd name="g5" fmla="max y1 y2" />
6187 + <gd name="ib" fmla="?: da2 b g5" />
6188 + <gd name="sw4" fmla="+- cd2 0 stAng" />
6189 + <gd name="sw5" fmla="+- 32400000 0 stAng" />
6190 + <gd name="sw6" fmla="?: sw4 sw4 sw5" />
6191 + <gd name="da3" fmla="+- swAng 0 sw6" />
6192 + <gd name="g9" fmla="min x1 x2" />
6193 + <gd name="il" fmla="?: da3 l g9" />
6194 + <gd name="sw7" fmla="+- 3cd4 0 stAng" />
6195 + <gd name="sw8" fmla="+- 37800000 0 stAng" />
6196 + <gd name="sw9" fmla="?: sw7 sw7 sw8" />
6197 + <gd name="da4" fmla="+- swAng 0 sw9" />
6198 + <gd name="g13" fmla="min y1 y2" />
6199 + <gd name="it" fmla="?: da4 t g13" />
6200 + <gd name="cang1" fmla="+- stAng 0 cd4" />
6201 + <gd name="cang2" fmla="+- enAng cd4 0" />
6202 + <gd name="cang3" fmla="+/ cang1 cang2 2" />
6204 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6205 + <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">
6206 + <pos x="x1" y="y1" />
6208 + <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">
6209 + <pos x="x2" y="y2" />
6212 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6214 + <pos x="x1" y="y1" />
6217 + <pos x="hc" y="vc" />
6220 + <pos x="x2" y="y2" />
6223 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6224 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6225 + <path stroke="false" extrusionOk="false">
6227 + <pt x="x1" y="y1" />
6229 + <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />
6231 + <pt x="hc" y="vc" />
6235 + <path fill="none">
6237 + <pt x="x1" y="y1" />
6239 + <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />
6245 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6246 + <gd name="adj1" fmla="val 25000" />
6248 + <gd name="adj2" fmla="val 25000" />
6250 + <gd name="adj3" fmla="val 25000" />
6252 + <gd name="adj4" fmla="val 43750" />
6256 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6257 + <gd name="a2" fmla="pin 0 adj2 50000" />
6258 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
6260 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
6261 + <gd name="a3" fmla="pin 0 adj3 50000" />
6262 + <gd name="th" fmla="*/ ss a1 100000" />
6264 + <gd name="aw2" fmla="*/ ss a2 100000" />
6266 + <gd name="th2" fmla="*/ th 1 2" />
6267 + <gd name="dh2" fmla="+- aw2 0 th2" />
6269 + <gd name="ah" fmla="*/ ss a3 100000" />
6271 + <gd name="bw" fmla="+- r 0 ah" />
6273 + <gd name="bh" fmla="+- b 0 dh2" />
6275 + <gd name="bs" fmla="min bw bh" />
6277 + <gd name="maxAdj4" fmla="*/ 100000 bs ss" />
6278 + <gd name="a4" fmla="pin 0 adj4 maxAdj4" />
6280 + <gd name="bd" fmla="*/ ss a4 100000" />
6283 + <gd name="bd3" fmla="+- bd 0 th" />
6284 + <gd name="bd2" fmla="max bd3 0" />
6285 + <gd name="x3" fmla="+- th bd2 0" />
6286 + <gd name="x4" fmla="+- r 0 ah" />
6289 + <gd name="y3" fmla="+- dh2 th 0" />
6290 + <gd name="y4" fmla="+- y3 dh2 0" />
6291 + <gd name="y5" fmla="+- dh2 bd 0" />
6292 + <gd name="y6" fmla="+- y3 bd2 0" />
6295 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6296 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">
6297 + <pos x="th" y="b" />
6299 + <ahXY gdRefY="adj2" minY="0" maxY="50000">
6300 + <pos x="r" y="y4" />
6302 + <ahXY gdRefX="adj3" minX="0" maxX="50000">
6303 + <pos x="x4" y="t" />
6305 + <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">
6306 + <pos x="bd" y="t" />
6310 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6312 + <pos x="x4" y="t" />
6315 + <pos x="x4" y="y4" />
6318 + <pos x="th2" y="b" />
6321 + <pos x="r" y="aw2" />
6325 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6327 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6330 + <pt x="l" y="b" />
6333 + <pt x="l" y="y5" />
6335 + <arcTo wR="bd" hR="bd" stAng="cd2" swAng="cd4" />
6337 + <pt x="x4" y="dh2" />
6340 + <pt x="x4" y="t" />
6343 + <pt x="r" y="aw2" />
6346 + <pt x="x4" y="y4" />
6349 + <pt x="x4" y="y3" />
6352 + <pt x="x3" y="y3" />
6354 + <arcTo wR="bd2" hR="bd2" stAng="3cd4" swAng="-5400000" />
6356 + <pt x="th" y="b" />
6364 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6365 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6366 + <path fill="none">
6368 + <pt x="l" y="t" />
6371 + <pt x="r" y="t" />
6374 + <pt x="r" y="b" />
6380 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6381 + <gd name="adj1" fmla="val 50000" />
6383 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6384 + <gd name="x1" fmla="*/ w adj1 100000" />
6386 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6387 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">
6388 + <pos x="x1" y="vc" />
6391 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6392 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6393 + <path fill="none">
6395 + <pt x="l" y="t" />
6398 + <pt x="x1" y="t" />
6401 + <pt x="x1" y="b" />
6404 + <pt x="r" y="b" />
6410 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6411 + <gd name="adj1" fmla="val 50000" />
6412 + <gd name="adj2" fmla="val 50000" />
6414 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6415 + <gd name="x1" fmla="*/ w adj1 100000" />
6416 + <gd name="x2" fmla="+/ x1 r 2" />
6417 + <gd name="y2" fmla="*/ h adj2 100000" />
6418 + <gd name="y1" fmla="+/ t y2 2" />
6420 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6421 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">
6422 + <pos x="x1" y="y1" />
6424 + <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">
6425 + <pos x="x2" y="y2" />
6428 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6429 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6430 + <path fill="none">
6432 + <pt x="l" y="t" />
6435 + <pt x="x1" y="t" />
6438 + <pt x="x1" y="y2" />
6441 + <pt x="r" y="y2" />
6444 + <pt x="r" y="b" />
6451 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6452 + <gd name="adj1" fmla="val 50000" />
6454 + <gd name="adj2" fmla="val 50000" />
6456 + <gd name="adj3" fmla="val 50000" />
6459 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6460 + <gd name="x1" fmla="*/ w adj1 100000" />
6462 + <gd name="x3" fmla="*/ w adj3 100000" />
6464 + <gd name="x2" fmla="+/ x1 x3 2" />
6466 + <gd name="y2" fmla="*/ h adj2 100000" />
6468 + <gd name="y1" fmla="+/ t y2 2" />
6470 + <gd name="y3" fmla="+/ b y2 2" />
6473 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6474 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">
6475 + <pos x="x1" y="y1" />
6477 + <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">
6478 + <pos x="x2" y="y2" />
6480 + <ahXY gdRefX="adj3" minX="-2147483647" maxX="2147483647">
6481 + <pos x="x3" y="y3" />
6484 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6485 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6486 + <path fill="none">
6488 + <pt x="l" y="t" />
6491 + <pt x="x1" y="t" />
6494 + <pt x="x1" y="y2" />
6497 + <pt x="x3" y="y2" />
6500 + <pt x="x3" y="b" />
6503 + <pt x="r" y="b" />
6511 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6512 + <gd name="adj1" fmla="val 25000" />
6514 + <gd name="adj2" fmla="val 25000" />
6516 + <gd name="adj3" fmla="val 25000" />
6520 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6521 + <gd name="a1" fmla="pin 0 adj1 50000" />
6522 + <gd name="a2" fmla="pin 0 adj2 50000" />
6523 + <gd name="a3" fmla="pin 0 adj3 50000" />
6524 + <gd name="y1" fmla="*/ ss a3 100000" />
6525 + <gd name="dx1" fmla="*/ ss a2 50000" />
6527 + <gd name="x1" fmla="+- r 0 dx1" />
6528 + <gd name="dx3" fmla="*/ ss a2 100000" />
6530 + <gd name="x3" fmla="+- r 0 dx3" />
6531 + <gd name="dx2" fmla="*/ ss a1 200000" />
6533 + <gd name="x2" fmla="+- x3 0 dx2" />
6534 + <gd name="x4" fmla="+- x3 dx2 0" />
6535 + <gd name="dy2" fmla="*/ ss a1 100000" />
6537 + <gd name="y2" fmla="+- b 0 dy2" />
6538 + <gd name="x0" fmla="*/ x4 1 2" />
6539 + <gd name="y3" fmla="+/ y2 b 2" />
6540 + <gd name="y15" fmla="+/ y1 b 2" />
6543 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6544 + <ahXY gdRefY="adj1" minY="0" maxY="50000">
6545 + <pos x="l" y="y2" />
6547 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
6548 + <pos x="x1" y="t" />
6550 + <ahXY gdRefY="adj3" minY="0" maxY="50000">
6551 + <pos x="x2" y="y1" />
6555 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6557 + <pos x="x3" y="t" />
6560 + <pos x="x1" y="y1" />
6563 + <pos x="l" y="y3" />
6566 + <pos x="x0" y="b" />
6569 + <pos x="x4" y="y15" />
6572 + <pos x="r" y="y1" />
6576 + <rect l="l" t="y2" r="x4" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6578 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6581 + <pt x="l" y="y2" />
6584 + <pt x="x2" y="y2" />
6587 + <pt x="x2" y="y1" />
6590 + <pt x="x1" y="y1" />
6593 + <pt x="x3" y="t" />
6596 + <pt x="r" y="y1" />
6599 + <pt x="x4" y="y1" />
6602 + <pt x="x4" y="b" />
6605 + <pt x="l" y="b" />
6614 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6615 + <gd name="adj" fmla="val 12500" />
6619 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6620 + <gd name="a" fmla="pin 0 adj 50000" />
6621 + <gd name="x1" fmla="*/ ss a 100000" />
6625 + <gd name="x2" fmla="+- r 0 x1" />
6627 + <gd name="y2" fmla="+- b 0 x1" />
6631 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6632 + <ahXY gdRefX="adj" minX="0" maxX="50000">
6633 + <pos x="x1" y="t" />
6637 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6639 + <pos x="r" y="vc" />
6642 + <pos x="x2" y="vc" />
6645 + <pos x="hc" y="b" />
6648 + <pos x="hc" y="y2" />
6651 + <pos x="l" y="vc" />
6654 + <pos x="x1" y="vc" />
6657 + <pos x="hc" y="t" />
6660 + <pos x="hc" y="x1" />
6664 + <rect l="x1" t="x1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6666 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6667 + <path stroke="false" extrusionOk="false">
6670 + <pt x="x1" y="x1" />
6673 + <pt x="x2" y="x1" />
6676 + <pt x="x2" y="y2" />
6679 + <pt x="x1" y="y2" />
6683 + <path stroke="false" fill="lightenLess" extrusionOk="false">
6686 + <pt x="l" y="t" />
6689 + <pt x="r" y="t" />
6692 + <pt x="x2" y="x1" />
6695 + <pt x="x1" y="x1" />
6699 + <path stroke="false" fill="darkenLess" extrusionOk="false">
6702 + <pt x="l" y="b" />
6705 + <pt x="x1" y="y2" />
6708 + <pt x="x2" y="y2" />
6711 + <pt x="r" y="b" />
6715 + <path stroke="false" fill="lighten" extrusionOk="false">
6718 + <pt x="l" y="t" />
6721 + <pt x="x1" y="x1" />
6724 + <pt x="x1" y="y2" />
6727 + <pt x="l" y="b" />
6731 + <path stroke="false" fill="darken" extrusionOk="false">
6734 + <pt x="r" y="t" />
6737 + <pt x="r" y="b" />
6740 + <pt x="x2" y="y2" />
6743 + <pt x="x2" y="x1" />
6747 + <path fill="none" extrusionOk="false">
6750 + <pt x="l" y="t" />
6753 + <pt x="r" y="t" />
6756 + <pt x="r" y="b" />
6759 + <pt x="l" y="b" />
6763 + <pt x="x1" y="x1" />
6766 + <pt x="x2" y="x1" />
6769 + <pt x="x2" y="y2" />
6772 + <pt x="x1" y="y2" />
6776 + <pt x="l" y="t" />
6779 + <pt x="x1" y="x1" />
6782 + <pt x="l" y="b" />
6785 + <pt x="x1" y="y2" />
6788 + <pt x="r" y="t" />
6791 + <pt x="x2" y="x1" />
6794 + <pt x="r" y="b" />
6797 + <pt x="x2" y="y2" />
6806 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6807 + <gd name="adj1" fmla="val 10800000" />
6809 + <gd name="adj2" fmla="val 0" />
6811 + <gd name="adj3" fmla="val 25000" />
6815 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6816 + <gd name="stAng" fmla="pin 0 adj1 21599999" />
6817 + <gd name="istAng" fmla="pin 0 adj2 21599999" />
6818 + <gd name="a3" fmla="pin 0 adj3 50000" />
6819 + <gd name="sw11" fmla="+- istAng 0 stAng" />
6821 + <gd name="sw12" fmla="+- sw11 21600000 0" />
6823 + <gd name="swAng" fmla="?: sw11 sw11 sw12" />
6825 + <gd name="iswAng" fmla="+- 0 0 swAng" />
6828 + <gd name="wt1" fmla="sin wd2 stAng" />
6829 + <gd name="ht1" fmla="cos hd2 stAng" />
6830 + <gd name="wt3" fmla="sin wd2 istAng" />
6831 + <gd name="ht3" fmla="cos hd2 istAng" />
6832 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />
6833 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />
6834 + <gd name="dx3" fmla="cat2 wd2 ht3 wt3" />
6835 + <gd name="dy3" fmla="sat2 hd2 ht3 wt3" />
6836 + <gd name="x1" fmla="+- hc dx1 0" />
6838 + <gd name="y1" fmla="+- vc dy1 0" />
6840 + <gd name="x3" fmla="+- hc dx3 0" />
6842 + <gd name="y3" fmla="+- vc dy3 0" />
6845 + <gd name="dr" fmla="*/ ss a3 100000" />
6846 + <gd name="iwd2" fmla="+- wd2 0 dr" />
6847 + <gd name="ihd2" fmla="+- hd2 0 dr" />
6848 + <gd name="wt2" fmla="sin iwd2 istAng" />
6849 + <gd name="ht2" fmla="cos ihd2 istAng" />
6850 + <gd name="wt4" fmla="sin iwd2 stAng" />
6851 + <gd name="ht4" fmla="cos ihd2 stAng" />
6852 + <gd name="dx2" fmla="cat2 iwd2 ht2 wt2" />
6853 + <gd name="dy2" fmla="sat2 ihd2 ht2 wt2" />
6854 + <gd name="dx4" fmla="cat2 iwd2 ht4 wt4" />
6855 + <gd name="dy4" fmla="sat2 ihd2 ht4 wt4" />
6856 + <gd name="x2" fmla="+- hc dx2 0" />
6858 + <gd name="y2" fmla="+- vc dy2 0" />
6860 + <gd name="x4" fmla="+- hc dx4 0" />
6862 + <gd name="y4" fmla="+- vc dy4 0" />
6865 + <gd name="sw0" fmla="+- 21600000 0 stAng" />
6866 + <gd name="da1" fmla="+- swAng 0 sw0" />
6867 + <gd name="g1" fmla="max x1 x2" />
6868 + <gd name="g2" fmla="max x3 x4" />
6869 + <gd name="g3" fmla="max g1 g2" />
6870 + <gd name="ir" fmla="?: da1 r g3" />
6872 + <gd name="sw1" fmla="+- cd4 0 stAng" />
6873 + <gd name="sw2" fmla="+- 27000000 0 stAng" />
6874 + <gd name="sw3" fmla="?: sw1 sw1 sw2" />
6875 + <gd name="da2" fmla="+- swAng 0 sw3" />
6876 + <gd name="g5" fmla="max y1 y2" />
6877 + <gd name="g6" fmla="max y3 y4" />
6878 + <gd name="g7" fmla="max g5 g6" />
6879 + <gd name="ib" fmla="?: da2 b g7" />
6881 + <gd name="sw4" fmla="+- cd2 0 stAng" />
6882 + <gd name="sw5" fmla="+- 32400000 0 stAng" />
6883 + <gd name="sw6" fmla="?: sw4 sw4 sw5" />
6884 + <gd name="da3" fmla="+- swAng 0 sw6" />
6885 + <gd name="g9" fmla="min x1 x2" />
6886 + <gd name="g10" fmla="min x3 x4" />
6887 + <gd name="g11" fmla="min g9 g10" />
6888 + <gd name="il" fmla="?: da3 l g11" />
6890 + <gd name="sw7" fmla="+- 3cd4 0 stAng" />
6891 + <gd name="sw8" fmla="+- 37800000 0 stAng" />
6892 + <gd name="sw9" fmla="?: sw7 sw7 sw8" />
6893 + <gd name="da4" fmla="+- swAng 0 sw9" />
6894 + <gd name="g13" fmla="min y1 y2" />
6895 + <gd name="g14" fmla="min y3 y4" />
6896 + <gd name="g15" fmla="min g13 g14" />
6897 + <gd name="it" fmla="?: da4 t g15" />
6899 + <gd name="x5" fmla="+/ x1 x4 2" />
6901 + <gd name="y5" fmla="+/ y1 y4 2" />
6903 + <gd name="x6" fmla="+/ x3 x2 2" />
6905 + <gd name="y6" fmla="+/ y3 y2 2" />
6907 + <gd name="cang1" fmla="+- stAng 0 cd4" />
6908 + <gd name="cang2" fmla="+- istAng cd4 0" />
6909 + <gd name="cang3" fmla="+/ cang1 cang2 2" />
6912 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6913 + <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">
6914 + <pos x="x1" y="y1" />
6916 + <ahPolar gdRefR="adj3" minR="0" maxR="50000" gdRefAng="adj2" minAng="0" maxAng="21599999">
6917 + <pos x="x2" y="y2" />
6921 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6923 + <pos x="x5" y="y5" />
6926 + <pos x="x6" y="y6" />
6929 + <pos x="hc" y="vc" />
6933 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6935 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6938 + <pt x="x1" y="y1" />
6940 + <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />
6942 + <pt x="x2" y="y2" />
6944 + <arcTo wR="iwd2" hR="ihd2" stAng="istAng" swAng="iswAng" />
6952 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6954 + <gd name="adj1" fmla="val 18750" />
6956 + <gd name="adj2" fmla="val -8333" />
6958 + <gd name="adj3" fmla="val 112500" />
6960 + <gd name="adj4" fmla="val -38333" />
6963 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6964 + <gd name="y1" fmla="*/ h adj1 100000" />
6965 + <gd name="x1" fmla="*/ w adj2 100000" />
6966 + <gd name="y2" fmla="*/ h adj3 100000" />
6967 + <gd name="x2" fmla="*/ w adj4 100000" />
6969 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6970 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
6971 + <pos x="x1" y="y1" />
6973 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
6974 + <pos x="x2" y="y2" />
6977 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6979 + <pos x="r" y="vc" />
6982 + <pos x="hc" y="b" />
6985 + <pos x="l" y="vc" />
6988 + <pos x="hc" y="t" />
6991 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
6992 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
6993 + <path extrusionOk="false">
6995 + <pt x="l" y="t" />
6998 + <pt x="r" y="t" />
7001 + <pt x="r" y="b" />
7004 + <pt x="l" y="b" />
7008 + <path fill="none" extrusionOk="false">
7010 + <pt x="x1" y="y1" />
7013 + <pt x="x2" y="y2" />
7021 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7023 + <gd name="adj1" fmla="val 18750" />
7025 + <gd name="adj2" fmla="val -8333" />
7027 + <gd name="adj3" fmla="val 18750" />
7029 + <gd name="adj4" fmla="val -16667" />
7031 + <gd name="adj5" fmla="val 112500" />
7033 + <gd name="adj6" fmla="val -46667" />
7036 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7037 + <gd name="y1" fmla="*/ h adj1 100000" />
7038 + <gd name="x1" fmla="*/ w adj2 100000" />
7039 + <gd name="y2" fmla="*/ h adj3 100000" />
7040 + <gd name="x2" fmla="*/ w adj4 100000" />
7041 + <gd name="y3" fmla="*/ h adj5 100000" />
7042 + <gd name="x3" fmla="*/ w adj6 100000" />
7044 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7045 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
7046 + <pos x="x1" y="y1" />
7048 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
7049 + <pos x="x2" y="y2" />
7051 + <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">
7052 + <pos x="x3" y="y3" />
7055 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7057 + <pos x="r" y="vc" />
7060 + <pos x="hc" y="b" />
7063 + <pos x="l" y="vc" />
7066 + <pos x="hc" y="t" />
7069 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7070 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7071 + <path extrusionOk="false">
7073 + <pt x="l" y="t" />
7076 + <pt x="r" y="t" />
7079 + <pt x="r" y="b" />
7082 + <pt x="l" y="b" />
7086 + <path fill="none" extrusionOk="false">
7088 + <pt x="x1" y="y1" />
7091 + <pt x="x2" y="y2" />
7094 + <pt x="x3" y="y3" />
7102 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7104 + <gd name="adj1" fmla="val 18750" />
7106 + <gd name="adj2" fmla="val -8333" />
7108 + <gd name="adj3" fmla="val 18750" />
7110 + <gd name="adj4" fmla="val -16667" />
7112 + <gd name="adj5" fmla="val 100000" />
7114 + <gd name="adj6" fmla="val -16667" />
7116 + <gd name="adj7" fmla="val 112963" />
7118 + <gd name="adj8" fmla="val -8333" />
7121 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7122 + <gd name="y1" fmla="*/ h adj1 100000" />
7123 + <gd name="x1" fmla="*/ w adj2 100000" />
7124 + <gd name="y2" fmla="*/ h adj3 100000" />
7125 + <gd name="x2" fmla="*/ w adj4 100000" />
7126 + <gd name="y3" fmla="*/ h adj5 100000" />
7127 + <gd name="x3" fmla="*/ w adj6 100000" />
7128 + <gd name="y4" fmla="*/ h adj7 100000" />
7129 + <gd name="x4" fmla="*/ w adj8 100000" />
7131 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7132 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
7133 + <pos x="x1" y="y1" />
7135 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
7136 + <pos x="x2" y="y2" />
7138 + <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">
7139 + <pos x="x3" y="y3" />
7141 + <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">
7142 + <pos x="x4" y="y4" />
7145 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7147 + <pos x="r" y="vc" />
7150 + <pos x="hc" y="b" />
7153 + <pos x="l" y="vc" />
7156 + <pos x="hc" y="t" />
7159 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7160 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7161 + <path extrusionOk="false">
7163 + <pt x="l" y="t" />
7166 + <pt x="r" y="t" />
7169 + <pt x="r" y="b" />
7172 + <pt x="l" y="b" />
7176 + <path fill="none" extrusionOk="false">
7178 + <pt x="x1" y="y1" />
7181 + <pt x="x2" y="y2" />
7184 + <pt x="x3" y="y3" />
7187 + <pt x="x4" y="y4" />
7195 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7196 + <gd name="adj" fmla="val 8333" />
7200 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7201 + <gd name="a" fmla="pin 0 adj 25000" />
7202 + <gd name="x1" fmla="*/ ss a 100000" />
7203 + <gd name="x2" fmla="*/ ss a 50000" />
7204 + <gd name="x3" fmla="+- r 0 x2" />
7205 + <gd name="x4" fmla="+- r 0 x1" />
7207 + <gd name="y2" fmla="+- vc 0 x1" />
7208 + <gd name="y3" fmla="+- vc x1 0" />
7209 + <gd name="y4" fmla="+- b 0 x1" />
7210 + <gd name="it" fmla="*/ x1 29289 100000" />
7212 + <gd name="il" fmla="+- x1 it 0" />
7213 + <gd name="ir" fmla="+- r 0 il" />
7214 + <gd name="ib" fmla="+- b 0 it" />
7217 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7218 + <ahXY gdRefY="adj" minY="0" maxY="25000">
7219 + <pos x="l" y="x1" />
7223 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7225 + <pos x="hc" y="t" />
7228 + <pos x="l" y="vc" />
7231 + <pos x="hc" y="b" />
7234 + <pos x="r" y="vc" />
7238 + <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7240 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7241 + <path stroke="false" extrusionOk="false">
7243 + <pt x="x2" y="b" />
7245 + <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />
7247 + <pt x="x1" y="y3" />
7249 + <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />
7250 + <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />
7252 + <pt x="x1" y="x1" />
7254 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />
7256 + <pt x="x3" y="t" />
7258 + <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />
7260 + <pt x="x4" y="y2" />
7262 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />
7263 + <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />
7265 + <pt x="x4" y="y4" />
7267 + <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />
7270 + <path fill="none">
7272 + <pt x="x2" y="b" />
7274 + <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />
7276 + <pt x="x1" y="y3" />
7278 + <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />
7279 + <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />
7281 + <pt x="x1" y="x1" />
7283 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />
7285 + <pt x="x3" y="t" />
7287 + <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />
7289 + <pt x="x4" y="y2" />
7291 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />
7292 + <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />
7294 + <pt x="x4" y="y4" />
7296 + <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />
7303 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7304 + <gd name="adj" fmla="val 16667" />
7307 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7308 + <gd name="a" fmla="pin 0 adj 50000" />
7309 + <gd name="x1" fmla="*/ ss a 100000" />
7310 + <gd name="x2" fmla="+- r 0 x1" />
7312 + <gd name="y2" fmla="+- b 0 x1" />
7313 + <gd name="il" fmla="*/ x1 29289 100000" />
7316 + <gd name="ir" fmla="+- r 0 il" />
7317 + <gd name="ib" fmla="+- b 0 il" />
7320 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7321 + <ahXY gdRefY="adj" minY="0" maxY="50000">
7322 + <pos x="l" y="x1" />
7326 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7328 + <pos x="hc" y="t" />
7331 + <pos x="l" y="vc" />
7334 + <pos x="hc" y="b" />
7337 + <pos x="r" y="vc" />
7341 + <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7343 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7344 + <path stroke="false" extrusionOk="false">
7346 + <pt x="l" y="x1" />
7348 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />
7350 + <pt x="x2" y="t" />
7352 + <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />
7354 + <pt x="r" y="y2" />
7356 + <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />
7358 + <pt x="x1" y="b" />
7360 + <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />
7363 + <path fill="none">
7365 + <pt x="x1" y="b" />
7367 + <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />
7369 + <pt x="l" y="x1" />
7371 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />
7373 + <pt x="x2" y="t" />
7375 + <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />
7377 + <pt x="r" y="y2" />
7379 + <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />
7386 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7388 + <gd name="adj1" fmla="val 18750" />
7390 + <gd name="adj2" fmla="val -8333" />
7392 + <gd name="adj3" fmla="val 112500" />
7394 + <gd name="adj4" fmla="val -38333" />
7397 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7398 + <gd name="y1" fmla="*/ h adj1 100000" />
7399 + <gd name="x1" fmla="*/ w adj2 100000" />
7400 + <gd name="y2" fmla="*/ h adj3 100000" />
7401 + <gd name="x2" fmla="*/ w adj4 100000" />
7403 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7404 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
7405 + <pos x="x1" y="y1" />
7407 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
7408 + <pos x="x2" y="y2" />
7411 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7413 + <pos x="r" y="vc" />
7416 + <pos x="hc" y="b" />
7419 + <pos x="l" y="vc" />
7422 + <pos x="hc" y="t" />
7425 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7426 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7427 + <path stroke="false" extrusionOk="false">
7429 + <pt x="l" y="t" />
7432 + <pt x="r" y="t" />
7435 + <pt x="r" y="b" />
7438 + <pt x="l" y="b" />
7442 + <path fill="none" extrusionOk="false">
7444 + <pt x="x1" y="y1" />
7447 + <pt x="x2" y="y2" />
7455 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7457 + <gd name="adj1" fmla="val 18750" />
7459 + <gd name="adj2" fmla="val -8333" />
7461 + <gd name="adj3" fmla="val 18750" />
7463 + <gd name="adj4" fmla="val -16667" />
7465 + <gd name="adj5" fmla="val 112500" />
7467 + <gd name="adj6" fmla="val -46667" />
7470 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7471 + <gd name="y1" fmla="*/ h adj1 100000" />
7472 + <gd name="x1" fmla="*/ w adj2 100000" />
7473 + <gd name="y2" fmla="*/ h adj3 100000" />
7474 + <gd name="x2" fmla="*/ w adj4 100000" />
7475 + <gd name="y3" fmla="*/ h adj5 100000" />
7476 + <gd name="x3" fmla="*/ w adj6 100000" />
7478 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7479 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
7480 + <pos x="x1" y="y1" />
7482 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
7483 + <pos x="x2" y="y2" />
7485 + <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">
7486 + <pos x="x3" y="y3" />
7489 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7491 + <pos x="r" y="vc" />
7494 + <pos x="hc" y="b" />
7497 + <pos x="l" y="vc" />
7500 + <pos x="hc" y="t" />
7503 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7504 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7505 + <path stroke="false" extrusionOk="false">
7507 + <pt x="l" y="t" />
7510 + <pt x="r" y="t" />
7513 + <pt x="r" y="b" />
7516 + <pt x="l" y="b" />
7520 + <path fill="none" extrusionOk="false">
7522 + <pt x="x1" y="y1" />
7525 + <pt x="x2" y="y2" />
7528 + <pt x="x3" y="y3" />
7536 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7538 + <gd name="adj1" fmla="val 18750" />
7540 + <gd name="adj2" fmla="val -8333" />
7542 + <gd name="adj3" fmla="val 18750" />
7544 + <gd name="adj4" fmla="val -16667" />
7546 + <gd name="adj5" fmla="val 100000" />
7548 + <gd name="adj6" fmla="val -16667" />
7550 + <gd name="adj7" fmla="val 112963" />
7552 + <gd name="adj8" fmla="val -8333" />
7555 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7556 + <gd name="y1" fmla="*/ h adj1 100000" />
7557 + <gd name="x1" fmla="*/ w adj2 100000" />
7558 + <gd name="y2" fmla="*/ h adj3 100000" />
7559 + <gd name="x2" fmla="*/ w adj4 100000" />
7560 + <gd name="y3" fmla="*/ h adj5 100000" />
7561 + <gd name="x3" fmla="*/ w adj6 100000" />
7562 + <gd name="y4" fmla="*/ h adj7 100000" />
7563 + <gd name="x4" fmla="*/ w adj8 100000" />
7565 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7566 + <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">
7567 + <pos x="x1" y="y1" />
7569 + <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">
7570 + <pos x="x2" y="y2" />
7572 + <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">
7573 + <pos x="x3" y="y3" />
7575 + <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">
7576 + <pos x="x4" y="y4" />
7579 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7581 + <pos x="r" y="vc" />
7584 + <pos x="hc" y="b" />
7587 + <pos x="l" y="vc" />
7590 + <pos x="hc" y="t" />
7593 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7594 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7595 + <path stroke="false" extrusionOk="false">
7597 + <pt x="l" y="t" />
7600 + <pt x="r" y="t" />
7603 + <pt x="r" y="b" />
7606 + <pt x="l" y="b" />
7610 + <path fill="none" extrusionOk="false">
7612 + <pt x="x1" y="y1" />
7615 + <pt x="x2" y="y2" />
7618 + <pt x="x3" y="y3" />
7621 + <pt x="x4" y="y4" />
7629 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7630 + <gd name="adj" fmla="val 25000" />
7634 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7635 + <gd name="maxAdj" fmla="*/ 50000 h ss" />
7636 + <gd name="a" fmla="pin 0 adj maxAdj" />
7637 + <gd name="y1" fmla="*/ ss a 200000" />
7638 + <gd name="y2" fmla="+- y1 y1 0" />
7639 + <gd name="y3" fmla="+- b 0 y1" />
7642 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7643 + <ahXY gdRefY="adj" minY="0" maxY="maxAdj">
7644 + <pos x="hc" y="y2" />
7648 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7650 + <pos x="hc" y="y2" />
7653 + <pos x="hc" y="t" />
7656 + <pos x="l" y="vc" />
7659 + <pos x="hc" y="b" />
7662 + <pos x="r" y="vc" />
7666 + <rect l="l" t="y2" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7668 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7669 + <path stroke="false" extrusionOk="false">
7672 + <pt x="l" y="y1" />
7674 + <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-10800000" />
7676 + <pt x="r" y="y3" />
7678 + <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />
7681 + <path stroke="false" fill="lighten" extrusionOk="false">
7684 + <pt x="l" y="y1" />
7686 + <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd2" />
7687 + <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />
7690 + <path fill="none" extrusionOk="false">
7693 + <pt x="r" y="y1" />
7695 + <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />
7696 + <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd2" />
7698 + <pt x="r" y="y3" />
7700 + <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />
7702 + <pt x="l" y="y1" />
7710 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7711 + <path w="10" h="10" fill="none" extrusionOk="false">
7713 + <pt x="5" y="0" />
7716 + <pt x="5" y="10" />
7719 + <pt x="0" y="5" />
7722 + <pt x="10" y="5" />
7725 + <path w="10" h="10" stroke="false">
7727 + <pt x="0" y="0" />
7730 + <pt x="0" y="10" />
7733 + <pt x="10" y="10" />
7736 + <pt x="10" y="0" />
7745 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7746 + <path w="10" h="10" fill="none" extrusionOk="false">
7748 + <pt x="0" y="0" />
7751 + <pt x="10" y="10" />
7754 + <pt x="0" y="10" />
7757 + <pt x="10" y="0" />
7760 + <pt x="5" y="0" />
7763 + <pt x="5" y="10" />
7766 + <path w="10" h="10" stroke="false">
7768 + <pt x="0" y="0" />
7771 + <pt x="0" y="10" />
7774 + <pt x="10" y="10" />
7777 + <pt x="10" y="0" />
7786 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7787 + <path w="10" h="10" fill="none" extrusionOk="false">
7789 + <pt x="0" y="0" />
7792 + <pt x="10" y="10" />
7795 + <pt x="0" y="10" />
7798 + <pt x="10" y="0" />
7801 + <path w="10" h="10" stroke="false">
7803 + <pt x="0" y="0" />
7806 + <pt x="0" y="10" />
7809 + <pt x="10" y="10" />
7812 + <pt x="10" y="0" />
7820 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7821 + <gd name="adj" fmla="val 50000" />
7823 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7824 + <gd name="maxAdj" fmla="*/ 100000 w ss" />
7825 + <gd name="a" fmla="pin 0 adj maxAdj" />
7826 + <gd name="x1" fmla="*/ ss a 100000" />
7827 + <gd name="x2" fmla="+- r 0 x1" />
7828 + <gd name="x3" fmla="*/ x2 1 2" />
7829 + <gd name="dx" fmla="+- x2 0 x1" />
7830 + <gd name="il" fmla="?: dx x1 l" />
7831 + <gd name="ir" fmla="?: dx x2 r" />
7833 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7834 + <ahXY gdRefX="adj" minX="0" maxX="maxAdj">
7835 + <pos x="x2" y="t" />
7838 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7840 + <pos x="x3" y="t" />
7843 + <pos x="x1" y="vc" />
7846 + <pos x="x3" y="b" />
7849 + <pos x="r" y="vc" />
7852 + <rect l="il" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7853 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7856 + <pt x="l" y="t" />
7859 + <pt x="x2" y="t" />
7862 + <pt x="r" y="vc" />
7865 + <pt x="x2" y="b" />
7868 + <pt x="l" y="b" />
7871 + <pt x="x1" y="vc" />
7879 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7880 + <gd name="adj1" fmla="val 2700000" />
7882 + <gd name="adj2" fmla="val 16200000" />
7886 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7887 + <gd name="stAng" fmla="pin 0 adj1 21599999" />
7888 + <gd name="enAng" fmla="pin 0 adj2 21599999" />
7889 + <gd name="sw1" fmla="+- enAng 0 stAng" />
7891 + <gd name="sw2" fmla="+- sw1 21600000 0" />
7893 + <gd name="swAng" fmla="?: sw1 sw1 sw2" />
7895 + <gd name="wt1" fmla="sin wd2 stAng" />
7896 + <gd name="ht1" fmla="cos hd2 stAng" />
7897 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />
7898 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />
7899 + <gd name="wt2" fmla="sin wd2 enAng" />
7900 + <gd name="ht2" fmla="cos hd2 enAng" />
7901 + <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />
7902 + <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />
7903 + <gd name="x1" fmla="+- hc dx1 0" />
7905 + <gd name="y1" fmla="+- vc dy1 0" />
7907 + <gd name="x2" fmla="+- hc dx2 0" />
7909 + <gd name="y2" fmla="+- vc dy2 0" />
7911 + <gd name="x3" fmla="+/ x1 x2 2" />
7912 + <gd name="y3" fmla="+/ y1 y2 2" />
7913 + <gd name="midAng0" fmla="*/ swAng 1 2" />
7914 + <gd name="midAng" fmla="+- stAng midAng0 cd2" />
7915 + <gd name="idx" fmla="cos wd2 2700000" />
7916 + <gd name="idy" fmla="sin hd2 2700000" />
7917 + <gd name="il" fmla="+- hc 0 idx" />
7918 + <gd name="ir" fmla="+- hc idx 0" />
7919 + <gd name="it" fmla="+- vc 0 idy" />
7920 + <gd name="ib" fmla="+- vc idy 0" />
7923 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7924 + <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">
7925 + <pos x="x1" y="y1" />
7927 + <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">
7928 + <pos x="x2" y="y2" />
7932 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7934 + <pos x="x1" y="y1" />
7937 + <pos x="x2" y="y2" />
7939 + <cxn ang="midAng">
7940 + <pos x="x3" y="y3" />
7944 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
7946 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7949 + <pt x="x1" y="y1" />
7951 + <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />
7959 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7960 + <gd name="adj1" fmla="val 12500" />
7962 + <gd name="adj2" fmla="val 1142319" />
7964 + <gd name="adj3" fmla="val 20457681" />
7966 + <gd name="adj4" fmla="val 10800000" />
7968 + <gd name="adj5" fmla="val 12500" />
7971 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
7972 + <gd name="a5" fmla="pin 0 adj5 25000" />
7974 + <gd name="maxAdj1" fmla="*/ a5 2 1" />
7976 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
7977 + <gd name="enAng" fmla="pin 1 adj3 21599999" />
7978 + <gd name="stAng" fmla="pin 0 adj4 21599999" />
7980 + <gd name="th" fmla="*/ ss a1 100000" />
7982 + <gd name="thh" fmla="*/ ss a5 100000" />
7984 + <gd name="th2" fmla="*/ th 1 2" />
7987 + <gd name="rw1" fmla="+- wd2 th2 thh" />
7989 + <gd name="rh1" fmla="+- hd2 th2 thh" />
7991 + <gd name="rw2" fmla="+- rw1 0 th" />
7993 + <gd name="rh2" fmla="+- rh1 0 th" />
7995 + <gd name="rw3" fmla="+- rw2 th2 0" />
7997 + <gd name="rh3" fmla="+- rh2 th2 0" />
8000 + <gd name="wtH" fmla="sin rw3 enAng" />
8001 + <gd name="htH" fmla="cos rh3 enAng" />
8002 + <gd name="dxH" fmla="cat2 rw3 htH wtH" />
8003 + <gd name="dyH" fmla="sat2 rh3 htH wtH" />
8004 + <gd name="xH" fmla="+- hc dxH 0" />
8006 + <gd name="yH" fmla="+- vc dyH 0" />
8009 + <gd name="rI" fmla="min rw2 rh2" />
8011 + <gd name="u1" fmla="*/ dxH dxH 1" />
8012 + <gd name="u2" fmla="*/ dyH dyH 1" />
8013 + <gd name="u3" fmla="*/ rI rI 1" />
8014 + <gd name="u4" fmla="+- u1 0 u3" />
8015 + <gd name="u5" fmla="+- u2 0 u3" />
8016 + <gd name="u6" fmla="*/ u4 u5 u1" />
8017 + <gd name="u7" fmla="*/ u6 1 u2" />
8018 + <gd name="u8" fmla="+- 1 0 u7" />
8019 + <gd name="u9" fmla="sqrt u8" />
8020 + <gd name="u10" fmla="*/ u4 1 dxH" />
8021 + <gd name="u11" fmla="*/ u10 1 dyH" />
8022 + <gd name="u12" fmla="+/ 1 u9 u11" />
8023 + <gd name="u13" fmla="at2 1 u12" />
8024 + <gd name="u14" fmla="+- u13 21600000 0" />
8025 + <gd name="u15" fmla="?: u13 u13 u14" />
8026 + <gd name="u16" fmla="+- u15 0 enAng" />
8028 + <gd name="u17" fmla="+- u16 21600000 0" />
8029 + <gd name="u18" fmla="?: u16 u16 u17" />
8030 + <gd name="u19" fmla="+- u18 0 cd2" />
8031 + <gd name="u20" fmla="+- u18 0 21600000" />
8032 + <gd name="u21" fmla="?: u19 u20 u18" />
8033 + <gd name="maxAng" fmla="abs u21" />
8034 + <gd name="aAng" fmla="pin 0 adj2 maxAng" />
8036 + <gd name="ptAng" fmla="+- enAng aAng 0" />
8039 + <gd name="wtA" fmla="sin rw3 ptAng" />
8040 + <gd name="htA" fmla="cos rh3 ptAng" />
8041 + <gd name="dxA" fmla="cat2 rw3 htA wtA" />
8042 + <gd name="dyA" fmla="sat2 rh3 htA wtA" />
8043 + <gd name="xA" fmla="+- hc dxA 0" />
8045 + <gd name="yA" fmla="+- vc dyA 0" />
8048 + <gd name="wtE" fmla="sin rw1 stAng" />
8049 + <gd name="htE" fmla="cos rh1 stAng" />
8050 + <gd name="dxE" fmla="cat2 rw1 htE wtE" />
8051 + <gd name="dyE" fmla="sat2 rh1 htE wtE" />
8052 + <gd name="xE" fmla="+- hc dxE 0" />
8054 + <gd name="yE" fmla="+- vc dyE 0" />
8057 + <gd name="dxG" fmla="cos thh ptAng" />
8058 + <gd name="dyG" fmla="sin thh ptAng" />
8059 + <gd name="xG" fmla="+- xH dxG 0" />
8061 + <gd name="yG" fmla="+- yH dyG 0" />
8064 + <gd name="dxB" fmla="cos thh ptAng" />
8065 + <gd name="dyB" fmla="sin thh ptAng" />
8066 + <gd name="xB" fmla="+- xH 0 dxB 0" />
8068 + <gd name="yB" fmla="+- yH 0 dyB 0" />
8071 + <gd name="sx1" fmla="+- xB 0 hc" />
8073 + <gd name="sy1" fmla="+- yB 0 vc" />
8075 + <gd name="sx2" fmla="+- xG 0 hc" />
8077 + <gd name="sy2" fmla="+- yG 0 vc" />
8080 + <gd name="rO" fmla="min rw1 rh1" />
8082 + <gd name="x1O" fmla="*/ sx1 rO rw1" />
8084 + <gd name="y1O" fmla="*/ sy1 rO rh1" />
8086 + <gd name="x2O" fmla="*/ sx2 rO rw1" />
8088 + <gd name="y2O" fmla="*/ sy2 rO rh1" />
8091 + <gd name="dxO" fmla="+- x2O 0 x1O" />
8092 + <gd name="dyO" fmla="+- y2O 0 y1O" />
8093 + <gd name="dO" fmla="mod dxO dyO 0" />
8095 + <gd name="q1" fmla="*/ x1O y2O 1" />
8096 + <gd name="q2" fmla="*/ x2O y1O 1" />
8097 + <gd name="DO" fmla="+- q1 0 q2" />
8100 + <gd name="q3" fmla="*/ rO rO 1" />
8102 + <gd name="q4" fmla="*/ dO dO 1" />
8104 + <gd name="q5" fmla="*/ q3 q4 1" />
8106 + <gd name="q6" fmla="*/ DO DO 1" />
8108 + <gd name="q7" fmla="+- q5 0 q6" />
8110 + <gd name="q8" fmla="max q7 0" />
8112 + <gd name="sdelO" fmla="sqrt q8" />
8114 + <gd name="ndyO" fmla="*/ dyO -1 1" />
8115 + <gd name="sdyO" fmla="?: ndyO -1 1" />
8117 + <gd name="q9" fmla="*/ sdyO dxO 1" />
8119 + <gd name="q10" fmla="*/ q9 sdelO 1" />
8121 + <gd name="q11" fmla="*/ DO dyO 1" />
8123 + <gd name="dxF1" fmla="+/ q11 q10 q4" />
8125 + <gd name="q12" fmla="+- q11 0 q10" />
8126 + <gd name="dxF2" fmla="*/ q12 1 q4" />
8129 + <gd name="adyO" fmla="abs dyO" />
8130 + <gd name="q13" fmla="*/ adyO sdelO 1" />
8132 + <gd name="q14" fmla="*/ DO dxO -1" />
8134 + <gd name="dyF1" fmla="+/ q14 q13 q4" />
8136 + <gd name="q15" fmla="+- q14 0 q13" />
8137 + <gd name="dyF2" fmla="*/ q15 1 q4" />
8141 + <gd name="q16" fmla="+- x2O 0 dxF1" />
8142 + <gd name="q17" fmla="+- x2O 0 dxF2" />
8143 + <gd name="q18" fmla="+- y2O 0 dyF1" />
8144 + <gd name="q19" fmla="+- y2O 0 dyF2" />
8145 + <gd name="q20" fmla="mod q16 q18 0" />
8147 + <gd name="q21" fmla="mod q17 q19 0" />
8149 + <gd name="q22" fmla="+- q21 0 q20" />
8150 + <gd name="dxF" fmla="?: q22 dxF1 dxF2" />
8152 + <gd name="dyF" fmla="?: q22 dyF1 dyF2" />
8154 + <gd name="sdxF" fmla="*/ dxF rw1 rO" />
8156 + <gd name="sdyF" fmla="*/ dyF rh1 rO" />
8158 + <gd name="xF" fmla="+- hc sdxF 0" />
8160 + <gd name="yF" fmla="+- vc sdyF 0" />
8165 + <gd name="x1I" fmla="*/ sx1 rI rw2" />
8167 + <gd name="y1I" fmla="*/ sy1 rI rh2" />
8169 + <gd name="x2I" fmla="*/ sx2 rI rw2" />
8171 + <gd name="y2I" fmla="*/ sy2 rI rh2" />
8174 + <gd name="dxI" fmla="+- x2I 0 x1I" />
8175 + <gd name="dyI" fmla="+- y2I 0 y1I" />
8176 + <gd name="dI" fmla="mod dxI dyI 0" />
8177 + <gd name="v1" fmla="*/ x1I y2I 1" />
8178 + <gd name="v2" fmla="*/ x2I y1I 1" />
8179 + <gd name="DI" fmla="+- v1 0 v2" />
8181 + <gd name="v3" fmla="*/ rI rI 1" />
8182 + <gd name="v4" fmla="*/ dI dI 1" />
8183 + <gd name="v5" fmla="*/ v3 v4 1" />
8184 + <gd name="v6" fmla="*/ DI DI 1" />
8185 + <gd name="v7" fmla="+- v5 0 v6" />
8186 + <gd name="v8" fmla="max v7 0" />
8187 + <gd name="sdelI" fmla="sqrt v8" />
8188 + <gd name="v9" fmla="*/ sdyO dxI 1" />
8189 + <gd name="v10" fmla="*/ v9 sdelI 1" />
8190 + <gd name="v11" fmla="*/ DI dyI 1" />
8191 + <gd name="dxC1" fmla="+/ v11 v10 v4" />
8192 + <gd name="v12" fmla="+- v11 0 v10" />
8193 + <gd name="dxC2" fmla="*/ v12 1 v4" />
8195 + <gd name="adyI" fmla="abs dyI" />
8196 + <gd name="v13" fmla="*/ adyI sdelI 1" />
8197 + <gd name="v14" fmla="*/ DI dxI -1" />
8198 + <gd name="dyC1" fmla="+/ v14 v13 v4" />
8199 + <gd name="v15" fmla="+- v14 0 v13" />
8200 + <gd name="dyC2" fmla="*/ v15 1 v4" />
8202 + <gd name="v16" fmla="+- x1I 0 dxC1" />
8203 + <gd name="v17" fmla="+- x1I 0 dxC2" />
8204 + <gd name="v18" fmla="+- y1I 0 dyC1" />
8205 + <gd name="v19" fmla="+- y1I 0 dyC2" />
8206 + <gd name="v20" fmla="mod v16 v18 0" />
8207 + <gd name="v21" fmla="mod v17 v19 0" />
8208 + <gd name="v22" fmla="+- v21 0 v20" />
8209 + <gd name="dxC" fmla="?: v22 dxC1 dxC2" />
8210 + <gd name="dyC" fmla="?: v22 dyC1 dyC2" />
8211 + <gd name="sdxC" fmla="*/ dxC rw2 rI" />
8212 + <gd name="sdyC" fmla="*/ dyC rh2 rI" />
8213 + <gd name="xC" fmla="+- hc sdxC 0" />
8215 + <gd name="yC" fmla="+- vc sdyC 0" />
8218 + <gd name="ist0" fmla="at2 sdxC sdyC" />
8219 + <gd name="ist1" fmla="+- ist0 21600000 0" />
8220 + <gd name="istAng" fmla="?: ist0 ist0 ist1" />
8221 + <gd name="isw1" fmla="+- stAng 0 istAng" />
8222 + <gd name="isw2" fmla="+- isw1 0 21600000" />
8223 + <gd name="iswAng" fmla="?: isw1 isw2 isw1" />
8226 + <gd name="p1" fmla="+- xF 0 xC" />
8227 + <gd name="p2" fmla="+- yF 0 yC" />
8228 + <gd name="p3" fmla="mod p1 p2 0" />
8229 + <gd name="p4" fmla="*/ p3 1 2" />
8230 + <gd name="p5" fmla="+- p4 0 thh" />
8231 + <gd name="xGp" fmla="?: p5 xF xG" />
8232 + <gd name="yGp" fmla="?: p5 yF yG" />
8233 + <gd name="xBp" fmla="?: p5 xC xB" />
8234 + <gd name="yBp" fmla="?: p5 yC yB" />
8236 + <gd name="en0" fmla="at2 sdxF sdyF" />
8237 + <gd name="en1" fmla="+- en0 21600000 0" />
8238 + <gd name="en2" fmla="?: en0 en0 en1" />
8239 + <gd name="sw0" fmla="+- en2 0 stAng" />
8240 + <gd name="sw1" fmla="+- sw0 21600000 0" />
8241 + <gd name="swAng" fmla="?: sw0 sw0 sw1" />
8243 + <gd name="wtI" fmla="sin rw3 stAng" />
8244 + <gd name="htI" fmla="cos rh3 stAng" />
8245 + <gd name="dxI" fmla="cat2 rw3 htI wtI" />
8246 + <gd name="dyI" fmla="sat2 rh3 htI wtI" />
8247 + <gd name="xI" fmla="+- hc dxI 0" />
8249 + <gd name="yI" fmla="+- vc dyI 0" />
8252 + <gd name="aI" fmla="+- stAng 0 cd4" />
8253 + <gd name="aA" fmla="+- ptAng cd4 0" />
8254 + <gd name="aB" fmla="+- ptAng cd2 0" />
8256 + <gd name="idx" fmla="cos rw1 2700000" />
8257 + <gd name="idy" fmla="sin rh1 2700000" />
8258 + <gd name="il" fmla="+- hc 0 idx" />
8259 + <gd name="ir" fmla="+- hc idx 0" />
8260 + <gd name="it" fmla="+- vc 0 idy" />
8261 + <gd name="ib" fmla="+- vc idy 0" />
8264 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8265 + <ahPolar gdRefAng="adj2" minAng="0" maxAng="maxAng">
8266 + <pos x="xA" y="yA" />
8268 + <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">
8269 + <pos x="xE" y="yE" />
8271 + <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">
8272 + <pos x="xF" y="yF" />
8274 + <ahPolar gdRefR="adj5" minR="0" maxR="25000">
8275 + <pos x="xB" y="yB" />
8279 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8281 + <pos x="xI" y="yI" />
8284 + <pos x="xGp" y="yGp" />
8287 + <pos x="xA" y="yA" />
8290 + <pos x="xBp" y="yBp" />
8294 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8296 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8299 + <pt x="xE" y="yE" />
8301 + <arcTo wR="rw1" hR="rh1" stAng="stAng" swAng="swAng" />
8303 + <pt x="xGp" y="yGp" />
8306 + <pt x="xA" y="yA" />
8309 + <pt x="xBp" y="yBp" />
8312 + <pt x="xC" y="yC" />
8314 + <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />
8322 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8323 + <gd name="il" fmla="*/ w 2977 21600" />
8324 + <gd name="it" fmla="*/ h 3262 21600" />
8325 + <gd name="ir" fmla="*/ w 17087 21600" />
8326 + <gd name="ib" fmla="*/ h 17337 21600" />
8327 + <gd name="g27" fmla="*/ w 67 21600" />
8328 + <gd name="g28" fmla="*/ h 21577 21600" />
8329 + <gd name="g29" fmla="*/ w 21582 21600" />
8330 + <gd name="g30" fmla="*/ h 1235 21600" />
8333 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8335 + <pos x="g29" y="vc" />
8338 + <pos x="hc" y="g28" />
8341 + <pos x="g27" y="vc" />
8344 + <pos x="hc" y="g30" />
8348 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8350 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8351 + <path w="43200" h="43200">
8353 + <pt x="3900" y="14370" />
8355 + <arcTo wR="6753" hR="9190" stAng="-11429249" swAng="7426832" />
8356 + <arcTo wR="5333" hR="7267" stAng="-8646143" swAng="5396714" />
8357 + <arcTo wR="4365" hR="5945" stAng="-8748475" swAng="5983381" />
8358 + <arcTo wR="4857" hR="6595" stAng="-7859164" swAng="7034504" />
8359 + <arcTo wR="5333" hR="7273" stAng="-4722533" swAng="6541615" />
8360 + <arcTo wR="6775" hR="9220" stAng="-2776035" swAng="7816140" />
8361 + <arcTo wR="5785" hR="7867" stAng="37501" swAng="6842000" />
8362 + <arcTo wR="6752" hR="9215" stAng="1347096" swAng="6910353" />
8363 + <arcTo wR="7720" hR="10543" stAng="3974558" swAng="4542661" />
8364 + <arcTo wR="4360" hR="5918" stAng="-16496525" swAng="8804134" />
8365 + <arcTo wR="4345" hR="5945" stAng="-14809710" swAng="9151131" />
8368 + <path w="43200" h="43200" fill="none" extrusionOk="false">
8370 + <pt x="4693" y="26177" />
8372 + <arcTo wR="4345" hR="5945" stAng="5204520" swAng="1585770" />
8374 + <pt x="6928" y="34899" />
8376 + <arcTo wR="4360" hR="5918" stAng="4416628" swAng="686848" />
8378 + <pt x="16478" y="39090" />
8380 + <arcTo wR="6752" hR="9215" stAng="8257449" swAng="844866" />
8382 + <pt x="28827" y="34751" />
8384 + <arcTo wR="6752" hR="9215" stAng="387196" swAng="959901" />
8386 + <pt x="34129" y="22954" />
8388 + <arcTo wR="5785" hR="7867" stAng="-4217541" swAng="4255042" />
8390 + <pt x="41798" y="15354" />
8392 + <arcTo wR="5333" hR="7273" stAng="1819082" swAng="1665090" />
8394 + <pt x="38324" y="5426" />
8396 + <arcTo wR="4857" hR="6595" stAng="-824660" swAng="891534" />
8398 + <pt x="29078" y="3952" />
8400 + <arcTo wR="4857" hR="6595" stAng="-8950887" swAng="1091722" />
8402 + <pt x="22141" y="4720" />
8404 + <arcTo wR="4365" hR="5945" stAng="-9809656" swAng="1061181" />
8406 + <pt x="14000" y="5192" />
8408 + <arcTo wR="6753" hR="9190" stAng="-4002417" swAng="739161" />
8410 + <pt x="4127" y="15789" />
8412 + <arcTo wR="6753" hR="9190" stAng="9459261" swAng="711490" />
8419 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8420 + <gd name="adj1" fmla="val -20833" />
8422 + <gd name="adj2" fmla="val 62500" />
8426 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8427 + <gd name="dxPos" fmla="*/ w adj1 100000" />
8428 + <gd name="dyPos" fmla="*/ h adj2 100000" />
8429 + <gd name="xPos" fmla="+- hc dxPos 0" />
8430 + <gd name="yPos" fmla="+- vc dyPos 0" />
8431 + <gd name="ht" fmla="cat2 hd2 dxPos dyPos" />
8432 + <gd name="wt" fmla="sat2 wd2 dxPos dyPos" />
8433 + <gd name="g2" fmla="cat2 wd2 ht wt" />
8434 + <gd name="g3" fmla="sat2 hd2 ht wt" />
8435 + <gd name="g4" fmla="+- hc g2 0" />
8437 + <gd name="g5" fmla="+- vc g3 0" />
8439 + <gd name="g6" fmla="+- g4 0 xPos" />
8441 + <gd name="g7" fmla="+- g5 0 yPos" />
8443 + <gd name="g8" fmla="mod g6 g7 0" />
8445 + <gd name="g9" fmla="*/ ss 6600 21600" />
8447 + <gd name="g10" fmla="+- g8 0 g9" />
8449 + <gd name="g11" fmla="*/ g10 1 3" />
8451 + <gd name="g12" fmla="*/ ss 1800 21600" />
8453 + <gd name="g13" fmla="+- g11 g12 0" />
8455 + <gd name="g14" fmla="*/ g13 g6 g8" />
8457 + <gd name="g15" fmla="*/ g13 g7 g8" />
8459 + <gd name="g16" fmla="+- g14 xPos 0" />
8461 + <gd name="g17" fmla="+- g15 yPos 0" />
8463 + <gd name="g18" fmla="*/ ss 4800 21600" />
8465 + <gd name="g19" fmla="*/ g11 2 1" />
8467 + <gd name="g20" fmla="+- g18 g19 0" />
8469 + <gd name="g21" fmla="*/ g20 g6 g8" />
8470 + <gd name="g22" fmla="*/ g20 g7 g8" />
8471 + <gd name="g23" fmla="+- g21 xPos 0" />
8472 + <gd name="g24" fmla="+- g22 yPos 0" />
8473 + <gd name="g25" fmla="*/ ss 1200 21600" />
8474 + <gd name="g26" fmla="*/ ss 600 21600" />
8476 + <gd name="x23" fmla="+- xPos g26 0" />
8477 + <gd name="x24" fmla="+- g16 g25 0" />
8478 + <gd name="x25" fmla="+- g23 g12 0" />
8479 + <gd name="il" fmla="*/ w 2977 21600" />
8480 + <gd name="it" fmla="*/ h 3262 21600" />
8481 + <gd name="ir" fmla="*/ w 17087 21600" />
8482 + <gd name="ib" fmla="*/ h 17337 21600" />
8484 + <gd name="g27" fmla="*/ w 67 21600" />
8485 + <gd name="g28" fmla="*/ h 21577 21600" />
8486 + <gd name="g29" fmla="*/ w 21582 21600" />
8487 + <gd name="g30" fmla="*/ h 1235 21600" />
8488 + <gd name="pang" fmla="at2 dxPos dyPos" />
8491 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8492 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">
8493 + <pos x="xPos" y="yPos" />
8497 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8499 + <pos x="g27" y="vc" />
8502 + <pos x="hc" y="g28" />
8505 + <pos x="g29" y="vc" />
8508 + <pos x="hc" y="g30" />
8511 + <pos x="xPos" y="yPos" />
8515 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8517 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8518 + <path w="43200" h="43200">
8520 + <pt x="3900" y="14370" />
8522 + <arcTo wR="6753" hR="9190" stAng="-11429249" swAng="7426832" />
8523 + <arcTo wR="5333" hR="7267" stAng="-8646143" swAng="5396714" />
8524 + <arcTo wR="4365" hR="5945" stAng="-8748475" swAng="5983381" />
8525 + <arcTo wR="4857" hR="6595" stAng="-7859164" swAng="7034504" />
8526 + <arcTo wR="5333" hR="7273" stAng="-4722533" swAng="6541615" />
8527 + <arcTo wR="6775" hR="9220" stAng="-2776035" swAng="7816140" />
8528 + <arcTo wR="5785" hR="7867" stAng="37501" swAng="6842000" />
8529 + <arcTo wR="6752" hR="9215" stAng="1347096" swAng="6910353" />
8530 + <arcTo wR="7720" hR="10543" stAng="3974558" swAng="4542661" />
8531 + <arcTo wR="4360" hR="5918" stAng="-16496525" swAng="8804134" />
8532 + <arcTo wR="4345" hR="5945" stAng="-14809710" swAng="9151131" />
8537 + <pt x="x23" y="yPos" />
8539 + <arcTo wR="g26" hR="g26" stAng="0" swAng="21600000" />
8544 + <pt x="x24" y="g17" />
8546 + <arcTo wR="g25" hR="g25" stAng="0" swAng="21600000" />
8551 + <pt x="x25" y="g24" />
8553 + <arcTo wR="g12" hR="g12" stAng="0" swAng="21600000" />
8556 + <path w="43200" h="43200" fill="none" extrusionOk="false">
8558 + <pt x="4693" y="26177" />
8560 + <arcTo wR="4345" hR="5945" stAng="5204520" swAng="1585770" />
8562 + <pt x="6928" y="34899" />
8564 + <arcTo wR="4360" hR="5918" stAng="4416628" swAng="686848" />
8566 + <pt x="16478" y="39090" />
8568 + <arcTo wR="6752" hR="9215" stAng="8257449" swAng="844866" />
8570 + <pt x="28827" y="34751" />
8572 + <arcTo wR="6752" hR="9215" stAng="387196" swAng="959901" />
8574 + <pt x="34129" y="22954" />
8576 + <arcTo wR="5785" hR="7867" stAng="-4217541" swAng="4255042" />
8578 + <pt x="41798" y="15354" />
8580 + <arcTo wR="5333" hR="7273" stAng="1819082" swAng="1665090" />
8582 + <pt x="38324" y="5426" />
8584 + <arcTo wR="4857" hR="6595" stAng="-824660" swAng="891534" />
8586 + <pt x="29078" y="3952" />
8588 + <arcTo wR="4857" hR="6595" stAng="-8950887" swAng="1091722" />
8590 + <pt x="22141" y="4720" />
8592 + <arcTo wR="4365" hR="5945" stAng="-9809656" swAng="1061181" />
8594 + <pt x="14000" y="5192" />
8596 + <arcTo wR="6753" hR="9190" stAng="-4002417" swAng="739161" />
8598 + <pt x="4127" y="15789" />
8600 + <arcTo wR="6753" hR="9190" stAng="9459261" swAng="711490" />
8607 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8608 + <gd name="adj1" fmla="val 50000" />
8610 + <gd name="adj2" fmla="val 50000" />
8614 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8615 + <gd name="maxAdj1" fmla="*/ 100000 h ss" />
8616 + <gd name="maxAdj2" fmla="*/ 100000 w ss" />
8617 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
8618 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
8619 + <gd name="x1" fmla="*/ ss a2 100000" />
8620 + <gd name="dy1" fmla="*/ ss a1 100000" />
8621 + <gd name="y1" fmla="+- b 0 dy1" />
8622 + <gd name="cx1" fmla="*/ x1 1 2" />
8623 + <gd name="cy1" fmla="+/ y1 b 2" />
8624 + <gd name="d" fmla="+- w 0 h" />
8625 + <gd name="it" fmla="?: d y1 t" />
8626 + <gd name="ir" fmla="?: d r x1" />
8629 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8630 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
8631 + <pos x="l" y="y1" />
8633 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
8634 + <pos x="x1" y="t" />
8638 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8640 + <pos x="r" y="cy1" />
8643 + <pos x="hc" y="b" />
8646 + <pos x="l" y="vc" />
8649 + <pos x="cx1" y="t" />
8653 + <rect l="l" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8655 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8658 + <pt x="l" y="t" />
8661 + <pt x="x1" y="t" />
8664 + <pt x="x1" y="y1" />
8667 + <pt x="r" y="y1" />
8670 + <pt x="r" y="b" />
8673 + <pt x="l" y="b" />
8682 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8683 + <gd name="md" fmla="mod w h 0" />
8684 + <gd name="dx" fmla="*/ 1 md 20" />
8686 + <gd name="y1" fmla="+- 0 b dx" />
8688 + <gd name="x1" fmla="+- 0 r dx" />
8692 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8694 + <pos x="l" y="t" />
8697 + <pos x="l" y="dx" />
8700 + <pos x="l" y="y1" />
8703 + <pos x="l" y="b" />
8706 + <pos x="dx" y="t" />
8709 + <pos x="x1" y="t" />
8712 + <pos x="dx" y="b" />
8715 + <pos x="x1" y="b" />
8718 + <pos x="r" y="t" />
8721 + <pos x="r" y="dx" />
8724 + <pos x="r" y="y1" />
8727 + <pos x="r" y="b" />
8731 + <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8733 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8736 + <pt x="l" y="t" />
8739 + <pt x="dx" y="t" />
8742 + <pt x="l" y="dx" />
8748 + <pt x="l" y="y1" />
8751 + <pt x="dx" y="b" />
8754 + <pt x="l" y="b" />
8760 + <pt x="x1" y="t" />
8763 + <pt x="r" y="t" />
8766 + <pt x="r" y="dx" />
8772 + <pt x="r" y="y1" />
8775 + <pt x="r" y="b" />
8778 + <pt x="x1" y="b" />
8786 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8787 + <gd name="adj" fmla="val 25000" />
8789 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8790 + <gd name="a" fmla="pin 0 adj 100000" />
8791 + <gd name="y1" fmla="*/ ss a 100000" />
8792 + <gd name="y4" fmla="+- b 0 y1" />
8793 + <gd name="y2" fmla="*/ y4 1 2" />
8794 + <gd name="y3" fmla="+/ y1 b 2" />
8795 + <gd name="x4" fmla="+- r 0 y1" />
8796 + <gd name="x2" fmla="*/ x4 1 2" />
8797 + <gd name="x3" fmla="+/ y1 r 2" />
8799 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8800 + <ahXY gdRefY="adj" minY="0" maxY="100000">
8801 + <pos x="l" y="y1" />
8804 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8806 + <pos x="x3" y="t" />
8809 + <pos x="x2" y="y1" />
8812 + <pos x="l" y="y3" />
8815 + <pos x="x2" y="b" />
8818 + <pos x="x4" y="y3" />
8821 + <pos x="r" y="y2" />
8824 + <rect l="l" t="y1" r="x4" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8825 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8826 + <path stroke="false" extrusionOk="false">
8828 + <pt x="l" y="y1" />
8831 + <pt x="x4" y="y1" />
8834 + <pt x="x4" y="b" />
8837 + <pt x="l" y="b" />
8841 + <path stroke="false" fill="darkenLess" extrusionOk="false">
8843 + <pt x="x4" y="y1" />
8846 + <pt x="r" y="t" />
8849 + <pt x="r" y="y4" />
8852 + <pt x="x4" y="b" />
8856 + <path stroke="false" fill="lightenLess" extrusionOk="false">
8858 + <pt x="l" y="y1" />
8861 + <pt x="y1" y="t" />
8864 + <pt x="r" y="t" />
8867 + <pt x="x4" y="y1" />
8871 + <path fill="none" extrusionOk="false">
8873 + <pt x="l" y="y1" />
8876 + <pt x="y1" y="t" />
8879 + <pt x="r" y="t" />
8882 + <pt x="r" y="y4" />
8885 + <pt x="x4" y="b" />
8888 + <pt x="l" y="b" />
8892 + <pt x="l" y="y1" />
8895 + <pt x="x4" y="y1" />
8898 + <pt x="r" y="t" />
8901 + <pt x="x4" y="y1" />
8904 + <pt x="x4" y="b" />
8909 + <curvedConnector2>
8910 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8911 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8912 + <path fill="none">
8914 + <pt x="l" y="t" />
8917 + <pt x="wd2" y="t" />
8918 + <pt x="r" y="hd2" />
8919 + <pt x="r" y="b" />
8923 + </curvedConnector2>
8924 + <curvedConnector3>
8925 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8926 + <gd name="adj1" fmla="val 50000" />
8928 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8929 + <gd name="x2" fmla="*/ w adj1 100000" />
8930 + <gd name="x1" fmla="+/ l x2 2" />
8931 + <gd name="x3" fmla="+/ r x2 2" />
8932 + <gd name="y3" fmla="*/ h 3 4" />
8934 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8935 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">
8936 + <pos x="x2" y="vc" />
8939 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8940 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8941 + <path fill="none">
8943 + <pt x="l" y="t" />
8946 + <pt x="x1" y="t" />
8947 + <pt x="x2" y="hd4" />
8948 + <pt x="x2" y="vc" />
8951 + <pt x="x2" y="y3" />
8952 + <pt x="x3" y="b" />
8953 + <pt x="r" y="b" />
8957 + </curvedConnector3>
8958 + <curvedConnector4>
8959 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8960 + <gd name="adj1" fmla="val 50000" />
8961 + <gd name="adj2" fmla="val 50000" />
8963 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8964 + <gd name="x2" fmla="*/ w adj1 100000" />
8965 + <gd name="x1" fmla="+/ l x2 2" />
8966 + <gd name="x3" fmla="+/ r x2 2" />
8967 + <gd name="x4" fmla="+/ x2 x3 2" />
8968 + <gd name="x5" fmla="+/ x3 r 2" />
8969 + <gd name="y4" fmla="*/ h adj2 100000" />
8970 + <gd name="y1" fmla="+/ t y4 2" />
8971 + <gd name="y2" fmla="+/ t y1 2" />
8972 + <gd name="y3" fmla="+/ y1 y4 2" />
8973 + <gd name="y5" fmla="+/ b y4 2" />
8975 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8976 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">
8977 + <pos x="x2" y="y1" />
8979 + <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">
8980 + <pos x="x3" y="y4" />
8983 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
8984 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
8985 + <path fill="none">
8987 + <pt x="l" y="t" />
8990 + <pt x="x1" y="t" />
8991 + <pt x="x2" y="y2" />
8992 + <pt x="x2" y="y1" />
8995 + <pt x="x2" y="y3" />
8996 + <pt x="x4" y="y4" />
8997 + <pt x="x3" y="y4" />
9000 + <pt x="x5" y="y4" />
9001 + <pt x="r" y="y5" />
9002 + <pt x="r" y="b" />
9006 + </curvedConnector4>
9007 + <curvedConnector5>
9009 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9010 + <gd name="adj1" fmla="val 50000" />
9012 + <gd name="adj2" fmla="val 50000" />
9014 + <gd name="adj3" fmla="val 50000" />
9017 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9018 + <gd name="x3" fmla="*/ w adj1 100000" />
9019 + <gd name="x6" fmla="*/ w adj3 100000" />
9020 + <gd name="x1" fmla="+/ x3 x6 2" />
9021 + <gd name="x2" fmla="+/ l x3 2" />
9022 + <gd name="x4" fmla="+/ x3 x1 2" />
9023 + <gd name="x5" fmla="+/ x6 x1 2" />
9024 + <gd name="x7" fmla="+/ x6 r 2" />
9025 + <gd name="y4" fmla="*/ h adj2 100000" />
9026 + <gd name="y1" fmla="+/ t y4 2" />
9027 + <gd name="y2" fmla="+/ t y1 2" />
9028 + <gd name="y3" fmla="+/ y1 y4 2" />
9029 + <gd name="y5" fmla="+/ b y4 2" />
9030 + <gd name="y6" fmla="+/ y5 y4 2" />
9031 + <gd name="y7" fmla="+/ y5 b 2" />
9033 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9034 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">
9035 + <pos x="x3" y="y1" />
9037 + <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">
9038 + <pos x="x1" y="y4" />
9040 + <ahXY gdRefX="adj3" minX="-2147483647" maxX="2147483647">
9041 + <pos x="x6" y="y5" />
9044 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
9045 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9046 + <path fill="none">
9048 + <pt x="l" y="t" />
9051 + <pt x="x2" y="t" />
9052 + <pt x="x3" y="y2" />
9053 + <pt x="x3" y="y1" />
9056 + <pt x="x3" y="y3" />
9057 + <pt x="x4" y="y4" />
9058 + <pt x="x1" y="y4" />
9061 + <pt x="x5" y="y4" />
9062 + <pt x="x6" y="y6" />
9063 + <pt x="x6" y="y5" />
9066 + <pt x="x6" y="y7" />
9067 + <pt x="x7" y="b" />
9068 + <pt x="r" y="b" />
9073 + </curvedConnector5>
9076 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9077 + <gd name="adj1" fmla="val 25000" />
9079 + <gd name="adj2" fmla="val 50000" />
9081 + <gd name="adj3" fmla="val 25000" />
9085 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9086 + <gd name="maxAdj2" fmla="*/ 50000 w ss" />
9088 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
9089 + <gd name="a1" fmla="pin 0 adj1 100000" />
9090 + <gd name="th" fmla="*/ ss a1 100000" />
9092 + <gd name="aw" fmla="*/ ss a2 100000" />
9094 + <gd name="q1" fmla="+/ th aw 4" />
9096 + <gd name="wR" fmla="+- wd2 0 q1" />
9098 + <gd name="q7" fmla="*/ wR 2 1" />
9100 + <gd name="q8" fmla="*/ q7 q7 1" />
9102 + <gd name="q9" fmla="*/ th th 1" />
9104 + <gd name="q10" fmla="+- q8 0 q9" />
9105 + <gd name="q11" fmla="sqrt q10" />
9106 + <gd name="idy" fmla="*/ q11 h q7" />
9107 + <gd name="maxAdj3" fmla="*/ 100000 idy ss" />
9109 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
9110 + <gd name="ah" fmla="*/ ss adj3 100000" />
9116 + <gd name="x3" fmla="+- wR th 0" />
9118 + <gd name="q2" fmla="*/ h h 1" />
9119 + <gd name="q3" fmla="*/ ah ah 1" />
9120 + <gd name="q4" fmla="+- q2 0 q3" />
9121 + <gd name="q5" fmla="sqrt q4" />
9122 + <gd name="dx" fmla="*/ q5 wR h" />
9123 + <gd name="x5" fmla="+- wR dx 0" />
9125 + <gd name="x7" fmla="+- x3 dx 0" />
9127 + <gd name="q6" fmla="+- aw 0 th" />
9128 + <gd name="dh" fmla="*/ q6 1 2" />
9130 + <gd name="x4" fmla="+- x5 0 dh" />
9132 + <gd name="x8" fmla="+- x7 dh 0" />
9134 + <gd name="aw2" fmla="*/ aw 1 2" />
9135 + <gd name="x6" fmla="+- r 0 aw2" />
9137 + <gd name="y1" fmla="+- b 0 ah" />
9138 + <gd name="swAng" fmla="at2 ah dx" />
9140 + <gd name="mswAng" fmla="+- 0 0 swAng" />
9141 + <gd name="iy" fmla="+- b 0 idy" />
9143 + <gd name="ix" fmla="+/ wR x3 2" />
9145 + <gd name="q12" fmla="*/ th 1 2" />
9146 + <gd name="dang2" fmla="at2 idy q12" />
9147 + <gd name="stAng" fmla="+- 3cd4 swAng 0" />
9148 + <gd name="stAng2" fmla="+- 3cd4 0 dang2" />
9149 + <gd name="swAng2" fmla="+- dang2 0 cd4" />
9150 + <gd name="swAng3" fmla="+- cd4 dang2 0" />
9153 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9154 + <ahXY gdRefX="adj1" minX="0" maxX="adj2">
9155 + <pos x="x7" y="y1" />
9157 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
9158 + <pos x="x4" y="b" />
9160 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
9161 + <pos x="r" y="y1" />
9165 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9167 + <pos x="ix" y="t" />
9170 + <pos x="q12" y="b" />
9173 + <pos x="x4" y="y1" />
9176 + <pos x="x6" y="b" />
9179 + <pos x="x8" y="y1" />
9184 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
9186 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9188 + <path stroke="false" extrusionOk="false">
9190 + <pt x="x6" y="b" />
9193 + <pt x="x4" y="y1" />
9196 + <pt x="x5" y="y1" />
9198 + <arcTo wR="wR" hR="h" stAng="stAng" swAng="mswAng" />
9200 + <pt x="x3" y="t" />
9202 + <arcTo wR="wR" hR="h" stAng="3cd4" swAng="swAng" />
9204 + <pt x="x8" y="y1" />
9209 + <path fill="darkenLess" stroke="false" extrusionOk="false">
9211 + <pt x="ix" y="iy" />
9213 + <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />
9215 + <pt x="l" y="b" />
9217 + <arcTo wR="wR" hR="h" stAng="cd2" swAng="swAng3" />
9221 + <path fill="none" extrusionOk="false">
9223 + <pt x="ix" y="iy" />
9225 + <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />
9227 + <pt x="l" y="b" />
9229 + <arcTo wR="wR" hR="h" stAng="cd2" swAng="cd4" />
9231 + <pt x="x3" y="t" />
9233 + <arcTo wR="wR" hR="h" stAng="3cd4" swAng="swAng" />
9235 + <pt x="x8" y="y1" />
9238 + <pt x="x6" y="b" />
9241 + <pt x="x4" y="y1" />
9244 + <pt x="x5" y="y1" />
9246 + <arcTo wR="wR" hR="h" stAng="stAng" swAng="mswAng" />
9250 + </curvedDownArrow>
9253 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9254 + <gd name="adj1" fmla="val 25000" />
9256 + <gd name="adj2" fmla="val 50000" />
9258 + <gd name="adj3" fmla="val 25000" />
9262 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9263 + <gd name="maxAdj2" fmla="*/ 50000 h ss" />
9265 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
9266 + <gd name="a1" fmla="pin 0 adj1 a2" />
9267 + <gd name="th" fmla="*/ ss a1 100000" />
9269 + <gd name="aw" fmla="*/ ss a2 100000" />
9271 + <gd name="q1" fmla="+/ th aw 4" />
9273 + <gd name="hR" fmla="+- hd2 0 q1" />
9275 + <gd name="q7" fmla="*/ hR 2 1" />
9277 + <gd name="q8" fmla="*/ q7 q7 1" />
9279 + <gd name="q9" fmla="*/ th th 1" />
9281 + <gd name="q10" fmla="+- q8 0 q9" />
9282 + <gd name="q11" fmla="sqrt q10" />
9283 + <gd name="idx" fmla="*/ q11 w q7" />
9284 + <gd name="maxAdj3" fmla="*/ 100000 idx ss" />
9286 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
9287 + <gd name="ah" fmla="*/ ss a3 100000" />
9293 + <gd name="y3" fmla="+- hR th 0" />
9295 + <gd name="q2" fmla="*/ w w 1" />
9296 + <gd name="q3" fmla="*/ ah ah 1" />
9297 + <gd name="q4" fmla="+- q2 0 q3" />
9298 + <gd name="q5" fmla="sqrt q4" />
9299 + <gd name="dy" fmla="*/ q5 hR w" />
9300 + <gd name="y5" fmla="+- hR dy 0" />
9302 + <gd name="y7" fmla="+- y3 dy 0" />
9304 + <gd name="q6" fmla="+- aw 0 th" />
9305 + <gd name="dh" fmla="*/ q6 1 2" />
9307 + <gd name="y4" fmla="+- y5 0 dh" />
9309 + <gd name="y8" fmla="+- y7 dh 0" />
9311 + <gd name="aw2" fmla="*/ aw 1 2" />
9312 + <gd name="y6" fmla="+- b 0 aw2" />
9314 + <gd name="x1" fmla="+- l ah 0" />
9315 + <gd name="swAng" fmla="at2 ah dy" />
9317 + <gd name="mswAng" fmla="+- 0 0 swAng" />
9318 + <gd name="ix" fmla="+- l idx 0" />
9320 + <gd name="iy" fmla="+/ hR y3 2" />
9322 + <gd name="q12" fmla="*/ th 1 2" />
9323 + <gd name="dang2" fmla="at2 idx q12" />
9324 + <gd name="swAng2" fmla="+- dang2 0 swAng" />
9325 + <gd name="swAng3" fmla="+- swAng dang2 0" />
9326 + <gd name="stAng3" fmla="+- 0 0 dang2" />
9329 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9330 + <ahXY gdRefY="adj1" minY="0" maxY="a2">
9331 + <pos x="x1" y="y5" />
9333 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
9334 + <pos x="r" y="y4" />
9336 + <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">
9337 + <pos x="x1" y="b" />
9341 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9343 + <pos x="l" y="q12" />
9346 + <pos x="x1" y="y4" />
9349 + <pos x="l" y="y6" />
9352 + <pos x="x1" y="y8" />
9355 + <pos x="r" y="iy" />
9360 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
9363 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9365 + <path stroke="false" extrusionOk="false">
9367 + <pt x="l" y="y6" />
9370 + <pt x="x1" y="y4" />
9373 + <pt x="x1" y="y5" />
9375 + <arcTo wR="w" hR="hR" stAng="swAng" swAng="swAng2" />
9376 + <arcTo wR="w" hR="hR" stAng="stAng3" swAng="swAng3" />
9378 + <pt x="x1" y="y8" />
9383 + <path fill="darkenLess" stroke="false" extrusionOk="false">
9385 + <pt x="r" y="y3" />
9387 + <arcTo wR="w" hR="hR" stAng="0" swAng="-5400000" />
9389 + <pt x="l" y="t" />
9391 + <arcTo wR="w" hR="hR" stAng="3cd4" swAng="cd4" />
9395 + <path fill="none" extrusionOk="false">
9397 + <pt x="r" y="y3" />
9399 + <arcTo wR="w" hR="hR" stAng="0" swAng="-5400000" />
9401 + <pt x="l" y="t" />
9403 + <arcTo wR="w" hR="hR" stAng="3cd4" swAng="cd4" />
9405 + <pt x="r" y="y3" />
9407 + <arcTo wR="w" hR="hR" stAng="0" swAng="swAng" />
9409 + <pt x="x1" y="y8" />
9412 + <pt x="l" y="y6" />
9415 + <pt x="x1" y="y4" />
9418 + <pt x="x1" y="y5" />
9420 + <arcTo wR="w" hR="hR" stAng="swAng" swAng="swAng2" />
9424 + </curvedLeftArrow>
9425 + <curvedRightArrow>
9427 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9428 + <gd name="adj1" fmla="val 25000" />
9430 + <gd name="adj2" fmla="val 50000" />
9432 + <gd name="adj3" fmla="val 25000" />
9436 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9437 + <gd name="maxAdj2" fmla="*/ 50000 h ss" />
9439 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
9440 + <gd name="a1" fmla="pin 0 adj1 a2" />
9441 + <gd name="th" fmla="*/ ss a1 100000" />
9443 + <gd name="aw" fmla="*/ ss a2 100000" />
9445 + <gd name="q1" fmla="+/ th aw 4" />
9447 + <gd name="hR" fmla="+- hd2 0 q1" />
9449 + <gd name="q7" fmla="*/ hR 2 1" />
9451 + <gd name="q8" fmla="*/ q7 q7 1" />
9453 + <gd name="q9" fmla="*/ th th 1" />
9455 + <gd name="q10" fmla="+- q8 0 q9" />
9456 + <gd name="q11" fmla="sqrt q10" />
9457 + <gd name="idx" fmla="*/ q11 w q7" />
9458 + <gd name="maxAdj3" fmla="*/ 100000 idx ss" />
9460 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
9461 + <gd name="ah" fmla="*/ ss a3 100000" />
9467 + <gd name="y3" fmla="+- hR th 0" />
9469 + <gd name="q2" fmla="*/ w w 1" />
9470 + <gd name="q3" fmla="*/ ah ah 1" />
9471 + <gd name="q4" fmla="+- q2 0 q3" />
9472 + <gd name="q5" fmla="sqrt q4" />
9473 + <gd name="dy" fmla="*/ q5 hR w" />
9474 + <gd name="y5" fmla="+- hR dy 0" />
9476 + <gd name="y7" fmla="+- y3 dy 0" />
9478 + <gd name="q6" fmla="+- aw 0 th" />
9479 + <gd name="dh" fmla="*/ q6 1 2" />
9481 + <gd name="y4" fmla="+- y5 0 dh" />
9483 + <gd name="y8" fmla="+- y7 dh 0" />
9485 + <gd name="aw2" fmla="*/ aw 1 2" />
9486 + <gd name="y6" fmla="+- b 0 aw2" />
9488 + <gd name="x1" fmla="+- r 0 ah" />
9489 + <gd name="swAng" fmla="at2 ah dy" />
9491 + <gd name="stAng" fmla="+- cd2 0 swAng" />
9492 + <gd name="mswAng" fmla="+- 0 0 swAng" />
9493 + <gd name="ix" fmla="+- r 0 idx" />
9495 + <gd name="iy" fmla="+/ hR y3 2" />
9497 + <gd name="q12" fmla="*/ th 1 2" />
9498 + <gd name="dang2" fmla="at2 idx q12" />
9499 + <gd name="swAng2" fmla="+- dang2 0 cd4" />
9500 + <gd name="swAng3" fmla="+- cd4 dang2 0" />
9501 + <gd name="stAng3" fmla="+- cd2 0 dang2" />
9504 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9505 + <ahXY gdRefY="adj1" minY="0" maxY="a2">
9506 + <pos x="x1" y="y5" />
9508 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
9509 + <pos x="r" y="y4" />
9511 + <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">
9512 + <pos x="x1" y="b" />
9516 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9518 + <pos x="l" y="iy" />
9521 + <pos x="x1" y="y8" />
9524 + <pos x="r" y="y6" />
9527 + <pos x="x1" y="y4" />
9530 + <pos x="r" y="q12" />
9535 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
9538 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9540 + <path stroke="false" extrusionOk="false">
9542 + <pt x="l" y="hR" />
9544 + <arcTo wR="w" hR="hR" stAng="cd2" swAng="mswAng" />
9546 + <pt x="x1" y="y4" />
9549 + <pt x="r" y="y6" />
9552 + <pt x="x1" y="y8" />
9555 + <pt x="x1" y="y7" />
9557 + <arcTo wR="w" hR="hR" stAng="stAng" swAng="swAng" />
9561 + <path fill="darkenLess" stroke="false" extrusionOk="false">
9563 + <pt x="r" y="th" />
9565 + <arcTo wR="w" hR="hR" stAng="3cd4" swAng="swAng2" />
9566 + <arcTo wR="w" hR="hR" stAng="stAng3" swAng="swAng3" />
9570 + <path fill="none" extrusionOk="false">
9572 + <pt x="l" y="hR" />
9574 + <arcTo wR="w" hR="hR" stAng="cd2" swAng="mswAng" />
9576 + <pt x="x1" y="y4" />
9579 + <pt x="r" y="y6" />
9582 + <pt x="x1" y="y8" />
9585 + <pt x="x1" y="y7" />
9587 + <arcTo wR="w" hR="hR" stAng="stAng" swAng="swAng" />
9589 + <pt x="l" y="hR" />
9591 + <arcTo wR="w" hR="hR" stAng="cd2" swAng="cd4" />
9593 + <pt x="r" y="th" />
9595 + <arcTo wR="w" hR="hR" stAng="3cd4" swAng="swAng2" />
9599 + </curvedRightArrow>
9602 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9603 + <gd name="adj1" fmla="val 25000" />
9605 + <gd name="adj2" fmla="val 50000" />
9607 + <gd name="adj3" fmla="val 25000" />
9611 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9612 + <gd name="maxAdj2" fmla="*/ 50000 w ss" />
9614 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
9615 + <gd name="a1" fmla="pin 0 adj1 100000" />
9616 + <gd name="th" fmla="*/ ss a1 100000" />
9618 + <gd name="aw" fmla="*/ ss a2 100000" />
9620 + <gd name="q1" fmla="+/ th aw 4" />
9622 + <gd name="wR" fmla="+- wd2 0 q1" />
9624 + <gd name="q7" fmla="*/ wR 2 1" />
9626 + <gd name="q8" fmla="*/ q7 q7 1" />
9628 + <gd name="q9" fmla="*/ th th 1" />
9630 + <gd name="q10" fmla="+- q8 0 q9" />
9631 + <gd name="q11" fmla="sqrt q10" />
9632 + <gd name="idy" fmla="*/ q11 h q7" />
9633 + <gd name="maxAdj3" fmla="*/ 100000 idy ss" />
9635 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
9636 + <gd name="ah" fmla="*/ ss adj3 100000" />
9642 + <gd name="x3" fmla="+- wR th 0" />
9644 + <gd name="q2" fmla="*/ h h 1" />
9645 + <gd name="q3" fmla="*/ ah ah 1" />
9646 + <gd name="q4" fmla="+- q2 0 q3" />
9647 + <gd name="q5" fmla="sqrt q4" />
9648 + <gd name="dx" fmla="*/ q5 wR h" />
9649 + <gd name="x5" fmla="+- wR dx 0" />
9651 + <gd name="x7" fmla="+- x3 dx 0" />
9653 + <gd name="q6" fmla="+- aw 0 th" />
9654 + <gd name="dh" fmla="*/ q6 1 2" />
9656 + <gd name="x4" fmla="+- x5 0 dh" />
9658 + <gd name="x8" fmla="+- x7 dh 0" />
9660 + <gd name="aw2" fmla="*/ aw 1 2" />
9661 + <gd name="x6" fmla="+- r 0 aw2" />
9663 + <gd name="y1" fmla="+- t ah 0" />
9664 + <gd name="swAng" fmla="at2 ah dx" />
9666 + <gd name="mswAng" fmla="+- 0 0 swAng" />
9667 + <gd name="iy" fmla="+- t idy 0" />
9669 + <gd name="ix" fmla="+/ wR x3 2" />
9671 + <gd name="q12" fmla="*/ th 1 2" />
9672 + <gd name="dang2" fmla="at2 idy q12" />
9673 + <gd name="swAng2" fmla="+- dang2 0 swAng" />
9674 + <gd name="mswAng2" fmla="+- 0 0 swAng2" />
9675 + <gd name="stAng3" fmla="+- cd4 0 swAng" />
9676 + <gd name="swAng3" fmla="+- swAng dang2 0" />
9677 + <gd name="stAng2" fmla="+- cd4 0 dang2" />
9680 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9681 + <ahXY gdRefX="adj1" minX="0" maxX="a2">
9682 + <pos x="x7" y="y1" />
9684 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
9685 + <pos x="x4" y="t" />
9687 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
9688 + <pos x="r" y="y1" />
9692 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9694 + <pos x="x6" y="t" />
9697 + <pos x="x4" y="y1" />
9700 + <pos x="q12" y="t" />
9703 + <pos x="ix" y="b" />
9706 + <pos x="x8" y="y1" />
9711 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
9714 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9716 + <path stroke="false" extrusionOk="false">
9718 + <pt x="x6" y="t" />
9721 + <pt x="x8" y="y1" />
9724 + <pt x="x7" y="y1" />
9726 + <arcTo wR="wR" hR="h" stAng="stAng3" swAng="swAng3" />
9727 + <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />
9729 + <pt x="x4" y="y1" />
9734 + <path fill="darkenLess" stroke="false" extrusionOk="false">
9736 + <pt x="wR" y="b" />
9738 + <arcTo wR="wR" hR="h" stAng="cd4" swAng="cd4" />
9740 + <pt x="th" y="t" />
9742 + <arcTo wR="wR" hR="h" stAng="cd2" swAng="-5400000" />
9746 + <path fill="none" extrusionOk="false">
9748 + <pt x="ix" y="iy" />
9750 + <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />
9752 + <pt x="x4" y="y1" />
9755 + <pt x="x6" y="t" />
9758 + <pt x="x8" y="y1" />
9761 + <pt x="x7" y="y1" />
9763 + <arcTo wR="wR" hR="h" stAng="stAng3" swAng="swAng" />
9765 + <pt x="wR" y="b" />
9767 + <arcTo wR="wR" hR="h" stAng="cd4" swAng="cd4" />
9769 + <pt x="th" y="t" />
9771 + <arcTo wR="wR" hR="h" stAng="cd2" swAng="-5400000" />
9778 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9779 + <gd name="vf" fmla="val 105146" />
9781 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9782 + <gd name="shd2" fmla="*/ hd2 vf 100000" />
9783 + <gd name="dx1" fmla="cos wd2 2160000" />
9784 + <gd name="dx2" fmla="cos wd2 4320000" />
9785 + <gd name="x1" fmla="+- hc 0 dx1" />
9786 + <gd name="x2" fmla="+- hc 0 dx2" />
9787 + <gd name="x3" fmla="+- hc dx2 0" />
9788 + <gd name="x4" fmla="+- hc dx1 0" />
9789 + <gd name="dy1" fmla="sin shd2 4320000" />
9790 + <gd name="dy2" fmla="sin shd2 2160000" />
9791 + <gd name="y1" fmla="+- vc 0 dy1" />
9792 + <gd name="y2" fmla="+- vc 0 dy2" />
9793 + <gd name="y3" fmla="+- vc dy2 0" />
9794 + <gd name="y4" fmla="+- vc dy1 0" />
9797 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9799 + <pos x="x4" y="y2" />
9802 + <pos x="r" y="vc" />
9805 + <pos x="x4" y="y3" />
9808 + <pos x="x3" y="y4" />
9811 + <pos x="x2" y="y4" />
9814 + <pos x="x1" y="y3" />
9817 + <pos x="l" y="vc" />
9820 + <pos x="x1" y="y2" />
9823 + <pos x="x2" y="y1" />
9826 + <pos x="x3" y="y1" />
9830 + <rect l="x1" t="y2" r="x4" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
9832 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9835 + <pt x="l" y="vc" />
9838 + <pt x="x1" y="y2" />
9841 + <pt x="x2" y="y1" />
9844 + <pt x="x3" y="y1" />
9847 + <pt x="x4" y="y2" />
9850 + <pt x="r" y="vc" />
9853 + <pt x="x4" y="y3" />
9856 + <pt x="x3" y="y4" />
9859 + <pt x="x2" y="y4" />
9862 + <pt x="x1" y="y3" />
9871 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9872 + <gd name="adj" fmla="val 50000" />
9876 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9877 + <gd name="a" fmla="pin 0 adj 100000" />
9878 + <gd name="x2" fmla="*/ w a 100000" />
9879 + <gd name="x1" fmla="*/ x2 1 2" />
9880 + <gd name="x3" fmla="+/ x2 r 2" />
9881 + <gd name="y2" fmla="*/ h a 100000" />
9882 + <gd name="y1" fmla="*/ y2 1 2" />
9883 + <gd name="y3" fmla="+/ y2 b 2" />
9886 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9887 + <ahXY gdRefY="adj" minY="0" maxY="100000">
9888 + <pos x="l" y="y2" />
9892 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9894 + <pos x="hc" y="vc" />
9897 + <pos x="l" y="y3" />
9900 + <pos x="x1" y="y1" />
9903 + <pos x="x3" y="t" />
9907 + <rect l="l" t="t" r="x3" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
9909 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9912 + <pt x="l" y="y2" />
9915 + <pt x="x2" y="t" />
9918 + <pt x="r" y="t" />
9921 + <pt x="l" y="b" />
9929 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9930 + <gd name="ir" fmla="*/ w 3 4" />
9931 + <gd name="ib" fmla="*/ h 3 4" />
9933 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9935 + <pos x="hc" y="t" />
9938 + <pos x="l" y="vc" />
9941 + <pos x="hc" y="b" />
9944 + <pos x="r" y="vc" />
9947 + <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
9948 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9951 + <pt x="l" y="vc" />
9954 + <pt x="hc" y="t" />
9957 + <pt x="r" y="vc" />
9960 + <pt x="hc" y="b" />
9968 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9969 + <gd name="x1" fmla="*/ w 2894 21600" />
9970 + <gd name="x2" fmla="*/ w 7906 21600" />
9971 + <gd name="x3" fmla="*/ w 13694 21600" />
9972 + <gd name="x4" fmla="*/ w 18706 21600" />
9973 + <gd name="y1" fmla="*/ h 2894 21600" />
9974 + <gd name="y2" fmla="*/ h 7906 21600" />
9975 + <gd name="y3" fmla="*/ h 13694 21600" />
9976 + <gd name="y4" fmla="*/ h 18706 21600" />
9979 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
9981 + <pos x="x4" y="y1" />
9984 + <pos x="r" y="y2" />
9987 + <pos x="r" y="y3" />
9990 + <pos x="x4" y="y4" />
9993 + <pos x="x3" y="b" />
9996 + <pos x="x2" y="b" />
9999 + <pos x="x1" y="y4" />
10002 + <pos x="l" y="y3" />
10005 + <pos x="l" y="y2" />
10008 + <pos x="x1" y="y1" />
10011 + <pos x="x2" y="t" />
10014 + <pos x="x3" y="t" />
10018 + <rect l="x1" t="y1" r="x4" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
10020 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10023 + <pt x="l" y="y2" />
10026 + <pt x="x1" y="y1" />
10029 + <pt x="x2" y="t" />
10032 + <pt x="x3" y="t" />
10035 + <pt x="x4" y="y1" />
10038 + <pt x="r" y="y2" />
10041 + <pt x="r" y="y3" />
10044 + <pt x="x4" y="y4" />
10047 + <pt x="x3" y="b" />
10050 + <pt x="x2" y="b" />
10053 + <pt x="x1" y="y4" />
10056 + <pt x="l" y="y3" />
10065 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10066 + <gd name="adj" fmla="val 25000" />
10069 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10070 + <gd name="a" fmla="pin 0 adj 50000" />
10071 + <gd name="dr" fmla="*/ ss a 100000" />
10072 + <gd name="iwd2" fmla="+- wd2 0 dr" />
10073 + <gd name="ihd2" fmla="+- hd2 0 dr" />
10074 + <gd name="idx" fmla="cos wd2 2700000" />
10075 + <gd name="idy" fmla="sin hd2 2700000" />
10076 + <gd name="il" fmla="+- hc 0 idx" />
10077 + <gd name="ir" fmla="+- hc idx 0" />
10078 + <gd name="it" fmla="+- vc 0 idy" />
10079 + <gd name="ib" fmla="+- vc idy 0" />
10082 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10083 + <ahPolar gdRefR="adj" minR="0" maxR="50000">
10084 + <pos x="dr" y="vc" />
10088 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10090 + <pos x="hc" y="t" />
10093 + <pos x="il" y="it" />
10096 + <pos x="l" y="vc" />
10099 + <pos x="il" y="ib" />
10102 + <pos x="hc" y="b" />
10105 + <pos x="ir" y="ib" />
10108 + <pos x="r" y="vc" />
10111 + <pos x="ir" y="it" />
10115 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
10117 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10120 + <pt x="l" y="vc" />
10122 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
10123 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
10124 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
10125 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
10128 + <pt x="dr" y="vc" />
10130 + <arcTo wR="iwd2" hR="ihd2" stAng="cd2" swAng="-5400000" />
10131 + <arcTo wR="iwd2" hR="ihd2" stAng="cd4" swAng="-5400000" />
10132 + <arcTo wR="iwd2" hR="ihd2" stAng="0" swAng="-5400000" />
10133 + <arcTo wR="iwd2" hR="ihd2" stAng="3cd4" swAng="-5400000" />
10141 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10142 + <gd name="adj1" fmla="val 6250" />
10144 + <gd name="adj2" fmla="val 0" />
10148 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10149 + <gd name="a1" fmla="pin 0 adj1 12500" />
10150 + <gd name="a2" fmla="pin -10000 adj2 10000" />
10151 + <gd name="y1" fmla="*/ h a1 100000" />
10153 + <gd name="dy2" fmla="*/ y1 10 3" />
10154 + <gd name="y2" fmla="+- y1 0 dy2" />
10156 + <gd name="y3" fmla="+- y1 dy2 0" />
10158 + <gd name="y4" fmla="+- b 0 y1" />
10160 + <gd name="y5" fmla="+- y4 0 dy2" />
10162 + <gd name="y6" fmla="+- y4 dy2 0" />
10164 + <gd name="dx1" fmla="*/ w a2 100000" />
10166 + <gd name="of2" fmla="*/ w a2 50000" />
10168 + <gd name="x1" fmla="abs dx1" />
10170 + <gd name="dx2" fmla="?: of2 0 of2" />
10171 + <gd name="x2" fmla="+- l 0 dx2" />
10173 + <gd name="dx8" fmla="?: of2 of2 0" />
10174 + <gd name="x8" fmla="+- r 0 dx8" />
10176 + <gd name="dx3" fmla="+/ dx2 x8 6" />
10177 + <gd name="x3" fmla="+- x2 dx3 0" />
10179 + <gd name="dx4" fmla="+/ dx2 x8 3" />
10180 + <gd name="x4" fmla="+- x2 dx4 0" />
10182 + <gd name="x5" fmla="+/ x2 x8 2" />
10184 + <gd name="x6" fmla="+- x5 dx3 0" />
10186 + <gd name="x7" fmla="+/ x6 x8 2" />
10188 + <gd name="x9" fmla="+- l dx8 0" />
10190 + <gd name="x15" fmla="+- r dx2 0" />
10192 + <gd name="x10" fmla="+- x9 dx3 0" />
10194 + <gd name="x11" fmla="+- x9 dx4 0" />
10196 + <gd name="x12" fmla="+/ x9 x15 2" />
10198 + <gd name="x13" fmla="+- x12 dx3 0" />
10200 + <gd name="x14" fmla="+/ x13 x15 2" />
10202 + <gd name="x16" fmla="+- r 0 x1" />
10204 + <gd name="xAdj" fmla="+- hc dx1 0" />
10205 + <gd name="il" fmla="max x2 x9" />
10206 + <gd name="ir" fmla="min x8 x15" />
10207 + <gd name="it" fmla="*/ h a1 50000" />
10208 + <gd name="ib" fmla="+- b 0 it" />
10211 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10212 + <ahXY gdRefY="adj1" minY="0" maxY="12500">
10213 + <pos x="l" y="y1" />
10215 + <ahXY gdRefX="adj2" minX="-10000" maxX="10000">
10216 + <pos x="xAdj" y="b" />
10220 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10222 + <pos x="x12" y="y1" />
10225 + <pos x="x1" y="vc" />
10228 + <pos x="x5" y="y4" />
10231 + <pos x="x16" y="vc" />
10235 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
10237 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10240 + <pt x="x2" y="y1" />
10243 + <pt x="x3" y="y2" />
10244 + <pt x="x4" y="y3" />
10245 + <pt x="x5" y="y1" />
10248 + <pt x="x6" y="y2" />
10249 + <pt x="x7" y="y3" />
10250 + <pt x="x8" y="y1" />
10253 + <pt x="x15" y="y4" />
10256 + <pt x="x14" y="y6" />
10257 + <pt x="x13" y="y5" />
10258 + <pt x="x12" y="y4" />
10261 + <pt x="x11" y="y6" />
10262 + <pt x="x10" y="y5" />
10263 + <pt x="x9" y="y4" />
10271 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10272 + <gd name="adj1" fmla="val 50000" />
10273 + <gd name="adj2" fmla="val 50000" />
10275 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10276 + <gd name="maxAdj2" fmla="*/ 100000 h ss" />
10277 + <gd name="a1" fmla="pin 0 adj1 100000" />
10278 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
10279 + <gd name="dy1" fmla="*/ ss a2 100000" />
10280 + <gd name="y1" fmla="+- b 0 dy1" />
10281 + <gd name="dx1" fmla="*/ w a1 200000" />
10282 + <gd name="x1" fmla="+- hc 0 dx1" />
10283 + <gd name="x2" fmla="+- hc dx1 0" />
10284 + <gd name="dy2" fmla="*/ x1 dy1 wd2" />
10285 + <gd name="y2" fmla="+- y1 dy2 0" />
10287 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10288 + <ahXY gdRefX="adj1" minX="0" maxX="100000">
10289 + <pos x="x1" y="t" />
10291 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
10292 + <pos x="l" y="y1" />
10295 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10297 + <pos x="hc" y="t" />
10300 + <pos x="l" y="y1" />
10303 + <pos x="hc" y="b" />
10306 + <pos x="r" y="y1" />
10309 + <rect l="x1" t="t" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
10310 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10313 + <pt x="l" y="y1" />
10316 + <pt x="x1" y="y1" />
10319 + <pt x="x1" y="t" />
10322 + <pt x="x2" y="t" />
10325 + <pt x="x2" y="y1" />
10328 + <pt x="r" y="y1" />
10331 + <pt x="hc" y="b" />
10337 + <downArrowCallout>
10339 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10340 + <gd name="adj1" fmla="val 25000" />
10342 + <gd name="adj2" fmla="val 25000" />
10344 + <gd name="adj3" fmla="val 25000" />
10346 + <gd name="adj4" fmla="val 64977" />
10350 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10351 + <gd name="maxAdj2" fmla="*/ 50000 w ss" />
10353 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
10354 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
10356 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
10357 + <gd name="maxAdj3" fmla="*/ 100000 h ss" />
10359 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
10360 + <gd name="q2" fmla="*/ a3 ss h" />
10362 + <gd name="maxAdj4" fmla="+- 100000 0 q2" />
10364 + <gd name="a4" fmla="pin 0 adj4 maxAdj4" />
10365 + <gd name="dx1" fmla="*/ ss a2 100000" />
10367 + <gd name="dx2" fmla="*/ ss a1 200000" />
10369 + <gd name="x1" fmla="+- hc 0 dx1" />
10370 + <gd name="x2" fmla="+- hc 0 dx2" />
10371 + <gd name="x3" fmla="+- hc dx2 0" />
10372 + <gd name="x4" fmla="+- hc dx1 0" />
10373 + <gd name="dy3" fmla="*/ ss a3 100000" />
10375 + <gd name="y3" fmla="+- b 0 dy3" />
10376 + <gd name="y2" fmla="*/ h a4 100000" />
10378 + <gd name="y1" fmla="*/ y2 1 2" />
10381 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10382 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">
10383 + <pos x="x2" y="y3" />
10385 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
10386 + <pos x="x1" y="b" />
10388 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
10389 + <pos x="r" y="y3" />
10391 + <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">
10392 + <pos x="l" y="y2" />
10396 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10398 + <pos x="hc" y="t" />
10401 + <pos x="l" y="y1" />
10404 + <pos x="hc" y="b" />
10407 + <pos x="r" y="y1" />
10411 + <rect l="l" t="t" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
10413 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10416 + <pt x="l" y="t" />
10419 + <pt x="r" y="t" />
10422 + <pt x="r" y="y2" />
10425 + <pt x="x3" y="y2" />
10428 + <pt x="x3" y="y3" />
10431 + <pt x="x4" y="y3" />
10434 + <pt x="hc" y="b" />
10437 + <pt x="x1" y="y3" />
10440 + <pt x="x2" y="y3" />
10443 + <pt x="x2" y="y2" />
10446 + <pt x="l" y="y2" />
10452 + </downArrowCallout>
10454 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10455 + <gd name="idx" fmla="cos wd2 2700000" />
10456 + <gd name="idy" fmla="sin hd2 2700000" />
10457 + <gd name="il" fmla="+- hc 0 idx" />
10458 + <gd name="ir" fmla="+- hc idx 0" />
10459 + <gd name="it" fmla="+- vc 0 idy" />
10460 + <gd name="ib" fmla="+- vc idy 0" />
10462 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10464 + <pos x="hc" y="t" />
10467 + <pos x="il" y="it" />
10470 + <pos x="l" y="vc" />
10473 + <pos x="il" y="ib" />
10476 + <pos x="hc" y="b" />
10479 + <pos x="ir" y="ib" />
10482 + <pos x="r" y="vc" />
10485 + <pos x="ir" y="it" />
10488 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
10489 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10492 + <pt x="l" y="vc" />
10494 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
10495 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
10496 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
10497 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
10504 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10505 + <gd name="adj1" fmla="val 25000" />
10507 + <gd name="adj2" fmla="val 50000" />
10509 + <gd name="adj3" fmla="val 12500" />
10513 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10514 + <gd name="a1" fmla="pin 0 adj1 100000" />
10515 + <gd name="a2" fmla="pin 25000 adj2 75000" />
10516 + <gd name="q10" fmla="+- 100000 0 a1" />
10517 + <gd name="q11" fmla="*/ q10 1 2" />
10518 + <gd name="q12" fmla="+- a1 0 q11" />
10519 + <gd name="minAdj3" fmla="max 0 q12" />
10520 + <gd name="a3" fmla="pin minAdj3 adj3 a1" />
10523 + <gd name="dx2" fmla="*/ w a2 200000" />
10525 + <gd name="x2" fmla="+- hc 0 dx2" />
10527 + <gd name="x3" fmla="+- x2 wd8 0" />
10529 + <gd name="x4" fmla="+- r 0 x3" />
10531 + <gd name="x5" fmla="+- r 0 x2" />
10533 + <gd name="x6" fmla="+- r 0 wd8" />
10535 + <gd name="dy1" fmla="*/ h a3 100000" />
10537 + <gd name="f1" fmla="*/ 4 dy1 w" />
10539 + <gd name="q1" fmla="*/ x3 x3 w" />
10540 + <gd name="q2" fmla="+- x3 0 q1" />
10541 + <gd name="y1" fmla="*/ f1 q2 1" />
10543 + <gd name="cx1" fmla="*/ x3 1 2" />
10545 + <gd name="cy1" fmla="*/ f1 cx1 1" />
10547 + <gd name="cx2" fmla="+- r 0 cx1" />
10551 + <gd name="q1" fmla="*/ h a1 100000" />
10553 + <gd name="dy3" fmla="+- q1 0 dy1" />
10555 + <gd name="q3" fmla="*/ x2 x2 w" />
10556 + <gd name="q4" fmla="+- x2 0 q3" />
10557 + <gd name="q5" fmla="*/ f1 q4 1" />
10558 + <gd name="y3" fmla="+- q5 dy3 0" />
10562 + <gd name="q6" fmla="+- dy1 dy3 y3" />
10563 + <gd name="q7" fmla="+- q6 dy1 0" />
10564 + <gd name="cy3" fmla="+- q7 dy3 0" />
10566 + <gd name="rh" fmla="+- b 0 q1" />
10568 + <gd name="q8" fmla="*/ dy1 14 16" />
10569 + <gd name="y2" fmla="+/ q8 rh 2" />
10572 + <gd name="y5" fmla="+- q5 rh 0" />
10574 + <gd name="y6" fmla="+- y3 rh 0" />
10576 + <gd name="cx4" fmla="*/ x2 1 2" />
10578 + <gd name="q9" fmla="*/ f1 cx4 1" />
10579 + <gd name="cy4" fmla="+- q9 rh 0" />
10581 + <gd name="cx5" fmla="+- r 0 cx4" />
10587 + <gd name="cy6" fmla="+- cy3 rh 0" />
10589 + <gd name="y7" fmla="+- y1 dy3 0" />
10590 + <gd name="cy7" fmla="+- q1 q1 y7" />
10591 + <gd name="y8" fmla="+- b 0 dy1" />
10595 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10596 + <ahXY gdRefY="adj1" minY="0" maxY="100000">
10597 + <pos x="hc" y="q1" />
10599 + <ahXY gdRefX="adj2" minX="25000" maxX="75000">
10600 + <pos x="x2" y="b" />
10602 + <ahXY gdRefY="adj3" minY="minAdj3" maxY="a1">
10603 + <pos x="l" y="y8" />
10607 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10609 + <pos x="hc" y="q1" />
10612 + <pos x="wd8" y="y2" />
10615 + <pos x="hc" y="b" />
10618 + <pos x="x6" y="y2" />
10622 + <rect l="x2" t="q1" r="x5" b="y6" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
10624 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10625 + <path stroke="false" extrusionOk="false">
10628 + <pt x="l" y="t" />
10631 + <pt x="cx1" y="cy1" />
10632 + <pt x="x3" y="y1" />
10635 + <pt x="x2" y="y3" />
10638 + <pt x="hc" y="cy3" />
10639 + <pt x="x5" y="y3" />
10642 + <pt x="x4" y="y1" />
10645 + <pt x="cx2" y="cy1" />
10646 + <pt x="r" y="t" />
10649 + <pt x="x6" y="y2" />
10652 + <pt x="r" y="rh" />
10655 + <pt x="cx5" y="cy4" />
10656 + <pt x="x5" y="y5" />
10659 + <pt x="x5" y="y6" />
10662 + <pt x="hc" y="cy6" />
10663 + <pt x="x2" y="y6" />
10666 + <pt x="x2" y="y5" />
10669 + <pt x="cx4" y="cy4" />
10670 + <pt x="l" y="rh" />
10673 + <pt x="wd8" y="y2" />
10677 + <path fill="darkenLess" stroke="false" extrusionOk="false">
10679 + <pt x="x3" y="y7" />
10682 + <pt x="x3" y="y1" />
10685 + <pt x="x2" y="y3" />
10688 + <pt x="hc" y="cy3" />
10689 + <pt x="x5" y="y3" />
10692 + <pt x="x4" y="y1" />
10695 + <pt x="x4" y="y7" />
10698 + <pt x="hc" y="cy7" />
10699 + <pt x="x3" y="y7" />
10703 + <path fill="none" extrusionOk="false">
10706 + <pt x="l" y="t" />
10709 + <pt x="cx1" y="cy1" />
10710 + <pt x="x3" y="y1" />
10713 + <pt x="x2" y="y3" />
10716 + <pt x="hc" y="cy3" />
10717 + <pt x="x5" y="y3" />
10720 + <pt x="x4" y="y1" />
10723 + <pt x="cx2" y="cy1" />
10724 + <pt x="r" y="t" />
10727 + <pt x="x6" y="y2" />
10730 + <pt x="r" y="rh" />
10733 + <pt x="cx5" y="cy4" />
10734 + <pt x="x5" y="y5" />
10737 + <pt x="x5" y="y6" />
10740 + <pt x="hc" y="cy6" />
10741 + <pt x="x2" y="y6" />
10744 + <pt x="x2" y="y5" />
10747 + <pt x="cx4" y="cy4" />
10748 + <pt x="l" y="rh" />
10751 + <pt x="wd8" y="y2" />
10755 + <pt x="x2" y="y5" />
10758 + <pt x="x2" y="y3" />
10761 + <pt x="x5" y="y3" />
10764 + <pt x="x5" y="y5" />
10767 + <pt x="x3" y="y1" />
10770 + <pt x="x3" y="y7" />
10773 + <pt x="x4" y="y7" />
10776 + <pt x="x4" y="y1" />
10784 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10785 + <gd name="adj1" fmla="val 25000" />
10787 + <gd name="adj2" fmla="val 50000" />
10789 + <gd name="adj3" fmla="val 12500" />
10793 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10796 + <gd name="a1" fmla="pin 0 adj1 100000" />
10797 + <gd name="a2" fmla="pin 25000 adj2 75000" />
10798 + <gd name="q10" fmla="+- 100000 0 a1" />
10799 + <gd name="q11" fmla="*/ q10 1 2" />
10800 + <gd name="q12" fmla="+- a1 0 q11" />
10801 + <gd name="minAdj3" fmla="max 0 q12" />
10802 + <gd name="a3" fmla="pin minAdj3 adj3 a1" />
10803 + <gd name="dx2" fmla="*/ w a2 200000" />
10805 + <gd name="x2" fmla="+- hc 0 dx2" />
10807 + <gd name="x3" fmla="+- x2 wd8 0" />
10809 + <gd name="x4" fmla="+- r 0 x3" />
10811 + <gd name="x5" fmla="+- r 0 x2" />
10813 + <gd name="x6" fmla="+- r 0 wd8" />
10815 + <gd name="dy1" fmla="*/ h a3 100000" />
10817 + <gd name="f1" fmla="*/ 4 dy1 w" />
10819 + <gd name="q1" fmla="*/ x3 x3 w" />
10820 + <gd name="q2" fmla="+- x3 0 q1" />
10821 + <gd name="u1" fmla="*/ f1 q2 1" />
10823 + <gd name="y1" fmla="+- b 0 u1" />
10824 + <gd name="cx1" fmla="*/ x3 1 2" />
10826 + <gd name="cu1" fmla="*/ f1 cx1 1" />
10828 + <gd name="cy1" fmla="+- b 0 cu1" />
10829 + <gd name="cx2" fmla="+- r 0 cx1" />
10833 + <gd name="q1" fmla="*/ h a1 100000" />
10835 + <gd name="dy3" fmla="+- q1 0 dy1" />
10837 + <gd name="q3" fmla="*/ x2 x2 w" />
10838 + <gd name="q4" fmla="+- x2 0 q3" />
10839 + <gd name="q5" fmla="*/ f1 q4 1" />
10840 + <gd name="u3" fmla="+- q5 dy3 0" />
10842 + <gd name="y3" fmla="+- b 0 u3" />
10845 + <gd name="q6" fmla="+- dy1 dy3 u3" />
10846 + <gd name="q7" fmla="+- q6 dy1 0" />
10847 + <gd name="cu3" fmla="+- q7 dy3 0" />
10849 + <gd name="cy3" fmla="+- b 0 cu3" />
10850 + <gd name="rh" fmla="+- b 0 q1" />
10852 + <gd name="q8" fmla="*/ dy1 14 16" />
10853 + <gd name="u2" fmla="+/ q8 rh 2" />
10855 + <gd name="y2" fmla="+- b 0 u2" />
10857 + <gd name="u5" fmla="+- q5 rh 0" />
10859 + <gd name="y5" fmla="+- b 0 u5" />
10860 + <gd name="u6" fmla="+- u3 rh 0" />
10862 + <gd name="y6" fmla="+- b 0 u6" />
10863 + <gd name="cx4" fmla="*/ x2 1 2" />
10865 + <gd name="q9" fmla="*/ f1 cx4 1" />
10866 + <gd name="cu4" fmla="+- q9 rh 0" />
10868 + <gd name="cy4" fmla="+- b 0 cu4" />
10869 + <gd name="cx5" fmla="+- r 0 cx4" />
10875 + <gd name="cu6" fmla="+- cu3 rh 0" />
10877 + <gd name="cy6" fmla="+- b 0 cu6" />
10878 + <gd name="u7" fmla="+- u1 dy3 0" />
10879 + <gd name="y7" fmla="+- b 0 u7" />
10880 + <gd name="cu7" fmla="+- q1 q1 u7" />
10881 + <gd name="cy7" fmla="+- b 0 cu7" />
10885 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10886 + <ahXY gdRefY="adj1" minY="0" maxY="100000">
10887 + <pos x="hc" y="rh" />
10889 + <ahXY gdRefX="adj2" minX="25000" maxX="100000">
10890 + <pos x="x2" y="t" />
10892 + <ahXY gdRefY="adj3" minY="minAdj3" maxY="a1">
10893 + <pos x="l" y="dy1" />
10897 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10899 + <pos x="hc" y="t" />
10902 + <pos x="wd8" y="y2" />
10905 + <pos x="hc" y="rh" />
10908 + <pos x="x6" y="y2" />
10912 + <rect l="x2" t="y6" r="x5" b="rh" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
10914 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
10915 + <path stroke="false" extrusionOk="false">
10918 + <pt x="l" y="b" />
10921 + <pt x="cx1" y="cy1" />
10922 + <pt x="x3" y="y1" />
10925 + <pt x="x2" y="y3" />
10928 + <pt x="hc" y="cy3" />
10929 + <pt x="x5" y="y3" />
10932 + <pt x="x4" y="y1" />
10935 + <pt x="cx2" y="cy1" />
10936 + <pt x="r" y="b" />
10939 + <pt x="x6" y="y2" />
10942 + <pt x="r" y="q1" />
10945 + <pt x="cx5" y="cy4" />
10946 + <pt x="x5" y="y5" />
10949 + <pt x="x5" y="y6" />
10952 + <pt x="hc" y="cy6" />
10953 + <pt x="x2" y="y6" />
10956 + <pt x="x2" y="y5" />
10959 + <pt x="cx4" y="cy4" />
10960 + <pt x="l" y="q1" />
10963 + <pt x="wd8" y="y2" />
10967 + <path fill="darkenLess" stroke="false" extrusionOk="false">
10969 + <pt x="x3" y="y7" />
10972 + <pt x="x3" y="y1" />
10975 + <pt x="x2" y="y3" />
10978 + <pt x="hc" y="cy3" />
10979 + <pt x="x5" y="y3" />
10982 + <pt x="x4" y="y1" />
10985 + <pt x="x4" y="y7" />
10988 + <pt x="hc" y="cy7" />
10989 + <pt x="x3" y="y7" />
10993 + <path fill="none" extrusionOk="false">
10996 + <pt x="l" y="b" />
10999 + <pt x="wd8" y="y2" />
11002 + <pt x="l" y="q1" />
11005 + <pt x="cx4" y="cy4" />
11006 + <pt x="x2" y="y5" />
11009 + <pt x="x2" y="y6" />
11012 + <pt x="hc" y="cy6" />
11013 + <pt x="x5" y="y6" />
11016 + <pt x="x5" y="y5" />
11019 + <pt x="cx5" y="cy4" />
11020 + <pt x="r" y="q1" />
11023 + <pt x="x6" y="y2" />
11026 + <pt x="r" y="b" />
11029 + <pt x="cx2" y="cy1" />
11030 + <pt x="x4" y="y1" />
11033 + <pt x="x5" y="y3" />
11036 + <pt x="hc" y="cy3" />
11037 + <pt x="x2" y="y3" />
11040 + <pt x="x3" y="y1" />
11043 + <pt x="cx1" y="cy1" />
11044 + <pt x="l" y="b" />
11048 + <pt x="x2" y="y3" />
11051 + <pt x="x2" y="y5" />
11054 + <pt x="x5" y="y5" />
11057 + <pt x="x5" y="y3" />
11060 + <pt x="x3" y="y7" />
11063 + <pt x="x3" y="y1" />
11066 + <pt x="x4" y="y1" />
11069 + <pt x="x4" y="y7" />
11074 + </ellipseRibbon2>
11075 + <flowChartAlternateProcess>
11077 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11078 + <gd name="x2" fmla="+- r 0 ssd6" />
11079 + <gd name="y2" fmla="+- b 0 ssd6" />
11080 + <gd name="il" fmla="*/ ssd6 29289 100000" />
11083 + <gd name="ir" fmla="+- r 0 il" />
11084 + <gd name="ib" fmla="+- b 0 il" />
11087 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11089 + <pos x="hc" y="t" />
11092 + <pos x="l" y="vc" />
11095 + <pos x="hc" y="b" />
11098 + <pos x="r" y="vc" />
11102 + <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11104 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11107 + <pt x="l" y="ssd6" />
11109 + <arcTo wR="ssd6" hR="ssd6" stAng="cd2" swAng="cd4" />
11111 + <pt x="x2" y="t" />
11113 + <arcTo wR="ssd6" hR="ssd6" stAng="3cd4" swAng="cd4" />
11115 + <pt x="r" y="y2" />
11117 + <arcTo wR="ssd6" hR="ssd6" stAng="0" swAng="cd4" />
11119 + <pt x="ssd6" y="b" />
11121 + <arcTo wR="ssd6" hR="ssd6" stAng="cd4" swAng="cd4" />
11126 + </flowChartAlternateProcess>
11127 + <flowChartCollate>
11129 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11130 + <gd name="ir" fmla="*/ w 3 4" />
11131 + <gd name="ib" fmla="*/ h 3 4" />
11134 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11136 + <pos x="hc" y="t" />
11139 + <pos x="hc" y="vc" />
11142 + <pos x="hc" y="b" />
11146 + <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11148 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11149 + <path w="2" h="2">
11151 + <pt x="0" y="0" />
11154 + <pt x="2" y="0" />
11157 + <pt x="1" y="1" />
11160 + <pt x="2" y="2" />
11163 + <pt x="0" y="2" />
11166 + <pt x="1" y="1" />
11172 + </flowChartCollate>
11173 + <flowChartConnector>
11175 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11176 + <gd name="idx" fmla="cos wd2 2700000" />
11177 + <gd name="idy" fmla="sin hd2 2700000" />
11178 + <gd name="il" fmla="+- hc 0 idx" />
11179 + <gd name="ir" fmla="+- hc idx 0" />
11180 + <gd name="it" fmla="+- vc 0 idy" />
11181 + <gd name="ib" fmla="+- vc idy 0" />
11184 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11186 + <pos x="hc" y="t" />
11189 + <pos x="il" y="it" />
11192 + <pos x="l" y="vc" />
11195 + <pos x="il" y="ib" />
11198 + <pos x="hc" y="b" />
11201 + <pos x="ir" y="ib" />
11204 + <pos x="r" y="vc" />
11207 + <pos x="ir" y="it" />
11211 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11213 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11216 + <pt x="l" y="vc" />
11218 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
11219 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
11220 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
11221 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
11226 + </flowChartConnector>
11227 + <flowChartDecision>
11229 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11230 + <gd name="ir" fmla="*/ w 3 4" />
11231 + <gd name="ib" fmla="*/ h 3 4" />
11234 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11236 + <pos x="hc" y="t" />
11239 + <pos x="l" y="vc" />
11242 + <pos x="hc" y="b" />
11245 + <pos x="r" y="vc" />
11249 + <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11251 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11252 + <path w="2" h="2">
11254 + <pt x="0" y="1" />
11257 + <pt x="1" y="0" />
11260 + <pt x="2" y="1" />
11263 + <pt x="1" y="2" />
11269 + </flowChartDecision>
11272 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11273 + <gd name="idx" fmla="cos wd2 2700000" />
11274 + <gd name="idy" fmla="sin hd2 2700000" />
11275 + <gd name="ir" fmla="+- hc idx 0" />
11276 + <gd name="it" fmla="+- vc 0 idy" />
11277 + <gd name="ib" fmla="+- vc idy 0" />
11280 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11282 + <pos x="hc" y="t" />
11285 + <pos x="l" y="vc" />
11288 + <pos x="hc" y="b" />
11291 + <pos x="r" y="vc" />
11295 + <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11297 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11300 + <pt x="l" y="t" />
11303 + <pt x="hc" y="t" />
11305 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd2" />
11307 + <pt x="l" y="b" />
11313 + </flowChartDelay>
11314 + <flowChartDisplay>
11316 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11317 + <gd name="x2" fmla="*/ w 5 6" />
11320 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11322 + <pos x="hc" y="t" />
11325 + <pos x="l" y="vc" />
11328 + <pos x="hc" y="b" />
11331 + <pos x="r" y="vc" />
11335 + <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11337 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11338 + <path w="6" h="6">
11340 + <pt x="0" y="3" />
11343 + <pt x="1" y="0" />
11346 + <pt x="5" y="0" />
11348 + <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />
11350 + <pt x="1" y="6" />
11356 + </flowChartDisplay>
11357 + <flowChartDocument>
11359 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11360 + <gd name="y1" fmla="*/ h 17322 21600" />
11361 + <gd name="y2" fmla="*/ h 20172 21600" />
11364 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11366 + <pos x="hc" y="t" />
11369 + <pos x="l" y="vc" />
11372 + <pos x="hc" y="y2" />
11375 + <pos x="r" y="vc" />
11379 + <rect l="l" t="t" r="r" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11381 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11382 + <path w="21600" h="21600">
11384 + <pt x="0" y="0" />
11387 + <pt x="21600" y="0" />
11390 + <pt x="21600" y="17322" />
11393 + <pt x="10800" y="17322" />
11394 + <pt x="10800" y="23922" />
11395 + <pt x="0" y="20172" />
11401 + </flowChartDocument>
11402 + <flowChartExtract>
11404 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11405 + <gd name="x2" fmla="*/ w 3 4" />
11407 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11409 + <pos x="hc" y="t" />
11412 + <pos x="wd4" y="vc" />
11415 + <pos x="hc" y="b" />
11418 + <pos x="x2" y="vc" />
11422 + <rect l="wd4" t="vc" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11424 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11425 + <path w="2" h="2">
11427 + <pt x="0" y="2" />
11430 + <pt x="1" y="0" />
11433 + <pt x="2" y="2" />
11439 + </flowChartExtract>
11440 + <flowChartInputOutput>
11442 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11443 + <gd name="x3" fmla="*/ w 2 5" />
11444 + <gd name="x4" fmla="*/ w 3 5" />
11445 + <gd name="x5" fmla="*/ w 4 5" />
11446 + <gd name="x6" fmla="*/ w 9 10" />
11449 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11451 + <pos x="x4" y="t" />
11454 + <pos x="hc" y="t" />
11457 + <pos x="wd10" y="vc" />
11460 + <pos x="x3" y="b" />
11463 + <pos x="hc" y="b" />
11466 + <pos x="x6" y="vc" />
11470 + <rect l="wd5" t="t" r="x5" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11472 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11473 + <path w="5" h="5">
11475 + <pt x="0" y="5" />
11478 + <pt x="1" y="0" />
11481 + <pt x="5" y="0" />
11484 + <pt x="4" y="5" />
11490 + </flowChartInputOutput>
11491 + <flowChartInternalStorage>
11493 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11495 + <pos x="hc" y="t" />
11498 + <pos x="l" y="vc" />
11501 + <pos x="hc" y="b" />
11504 + <pos x="r" y="vc" />
11508 + <rect l="wd8" t="hd8" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11510 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11511 + <path stroke="false" extrusionOk="false" w="1" h="1">
11514 + <pt x="0" y="0" />
11517 + <pt x="1" y="0" />
11520 + <pt x="1" y="1" />
11523 + <pt x="0" y="1" />
11527 + <path fill="none" extrusionOk="false" w="8" h="8">
11530 + <pt x="1" y="0" />
11533 + <pt x="1" y="8" />
11536 + <pt x="0" y="1" />
11539 + <pt x="8" y="1" />
11542 + <path fill="none" w="1" h="1">
11545 + <pt x="0" y="0" />
11548 + <pt x="1" y="0" />
11551 + <pt x="1" y="1" />
11554 + <pt x="0" y="1" />
11560 + </flowChartInternalStorage>
11561 + <flowChartMagneticDisk>
11563 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11564 + <gd name="y3" fmla="*/ h 5 6" />
11567 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11569 + <pos x="hc" y="hd3" />
11572 + <pos x="hc" y="t" />
11575 + <pos x="l" y="vc" />
11578 + <pos x="hc" y="b" />
11581 + <pos x="r" y="vc" />
11585 + <rect l="l" t="hd3" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11587 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11588 + <path stroke="false" extrusionOk="false" w="6" h="6">
11591 + <pt x="0" y="1" />
11593 + <arcTo wR="3" hR="1" stAng="cd2" swAng="cd2" />
11595 + <pt x="6" y="5" />
11597 + <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />
11600 + <path fill="none" extrusionOk="false" w="6" h="6">
11603 + <pt x="6" y="1" />
11605 + <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />
11607 + <path fill="none" w="6" h="6">
11610 + <pt x="0" y="1" />
11612 + <arcTo wR="3" hR="1" stAng="cd2" swAng="cd2" />
11614 + <pt x="6" y="5" />
11616 + <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />
11621 + </flowChartMagneticDisk>
11622 + <flowChartMagneticDrum>
11624 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11625 + <gd name="x2" fmla="*/ w 2 3" />
11628 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11630 + <pos x="hc" y="t" />
11633 + <pos x="l" y="vc" />
11636 + <pos x="hc" y="b" />
11639 + <pos x="x2" y="vc" />
11642 + <pos x="r" y="vc" />
11646 + <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11648 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11649 + <path stroke="false" extrusionOk="false" w="6" h="6">
11652 + <pt x="1" y="0" />
11655 + <pt x="5" y="0" />
11657 + <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />
11659 + <pt x="1" y="6" />
11661 + <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />
11664 + <path fill="none" extrusionOk="false" w="6" h="6">
11667 + <pt x="5" y="6" />
11669 + <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />
11671 + <path fill="none" w="6" h="6">
11674 + <pt x="1" y="0" />
11677 + <pt x="5" y="0" />
11679 + <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />
11681 + <pt x="1" y="6" />
11683 + <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />
11688 + </flowChartMagneticDrum>
11689 + <flowChartMagneticTape>
11691 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11692 + <gd name="idx" fmla="cos wd2 2700000" />
11693 + <gd name="idy" fmla="sin hd2 2700000" />
11694 + <gd name="il" fmla="+- hc 0 idx" />
11695 + <gd name="ir" fmla="+- hc idx 0" />
11696 + <gd name="it" fmla="+- vc 0 idy" />
11697 + <gd name="ib" fmla="+- vc idy 0" />
11698 + <gd name="ang1" fmla="at2 w h" />
11701 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11703 + <pos x="hc" y="t" />
11706 + <pos x="l" y="vc" />
11709 + <pos x="hc" y="b" />
11712 + <pos x="r" y="vc" />
11716 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11718 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11721 + <pt x="hc" y="b" />
11723 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
11724 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
11725 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
11726 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="ang1" />
11728 + <pt x="r" y="ib" />
11731 + <pt x="r" y="b" />
11737 + </flowChartMagneticTape>
11738 + <flowChartManualInput>
11740 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11742 + <pos x="hc" y="hd10" />
11745 + <pos x="l" y="vc" />
11748 + <pos x="hc" y="b" />
11751 + <pos x="r" y="vc" />
11755 + <rect l="l" t="hd5" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11757 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11758 + <path w="5" h="5">
11760 + <pt x="0" y="1" />
11763 + <pt x="5" y="0" />
11766 + <pt x="5" y="5" />
11769 + <pt x="0" y="5" />
11775 + </flowChartManualInput>
11776 + <flowChartManualOperation>
11778 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11779 + <gd name="x3" fmla="*/ w 4 5" />
11780 + <gd name="x4" fmla="*/ w 9 10" />
11783 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11785 + <pos x="hc" y="t" />
11788 + <pos x="wd10" y="vc" />
11791 + <pos x="hc" y="b" />
11794 + <pos x="x4" y="vc" />
11798 + <rect l="wd5" t="t" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11800 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11801 + <path w="5" h="5">
11803 + <pt x="0" y="0" />
11806 + <pt x="5" y="0" />
11809 + <pt x="4" y="5" />
11812 + <pt x="1" y="5" />
11818 + </flowChartManualOperation>
11821 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11822 + <gd name="x2" fmla="*/ w 3 4" />
11825 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11827 + <pos x="hc" y="t" />
11830 + <pos x="wd4" y="vc" />
11833 + <pos x="hc" y="b" />
11836 + <pos x="x2" y="vc" />
11840 + <rect l="wd4" t="t" r="x2" b="vc" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11842 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11843 + <path w="2" h="2">
11845 + <pt x="0" y="0" />
11848 + <pt x="2" y="0" />
11851 + <pt x="1" y="2" />
11857 + </flowChartMerge>
11858 + <flowChartMultidocument>
11860 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11861 + <gd name="y2" fmla="*/ h 3675 21600" />
11862 + <gd name="y8" fmla="*/ h 20782 21600" />
11863 + <gd name="x3" fmla="*/ w 9298 21600" />
11864 + <gd name="x4" fmla="*/ w 12286 21600" />
11865 + <gd name="x5" fmla="*/ w 18595 21600" />
11868 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11870 + <pos x="x4" y="t" />
11873 + <pos x="l" y="vc" />
11876 + <pos x="x3" y="y8" />
11879 + <pos x="r" y="vc" />
11883 + <rect l="l" t="y2" r="x5" b="y8" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
11885 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
11886 + <path stroke="false" extrusionOk="false" w="21600" h="21600">
11889 + <pt x="0" y="20782" />
11892 + <pt x="9298" y="23542" />
11893 + <pt x="9298" y="18022" />
11894 + <pt x="18595" y="18022" />
11897 + <pt x="18595" y="3675" />
11900 + <pt x="0" y="3675" />
11904 + <pt x="1532" y="3675" />
11907 + <pt x="1532" y="1815" />
11910 + <pt x="20000" y="1815" />
11913 + <pt x="20000" y="16252" />
11916 + <pt x="19298" y="16252" />
11917 + <pt x="18595" y="16352" />
11918 + <pt x="18595" y="16352" />
11921 + <pt x="18595" y="3675" />
11925 + <pt x="2972" y="1815" />
11928 + <pt x="2972" y="0" />
11931 + <pt x="21600" y="0" />
11934 + <pt x="21600" y="14392" />
11937 + <pt x="20800" y="14392" />
11938 + <pt x="20000" y="14467" />
11939 + <pt x="20000" y="14467" />
11942 + <pt x="20000" y="1815" />
11946 + <path fill="none" extrusionOk="false" w="21600" h="21600">
11949 + <pt x="0" y="3675" />
11952 + <pt x="18595" y="3675" />
11955 + <pt x="18595" y="18022" />
11958 + <pt x="9298" y="18022" />
11959 + <pt x="9298" y="23542" />
11960 + <pt x="0" y="20782" />
11964 + <pt x="1532" y="3675" />
11967 + <pt x="1532" y="1815" />
11970 + <pt x="20000" y="1815" />
11973 + <pt x="20000" y="16252" />
11976 + <pt x="19298" y="16252" />
11977 + <pt x="18595" y="16352" />
11978 + <pt x="18595" y="16352" />
11981 + <pt x="2972" y="1815" />
11984 + <pt x="2972" y="0" />
11987 + <pt x="21600" y="0" />
11990 + <pt x="21600" y="14392" />
11993 + <pt x="20800" y="14392" />
11994 + <pt x="20000" y="14467" />
11995 + <pt x="20000" y="14467" />
11998 + <path stroke="false" fill="none" w="21600" h="21600">
12001 + <pt x="0" y="20782" />
12004 + <pt x="9298" y="23542" />
12005 + <pt x="9298" y="18022" />
12006 + <pt x="18595" y="18022" />
12009 + <pt x="18595" y="16352" />
12012 + <pt x="18595" y="16352" />
12013 + <pt x="19298" y="16252" />
12014 + <pt x="20000" y="16252" />
12017 + <pt x="20000" y="14467" />
12020 + <pt x="20000" y="14467" />
12021 + <pt x="20800" y="14392" />
12022 + <pt x="21600" y="14392" />
12025 + <pt x="21600" y="0" />
12028 + <pt x="2972" y="0" />
12031 + <pt x="2972" y="1815" />
12034 + <pt x="1532" y="1815" />
12037 + <pt x="1532" y="3675" />
12040 + <pt x="0" y="3675" />
12046 + </flowChartMultidocument>
12047 + <flowChartOfflineStorage>
12049 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12050 + <gd name="x4" fmla="*/ w 3 4" />
12053 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12055 + <pos x="x4" y="vc" />
12058 + <pos x="hc" y="b" />
12061 + <pos x="wd4" y="vc" />
12064 + <pos x="hc" y="t" />
12068 + <rect l="wd4" t="t" r="x4" b="vc" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12070 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12071 + <path stroke="false" extrusionOk="false" w="2" h="2">
12074 + <pt x="0" y="0" />
12077 + <pt x="2" y="0" />
12080 + <pt x="1" y="2" />
12084 + <path fill="none" extrusionOk="false" w="5" h="5">
12087 + <pt x="2" y="4" />
12090 + <pt x="3" y="4" />
12093 + <path fill="none" extrusionOk="true" w="2" h="2">
12096 + <pt x="0" y="0" />
12099 + <pt x="2" y="0" />
12102 + <pt x="1" y="2" />
12108 + </flowChartOfflineStorage>
12109 + <flowChartOffpageConnector>
12111 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12112 + <gd name="y1" fmla="*/ h 4 5" />
12115 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12117 + <pos x="hc" y="t" />
12120 + <pos x="l" y="vc" />
12123 + <pos x="hc" y="b" />
12126 + <pos x="r" y="vc" />
12130 + <rect l="l" t="t" r="r" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12132 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12133 + <path w="10" h="10">
12135 + <pt x="0" y="0" />
12138 + <pt x="10" y="0" />
12141 + <pt x="10" y="8" />
12144 + <pt x="5" y="10" />
12147 + <pt x="0" y="8" />
12153 + </flowChartOffpageConnector>
12154 + <flowChartOnlineStorage>
12156 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12157 + <gd name="x2" fmla="*/ w 5 6" />
12160 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12162 + <pos x="hc" y="t" />
12165 + <pos x="l" y="vc" />
12168 + <pos x="hc" y="b" />
12171 + <pos x="x2" y="vc" />
12175 + <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12177 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12178 + <path w="6" h="6">
12180 + <pt x="1" y="0" />
12183 + <pt x="6" y="0" />
12185 + <arcTo wR="1" hR="3" stAng="3cd4" swAng="-10800000" />
12187 + <pt x="1" y="6" />
12189 + <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />
12194 + </flowChartOnlineStorage>
12197 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12198 + <gd name="idx" fmla="cos wd2 2700000" />
12199 + <gd name="idy" fmla="sin hd2 2700000" />
12200 + <gd name="il" fmla="+- hc 0 idx" />
12201 + <gd name="ir" fmla="+- hc idx 0" />
12202 + <gd name="it" fmla="+- vc 0 idy" />
12203 + <gd name="ib" fmla="+- vc idy 0" />
12206 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12208 + <pos x="hc" y="t" />
12211 + <pos x="il" y="it" />
12214 + <pos x="l" y="vc" />
12217 + <pos x="il" y="ib" />
12220 + <pos x="hc" y="b" />
12223 + <pos x="ir" y="ib" />
12226 + <pos x="r" y="vc" />
12229 + <pos x="ir" y="it" />
12233 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12235 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12236 + <path stroke="false" extrusionOk="false">
12239 + <pt x="l" y="vc" />
12241 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
12242 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
12243 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
12244 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
12247 + <path fill="none" extrusionOk="false">
12250 + <pt x="hc" y="t" />
12253 + <pt x="hc" y="b" />
12256 + <pt x="l" y="vc" />
12259 + <pt x="r" y="vc" />
12262 + <path fill="none">
12265 + <pt x="l" y="vc" />
12267 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
12268 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
12269 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
12270 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
12276 + <flowChartPredefinedProcess>
12278 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12279 + <gd name="x2" fmla="*/ w 7 8" />
12282 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12284 + <pos x="hc" y="t" />
12287 + <pos x="l" y="vc" />
12290 + <pos x="hc" y="b" />
12293 + <pos x="r" y="vc" />
12297 + <rect l="wd8" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12299 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12300 + <path stroke="false" extrusionOk="false" w="1" h="1">
12303 + <pt x="0" y="0" />
12306 + <pt x="1" y="0" />
12309 + <pt x="1" y="1" />
12312 + <pt x="0" y="1" />
12316 + <path fill="none" extrusionOk="false" w="8" h="8">
12319 + <pt x="1" y="0" />
12322 + <pt x="1" y="8" />
12325 + <pt x="7" y="0" />
12328 + <pt x="7" y="8" />
12331 + <path fill="none" w="1" h="1">
12334 + <pt x="0" y="0" />
12337 + <pt x="1" y="0" />
12340 + <pt x="1" y="1" />
12343 + <pt x="0" y="1" />
12349 + </flowChartPredefinedProcess>
12350 + <flowChartPreparation>
12352 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12353 + <gd name="x2" fmla="*/ w 4 5" />
12356 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12358 + <pos x="hc" y="t" />
12361 + <pos x="l" y="vc" />
12364 + <pos x="hc" y="b" />
12367 + <pos x="r" y="vc" />
12371 + <rect l="wd5" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12373 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12374 + <path w="10" h="10">
12376 + <pt x="0" y="5" />
12379 + <pt x="2" y="0" />
12382 + <pt x="8" y="0" />
12385 + <pt x="10" y="5" />
12388 + <pt x="8" y="10" />
12391 + <pt x="2" y="10" />
12397 + </flowChartPreparation>
12398 + <flowChartProcess>
12400 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12402 + <pos x="hc" y="t" />
12405 + <pos x="l" y="vc" />
12408 + <pos x="hc" y="b" />
12411 + <pos x="r" y="vc" />
12415 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12417 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12418 + <path w="1" h="1">
12420 + <pt x="0" y="0" />
12423 + <pt x="1" y="0" />
12426 + <pt x="1" y="1" />
12429 + <pt x="0" y="1" />
12435 + </flowChartProcess>
12436 + <flowChartPunchedCard>
12438 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12440 + <pos x="hc" y="t" />
12443 + <pos x="l" y="vc" />
12446 + <pos x="hc" y="b" />
12449 + <pos x="r" y="vc" />
12453 + <rect l="l" t="hd5" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12455 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12456 + <path w="5" h="5">
12458 + <pt x="0" y="1" />
12461 + <pt x="1" y="0" />
12464 + <pt x="5" y="0" />
12467 + <pt x="5" y="5" />
12470 + <pt x="0" y="5" />
12476 + </flowChartPunchedCard>
12477 + <flowChartPunchedTape>
12479 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12480 + <gd name="y2" fmla="*/ h 9 10" />
12481 + <gd name="ib" fmla="*/ h 4 5" />
12484 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12486 + <pos x="hc" y="hd10" />
12489 + <pos x="l" y="vc" />
12492 + <pos x="hc" y="y2" />
12495 + <pos x="r" y="vc" />
12499 + <rect l="l" t="hd5" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12501 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12502 + <path w="20" h="20">
12504 + <pt x="0" y="2" />
12506 + <arcTo wR="5" hR="2" stAng="cd2" swAng="-10800000" />
12507 + <arcTo wR="5" hR="2" stAng="cd2" swAng="cd2" />
12509 + <pt x="20" y="18" />
12511 + <arcTo wR="5" hR="2" stAng="0" swAng="-10800000" />
12512 + <arcTo wR="5" hR="2" stAng="0" swAng="cd2" />
12517 + </flowChartPunchedTape>
12520 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12521 + <gd name="ir" fmla="*/ w 3 4" />
12522 + <gd name="ib" fmla="*/ h 3 4" />
12525 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12527 + <pos x="hc" y="t" />
12530 + <pos x="l" y="vc" />
12533 + <pos x="hc" y="b" />
12536 + <pos x="r" y="vc" />
12540 + <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12542 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12543 + <path stroke="false" extrusionOk="false" w="2" h="2">
12546 + <pt x="0" y="1" />
12549 + <pt x="1" y="0" />
12552 + <pt x="2" y="1" />
12555 + <pt x="1" y="2" />
12559 + <path fill="none" extrusionOk="false" w="2" h="2">
12562 + <pt x="0" y="1" />
12565 + <pt x="2" y="1" />
12568 + <path fill="none" w="2" h="2">
12571 + <pt x="0" y="1" />
12574 + <pt x="1" y="0" />
12577 + <pt x="2" y="1" />
12580 + <pt x="1" y="2" />
12587 + <flowChartSummingJunction>
12589 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12590 + <gd name="idx" fmla="cos wd2 2700000" />
12591 + <gd name="idy" fmla="sin hd2 2700000" />
12592 + <gd name="il" fmla="+- hc 0 idx" />
12593 + <gd name="ir" fmla="+- hc idx 0" />
12594 + <gd name="it" fmla="+- vc 0 idy" />
12595 + <gd name="ib" fmla="+- vc idy 0" />
12598 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12600 + <pos x="hc" y="t" />
12603 + <pos x="il" y="it" />
12606 + <pos x="l" y="vc" />
12609 + <pos x="il" y="ib" />
12612 + <pos x="hc" y="b" />
12615 + <pos x="ir" y="ib" />
12618 + <pos x="r" y="vc" />
12621 + <pos x="ir" y="it" />
12625 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12627 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12628 + <path stroke="false" extrusionOk="false">
12631 + <pt x="l" y="vc" />
12633 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
12634 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
12635 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
12636 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
12639 + <path fill="none" extrusionOk="false">
12642 + <pt x="il" y="it" />
12645 + <pt x="ir" y="ib" />
12648 + <pt x="ir" y="it" />
12651 + <pt x="il" y="ib" />
12654 + <path fill="none">
12657 + <pt x="l" y="vc" />
12659 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
12660 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
12661 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
12662 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
12667 + </flowChartSummingJunction>
12668 + <flowChartTerminator>
12670 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12671 + <gd name="il" fmla="*/ w 1018 21600" />
12672 + <gd name="ir" fmla="*/ w 20582 21600" />
12673 + <gd name="it" fmla="*/ h 3163 21600" />
12674 + <gd name="ib" fmla="*/ h 18437 21600" />
12677 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12679 + <pos x="hc" y="t" />
12682 + <pos x="l" y="vc" />
12685 + <pos x="hc" y="b" />
12688 + <pos x="r" y="vc" />
12692 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12694 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12695 + <path w="21600" h="21600">
12697 + <pt x="3475" y="0" />
12700 + <pt x="18125" y="0" />
12702 + <arcTo wR="3475" hR="10800" stAng="3cd4" swAng="cd2" />
12704 + <pt x="3475" y="21600" />
12706 + <arcTo wR="3475" hR="10800" stAng="cd4" swAng="cd2" />
12711 + </flowChartTerminator>
12714 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12715 + <gd name="adj" fmla="val 16667" />
12718 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12719 + <gd name="a" fmla="pin 0 adj 50000" />
12720 + <gd name="dy2" fmla="*/ ss a 100000" />
12721 + <gd name="dy1" fmla="*/ dy2 1 5" />
12722 + <gd name="x1" fmla="+- r 0 dy2" />
12723 + <gd name="x2" fmla="+- x1 dy1 0" />
12724 + <gd name="y2" fmla="+- b 0 dy2" />
12725 + <gd name="y1" fmla="+- y2 dy1 0" />
12728 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12729 + <ahXY gdRefX="adj" minX="0" maxX="50000">
12730 + <pos x="x1" y="b" />
12734 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12736 + <pos x="hc" y="t" />
12739 + <pos x="l" y="vc" />
12742 + <pos x="hc" y="b" />
12745 + <pos x="r" y="vc" />
12749 + <rect l="l" t="t" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12751 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12752 + <path stroke="false" extrusionOk="false">
12755 + <pt x="l" y="t" />
12758 + <pt x="r" y="t" />
12761 + <pt x="r" y="y2" />
12764 + <pt x="x1" y="b" />
12767 + <pt x="l" y="b" />
12771 + <path stroke="false" fill="darkenLess" extrusionOk="false">
12774 + <pt x="x1" y="b" />
12777 + <pt x="x2" y="y1" />
12780 + <pt x="r" y="y2" />
12784 + <path fill="none" extrusionOk="false">
12786 + <pt x="x1" y="b" />
12789 + <pt x="x2" y="y1" />
12792 + <pt x="r" y="y2" />
12795 + <pt x="x1" y="b" />
12798 + <pt x="l" y="b" />
12801 + <pt x="l" y="t" />
12804 + <pt x="r" y="t" />
12807 + <pt x="r" y="y2" />
12815 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12816 + <gd name="adj1" fmla="val 12500" />
12820 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12821 + <gd name="a1" fmla="pin 0 adj1 50000" />
12822 + <gd name="x1" fmla="*/ ss a1 100000" />
12824 + <gd name="x4" fmla="+- r 0 x1" />
12828 + <gd name="y4" fmla="+- b 0 x1" />
12832 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12833 + <ahXY gdRefX="adj1" minX="0" maxX="50000">
12834 + <pos x="x1" y="t" />
12838 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12840 + <pos x="hc" y="t" />
12843 + <pos x="l" y="vc" />
12846 + <pos x="hc" y="b" />
12849 + <pos x="r" y="vc" />
12853 + <rect l="x1" t="x1" r="x4" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12855 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12859 + <pt x="l" y="t" />
12862 + <pt x="r" y="t" />
12865 + <pt x="r" y="b" />
12868 + <pt x="l" y="b" />
12872 + <pt x="x1" y="x1" />
12875 + <pt x="x1" y="y4" />
12878 + <pt x="x4" y="y4" />
12881 + <pt x="x4" y="x1" />
12890 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12892 + <gd name="d" fmla="*/ ss 1 20" />
12895 + <gd name="rw2" fmla="+- wd2 0 d" />
12897 + <gd name="rh2" fmla="+- hd4 0 d" />
12901 + <gd name="t1" fmla="cos wd2 480000" />
12903 + <gd name="t2" fmla="sin hd4 480000" />
12905 + <gd name="da" fmla="at2 t1 t2" />
12908 + <gd name="2da" fmla="*/ da 2 1" />
12909 + <gd name="stAng1" fmla="+- cd2 0 da" />
12910 + <gd name="swAng1" fmla="+- cd2 2da 0" />
12913 + <gd name="swAng3" fmla="+- cd2 0 2da" />
12916 + <gd name="rw3" fmla="*/ wd2 1 4" />
12917 + <gd name="rh3" fmla="*/ hd4 1 4" />
12920 + <gd name="ct1" fmla="cos hd4 stAng1" />
12921 + <gd name="st1" fmla="sin wd2 stAng1" />
12922 + <gd name="m1" fmla="mod ct1 st1 0" />
12923 + <gd name="n1" fmla="*/ wd2 hd4 m1" />
12924 + <gd name="dx1" fmla="cos n1 stAng1" />
12925 + <gd name="dy1" fmla="sin n1 stAng1" />
12926 + <gd name="x1" fmla="+- hc dx1 0" />
12927 + <gd name="y1" fmla="+- hd4 dy1 0" />
12930 + <gd name="ct3" fmla="cos rh3 da" />
12931 + <gd name="st3" fmla="sin rw3 da" />
12932 + <gd name="m3" fmla="mod ct3 st3 0" />
12933 + <gd name="n3" fmla="*/ rw3 rh3 m3" />
12934 + <gd name="dx3" fmla="cos n3 da" />
12935 + <gd name="dy3" fmla="sin n3 da" />
12936 + <gd name="x3" fmla="+- hc dx3 0" />
12937 + <gd name="vc3" fmla="+- b 0 rh3" />
12938 + <gd name="y2" fmla="+- vc3 dy3 0" />
12941 + <gd name="x2" fmla="+- wd2 0 rw2" />
12943 + <gd name="cd" fmla="*/ cd2 2 1" />
12946 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
12948 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12951 + <pt x="x1" y="y1" />
12953 + <arcTo hR="hd4" wR="wd2" stAng="stAng1" swAng="swAng1" />
12955 + <pt x="x3" y="y2" />
12957 + <arcTo hR="rh3" wR="rw3" stAng="da" swAng="swAng3" />
12960 + <pt x="x2" y="hd4" />
12962 + <arcTo hR="rh2" wR="rw2" stAng="cd2" swAng="-21600000" />
12970 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12971 + <gd name="adj1" fmla="val 15000" />
12973 + <gd name="adj2" fmla="val 3526" />
12977 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
12982 + <gd name="a1" fmla="pin 0 adj1 20000" />
12983 + <gd name="a2" fmla="pin 0 adj2 5358" />
12986 + <gd name="th" fmla="*/ ss a1 100000" />
12987 + <gd name="lFD" fmla="*/ ss a2 100000" />
12989 + <gd name="th2" fmla="*/ th 1 2" />
12990 + <gd name="l2" fmla="*/ lFD 1 2" />
12991 + <gd name="l3" fmla="+- th2 l2 0" />
12994 + <gd name="rh" fmla="+- hd2 0 th" />
12995 + <gd name="rw" fmla="+- wd2 0 th" />
12998 + <gd name="dr" fmla="+- rw 0 rh" />
12999 + <gd name="maxr" fmla="?: dr rh rw" />
13000 + <gd name="ha" fmla="at2 maxr l3" />
13003 + <gd name="aA1" fmla="+- 19800000 0 ha" />
13004 + <gd name="aD1" fmla="+- 19800000 ha 0" />
13007 + <gd name="ta11" fmla="cos rw aA1" />
13008 + <gd name="ta12" fmla="sin rh aA1" />
13009 + <gd name="bA1" fmla="at2 ta11 ta12" />
13011 + <gd name="cta1" fmla="cos rh bA1" />
13012 + <gd name="sta1" fmla="sin rw bA1" />
13013 + <gd name="ma1" fmla="mod cta1 sta1 0" />
13014 + <gd name="na1" fmla="*/ rw rh ma1" />
13015 + <gd name="dxa1" fmla="cos na1 bA1" />
13016 + <gd name="dya1" fmla="sin na1 bA1" />
13017 + <gd name="xA1" fmla="+- hc dxa1 0" />
13018 + <gd name="yA1" fmla="+- vc dya1 0" />
13021 + <gd name="td11" fmla="cos rw aD1" />
13022 + <gd name="td12" fmla="sin rh aD1" />
13023 + <gd name="bD1" fmla="at2 td11 td12" />
13025 + <gd name="ctd1" fmla="cos rh bD1" />
13026 + <gd name="std1" fmla="sin rw bD1" />
13027 + <gd name="md1" fmla="mod ctd1 std1 0" />
13028 + <gd name="nd1" fmla="*/ rw rh md1" />
13029 + <gd name="dxd1" fmla="cos nd1 bD1" />
13030 + <gd name="dyd1" fmla="sin nd1 bD1" />
13031 + <gd name="xD1" fmla="+- hc dxd1 0" />
13032 + <gd name="yD1" fmla="+- vc dyd1 0" />
13035 + <gd name="xAD1" fmla="+- xA1 0 xD1" />
13036 + <gd name="yAD1" fmla="+- yA1 0 yD1" />
13037 + <gd name="lAD1" fmla="mod xAD1 yAD1 0" />
13038 + <gd name="a1" fmla="at2 yAD1 xAD1" />
13041 + <gd name="dxF1" fmla="sin lFD a1" />
13042 + <gd name="dyF1" fmla="cos lFD a1" />
13043 + <gd name="xF1" fmla="+- xD1 dxF1 0" />
13044 + <gd name="yF1" fmla="+- yD1 dyF1 0" />
13045 + <gd name="xE1" fmla="+- xA1 0 dxF1" />
13046 + <gd name="yE1" fmla="+- yA1 0 dyF1" />
13049 + <gd name="yC1t" fmla="sin th a1" />
13050 + <gd name="xC1t" fmla="cos th a1" />
13051 + <gd name="yC1" fmla="+- yF1 yC1t 0" />
13052 + <gd name="xC1" fmla="+- xF1 0 xC1t" />
13055 + <gd name="yB1" fmla="+- yE1 yC1t 0" />
13056 + <gd name="xB1" fmla="+- xE1 0 xC1t" />
13059 + <gd name="aD6" fmla="+- 3cd4 ha 0" />
13062 + <gd name="td61" fmla="cos rw aD6" />
13063 + <gd name="td62" fmla="sin rh aD6" />
13064 + <gd name="bD6" fmla="at2 td61 td62" />
13066 + <gd name="ctd6" fmla="cos rh bD6" />
13067 + <gd name="std6" fmla="sin rw bD6" />
13068 + <gd name="md6" fmla="mod ctd6 std6 0" />
13069 + <gd name="nd6" fmla="*/ rw rh md6" />
13070 + <gd name="dxd6" fmla="cos nd6 bD6" />
13071 + <gd name="dyd6" fmla="sin nd6 bD6" />
13072 + <gd name="xD6" fmla="+- hc dxd6 0" />
13073 + <gd name="yD6" fmla="+- vc dyd6 0" />
13076 + <gd name="xA6" fmla="+- hc 0 dxd6" />
13079 + <gd name="xF6" fmla="+- xD6 0 lFD" />
13080 + <gd name="xE6" fmla="+- xA6 lFD 0" />
13083 + <gd name="yC6" fmla="+- yD6 0 th" />
13085 + <gd name="swAng1" fmla="+- bA1 0 bD6" />
13088 + <gd name="aA2" fmla="+- 1800000 0 ha" />
13089 + <gd name="aD2" fmla="+- 1800000 ha 0" />
13092 + <gd name="ta21" fmla="cos rw aA2" />
13093 + <gd name="ta22" fmla="sin rh aA2" />
13094 + <gd name="bA2" fmla="at2 ta21 ta22" />
13096 + <gd name="yA2" fmla="+- h 0 yD1" />
13099 + <gd name="td21" fmla="cos rw aD2" />
13100 + <gd name="td22" fmla="sin rh aD2" />
13101 + <gd name="bD2" fmla="at2 td21 td22" />
13103 + <gd name="yD2" fmla="+- h 0 yA1" />
13106 + <gd name="yC2" fmla="+- h 0 yB1" />
13109 + <gd name="yB2" fmla="+- h 0 yC1" />
13110 + <gd name="xB2" fmla="val xC1" />
13112 + <gd name="swAng2" fmla="+- bA2 0 bD1" />
13115 + <gd name="aD3" fmla="+- cd4 ha 0" />
13117 + <gd name="td31" fmla="cos rw aD3" />
13118 + <gd name="td32" fmla="sin rh aD3" />
13119 + <gd name="bD3" fmla="at2 td31 td32" />
13122 + <gd name="yD3" fmla="+- h 0 yD6" />
13125 + <gd name="yB3" fmla="+- h 0 yC6" />
13128 + <gd name="aD4" fmla="+- 9000000 ha 0" />
13130 + <gd name="td41" fmla="cos rw aD4" />
13131 + <gd name="td42" fmla="sin rh aD4" />
13132 + <gd name="bD4" fmla="at2 td41 td42" />
13135 + <gd name="xD4" fmla="+- w 0 xD1" />
13138 + <gd name="xC4" fmla="+- w 0 xC1" />
13141 + <gd name="xB4" fmla="+- w 0 xB1" />
13144 + <gd name="aD5" fmla="+- 12600000 ha 0" />
13146 + <gd name="td51" fmla="cos rw aD5" />
13147 + <gd name="td52" fmla="sin rh aD5" />
13148 + <gd name="bD5" fmla="at2 td51 td52" />
13151 + <gd name="xD5" fmla="+- w 0 xA1" />
13154 + <gd name="xC5" fmla="+- w 0 xB1" />
13157 + <gd name="xB5" fmla="+- w 0 xC1" />
13160 + <gd name="xCxn1" fmla="+/ xB1 xC1 2" />
13161 + <gd name="yCxn1" fmla="+/ yB1 yC1 2" />
13162 + <gd name="yCxn2" fmla="+- b 0 yCxn1" />
13163 + <gd name="xCxn4" fmla="+/ r 0 xCxn1" />
13166 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13167 + <ahXY gdRefY="adj1" minY="0" maxY="20000">
13168 + <pos x="xD6" y="yD6" />
13170 + <ahXY gdRefX="adj2" minX="0" maxX="5358">
13171 + <pos x="xA6" y="yD6" />
13176 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13177 + <cxn ang="19800000">
13178 + <pos x="xCxn1" y="yCxn1" />
13181 + <cxn ang="1800000">
13182 + <pos x="xCxn1" y="yCxn2" />
13186 + <pos x="hc" y="yB3" />
13189 + <cxn ang="9000000">
13190 + <pos x="xCxn4" y="yCxn2" />
13193 + <cxn ang="12600000">
13194 + <pos x="xCxn4" y="yCxn1" />
13198 + <pos x="hc" y="yC6" />
13203 + <rect l="xD5" t="yA1" r="xA1" b="yD2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
13205 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13208 + <pt x="xA1" y="yA1" />
13211 + <pt x="xB1" y="yB1" />
13214 + <pt x="xC1" y="yC1" />
13217 + <pt x="xD1" y="yD1" />
13219 + <arcTo hR="rh" wR="rw" stAng="bD1" swAng="swAng2" />
13222 + <pt x="xC1" y="yB2" />
13225 + <pt x="xB1" y="yC2" />
13228 + <pt x="xA1" y="yD2" />
13230 + <arcTo hR="rh" wR="rw" stAng="bD2" swAng="swAng1" />
13233 + <pt x="xF6" y="yB3" />
13236 + <pt x="xE6" y="yB3" />
13239 + <pt x="xA6" y="yD3" />
13241 + <arcTo hR="rh" wR="rw" stAng="bD3" swAng="swAng1" />
13244 + <pt x="xB4" y="yC2" />
13247 + <pt x="xC4" y="yB2" />
13250 + <pt x="xD4" y="yA2" />
13252 + <arcTo hR="rh" wR="rw" stAng="bD4" swAng="swAng2" />
13255 + <pt x="xB5" y="yC1" />
13258 + <pt x="xC5" y="yB1" />
13261 + <pt x="xD5" y="yA1" />
13263 + <arcTo hR="rh" wR="rw" stAng="bD5" swAng="swAng1" />
13266 + <pt x="xE6" y="yC6" />
13269 + <pt x="xF6" y="yC6" />
13272 + <pt x="xD6" y="yD6" />
13274 + <arcTo hR="rh" wR="rw" stAng="bD6" swAng="swAng1" />
13282 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13283 + <gd name="adj1" fmla="val 10000" />
13285 + <gd name="adj2" fmla="val 1763" />
13289 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13294 + <gd name="a1" fmla="pin 0 adj1 20000" />
13295 + <gd name="a2" fmla="pin 0 adj2 2679" />
13298 + <gd name="th" fmla="*/ ss a1 100000" />
13299 + <gd name="lFD" fmla="*/ ss a2 100000" />
13301 + <gd name="th2" fmla="*/ th 1 2" />
13302 + <gd name="l2" fmla="*/ lFD 1 2" />
13303 + <gd name="l3" fmla="+- th2 l2 0" />
13306 + <gd name="rh" fmla="+- hd2 0 th" />
13307 + <gd name="rw" fmla="+- wd2 0 th" />
13310 + <gd name="dr" fmla="+- rw 0 rh" />
13311 + <gd name="maxr" fmla="?: dr rh rw" />
13312 + <gd name="ha" fmla="at2 maxr l3" />
13315 + <gd name="aA1" fmla="+- 18600000 0 ha" />
13316 + <gd name="aD1" fmla="+- 18600000 ha 0" />
13319 + <gd name="ta11" fmla="cos rw aA1" />
13320 + <gd name="ta12" fmla="sin rh aA1" />
13321 + <gd name="bA1" fmla="at2 ta11 ta12" />
13323 + <gd name="cta1" fmla="cos rh bA1" />
13324 + <gd name="sta1" fmla="sin rw bA1" />
13325 + <gd name="ma1" fmla="mod cta1 sta1 0" />
13326 + <gd name="na1" fmla="*/ rw rh ma1" />
13327 + <gd name="dxa1" fmla="cos na1 bA1" />
13328 + <gd name="dya1" fmla="sin na1 bA1" />
13329 + <gd name="xA1" fmla="+- hc dxa1 0" />
13330 + <gd name="yA1" fmla="+- vc dya1 0" />
13333 + <gd name="td11" fmla="cos rw aD1" />
13334 + <gd name="td12" fmla="sin rh aD1" />
13335 + <gd name="bD1" fmla="at2 td11 td12" />
13337 + <gd name="ctd1" fmla="cos rh bD1" />
13338 + <gd name="std1" fmla="sin rw bD1" />
13339 + <gd name="md1" fmla="mod ctd1 std1 0" />
13340 + <gd name="nd1" fmla="*/ rw rh md1" />
13341 + <gd name="dxd1" fmla="cos nd1 bD1" />
13342 + <gd name="dyd1" fmla="sin nd1 bD1" />
13343 + <gd name="xD1" fmla="+- hc dxd1 0" />
13344 + <gd name="yD1" fmla="+- vc dyd1 0" />
13347 + <gd name="xAD1" fmla="+- xA1 0 xD1" />
13348 + <gd name="yAD1" fmla="+- yA1 0 yD1" />
13349 + <gd name="lAD1" fmla="mod xAD1 yAD1 0" />
13350 + <gd name="a1" fmla="at2 yAD1 xAD1" />
13353 + <gd name="dxF1" fmla="sin lFD a1" />
13354 + <gd name="dyF1" fmla="cos lFD a1" />
13355 + <gd name="xF1" fmla="+- xD1 dxF1 0" />
13356 + <gd name="yF1" fmla="+- yD1 dyF1 0" />
13357 + <gd name="xE1" fmla="+- xA1 0 dxF1" />
13358 + <gd name="yE1" fmla="+- yA1 0 dyF1" />
13361 + <gd name="yC1t" fmla="sin th a1" />
13362 + <gd name="xC1t" fmla="cos th a1" />
13363 + <gd name="yC1" fmla="+- yF1 yC1t 0" />
13364 + <gd name="xC1" fmla="+- xF1 0 xC1t" />
13367 + <gd name="yB1" fmla="+- yE1 yC1t 0" />
13368 + <gd name="xB1" fmla="+- xE1 0 xC1t" />
13371 + <gd name="aA2" fmla="+- 21000000 0 ha" />
13372 + <gd name="aD2" fmla="+- 21000000 ha 0" />
13375 + <gd name="ta21" fmla="cos rw aA2" />
13376 + <gd name="ta22" fmla="sin rh aA2" />
13377 + <gd name="bA2" fmla="at2 ta21 ta22" />
13379 + <gd name="cta2" fmla="cos rh bA2" />
13380 + <gd name="sta2" fmla="sin rw bA2" />
13381 + <gd name="ma2" fmla="mod cta2 sta2 0" />
13382 + <gd name="na2" fmla="*/ rw rh ma2" />
13383 + <gd name="dxa2" fmla="cos na2 bA2" />
13384 + <gd name="dya2" fmla="sin na2 bA2" />
13385 + <gd name="xA2" fmla="+- hc dxa2 0" />
13386 + <gd name="yA2" fmla="+- vc dya2 0" />
13389 + <gd name="td21" fmla="cos rw aD2" />
13390 + <gd name="td22" fmla="sin rh aD2" />
13391 + <gd name="bD2" fmla="at2 td21 td22" />
13393 + <gd name="ctd2" fmla="cos rh bD2" />
13394 + <gd name="std2" fmla="sin rw bD2" />
13395 + <gd name="md2" fmla="mod ctd2 std2 0" />
13396 + <gd name="nd2" fmla="*/ rw rh md2" />
13397 + <gd name="dxd2" fmla="cos nd2 bD2" />
13398 + <gd name="dyd2" fmla="sin nd2 bD2" />
13399 + <gd name="xD2" fmla="+- hc dxd2 0" />
13400 + <gd name="yD2" fmla="+- vc dyd2 0" />
13403 + <gd name="xAD2" fmla="+- xA2 0 xD2" />
13404 + <gd name="yAD2" fmla="+- yA2 0 yD2" />
13405 + <gd name="lAD2" fmla="mod xAD2 yAD2 0" />
13406 + <gd name="a2" fmla="at2 yAD2 xAD2" />
13409 + <gd name="dxF2" fmla="sin lFD a2" />
13410 + <gd name="dyF2" fmla="cos lFD a2" />
13411 + <gd name="xF2" fmla="+- xD2 dxF2 0" />
13412 + <gd name="yF2" fmla="+- yD2 dyF2 0" />
13413 + <gd name="xE2" fmla="+- xA2 0 dxF2" />
13414 + <gd name="yE2" fmla="+- yA2 0 dyF2" />
13417 + <gd name="yC2t" fmla="sin th a2" />
13418 + <gd name="xC2t" fmla="cos th a2" />
13419 + <gd name="yC2" fmla="+- yF2 yC2t 0" />
13420 + <gd name="xC2" fmla="+- xF2 0 xC2t" />
13423 + <gd name="yB2" fmla="+- yE2 yC2t 0" />
13424 + <gd name="xB2" fmla="+- xE2 0 xC2t" />
13426 + <gd name="swAng1" fmla="+- bA2 0 bD1" />
13429 + <gd name="aA3" fmla="+- 1800000 0 ha" />
13430 + <gd name="aD3" fmla="+- 1800000 ha 0" />
13433 + <gd name="ta31" fmla="cos rw aA3" />
13434 + <gd name="ta32" fmla="sin rh aA3" />
13435 + <gd name="bA3" fmla="at2 ta31 ta32" />
13437 + <gd name="cta3" fmla="cos rh bA3" />
13438 + <gd name="sta3" fmla="sin rw bA3" />
13439 + <gd name="ma3" fmla="mod cta3 sta3 0" />
13440 + <gd name="na3" fmla="*/ rw rh ma3" />
13441 + <gd name="dxa3" fmla="cos na3 bA3" />
13442 + <gd name="dya3" fmla="sin na3 bA3" />
13443 + <gd name="xA3" fmla="+- hc dxa3 0" />
13444 + <gd name="yA3" fmla="+- vc dya3 0" />
13447 + <gd name="td31" fmla="cos rw aD3" />
13448 + <gd name="td32" fmla="sin rh aD3" />
13449 + <gd name="bD3" fmla="at2 td31 td32" />
13451 + <gd name="ctd3" fmla="cos rh bD3" />
13452 + <gd name="std3" fmla="sin rw bD3" />
13453 + <gd name="md3" fmla="mod ctd3 std3 0" />
13454 + <gd name="nd3" fmla="*/ rw rh md3" />
13455 + <gd name="dxd3" fmla="cos nd3 bD3" />
13456 + <gd name="dyd3" fmla="sin nd3 bD3" />
13457 + <gd name="xD3" fmla="+- hc dxd3 0" />
13458 + <gd name="yD3" fmla="+- vc dyd3 0" />
13461 + <gd name="xAD3" fmla="+- xA3 0 xD3" />
13462 + <gd name="yAD3" fmla="+- yA3 0 yD3" />
13463 + <gd name="lAD3" fmla="mod xAD3 yAD3 0" />
13464 + <gd name="a3" fmla="at2 yAD3 xAD3" />
13467 + <gd name="dxF3" fmla="sin lFD a3" />
13468 + <gd name="dyF3" fmla="cos lFD a3" />
13469 + <gd name="xF3" fmla="+- xD3 dxF3 0" />
13470 + <gd name="yF3" fmla="+- yD3 dyF3 0" />
13471 + <gd name="xE3" fmla="+- xA3 0 dxF3" />
13472 + <gd name="yE3" fmla="+- yA3 0 dyF3" />
13475 + <gd name="yC3t" fmla="sin th a3" />
13476 + <gd name="xC3t" fmla="cos th a3" />
13477 + <gd name="yC3" fmla="+- yF3 yC3t 0" />
13478 + <gd name="xC3" fmla="+- xF3 0 xC3t" />
13481 + <gd name="yB3" fmla="+- yE3 yC3t 0" />
13482 + <gd name="xB3" fmla="+- xE3 0 xC3t" />
13484 + <gd name="swAng2" fmla="+- bA3 0 bD2" />
13487 + <gd name="aA4" fmla="+- 4200000 0 ha" />
13488 + <gd name="aD4" fmla="+- 4200000 ha 0" />
13491 + <gd name="ta41" fmla="cos rw aA4" />
13492 + <gd name="ta42" fmla="sin rh aA4" />
13493 + <gd name="bA4" fmla="at2 ta41 ta42" />
13495 + <gd name="cta4" fmla="cos rh bA4" />
13496 + <gd name="sta4" fmla="sin rw bA4" />
13497 + <gd name="ma4" fmla="mod cta4 sta4 0" />
13498 + <gd name="na4" fmla="*/ rw rh ma4" />
13499 + <gd name="dxa4" fmla="cos na4 bA4" />
13500 + <gd name="dya4" fmla="sin na4 bA4" />
13501 + <gd name="xA4" fmla="+- hc dxa4 0" />
13502 + <gd name="yA4" fmla="+- vc dya4 0" />
13505 + <gd name="td41" fmla="cos rw aD4" />
13506 + <gd name="td42" fmla="sin rh aD4" />
13507 + <gd name="bD4" fmla="at2 td41 td42" />
13509 + <gd name="ctd4" fmla="cos rh bD4" />
13510 + <gd name="std4" fmla="sin rw bD4" />
13511 + <gd name="md4" fmla="mod ctd4 std4 0" />
13512 + <gd name="nd4" fmla="*/ rw rh md4" />
13513 + <gd name="dxd4" fmla="cos nd4 bD4" />
13514 + <gd name="dyd4" fmla="sin nd4 bD4" />
13515 + <gd name="xD4" fmla="+- hc dxd4 0" />
13516 + <gd name="yD4" fmla="+- vc dyd4 0" />
13519 + <gd name="xAD4" fmla="+- xA4 0 xD4" />
13520 + <gd name="yAD4" fmla="+- yA4 0 yD4" />
13521 + <gd name="lAD4" fmla="mod xAD4 yAD4 0" />
13522 + <gd name="a4" fmla="at2 yAD4 xAD4" />
13525 + <gd name="dxF4" fmla="sin lFD a4" />
13526 + <gd name="dyF4" fmla="cos lFD a4" />
13527 + <gd name="xF4" fmla="+- xD4 dxF4 0" />
13528 + <gd name="yF4" fmla="+- yD4 dyF4 0" />
13529 + <gd name="xE4" fmla="+- xA4 0 dxF4" />
13530 + <gd name="yE4" fmla="+- yA4 0 dyF4" />
13533 + <gd name="yC4t" fmla="sin th a4" />
13534 + <gd name="xC4t" fmla="cos th a4" />
13535 + <gd name="yC4" fmla="+- yF4 yC4t 0" />
13536 + <gd name="xC4" fmla="+- xF4 0 xC4t" />
13539 + <gd name="yB4" fmla="+- yE4 yC4t 0" />
13540 + <gd name="xB4" fmla="+- xE4 0 xC4t" />
13542 + <gd name="swAng3" fmla="+- bA4 0 bD3" />
13545 + <gd name="aA5" fmla="+- 6600000 0 ha" />
13546 + <gd name="aD5" fmla="+- 6600000 ha 0" />
13548 + <gd name="ta51" fmla="cos rw aA5" />
13549 + <gd name="ta52" fmla="sin rh aA5" />
13550 + <gd name="bA5" fmla="at2 ta51 ta52" />
13552 + <gd name="td51" fmla="cos rw aD5" />
13553 + <gd name="td52" fmla="sin rh aD5" />
13554 + <gd name="bD5" fmla="at2 td51 td52" />
13557 + <gd name="xD5" fmla="+- w 0 xA4" />
13560 + <gd name="xC5" fmla="+- w 0 xB4" />
13563 + <gd name="xB5" fmla="+- w 0 xC4" />
13565 + <gd name="swAng4" fmla="+- bA5 0 bD4" />
13568 + <gd name="aD6" fmla="+- 9000000 ha 0" />
13570 + <gd name="td61" fmla="cos rw aD6" />
13571 + <gd name="td62" fmla="sin rh aD6" />
13572 + <gd name="bD6" fmla="at2 td61 td62" />
13575 + <gd name="xD6" fmla="+- w 0 xA3" />
13578 + <gd name="xC6" fmla="+- w 0 xB3" />
13581 + <gd name="xB6" fmla="+- w 0 xC3" />
13584 + <gd name="aD7" fmla="+- 11400000 ha 0" />
13586 + <gd name="td71" fmla="cos rw aD7" />
13587 + <gd name="td72" fmla="sin rh aD7" />
13588 + <gd name="bD7" fmla="at2 td71 td72" />
13591 + <gd name="xD7" fmla="+- w 0 xA2" />
13594 + <gd name="xC7" fmla="+- w 0 xB2" />
13597 + <gd name="xB7" fmla="+- w 0 xC2" />
13600 + <gd name="aD8" fmla="+- 13800000 ha 0" />
13602 + <gd name="td81" fmla="cos rw aD8" />
13603 + <gd name="td82" fmla="sin rh aD8" />
13604 + <gd name="bD8" fmla="at2 td81 td82" />
13607 + <gd name="xA8" fmla="+- w 0 xD1" />
13609 + <gd name="xD8" fmla="+- w 0 xA1" />
13612 + <gd name="xC8" fmla="+- w 0 xB1" />
13615 + <gd name="xB8" fmla="+- w 0 xC1" />
13618 + <gd name="aA9" fmla="+- 3cd4 0 ha" />
13619 + <gd name="aD9" fmla="+- 3cd4 ha 0" />
13622 + <gd name="td91" fmla="cos rw aD9" />
13623 + <gd name="td92" fmla="sin rh aD9" />
13624 + <gd name="bD9" fmla="at2 td91 td92" />
13626 + <gd name="ctd9" fmla="cos rh bD9" />
13627 + <gd name="std9" fmla="sin rw bD9" />
13628 + <gd name="md9" fmla="mod ctd9 std9 0" />
13629 + <gd name="nd9" fmla="*/ rw rh md9" />
13630 + <gd name="dxd9" fmla="cos nd9 bD9" />
13631 + <gd name="dyd9" fmla="sin nd9 bD9" />
13632 + <gd name="xD9" fmla="+- hc dxd9 0" />
13633 + <gd name="yD9" fmla="+- vc dyd9 0" />
13636 + <gd name="ta91" fmla="cos rw aA9" />
13637 + <gd name="ta92" fmla="sin rh aA9" />
13638 + <gd name="bA9" fmla="at2 ta91 ta92" />
13640 + <gd name="xA9" fmla="+- hc 0 dxd9" />
13643 + <gd name="xF9" fmla="+- xD9 0 lFD" />
13644 + <gd name="xE9" fmla="+- xA9 lFD 0" />
13647 + <gd name="yC9" fmla="+- yD9 0 th" />
13649 + <gd name="swAng5" fmla="+- bA9 0 bD8" />
13652 + <gd name="xCxn1" fmla="+/ xB1 xC1 2" />
13653 + <gd name="yCxn1" fmla="+/ yB1 yC1 2" />
13654 + <gd name="xCxn2" fmla="+/ xB2 xC2 2" />
13655 + <gd name="yCxn2" fmla="+/ yB2 yC2 2" />
13656 + <gd name="xCxn3" fmla="+/ xB3 xC3 2" />
13657 + <gd name="yCxn3" fmla="+/ yB3 yC3 2" />
13658 + <gd name="xCxn4" fmla="+/ xB4 xC4 2" />
13659 + <gd name="yCxn4" fmla="+/ yB4 yC4 2" />
13660 + <gd name="xCxn5" fmla="+/ r 0 xCxn4" />
13661 + <gd name="xCxn6" fmla="+/ r 0 xCxn3" />
13662 + <gd name="xCxn7" fmla="+/ r 0 xCxn2" />
13663 + <gd name="xCxn8" fmla="+/ r 0 xCxn1" />
13666 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13667 + <ahXY gdRefY="adj1" minY="0" maxY="20000">
13668 + <pos x="xD9" y="yD9" />
13670 + <ahXY gdRefX="adj2" minX="0" maxX="2679">
13671 + <pos x="xA9" y="yD9" />
13676 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13677 + <cxn ang="18600000">
13678 + <pos x="xCxn1" y="yCxn1" />
13681 + <cxn ang="21000000">
13682 + <pos x="xCxn2" y="yCxn2" />
13685 + <cxn ang="1800000">
13686 + <pos x="xCxn3" y="yCxn3" />
13689 + <cxn ang="4200000">
13690 + <pos x="xCxn4" y="yCxn4" />
13693 + <cxn ang="6600000">
13694 + <pos x="xCxn5" y="yCxn4" />
13697 + <cxn ang="9000000">
13698 + <pos x="xCxn6" y="yCxn3" />
13701 + <cxn ang="11400000">
13702 + <pos x="xCxn7" y="yCxn2" />
13705 + <cxn ang="13800000">
13706 + <pos x="xCxn8" y="yCxn1" />
13710 + <pos x="hc" y="yC9" />
13715 + <rect l="xA8" t="yD1" r="xD1" b="yD3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
13717 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13720 + <pt x="xA1" y="yA1" />
13723 + <pt x="xB1" y="yB1" />
13726 + <pt x="xC1" y="yC1" />
13729 + <pt x="xD1" y="yD1" />
13731 + <arcTo hR="rh" wR="rw" stAng="bD1" swAng="swAng1" />
13734 + <pt x="xB2" y="yB2" />
13737 + <pt x="xC2" y="yC2" />
13740 + <pt x="xD2" y="yD2" />
13742 + <arcTo hR="rh" wR="rw" stAng="bD2" swAng="swAng2" />
13745 + <pt x="xB3" y="yB3" />
13748 + <pt x="xC3" y="yC3" />
13751 + <pt x="xD3" y="yD3" />
13753 + <arcTo hR="rh" wR="rw" stAng="bD3" swAng="swAng3" />
13756 + <pt x="xB4" y="yB4" />
13759 + <pt x="xC4" y="yC4" />
13762 + <pt x="xD4" y="yD4" />
13764 + <arcTo hR="rh" wR="rw" stAng="bD4" swAng="swAng4" />
13767 + <pt x="xB5" y="yC4" />
13770 + <pt x="xC5" y="yB4" />
13773 + <pt x="xD5" y="yA4" />
13775 + <arcTo hR="rh" wR="rw" stAng="bD5" swAng="swAng3" />
13778 + <pt x="xB6" y="yC3" />
13781 + <pt x="xC6" y="yB3" />
13784 + <pt x="xD6" y="yA3" />
13786 + <arcTo hR="rh" wR="rw" stAng="bD6" swAng="swAng2" />
13789 + <pt x="xB7" y="yC2" />
13792 + <pt x="xC7" y="yB2" />
13795 + <pt x="xD7" y="yA2" />
13797 + <arcTo hR="rh" wR="rw" stAng="bD7" swAng="swAng1" />
13800 + <pt x="xB8" y="yC1" />
13803 + <pt x="xC8" y="yB1" />
13806 + <pt x="xD8" y="yA1" />
13808 + <arcTo hR="rh" wR="rw" stAng="bD8" swAng="swAng5" />
13811 + <pt x="xE9" y="yC9" />
13814 + <pt x="xF9" y="yC9" />
13817 + <pt x="xD9" y="yD9" />
13819 + <arcTo hR="rh" wR="rw" stAng="bD9" swAng="swAng5" />
13827 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13828 + <gd name="adj1" fmla="val 33333" />
13830 + <gd name="adj2" fmla="val 33333" />
13834 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13835 + <gd name="maxAdj2" fmla="*/ 100000 w ss" />
13836 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
13837 + <gd name="x1" fmla="*/ ss a2 100000" />
13838 + <gd name="g1" fmla="*/ h x1 w" />
13839 + <gd name="g2" fmla="+- h 0 g1" />
13840 + <gd name="maxAdj1" fmla="*/ 100000 g2 ss" />
13841 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
13842 + <gd name="y1" fmla="*/ ss a1 100000" />
13843 + <gd name="dx2" fmla="*/ y1 w h" />
13844 + <gd name="x2" fmla="+- r 0 dx2" />
13845 + <gd name="dy2" fmla="*/ x1 h w" />
13846 + <gd name="y2" fmla="+- b 0 dy2" />
13847 + <gd name="cx1" fmla="*/ x1 1 2" />
13848 + <gd name="cy1" fmla="+/ y2 b 2" />
13849 + <gd name="cx2" fmla="+/ x2 r 2" />
13850 + <gd name="cy2" fmla="*/ y1 1 2" />
13853 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13854 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
13855 + <pos x="l" y="y1" />
13857 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
13858 + <pos x="x1" y="t" />
13862 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13864 + <pos x="cx2" y="cy2" />
13867 + <pos x="cx1" y="cy1" />
13870 + <pos x="l" y="vc" />
13873 + <pos x="hc" y="t" />
13877 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
13879 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13882 + <pt x="l" y="t" />
13885 + <pt x="r" y="t" />
13888 + <pt x="x2" y="y1" />
13891 + <pt x="x1" y="y1" />
13894 + <pt x="x1" y="y2" />
13897 + <pt x="l" y="b" />
13906 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13907 + <gd name="dx1" fmla="*/ w 49 48" />
13908 + <gd name="dx2" fmla="*/ w 10 48" />
13909 + <gd name="x1" fmla="+- hc 0 dx1" />
13910 + <gd name="x2" fmla="+- hc 0 dx2" />
13911 + <gd name="x3" fmla="+- hc dx2 0" />
13912 + <gd name="x4" fmla="+- hc dx1 0" />
13913 + <gd name="y1" fmla="+- t 0 hd3" />
13916 + <gd name="il" fmla="*/ w 1 6" />
13917 + <gd name="ir" fmla="*/ w 5 6" />
13918 + <gd name="ib" fmla="*/ h 2 3" />
13921 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13923 + <pos x="hc" y="hd4" />
13926 + <pos x="hc" y="b" />
13930 + <rect l="il" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
13932 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13935 + <pt x="hc" y="hd4" />
13938 + <pt x="x3" y="y1" />
13939 + <pt x="x4" y="hd4" />
13940 + <pt x="hc" y="b" />
13943 + <pt x="x1" y="hd4" />
13944 + <pt x="x2" y="y1" />
13945 + <pt x="hc" y="hd4" />
13954 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13955 + <gd name="hf" fmla="val 102572" />
13956 + <gd name="vf" fmla="val 105210" />
13959 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13960 + <gd name="swd2" fmla="*/ wd2 hf 100000" />
13961 + <gd name="shd2" fmla="*/ hd2 vf 100000" />
13962 + <gd name="svc" fmla="*/ vc vf 100000" />
13963 + <gd name="dx1" fmla="*/ swd2 97493 100000" />
13964 + <gd name="dx2" fmla="*/ swd2 78183 100000" />
13965 + <gd name="dx3" fmla="*/ swd2 43388 100000" />
13966 + <gd name="dy1" fmla="*/ shd2 62349 100000" />
13967 + <gd name="dy2" fmla="*/ shd2 22252 100000" />
13968 + <gd name="dy3" fmla="*/ shd2 90097 100000" />
13969 + <gd name="x1" fmla="+- hc 0 dx1" />
13970 + <gd name="x2" fmla="+- hc 0 dx2" />
13971 + <gd name="x3" fmla="+- hc 0 dx3" />
13972 + <gd name="x4" fmla="+- hc dx3 0" />
13973 + <gd name="x5" fmla="+- hc dx2 0" />
13974 + <gd name="x6" fmla="+- hc dx1 0" />
13975 + <gd name="y1" fmla="+- svc 0 dy1" />
13976 + <gd name="y2" fmla="+- svc dy2 0" />
13977 + <gd name="y3" fmla="+- svc dy3 0" />
13978 + <gd name="ib" fmla="+- b 0 y1" />
13981 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
13983 + <pos x="x5" y="y1" />
13986 + <pos x="x6" y="y2" />
13989 + <pos x="x4" y="y3" />
13992 + <pos x="x3" y="y3" />
13995 + <pos x="x1" y="y2" />
13998 + <pos x="x2" y="y1" />
14001 + <pos x="hc" y="t" />
14005 + <rect l="x2" t="y1" r="x5" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14007 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14010 + <pt x="x1" y="y2" />
14013 + <pt x="x2" y="y1" />
14016 + <pt x="hc" y="t" />
14019 + <pt x="x5" y="y1" />
14022 + <pt x="x6" y="y2" />
14025 + <pt x="x4" y="y3" />
14028 + <pt x="x3" y="y3" />
14036 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14037 + <gd name="adj" fmla="val 25000" />
14038 + <gd name="vf" fmla="val 115470" />
14040 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14041 + <gd name="maxAdj" fmla="*/ 50000 w ss" />
14042 + <gd name="a" fmla="pin 0 adj maxAdj" />
14043 + <gd name="shd2" fmla="*/ hd2 vf 100000" />
14044 + <gd name="x1" fmla="*/ ss a 100000" />
14045 + <gd name="x2" fmla="+- r 0 x1" />
14046 + <gd name="dy1" fmla="sin shd2 3600000" />
14047 + <gd name="y1" fmla="+- vc 0 dy1" />
14048 + <gd name="y2" fmla="+- vc dy1 0" />
14049 + <gd name="q1" fmla="*/ maxAdj -1 2" />
14050 + <gd name="q2" fmla="+- a q1 0" />
14051 + <gd name="q3" fmla="?: q2 4 2" />
14052 + <gd name="q4" fmla="?: q2 3 2" />
14053 + <gd name="q5" fmla="?: q2 q1 0" />
14054 + <gd name="q6" fmla="+/ a q5 q1" />
14055 + <gd name="q7" fmla="*/ q6 q4 -1" />
14056 + <gd name="q8" fmla="+- q3 q7 0" />
14057 + <gd name="il" fmla="*/ w q8 24" />
14058 + <gd name="it" fmla="*/ h q8 24" />
14059 + <gd name="ir" fmla="+- r 0 il" />
14060 + <gd name="ib" fmla="+- b 0 it" />
14062 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14063 + <ahXY gdRefX="adj" minX="0" maxX="maxAdj">
14064 + <pos x="x1" y="t" />
14067 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14069 + <pos x="r" y="vc" />
14072 + <pos x="x2" y="y2" />
14075 + <pos x="x1" y="y2" />
14078 + <pos x="l" y="vc" />
14081 + <pos x="x1" y="y1" />
14084 + <pos x="x2" y="y1" />
14087 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14088 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14091 + <pt x="l" y="vc" />
14094 + <pt x="x1" y="y1" />
14097 + <pt x="x2" y="y1" />
14100 + <pt x="r" y="vc" />
14103 + <pt x="x2" y="y2" />
14106 + <pt x="x1" y="y2" />
14113 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14114 + <gd name="adj" fmla="val 50000" />
14116 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14117 + <gd name="maxAdj" fmla="*/ 100000 w ss" />
14118 + <gd name="a" fmla="pin 0 adj maxAdj" />
14119 + <gd name="dx1" fmla="*/ ss a 100000" />
14120 + <gd name="x1" fmla="+- r 0 dx1" />
14121 + <gd name="ir" fmla="+/ x1 r 2" />
14122 + <gd name="x2" fmla="*/ x1 1 2" />
14124 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14125 + <ahXY gdRefX="adj" minX="0" maxX="maxAdj">
14126 + <pos x="x1" y="t" />
14129 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14131 + <pos x="x2" y="t" />
14134 + <pos x="l" y="vc" />
14137 + <pos x="x1" y="b" />
14140 + <pos x="r" y="vc" />
14143 + <rect l="l" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14144 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14147 + <pt x="l" y="t" />
14150 + <pt x="x1" y="t" />
14153 + <pt x="r" y="vc" />
14156 + <pt x="x1" y="b" />
14159 + <pt x="l" y="b" />
14165 + <horizontalScroll>
14167 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14168 + <gd name="adj" fmla="val 12500" />
14172 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14173 + <gd name="a" fmla="pin 0 adj 25000" />
14174 + <gd name="ch" fmla="*/ ss a 100000" />
14176 + <gd name="ch2" fmla="*/ ch 1 2" />
14178 + <gd name="ch4" fmla="*/ ch 1 4" />
14184 + <gd name="y3" fmla="+- ch ch2 0" />
14186 + <gd name="y4" fmla="+- ch ch 0" />
14188 + <gd name="y6" fmla="+- b 0 ch" />
14190 + <gd name="y7" fmla="+- b 0 ch2" />
14192 + <gd name="y5" fmla="+- y6 0 ch2" />
14198 + <gd name="x3" fmla="+- r 0 ch" />
14200 + <gd name="x4" fmla="+- r 0 ch2" />
14204 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14205 + <ahXY gdRefX="adj" minX="0" maxX="25000">
14206 + <pos x="ch" y="t" />
14210 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14212 + <pos x="hc" y="ch" />
14215 + <pos x="l" y="vc" />
14218 + <pos x="hc" y="y6" />
14221 + <pos x="r" y="vc" />
14225 + <rect l="ch" t="ch" r="x4" b="y6" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14227 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14228 + <path stroke="false" extrusionOk="false">
14231 + <pt x="r" y="ch2" />
14233 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />
14235 + <pt x="x4" y="ch2" />
14237 + <arcTo wR="ch4" hR="ch4" stAng="0" swAng="cd2" />
14239 + <pt x="x3" y="ch" />
14242 + <pt x="ch2" y="ch" />
14244 + <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="-5400000" />
14246 + <pt x="l" y="y7" />
14248 + <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="-10800000" />
14250 + <pt x="ch" y="y6" />
14253 + <pt x="x4" y="y6" />
14255 + <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />
14258 + <pt x="ch2" y="y4" />
14260 + <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />
14261 + <arcTo wR="ch4" hR="ch4" stAng="0" swAng="-10800000" />
14264 + <path fill="darkenLess" stroke="false" extrusionOk="false">
14267 + <pt x="ch2" y="y4" />
14269 + <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />
14270 + <arcTo wR="ch4" hR="ch4" stAng="0" swAng="-10800000" />
14273 + <pt x="x4" y="ch" />
14275 + <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-16200000" />
14276 + <arcTo wR="ch4" hR="ch4" stAng="cd2" swAng="-10800000" />
14279 + <path fill="none" extrusionOk="false">
14282 + <pt x="l" y="y3" />
14284 + <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />
14286 + <pt x="x3" y="ch" />
14289 + <pt x="x3" y="ch2" />
14291 + <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd2" />
14293 + <pt x="r" y="y5" />
14295 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />
14297 + <pt x="ch" y="y6" />
14300 + <pt x="ch" y="y7" />
14302 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd2" />
14305 + <pt x="x3" y="ch" />
14308 + <pt x="x4" y="ch" />
14310 + <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />
14312 + <pt x="x4" y="ch" />
14315 + <pt x="x4" y="ch2" />
14317 + <arcTo wR="ch4" hR="ch4" stAng="0" swAng="cd2" />
14319 + <pt x="ch2" y="y4" />
14322 + <pt x="ch2" y="y3" />
14324 + <arcTo wR="ch4" hR="ch4" stAng="cd2" swAng="cd2" />
14325 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd2" />
14327 + <pt x="ch" y="y3" />
14330 + <pt x="ch" y="y6" />
14335 + </horizontalScroll>
14338 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14339 + <gd name="x5" fmla="*/ w 4627 21600" />
14340 + <gd name="x12" fmla="*/ w 8485 21600" />
14341 + <gd name="x21" fmla="*/ w 16702 21600" />
14342 + <gd name="x24" fmla="*/ w 14522 21600" />
14343 + <gd name="y3" fmla="*/ h 6320 21600" />
14344 + <gd name="y6" fmla="*/ h 8615 21600" />
14345 + <gd name="y9" fmla="*/ h 13937 21600" />
14346 + <gd name="y18" fmla="*/ h 13290 21600" />
14349 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14351 + <pos x="x24" y="t" />
14354 + <pos x="l" y="y6" />
14357 + <pos x="x12" y="b" />
14360 + <pos x="r" y="y18" />
14364 + <rect l="x5" t="y3" r="x21" b="y9" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14366 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14367 + <path w="21600" h="21600">
14369 + <pt x="10800" y="5800" />
14372 + <pt x="14522" y="0" />
14375 + <pt x="14155" y="5325" />
14378 + <pt x="18380" y="4457" />
14381 + <pt x="16702" y="7315" />
14384 + <pt x="21097" y="8137" />
14387 + <pt x="17607" y="10475" />
14390 + <pt x="21600" y="13290" />
14393 + <pt x="16837" y="12942" />
14396 + <pt x="18145" y="18095" />
14399 + <pt x="14020" y="14457" />
14402 + <pt x="13247" y="19737" />
14405 + <pt x="10532" y="14935" />
14408 + <pt x="8485" y="21600" />
14411 + <pt x="7715" y="15627" />
14414 + <pt x="4762" y="17617" />
14417 + <pt x="5667" y="13937" />
14420 + <pt x="135" y="14587" />
14423 + <pt x="3722" y="11775" />
14426 + <pt x="0" y="8615" />
14429 + <pt x="4627" y="7617" />
14432 + <pt x="370" y="2295" />
14435 + <pt x="7312" y="6320" />
14438 + <pt x="8352" y="2295" />
14444 + </irregularSeal1>
14447 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14448 + <gd name="x2" fmla="*/ w 9722 21600" />
14449 + <gd name="x5" fmla="*/ w 5372 21600" />
14450 + <gd name="x16" fmla="*/ w 11612 21600" />
14451 + <gd name="x19" fmla="*/ w 14640 21600" />
14452 + <gd name="y2" fmla="*/ h 1887 21600" />
14453 + <gd name="y3" fmla="*/ h 6382 21600" />
14454 + <gd name="y8" fmla="*/ h 12877 21600" />
14455 + <gd name="y14" fmla="*/ h 19712 21600" />
14456 + <gd name="y16" fmla="*/ h 18842 21600" />
14457 + <gd name="y17" fmla="*/ h 15935 21600" />
14458 + <gd name="y24" fmla="*/ h 6645 21600" />
14461 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14463 + <pos x="x2" y="y2" />
14466 + <pos x="l" y="y8" />
14469 + <pos x="x16" y="y16" />
14472 + <pos x="r" y="y24" />
14476 + <rect l="x5" t="y3" r="x19" b="y17" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14478 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14479 + <path w="21600" h="21600">
14481 + <pt x="11462" y="4342" />
14484 + <pt x="14790" y="0" />
14487 + <pt x="14525" y="5777" />
14490 + <pt x="18007" y="3172" />
14493 + <pt x="16380" y="6532" />
14496 + <pt x="21600" y="6645" />
14499 + <pt x="16985" y="9402" />
14502 + <pt x="18270" y="11290" />
14505 + <pt x="16380" y="12310" />
14508 + <pt x="18877" y="15632" />
14511 + <pt x="14640" y="14350" />
14514 + <pt x="14942" y="17370" />
14517 + <pt x="12180" y="15935" />
14520 + <pt x="11612" y="18842" />
14523 + <pt x="9872" y="17370" />
14526 + <pt x="8700" y="19712" />
14529 + <pt x="7527" y="18125" />
14532 + <pt x="4917" y="21600" />
14535 + <pt x="4805" y="18240" />
14538 + <pt x="1285" y="17825" />
14541 + <pt x="3330" y="15370" />
14544 + <pt x="0" y="12877" />
14547 + <pt x="3935" y="11592" />
14550 + <pt x="1172" y="8270" />
14553 + <pt x="5372" y="7817" />
14556 + <pt x="4502" y="3625" />
14559 + <pt x="8550" y="6382" />
14562 + <pt x="9722" y="1887" />
14568 + </irregularSeal2>
14570 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14571 + <gd name="adj1" fmla="val 50000" />
14572 + <gd name="adj2" fmla="val 50000" />
14574 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14575 + <gd name="maxAdj2" fmla="*/ 100000 w ss" />
14576 + <gd name="a1" fmla="pin 0 adj1 100000" />
14577 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
14578 + <gd name="dx2" fmla="*/ ss a2 100000" />
14579 + <gd name="x2" fmla="+- l dx2 0" />
14580 + <gd name="dy1" fmla="*/ h a1 200000" />
14581 + <gd name="y1" fmla="+- vc 0 dy1" />
14582 + <gd name="y2" fmla="+- vc dy1 0" />
14583 + <gd name="dx1" fmla="*/ y1 dx2 hd2" />
14584 + <gd name="x1" fmla="+- x2 0 dx1" />
14586 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14587 + <ahXY gdRefY="adj1" minY="0" maxY="100000">
14588 + <pos x="r" y="y1" />
14590 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
14591 + <pos x="x2" y="t" />
14594 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14596 + <pos x="x2" y="t" />
14599 + <pos x="l" y="vc" />
14602 + <pos x="x2" y="b" />
14605 + <pos x="r" y="vc" />
14608 + <rect l="x1" t="y1" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14609 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14612 + <pt x="l" y="vc" />
14615 + <pt x="x2" y="t" />
14618 + <pt x="x2" y="y1" />
14621 + <pt x="r" y="y1" />
14624 + <pt x="r" y="y2" />
14627 + <pt x="x2" y="y2" />
14630 + <pt x="x2" y="b" />
14636 + <leftArrowCallout>
14638 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14639 + <gd name="adj1" fmla="val 25000" />
14641 + <gd name="adj2" fmla="val 25000" />
14643 + <gd name="adj3" fmla="val 25000" />
14645 + <gd name="adj4" fmla="val 64977" />
14649 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14650 + <gd name="maxAdj2" fmla="*/ 50000 h ss" />
14652 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
14653 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
14655 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
14656 + <gd name="maxAdj3" fmla="*/ 100000 w ss" />
14658 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
14659 + <gd name="q2" fmla="*/ a3 ss w" />
14661 + <gd name="maxAdj4" fmla="+- 100000 0 q2" />
14663 + <gd name="a4" fmla="pin 0 adj4 maxAdj4" />
14664 + <gd name="dy1" fmla="*/ ss a2 100000" />
14666 + <gd name="dy2" fmla="*/ ss a1 200000" />
14668 + <gd name="y1" fmla="+- vc 0 dy1" />
14669 + <gd name="y2" fmla="+- vc 0 dy2" />
14670 + <gd name="y3" fmla="+- vc dy2 0" />
14671 + <gd name="y4" fmla="+- vc dy1 0" />
14672 + <gd name="x1" fmla="*/ ss a3 100000" />
14674 + <gd name="dx2" fmla="*/ w a4 100000" />
14676 + <gd name="x2" fmla="+- r 0 dx2" />
14677 + <gd name="x3" fmla="+/ x2 r 2" />
14680 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14681 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
14682 + <pos x="x1" y="y2" />
14684 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
14685 + <pos x="l" y="y1" />
14687 + <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">
14688 + <pos x="x1" y="t" />
14690 + <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">
14691 + <pos x="x2" y="b" />
14695 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14697 + <pos x="x3" y="t" />
14700 + <pos x="l" y="vc" />
14703 + <pos x="x3" y="b" />
14706 + <pos x="r" y="vc" />
14710 + <rect l="x2" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14712 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14715 + <pt x="l" y="vc" />
14718 + <pt x="x1" y="y1" />
14721 + <pt x="x1" y="y2" />
14724 + <pt x="x2" y="y2" />
14727 + <pt x="x2" y="t" />
14730 + <pt x="r" y="t" />
14733 + <pt x="r" y="b" />
14736 + <pt x="x2" y="b" />
14739 + <pt x="x2" y="y3" />
14742 + <pt x="x1" y="y3" />
14745 + <pt x="x1" y="y4" />
14751 + </leftArrowCallout>
14753 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14754 + <gd name="adj1" fmla="val 8333" />
14755 + <gd name="adj2" fmla="val 50000" />
14757 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14758 + <gd name="a2" fmla="pin 0 adj2 100000" />
14759 + <gd name="q1" fmla="+- 100000 0 a2" />
14760 + <gd name="q2" fmla="min q1 a2" />
14761 + <gd name="q3" fmla="*/ q2 1 2" />
14762 + <gd name="maxAdj1" fmla="*/ q3 h ss" />
14763 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
14764 + <gd name="y1" fmla="*/ ss a1 100000" />
14765 + <gd name="y3" fmla="*/ h a2 100000" />
14766 + <gd name="y4" fmla="+- y3 y1 0" />
14767 + <gd name="dx1" fmla="cos wd2 2700000" />
14768 + <gd name="dy1" fmla="sin y1 2700000" />
14769 + <gd name="il" fmla="+- r 0 dx1" />
14770 + <gd name="it" fmla="+- y1 0 dy1" />
14771 + <gd name="ib" fmla="+- b dy1 y1" />
14773 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14774 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
14775 + <pos x="hc" y="y1" />
14777 + <ahXY gdRefY="adj2" minY="0" maxY="100000">
14778 + <pos x="l" y="y3" />
14781 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14783 + <pos x="r" y="t" />
14786 + <pos x="l" y="y3" />
14789 + <pos x="r" y="b" />
14792 + <rect l="il" t="it" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14793 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14794 + <path stroke="false" extrusionOk="false">
14796 + <pt x="r" y="b" />
14798 + <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="cd4" />
14800 + <pt x="hc" y="y4" />
14802 + <arcTo wR="wd2" hR="y1" stAng="0" swAng="-5400000" />
14803 + <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="-5400000" />
14805 + <pt x="hc" y="y1" />
14807 + <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd4" />
14810 + <path fill="none">
14812 + <pt x="r" y="b" />
14814 + <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="cd4" />
14816 + <pt x="hc" y="y4" />
14818 + <arcTo wR="wd2" hR="y1" stAng="0" swAng="-5400000" />
14819 + <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="-5400000" />
14821 + <pt x="hc" y="y1" />
14823 + <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd4" />
14829 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14830 + <gd name="adj" fmla="val 8333" />
14834 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14835 + <gd name="maxAdj" fmla="*/ 50000 h ss" />
14837 + <gd name="a" fmla="pin 0 adj maxAdj" />
14838 + <gd name="y1" fmla="*/ ss a 100000" />
14840 + <gd name="y2" fmla="+- b 0 y1" />
14842 + <gd name="dx1" fmla="cos w 2700000" />
14843 + <gd name="dy1" fmla="sin y1 2700000" />
14844 + <gd name="il" fmla="+- r 0 dx1" />
14845 + <gd name="it" fmla="+- y1 0 dy1" />
14846 + <gd name="ib" fmla="+- b dy1 y1" />
14849 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14850 + <ahXY gdRefY="adj" minY="0" maxY="maxAdj">
14851 + <pos x="l" y="y1" />
14855 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14857 + <pos x="r" y="t" />
14860 + <pos x="l" y="vc" />
14863 + <pos x="r" y="b" />
14867 + <rect l="il" t="it" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
14869 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14870 + <path stroke="false" extrusionOk="false">
14873 + <pt x="r" y="b" />
14875 + <arcTo wR="w" hR="y1" stAng="cd4" swAng="cd4" />
14877 + <pt x="l" y="y1" />
14879 + <arcTo wR="w" hR="y1" stAng="cd2" swAng="cd4" />
14882 + <path fill="none">
14885 + <pt x="r" y="b" />
14887 + <arcTo wR="w" hR="y1" stAng="cd4" swAng="cd4" />
14889 + <pt x="l" y="y1" />
14891 + <arcTo wR="w" hR="y1" stAng="cd2" swAng="cd4" />
14896 + <leftCircularArrow>
14898 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14899 + <gd name="adj1" fmla="val 12500" />
14901 + <gd name="adj2" fmla="val -1142319" />
14903 + <gd name="adj3" fmla="val 1142319" />
14905 + <gd name="adj4" fmla="val 10800000" />
14907 + <gd name="adj5" fmla="val 12500" />
14910 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
14911 + <gd name="a5" fmla="pin 0 adj5 25000" />
14913 + <gd name="maxAdj1" fmla="*/ a5 2 1" />
14915 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
14916 + <gd name="enAng" fmla="pin 1 adj3 21599999" />
14917 + <gd name="stAng" fmla="pin 0 adj4 21599999" />
14919 + <gd name="th" fmla="*/ ss a1 100000" />
14921 + <gd name="thh" fmla="*/ ss a5 100000" />
14923 + <gd name="th2" fmla="*/ th 1 2" />
14926 + <gd name="rw1" fmla="+- wd2 th2 thh" />
14928 + <gd name="rh1" fmla="+- hd2 th2 thh" />
14930 + <gd name="rw2" fmla="+- rw1 0 th" />
14932 + <gd name="rh2" fmla="+- rh1 0 th" />
14934 + <gd name="rw3" fmla="+- rw2 th2 0" />
14936 + <gd name="rh3" fmla="+- rh2 th2 0" />
14939 + <gd name="wtH" fmla="sin rw3 enAng" />
14940 + <gd name="htH" fmla="cos rh3 enAng" />
14941 + <gd name="dxH" fmla="cat2 rw3 htH wtH" />
14942 + <gd name="dyH" fmla="sat2 rh3 htH wtH" />
14943 + <gd name="xH" fmla="+- hc dxH 0" />
14945 + <gd name="yH" fmla="+- vc dyH 0" />
14948 + <gd name="rI" fmla="min rw2 rh2" />
14950 + <gd name="u1" fmla="*/ dxH dxH 1" />
14951 + <gd name="u2" fmla="*/ dyH dyH 1" />
14952 + <gd name="u3" fmla="*/ rI rI 1" />
14953 + <gd name="u4" fmla="+- u1 0 u3" />
14954 + <gd name="u5" fmla="+- u2 0 u3" />
14955 + <gd name="u6" fmla="*/ u4 u5 u1" />
14956 + <gd name="u7" fmla="*/ u6 1 u2" />
14957 + <gd name="u8" fmla="+- 1 0 u7" />
14958 + <gd name="u9" fmla="sqrt u8" />
14959 + <gd name="u10" fmla="*/ u4 1 dxH" />
14960 + <gd name="u11" fmla="*/ u10 1 dyH" />
14961 + <gd name="u12" fmla="+/ 1 u9 u11" />
14962 + <gd name="u13" fmla="at2 1 u12" />
14963 + <gd name="u14" fmla="+- u13 21600000 0" />
14964 + <gd name="u15" fmla="?: u13 u13 u14" />
14965 + <gd name="u16" fmla="+- u15 0 enAng" />
14967 + <gd name="u17" fmla="+- u16 21600000 0" />
14968 + <gd name="u18" fmla="?: u16 u16 u17" />
14969 + <gd name="u19" fmla="+- u18 0 cd2" />
14970 + <gd name="u20" fmla="+- u18 0 21600000" />
14971 + <gd name="u21" fmla="?: u19 u20 u18" />
14972 + <gd name="u22" fmla="abs u21" />
14973 + <gd name="minAng" fmla="*/ u22 -1 1" />
14974 + <gd name="u23" fmla="abs adj2" />
14975 + <gd name="a2" fmla="*/ u23 -1 1" />
14976 + <gd name="aAng" fmla="pin minAng a2 0" />
14978 + <gd name="ptAng" fmla="+- enAng aAng 0" />
14981 + <gd name="wtA" fmla="sin rw3 ptAng" />
14982 + <gd name="htA" fmla="cos rh3 ptAng" />
14983 + <gd name="dxA" fmla="cat2 rw3 htA wtA" />
14984 + <gd name="dyA" fmla="sat2 rh3 htA wtA" />
14985 + <gd name="xA" fmla="+- hc dxA 0" />
14987 + <gd name="yA" fmla="+- vc dyA 0" />
14990 + <gd name="wtE" fmla="sin rw1 stAng" />
14991 + <gd name="htE" fmla="cos rh1 stAng" />
14992 + <gd name="dxE" fmla="cat2 rw1 htE wtE" />
14993 + <gd name="dyE" fmla="sat2 rh1 htE wtE" />
14994 + <gd name="xE" fmla="+- hc dxE 0" />
14996 + <gd name="yE" fmla="+- vc dyE 0" />
14999 + <gd name="wtD" fmla="sin rw2 stAng" />
15000 + <gd name="htD" fmla="cos rh2 stAng" />
15001 + <gd name="dxD" fmla="cat2 rw2 htD wtD" />
15002 + <gd name="dyD" fmla="sat2 rh2 htD wtD" />
15003 + <gd name="xD" fmla="+- hc dxD 0" />
15005 + <gd name="yD" fmla="+- vc dyD 0" />
15008 + <gd name="dxG" fmla="cos thh ptAng" />
15009 + <gd name="dyG" fmla="sin thh ptAng" />
15010 + <gd name="xG" fmla="+- xH dxG 0" />
15012 + <gd name="yG" fmla="+- yH dyG 0" />
15015 + <gd name="dxB" fmla="cos thh ptAng" />
15016 + <gd name="dyB" fmla="sin thh ptAng" />
15017 + <gd name="xB" fmla="+- xH 0 dxB 0" />
15019 + <gd name="yB" fmla="+- yH 0 dyB 0" />
15022 + <gd name="sx1" fmla="+- xB 0 hc" />
15024 + <gd name="sy1" fmla="+- yB 0 vc" />
15026 + <gd name="sx2" fmla="+- xG 0 hc" />
15028 + <gd name="sy2" fmla="+- yG 0 vc" />
15031 + <gd name="rO" fmla="min rw1 rh1" />
15033 + <gd name="x1O" fmla="*/ sx1 rO rw1" />
15035 + <gd name="y1O" fmla="*/ sy1 rO rh1" />
15037 + <gd name="x2O" fmla="*/ sx2 rO rw1" />
15039 + <gd name="y2O" fmla="*/ sy2 rO rh1" />
15042 + <gd name="dxO" fmla="+- x2O 0 x1O" />
15043 + <gd name="dyO" fmla="+- y2O 0 y1O" />
15044 + <gd name="dO" fmla="mod dxO dyO 0" />
15046 + <gd name="q1" fmla="*/ x1O y2O 1" />
15047 + <gd name="q2" fmla="*/ x2O y1O 1" />
15048 + <gd name="DO" fmla="+- q1 0 q2" />
15051 + <gd name="q3" fmla="*/ rO rO 1" />
15053 + <gd name="q4" fmla="*/ dO dO 1" />
15055 + <gd name="q5" fmla="*/ q3 q4 1" />
15057 + <gd name="q6" fmla="*/ DO DO 1" />
15059 + <gd name="q7" fmla="+- q5 0 q6" />
15061 + <gd name="q8" fmla="max q7 0" />
15063 + <gd name="sdelO" fmla="sqrt q8" />
15065 + <gd name="ndyO" fmla="*/ dyO -1 1" />
15066 + <gd name="sdyO" fmla="?: ndyO -1 1" />
15068 + <gd name="q9" fmla="*/ sdyO dxO 1" />
15070 + <gd name="q10" fmla="*/ q9 sdelO 1" />
15072 + <gd name="q11" fmla="*/ DO dyO 1" />
15074 + <gd name="dxF1" fmla="+/ q11 q10 q4" />
15076 + <gd name="q12" fmla="+- q11 0 q10" />
15077 + <gd name="dxF2" fmla="*/ q12 1 q4" />
15080 + <gd name="adyO" fmla="abs dyO" />
15081 + <gd name="q13" fmla="*/ adyO sdelO 1" />
15083 + <gd name="q14" fmla="*/ DO dxO -1" />
15085 + <gd name="dyF1" fmla="+/ q14 q13 q4" />
15087 + <gd name="q15" fmla="+- q14 0 q13" />
15088 + <gd name="dyF2" fmla="*/ q15 1 q4" />
15092 + <gd name="q16" fmla="+- x2O 0 dxF1" />
15093 + <gd name="q17" fmla="+- x2O 0 dxF2" />
15094 + <gd name="q18" fmla="+- y2O 0 dyF1" />
15095 + <gd name="q19" fmla="+- y2O 0 dyF2" />
15096 + <gd name="q20" fmla="mod q16 q18 0" />
15098 + <gd name="q21" fmla="mod q17 q19 0" />
15100 + <gd name="q22" fmla="+- q21 0 q20" />
15101 + <gd name="dxF" fmla="?: q22 dxF1 dxF2" />
15103 + <gd name="dyF" fmla="?: q22 dyF1 dyF2" />
15105 + <gd name="sdxF" fmla="*/ dxF rw1 rO" />
15107 + <gd name="sdyF" fmla="*/ dyF rh1 rO" />
15109 + <gd name="xF" fmla="+- hc sdxF 0" />
15111 + <gd name="yF" fmla="+- vc sdyF 0" />
15116 + <gd name="x1I" fmla="*/ sx1 rI rw2" />
15118 + <gd name="y1I" fmla="*/ sy1 rI rh2" />
15120 + <gd name="x2I" fmla="*/ sx2 rI rw2" />
15122 + <gd name="y2I" fmla="*/ sy2 rI rh2" />
15125 + <gd name="dxI" fmla="+- x2I 0 x1I" />
15126 + <gd name="dyI" fmla="+- y2I 0 y1I" />
15127 + <gd name="dI" fmla="mod dxI dyI 0" />
15128 + <gd name="v1" fmla="*/ x1I y2I 1" />
15129 + <gd name="v2" fmla="*/ x2I y1I 1" />
15130 + <gd name="DI" fmla="+- v1 0 v2" />
15132 + <gd name="v3" fmla="*/ rI rI 1" />
15133 + <gd name="v4" fmla="*/ dI dI 1" />
15134 + <gd name="v5" fmla="*/ v3 v4 1" />
15135 + <gd name="v6" fmla="*/ DI DI 1" />
15136 + <gd name="v7" fmla="+- v5 0 v6" />
15137 + <gd name="v8" fmla="max v7 0" />
15138 + <gd name="sdelI" fmla="sqrt v8" />
15139 + <gd name="v9" fmla="*/ sdyO dxI 1" />
15140 + <gd name="v10" fmla="*/ v9 sdelI 1" />
15141 + <gd name="v11" fmla="*/ DI dyI 1" />
15142 + <gd name="dxC1" fmla="+/ v11 v10 v4" />
15143 + <gd name="v12" fmla="+- v11 0 v10" />
15144 + <gd name="dxC2" fmla="*/ v12 1 v4" />
15146 + <gd name="adyI" fmla="abs dyI" />
15147 + <gd name="v13" fmla="*/ adyI sdelI 1" />
15148 + <gd name="v14" fmla="*/ DI dxI -1" />
15149 + <gd name="dyC1" fmla="+/ v14 v13 v4" />
15150 + <gd name="v15" fmla="+- v14 0 v13" />
15151 + <gd name="dyC2" fmla="*/ v15 1 v4" />
15153 + <gd name="v16" fmla="+- x1I 0 dxC1" />
15154 + <gd name="v17" fmla="+- x1I 0 dxC2" />
15155 + <gd name="v18" fmla="+- y1I 0 dyC1" />
15156 + <gd name="v19" fmla="+- y1I 0 dyC2" />
15157 + <gd name="v20" fmla="mod v16 v18 0" />
15158 + <gd name="v21" fmla="mod v17 v19 0" />
15159 + <gd name="v22" fmla="+- v21 0 v20" />
15160 + <gd name="dxC" fmla="?: v22 dxC1 dxC2" />
15161 + <gd name="dyC" fmla="?: v22 dyC1 dyC2" />
15162 + <gd name="sdxC" fmla="*/ dxC rw2 rI" />
15163 + <gd name="sdyC" fmla="*/ dyC rh2 rI" />
15164 + <gd name="xC" fmla="+- hc sdxC 0" />
15166 + <gd name="yC" fmla="+- vc sdyC 0" />
15169 + <gd name="ist0" fmla="at2 sdxC sdyC" />
15170 + <gd name="ist1" fmla="+- ist0 21600000 0" />
15171 + <gd name="istAng0" fmla="?: ist0 ist0 ist1" />
15172 + <gd name="isw1" fmla="+- stAng 0 istAng0" />
15173 + <gd name="isw2" fmla="+- isw1 21600000 0" />
15174 + <gd name="iswAng0" fmla="?: isw1 isw1 isw2" />
15176 + <gd name="istAng" fmla="+- istAng0 iswAng0 0" />
15177 + <gd name="iswAng" fmla="+- 0 0 iswAng0" />
15179 + <gd name="p1" fmla="+- xF 0 xC" />
15180 + <gd name="p2" fmla="+- yF 0 yC" />
15181 + <gd name="p3" fmla="mod p1 p2 0" />
15182 + <gd name="p4" fmla="*/ p3 1 2" />
15183 + <gd name="p5" fmla="+- p4 0 thh" />
15184 + <gd name="xGp" fmla="?: p5 xF xG" />
15185 + <gd name="yGp" fmla="?: p5 yF yG" />
15186 + <gd name="xBp" fmla="?: p5 xC xB" />
15187 + <gd name="yBp" fmla="?: p5 yC yB" />
15189 + <gd name="en0" fmla="at2 sdxF sdyF" />
15190 + <gd name="en1" fmla="+- en0 21600000 0" />
15191 + <gd name="en2" fmla="?: en0 en0 en1" />
15192 + <gd name="sw0" fmla="+- en2 0 stAng" />
15193 + <gd name="sw1" fmla="+- sw0 0 21600000" />
15194 + <gd name="swAng" fmla="?: sw0 sw1 sw0" />
15197 + <gd name="stAng0" fmla="+- stAng swAng 0" />
15199 + <gd name="swAng0" fmla="+- 0 0 swAng" />
15202 + <gd name="wtI" fmla="sin rw3 stAng" />
15203 + <gd name="htI" fmla="cos rh3 stAng" />
15204 + <gd name="dxI" fmla="cat2 rw3 htI wtI" />
15205 + <gd name="dyI" fmla="sat2 rh3 htI wtI" />
15206 + <gd name="xI" fmla="+- hc dxI 0" />
15208 + <gd name="yI" fmla="+- vc dyI 0" />
15211 + <gd name="aI" fmla="+- stAng cd4 0" />
15212 + <gd name="aA" fmla="+- ptAng 0 cd4" />
15213 + <gd name="aB" fmla="+- ptAng cd2 0" />
15215 + <gd name="idx" fmla="cos rw1 2700000" />
15216 + <gd name="idy" fmla="sin rh1 2700000" />
15217 + <gd name="il" fmla="+- hc 0 idx" />
15218 + <gd name="ir" fmla="+- hc idx 0" />
15219 + <gd name="it" fmla="+- vc 0 idy" />
15220 + <gd name="ib" fmla="+- vc idy 0" />
15223 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15224 + <ahPolar gdRefAng="adj2" minAng="minAng" maxAng="0">
15225 + <pos x="xA" y="yA" />
15227 + <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">
15228 + <pos x="xE" y="yE" />
15230 + <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">
15231 + <pos x="xF" y="yF" />
15233 + <ahPolar gdRefR="adj5" minR="0" maxR="25000">
15234 + <pos x="xB" y="yB" />
15238 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15240 + <pos x="xI" y="yI" />
15242 + <cxn ang="ptAng">
15243 + <pos x="xGp" y="yGp" />
15246 + <pos x="xA" y="yA" />
15249 + <pos x="xBp" y="yBp" />
15253 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
15255 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15258 + <pt x="xE" y="yE" />
15261 + <pt x="xD" y="yD" />
15263 + <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />
15265 + <pt x="xBp" y="yBp" />
15268 + <pt x="xA" y="yA" />
15271 + <pt x="xGp" y="yGp" />
15274 + <pt x="xF" y="yF" />
15276 + <arcTo wR="rw1" hR="rh1" stAng="stAng0" swAng="swAng0" />
15281 + </leftCircularArrow>
15283 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15284 + <gd name="adj1" fmla="val 50000" />
15285 + <gd name="adj2" fmla="val 50000" />
15287 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15288 + <gd name="maxAdj2" fmla="*/ 50000 w ss" />
15289 + <gd name="a1" fmla="pin 0 adj1 100000" />
15290 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
15291 + <gd name="x2" fmla="*/ ss a2 100000" />
15292 + <gd name="x3" fmla="+- r 0 x2" />
15293 + <gd name="dy" fmla="*/ h a1 200000" />
15294 + <gd name="y1" fmla="+- vc 0 dy" />
15295 + <gd name="y2" fmla="+- vc dy 0" />
15296 + <gd name="dx1" fmla="*/ y1 x2 hd2" />
15297 + <gd name="x1" fmla="+- x2 0 dx1" />
15298 + <gd name="x4" fmla="+- x3 dx1 0" />
15300 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15301 + <ahXY gdRefY="adj1" minY="0" maxY="100000">
15302 + <pos x="x3" y="y1" />
15304 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
15305 + <pos x="x2" y="t" />
15308 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15310 + <pos x="r" y="vc" />
15313 + <pos x="x3" y="b" />
15316 + <pos x="x2" y="b" />
15319 + <pos x="l" y="vc" />
15322 + <pos x="x2" y="t" />
15325 + <pos x="x3" y="t" />
15328 + <rect l="x1" t="y1" r="x4" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
15329 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15332 + <pt x="l" y="vc" />
15335 + <pt x="x2" y="t" />
15338 + <pt x="x2" y="y1" />
15341 + <pt x="x3" y="y1" />
15344 + <pt x="x3" y="t" />
15347 + <pt x="r" y="vc" />
15350 + <pt x="x3" y="b" />
15353 + <pt x="x3" y="y2" />
15356 + <pt x="x2" y="y2" />
15359 + <pt x="x2" y="b" />
15364 + </leftRightArrow>
15365 + <leftRightArrowCallout>
15367 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15368 + <gd name="adj1" fmla="val 25000" />
15370 + <gd name="adj2" fmla="val 25000" />
15372 + <gd name="adj3" fmla="val 25000" />
15374 + <gd name="adj4" fmla="val 48123" />
15378 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15379 + <gd name="maxAdj2" fmla="*/ 50000 h ss" />
15381 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
15382 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
15384 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
15385 + <gd name="maxAdj3" fmla="*/ 50000 w ss" />
15387 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
15388 + <gd name="q2" fmla="*/ a3 ss wd2" />
15390 + <gd name="maxAdj4" fmla="+- 100000 0 q2" />
15392 + <gd name="a4" fmla="pin 0 adj4 maxAdj4" />
15393 + <gd name="dy1" fmla="*/ ss a2 100000" />
15395 + <gd name="dy2" fmla="*/ ss a1 200000" />
15397 + <gd name="y1" fmla="+- vc 0 dy1" />
15398 + <gd name="y2" fmla="+- vc 0 dy2" />
15399 + <gd name="y3" fmla="+- vc dy2 0" />
15400 + <gd name="y4" fmla="+- vc dy1 0" />
15401 + <gd name="x1" fmla="*/ ss a3 100000" />
15403 + <gd name="x4" fmla="+- r 0 x1" />
15405 + <gd name="dx2" fmla="*/ w a4 200000" />
15407 + <gd name="x2" fmla="+- hc 0 dx2" />
15409 + <gd name="x3" fmla="+- hc dx2 0" />
15413 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15414 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
15415 + <pos x="x1" y="y2" />
15417 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
15418 + <pos x="l" y="y1" />
15420 + <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">
15421 + <pos x="x1" y="t" />
15423 + <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">
15424 + <pos x="x2" y="b" />
15428 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15430 + <pos x="hc" y="t" />
15433 + <pos x="l" y="vc" />
15436 + <pos x="hc" y="b" />
15439 + <pos x="r" y="vc" />
15443 + <rect l="x2" t="t" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
15445 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15448 + <pt x="l" y="vc" />
15451 + <pt x="x1" y="y1" />
15454 + <pt x="x1" y="y2" />
15457 + <pt x="x2" y="y2" />
15460 + <pt x="x2" y="t" />
15463 + <pt x="x3" y="t" />
15466 + <pt x="x3" y="y2" />
15469 + <pt x="x4" y="y2" />
15472 + <pt x="x4" y="y1" />
15475 + <pt x="r" y="vc" />
15478 + <pt x="x4" y="y4" />
15481 + <pt x="x4" y="y3" />
15484 + <pt x="x3" y="y3" />
15487 + <pt x="x3" y="b" />
15490 + <pt x="x2" y="b" />
15493 + <pt x="x2" y="y3" />
15496 + <pt x="x1" y="y3" />
15499 + <pt x="x1" y="y4" />
15505 + </leftRightArrowCallout>
15506 + <leftRightCircularArrow>
15508 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15509 + <gd name="adj1" fmla="val 12500" />
15511 + <gd name="adj2" fmla="val 1142319" />
15513 + <gd name="adj3" fmla="val 20457681" />
15515 + <gd name="adj4" fmla="val 11942319" />
15517 + <gd name="adj5" fmla="val 12500" />
15520 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15521 + <gd name="a5" fmla="pin 0 adj5 25000" />
15523 + <gd name="maxAdj1" fmla="*/ a5 2 1" />
15525 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
15526 + <gd name="enAng" fmla="pin 1 adj3 21599999" />
15527 + <gd name="stAng" fmla="pin 0 adj4 21599999" />
15529 + <gd name="th" fmla="*/ ss a1 100000" />
15531 + <gd name="thh" fmla="*/ ss a5 100000" />
15533 + <gd name="th2" fmla="*/ th 1 2" />
15536 + <gd name="rw1" fmla="+- wd2 th2 thh" />
15538 + <gd name="rh1" fmla="+- hd2 th2 thh" />
15540 + <gd name="rw2" fmla="+- rw1 0 th" />
15542 + <gd name="rh2" fmla="+- rh1 0 th" />
15544 + <gd name="rw3" fmla="+- rw2 th2 0" />
15546 + <gd name="rh3" fmla="+- rh2 th2 0" />
15549 + <gd name="wtH" fmla="sin rw3 enAng" />
15550 + <gd name="htH" fmla="cos rh3 enAng" />
15551 + <gd name="dxH" fmla="cat2 rw3 htH wtH" />
15552 + <gd name="dyH" fmla="sat2 rh3 htH wtH" />
15553 + <gd name="xH" fmla="+- hc dxH 0" />
15555 + <gd name="yH" fmla="+- vc dyH 0" />
15558 + <gd name="rI" fmla="min rw2 rh2" />
15560 + <gd name="u1" fmla="*/ dxH dxH 1" />
15561 + <gd name="u2" fmla="*/ dyH dyH 1" />
15562 + <gd name="u3" fmla="*/ rI rI 1" />
15563 + <gd name="u4" fmla="+- u1 0 u3" />
15564 + <gd name="u5" fmla="+- u2 0 u3" />
15565 + <gd name="u6" fmla="*/ u4 u5 u1" />
15566 + <gd name="u7" fmla="*/ u6 1 u2" />
15567 + <gd name="u8" fmla="+- 1 0 u7" />
15568 + <gd name="u9" fmla="sqrt u8" />
15569 + <gd name="u10" fmla="*/ u4 1 dxH" />
15570 + <gd name="u11" fmla="*/ u10 1 dyH" />
15571 + <gd name="u12" fmla="+/ 1 u9 u11" />
15572 + <gd name="u13" fmla="at2 1 u12" />
15573 + <gd name="u14" fmla="+- u13 21600000 0" />
15574 + <gd name="u15" fmla="?: u13 u13 u14" />
15575 + <gd name="u16" fmla="+- u15 0 enAng" />
15577 + <gd name="u17" fmla="+- u16 21600000 0" />
15578 + <gd name="u18" fmla="?: u16 u16 u17" />
15579 + <gd name="u19" fmla="+- u18 0 cd2" />
15580 + <gd name="u20" fmla="+- u18 0 21600000" />
15581 + <gd name="u21" fmla="?: u19 u20 u18" />
15582 + <gd name="maxAng" fmla="abs u21" />
15583 + <gd name="aAng" fmla="pin 0 adj2 maxAng" />
15585 + <gd name="ptAng" fmla="+- enAng aAng 0" />
15588 + <gd name="wtA" fmla="sin rw3 ptAng" />
15589 + <gd name="htA" fmla="cos rh3 ptAng" />
15590 + <gd name="dxA" fmla="cat2 rw3 htA wtA" />
15591 + <gd name="dyA" fmla="sat2 rh3 htA wtA" />
15592 + <gd name="xA" fmla="+- hc dxA 0" />
15594 + <gd name="yA" fmla="+- vc dyA 0" />
15597 + <gd name="dxG" fmla="cos thh ptAng" />
15598 + <gd name="dyG" fmla="sin thh ptAng" />
15599 + <gd name="xG" fmla="+- xH dxG 0" />
15601 + <gd name="yG" fmla="+- yH dyG 0" />
15604 + <gd name="dxB" fmla="cos thh ptAng" />
15605 + <gd name="dyB" fmla="sin thh ptAng" />
15606 + <gd name="xB" fmla="+- xH 0 dxB 0" />
15608 + <gd name="yB" fmla="+- yH 0 dyB 0" />
15611 + <gd name="sx1" fmla="+- xB 0 hc" />
15613 + <gd name="sy1" fmla="+- yB 0 vc" />
15615 + <gd name="sx2" fmla="+- xG 0 hc" />
15617 + <gd name="sy2" fmla="+- yG 0 vc" />
15620 + <gd name="rO" fmla="min rw1 rh1" />
15622 + <gd name="x1O" fmla="*/ sx1 rO rw1" />
15624 + <gd name="y1O" fmla="*/ sy1 rO rh1" />
15626 + <gd name="x2O" fmla="*/ sx2 rO rw1" />
15628 + <gd name="y2O" fmla="*/ sy2 rO rh1" />
15631 + <gd name="dxO" fmla="+- x2O 0 x1O" />
15632 + <gd name="dyO" fmla="+- y2O 0 y1O" />
15633 + <gd name="dO" fmla="mod dxO dyO 0" />
15635 + <gd name="q1" fmla="*/ x1O y2O 1" />
15636 + <gd name="q2" fmla="*/ x2O y1O 1" />
15637 + <gd name="DO" fmla="+- q1 0 q2" />
15640 + <gd name="q3" fmla="*/ rO rO 1" />
15642 + <gd name="q4" fmla="*/ dO dO 1" />
15644 + <gd name="q5" fmla="*/ q3 q4 1" />
15646 + <gd name="q6" fmla="*/ DO DO 1" />
15648 + <gd name="q7" fmla="+- q5 0 q6" />
15650 + <gd name="q8" fmla="max q7 0" />
15652 + <gd name="sdelO" fmla="sqrt q8" />
15654 + <gd name="ndyO" fmla="*/ dyO -1 1" />
15655 + <gd name="sdyO" fmla="?: ndyO -1 1" />
15657 + <gd name="q9" fmla="*/ sdyO dxO 1" />
15659 + <gd name="q10" fmla="*/ q9 sdelO 1" />
15661 + <gd name="q11" fmla="*/ DO dyO 1" />
15663 + <gd name="dxF1" fmla="+/ q11 q10 q4" />
15665 + <gd name="q12" fmla="+- q11 0 q10" />
15666 + <gd name="dxF2" fmla="*/ q12 1 q4" />
15669 + <gd name="adyO" fmla="abs dyO" />
15670 + <gd name="q13" fmla="*/ adyO sdelO 1" />
15672 + <gd name="q14" fmla="*/ DO dxO -1" />
15674 + <gd name="dyF1" fmla="+/ q14 q13 q4" />
15676 + <gd name="q15" fmla="+- q14 0 q13" />
15677 + <gd name="dyF2" fmla="*/ q15 1 q4" />
15681 + <gd name="q16" fmla="+- x2O 0 dxF1" />
15682 + <gd name="q17" fmla="+- x2O 0 dxF2" />
15683 + <gd name="q18" fmla="+- y2O 0 dyF1" />
15684 + <gd name="q19" fmla="+- y2O 0 dyF2" />
15685 + <gd name="q20" fmla="mod q16 q18 0" />
15687 + <gd name="q21" fmla="mod q17 q19 0" />
15689 + <gd name="q22" fmla="+- q21 0 q20" />
15690 + <gd name="dxF" fmla="?: q22 dxF1 dxF2" />
15692 + <gd name="dyF" fmla="?: q22 dyF1 dyF2" />
15694 + <gd name="sdxF" fmla="*/ dxF rw1 rO" />
15696 + <gd name="sdyF" fmla="*/ dyF rh1 rO" />
15698 + <gd name="xF" fmla="+- hc sdxF 0" />
15700 + <gd name="yF" fmla="+- vc sdyF 0" />
15705 + <gd name="x1I" fmla="*/ sx1 rI rw2" />
15707 + <gd name="y1I" fmla="*/ sy1 rI rh2" />
15709 + <gd name="x2I" fmla="*/ sx2 rI rw2" />
15711 + <gd name="y2I" fmla="*/ sy2 rI rh2" />
15714 + <gd name="dxI" fmla="+- x2I 0 x1I" />
15715 + <gd name="dyI" fmla="+- y2I 0 y1I" />
15716 + <gd name="dI" fmla="mod dxI dyI 0" />
15717 + <gd name="v1" fmla="*/ x1I y2I 1" />
15718 + <gd name="v2" fmla="*/ x2I y1I 1" />
15719 + <gd name="DI" fmla="+- v1 0 v2" />
15721 + <gd name="v3" fmla="*/ rI rI 1" />
15722 + <gd name="v4" fmla="*/ dI dI 1" />
15723 + <gd name="v5" fmla="*/ v3 v4 1" />
15724 + <gd name="v6" fmla="*/ DI DI 1" />
15725 + <gd name="v7" fmla="+- v5 0 v6" />
15726 + <gd name="v8" fmla="max v7 0" />
15727 + <gd name="sdelI" fmla="sqrt v8" />
15728 + <gd name="v9" fmla="*/ sdyO dxI 1" />
15729 + <gd name="v10" fmla="*/ v9 sdelI 1" />
15730 + <gd name="v11" fmla="*/ DI dyI 1" />
15731 + <gd name="dxC1" fmla="+/ v11 v10 v4" />
15732 + <gd name="v12" fmla="+- v11 0 v10" />
15733 + <gd name="dxC2" fmla="*/ v12 1 v4" />
15735 + <gd name="adyI" fmla="abs dyI" />
15736 + <gd name="v13" fmla="*/ adyI sdelI 1" />
15737 + <gd name="v14" fmla="*/ DI dxI -1" />
15738 + <gd name="dyC1" fmla="+/ v14 v13 v4" />
15739 + <gd name="v15" fmla="+- v14 0 v13" />
15740 + <gd name="dyC2" fmla="*/ v15 1 v4" />
15742 + <gd name="v16" fmla="+- x1I 0 dxC1" />
15743 + <gd name="v17" fmla="+- x1I 0 dxC2" />
15744 + <gd name="v18" fmla="+- y1I 0 dyC1" />
15745 + <gd name="v19" fmla="+- y1I 0 dyC2" />
15746 + <gd name="v20" fmla="mod v16 v18 0" />
15747 + <gd name="v21" fmla="mod v17 v19 0" />
15748 + <gd name="v22" fmla="+- v21 0 v20" />
15749 + <gd name="dxC" fmla="?: v22 dxC1 dxC2" />
15750 + <gd name="dyC" fmla="?: v22 dyC1 dyC2" />
15751 + <gd name="sdxC" fmla="*/ dxC rw2 rI" />
15752 + <gd name="sdyC" fmla="*/ dyC rh2 rI" />
15753 + <gd name="xC" fmla="+- hc sdxC 0" />
15755 + <gd name="yC" fmla="+- vc sdyC 0" />
15758 + <gd name="wtI" fmla="sin rw3 stAng" />
15759 + <gd name="htI" fmla="cos rh3 stAng" />
15760 + <gd name="dxI" fmla="cat2 rw3 htI wtI" />
15761 + <gd name="dyI" fmla="sat2 rh3 htI wtI" />
15762 + <gd name="xI" fmla="+- hc dxI 0" />
15764 + <gd name="yI" fmla="+- vc dyI 0" />
15767 + <gd name="lptAng" fmla="+- stAng 0 aAng" />
15770 + <gd name="wtL" fmla="sin rw3 lptAng" />
15771 + <gd name="htL" fmla="cos rh3 lptAng" />
15772 + <gd name="dxL" fmla="cat2 rw3 htL wtL" />
15773 + <gd name="dyL" fmla="sat2 rh3 htL wtL" />
15774 + <gd name="xL" fmla="+- hc dxL 0" />
15776 + <gd name="yL" fmla="+- vc dyL 0" />
15779 + <gd name="dxK" fmla="cos thh lptAng" />
15780 + <gd name="dyK" fmla="sin thh lptAng" />
15781 + <gd name="xK" fmla="+- xI dxK 0" />
15783 + <gd name="yK" fmla="+- yI dyK 0" />
15786 + <gd name="dxJ" fmla="cos thh lptAng" />
15787 + <gd name="dyJ" fmla="sin thh lptAng" />
15788 + <gd name="xJ" fmla="+- xI 0 dxJ 0" />
15790 + <gd name="yJ" fmla="+- yI 0 dyJ 0" />
15793 + <gd name="p1" fmla="+- xF 0 xC" />
15794 + <gd name="p2" fmla="+- yF 0 yC" />
15795 + <gd name="p3" fmla="mod p1 p2 0" />
15796 + <gd name="p4" fmla="*/ p3 1 2" />
15797 + <gd name="p5" fmla="+- p4 0 thh" />
15798 + <gd name="xGp" fmla="?: p5 xF xG" />
15799 + <gd name="yGp" fmla="?: p5 yF yG" />
15800 + <gd name="xBp" fmla="?: p5 xC xB" />
15801 + <gd name="yBp" fmla="?: p5 yC yB" />
15803 + <gd name="en0" fmla="at2 sdxF sdyF" />
15804 + <gd name="en1" fmla="+- en0 21600000 0" />
15805 + <gd name="en2" fmla="?: en0 en0 en1" />
15806 + <gd name="od0" fmla="+- en2 0 enAng" />
15807 + <gd name="od1" fmla="+- od0 21600000 0" />
15808 + <gd name="od2" fmla="?: od0 od0 od1" />
15810 + <gd name="st0" fmla="+- stAng 0 od2" />
15811 + <gd name="st1" fmla="+- st0 21600000 0" />
15812 + <gd name="st2" fmla="?: st0 st0 st1" />
15814 + <gd name="sw0" fmla="+- en2 0 st2" />
15815 + <gd name="sw1" fmla="+- sw0 21600000 0" />
15816 + <gd name="swAng" fmla="?: sw0 sw0 sw1" />
15819 + <gd name="ist0" fmla="at2 sdxC sdyC" />
15820 + <gd name="ist1" fmla="+- ist0 21600000 0" />
15821 + <gd name="istAng" fmla="?: ist0 ist0 ist1" />
15823 + <gd name="id0" fmla="+- istAng 0 enAng" />
15824 + <gd name="id1" fmla="+- id0 0 21600000" />
15825 + <gd name="id2" fmla="?: id0 id1 id0" />
15827 + <gd name="ien0" fmla="+- stAng 0 id2" />
15828 + <gd name="ien1" fmla="+- ien0 0 21600000" />
15829 + <gd name="ien2" fmla="?: ien1 ien1 ien0" />
15831 + <gd name="isw1" fmla="+- ien2 0 istAng" />
15832 + <gd name="isw2" fmla="+- isw1 0 21600000" />
15833 + <gd name="iswAng" fmla="?: isw1 isw2 isw1" />
15836 + <gd name="wtE" fmla="sin rw1 st2" />
15837 + <gd name="htE" fmla="cos rh1 st2" />
15838 + <gd name="dxE" fmla="cat2 rw1 htE wtE" />
15839 + <gd name="dyE" fmla="sat2 rh1 htE wtE" />
15840 + <gd name="xE" fmla="+- hc dxE 0" />
15842 + <gd name="yE" fmla="+- vc dyE 0" />
15845 + <gd name="wtD" fmla="sin rw2 ien2" />
15846 + <gd name="htD" fmla="cos rh2 ien2" />
15847 + <gd name="dxD" fmla="cat2 rw2 htD wtD" />
15848 + <gd name="dyD" fmla="sat2 rh2 htD wtD" />
15849 + <gd name="xD" fmla="+- hc dxD 0" />
15851 + <gd name="yD" fmla="+- vc dyD 0" />
15854 + <gd name="xKp" fmla="?: p5 xE xK" />
15855 + <gd name="yKp" fmla="?: p5 yE yK" />
15856 + <gd name="xJp" fmla="?: p5 xD xJ" />
15857 + <gd name="yJp" fmla="?: p5 yD yJ" />
15859 + <gd name="aL" fmla="+- lptAng 0 cd4" />
15860 + <gd name="aA" fmla="+- ptAng cd4 0" />
15861 + <gd name="aB" fmla="+- ptAng cd2 0" />
15862 + <gd name="aJ" fmla="+- lptAng cd2 0" />
15864 + <gd name="idx" fmla="cos rw1 2700000" />
15865 + <gd name="idy" fmla="sin rh1 2700000" />
15866 + <gd name="il" fmla="+- hc 0 idx" />
15867 + <gd name="ir" fmla="+- hc idx 0" />
15868 + <gd name="it" fmla="+- vc 0 idy" />
15869 + <gd name="ib" fmla="+- vc idy 0" />
15872 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15873 + <ahPolar gdRefAng="adj2" minAng="0" maxAng="maxAng">
15874 + <pos x="xA" y="yA" />
15876 + <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">
15877 + <pos x="xE" y="yE" />
15879 + <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">
15880 + <pos x="xF" y="yF" />
15882 + <ahPolar gdRefR="adj5" minR="0" maxR="25000">
15883 + <pos x="xB" y="yB" />
15887 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15889 + <pos x="xL" y="yL" />
15891 + <cxn ang="lptAng">
15892 + <pos x="xKp" y="yKp" />
15894 + <cxn ang="ptAng">
15895 + <pos x="xGp" y="yGp" />
15898 + <pos x="xA" y="yA" />
15901 + <pos x="xBp" y="yBp" />
15904 + <pos x="xJp" y="yJp" />
15908 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
15910 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15913 + <pt x="xL" y="yL" />
15916 + <pt x="xKp" y="yKp" />
15919 + <pt x="xE" y="yE" />
15921 + <arcTo wR="rw1" hR="rh1" stAng="st2" swAng="swAng" />
15923 + <pt x="xGp" y="yGp" />
15926 + <pt x="xA" y="yA" />
15929 + <pt x="xBp" y="yBp" />
15932 + <pt x="xC" y="yC" />
15934 + <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />
15936 + <pt x="xJp" y="yJp" />
15942 + </leftRightCircularArrow>
15943 + <leftRightRibbon>
15945 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15946 + <gd name="adj1" fmla="val 50000" />
15948 + <gd name="adj2" fmla="val 50000" />
15950 + <gd name="adj3" fmla="val 16667" />
15954 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
15955 + <gd name="a3" fmla="pin 0 adj3 33333" />
15956 + <gd name="maxAdj1" fmla="+- 100000 0 a3" />
15957 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
15959 + <gd name="w1" fmla="+- wd2 0 wd32" />
15960 + <gd name="maxAdj2" fmla="*/ 100000 w1 ss" />
15961 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
15963 + <gd name="x1" fmla="*/ ss a2 100000" />
15965 + <gd name="x4" fmla="+- r 0 x1" />
15967 + <gd name="dy1" fmla="*/ h a1 200000" />
15969 + <gd name="dy2" fmla="*/ h a3 -200000" />
15971 + <gd name="ly1" fmla="+- vc dy2 dy1" />
15973 + <gd name="ry4" fmla="+- vc dy1 dy2" />
15975 + <gd name="ly2" fmla="+- ly1 dy1 0" />
15977 + <gd name="ry3" fmla="+- b 0 ly2" />
15979 + <gd name="ly4" fmla="*/ ly2 2 1" />
15981 + <gd name="ry1" fmla="+- b 0 ly4" />
15983 + <gd name="ly3" fmla="+- ly4 0 ly1" />
15985 + <gd name="ry2" fmla="+- b 0 ly3" />
15988 + <gd name="hR" fmla="*/ a3 ss 400000" />
15990 + <gd name="x2" fmla="+- hc 0 wd32" />
15992 + <gd name="x3" fmla="+- hc wd32 0" />
15994 + <gd name="y1" fmla="+- ly1 hR 0" />
15996 + <gd name="y2" fmla="+- ry2 0 hR" />
16001 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16002 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
16003 + <pos x="x4" y="ry2" />
16005 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
16006 + <pos x="x1" y="t" />
16008 + <ahXY gdRefY="adj3" minY="0" maxY="33333">
16009 + <pos x="x3" y="ry2" />
16013 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16015 + <pos x="r" y="ry3" />
16018 + <pos x="x4" y="b" />
16021 + <pos x="x1" y="ly4" />
16024 + <pos x="l" y="ly2" />
16027 + <pos x="x1" y="t" />
16030 + <pos x="x4" y="ry1" />
16034 + <rect l="x1" t="ly1" r="x4" b="ry4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
16036 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16037 + <path stroke="false" extrusionOk="false">
16040 + <pt x="l" y="ly2" />
16043 + <pt x="x1" y="t" />
16046 + <pt x="x1" y="ly1" />
16049 + <pt x="hc" y="ly1" />
16051 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />
16052 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />
16054 + <pt x="x4" y="ry2" />
16057 + <pt x="x4" y="ry1" />
16060 + <pt x="r" y="ry3" />
16063 + <pt x="x4" y="b" />
16066 + <pt x="x4" y="ry4" />
16069 + <pt x="hc" y="ry4" />
16071 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />
16073 + <pt x="x2" y="ly3" />
16076 + <pt x="x1" y="ly3" />
16079 + <pt x="x1" y="ly4" />
16083 + <path stroke="false" fill="darkenLess" extrusionOk="false">
16086 + <pt x="x3" y="y1" />
16088 + <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />
16089 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />
16091 + <pt x="x3" y="ry2" />
16095 + <path fill="none" extrusionOk="false">
16098 + <pt x="l" y="ly2" />
16101 + <pt x="x1" y="t" />
16104 + <pt x="x1" y="ly1" />
16107 + <pt x="hc" y="ly1" />
16109 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />
16110 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />
16112 + <pt x="x4" y="ry2" />
16115 + <pt x="x4" y="ry1" />
16118 + <pt x="r" y="ry3" />
16121 + <pt x="x4" y="b" />
16124 + <pt x="x4" y="ry4" />
16127 + <pt x="hc" y="ry4" />
16129 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />
16131 + <pt x="x2" y="ly3" />
16134 + <pt x="x1" y="ly3" />
16137 + <pt x="x1" y="ly4" />
16141 + <pt x="x3" y="y1" />
16144 + <pt x="x3" y="ry2" />
16147 + <pt x="x2" y="y2" />
16150 + <pt x="x2" y="ly3" />
16155 + </leftRightRibbon>
16156 + <leftRightUpArrow>
16158 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16159 + <gd name="adj1" fmla="val 25000" />
16161 + <gd name="adj2" fmla="val 25000" />
16163 + <gd name="adj3" fmla="val 25000" />
16167 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16168 + <gd name="a2" fmla="pin 0 adj2 50000" />
16169 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
16170 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
16171 + <gd name="q1" fmla="+- 100000 0 maxAdj1" />
16172 + <gd name="maxAdj3" fmla="*/ q1 1 2" />
16173 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
16174 + <gd name="x1" fmla="*/ ss a3 100000" />
16175 + <gd name="dx2" fmla="*/ ss a2 100000" />
16177 + <gd name="x2" fmla="+- hc 0 dx2" />
16178 + <gd name="x5" fmla="+- hc dx2 0" />
16179 + <gd name="dx3" fmla="*/ ss a1 200000" />
16181 + <gd name="x3" fmla="+- hc 0 dx3" />
16182 + <gd name="x4" fmla="+- hc dx3 0" />
16183 + <gd name="x6" fmla="+- r 0 x1" />
16185 + <gd name="dy2" fmla="*/ ss a2 50000" />
16187 + <gd name="y2" fmla="+- b 0 dy2" />
16188 + <gd name="y4" fmla="+- b 0 dx2" />
16189 + <gd name="y3" fmla="+- y4 0 dx3" />
16190 + <gd name="y5" fmla="+- y4 dx3 0" />
16191 + <gd name="il" fmla="*/ dx3 x1 dx2" />
16192 + <gd name="ir" fmla="+- r 0 il" />
16195 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16196 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">
16197 + <pos x="x3" y="x1" />
16199 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
16200 + <pos x="x2" y="t" />
16202 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
16203 + <pos x="r" y="x1" />
16207 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16209 + <pos x="hc" y="t" />
16212 + <pos x="l" y="y4" />
16215 + <pos x="hc" y="y5" />
16218 + <pos x="r" y="y4" />
16222 + <rect l="il" t="y3" r="ir" b="y5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
16224 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16227 + <pt x="l" y="y4" />
16230 + <pt x="x1" y="y2" />
16233 + <pt x="x1" y="y3" />
16236 + <pt x="x3" y="y3" />
16239 + <pt x="x3" y="x1" />
16242 + <pt x="x2" y="x1" />
16245 + <pt x="hc" y="t" />
16248 + <pt x="x5" y="x1" />
16251 + <pt x="x4" y="x1" />
16254 + <pt x="x4" y="y3" />
16257 + <pt x="x6" y="y3" />
16260 + <pt x="x6" y="y2" />
16263 + <pt x="r" y="y4" />
16266 + <pt x="x6" y="b" />
16269 + <pt x="x6" y="y5" />
16272 + <pt x="x1" y="y5" />
16275 + <pt x="x1" y="b" />
16281 + </leftRightUpArrow>
16284 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16285 + <gd name="adj1" fmla="val 25000" />
16287 + <gd name="adj2" fmla="val 25000" />
16289 + <gd name="adj3" fmla="val 25000" />
16293 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16294 + <gd name="a2" fmla="pin 0 adj2 50000" />
16295 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
16296 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
16297 + <gd name="maxAdj3" fmla="+- 100000 0 maxAdj1" />
16298 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
16299 + <gd name="x1" fmla="*/ ss a3 100000" />
16301 + <gd name="dx2" fmla="*/ ss a2 50000" />
16303 + <gd name="x2" fmla="+- r 0 dx2" />
16304 + <gd name="y2" fmla="+- b 0 dx2" />
16305 + <gd name="dx4" fmla="*/ ss a2 100000" />
16307 + <gd name="x4" fmla="+- r 0 dx4" />
16308 + <gd name="y4" fmla="+- b 0 dx4" />
16309 + <gd name="dx3" fmla="*/ ss a1 200000" />
16311 + <gd name="x3" fmla="+- x4 0 dx3" />
16312 + <gd name="x5" fmla="+- x4 dx3 0" />
16313 + <gd name="y3" fmla="+- y4 0 dx3" />
16314 + <gd name="y5" fmla="+- y4 dx3 0" />
16315 + <gd name="il" fmla="*/ dx3 x1 dx4" />
16316 + <gd name="cx1" fmla="+/ x1 x5 2" />
16317 + <gd name="cy1" fmla="+/ x1 y5 2" />
16320 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16321 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
16322 + <pos x="x3" y="y3" />
16324 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
16325 + <pos x="x2" y="t" />
16327 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
16328 + <pos x="x3" y="x1" />
16332 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16334 + <pos x="x4" y="t" />
16337 + <pos x="x2" y="x1" />
16340 + <pos x="x1" y="y2" />
16343 + <pos x="l" y="y4" />
16346 + <pos x="x1" y="b" />
16349 + <pos x="cx1" y="y5" />
16352 + <pos x="x5" y="cy1" />
16355 + <pos x="r" y="x1" />
16359 + <rect l="il" t="y3" r="x4" b="y5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
16361 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16364 + <pt x="l" y="y4" />
16367 + <pt x="x1" y="y2" />
16370 + <pt x="x1" y="y3" />
16373 + <pt x="x3" y="y3" />
16376 + <pt x="x3" y="x1" />
16379 + <pt x="x2" y="x1" />
16382 + <pt x="x4" y="t" />
16385 + <pt x="r" y="x1" />
16388 + <pt x="x5" y="x1" />
16391 + <pt x="x5" y="y5" />
16394 + <pt x="x1" y="y5" />
16397 + <pt x="x1" y="b" />
16406 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16407 + <gd name="x1" fmla="*/ w 5022 21600" />
16408 + <gd name="x3" fmla="*/ w 8472 21600" />
16409 + <gd name="x4" fmla="*/ w 8757 21600" />
16411 + <gd name="x5" fmla="*/ w 10012 21600" />
16412 + <gd name="x8" fmla="*/ w 12860 21600" />
16413 + <gd name="x9" fmla="*/ w 13917 21600" />
16415 + <gd name="x11" fmla="*/ w 16577 21600" />
16416 + <gd name="y1" fmla="*/ h 3890 21600" />
16417 + <gd name="y2" fmla="*/ h 6080 21600" />
16418 + <gd name="y4" fmla="*/ h 7437 21600" />
16420 + <gd name="y6" fmla="*/ h 9705 21600" />
16421 + <gd name="y7" fmla="*/ h 12007 21600" />
16422 + <gd name="y10" fmla="*/ h 14277 21600" />
16424 + <gd name="y11" fmla="*/ h 14915 21600" />
16428 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16430 + <pos x="x3" y="t" />
16433 + <pos x="l" y="y1" />
16436 + <pos x="x1" y="y6" />
16439 + <pos x="x5" y="y11" />
16442 + <pos x="r" y="b" />
16445 + <pos x="x11" y="y7" />
16448 + <pos x="x8" y="y2" />
16452 + <rect l="x4" t="y4" r="x9" b="y10" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
16454 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16455 + <path w="21600" h="21600">
16457 + <pt x="8472" y="0" />
16460 + <pt x="12860" y="6080" />
16463 + <pt x="11050" y="6797" />
16466 + <pt x="16577" y="12007" />
16469 + <pt x="14767" y="12877" />
16472 + <pt x="21600" y="21600" />
16475 + <pt x="10012" y="14915" />
16478 + <pt x="12222" y="13987" />
16481 + <pt x="5022" y="9705" />
16484 + <pt x="7602" y="8382" />
16487 + <pt x="0" y="3890" />
16495 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16497 + <pos x="l" y="t" />
16500 + <pos x="r" y="b" />
16503 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16506 + <pt x="l" y="t" />
16509 + <pt x="r" y="b" />
16515 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16517 + <pos x="l" y="b" />
16520 + <pos x="r" y="t" />
16523 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16526 + <pt x="l" y="b" />
16529 + <pt x="r" y="t" />
16536 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16537 + <gd name="adj1" fmla="val 23520" />
16539 + <gd name="adj2" fmla="val 5880" />
16541 + <gd name="adj3" fmla="val 11760" />
16545 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16547 + <gd name="a1" fmla="pin 1000 adj1 36745" />
16548 + <gd name="ma1" fmla="+- 0 0 a1" />
16550 + <gd name="ma3h" fmla="+/ 73490 ma1 4" />
16552 + <gd name="ma3w" fmla="*/ 36745 w h" />
16554 + <gd name="maxAdj3" fmla="min ma3h ma3w" />
16555 + <gd name="a3" fmla="pin 1000 adj3 maxAdj3" />
16556 + <gd name="m4a3" fmla="*/ -4 a3 1" />
16558 + <gd name="maxAdj2" fmla="+- 73490 m4a3 a1" />
16559 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
16561 + <gd name="dy1" fmla="*/ h a1 200000" />
16563 + <gd name="yg" fmla="*/ h a2 100000" />
16565 + <gd name="rad" fmla="*/ h a3 100000" />
16567 + <gd name="dx1" fmla="*/ w 73490 200000" />
16570 + <gd name="y3" fmla="+- vc 0 dy1" />
16572 + <gd name="y4" fmla="+- vc dy1 0" />
16574 + <gd name="a" fmla="+- yg rad 0" />
16575 + <gd name="y2" fmla="+- y3 0 a" />
16577 + <gd name="y1" fmla="+- y2 0 rad" />
16579 + <gd name="y5" fmla="+- b 0 y1" />
16582 + <gd name="x1" fmla="+- hc 0 dx1" />
16584 + <gd name="x3" fmla="+- hc dx1 0" />
16586 + <gd name="x2" fmla="+- hc 0 rad" />
16590 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16591 + <ahXY gdRefY="adj1" minY="1000" maxY="36745">
16592 + <pos x="l" y="y3" />
16594 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
16595 + <pos x="r" y="y2" />
16597 + <ahXY gdRefX="adj3" minX="1000" maxX="maxAdj3">
16598 + <pos x="x2" y="t" />
16602 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16604 + <pos x="x3" y="vc" />
16607 + <pos x="hc" y="y5" />
16610 + <pos x="x1" y="vc" />
16613 + <pos x="hc" y="y1" />
16617 + <rect l="x1" t="y3" r="x3" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
16619 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16622 + <pt x="hc" y="y1" />
16624 + <arcTo hR="rad" wR="rad" stAng="3cd4" swAng="21600000" />
16627 + <pt x="hc" y="y5" />
16629 + <arcTo hR="rad" wR="rad" stAng="cd4" swAng="21600000" />
16632 + <pt x="x1" y="y3" />
16635 + <pt x="x3" y="y3" />
16638 + <pt x="x3" y="y4" />
16641 + <pt x="x1" y="y4" />
16650 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16651 + <gd name="adj1" fmla="val 23520" />
16653 + <gd name="adj2" fmla="val 11760" />
16657 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16658 + <gd name="a1" fmla="pin 0 adj1 36745" />
16661 + <gd name="2a1" fmla="*/ a1 2 1" />
16663 + <gd name="mAdj2" fmla="+- 100000 0 2a1" />
16665 + <gd name="a2" fmla="pin 0 adj2 mAdj2" />
16666 + <gd name="dy1" fmla="*/ h a1 100000" />
16668 + <gd name="dy2" fmla="*/ h a2 200000" />
16670 + <gd name="dx1" fmla="*/ w 73490 200000" />
16673 + <gd name="y2" fmla="+- vc 0 dy2" />
16675 + <gd name="y3" fmla="+- vc dy2 0" />
16677 + <gd name="y1" fmla="+- y2 0 dy1" />
16679 + <gd name="y4" fmla="+- y3 dy1 0" />
16682 + <gd name="x1" fmla="+- hc 0 dx1" />
16684 + <gd name="x2" fmla="+- hc dx1 0" />
16688 + <gd name="yC1" fmla="+/ y1 y2 2" />
16690 + <gd name="yC2" fmla="+/ y3 y4 2" />
16694 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16695 + <ahXY gdRefY="adj1" minY="0" maxY="36745">
16696 + <pos x="l" y="y1" />
16699 + <ahXY gdRefY="adj2" minY="0" maxY="mAdj2">
16700 + <pos x="r" y="y2" />
16704 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16706 + <pos x="x2" y="yC1" />
16709 + <pos x="x2" y="yC2" />
16712 + <pos x="hc" y="y4" />
16715 + <pos x="x1" y="yC1" />
16718 + <pos x="x1" y="yC2" />
16721 + <pos x="hc" y="y1" />
16725 + <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
16727 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16730 + <pt x="x1" y="y1" />
16733 + <pt x="x2" y="y1" />
16736 + <pt x="x2" y="y2" />
16739 + <pt x="x1" y="y2" />
16743 + <pt x="x1" y="y3" />
16746 + <pt x="x2" y="y3" />
16749 + <pt x="x2" y="y4" />
16752 + <pt x="x1" y="y4" />
16761 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16762 + <gd name="adj1" fmla="val 23520" />
16766 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16767 + <gd name="a1" fmla="pin 0 adj1 100000" />
16768 + <gd name="dy1" fmla="*/ h a1 200000" />
16770 + <gd name="dx1" fmla="*/ w 73490 200000" />
16773 + <gd name="y1" fmla="+- vc 0 dy1" />
16775 + <gd name="y2" fmla="+- vc dy1 0" />
16778 + <gd name="x1" fmla="+- hc 0 dx1" />
16780 + <gd name="x2" fmla="+- hc dx1 0" />
16784 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16785 + <ahXY gdRefY="adj1" minY="0" maxY="100000">
16786 + <pos x="l" y="y1" />
16790 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16792 + <pos x="x2" y="vc" />
16795 + <pos x="hc" y="y2" />
16798 + <pos x="x1" y="vc" />
16801 + <pos x="hc" y="y1" />
16805 + <rect l="x1" t="y1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
16807 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16810 + <pt x="x1" y="y1" />
16813 + <pt x="x2" y="y1" />
16816 + <pt x="x2" y="y2" />
16819 + <pt x="x1" y="y2" />
16828 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16829 + <gd name="adj1" fmla="val 23520" />
16833 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16839 + <gd name="a1" fmla="pin 0 adj1 51965" />
16841 + <gd name="th" fmla="*/ ss a1 100000" />
16844 + <gd name="a" fmla="at2 w h" />
16846 + <gd name="sa" fmla="sin 1 a" />
16847 + <gd name="ca" fmla="cos 1 a" />
16848 + <gd name="ta" fmla="tan 1 a" />
16851 + <gd name="dl" fmla="mod w h 0" />
16853 + <gd name="rw" fmla="*/ dl 51965 100000" />
16857 + <gd name="lM" fmla="+- dl 0 rw" />
16858 + <gd name="xM" fmla="*/ ca lM 2" />
16859 + <gd name="yM" fmla="*/ sa lM 2" />
16862 + <gd name="dxAM" fmla="*/ sa th 2" />
16863 + <gd name="dyAM" fmla="*/ ca th 2" />
16864 + <gd name="xA" fmla="+- xM 0 dxAM" />
16865 + <gd name="yA" fmla="+- yM dyAM 0" />
16868 + <gd name="xB" fmla="+- xM dxAM 0" />
16869 + <gd name="yB" fmla="+- yM 0 dyAM" />
16872 + <gd name="xBC" fmla="+- hc 0 xB" />
16873 + <gd name="yBC" fmla="*/ xBC ta 1" />
16874 + <gd name="yC" fmla="+- yBC yB 0" />
16877 + <gd name="xD" fmla="+- r 0 xB" />
16878 + <gd name="xE" fmla="+- r 0 xA" />
16880 + <gd name="yFE" fmla="+- vc 0 yA" />
16881 + <gd name="xFE" fmla="*/ yFE 1 ta" />
16882 + <gd name="xF" fmla="+- xE 0 xFE" />
16883 + <gd name="xL" fmla="+- xA xFE 0" />
16884 + <gd name="yG" fmla="+- b 0 yA" />
16885 + <gd name="yH" fmla="+- b 0 yB" />
16886 + <gd name="yI" fmla="+- b 0 yC" />
16889 + <gd name="xC2" fmla="+- r 0 xM" />
16891 + <gd name="yC3" fmla="+- b 0 yM" />
16895 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16896 + <ahXY gdRefY="adj1" minY="0" maxY="51965">
16897 + <pos x="l" y="th" />
16901 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16903 + <pos x="xM" y="yM" />
16906 + <pos x="xC2" y="yM" />
16909 + <pos x="xC2" y="yC3" />
16912 + <pos x="xM" y="yC3" />
16916 + <rect l="xA" t="yB" r="xE" b="yH" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
16918 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16921 + <pt x="xA" y="yA" />
16924 + <pt x="xB" y="yB" />
16927 + <pt x="hc" y="yC" />
16930 + <pt x="xD" y="yB" />
16933 + <pt x="xE" y="yA" />
16936 + <pt x="xF" y="vc" />
16939 + <pt x="xE" y="yG" />
16942 + <pt x="xD" y="yH" />
16945 + <pt x="hc" y="yI" />
16948 + <pt x="xB" y="yH" />
16951 + <pt x="xA" y="yG" />
16954 + <pt x="xL" y="vc" />
16963 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16964 + <gd name="adj1" fmla="val 23520" />
16966 + <gd name="adj2" fmla="val 6600000" />
16968 + <gd name="adj3" fmla="val 11760" />
16972 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
16973 + <gd name="a1" fmla="pin 0 adj1 50000" />
16974 + <gd name="crAng" fmla="pin 4200000 adj2 6600000" />
16977 + <gd name="2a1" fmla="*/ a1 2 1" />
16978 + <gd name="maxAdj3" fmla="+- 100000 0 2a1" />
16979 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
16981 + <gd name="dy1" fmla="*/ h a1 100000" />
16983 + <gd name="dy2" fmla="*/ h a3 200000" />
16985 + <gd name="dx1" fmla="*/ w 73490 200000" />
16988 + <gd name="x1" fmla="+- hc 0 dx1" />
16990 + <gd name="x8" fmla="+- hc dx1 0" />
16994 + <gd name="y2" fmla="+- vc 0 dy2" />
16996 + <gd name="y3" fmla="+- vc dy2 0" />
16998 + <gd name="y1" fmla="+- y2 0 dy1" />
17000 + <gd name="y4" fmla="+- y3 dy1 0" />
17003 + <gd name="cadj2" fmla="+- crAng 0 cd4" />
17004 + <gd name="xadj2" fmla="tan hd2 cadj2" />
17008 + <gd name="len" fmla="mod xadj2 hd2 0" />
17012 + <gd name="bhw" fmla="*/ len dy1 hd2" />
17014 + <gd name="bhw2" fmla="*/ bhw 1 2" />
17015 + <gd name="x7" fmla="+- hc xadj2 bhw2" />
17017 + <gd name="dx67" fmla="*/ xadj2 y1 hd2" />
17018 + <gd name="x6" fmla="+- x7 0 dx67" />
17020 + <gd name="dx57" fmla="*/ xadj2 y2 hd2" />
17021 + <gd name="x5" fmla="+- x7 0 dx57" />
17023 + <gd name="dx47" fmla="*/ xadj2 y3 hd2" />
17024 + <gd name="x4" fmla="+- x7 0 dx47" />
17026 + <gd name="dx37" fmla="*/ xadj2 y4 hd2" />
17027 + <gd name="x3" fmla="+- x7 0 dx37" />
17029 + <gd name="dx27" fmla="*/ xadj2 2 1" />
17030 + <gd name="x2" fmla="+- x7 0 dx27" />
17033 + <gd name="rx7" fmla="+- x7 bhw 0" />
17035 + <gd name="rx6" fmla="+- x6 bhw 0" />
17037 + <gd name="rx5" fmla="+- x5 bhw 0" />
17039 + <gd name="rx4" fmla="+- x4 bhw 0" />
17041 + <gd name="rx3" fmla="+- x3 bhw 0" />
17043 + <gd name="rx2" fmla="+- x2 bhw 0" />
17047 + <gd name="dx7" fmla="*/ dy1 hd2 len" />
17048 + <gd name="rxt" fmla="+- x7 dx7 0" />
17050 + <gd name="lxt" fmla="+- rx7 0 dx7" />
17052 + <gd name="rx" fmla="?: cadj2 rxt rx7" />
17054 + <gd name="lx" fmla="?: cadj2 x7 lxt" />
17057 + <gd name="dy3" fmla="*/ dy1 xadj2 len" />
17058 + <gd name="dy4" fmla="+- 0 0 dy3" />
17059 + <gd name="ry" fmla="?: cadj2 dy3 t" />
17061 + <gd name="ly" fmla="?: cadj2 t dy4" />
17064 + <gd name="dlx" fmla="+- w 0 rx" />
17066 + <gd name="drx" fmla="+- w 0 lx" />
17069 + <gd name="dly" fmla="+- h 0 ry" />
17071 + <gd name="dry" fmla="+- h 0 ly" />
17075 + <gd name="xC1" fmla="+/ rx lx 2" />
17077 + <gd name="xC2" fmla="+/ drx dlx 2" />
17080 + <gd name="yC1" fmla="+/ ry ly 2" />
17082 + <gd name="yC2" fmla="+/ y1 y2 2" />
17084 + <gd name="yC3" fmla="+/ y3 y4 2" />
17086 + <gd name="yC4" fmla="+/ dry dly 2" />
17091 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17092 + <ahXY gdRefY="adj1" minY="0" maxY="50000">
17093 + <pos x="l" y="y1" />
17095 + <ahPolar gdRefAng="adj2" minAng="4200000" maxAng="6600000">
17096 + <pos x="lx" y="t" />
17098 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
17099 + <pos x="r" y="y2" />
17103 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17105 + <pos x="x8" y="yC2" />
17108 + <pos x="x8" y="yC3" />
17111 + <pos x="xC2" y="yC4" />
17114 + <pos x="x1" y="yC2" />
17117 + <pos x="x1" y="yC3" />
17120 + <pos x="xC1" y="yC1" />
17124 + <rect l="x1" t="y1" r="x8" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17126 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17129 + <pt x="x1" y="y1" />
17132 + <pt x="x6" y="y1" />
17135 + <pt x="lx" y="ly" />
17138 + <pt x="rx" y="ry" />
17141 + <pt x="rx6" y="y1" />
17144 + <pt x="x8" y="y1" />
17147 + <pt x="x8" y="y2" />
17150 + <pt x="rx5" y="y2" />
17153 + <pt x="rx4" y="y3" />
17156 + <pt x="x8" y="y3" />
17159 + <pt x="x8" y="y4" />
17162 + <pt x="rx3" y="y4" />
17165 + <pt x="drx" y="dry" />
17168 + <pt x="dlx" y="dly" />
17171 + <pt x="x3" y="y4" />
17174 + <pt x="x1" y="y4" />
17177 + <pt x="x1" y="y3" />
17180 + <pt x="x4" y="y3" />
17183 + <pt x="x5" y="y2" />
17186 + <pt x="x1" y="y2" />
17195 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17196 + <gd name="adj1" fmla="val 23520" />
17200 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17201 + <gd name="a1" fmla="pin 0 adj1 73490" />
17202 + <gd name="dx1" fmla="*/ w 73490 200000" />
17204 + <gd name="dy1" fmla="*/ h 73490 200000" />
17206 + <gd name="dx2" fmla="*/ ss a1 200000" />
17209 + <gd name="x1" fmla="+- hc 0 dx1" />
17211 + <gd name="x2" fmla="+- hc 0 dx2" />
17213 + <gd name="x3" fmla="+- hc dx2 0" />
17215 + <gd name="x4" fmla="+- hc dx1 0" />
17218 + <gd name="y1" fmla="+- vc 0 dy1" />
17220 + <gd name="y2" fmla="+- vc 0 dx2" />
17222 + <gd name="y3" fmla="+- vc dx2 0" />
17224 + <gd name="y4" fmla="+- vc dy1 0" />
17228 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17229 + <ahXY gdRefY="adj1" minY="0" maxY="73490">
17230 + <pos x="l" y="y2" />
17234 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17236 + <pos x="x4" y="vc" />
17239 + <pos x="hc" y="y4" />
17242 + <pos x="x1" y="vc" />
17245 + <pos x="hc" y="y1" />
17249 + <rect l="x1" t="y2" r="x4" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17251 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17254 + <pt x="x1" y="y2" />
17257 + <pt x="x2" y="y2" />
17260 + <pt x="x2" y="y1" />
17263 + <pt x="x3" y="y1" />
17266 + <pt x="x3" y="y2" />
17269 + <pt x="x4" y="y2" />
17272 + <pt x="x4" y="y3" />
17275 + <pt x="x3" y="y3" />
17278 + <pt x="x3" y="y4" />
17281 + <pt x="x2" y="y4" />
17284 + <pt x="x2" y="y3" />
17287 + <pt x="x1" y="y3" />
17296 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17297 + <gd name="adj" fmla="val 50000" />
17301 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17302 + <gd name="a" fmla="pin 0 adj 87500" />
17303 + <gd name="g0" fmla="*/ ss a 100000" />
17304 + <gd name="g0w" fmla="*/ g0 w ss" />
17305 + <gd name="g1" fmla="+- ss 0 g0" />
17306 + <gd name="g2" fmla="*/ g0 g0 g1" />
17307 + <gd name="g3" fmla="*/ ss ss g1" />
17308 + <gd name="g4" fmla="*/ g3 2 1" />
17309 + <gd name="g5" fmla="+- g4 0 g2" />
17310 + <gd name="g6" fmla="+- g5 0 g0" />
17311 + <gd name="g6w" fmla="*/ g6 w ss" />
17312 + <gd name="g7" fmla="*/ g5 1 2" />
17313 + <gd name="g8" fmla="+- g7 0 g0" />
17314 + <gd name="dy1" fmla="*/ g8 hd2 ss" />
17316 + <gd name="g10h" fmla="+- vc 0 dy1" />
17317 + <gd name="g11h" fmla="+- vc dy1 0" />
17318 + <gd name="g12" fmla="*/ g0 9598 32768" />
17319 + <gd name="g12w" fmla="*/ g12 w ss" />
17320 + <gd name="g13" fmla="+- ss 0 g12" />
17321 + <gd name="q1" fmla="*/ ss ss 1" />
17322 + <gd name="q2" fmla="*/ g13 g13 1" />
17323 + <gd name="q3" fmla="+- q1 0 q2" />
17324 + <gd name="q4" fmla="sqrt q3" />
17325 + <gd name="dy4" fmla="*/ q4 hd2 ss" />
17326 + <gd name="g15h" fmla="+- vc 0 dy4" />
17327 + <gd name="g16h" fmla="+- vc dy4 0" />
17328 + <gd name="g17w" fmla="+- g6w 0 g0w" />
17329 + <gd name="g18w" fmla="*/ g17w 1 2" />
17332 + <gd name="dx2p" fmla="+- g0w g18w w" />
17333 + <gd name="dx2" fmla="*/ dx2p -1 1" />
17335 + <gd name="dy2" fmla="*/ hd2 -1 1" />
17337 + <gd name="stAng1" fmla="at2 dx2 dy2" />
17338 + <gd name="enAngp1" fmla="at2 dx2 hd2" />
17339 + <gd name="enAng1" fmla="+- enAngp1 0 21600000" />
17340 + <gd name="swAng1" fmla="+- enAng1 0 stAng1" />
17343 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17344 + <ahXY gdRefX="adj" minX="0" maxX="87500">
17345 + <pos x="g0w" y="vc" />
17349 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17351 + <pos x="r" y="t" />
17354 + <pos x="l" y="vc" />
17357 + <pos x="r" y="b" />
17360 + <pos x="g0w" y="vc" />
17364 + <rect l="g12w" t="g15h" r="g0w" b="g16h" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17366 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17369 + <pt x="r" y="b" />
17371 + <arcTo wR="w" hR="hd2" stAng="cd4" swAng="cd2" />
17372 + <arcTo wR="g18w" hR="dy1" stAng="stAng1" swAng="swAng1" />
17378 + <nonIsoscelesTrapezoid>
17380 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17381 + <gd name="adj1" fmla="val 25000" />
17383 + <gd name="adj2" fmla="val 25000" />
17387 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17388 + <gd name="maxAdj" fmla="*/ 50000 w ss" />
17390 + <gd name="a1" fmla="pin 0 adj1 maxAdj" />
17391 + <gd name="a2" fmla="pin 0 adj2 maxAdj" />
17392 + <gd name="x1" fmla="*/ ss a1 200000" />
17394 + <gd name="x2" fmla="*/ ss a1 100000" />
17396 + <gd name="dx3" fmla="*/ ss a2 100000" />
17398 + <gd name="x3" fmla="+- r 0 dx3" />
17399 + <gd name="x4" fmla="+/ r x3 2" />
17400 + <gd name="il" fmla="*/ wd3 a1 maxAdj" />
17402 + <gd name="adjm" fmla="max a1 a2" />
17403 + <gd name="it" fmla="*/ hd3 adjm maxAdj" />
17405 + <gd name="irt" fmla="*/ wd3 a2 maxAdj" />
17406 + <gd name="ir" fmla="+- r 0 irt" />
17410 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17411 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj">
17412 + <pos x="x2" y="t" />
17414 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj">
17415 + <pos x="x3" y="t" />
17419 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17421 + <pos x="x4" y="vc" />
17424 + <pos x="hc" y="b" />
17427 + <pos x="x1" y="vc" />
17430 + <pos x="hc" y="t" />
17435 + <rect l="il" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17437 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17440 + <pt x="l" y="b" />
17443 + <pt x="x2" y="t" />
17446 + <pt x="x3" y="t" />
17449 + <pt x="r" y="b" />
17455 + </nonIsoscelesTrapezoid>
17458 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17459 + <gd name="adj" fmla="val 18750" />
17462 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17463 + <gd name="a" fmla="pin 0 adj 50000" />
17464 + <gd name="dr" fmla="*/ ss a 100000" />
17465 + <gd name="iwd2" fmla="+- wd2 0 dr" />
17466 + <gd name="ihd2" fmla="+- hd2 0 dr" />
17467 + <gd name="ang" fmla="at2 w h" />
17468 + <gd name="ct" fmla="cos ihd2 ang" />
17469 + <gd name="st" fmla="sin iwd2 ang" />
17470 + <gd name="m" fmla="mod ct st 0" />
17471 + <gd name="n" fmla="*/ iwd2 ihd2 m" />
17472 + <gd name="drd2" fmla="*/ dr 1 2" />
17473 + <gd name="dang" fmla="at2 n drd2" />
17474 + <gd name="2dang" fmla="*/ dang 2 1" />
17475 + <gd name="swAng" fmla="+- -10800000 2dang 0" />
17476 + <gd name="t3" fmla="at2 w h" />
17477 + <gd name="stAng1" fmla="+- t3 0 dang" />
17478 + <gd name="stAng2" fmla="+- stAng1 0 cd2" />
17479 + <gd name="ct1" fmla="cos ihd2 stAng1" />
17480 + <gd name="st1" fmla="sin iwd2 stAng1" />
17481 + <gd name="m1" fmla="mod ct1 st1 0" />
17482 + <gd name="n1" fmla="*/ iwd2 ihd2 m1" />
17483 + <gd name="dx1" fmla="cos n1 stAng1" />
17484 + <gd name="dy1" fmla="sin n1 stAng1" />
17485 + <gd name="x1" fmla="+- hc dx1 0" />
17486 + <gd name="y1" fmla="+- vc dy1 0" />
17487 + <gd name="x2" fmla="+- hc 0 dx1" />
17488 + <gd name="y2" fmla="+- vc 0 dy1" />
17489 + <gd name="idx" fmla="cos wd2 2700000" />
17490 + <gd name="idy" fmla="sin hd2 2700000" />
17491 + <gd name="il" fmla="+- hc 0 idx" />
17492 + <gd name="ir" fmla="+- hc idx 0" />
17493 + <gd name="it" fmla="+- vc 0 idy" />
17494 + <gd name="ib" fmla="+- vc idy 0" />
17497 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17498 + <ahPolar gdRefR="adj" minR="0" maxR="50000">
17499 + <pos x="dr" y="vc" />
17503 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17505 + <pos x="hc" y="t" />
17508 + <pos x="il" y="it" />
17511 + <pos x="l" y="vc" />
17514 + <pos x="il" y="ib" />
17517 + <pos x="hc" y="b" />
17520 + <pos x="ir" y="ib" />
17523 + <pos x="r" y="vc" />
17526 + <pos x="ir" y="it" />
17530 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17532 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17535 + <pt x="l" y="vc" />
17537 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
17538 + <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />
17539 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
17540 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
17543 + <pt x="x1" y="y1" />
17545 + <arcTo wR="iwd2" hR="ihd2" stAng="stAng1" swAng="swAng" />
17548 + <pt x="x2" y="y2" />
17550 + <arcTo wR="iwd2" hR="ihd2" stAng="stAng2" swAng="swAng" />
17556 + <notchedRightArrow>
17558 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17559 + <gd name="adj1" fmla="val 50000" />
17561 + <gd name="adj2" fmla="val 50000" />
17565 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17566 + <gd name="maxAdj2" fmla="*/ 100000 w ss" />
17568 + <gd name="a1" fmla="pin 0 adj1 100000" />
17569 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
17570 + <gd name="dx2" fmla="*/ ss a2 100000" />
17571 + <gd name="x2" fmla="+- r 0 dx2" />
17572 + <gd name="dy1" fmla="*/ h a1 200000" />
17573 + <gd name="y1" fmla="+- vc 0 dy1" />
17574 + <gd name="y2" fmla="+- vc dy1 0" />
17575 + <gd name="x1" fmla="*/ dy1 dx2 hd2" />
17576 + <gd name="x3" fmla="+- r 0 x1" />
17579 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17580 + <ahXY gdRefY="adj1" minY="0" maxY="100000">
17581 + <pos x="r" y="y1" />
17583 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
17584 + <pos x="x2" y="t" />
17588 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17590 + <pos x="x2" y="t" />
17593 + <pos x="x1" y="vc" />
17596 + <pos x="x2" y="b" />
17599 + <pos x="r" y="vc" />
17603 + <rect l="x1" t="y1" r="x3" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17605 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17608 + <pt x="l" y="y1" />
17611 + <pt x="x2" y="y1" />
17614 + <pt x="x2" y="t" />
17617 + <pt x="r" y="vc" />
17620 + <pt x="x2" y="b" />
17623 + <pt x="x2" y="y2" />
17626 + <pt x="l" y="y2" />
17629 + <pt x="x1" y="vc" />
17635 + </notchedRightArrow>
17638 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17639 + <gd name="adj" fmla="val 29289" />
17642 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17643 + <gd name="a" fmla="pin 0 adj 50000" />
17644 + <gd name="x1" fmla="*/ ss a 100000" />
17645 + <gd name="x2" fmla="+- r 0 x1" />
17646 + <gd name="y2" fmla="+- b 0 x1" />
17647 + <gd name="il" fmla="*/ x1 1 2" />
17648 + <gd name="ir" fmla="+- r 0 il" />
17649 + <gd name="ib" fmla="+- b 0 il" />
17652 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17653 + <ahXY gdRefX="adj" minX="0" maxX="50000">
17654 + <pos x="x1" y="t" />
17658 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17660 + <pos x="r" y="x1" />
17663 + <pos x="r" y="y2" />
17666 + <pos x="x2" y="b" />
17669 + <pos x="x1" y="b" />
17672 + <pos x="l" y="y2" />
17675 + <pos x="l" y="x1" />
17678 + <pos x="x1" y="t" />
17681 + <pos x="x2" y="t" />
17685 + <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17687 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17690 + <pt x="l" y="x1" />
17693 + <pt x="x1" y="t" />
17696 + <pt x="x2" y="t" />
17699 + <pt x="r" y="x1" />
17702 + <pt x="r" y="y2" />
17705 + <pt x="x2" y="b" />
17708 + <pt x="x1" y="b" />
17711 + <pt x="l" y="y2" />
17719 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17720 + <gd name="adj" fmla="val 25000" />
17722 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17723 + <gd name="maxAdj" fmla="*/ 100000 w ss" />
17724 + <gd name="a" fmla="pin 0 adj maxAdj" />
17725 + <gd name="x1" fmla="*/ ss a 200000" />
17726 + <gd name="x2" fmla="*/ ss a 100000" />
17727 + <gd name="x6" fmla="+- r 0 x1" />
17728 + <gd name="x5" fmla="+- r 0 x2" />
17729 + <gd name="x3" fmla="*/ x5 1 2" />
17730 + <gd name="x4" fmla="+- r 0 x3" />
17731 + <gd name="il" fmla="*/ wd2 a maxAdj" />
17732 + <gd name="q1" fmla="*/ 5 a maxAdj" />
17733 + <gd name="q2" fmla="+/ 1 q1 12" />
17734 + <gd name="il" fmla="*/ q2 w 1" />
17735 + <gd name="it" fmla="*/ q2 h 1" />
17736 + <gd name="ir" fmla="+- r 0 il" />
17737 + <gd name="ib" fmla="+- b 0 it" />
17738 + <gd name="q3" fmla="*/ h hc x2" />
17739 + <gd name="y1" fmla="pin 0 q3 h" />
17740 + <gd name="y2" fmla="+- b 0 y1" />
17742 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17743 + <ahXY gdRefX="adj" minX="0" maxX="maxAdj">
17744 + <pos x="x2" y="t" />
17747 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17749 + <pos x="hc" y="y2" />
17752 + <pos x="x4" y="t" />
17755 + <pos x="x6" y="vc" />
17758 + <pos x="x3" y="b" />
17761 + <pos x="hc" y="y1" />
17764 + <pos x="x1" y="vc" />
17767 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17768 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17771 + <pt x="l" y="b" />
17774 + <pt x="x2" y="t" />
17777 + <pt x="r" y="t" />
17780 + <pt x="x5" y="b" />
17788 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17789 + <gd name="hf" fmla="val 105146" />
17790 + <gd name="vf" fmla="val 110557" />
17793 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17794 + <gd name="swd2" fmla="*/ wd2 hf 100000" />
17795 + <gd name="shd2" fmla="*/ hd2 vf 100000" />
17796 + <gd name="svc" fmla="*/ vc vf 100000" />
17797 + <gd name="dx1" fmla="cos swd2 1080000" />
17798 + <gd name="dx2" fmla="cos swd2 18360000" />
17799 + <gd name="dy1" fmla="sin shd2 1080000" />
17800 + <gd name="dy2" fmla="sin shd2 18360000" />
17801 + <gd name="x1" fmla="+- hc 0 dx1" />
17802 + <gd name="x2" fmla="+- hc 0 dx2" />
17803 + <gd name="x3" fmla="+- hc dx2 0" />
17804 + <gd name="x4" fmla="+- hc dx1 0" />
17805 + <gd name="y1" fmla="+- svc 0 dy1" />
17806 + <gd name="y2" fmla="+- svc 0 dy2" />
17807 + <gd name="it" fmla="*/ y1 dx2 dx1" />
17810 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17812 + <pos x="hc" y="t" />
17815 + <pos x="x1" y="y1" />
17818 + <pos x="x2" y="y2" />
17821 + <pos x="hc" y="b" />
17824 + <pos x="x3" y="y2" />
17827 + <pos x="x4" y="y1" />
17831 + <rect l="x2" t="it" r="x3" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17833 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17836 + <pt x="x1" y="y1" />
17839 + <pt x="hc" y="t" />
17842 + <pt x="x4" y="y1" />
17845 + <pt x="x3" y="y2" />
17848 + <pt x="x2" y="y2" />
17856 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17857 + <gd name="adj1" fmla="val 0" />
17858 + <gd name="adj2" fmla="val 16200000" />
17860 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17861 + <gd name="stAng" fmla="pin 0 adj1 21599999" />
17862 + <gd name="enAng" fmla="pin 0 adj2 21599999" />
17863 + <gd name="sw1" fmla="+- enAng 0 stAng" />
17864 + <gd name="sw2" fmla="+- sw1 21600000 0" />
17865 + <gd name="swAng" fmla="?: sw1 sw1 sw2" />
17866 + <gd name="wt1" fmla="sin wd2 stAng" />
17867 + <gd name="ht1" fmla="cos hd2 stAng" />
17868 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />
17869 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />
17870 + <gd name="x1" fmla="+- hc dx1 0" />
17871 + <gd name="y1" fmla="+- vc dy1 0" />
17872 + <gd name="wt2" fmla="sin wd2 enAng" />
17873 + <gd name="ht2" fmla="cos hd2 enAng" />
17874 + <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />
17875 + <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />
17876 + <gd name="x2" fmla="+- hc dx2 0" />
17877 + <gd name="y2" fmla="+- vc dy2 0" />
17878 + <gd name="idx" fmla="cos wd2 2700000" />
17879 + <gd name="idy" fmla="sin hd2 2700000" />
17880 + <gd name="il" fmla="+- hc 0 idx" />
17881 + <gd name="ir" fmla="+- hc idx 0" />
17882 + <gd name="it" fmla="+- vc 0 idy" />
17883 + <gd name="ib" fmla="+- vc idy 0" />
17885 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17886 + <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">
17887 + <pos x="x1" y="y1" />
17889 + <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">
17890 + <pos x="x2" y="y2" />
17893 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17895 + <pos x="r" y="vc" />
17898 + <pos x="hc" y="b" />
17901 + <pos x="l" y="vc" />
17904 + <pos x="hc" y="t" />
17907 + <rect l="il" t="ir" r="it" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17908 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17911 + <pt x="x1" y="y1" />
17913 + <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />
17915 + <pt x="hc" y="vc" />
17922 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17923 + <gd name="g1" fmla="cos w 13500000" />
17924 + <gd name="g2" fmla="sin h 13500000" />
17925 + <gd name="x1" fmla="+- r g1 0" />
17926 + <gd name="y1" fmla="+- b g2 0" />
17928 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17930 + <pos x="r" y="vc" />
17933 + <pos x="hc" y="b" />
17936 + <rect l="x1" t="y1" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17937 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17940 + <pt x="l" y="b" />
17942 + <arcTo wR="w" hR="h" stAng="cd2" swAng="cd4" />
17944 + <pt x="r" y="b" />
17952 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17953 + <gd name="adj" fmla="val 16667" />
17956 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17957 + <gd name="a" fmla="pin 0 adj 50000" />
17958 + <gd name="x1" fmla="*/ ss a 100000" />
17959 + <gd name="x2" fmla="+- r 0 x1" />
17961 + <gd name="y2" fmla="+- b 0 x1" />
17962 + <gd name="il" fmla="*/ x1 70711 100000" />
17964 + <gd name="ir" fmla="+- r 0 il" />
17965 + <gd name="ib" fmla="+- b 0 il" />
17968 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17969 + <ahXY gdRefX="adj" minX="0" maxX="50000">
17970 + <pos x="x1" y="t" />
17974 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17976 + <pos x="hc" y="t" />
17979 + <pos x="l" y="vc" />
17982 + <pos x="hc" y="b" />
17985 + <pos x="r" y="vc" />
17989 + <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
17991 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
17994 + <pt x="l" y="x1" />
17996 + <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />
17998 + <pt x="x2" y="t" />
18000 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />
18002 + <pt x="r" y="y2" />
18004 + <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />
18006 + <pt x="x1" y="b" />
18008 + <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />
18016 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18017 + <gd name="md" fmla="mod w h 0" />
18018 + <gd name="dx" fmla="*/ 1 md 20" />
18020 + <gd name="y1" fmla="+- 0 b dx" />
18022 + <gd name="x1" fmla="+- 0 r dx" />
18026 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18028 + <pos x="l" y="t" />
18031 + <pos x="l" y="dx" />
18034 + <pos x="l" y="y1" />
18037 + <pos x="l" y="b" />
18040 + <pos x="dx" y="t" />
18043 + <pos x="x1" y="t" />
18046 + <pos x="dx" y="b" />
18049 + <pos x="x1" y="b" />
18052 + <pos x="r" y="t" />
18055 + <pos x="r" y="dx" />
18058 + <pos x="r" y="y1" />
18061 + <pos x="r" y="b" />
18065 + <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
18067 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18070 + <pt x="l" y="t" />
18073 + <pt x="dx" y="t" />
18075 + <arcTo wR="dx" hR="dx" stAng="0" swAng="cd4" />
18080 + <pt x="l" y="y1" />
18082 + <arcTo wR="dx" hR="dx" stAng="3cd4" swAng="cd4" />
18084 + <pt x="l" y="b" />
18090 + <pt x="r" y="t" />
18093 + <pt x="r" y="dx" />
18095 + <arcTo wR="dx" hR="dx" stAng="cd4" swAng="cd4" />
18100 + <pt x="x1" y="b" />
18102 + <arcTo wR="dx" hR="dx" stAng="cd2" swAng="cd4" />
18104 + <pt x="r" y="b" />
18112 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18113 + <gd name="adj" fmla="val 25000" />
18115 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18116 + <gd name="a" fmla="pin 0 adj 50000" />
18117 + <gd name="x1" fmla="*/ ss a 100000" />
18118 + <gd name="x2" fmla="+- r 0 x1" />
18119 + <gd name="y2" fmla="+- b 0 x1" />
18120 + <gd name="d" fmla="+- w 0 h" />
18121 + <gd name="il" fmla="?: d l x1" />
18122 + <gd name="ir" fmla="?: d r x2" />
18123 + <gd name="it" fmla="?: d x1 t" />
18124 + <gd name="ib" fmla="?: d y2 b" />
18126 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18127 + <ahXY gdRefX="adj" minX="0" maxX="50000">
18128 + <pos x="x1" y="t" />
18131 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18133 + <pos x="hc" y="t" />
18136 + <pos x="l" y="vc" />
18139 + <pos x="hc" y="b" />
18142 + <pos x="r" y="vc" />
18145 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
18146 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18149 + <pt x="l" y="x1" />
18152 + <pt x="x1" y="x1" />
18155 + <pt x="x1" y="t" />
18158 + <pt x="x2" y="t" />
18161 + <pt x="x2" y="x1" />
18164 + <pt x="r" y="x1" />
18167 + <pt x="r" y="y2" />
18170 + <pt x="x2" y="y2" />
18173 + <pt x="x2" y="b" />
18176 + <pt x="x1" y="b" />
18179 + <pt x="x1" y="y2" />
18182 + <pt x="l" y="y2" />
18190 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18191 + <gd name="adj1" fmla="val 22500" />
18193 + <gd name="adj2" fmla="val 22500" />
18195 + <gd name="adj3" fmla="val 22500" />
18199 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18200 + <gd name="a2" fmla="pin 0 adj2 50000" />
18201 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
18202 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
18203 + <gd name="q1" fmla="+- 100000 0 maxAdj1" />
18204 + <gd name="maxAdj3" fmla="*/ q1 1 2" />
18205 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
18206 + <gd name="x1" fmla="*/ ss a3 100000" />
18207 + <gd name="dx2" fmla="*/ ss a2 100000" />
18209 + <gd name="x2" fmla="+- hc 0 dx2" />
18210 + <gd name="x5" fmla="+- hc dx2 0" />
18211 + <gd name="dx3" fmla="*/ ss a1 200000" />
18213 + <gd name="x3" fmla="+- hc 0 dx3" />
18214 + <gd name="x4" fmla="+- hc dx3 0" />
18215 + <gd name="x6" fmla="+- r 0 x1" />
18217 + <gd name="y2" fmla="+- vc 0 dx2" />
18218 + <gd name="y5" fmla="+- vc dx2 0" />
18219 + <gd name="y3" fmla="+- vc 0 dx3" />
18220 + <gd name="y4" fmla="+- vc dx3 0" />
18221 + <gd name="y6" fmla="+- b 0 x1" />
18222 + <gd name="il" fmla="*/ dx3 x1 dx2" />
18223 + <gd name="ir" fmla="+- r 0 il" />
18226 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18227 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">
18228 + <pos x="x3" y="x1" />
18230 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
18231 + <pos x="x2" y="t" />
18233 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
18234 + <pos x="r" y="x1" />
18238 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18240 + <pos x="hc" y="t" />
18243 + <pos x="l" y="vc" />
18246 + <pos x="hc" y="b" />
18249 + <pos x="r" y="vc" />
18253 + <rect l="il" t="y3" r="ir" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
18255 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18258 + <pt x="l" y="vc" />
18261 + <pt x="x1" y="y2" />
18264 + <pt x="x1" y="y3" />
18267 + <pt x="x3" y="y3" />
18270 + <pt x="x3" y="x1" />
18273 + <pt x="x2" y="x1" />
18276 + <pt x="hc" y="t" />
18279 + <pt x="x5" y="x1" />
18282 + <pt x="x4" y="x1" />
18285 + <pt x="x4" y="y3" />
18288 + <pt x="x6" y="y3" />
18291 + <pt x="x6" y="y2" />
18294 + <pt x="r" y="vc" />
18297 + <pt x="x6" y="y5" />
18300 + <pt x="x6" y="y4" />
18303 + <pt x="x4" y="y4" />
18306 + <pt x="x4" y="y6" />
18309 + <pt x="x5" y="y6" />
18312 + <pt x="hc" y="b" />
18315 + <pt x="x2" y="y6" />
18318 + <pt x="x3" y="y6" />
18321 + <pt x="x3" y="y4" />
18324 + <pt x="x1" y="y4" />
18327 + <pt x="x1" y="y5" />
18334 + <quadArrowCallout>
18336 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18337 + <gd name="adj1" fmla="val 18515" />
18339 + <gd name="adj2" fmla="val 18515" />
18341 + <gd name="adj3" fmla="val 18515" />
18343 + <gd name="adj4" fmla="val 48123" />
18347 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18348 + <gd name="a2" fmla="pin 0 adj2 50000" />
18349 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
18351 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
18352 + <gd name="maxAdj3" fmla="+- 50000 0 a2" />
18353 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
18354 + <gd name="q2" fmla="*/ a3 2 1" />
18356 + <gd name="maxAdj4" fmla="+- 100000 0 q2" />
18358 + <gd name="a4" fmla="pin a1 adj4 maxAdj4" />
18359 + <gd name="dx2" fmla="*/ ss a2 100000" />
18361 + <gd name="dx3" fmla="*/ ss a1 200000" />
18363 + <gd name="ah" fmla="*/ ss a3 100000" />
18365 + <gd name="dx1" fmla="*/ w a4 200000" />
18367 + <gd name="dy1" fmla="*/ h a4 200000" />
18370 + <gd name="x8" fmla="+- r 0 ah" />
18371 + <gd name="x2" fmla="+- hc 0 dx1" />
18372 + <gd name="x7" fmla="+- hc dx1 0" />
18373 + <gd name="x3" fmla="+- hc 0 dx2" />
18374 + <gd name="x6" fmla="+- hc dx2 0" />
18375 + <gd name="x4" fmla="+- hc 0 dx3" />
18376 + <gd name="x5" fmla="+- hc dx3 0" />
18378 + <gd name="y8" fmla="+- b 0 ah" />
18379 + <gd name="y2" fmla="+- vc 0 dy1" />
18380 + <gd name="y7" fmla="+- vc dy1 0" />
18381 + <gd name="y3" fmla="+- vc 0 dx2" />
18382 + <gd name="y6" fmla="+- vc dx2 0" />
18383 + <gd name="y4" fmla="+- vc 0 dx3" />
18384 + <gd name="y5" fmla="+- vc dx3 0" />
18387 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18388 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">
18389 + <pos x="x4" y="ah" />
18391 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
18392 + <pos x="x3" y="t" />
18394 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
18395 + <pos x="r" y="ah" />
18397 + <ahXY gdRefY="adj4" minY="a1" maxY="maxAdj4">
18398 + <pos x="l" y="y2" />
18402 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18404 + <pos x="hc" y="t" />
18407 + <pos x="l" y="vc" />
18410 + <pos x="hc" y="b" />
18413 + <pos x="r" y="vc" />
18417 + <rect l="x2" t="y2" r="x7" b="y7" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
18419 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18422 + <pt x="l" y="vc" />
18425 + <pt x="ah" y="y3" />
18428 + <pt x="ah" y="y4" />
18431 + <pt x="x2" y="y4" />
18434 + <pt x="x2" y="y2" />
18437 + <pt x="x4" y="y2" />
18440 + <pt x="x4" y="ah" />
18443 + <pt x="x3" y="ah" />
18446 + <pt x="hc" y="t" />
18449 + <pt x="x6" y="ah" />
18452 + <pt x="x5" y="ah" />
18455 + <pt x="x5" y="y2" />
18458 + <pt x="x7" y="y2" />
18461 + <pt x="x7" y="y4" />
18464 + <pt x="x8" y="y4" />
18467 + <pt x="x8" y="y3" />
18470 + <pt x="r" y="vc" />
18473 + <pt x="x8" y="y6" />
18476 + <pt x="x8" y="y5" />
18479 + <pt x="x7" y="y5" />
18482 + <pt x="x7" y="y7" />
18485 + <pt x="x5" y="y7" />
18488 + <pt x="x5" y="y8" />
18491 + <pt x="x6" y="y8" />
18494 + <pt x="hc" y="b" />
18497 + <pt x="x3" y="y8" />
18500 + <pt x="x4" y="y8" />
18503 + <pt x="x4" y="y7" />
18506 + <pt x="x2" y="y7" />
18509 + <pt x="x2" y="y5" />
18512 + <pt x="ah" y="y5" />
18515 + <pt x="ah" y="y6" />
18521 + </quadArrowCallout>
18523 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18525 + <pos x="hc" y="t" />
18528 + <pos x="l" y="vc" />
18531 + <pos x="hc" y="b" />
18534 + <pos x="r" y="vc" />
18537 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
18538 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18541 + <pt x="l" y="t" />
18544 + <pt x="r" y="t" />
18547 + <pt x="r" y="b" />
18550 + <pt x="l" y="b" />
18558 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18559 + <gd name="adj1" fmla="val 16667" />
18561 + <gd name="adj2" fmla="val 50000" />
18565 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18566 + <gd name="a1" fmla="pin 0 adj1 33333" />
18567 + <gd name="a2" fmla="pin 25000 adj2 75000" />
18570 + <gd name="x10" fmla="+- r 0 wd8" />
18572 + <gd name="dx2" fmla="*/ w a2 200000" />
18574 + <gd name="x2" fmla="+- hc 0 dx2" />
18576 + <gd name="x9" fmla="+- hc dx2 0" />
18578 + <gd name="x3" fmla="+- x2 wd32 0" />
18579 + <gd name="x8" fmla="+- x9 0 wd32" />
18580 + <gd name="x5" fmla="+- x2 wd8 0" />
18582 + <gd name="x6" fmla="+- x9 0 wd8" />
18584 + <gd name="x4" fmla="+- x5 0 wd32" />
18585 + <gd name="x7" fmla="+- x6 wd32 0" />
18586 + <gd name="y1" fmla="*/ h a1 200000" />
18588 + <gd name="y2" fmla="*/ h a1 100000" />
18590 + <gd name="y4" fmla="+- b 0 y2" />
18592 + <gd name="y3" fmla="*/ y4 1 2" />
18594 + <gd name="hR" fmla="*/ h a1 400000" />
18596 + <gd name="y5" fmla="+- b 0 hR" />
18597 + <gd name="y6" fmla="+- y2 0 hR" />
18600 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18601 + <ahXY gdRefY="adj1" minY="0" maxY="33333">
18602 + <pos x="hc" y="y2" />
18604 + <ahXY gdRefX="adj2" minX="25000" maxX="75000">
18605 + <pos x="x2" y="t" />
18609 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18611 + <pos x="hc" y="y2" />
18614 + <pos x="wd8" y="y3" />
18617 + <pos x="hc" y="b" />
18620 + <pos x="x10" y="y3" />
18624 + <rect l="x2" t="y2" r="x9" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
18626 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18627 + <path stroke="false" extrusionOk="false">
18630 + <pt x="l" y="t" />
18633 + <pt x="x4" y="t" />
18635 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />
18637 + <pt x="x3" y="y1" />
18639 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />
18641 + <pt x="x8" y="y2" />
18643 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />
18645 + <pt x="x7" y="y1" />
18647 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />
18649 + <pt x="r" y="t" />
18652 + <pt x="x10" y="y3" />
18655 + <pt x="r" y="y4" />
18658 + <pt x="x9" y="y4" />
18661 + <pt x="x9" y="y5" />
18663 + <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />
18665 + <pt x="x3" y="b" />
18667 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />
18669 + <pt x="x2" y="y4" />
18672 + <pt x="l" y="y4" />
18675 + <pt x="wd8" y="y3" />
18679 + <path stroke="false" fill="darkenLess" extrusionOk="false">
18682 + <pt x="x5" y="hR" />
18684 + <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />
18686 + <pt x="x3" y="y1" />
18688 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />
18690 + <pt x="x5" y="y2" />
18694 + <pt x="x6" y="hR" />
18696 + <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="-5400000" />
18698 + <pt x="x8" y="y1" />
18700 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />
18702 + <pt x="x6" y="y2" />
18706 + <path fill="none" extrusionOk="false">
18709 + <pt x="l" y="t" />
18712 + <pt x="x4" y="t" />
18714 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />
18716 + <pt x="x3" y="y1" />
18718 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />
18720 + <pt x="x8" y="y2" />
18722 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />
18724 + <pt x="x7" y="y1" />
18726 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />
18728 + <pt x="r" y="t" />
18731 + <pt x="x10" y="y3" />
18734 + <pt x="r" y="y4" />
18737 + <pt x="x9" y="y4" />
18740 + <pt x="x9" y="y5" />
18742 + <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />
18744 + <pt x="x3" y="b" />
18746 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />
18748 + <pt x="x2" y="y4" />
18751 + <pt x="l" y="y4" />
18754 + <pt x="wd8" y="y3" />
18758 + <pt x="x5" y="hR" />
18761 + <pt x="x5" y="y2" />
18764 + <pt x="x6" y="y2" />
18767 + <pt x="x6" y="hR" />
18770 + <pt x="x2" y="y4" />
18773 + <pt x="x2" y="y6" />
18776 + <pt x="x9" y="y6" />
18779 + <pt x="x9" y="y4" />
18787 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18788 + <gd name="adj1" fmla="val 16667" />
18790 + <gd name="adj2" fmla="val 50000" />
18794 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18795 + <gd name="a1" fmla="pin 0 adj1 33333" />
18796 + <gd name="a2" fmla="pin 25000 adj2 75000" />
18799 + <gd name="x10" fmla="+- r 0 wd8" />
18801 + <gd name="dx2" fmla="*/ w a2 200000" />
18803 + <gd name="x2" fmla="+- hc 0 dx2" />
18805 + <gd name="x9" fmla="+- hc dx2 0" />
18807 + <gd name="x3" fmla="+- x2 wd32 0" />
18808 + <gd name="x8" fmla="+- x9 0 wd32" />
18809 + <gd name="x5" fmla="+- x2 wd8 0" />
18811 + <gd name="x6" fmla="+- x9 0 wd8" />
18813 + <gd name="x4" fmla="+- x5 0 wd32" />
18814 + <gd name="x7" fmla="+- x6 wd32 0" />
18815 + <gd name="dy1" fmla="*/ h a1 200000" />
18817 + <gd name="y1" fmla="+- b 0 dy1" />
18818 + <gd name="dy2" fmla="*/ h a1 100000" />
18820 + <gd name="y2" fmla="+- b 0 dy2" />
18821 + <gd name="y4" fmla="+- t dy2 0" />
18823 + <gd name="y3" fmla="+/ y4 b 2" />
18825 + <gd name="hR" fmla="*/ h a1 400000" />
18828 + <gd name="y6" fmla="+- b 0 hR" />
18829 + <gd name="y7" fmla="+- y1 0 hR" />
18832 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18833 + <ahXY gdRefY="adj1" minY="0" maxY="33333">
18834 + <pos x="hc" y="y2" />
18836 + <ahXY gdRefX="adj2" minX="25000" maxX="75000">
18837 + <pos x="x2" y="b" />
18841 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18843 + <pos x="hc" y="t" />
18846 + <pos x="wd8" y="y3" />
18849 + <pos x="hc" y="y2" />
18852 + <pos x="x10" y="y3" />
18856 + <rect l="x2" t="t" r="x9" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
18858 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
18859 + <path stroke="false" extrusionOk="false">
18862 + <pt x="l" y="b" />
18865 + <pt x="x4" y="b" />
18867 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />
18869 + <pt x="x3" y="y1" />
18871 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />
18873 + <pt x="x8" y="y2" />
18875 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />
18877 + <pt x="x7" y="y1" />
18879 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />
18881 + <pt x="r" y="b" />
18884 + <pt x="x10" y="y3" />
18887 + <pt x="r" y="y4" />
18890 + <pt x="x9" y="y4" />
18893 + <pt x="x9" y="hR" />
18895 + <arcTo wR="wd32" hR="hR" stAng="0" swAng="-5400000" />
18897 + <pt x="x3" y="t" />
18899 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-5400000" />
18901 + <pt x="x2" y="y4" />
18904 + <pt x="l" y="y4" />
18907 + <pt x="wd8" y="y3" />
18911 + <path stroke="false" fill="darkenLess" extrusionOk="false">
18914 + <pt x="x5" y="y6" />
18916 + <arcTo wR="wd32" hR="hR" stAng="0" swAng="-5400000" />
18918 + <pt x="x3" y="y1" />
18920 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />
18922 + <pt x="x5" y="y2" />
18926 + <pt x="x6" y="y6" />
18928 + <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="cd4" />
18930 + <pt x="x8" y="y1" />
18932 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />
18934 + <pt x="x6" y="y2" />
18938 + <path fill="none" extrusionOk="false">
18941 + <pt x="l" y="b" />
18944 + <pt x="wd8" y="y3" />
18947 + <pt x="l" y="y4" />
18950 + <pt x="x2" y="y4" />
18953 + <pt x="x2" y="hR" />
18955 + <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="cd4" />
18957 + <pt x="x8" y="t" />
18959 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd4" />
18961 + <pt x="x9" y="y4" />
18964 + <pt x="x9" y="y4" />
18967 + <pt x="r" y="y4" />
18970 + <pt x="x10" y="y3" />
18973 + <pt x="r" y="b" />
18976 + <pt x="x7" y="b" />
18978 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />
18980 + <pt x="x8" y="y1" />
18982 + <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />
18984 + <pt x="x3" y="y2" />
18986 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />
18988 + <pt x="x4" y="y1" />
18990 + <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />
18993 + <pt x="x5" y="y2" />
18996 + <pt x="x5" y="y6" />
18999 + <pt x="x6" y="y6" />
19002 + <pt x="x6" y="y2" />
19005 + <pt x="x2" y="y7" />
19008 + <pt x="x2" y="y4" />
19011 + <pt x="x9" y="y4" />
19014 + <pt x="x9" y="y7" />
19021 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19022 + <gd name="adj1" fmla="val 50000" />
19023 + <gd name="adj2" fmla="val 50000" />
19025 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19026 + <gd name="maxAdj2" fmla="*/ 100000 w ss" />
19027 + <gd name="a1" fmla="pin 0 adj1 100000" />
19028 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
19029 + <gd name="dx1" fmla="*/ ss a2 100000" />
19030 + <gd name="x1" fmla="+- r 0 dx1" />
19031 + <gd name="dy1" fmla="*/ h a1 200000" />
19032 + <gd name="y1" fmla="+- vc 0 dy1" />
19033 + <gd name="y2" fmla="+- vc dy1 0" />
19034 + <gd name="dx2" fmla="*/ y1 dx1 hd2" />
19035 + <gd name="x2" fmla="+- x1 dx2 0" />
19037 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19038 + <ahXY gdRefY="adj1" minY="0" maxY="100000">
19039 + <pos x="l" y="y1" />
19041 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
19042 + <pos x="x1" y="t" />
19045 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19047 + <pos x="x1" y="t" />
19050 + <pos x="l" y="vc" />
19053 + <pos x="x1" y="b" />
19056 + <pos x="r" y="vc" />
19059 + <rect l="l" t="y1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19060 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19063 + <pt x="l" y="y1" />
19066 + <pt x="x1" y="y1" />
19069 + <pt x="x1" y="t" />
19072 + <pt x="r" y="vc" />
19075 + <pt x="x1" y="b" />
19078 + <pt x="x1" y="y2" />
19081 + <pt x="l" y="y2" />
19087 + <rightArrowCallout>
19089 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19090 + <gd name="adj1" fmla="val 25000" />
19092 + <gd name="adj2" fmla="val 25000" />
19094 + <gd name="adj3" fmla="val 25000" />
19096 + <gd name="adj4" fmla="val 64977" />
19100 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19101 + <gd name="maxAdj2" fmla="*/ 50000 h ss" />
19103 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
19104 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
19106 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
19107 + <gd name="maxAdj3" fmla="*/ 100000 w ss" />
19109 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
19110 + <gd name="q2" fmla="*/ a3 ss w" />
19112 + <gd name="maxAdj4" fmla="+- 100000 0 q2" />
19114 + <gd name="a4" fmla="pin 0 adj4 maxAdj4" />
19115 + <gd name="dy1" fmla="*/ ss a2 100000" />
19117 + <gd name="dy2" fmla="*/ ss a1 200000" />
19119 + <gd name="y1" fmla="+- vc 0 dy1" />
19120 + <gd name="y2" fmla="+- vc 0 dy2" />
19121 + <gd name="y3" fmla="+- vc dy2 0" />
19122 + <gd name="y4" fmla="+- vc dy1 0" />
19123 + <gd name="dx3" fmla="*/ ss a3 100000" />
19125 + <gd name="x3" fmla="+- r 0 dx3" />
19126 + <gd name="x2" fmla="*/ w a4 100000" />
19128 + <gd name="x1" fmla="*/ x2 1 2" />
19131 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19132 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
19133 + <pos x="x3" y="y2" />
19135 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
19136 + <pos x="r" y="y1" />
19138 + <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">
19139 + <pos x="x3" y="t" />
19141 + <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">
19142 + <pos x="x2" y="b" />
19146 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19148 + <pos x="x1" y="t" />
19151 + <pos x="l" y="vc" />
19154 + <pos x="x1" y="b" />
19157 + <pos x="r" y="vc" />
19161 + <rect l="l" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19163 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19166 + <pt x="l" y="t" />
19169 + <pt x="x2" y="t" />
19172 + <pt x="x2" y="y2" />
19175 + <pt x="x3" y="y2" />
19178 + <pt x="x3" y="y1" />
19181 + <pt x="r" y="vc" />
19184 + <pt x="x3" y="y4" />
19187 + <pt x="x3" y="y3" />
19190 + <pt x="x2" y="y3" />
19193 + <pt x="x2" y="b" />
19196 + <pt x="l" y="b" />
19202 + </rightArrowCallout>
19204 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19205 + <gd name="adj1" fmla="val 8333" />
19206 + <gd name="adj2" fmla="val 50000" />
19208 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19209 + <gd name="a2" fmla="pin 0 adj2 100000" />
19210 + <gd name="q1" fmla="+- 100000 0 a2" />
19211 + <gd name="q2" fmla="min q1 a2" />
19212 + <gd name="q3" fmla="*/ q2 1 2" />
19213 + <gd name="maxAdj1" fmla="*/ q3 h ss" />
19214 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
19215 + <gd name="y1" fmla="*/ ss a1 100000" />
19216 + <gd name="y3" fmla="*/ h a2 100000" />
19217 + <gd name="y2" fmla="+- y3 0 y1" />
19218 + <gd name="y4" fmla="+- b 0 y1" />
19219 + <gd name="dx1" fmla="cos wd2 2700000" />
19220 + <gd name="dy1" fmla="sin y1 2700000" />
19221 + <gd name="ir" fmla="+- l dx1 0" />
19222 + <gd name="it" fmla="+- y1 0 dy1" />
19223 + <gd name="ib" fmla="+- b dy1 y1" />
19225 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19226 + <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">
19227 + <pos x="hc" y="y1" />
19229 + <ahXY gdRefY="adj2" minY="0" maxY="100000">
19230 + <pos x="r" y="y3" />
19233 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19235 + <pos x="l" y="t" />
19238 + <pos x="r" y="y3" />
19241 + <pos x="l" y="b" />
19244 + <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19245 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19246 + <path stroke="false" extrusionOk="false">
19248 + <pt x="l" y="t" />
19250 + <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="cd4" />
19252 + <pt x="hc" y="y2" />
19254 + <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-5400000" />
19255 + <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="-5400000" />
19257 + <pt x="hc" y="y4" />
19259 + <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd4" />
19262 + <path fill="none">
19264 + <pt x="l" y="t" />
19266 + <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="cd4" />
19268 + <pt x="hc" y="y2" />
19270 + <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-5400000" />
19271 + <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="-5400000" />
19273 + <pt x="hc" y="y4" />
19275 + <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd4" />
19281 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19282 + <gd name="adj" fmla="val 8333" />
19286 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19287 + <gd name="maxAdj" fmla="*/ 50000 h ss" />
19289 + <gd name="a" fmla="pin 0 adj maxAdj" />
19290 + <gd name="y1" fmla="*/ ss a 100000" />
19292 + <gd name="y2" fmla="+- b 0 y1" />
19294 + <gd name="dx1" fmla="cos w 2700000" />
19295 + <gd name="dy1" fmla="sin y1 2700000" />
19296 + <gd name="ir" fmla="+- l dx1 0" />
19297 + <gd name="it" fmla="+- y1 0 dy1" />
19298 + <gd name="ib" fmla="+- b dy1 y1" />
19301 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19302 + <ahXY gdRefY="adj" minY="0" maxY="maxAdj">
19303 + <pos x="r" y="y1" />
19307 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19309 + <pos x="l" y="t" />
19312 + <pos x="l" y="b" />
19315 + <pos x="r" y="vc" />
19319 + <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19321 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19322 + <path stroke="false" extrusionOk="false">
19325 + <pt x="l" y="t" />
19327 + <arcTo wR="w" hR="y1" stAng="3cd4" swAng="cd4" />
19329 + <pt x="r" y="y2" />
19331 + <arcTo wR="w" hR="y1" stAng="0" swAng="cd4" />
19334 + <path fill="none">
19337 + <pt x="l" y="t" />
19339 + <arcTo wR="w" hR="y1" stAng="3cd4" swAng="cd4" />
19341 + <pt x="r" y="y2" />
19343 + <arcTo wR="w" hR="y1" stAng="0" swAng="cd4" />
19350 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19351 + <gd name="adj" fmla="val 16667" />
19354 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19355 + <gd name="a" fmla="pin 0 adj 50000" />
19356 + <gd name="dx1" fmla="*/ ss a 100000" />
19357 + <gd name="x1" fmla="+- r 0 dx1" />
19358 + <gd name="idx" fmla="*/ dx1 29289 100000" />
19359 + <gd name="ir" fmla="+- r 0 idx" />
19362 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19363 + <ahXY gdRefX="adj" minX="0" maxX="50000">
19364 + <pos x="x1" y="t" />
19368 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19370 + <pos x="hc" y="t" />
19373 + <pos x="l" y="vc" />
19376 + <pos x="hc" y="b" />
19379 + <pos x="r" y="vc" />
19383 + <rect l="l" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19385 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19388 + <pt x="l" y="t" />
19391 + <pt x="x1" y="t" />
19393 + <arcTo wR="dx1" hR="dx1" stAng="3cd4" swAng="cd4" />
19395 + <pt x="r" y="b" />
19398 + <pt x="l" y="b" />
19407 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19408 + <gd name="adj1" fmla="val 16667" />
19409 + <gd name="adj2" fmla="val 0" />
19412 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19413 + <gd name="a1" fmla="pin 0 adj1 50000" />
19414 + <gd name="a2" fmla="pin 0 adj2 50000" />
19415 + <gd name="x1" fmla="*/ ss a1 100000" />
19416 + <gd name="y1" fmla="+- b 0 x1" />
19417 + <gd name="a" fmla="*/ ss a2 100000" />
19418 + <gd name="x2" fmla="+- r 0 a" />
19419 + <gd name="y2" fmla="+- b 0 a" />
19420 + <gd name="dx1" fmla="*/ x1 29289 100000" />
19421 + <gd name="dx2" fmla="*/ a 29289 100000" />
19422 + <gd name="d" fmla="+- dx1 0 dx2" />
19423 + <gd name="dx" fmla="?: d dx1 dx2" />
19424 + <gd name="ir" fmla="+- r 0 dx" />
19425 + <gd name="ib" fmla="+- b 0 dx" />
19428 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19429 + <ahXY gdRefX="adj1" minX="0" maxX="50000">
19430 + <pos x="x1" y="t" />
19432 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
19433 + <pos x="x2" y="t" />
19437 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19439 + <pos x="r" y="vc" />
19442 + <pos x="hc" y="b" />
19445 + <pos x="l" y="vc" />
19448 + <pos x="hc" y="t" />
19452 + <rect l="dx" t="dx" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19454 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19457 + <pt x="x1" y="t" />
19460 + <pt x="x2" y="t" />
19462 + <arcTo wR="a" hR="a" stAng="3cd4" swAng="cd4" />
19464 + <pt x="r" y="y1" />
19466 + <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />
19468 + <pt x="a" y="b" />
19470 + <arcTo wR="a" hR="a" stAng="cd4" swAng="cd4" />
19472 + <pt x="l" y="x1" />
19474 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />
19479 + </round2DiagRect>
19482 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19483 + <gd name="adj1" fmla="val 16667" />
19484 + <gd name="adj2" fmla="val 0" />
19487 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19488 + <gd name="a1" fmla="pin 0 adj1 50000" />
19489 + <gd name="a2" fmla="pin 0 adj2 50000" />
19491 + <gd name="tx1" fmla="*/ ss a1 100000" />
19492 + <gd name="tx2" fmla="+- r 0 tx1" />
19494 + <gd name="bx1" fmla="*/ ss a2 100000" />
19495 + <gd name="bx2" fmla="+- r 0 bx1" />
19496 + <gd name="by1" fmla="+- b 0 bx1" />
19497 + <gd name="d" fmla="+- tx1 0 bx1" />
19498 + <gd name="tdx" fmla="*/ tx1 29289 100000" />
19499 + <gd name="bdx" fmla="*/ bx1 29289 100000" />
19500 + <gd name="il" fmla="?: d tdx bdx" />
19501 + <gd name="ir" fmla="+- r 0 il" />
19502 + <gd name="ib" fmla="+- b 0 bdx" />
19505 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19506 + <ahXY gdRefX="adj1" minX="0" maxX="50000">
19507 + <pos x="tx2" y="t" />
19509 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
19510 + <pos x="bx1" y="b" />
19514 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19516 + <pos x="r" y="vc" />
19519 + <pos x="hc" y="b" />
19522 + <pos x="l" y="vc" />
19525 + <pos x="hc" y="t" />
19529 + <rect l="il" t="tdx" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19531 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19534 + <pt x="tx1" y="t" />
19537 + <pt x="tx2" y="t" />
19539 + <arcTo wR="tx1" hR="tx1" stAng="3cd4" swAng="cd4" />
19541 + <pt x="r" y="by1" />
19543 + <arcTo wR="bx1" hR="bx1" stAng="0" swAng="cd4" />
19545 + <pt x="bx1" y="b" />
19547 + <arcTo wR="bx1" hR="bx1" stAng="cd4" swAng="cd4" />
19549 + <pt x="l" y="tx1" />
19551 + <arcTo wR="tx1" hR="tx1" stAng="cd2" swAng="cd4" />
19556 + </round2SameRect>
19558 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19559 + <gd name="adj" fmla="val 16667" />
19561 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19562 + <gd name="a" fmla="pin 0 adj 50000" />
19563 + <gd name="x1" fmla="*/ ss a 100000" />
19564 + <gd name="x2" fmla="+- r 0 x1" />
19565 + <gd name="y2" fmla="+- b 0 x1" />
19566 + <gd name="il" fmla="*/ x1 29289 100000" />
19567 + <gd name="ir" fmla="+- r 0 il" />
19568 + <gd name="ib" fmla="+- b 0 il" />
19570 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19571 + <ahXY gdRefX="adj" minX="0" maxX="50000">
19572 + <pos x="x1" y="t" />
19575 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19577 + <pos x="hc" y="t" />
19580 + <pos x="l" y="vc" />
19583 + <pos x="hc" y="b" />
19586 + <pos x="r" y="vc" />
19589 + <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19590 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19593 + <pt x="l" y="x1" />
19595 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />
19597 + <pt x="x2" y="t" />
19599 + <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />
19601 + <pt x="r" y="y2" />
19603 + <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />
19605 + <pt x="x1" y="b" />
19607 + <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />
19613 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19614 + <gd name="it" fmla="*/ h 7 12" />
19615 + <gd name="ir" fmla="*/ w 7 12" />
19616 + <gd name="ib" fmla="*/ h 11 12" />
19618 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19620 + <pos x="l" y="t" />
19623 + <pos x="l" y="vc" />
19626 + <pos x="l" y="b" />
19629 + <pos x="hc" y="b" />
19632 + <pos x="r" y="b" />
19635 + <pos x="hc" y="vc" />
19638 + <rect l="wd12" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19639 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19642 + <pt x="l" y="b" />
19645 + <pt x="l" y="t" />
19648 + <pt x="r" y="b" />
19656 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19657 + <gd name="adj" fmla="val 4653" />
19661 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19662 + <gd name="a" fmla="pin -4653 adj 4653" />
19663 + <gd name="x1" fmla="*/ w 4969 21699" />
19665 + <gd name="x2" fmla="*/ w 6215 21600" />
19667 + <gd name="x3" fmla="*/ w 13135 21600" />
19669 + <gd name="x4" fmla="*/ w 16640 21600" />
19671 + <gd name="y1" fmla="*/ h 7570 21600" />
19673 + <gd name="y3" fmla="*/ h 16515 21600" />
19675 + <gd name="dy2" fmla="*/ h a 100000" />
19677 + <gd name="y2" fmla="+- y3 0 dy2" />
19679 + <gd name="y4" fmla="+- y3 dy2 0" />
19681 + <gd name="dy3" fmla="*/ h a 50000" />
19683 + <gd name="y5" fmla="+- y4 dy3 0" />
19684 + <gd name="idx" fmla="cos wd2 2700000" />
19685 + <gd name="idy" fmla="sin hd2 2700000" />
19686 + <gd name="il" fmla="+- hc 0 idx" />
19687 + <gd name="ir" fmla="+- hc idx 0" />
19688 + <gd name="it" fmla="+- vc 0 idy" />
19689 + <gd name="ib" fmla="+- vc idy 0" />
19690 + <gd name="wR" fmla="*/ w 1125 21600" />
19691 + <gd name="hR" fmla="*/ h 1125 21600" />
19694 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19695 + <ahXY gdRefY="adj" minY="-4653" maxY="4653">
19696 + <pos x="hc" y="y4" />
19700 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19702 + <pos x="hc" y="t" />
19705 + <pos x="il" y="it" />
19708 + <pos x="l" y="vc" />
19711 + <pos x="il" y="ib" />
19714 + <pos x="hc" y="b" />
19717 + <pos x="ir" y="ib" />
19720 + <pos x="r" y="vc" />
19723 + <pos x="ir" y="it" />
19727 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19729 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19730 + <path stroke="false" extrusionOk="false">
19733 + <pt x="l" y="vc" />
19735 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="21600000" />
19738 + <path fill="darkenLess" extrusionOk="false">
19741 + <pt x="x2" y="y1" />
19743 + <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />
19745 + <pt x="x3" y="y1" />
19747 + <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />
19749 + <path fill="none" extrusionOk="false">
19752 + <pt x="x1" y="y2" />
19755 + <pt x="hc" y="y5" />
19756 + <pt x="x4" y="y2" />
19759 + <path fill="none">
19762 + <pt x="l" y="vc" />
19764 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="21600000" />
19772 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19773 + <gd name="adj" fmla="val 16667" />
19776 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19777 + <gd name="a" fmla="pin 0 adj 50000" />
19778 + <gd name="dx1" fmla="*/ ss a 100000" />
19779 + <gd name="x1" fmla="+- r 0 dx1" />
19780 + <gd name="it" fmla="*/ dx1 1 2" />
19781 + <gd name="ir" fmla="+/ x1 r 2" />
19784 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19785 + <ahXY gdRefX="adj" minX="0" maxX="50000">
19786 + <pos x="x1" y="t" />
19790 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19792 + <pos x="r" y="vc" />
19795 + <pos x="hc" y="b" />
19798 + <pos x="l" y="vc" />
19801 + <pos x="hc" y="t" />
19805 + <rect l="l" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19807 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19810 + <pt x="l" y="t" />
19813 + <pt x="x1" y="t" />
19816 + <pt x="r" y="dx1" />
19819 + <pt x="r" y="b" />
19822 + <pt x="l" y="b" />
19831 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19832 + <gd name="adj1" fmla="val 0" />
19833 + <gd name="adj2" fmla="val 16667" />
19836 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19837 + <gd name="a1" fmla="pin 0 adj1 50000" />
19838 + <gd name="a2" fmla="pin 0 adj2 50000" />
19839 + <gd name="lx1" fmla="*/ ss a1 100000" />
19840 + <gd name="lx2" fmla="+- r 0 lx1" />
19841 + <gd name="ly1" fmla="+- b 0 lx1" />
19842 + <gd name="rx1" fmla="*/ ss a2 100000" />
19843 + <gd name="rx2" fmla="+- r 0 rx1" />
19844 + <gd name="ry1" fmla="+- b 0 rx1" />
19845 + <gd name="d" fmla="+- lx1 0 rx1" />
19846 + <gd name="dx" fmla="?: d lx1 rx1" />
19847 + <gd name="il" fmla="*/ dx 1 2" />
19849 + <gd name="ir" fmla="+- r 0 il" />
19850 + <gd name="ib" fmla="+- b 0 il" />
19853 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19854 + <ahXY gdRefX="adj1" minX="0" maxX="50000">
19855 + <pos x="lx1" y="t" />
19857 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
19858 + <pos x="rx2" y="t" />
19862 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19864 + <pos x="r" y="vc" />
19867 + <pos x="hc" y="b" />
19870 + <pos x="l" y="vc" />
19873 + <pos x="hc" y="t" />
19877 + <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19879 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19882 + <pt x="lx1" y="t" />
19885 + <pt x="rx2" y="t" />
19888 + <pt x="r" y="rx1" />
19891 + <pt x="r" y="ly1" />
19894 + <pt x="lx2" y="b" />
19897 + <pt x="rx1" y="b" />
19900 + <pt x="l" y="ry1" />
19903 + <pt x="l" y="lx1" />
19912 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19913 + <gd name="adj1" fmla="val 16667" />
19914 + <gd name="adj2" fmla="val 0" />
19917 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19918 + <gd name="a1" fmla="pin 0 adj1 50000" />
19919 + <gd name="a2" fmla="pin 0 adj2 50000" />
19920 + <gd name="tx1" fmla="*/ ss a1 100000" />
19921 + <gd name="tx2" fmla="+- r 0 tx1" />
19922 + <gd name="bx1" fmla="*/ ss a2 100000" />
19923 + <gd name="bx2" fmla="+- r 0 bx1" />
19924 + <gd name="by1" fmla="+- b 0 bx1" />
19925 + <gd name="d" fmla="+- tx1 0 bx1" />
19926 + <gd name="dx" fmla="?: d tx1 bx1" />
19927 + <gd name="il" fmla="*/ dx 1 2" />
19928 + <gd name="ir" fmla="+- r 0 il" />
19929 + <gd name="it" fmla="*/ tx1 1 2" />
19930 + <gd name="ib" fmla="+/ by1 b 2" />
19933 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19934 + <ahXY gdRefX="adj1" minX="0" maxX="50000">
19935 + <pos x="tx2" y="t" />
19937 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
19938 + <pos x="bx1" y="b" />
19942 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19944 + <pos x="r" y="vc" />
19947 + <pos x="hc" y="b" />
19950 + <pos x="l" y="vc" />
19953 + <pos x="hc" y="t" />
19957 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
19959 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19962 + <pt x="tx1" y="t" />
19965 + <pt x="tx2" y="t" />
19968 + <pt x="r" y="tx1" />
19971 + <pt x="r" y="by1" />
19974 + <pt x="bx2" y="b" />
19977 + <pt x="bx1" y="b" />
19980 + <pt x="l" y="by1" />
19983 + <pt x="l" y="tx1" />
19992 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19993 + <gd name="adj1" fmla="val 16667" />
19994 + <gd name="adj2" fmla="val 16667" />
19997 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
19998 + <gd name="a1" fmla="pin 0 adj1 50000" />
19999 + <gd name="a2" fmla="pin 0 adj2 50000" />
20000 + <gd name="x1" fmla="*/ ss a1 100000" />
20001 + <gd name="dx2" fmla="*/ ss a2 100000" />
20002 + <gd name="x2" fmla="+- r 0 dx2" />
20003 + <gd name="il" fmla="*/ x1 29289 100000" />
20005 + <gd name="ir" fmla="+/ x2 r 2" />
20008 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20009 + <ahXY gdRefX="adj1" minX="0" maxX="50000">
20010 + <pos x="x1" y="t" />
20012 + <ahXY gdRefX="adj2" minX="0" maxX="50000">
20013 + <pos x="x2" y="t" />
20017 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20019 + <pos x="r" y="vc" />
20022 + <pos x="hc" y="b" />
20025 + <pos x="l" y="vc" />
20028 + <pos x="hc" y="t" />
20032 + <rect l="il" t="il" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
20034 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20037 + <pt x="x1" y="t" />
20040 + <pt x="x2" y="t" />
20043 + <pt x="r" y="dx2" />
20046 + <pt x="r" y="b" />
20049 + <pt x="l" y="b" />
20052 + <pt x="l" y="x1" />
20054 + <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />
20062 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20063 + <gd name="md" fmla="mod w h 0" />
20064 + <gd name="dx" fmla="*/ 1 md 20" />
20066 + <gd name="y1" fmla="+- 0 b dx" />
20068 + <gd name="x1" fmla="+- 0 r dx" />
20072 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20074 + <pos x="l" y="t" />
20077 + <pos x="l" y="dx" />
20080 + <pos x="l" y="y1" />
20083 + <pos x="l" y="b" />
20086 + <pos x="dx" y="dx" />
20089 + <pos x="dx" y="x1" />
20092 + <pos x="dx" y="t" />
20095 + <pos x="x1" y="t" />
20098 + <pos x="dx" y="b" />
20101 + <pos x="x1" y="b" />
20104 + <pos x="r" y="t" />
20107 + <pos x="r" y="dx" />
20110 + <pos x="r" y="y1" />
20113 + <pos x="r" y="b" />
20116 + <pos x="x1" y="dx" />
20119 + <pos x="x1" y="y1" />
20123 + <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
20125 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20128 + <pt x="l" y="t" />
20131 + <pt x="dx" y="t" />
20134 + <pt x="dx" y="dx" />
20137 + <pt x="l" y="dx" />
20143 + <pt x="l" y="y1" />
20146 + <pt x="dx" y="y1" />
20149 + <pt x="dx" y="b" />
20152 + <pt x="l" y="b" />
20158 + <pt x="x1" y="t" />
20161 + <pt x="r" y="t" />
20164 + <pt x="r" y="dx" />
20167 + <pt x="x1" y="dx" />
20173 + <pt x="x1" y="y1" />
20176 + <pt x="r" y="y1" />
20179 + <pt x="r" y="b" />
20182 + <pt x="x1" y="b" />
20191 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20192 + <gd name="adj" fmla="val 42533" />
20193 + <gd name="hf" fmla="val 105146" />
20196 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20197 + <gd name="a" fmla="pin 0 adj 50000" />
20198 + <gd name="swd2" fmla="*/ wd2 hf 100000" />
20199 + <gd name="dx1" fmla="*/ swd2 95106 100000" />
20200 + <gd name="dx2" fmla="*/ swd2 58779 100000" />
20201 + <gd name="x1" fmla="+- hc 0 dx1" />
20202 + <gd name="x2" fmla="+- hc 0 dx2" />
20203 + <gd name="x3" fmla="+- hc dx2 0" />
20204 + <gd name="x4" fmla="+- hc dx1 0" />
20205 + <gd name="dy1" fmla="*/ hd2 80902 100000" />
20206 + <gd name="dy2" fmla="*/ hd2 30902 100000" />
20207 + <gd name="y1" fmla="+- vc 0 dy1" />
20208 + <gd name="y2" fmla="+- vc 0 dy2" />
20209 + <gd name="y3" fmla="+- vc dy2 0" />
20210 + <gd name="y4" fmla="+- vc dy1 0" />
20211 + <gd name="iwd2" fmla="*/ swd2 a 50000" />
20212 + <gd name="ihd2" fmla="*/ hd2 a 50000" />
20213 + <gd name="sdx1" fmla="*/ iwd2 80902 100000" />
20214 + <gd name="sdx2" fmla="*/ iwd2 30902 100000" />
20215 + <gd name="sdy1" fmla="*/ ihd2 95106 100000" />
20216 + <gd name="sdy2" fmla="*/ ihd2 58779 100000" />
20217 + <gd name="sx1" fmla="+- hc 0 iwd2" />
20218 + <gd name="sx2" fmla="+- hc 0 sdx1" />
20219 + <gd name="sx3" fmla="+- hc 0 sdx2" />
20220 + <gd name="sx4" fmla="+- hc sdx2 0" />
20221 + <gd name="sx5" fmla="+- hc sdx1 0" />
20222 + <gd name="sx6" fmla="+- hc iwd2 0" />
20223 + <gd name="sy1" fmla="+- vc 0 sdy1" />
20224 + <gd name="sy2" fmla="+- vc 0 sdy2" />
20225 + <gd name="sy3" fmla="+- vc sdy2 0" />
20226 + <gd name="sy4" fmla="+- vc sdy1 0" />
20227 + <gd name="yAdj" fmla="+- vc 0 ihd2" />
20230 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20231 + <ahXY gdRefY="adj" minY="0" maxY="50000">
20232 + <pos x="hc" y="yAdj" />
20236 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20238 + <pos x="x4" y="y2" />
20241 + <pos x="x4" y="y3" />
20244 + <pos x="x3" y="y4" />
20247 + <pos x="hc" y="b" />
20250 + <pos x="x2" y="y4" />
20253 + <pos x="x1" y="y3" />
20256 + <pos x="x1" y="y2" />
20259 + <pos x="x2" y="y1" />
20262 + <pos x="hc" y="t" />
20265 + <pos x="x3" y="y1" />
20269 + <rect l="sx2" t="sy2" r="sx5" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
20271 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20274 + <pt x="x1" y="y2" />
20277 + <pt x="sx2" y="sy2" />
20280 + <pt x="x2" y="y1" />
20283 + <pt x="sx3" y="sy1" />
20286 + <pt x="hc" y="t" />
20289 + <pt x="sx4" y="sy1" />
20292 + <pt x="x3" y="y1" />
20295 + <pt x="sx5" y="sy2" />
20298 + <pt x="x4" y="y2" />
20301 + <pt x="sx6" y="vc" />
20304 + <pt x="x4" y="y3" />
20307 + <pt x="sx5" y="sy3" />
20310 + <pt x="x3" y="y4" />
20313 + <pt x="sx4" y="sy4" />
20316 + <pt x="hc" y="b" />
20319 + <pt x="sx3" y="sy4" />
20322 + <pt x="x2" y="y4" />
20325 + <pt x="sx2" y="sy3" />
20328 + <pt x="x1" y="y3" />
20331 + <pt x="sx1" y="vc" />
20340 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20341 + <gd name="adj" fmla="val 37500" />
20344 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20345 + <gd name="a" fmla="pin 0 adj 50000" />
20346 + <gd name="dx1" fmla="cos wd2 1800000" />
20348 + <gd name="dy1" fmla="sin hd2 3600000" />
20350 + <gd name="x1" fmla="+- hc 0 dx1" />
20351 + <gd name="x3" fmla="*/ w 3 4" />
20352 + <gd name="x4" fmla="+- hc dx1 0" />
20353 + <gd name="y1" fmla="+- vc 0 dy1" />
20354 + <gd name="y3" fmla="*/ h 3 4" />
20355 + <gd name="y4" fmla="+- vc dy1 0" />
20356 + <gd name="iwd2" fmla="*/ wd2 a 50000" />
20357 + <gd name="ihd2" fmla="*/ hd2 a 50000" />
20358 + <gd name="sdx1" fmla="cos iwd2 900000" />
20359 + <gd name="sdx2" fmla="cos iwd2 2700000" />
20360 + <gd name="sdx3" fmla="cos iwd2 4500000" />
20361 + <gd name="sdy1" fmla="sin ihd2 4500000" />
20362 + <gd name="sdy2" fmla="sin ihd2 2700000" />
20363 + <gd name="sdy3" fmla="sin ihd2 900000" />
20364 + <gd name="sx1" fmla="+- hc 0 sdx1" />
20365 + <gd name="sx2" fmla="+- hc 0 sdx2" />
20366 + <gd name="sx3" fmla="+- hc 0 sdx3" />
20367 + <gd name="sx4" fmla="+- hc sdx3 0" />
20368 + <gd name="sx5" fmla="+- hc sdx2 0" />
20369 + <gd name="sx6" fmla="+- hc sdx1 0" />
20370 + <gd name="sy1" fmla="+- vc 0 sdy1" />
20371 + <gd name="sy2" fmla="+- vc 0 sdy2" />
20372 + <gd name="sy3" fmla="+- vc 0 sdy3" />
20373 + <gd name="sy4" fmla="+- vc sdy3 0" />
20374 + <gd name="sy5" fmla="+- vc sdy2 0" />
20375 + <gd name="sy6" fmla="+- vc sdy1 0" />
20376 + <gd name="yAdj" fmla="+- vc 0 ihd2" />
20379 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20380 + <ahXY gdRefY="adj" minY="0" maxY="50000">
20381 + <pos x="hc" y="yAdj" />
20385 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20387 + <pos x="x4" y="hd4" />
20390 + <pos x="r" y="vc" />
20393 + <pos x="x4" y="y3" />
20396 + <pos x="x3" y="y4" />
20399 + <pos x="hc" y="b" />
20402 + <pos x="wd4" y="y4" />
20405 + <pos x="x1" y="y3" />
20408 + <pos x="l" y="vc" />
20411 + <pos x="x1" y="hd4" />
20414 + <pos x="wd4" y="y1" />
20417 + <pos x="hc" y="t" />
20420 + <pos x="x3" y="y1" />
20424 + <rect l="sx2" t="sy2" r="sx5" b="sy5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
20426 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20429 + <pt x="l" y="vc" />
20432 + <pt x="sx1" y="sy3" />
20435 + <pt x="x1" y="hd4" />
20438 + <pt x="sx2" y="sy2" />
20441 + <pt x="wd4" y="y1" />
20444 + <pt x="sx3" y="sy1" />
20447 + <pt x="hc" y="t" />
20450 + <pt x="sx4" y="sy1" />
20453 + <pt x="x3" y="y1" />
20456 + <pt x="sx5" y="sy2" />
20459 + <pt x="x4" y="hd4" />
20462 + <pt x="sx6" y="sy3" />
20465 + <pt x="r" y="vc" />
20468 + <pt x="sx6" y="sy4" />
20471 + <pt x="x4" y="y3" />
20474 + <pt x="sx5" y="sy5" />
20477 + <pt x="x3" y="y4" />
20480 + <pt x="sx4" y="sy6" />
20483 + <pt x="hc" y="b" />
20486 + <pt x="sx3" y="sy6" />
20489 + <pt x="wd4" y="y4" />
20492 + <pt x="sx2" y="sy5" />
20495 + <pt x="x1" y="y3" />
20498 + <pt x="sx1" y="sy4" />
20506 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20507 + <gd name="adj" fmla="val 37500" />
20509 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20510 + <gd name="a" fmla="pin 0 adj 50000" />
20511 + <gd name="dx1" fmla="*/ wd2 92388 100000" />
20512 + <gd name="dx2" fmla="*/ wd2 70711 100000" />
20513 + <gd name="dx3" fmla="*/ wd2 38268 100000" />
20514 + <gd name="dy1" fmla="*/ hd2 92388 100000" />
20515 + <gd name="dy2" fmla="*/ hd2 70711 100000" />
20516 + <gd name="dy3" fmla="*/ hd2 38268 100000" />
20517 + <gd name="x1" fmla="+- hc 0 dx1" />
20518 + <gd name="x2" fmla="+- hc 0 dx2" />
20519 + <gd name="x3" fmla="+- hc 0 dx3" />
20520 + <gd name="x4" fmla="+- hc dx3 0" />
20521 + <gd name="x5" fmla="+- hc dx2 0" />
20522 + <gd name="x6" fmla="+- hc dx1 0" />
20523 + <gd name="y1" fmla="+- vc 0 dy1" />
20524 + <gd name="y2" fmla="+- vc 0 dy2" />
20525 + <gd name="y3" fmla="+- vc 0 dy3" />
20526 + <gd name="y4" fmla="+- vc dy3 0" />
20527 + <gd name="y5" fmla="+- vc dy2 0" />
20528 + <gd name="y6" fmla="+- vc dy1 0" />
20529 + <gd name="iwd2" fmla="*/ wd2 a 50000" />
20530 + <gd name="ihd2" fmla="*/ hd2 a 50000" />
20531 + <gd name="sdx1" fmla="*/ iwd2 98079 100000" />
20532 + <gd name="sdx2" fmla="*/ iwd2 83147 100000" />
20533 + <gd name="sdx3" fmla="*/ iwd2 55557 100000" />
20534 + <gd name="sdx4" fmla="*/ iwd2 19509 100000" />
20535 + <gd name="sdy1" fmla="*/ ihd2 98079 100000" />
20536 + <gd name="sdy2" fmla="*/ ihd2 83147 100000" />
20537 + <gd name="sdy3" fmla="*/ ihd2 55557 100000" />
20538 + <gd name="sdy4" fmla="*/ ihd2 19509 100000" />
20539 + <gd name="sx1" fmla="+- hc 0 sdx1" />
20540 + <gd name="sx2" fmla="+- hc 0 sdx2" />
20541 + <gd name="sx3" fmla="+- hc 0 sdx3" />
20542 + <gd name="sx4" fmla="+- hc 0 sdx4" />
20543 + <gd name="sx5" fmla="+- hc sdx4 0" />
20544 + <gd name="sx6" fmla="+- hc sdx3 0" />
20545 + <gd name="sx7" fmla="+- hc sdx2 0" />
20546 + <gd name="sx8" fmla="+- hc sdx1 0" />
20547 + <gd name="sy1" fmla="+- vc 0 sdy1" />
20548 + <gd name="sy2" fmla="+- vc 0 sdy2" />
20549 + <gd name="sy3" fmla="+- vc 0 sdy3" />
20550 + <gd name="sy4" fmla="+- vc 0 sdy4" />
20551 + <gd name="sy5" fmla="+- vc sdy4 0" />
20552 + <gd name="sy6" fmla="+- vc sdy3 0" />
20553 + <gd name="sy7" fmla="+- vc sdy2 0" />
20554 + <gd name="sy8" fmla="+- vc sdy1 0" />
20555 + <gd name="idx" fmla="cos iwd2 2700000" />
20556 + <gd name="idy" fmla="sin ihd2 2700000" />
20557 + <gd name="il" fmla="+- hc 0 idx" />
20558 + <gd name="it" fmla="+- vc 0 idy" />
20559 + <gd name="ir" fmla="+- hc idx 0" />
20560 + <gd name="ib" fmla="+- vc idy 0" />
20561 + <gd name="yAdj" fmla="+- vc 0 ihd2" />
20563 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20564 + <ahXY gdRefY="adj" minY="0" maxY="50000">
20565 + <pos x="hc" y="yAdj" />
20568 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20570 + <pos x="x5" y="y2" />
20573 + <pos x="x6" y="y3" />
20576 + <pos x="r" y="vc" />
20579 + <pos x="x6" y="y4" />
20582 + <pos x="x5" y="y5" />
20585 + <pos x="x4" y="y6" />
20588 + <pos x="hc" y="b" />
20591 + <pos x="x3" y="y6" />
20594 + <pos x="x2" y="y5" />
20597 + <pos x="x1" y="y4" />
20600 + <pos x="l" y="vc" />
20603 + <pos x="x1" y="y3" />
20606 + <pos x="x2" y="y2" />
20609 + <pos x="x3" y="y1" />
20612 + <pos x="hc" y="t" />
20615 + <pos x="x4" y="y1" />
20618 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
20619 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20622 + <pt x="l" y="vc" />
20625 + <pt x="sx1" y="sy4" />
20628 + <pt x="x1" y="y3" />
20631 + <pt x="sx2" y="sy3" />
20634 + <pt x="x2" y="y2" />
20637 + <pt x="sx3" y="sy2" />
20640 + <pt x="x3" y="y1" />
20643 + <pt x="sx4" y="sy1" />
20646 + <pt x="hc" y="t" />
20649 + <pt x="sx5" y="sy1" />
20652 + <pt x="x4" y="y1" />
20655 + <pt x="sx6" y="sy2" />
20658 + <pt x="x5" y="y2" />
20661 + <pt x="sx7" y="sy3" />
20664 + <pt x="x6" y="y3" />
20667 + <pt x="sx8" y="sy4" />
20670 + <pt x="r" y="vc" />
20673 + <pt x="sx8" y="sy5" />
20676 + <pt x="x6" y="y4" />
20679 + <pt x="sx7" y="sy6" />
20682 + <pt x="x5" y="y5" />
20685 + <pt x="sx6" y="sy7" />
20688 + <pt x="x4" y="y6" />
20691 + <pt x="sx5" y="sy8" />
20694 + <pt x="hc" y="b" />
20697 + <pt x="sx4" y="sy8" />
20700 + <pt x="x3" y="y6" />
20703 + <pt x="sx3" y="sy7" />
20706 + <pt x="x2" y="y5" />
20709 + <pt x="sx2" y="sy6" />
20712 + <pt x="x1" y="y4" />
20715 + <pt x="sx1" y="sy5" />
20723 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20724 + <gd name="adj" fmla="val 37500" />
20727 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20728 + <gd name="a" fmla="pin 0 adj 50000" />
20729 + <gd name="dx1" fmla="cos wd2 900000" />
20730 + <gd name="dx2" fmla="cos wd2 1800000" />
20731 + <gd name="dx3" fmla="cos wd2 2700000" />
20732 + <gd name="dx4" fmla="val wd4" />
20733 + <gd name="dx5" fmla="cos wd2 4500000" />
20734 + <gd name="dy1" fmla="sin hd2 4500000" />
20735 + <gd name="dy2" fmla="sin hd2 3600000" />
20736 + <gd name="dy3" fmla="sin hd2 2700000" />
20737 + <gd name="dy4" fmla="val hd4" />
20738 + <gd name="dy5" fmla="sin hd2 900000" />
20739 + <gd name="x1" fmla="+- hc 0 dx1" />
20740 + <gd name="x2" fmla="+- hc 0 dx2" />
20741 + <gd name="x3" fmla="+- hc 0 dx3" />
20742 + <gd name="x4" fmla="+- hc 0 dx4" />
20743 + <gd name="x5" fmla="+- hc 0 dx5" />
20744 + <gd name="x6" fmla="+- hc dx5 0" />
20745 + <gd name="x7" fmla="+- hc dx4 0" />
20746 + <gd name="x8" fmla="+- hc dx3 0" />
20747 + <gd name="x9" fmla="+- hc dx2 0" />
20748 + <gd name="x10" fmla="+- hc dx1 0" />
20749 + <gd name="y1" fmla="+- vc 0 dy1" />
20750 + <gd name="y2" fmla="+- vc 0 dy2" />
20751 + <gd name="y3" fmla="+- vc 0 dy3" />
20752 + <gd name="y4" fmla="+- vc 0 dy4" />
20753 + <gd name="y5" fmla="+- vc 0 dy5" />
20754 + <gd name="y6" fmla="+- vc dy5 0" />
20755 + <gd name="y7" fmla="+- vc dy4 0" />
20756 + <gd name="y8" fmla="+- vc dy3 0" />
20757 + <gd name="y9" fmla="+- vc dy2 0" />
20758 + <gd name="y10" fmla="+- vc dy1 0" />
20759 + <gd name="iwd2" fmla="*/ wd2 a 50000" />
20760 + <gd name="ihd2" fmla="*/ hd2 a 50000" />
20761 + <gd name="sdx1" fmla="*/ iwd2 99144 100000" />
20762 + <gd name="sdx2" fmla="*/ iwd2 92388 100000" />
20763 + <gd name="sdx3" fmla="*/ iwd2 79335 100000" />
20764 + <gd name="sdx4" fmla="*/ iwd2 60876 100000" />
20765 + <gd name="sdx5" fmla="*/ iwd2 38268 100000" />
20766 + <gd name="sdx6" fmla="*/ iwd2 13053 100000" />
20767 + <gd name="sdy1" fmla="*/ ihd2 99144 100000" />
20768 + <gd name="sdy2" fmla="*/ ihd2 92388 100000" />
20769 + <gd name="sdy3" fmla="*/ ihd2 79335 100000" />
20770 + <gd name="sdy4" fmla="*/ ihd2 60876 100000" />
20771 + <gd name="sdy5" fmla="*/ ihd2 38268 100000" />
20772 + <gd name="sdy6" fmla="*/ ihd2 13053 100000" />
20773 + <gd name="sx1" fmla="+- hc 0 sdx1" />
20774 + <gd name="sx2" fmla="+- hc 0 sdx2" />
20775 + <gd name="sx3" fmla="+- hc 0 sdx3" />
20776 + <gd name="sx4" fmla="+- hc 0 sdx4" />
20777 + <gd name="sx5" fmla="+- hc 0 sdx5" />
20778 + <gd name="sx6" fmla="+- hc 0 sdx6" />
20779 + <gd name="sx7" fmla="+- hc sdx6 0" />
20780 + <gd name="sx8" fmla="+- hc sdx5 0" />
20781 + <gd name="sx9" fmla="+- hc sdx4 0" />
20782 + <gd name="sx10" fmla="+- hc sdx3 0" />
20783 + <gd name="sx11" fmla="+- hc sdx2 0" />
20784 + <gd name="sx12" fmla="+- hc sdx1 0" />
20785 + <gd name="sy1" fmla="+- vc 0 sdy1" />
20786 + <gd name="sy2" fmla="+- vc 0 sdy2" />
20787 + <gd name="sy3" fmla="+- vc 0 sdy3" />
20788 + <gd name="sy4" fmla="+- vc 0 sdy4" />
20789 + <gd name="sy5" fmla="+- vc 0 sdy5" />
20790 + <gd name="sy6" fmla="+- vc 0 sdy6" />
20791 + <gd name="sy7" fmla="+- vc sdy6 0" />
20792 + <gd name="sy8" fmla="+- vc sdy5 0" />
20793 + <gd name="sy9" fmla="+- vc sdy4 0" />
20794 + <gd name="sy10" fmla="+- vc sdy3 0" />
20795 + <gd name="sy11" fmla="+- vc sdy2 0" />
20796 + <gd name="sy12" fmla="+- vc sdy1 0" />
20797 + <gd name="idx" fmla="cos iwd2 2700000" />
20798 + <gd name="idy" fmla="sin ihd2 2700000" />
20799 + <gd name="il" fmla="+- hc 0 idx" />
20800 + <gd name="it" fmla="+- vc 0 idy" />
20801 + <gd name="ir" fmla="+- hc idx 0" />
20802 + <gd name="ib" fmla="+- vc idy 0" />
20803 + <gd name="yAdj" fmla="+- vc 0 ihd2" />
20806 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20807 + <ahXY gdRefY="adj" minY="0" maxY="ssd2">
20808 + <pos x="hc" y="yAdj" />
20812 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20814 + <pos x="hc" y="t" />
20817 + <pos x="l" y="vc" />
20820 + <pos x="hc" y="b" />
20823 + <pos x="r" y="vc" />
20827 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
20829 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20832 + <pt x="l" y="vc" />
20835 + <pt x="sx1" y="sy6" />
20838 + <pt x="x1" y="y5" />
20841 + <pt x="sx2" y="sy5" />
20844 + <pt x="x2" y="y4" />
20847 + <pt x="sx3" y="sy4" />
20850 + <pt x="x3" y="y3" />
20853 + <pt x="sx4" y="sy3" />
20856 + <pt x="x4" y="y2" />
20859 + <pt x="sx5" y="sy2" />
20862 + <pt x="x5" y="y1" />
20865 + <pt x="sx6" y="sy1" />
20868 + <pt x="hc" y="t" />
20871 + <pt x="sx7" y="sy1" />
20874 + <pt x="x6" y="y1" />
20877 + <pt x="sx8" y="sy2" />
20880 + <pt x="x7" y="y2" />
20883 + <pt x="sx9" y="sy3" />
20886 + <pt x="x8" y="y3" />
20889 + <pt x="sx10" y="sy4" />
20892 + <pt x="x9" y="y4" />
20895 + <pt x="sx11" y="sy5" />
20898 + <pt x="x10" y="y5" />
20901 + <pt x="sx12" y="sy6" />
20904 + <pt x="r" y="vc" />
20907 + <pt x="sx12" y="sy7" />
20910 + <pt x="x10" y="y6" />
20913 + <pt x="sx11" y="sy8" />
20916 + <pt x="x9" y="y7" />
20919 + <pt x="sx10" y="sy9" />
20922 + <pt x="x8" y="y8" />
20925 + <pt x="sx9" y="sy10" />
20928 + <pt x="x7" y="y9" />
20931 + <pt x="sx8" y="sy11" />
20934 + <pt x="x6" y="y10" />
20937 + <pt x="sx7" y="sy12" />
20940 + <pt x="hc" y="b" />
20943 + <pt x="sx6" y="sy12" />
20946 + <pt x="x5" y="y10" />
20949 + <pt x="sx5" y="sy11" />
20952 + <pt x="x4" y="y9" />
20955 + <pt x="sx4" y="sy10" />
20958 + <pt x="x3" y="y8" />
20961 + <pt x="sx3" y="sy9" />
20964 + <pt x="x2" y="y7" />
20967 + <pt x="sx2" y="sy8" />
20970 + <pt x="x1" y="y6" />
20973 + <pt x="sx1" y="sy7" />
20982 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20983 + <gd name="adj" fmla="val 37500" />
20986 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
20987 + <gd name="a" fmla="pin 0 adj 50000" />
20988 + <gd name="dx1" fmla="*/ wd2 98079 100000" />
20989 + <gd name="dx2" fmla="*/ wd2 92388 100000" />
20990 + <gd name="dx3" fmla="*/ wd2 83147 100000" />
20991 + <gd name="dx4" fmla="cos wd2 2700000" />
20992 + <gd name="dx5" fmla="*/ wd2 55557 100000" />
20993 + <gd name="dx6" fmla="*/ wd2 38268 100000" />
20994 + <gd name="dx7" fmla="*/ wd2 19509 100000" />
20995 + <gd name="dy1" fmla="*/ hd2 98079 100000" />
20996 + <gd name="dy2" fmla="*/ hd2 92388 100000" />
20997 + <gd name="dy3" fmla="*/ hd2 83147 100000" />
20998 + <gd name="dy4" fmla="sin hd2 2700000" />
20999 + <gd name="dy5" fmla="*/ hd2 55557 100000" />
21000 + <gd name="dy6" fmla="*/ hd2 38268 100000" />
21001 + <gd name="dy7" fmla="*/ hd2 19509 100000" />
21002 + <gd name="x1" fmla="+- hc 0 dx1" />
21003 + <gd name="x2" fmla="+- hc 0 dx2" />
21004 + <gd name="x3" fmla="+- hc 0 dx3" />
21005 + <gd name="x4" fmla="+- hc 0 dx4" />
21006 + <gd name="x5" fmla="+- hc 0 dx5" />
21007 + <gd name="x6" fmla="+- hc 0 dx6" />
21008 + <gd name="x7" fmla="+- hc 0 dx7" />
21009 + <gd name="x8" fmla="+- hc dx7 0" />
21010 + <gd name="x9" fmla="+- hc dx6 0" />
21011 + <gd name="x10" fmla="+- hc dx5 0" />
21012 + <gd name="x11" fmla="+- hc dx4 0" />
21013 + <gd name="x12" fmla="+- hc dx3 0" />
21014 + <gd name="x13" fmla="+- hc dx2 0" />
21015 + <gd name="x14" fmla="+- hc dx1 0" />
21016 + <gd name="y1" fmla="+- vc 0 dy1" />
21017 + <gd name="y2" fmla="+- vc 0 dy2" />
21018 + <gd name="y3" fmla="+- vc 0 dy3" />
21019 + <gd name="y4" fmla="+- vc 0 dy4" />
21020 + <gd name="y5" fmla="+- vc 0 dy5" />
21021 + <gd name="y6" fmla="+- vc 0 dy6" />
21022 + <gd name="y7" fmla="+- vc 0 dy7" />
21023 + <gd name="y8" fmla="+- vc dy7 0" />
21024 + <gd name="y9" fmla="+- vc dy6 0" />
21025 + <gd name="y10" fmla="+- vc dy5 0" />
21026 + <gd name="y11" fmla="+- vc dy4 0" />
21027 + <gd name="y12" fmla="+- vc dy3 0" />
21028 + <gd name="y13" fmla="+- vc dy2 0" />
21029 + <gd name="y14" fmla="+- vc dy1 0" />
21030 + <gd name="iwd2" fmla="*/ wd2 a 50000" />
21031 + <gd name="ihd2" fmla="*/ hd2 a 50000" />
21032 + <gd name="sdx1" fmla="*/ iwd2 99518 100000" />
21033 + <gd name="sdx2" fmla="*/ iwd2 95694 100000" />
21034 + <gd name="sdx3" fmla="*/ iwd2 88192 100000" />
21035 + <gd name="sdx4" fmla="*/ iwd2 77301 100000" />
21036 + <gd name="sdx5" fmla="*/ iwd2 63439 100000" />
21037 + <gd name="sdx6" fmla="*/ iwd2 47140 100000" />
21038 + <gd name="sdx7" fmla="*/ iwd2 29028 100000" />
21039 + <gd name="sdx8" fmla="*/ iwd2 9802 100000" />
21040 + <gd name="sdy1" fmla="*/ ihd2 99518 100000" />
21041 + <gd name="sdy2" fmla="*/ ihd2 95694 100000" />
21042 + <gd name="sdy3" fmla="*/ ihd2 88192 100000" />
21043 + <gd name="sdy4" fmla="*/ ihd2 77301 100000" />
21044 + <gd name="sdy5" fmla="*/ ihd2 63439 100000" />
21045 + <gd name="sdy6" fmla="*/ ihd2 47140 100000" />
21046 + <gd name="sdy7" fmla="*/ ihd2 29028 100000" />
21047 + <gd name="sdy8" fmla="*/ ihd2 9802 100000" />
21048 + <gd name="sx1" fmla="+- hc 0 sdx1" />
21049 + <gd name="sx2" fmla="+- hc 0 sdx2" />
21050 + <gd name="sx3" fmla="+- hc 0 sdx3" />
21051 + <gd name="sx4" fmla="+- hc 0 sdx4" />
21052 + <gd name="sx5" fmla="+- hc 0 sdx5" />
21053 + <gd name="sx6" fmla="+- hc 0 sdx6" />
21054 + <gd name="sx7" fmla="+- hc 0 sdx7" />
21055 + <gd name="sx8" fmla="+- hc 0 sdx8" />
21056 + <gd name="sx9" fmla="+- hc sdx8 0" />
21057 + <gd name="sx10" fmla="+- hc sdx7 0" />
21058 + <gd name="sx11" fmla="+- hc sdx6 0" />
21059 + <gd name="sx12" fmla="+- hc sdx5 0" />
21060 + <gd name="sx13" fmla="+- hc sdx4 0" />
21061 + <gd name="sx14" fmla="+- hc sdx3 0" />
21062 + <gd name="sx15" fmla="+- hc sdx2 0" />
21063 + <gd name="sx16" fmla="+- hc sdx1 0" />
21064 + <gd name="sy1" fmla="+- vc 0 sdy1" />
21065 + <gd name="sy2" fmla="+- vc 0 sdy2" />
21066 + <gd name="sy3" fmla="+- vc 0 sdy3" />
21067 + <gd name="sy4" fmla="+- vc 0 sdy4" />
21068 + <gd name="sy5" fmla="+- vc 0 sdy5" />
21069 + <gd name="sy6" fmla="+- vc 0 sdy6" />
21070 + <gd name="sy7" fmla="+- vc 0 sdy7" />
21071 + <gd name="sy8" fmla="+- vc 0 sdy8" />
21072 + <gd name="sy9" fmla="+- vc sdy8 0" />
21073 + <gd name="sy10" fmla="+- vc sdy7 0" />
21074 + <gd name="sy11" fmla="+- vc sdy6 0" />
21075 + <gd name="sy12" fmla="+- vc sdy5 0" />
21076 + <gd name="sy13" fmla="+- vc sdy4 0" />
21077 + <gd name="sy14" fmla="+- vc sdy3 0" />
21078 + <gd name="sy15" fmla="+- vc sdy2 0" />
21079 + <gd name="sy16" fmla="+- vc sdy1 0" />
21080 + <gd name="idx" fmla="cos iwd2 2700000" />
21081 + <gd name="idy" fmla="sin ihd2 2700000" />
21082 + <gd name="il" fmla="+- hc 0 idx" />
21083 + <gd name="it" fmla="+- vc 0 idy" />
21084 + <gd name="ir" fmla="+- hc idx 0" />
21085 + <gd name="ib" fmla="+- vc idy 0" />
21086 + <gd name="yAdj" fmla="+- vc 0 ihd2" />
21089 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21090 + <ahXY gdRefY="adj" minY="0" maxY="ssd2">
21091 + <pos x="hc" y="yAdj" />
21095 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21097 + <pos x="hc" y="t" />
21100 + <pos x="l" y="vc" />
21103 + <pos x="hc" y="b" />
21106 + <pos x="r" y="vc" />
21110 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
21112 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21115 + <pt x="l" y="vc" />
21118 + <pt x="sx1" y="sy8" />
21121 + <pt x="x1" y="y7" />
21124 + <pt x="sx2" y="sy7" />
21127 + <pt x="x2" y="y6" />
21130 + <pt x="sx3" y="sy6" />
21133 + <pt x="x3" y="y5" />
21136 + <pt x="sx4" y="sy5" />
21139 + <pt x="x4" y="y4" />
21142 + <pt x="sx5" y="sy4" />
21145 + <pt x="x5" y="y3" />
21148 + <pt x="sx6" y="sy3" />
21151 + <pt x="x6" y="y2" />
21154 + <pt x="sx7" y="sy2" />
21157 + <pt x="x7" y="y1" />
21160 + <pt x="sx8" y="sy1" />
21163 + <pt x="hc" y="t" />
21166 + <pt x="sx9" y="sy1" />
21169 + <pt x="x8" y="y1" />
21172 + <pt x="sx10" y="sy2" />
21175 + <pt x="x9" y="y2" />
21178 + <pt x="sx11" y="sy3" />
21181 + <pt x="x10" y="y3" />
21184 + <pt x="sx12" y="sy4" />
21187 + <pt x="x11" y="y4" />
21190 + <pt x="sx13" y="sy5" />
21193 + <pt x="x12" y="y5" />
21196 + <pt x="sx14" y="sy6" />
21199 + <pt x="x13" y="y6" />
21202 + <pt x="sx15" y="sy7" />
21205 + <pt x="x14" y="y7" />
21208 + <pt x="sx16" y="sy8" />
21211 + <pt x="r" y="vc" />
21214 + <pt x="sx16" y="sy9" />
21217 + <pt x="x14" y="y8" />
21220 + <pt x="sx15" y="sy10" />
21223 + <pt x="x13" y="y9" />
21226 + <pt x="sx14" y="sy11" />
21229 + <pt x="x12" y="y10" />
21232 + <pt x="sx13" y="sy12" />
21235 + <pt x="x11" y="y11" />
21238 + <pt x="sx12" y="sy13" />
21241 + <pt x="x10" y="y12" />
21244 + <pt x="sx11" y="sy14" />
21247 + <pt x="x9" y="y13" />
21250 + <pt x="sx10" y="sy15" />
21253 + <pt x="x8" y="y14" />
21256 + <pt x="sx9" y="sy16" />
21259 + <pt x="hc" y="b" />
21262 + <pt x="sx8" y="sy16" />
21265 + <pt x="x7" y="y14" />
21268 + <pt x="sx7" y="sy15" />
21271 + <pt x="x6" y="y13" />
21274 + <pt x="sx6" y="sy14" />
21277 + <pt x="x5" y="y12" />
21280 + <pt x="sx5" y="sy13" />
21283 + <pt x="x4" y="y11" />
21286 + <pt x="sx4" y="sy12" />
21289 + <pt x="x3" y="y10" />
21292 + <pt x="sx3" y="sy11" />
21295 + <pt x="x2" y="y9" />
21298 + <pt x="sx2" y="sy10" />
21301 + <pt x="x1" y="y8" />
21304 + <pt x="sx1" y="sy9" />
21313 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21314 + <gd name="adj" fmla="val 12500" />
21317 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21318 + <gd name="a" fmla="pin 0 adj 50000" />
21319 + <gd name="iwd2" fmla="*/ wd2 a 50000" />
21320 + <gd name="ihd2" fmla="*/ hd2 a 50000" />
21321 + <gd name="sdx" fmla="cos iwd2 2700000" />
21322 + <gd name="sdy" fmla="sin ihd2 2700000" />
21323 + <gd name="sx1" fmla="+- hc 0 sdx" />
21324 + <gd name="sx2" fmla="+- hc sdx 0" />
21325 + <gd name="sy1" fmla="+- vc 0 sdy" />
21326 + <gd name="sy2" fmla="+- vc sdy 0" />
21327 + <gd name="yAdj" fmla="+- vc 0 ihd2" />
21330 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21331 + <ahXY gdRefY="adj" minY="0" maxY="50000">
21332 + <pos x="hc" y="yAdj" />
21336 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21338 + <pos x="hc" y="t" />
21341 + <pos x="l" y="vc" />
21344 + <pos x="hc" y="b" />
21347 + <pos x="r" y="vc" />
21351 + <rect l="sx1" t="sy1" r="sx2" b="sy2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
21353 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21356 + <pt x="l" y="vc" />
21359 + <pt x="sx1" y="sy1" />
21362 + <pt x="hc" y="t" />
21365 + <pt x="sx2" y="sy1" />
21368 + <pt x="r" y="vc" />
21371 + <pt x="sx2" y="sy2" />
21374 + <pt x="hc" y="b" />
21377 + <pt x="sx1" y="sy2" />
21385 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21386 + <gd name="adj" fmla="val 19098" />
21387 + <gd name="hf" fmla="val 105146" />
21388 + <gd name="vf" fmla="val 110557" />
21390 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21391 + <gd name="a" fmla="pin 0 adj 50000" />
21392 + <gd name="swd2" fmla="*/ wd2 hf 100000" />
21393 + <gd name="shd2" fmla="*/ hd2 vf 100000" />
21394 + <gd name="svc" fmla="*/ vc vf 100000" />
21395 + <gd name="dx1" fmla="cos swd2 1080000" />
21396 + <gd name="dx2" fmla="cos swd2 18360000" />
21397 + <gd name="dy1" fmla="sin shd2 1080000" />
21398 + <gd name="dy2" fmla="sin shd2 18360000" />
21399 + <gd name="x1" fmla="+- hc 0 dx1" />
21400 + <gd name="x2" fmla="+- hc 0 dx2" />
21401 + <gd name="x3" fmla="+- hc dx2 0" />
21402 + <gd name="x4" fmla="+- hc dx1 0" />
21403 + <gd name="y1" fmla="+- svc 0 dy1" />
21404 + <gd name="y2" fmla="+- svc 0 dy2" />
21405 + <gd name="iwd2" fmla="*/ swd2 a 50000" />
21406 + <gd name="ihd2" fmla="*/ shd2 a 50000" />
21407 + <gd name="sdx1" fmla="cos iwd2 20520000" />
21408 + <gd name="sdx2" fmla="cos iwd2 3240000" />
21409 + <gd name="sdy1" fmla="sin ihd2 3240000" />
21410 + <gd name="sdy2" fmla="sin ihd2 20520000" />
21411 + <gd name="sx1" fmla="+- hc 0 sdx1" />
21412 + <gd name="sx2" fmla="+- hc 0 sdx2" />
21413 + <gd name="sx3" fmla="+- hc sdx2 0" />
21414 + <gd name="sx4" fmla="+- hc sdx1 0" />
21415 + <gd name="sy1" fmla="+- svc 0 sdy1" />
21416 + <gd name="sy2" fmla="+- svc 0 sdy2" />
21417 + <gd name="sy3" fmla="+- svc ihd2 0" />
21418 + <gd name="yAdj" fmla="+- svc 0 ihd2" />
21420 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21421 + <ahXY gdRefY="adj" minY="0" maxY="50000">
21422 + <pos x="hc" y="yAdj" />
21425 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21427 + <pos x="hc" y="t" />
21430 + <pos x="x1" y="y1" />
21433 + <pos x="x2" y="y2" />
21436 + <pos x="x3" y="y2" />
21439 + <pos x="x4" y="y1" />
21442 + <rect l="sx1" t="sy1" r="sx4" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
21443 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21446 + <pt x="x1" y="y1" />
21449 + <pt x="sx2" y="sy1" />
21452 + <pt x="hc" y="t" />
21455 + <pt x="sx3" y="sy1" />
21458 + <pt x="x4" y="y1" />
21461 + <pt x="sx4" y="sy2" />
21464 + <pt x="x3" y="y2" />
21467 + <pt x="hc" y="sy3" />
21470 + <pt x="x2" y="y2" />
21473 + <pt x="sx1" y="sy2" />
21481 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21482 + <gd name="adj" fmla="val 28868" />
21483 + <gd name="hf" fmla="val 115470" />
21486 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21487 + <gd name="a" fmla="pin 0 adj 50000" />
21488 + <gd name="swd2" fmla="*/ wd2 hf 100000" />
21489 + <gd name="dx1" fmla="cos swd2 1800000" />
21490 + <gd name="x1" fmla="+- hc 0 dx1" />
21491 + <gd name="x2" fmla="+- hc dx1 0" />
21492 + <gd name="y2" fmla="+- vc hd4 0" />
21493 + <gd name="iwd2" fmla="*/ swd2 a 50000" />
21494 + <gd name="ihd2" fmla="*/ hd2 a 50000" />
21495 + <gd name="sdx2" fmla="*/ iwd2 1 2" />
21496 + <gd name="sx1" fmla="+- hc 0 iwd2" />
21497 + <gd name="sx2" fmla="+- hc 0 sdx2" />
21498 + <gd name="sx3" fmla="+- hc sdx2 0" />
21499 + <gd name="sx4" fmla="+- hc iwd2 0" />
21500 + <gd name="sdy1" fmla="sin ihd2 3600000" />
21501 + <gd name="sy1" fmla="+- vc 0 sdy1" />
21502 + <gd name="sy2" fmla="+- vc sdy1 0" />
21503 + <gd name="yAdj" fmla="+- vc 0 ihd2" />
21506 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21507 + <ahXY gdRefY="adj" minY="0" maxY="50000">
21508 + <pos x="hc" y="yAdj" />
21512 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21514 + <pos x="x2" y="hd4" />
21517 + <pos x="x2" y="y2" />
21520 + <pos x="hc" y="b" />
21523 + <pos x="x1" y="y2" />
21526 + <pos x="x1" y="hd4" />
21529 + <pos x="hc" y="t" />
21533 + <rect l="sx1" t="sy1" r="sx4" b="sy2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
21535 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21538 + <pt x="x1" y="hd4" />
21541 + <pt x="sx2" y="sy1" />
21544 + <pt x="hc" y="t" />
21547 + <pt x="sx3" y="sy1" />
21550 + <pt x="x2" y="hd4" />
21553 + <pt x="sx4" y="vc" />
21556 + <pt x="x2" y="y2" />
21559 + <pt x="sx3" y="sy2" />
21562 + <pt x="hc" y="b" />
21565 + <pt x="sx2" y="sy2" />
21568 + <pt x="x1" y="y2" />
21571 + <pt x="sx1" y="vc" />
21580 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21581 + <gd name="adj" fmla="val 34601" />
21582 + <gd name="hf" fmla="val 102572" />
21583 + <gd name="vf" fmla="val 105210" />
21586 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21587 + <gd name="a" fmla="pin 0 adj 50000" />
21588 + <gd name="swd2" fmla="*/ wd2 hf 100000" />
21589 + <gd name="shd2" fmla="*/ hd2 vf 100000" />
21590 + <gd name="svc" fmla="*/ vc vf 100000" />
21591 + <gd name="dx1" fmla="*/ swd2 97493 100000" />
21592 + <gd name="dx2" fmla="*/ swd2 78183 100000" />
21593 + <gd name="dx3" fmla="*/ swd2 43388 100000" />
21594 + <gd name="dy1" fmla="*/ shd2 62349 100000" />
21595 + <gd name="dy2" fmla="*/ shd2 22252 100000" />
21596 + <gd name="dy3" fmla="*/ shd2 90097 100000" />
21597 + <gd name="x1" fmla="+- hc 0 dx1" />
21598 + <gd name="x2" fmla="+- hc 0 dx2" />
21599 + <gd name="x3" fmla="+- hc 0 dx3" />
21600 + <gd name="x4" fmla="+- hc dx3 0" />
21601 + <gd name="x5" fmla="+- hc dx2 0" />
21602 + <gd name="x6" fmla="+- hc dx1 0" />
21603 + <gd name="y1" fmla="+- svc 0 dy1" />
21604 + <gd name="y2" fmla="+- svc dy2 0" />
21605 + <gd name="y3" fmla="+- svc dy3 0" />
21606 + <gd name="iwd2" fmla="*/ swd2 a 50000" />
21607 + <gd name="ihd2" fmla="*/ shd2 a 50000" />
21608 + <gd name="sdx1" fmla="*/ iwd2 97493 100000" />
21609 + <gd name="sdx2" fmla="*/ iwd2 78183 100000" />
21610 + <gd name="sdx3" fmla="*/ iwd2 43388 100000" />
21611 + <gd name="sx1" fmla="+- hc 0 sdx1" />
21612 + <gd name="sx2" fmla="+- hc 0 sdx2" />
21613 + <gd name="sx3" fmla="+- hc 0 sdx3" />
21614 + <gd name="sx4" fmla="+- hc sdx3 0" />
21615 + <gd name="sx5" fmla="+- hc sdx2 0" />
21616 + <gd name="sx6" fmla="+- hc sdx1 0" />
21617 + <gd name="sdy1" fmla="*/ ihd2 90097 100000" />
21618 + <gd name="sdy2" fmla="*/ ihd2 22252 100000" />
21619 + <gd name="sdy3" fmla="*/ ihd2 62349 100000" />
21620 + <gd name="sy1" fmla="+- svc 0 sdy1" />
21621 + <gd name="sy2" fmla="+- svc 0 sdy2" />
21622 + <gd name="sy3" fmla="+- svc sdy3 0" />
21623 + <gd name="sy4" fmla="+- svc ihd2 0" />
21624 + <gd name="yAdj" fmla="+- svc 0 ihd2" />
21627 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21628 + <ahXY gdRefY="adj" minY="0" maxY="50000">
21629 + <pos x="hc" y="yAdj" />
21633 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21635 + <pos x="x5" y="y1" />
21638 + <pos x="x6" y="y2" />
21641 + <pos x="x4" y="y3" />
21644 + <pos x="x3" y="y3" />
21647 + <pos x="x1" y="y2" />
21650 + <pos x="x2" y="y1" />
21653 + <pos x="hc" y="t" />
21657 + <rect l="sx2" t="sy1" r="sx5" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
21659 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21662 + <pt x="x1" y="y2" />
21665 + <pt x="sx1" y="sy2" />
21668 + <pt x="x2" y="y1" />
21671 + <pt x="sx3" y="sy1" />
21674 + <pt x="hc" y="t" />
21677 + <pt x="sx4" y="sy1" />
21680 + <pt x="x5" y="y1" />
21683 + <pt x="sx6" y="sy2" />
21686 + <pt x="x6" y="y2" />
21689 + <pt x="sx5" y="sy3" />
21692 + <pt x="x4" y="y3" />
21695 + <pt x="hc" y="sy4" />
21698 + <pt x="x3" y="y3" />
21701 + <pt x="sx2" y="sy3" />
21710 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21711 + <gd name="adj" fmla="val 37500" />
21714 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21715 + <gd name="a" fmla="pin 0 adj 50000" />
21716 + <gd name="dx1" fmla="cos wd2 2700000" />
21717 + <gd name="x1" fmla="+- hc 0 dx1" />
21718 + <gd name="x2" fmla="+- hc dx1 0" />
21719 + <gd name="dy1" fmla="sin hd2 2700000" />
21720 + <gd name="y1" fmla="+- vc 0 dy1" />
21721 + <gd name="y2" fmla="+- vc dy1 0" />
21722 + <gd name="iwd2" fmla="*/ wd2 a 50000" />
21723 + <gd name="ihd2" fmla="*/ hd2 a 50000" />
21724 + <gd name="sdx1" fmla="*/ iwd2 92388 100000" />
21725 + <gd name="sdx2" fmla="*/ iwd2 38268 100000" />
21726 + <gd name="sdy1" fmla="*/ ihd2 92388 100000" />
21727 + <gd name="sdy2" fmla="*/ ihd2 38268 100000" />
21728 + <gd name="sx1" fmla="+- hc 0 sdx1" />
21729 + <gd name="sx2" fmla="+- hc 0 sdx2" />
21730 + <gd name="sx3" fmla="+- hc sdx2 0" />
21731 + <gd name="sx4" fmla="+- hc sdx1 0" />
21732 + <gd name="sy1" fmla="+- vc 0 sdy1" />
21733 + <gd name="sy2" fmla="+- vc 0 sdy2" />
21734 + <gd name="sy3" fmla="+- vc sdy2 0" />
21735 + <gd name="sy4" fmla="+- vc sdy1 0" />
21736 + <gd name="yAdj" fmla="+- vc 0 ihd2" />
21739 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21740 + <ahXY gdRefY="adj" minY="0" maxY="50000">
21741 + <pos x="hc" y="yAdj" />
21745 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21747 + <pos x="r" y="vc" />
21750 + <pos x="x2" y="y2" />
21753 + <pos x="hc" y="b" />
21756 + <pos x="x1" y="y2" />
21759 + <pos x="l" y="vc" />
21762 + <pos x="x1" y="y1" />
21765 + <pos x="hc" y="t" />
21768 + <pos x="x2" y="y1" />
21772 + <rect l="sx1" t="sy1" r="sx4" b="sy4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
21774 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21777 + <pt x="l" y="vc" />
21780 + <pt x="sx1" y="sy2" />
21783 + <pt x="x1" y="y1" />
21786 + <pt x="sx2" y="sy1" />
21789 + <pt x="hc" y="t" />
21792 + <pt x="sx3" y="sy1" />
21795 + <pt x="x2" y="y1" />
21798 + <pt x="sx4" y="sy2" />
21801 + <pt x="r" y="vc" />
21804 + <pt x="sx4" y="sy3" />
21807 + <pt x="x2" y="y2" />
21810 + <pt x="sx3" y="sy4" />
21813 + <pt x="hc" y="b" />
21816 + <pt x="sx2" y="sy4" />
21819 + <pt x="x1" y="y2" />
21822 + <pt x="sx1" y="sy3" />
21829 + <straightConnector1>
21830 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
21831 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21832 + <path fill="none">
21834 + <pt x="l" y="t" />
21837 + <pt x="r" y="b" />
21841 + </straightConnector1>
21842 + <stripedRightArrow>
21844 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21845 + <gd name="adj1" fmla="val 50000" />
21847 + <gd name="adj2" fmla="val 50000" />
21851 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21852 + <gd name="maxAdj2" fmla="*/ 84375 w ss" />
21854 + <gd name="a1" fmla="pin 0 adj1 100000" />
21855 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
21856 + <gd name="x4" fmla="*/ ss 5 32" />
21857 + <gd name="dx5" fmla="*/ ss a2 100000" />
21858 + <gd name="x5" fmla="+- r 0 dx5" />
21859 + <gd name="dy1" fmla="*/ h a1 200000" />
21860 + <gd name="y1" fmla="+- vc 0 dy1" />
21861 + <gd name="y2" fmla="+- vc dy1 0" />
21862 + <gd name="dx6" fmla="*/ dy1 dx5 hd2" />
21863 + <gd name="x6" fmla="+- r 0 dx6" />
21866 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21867 + <ahXY gdRefY="adj1" minY="0" maxY="100000">
21868 + <pos x="l" y="y1" />
21870 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
21871 + <pos x="x5" y="t" />
21875 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21877 + <pos x="x5" y="t" />
21880 + <pos x="l" y="vc" />
21883 + <pos x="x5" y="b" />
21886 + <pos x="r" y="vc" />
21890 + <rect l="x4" t="y1" r="x6" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
21892 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21895 + <pt x="l" y="y1" />
21898 + <pt x="ssd32" y="y1" />
21901 + <pt x="ssd32" y="y2" />
21904 + <pt x="l" y="y2" />
21908 + <pt x="ssd16" y="y1" />
21911 + <pt x="ssd8" y="y1" />
21914 + <pt x="ssd8" y="y2" />
21917 + <pt x="ssd16" y="y2" />
21921 + <pt x="x4" y="y1" />
21924 + <pt x="x5" y="y1" />
21927 + <pt x="x5" y="t" />
21930 + <pt x="r" y="vc" />
21933 + <pt x="x5" y="b" />
21936 + <pt x="x5" y="y2" />
21939 + <pt x="x4" y="y2" />
21945 + </stripedRightArrow>
21948 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21949 + <gd name="adj" fmla="val 25000" />
21953 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
21954 + <gd name="a" fmla="pin 12500 adj 46875" />
21955 + <gd name="g0" fmla="+- 50000 0 a" />
21956 + <gd name="g1" fmla="*/ g0 30274 32768" />
21957 + <gd name="g2" fmla="*/ g0 12540 32768" />
21958 + <gd name="g3" fmla="+- g1 50000 0" />
21959 + <gd name="g4" fmla="+- g2 50000 0" />
21960 + <gd name="g5" fmla="+- 50000 0 g1" />
21961 + <gd name="g6" fmla="+- 50000 0 g2" />
21962 + <gd name="g7" fmla="*/ g0 23170 32768" />
21963 + <gd name="g8" fmla="+- 50000 g7 0" />
21964 + <gd name="g9" fmla="+- 50000 0 g7" />
21965 + <gd name="g10" fmla="*/ g5 3 4" />
21966 + <gd name="g11" fmla="*/ g6 3 4" />
21967 + <gd name="g12" fmla="+- g10 3662 0" />
21968 + <gd name="g13" fmla="+- g11 3662 0" />
21969 + <gd name="g14" fmla="+- g11 12500 0" />
21970 + <gd name="g15" fmla="+- 100000 0 g10" />
21971 + <gd name="g16" fmla="+- 100000 0 g12" />
21972 + <gd name="g17" fmla="+- 100000 0 g13" />
21973 + <gd name="g18" fmla="+- 100000 0 g14" />
21974 + <gd name="ox1" fmla="*/ w 18436 21600" />
21975 + <gd name="oy1" fmla="*/ h 3163 21600" />
21976 + <gd name="ox2" fmla="*/ w 3163 21600" />
21977 + <gd name="oy2" fmla="*/ h 18436 21600" />
21978 + <gd name="x8" fmla="*/ w g8 100000" />
21979 + <gd name="x9" fmla="*/ w g9 100000" />
21980 + <gd name="x10" fmla="*/ w g10 100000" />
21981 + <gd name="x12" fmla="*/ w g12 100000" />
21982 + <gd name="x13" fmla="*/ w g13 100000" />
21983 + <gd name="x14" fmla="*/ w g14 100000" />
21984 + <gd name="x15" fmla="*/ w g15 100000" />
21985 + <gd name="x16" fmla="*/ w g16 100000" />
21986 + <gd name="x17" fmla="*/ w g17 100000" />
21987 + <gd name="x18" fmla="*/ w g18 100000" />
21988 + <gd name="x19" fmla="*/ w a 100000" />
21989 + <gd name="wR" fmla="*/ w g0 100000" />
21990 + <gd name="hR" fmla="*/ h g0 100000" />
21991 + <gd name="y8" fmla="*/ h g8 100000" />
21992 + <gd name="y9" fmla="*/ h g9 100000" />
21993 + <gd name="y10" fmla="*/ h g10 100000" />
21994 + <gd name="y12" fmla="*/ h g12 100000" />
21995 + <gd name="y13" fmla="*/ h g13 100000" />
21996 + <gd name="y14" fmla="*/ h g14 100000" />
21997 + <gd name="y15" fmla="*/ h g15 100000" />
21998 + <gd name="y16" fmla="*/ h g16 100000" />
21999 + <gd name="y17" fmla="*/ h g17 100000" />
22000 + <gd name="y18" fmla="*/ h g18 100000" />
22003 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22004 + <ahXY gdRefX="adj" minX="12500" maxX="46875">
22005 + <pos x="x19" y="vc" />
22009 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22011 + <pos x="hc" y="t" />
22014 + <pos x="l" y="vc" />
22017 + <pos x="hc" y="b" />
22020 + <pos x="r" y="vc" />
22024 + <rect l="x9" t="y9" r="x8" b="y8" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22026 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22029 + <pt x="r" y="vc" />
22032 + <pt x="x15" y="y18" />
22035 + <pt x="x15" y="y14" />
22039 + <pt x="ox1" y="oy1" />
22042 + <pt x="x16" y="y13" />
22045 + <pt x="x17" y="y12" />
22049 + <pt x="hc" y="t" />
22052 + <pt x="x18" y="y10" />
22055 + <pt x="x14" y="y10" />
22059 + <pt x="ox2" y="oy1" />
22062 + <pt x="x13" y="y12" />
22065 + <pt x="x12" y="y13" />
22069 + <pt x="l" y="vc" />
22072 + <pt x="x10" y="y14" />
22075 + <pt x="x10" y="y18" />
22079 + <pt x="ox2" y="oy2" />
22082 + <pt x="x12" y="y17" />
22085 + <pt x="x13" y="y16" />
22089 + <pt x="hc" y="b" />
22092 + <pt x="x14" y="y15" />
22095 + <pt x="x18" y="y15" />
22099 + <pt x="ox1" y="oy2" />
22102 + <pt x="x17" y="y16" />
22105 + <pt x="x16" y="y17" />
22109 + <pt x="x19" y="vc" />
22111 + <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />
22119 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22120 + <gd name="adj1" fmla="val 25000" />
22122 + <gd name="adj2" fmla="val 16667" />
22126 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22129 + <gd name="a1" fmla="pin 1 adj1 75000" />
22131 + <gd name="maxAdj2" fmla="*/ 70000 w ss" />
22133 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
22134 + <gd name="ad1" fmla="*/ h a1 100000" />
22135 + <gd name="ad2" fmla="*/ ss a2 100000" />
22137 + <gd name="xB" fmla="+- r 0 ad2" />
22138 + <gd name="yB" fmla="+- t ssd8 0" />
22140 + <gd name="alfa" fmla="*/ cd4 1 14" />
22142 + <gd name="dx0" fmla="tan ssd8 alfa" />
22143 + <gd name="xC" fmla="+- xB 0 dx0" />
22145 + <gd name="dx1" fmla="tan ad1 alfa" />
22147 + <gd name="yF" fmla="+- yB ad1 0" />
22148 + <gd name="xF" fmla="+- xB dx1 0" />
22150 + <gd name="xE" fmla="+- xF dx0 0" />
22151 + <gd name="yE" fmla="+- yF ssd8 0" />
22153 + <gd name="dy2" fmla="+- yE 0 t" />
22154 + <gd name="dy22" fmla="*/ dy2 1 2" />
22155 + <gd name="dy3" fmla="*/ h 1 20" />
22156 + <gd name="yD" fmla="+- t dy22 dy3" />
22159 + <gd name="dy4" fmla="*/ hd6 1 1" />
22160 + <gd name="yP1" fmla="+- hd6 dy4 0" />
22161 + <gd name="xP1" fmla="val wd6" />
22164 + <gd name="dy5" fmla="*/ hd6 1 2" />
22165 + <gd name="yP2" fmla="+- yF dy5 0" />
22166 + <gd name="xP2" fmla="val wd4" />
22169 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22170 + <ahXY gdRefY="adj1" minY="1" maxY="75000">
22171 + <pos x="xF" y="yF" />
22173 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
22174 + <pos x="xB" y="yB" />
22178 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22180 + <pos x="l" y="b" />
22183 + <pos x="xC" y="t" />
22186 + <pos x="r" y="yD" />
22189 + <pos x="xE" y="yE" />
22193 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22195 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22198 + <pt x="l" y="b" />
22201 + <pt x="xP1" y="yP1" />
22202 + <pt x="xB" y="yB" />
22205 + <pt x="xC" y="t" />
22208 + <pt x="r" y="yD" />
22211 + <pt x="xE" y="yE" />
22214 + <pt x="xF" y="yF" />
22217 + <pt x="xP2" y="yP2" />
22218 + <pt x="l" y="b" />
22227 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22228 + <gd name="adj" fmla="val 100000" />
22231 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22232 + <gd name="a" fmla="pin 0 adj 200000" />
22233 + <gd name="r2" fmla="sqrt 2" />
22234 + <gd name="tw" fmla="*/ wd2 r2 1" />
22235 + <gd name="th" fmla="*/ hd2 r2 1" />
22236 + <gd name="sw" fmla="*/ tw a 100000" />
22237 + <gd name="sh" fmla="*/ th a 100000" />
22238 + <gd name="dx1" fmla="cos sw 2700000" />
22239 + <gd name="dy1" fmla="sin sh 2700000" />
22240 + <gd name="x1" fmla="+- hc dx1 0" />
22241 + <gd name="y1" fmla="+- vc 0 dy1" />
22242 + <gd name="x2" fmla="+/ hc x1 2" />
22243 + <gd name="y2" fmla="+/ vc y1 2" />
22244 + <gd name="idx" fmla="cos wd2 2700000" />
22245 + <gd name="idy" fmla="sin hd2 2700000" />
22246 + <gd name="il" fmla="+- hc 0 idx" />
22247 + <gd name="ir" fmla="+- hc idx 0" />
22248 + <gd name="it" fmla="+- vc 0 idy" />
22249 + <gd name="ib" fmla="+- vc idy 0" />
22252 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22253 + <ahXY gdRefX="adj" minX="0" maxX="200000">
22254 + <pos x="x1" y="t" />
22258 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22260 + <pos x="r" y="vc" />
22263 + <pos x="ir" y="ib" />
22266 + <pos x="hc" y="b" />
22269 + <pos x="il" y="ib" />
22272 + <pos x="l" y="vc" />
22275 + <pos x="il" y="it" />
22278 + <pos x="hc" y="t" />
22281 + <pos x="x1" y="y1" />
22285 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22287 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22290 + <pt x="l" y="vc" />
22292 + <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />
22294 + <pt x="x2" y="t" />
22295 + <pt x="x1" y="y1" />
22298 + <pt x="r" y="y2" />
22299 + <pt x="r" y="vc" />
22301 + <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />
22302 + <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />
22309 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22310 + <gd name="adj" fmla="val 25000" />
22312 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22313 + <gd name="maxAdj" fmla="*/ 50000 w ss" />
22314 + <gd name="a" fmla="pin 0 adj maxAdj" />
22315 + <gd name="x1" fmla="*/ ss a 200000" />
22316 + <gd name="x2" fmla="*/ ss a 100000" />
22317 + <gd name="x3" fmla="+- r 0 x2" />
22318 + <gd name="x4" fmla="+- r 0 x1" />
22319 + <gd name="il" fmla="*/ wd3 a maxAdj" />
22320 + <gd name="it" fmla="*/ hd3 a maxAdj" />
22321 + <gd name="ir" fmla="+- r 0 il" />
22323 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22324 + <ahXY gdRefX="adj" minX="0" maxX="maxAdj">
22325 + <pos x="x2" y="t" />
22328 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22330 + <pos x="hc" y="t" />
22333 + <pos x="x1" y="vc" />
22336 + <pos x="hc" y="b" />
22339 + <pos x="x4" y="vc" />
22342 + <rect l="il" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22343 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22346 + <pt x="l" y="b" />
22349 + <pt x="x2" y="t" />
22352 + <pt x="x3" y="t" />
22355 + <pt x="r" y="b" />
22362 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22363 + <gd name="adj" fmla="val 50000" />
22365 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22366 + <gd name="a" fmla="pin 0 adj 100000" />
22367 + <gd name="x1" fmla="*/ w a 200000" />
22368 + <gd name="x2" fmla="*/ w a 100000" />
22369 + <gd name="x3" fmla="+- x1 wd2 0" />
22371 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22372 + <ahXY gdRefX="adj" minX="0" maxX="100000">
22373 + <pos x="x2" y="t" />
22376 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22378 + <pos x="x2" y="t" />
22381 + <pos x="x1" y="vc" />
22384 + <pos x="l" y="b" />
22387 + <pos x="x2" y="b" />
22390 + <pos x="r" y="b" />
22393 + <pos x="x3" y="vc" />
22396 + <rect l="x1" t="vc" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22397 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22400 + <pt x="l" y="b" />
22403 + <pt x="x2" y="t" />
22406 + <pt x="r" y="b" />
22414 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22415 + <gd name="adj1" fmla="val 25000" />
22417 + <gd name="adj2" fmla="val 25000" />
22419 + <gd name="adj3" fmla="val 25000" />
22421 + <gd name="adj4" fmla="val 64977" />
22425 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22426 + <gd name="maxAdj2" fmla="*/ 50000 w ss" />
22428 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
22429 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
22431 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
22432 + <gd name="maxAdj3" fmla="*/ 100000 h ss" />
22434 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
22435 + <gd name="q2" fmla="*/ a3 ss h" />
22437 + <gd name="maxAdj4" fmla="+- 100000 0 q2" />
22439 + <gd name="a4" fmla="pin 0 adj4 maxAdj4" />
22440 + <gd name="dx1" fmla="*/ ss a2 100000" />
22442 + <gd name="dx2" fmla="*/ ss a1 200000" />
22444 + <gd name="x1" fmla="+- hc 0 dx1" />
22445 + <gd name="x2" fmla="+- hc 0 dx2" />
22446 + <gd name="x3" fmla="+- hc dx2 0" />
22447 + <gd name="x4" fmla="+- hc dx1 0" />
22448 + <gd name="y1" fmla="*/ ss a3 100000" />
22450 + <gd name="dy2" fmla="*/ h a4 100000" />
22452 + <gd name="y2" fmla="+- b 0 dy2" />
22453 + <gd name="y3" fmla="+/ y2 b 2" />
22456 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22457 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">
22458 + <pos x="x2" y="y1" />
22460 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
22461 + <pos x="x1" y="t" />
22463 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
22464 + <pos x="r" y="y1" />
22466 + <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">
22467 + <pos x="l" y="y2" />
22471 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22473 + <pos x="hc" y="t" />
22476 + <pos x="l" y="y2" />
22479 + <pos x="hc" y="b" />
22482 + <pos x="r" y="y2" />
22486 + <rect l="l" t="y2" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22488 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22491 + <pt x="l" y="y2" />
22494 + <pt x="x2" y="y2" />
22497 + <pt x="x2" y="y1" />
22500 + <pt x="x1" y="y1" />
22503 + <pt x="hc" y="t" />
22506 + <pt x="x4" y="y1" />
22509 + <pt x="x3" y="y1" />
22512 + <pt x="x3" y="y2" />
22515 + <pt x="r" y="y2" />
22518 + <pt x="r" y="b" />
22521 + <pt x="l" y="b" />
22527 + </upArrowCallout>
22529 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22530 + <gd name="adj1" fmla="val 50000" />
22531 + <gd name="adj2" fmla="val 50000" />
22533 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22534 + <gd name="maxAdj2" fmla="*/ 50000 h ss" />
22535 + <gd name="a1" fmla="pin 0 adj1 100000" />
22536 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
22537 + <gd name="y2" fmla="*/ ss a2 100000" />
22538 + <gd name="y3" fmla="+- b 0 y2" />
22539 + <gd name="dx1" fmla="*/ w a1 200000" />
22540 + <gd name="x1" fmla="+- hc 0 dx1" />
22541 + <gd name="x2" fmla="+- hc dx1 0" />
22542 + <gd name="dy1" fmla="*/ x1 y2 wd2" />
22543 + <gd name="y1" fmla="+- y2 0 dy1" />
22544 + <gd name="y4" fmla="+- y3 dy1 0" />
22546 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22547 + <ahXY gdRefX="adj1" minX="0" maxX="100000">
22548 + <pos x="x1" y="y3" />
22550 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
22551 + <pos x="l" y="y2" />
22554 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22556 + <pos x="hc" y="t" />
22559 + <pos x="l" y="y2" />
22562 + <pos x="x1" y="vc" />
22565 + <pos x="l" y="y3" />
22568 + <pos x="hc" y="b" />
22571 + <pos x="r" y="y3" />
22574 + <pos x="x2" y="vc" />
22577 + <pos x="r" y="y2" />
22580 + <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22581 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22584 + <pt x="l" y="y2" />
22587 + <pt x="hc" y="t" />
22590 + <pt x="r" y="y2" />
22593 + <pt x="x2" y="y2" />
22596 + <pt x="x2" y="y3" />
22599 + <pt x="r" y="y3" />
22602 + <pt x="hc" y="b" />
22605 + <pt x="l" y="y3" />
22608 + <pt x="x1" y="y3" />
22611 + <pt x="x1" y="y2" />
22618 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22619 + <gd name="adj1" fmla="val 50000" />
22620 + <gd name="adj2" fmla="val 50000" />
22622 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22623 + <gd name="maxAdj2" fmla="*/ 50000 h ss" />
22624 + <gd name="a1" fmla="pin 0 adj1 100000" />
22625 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
22626 + <gd name="y2" fmla="*/ ss a2 100000" />
22627 + <gd name="y3" fmla="+- b 0 y2" />
22628 + <gd name="dx1" fmla="*/ w a1 200000" />
22629 + <gd name="x1" fmla="+- hc 0 dx1" />
22630 + <gd name="x2" fmla="+- hc dx1 0" />
22631 + <gd name="dy1" fmla="*/ x1 y2 wd2" />
22632 + <gd name="y1" fmla="+- y2 0 dy1" />
22633 + <gd name="y4" fmla="+- y3 dy1 0" />
22635 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22636 + <ahXY gdRefX="adj1" minX="0" maxX="100000">
22637 + <pos x="x1" y="y3" />
22639 + <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">
22640 + <pos x="l" y="y2" />
22643 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22645 + <pos x="hc" y="t" />
22648 + <pos x="l" y="y2" />
22651 + <pos x="x1" y="vc" />
22654 + <pos x="l" y="y3" />
22657 + <pos x="hc" y="b" />
22660 + <pos x="r" y="y3" />
22663 + <pos x="x2" y="vc" />
22666 + <pos x="r" y="y2" />
22669 + <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22670 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22673 + <pt x="l" y="y2" />
22676 + <pt x="hc" y="t" />
22679 + <pt x="r" y="y2" />
22682 + <pt x="x2" y="y2" />
22685 + <pt x="x2" y="y3" />
22688 + <pt x="r" y="y3" />
22691 + <pt x="hc" y="b" />
22694 + <pt x="l" y="y3" />
22697 + <pt x="x1" y="y3" />
22700 + <pt x="x1" y="y2" />
22706 + <upDownArrowCallout>
22708 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22709 + <gd name="adj1" fmla="val 25000" />
22711 + <gd name="adj2" fmla="val 25000" />
22713 + <gd name="adj3" fmla="val 25000" />
22715 + <gd name="adj4" fmla="val 48123" />
22719 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22720 + <gd name="maxAdj2" fmla="*/ 50000 w ss" />
22722 + <gd name="a2" fmla="pin 0 adj2 maxAdj2" />
22723 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
22725 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
22726 + <gd name="maxAdj3" fmla="*/ 50000 h ss" />
22728 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
22729 + <gd name="q2" fmla="*/ a3 ss hd2" />
22731 + <gd name="maxAdj4" fmla="+- 100000 0 q2" />
22733 + <gd name="a4" fmla="pin 0 adj4 maxAdj4" />
22734 + <gd name="dx1" fmla="*/ ss a2 100000" />
22736 + <gd name="dx2" fmla="*/ ss a1 200000" />
22738 + <gd name="x1" fmla="+- hc 0 dx1" />
22739 + <gd name="x2" fmla="+- hc 0 dx2" />
22740 + <gd name="x3" fmla="+- hc dx2 0" />
22741 + <gd name="x4" fmla="+- hc dx1 0" />
22742 + <gd name="y1" fmla="*/ ss a3 100000" />
22744 + <gd name="y4" fmla="+- b 0 y1" />
22746 + <gd name="dy2" fmla="*/ h a4 200000" />
22748 + <gd name="y2" fmla="+- vc 0 dy2" />
22750 + <gd name="y3" fmla="+- vc dy2 0" />
22754 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22755 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">
22756 + <pos x="x2" y="y1" />
22758 + <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">
22759 + <pos x="x1" y="t" />
22761 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
22762 + <pos x="r" y="y1" />
22764 + <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">
22765 + <pos x="l" y="y2" />
22769 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22771 + <pos x="hc" y="t" />
22774 + <pos x="l" y="vc" />
22777 + <pos x="hc" y="b" />
22780 + <pos x="r" y="vc" />
22784 + <rect l="l" t="y2" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22786 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22789 + <pt x="l" y="y2" />
22792 + <pt x="x2" y="y2" />
22795 + <pt x="x2" y="y1" />
22798 + <pt x="x1" y="y1" />
22801 + <pt x="hc" y="t" />
22804 + <pt x="x4" y="y1" />
22807 + <pt x="x3" y="y1" />
22810 + <pt x="x3" y="y2" />
22813 + <pt x="r" y="y2" />
22816 + <pt x="r" y="y3" />
22819 + <pt x="x3" y="y3" />
22822 + <pt x="x3" y="y4" />
22825 + <pt x="x4" y="y4" />
22828 + <pt x="hc" y="b" />
22831 + <pt x="x1" y="y4" />
22834 + <pt x="x2" y="y4" />
22837 + <pt x="x2" y="y3" />
22840 + <pt x="l" y="y3" />
22846 + </upDownArrowCallout>
22849 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22850 + <gd name="adj1" fmla="val 25000" />
22852 + <gd name="adj2" fmla="val 25000" />
22854 + <gd name="adj3" fmla="val 25000" />
22856 + <gd name="adj4" fmla="val 43750" />
22858 + <gd name="adj5" fmla="val 75000" />
22862 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22863 + <gd name="a2" fmla="pin 0 adj2 25000" />
22864 + <gd name="maxAdj1" fmla="*/ a2 2 1" />
22865 + <gd name="a1" fmla="pin 0 adj1 maxAdj1" />
22866 + <gd name="q2" fmla="*/ a1 ss h" />
22868 + <gd name="q3" fmla="+- 100000 0 q2" />
22870 + <gd name="maxAdj3" fmla="*/ q3 h ss" />
22872 + <gd name="a3" fmla="pin 0 adj3 maxAdj3" />
22873 + <gd name="q1" fmla="+- a3 a1 0" />
22874 + <gd name="minAdj5" fmla="*/ q1 ss h" />
22875 + <gd name="a5" fmla="pin minAdj5 adj5 100000" />
22876 + <gd name="th" fmla="*/ ss a1 100000" />
22878 + <gd name="aw2" fmla="*/ ss a2 100000" />
22880 + <gd name="th2" fmla="*/ th 1 2" />
22881 + <gd name="dh2" fmla="+- aw2 0 th2" />
22883 + <gd name="y5" fmla="*/ h a5 100000" />
22885 + <gd name="ah" fmla="*/ ss a3 100000" />
22887 + <gd name="y4" fmla="+- y5 0 ah" />
22888 + <gd name="x9" fmla="+- r 0 dh2" />
22890 + <gd name="bw" fmla="*/ x9 1 2" />
22891 + <gd name="bs" fmla="min bw y4" />
22892 + <gd name="maxAdj4" fmla="*/ bs 100000 ss" />
22893 + <gd name="a4" fmla="pin 0 adj4 maxAdj4" />
22896 + <gd name="bd" fmla="*/ ss a4 100000" />
22900 + <gd name="bd3" fmla="+- bd 0 th" />
22901 + <gd name="bd2" fmla="max bd3 0" />
22902 + <gd name="x3" fmla="+- th bd2 0" />
22904 + <gd name="x8" fmla="+- r 0 aw2" />
22906 + <gd name="x6" fmla="+- x8 0 aw2" />
22908 + <gd name="x7" fmla="+- x6 dh2 0" />
22910 + <gd name="x4" fmla="+- x9 0 bd" />
22912 + <gd name="x5" fmla="+- x7 0 bd2" />
22914 + <gd name="cx" fmla="+/ th x7 2" />
22921 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22922 + <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">
22923 + <pos x="th" y="b" />
22925 + <ahXY gdRefX="adj2" minX="0" maxX="25000">
22926 + <pos x="x6" y="b" />
22928 + <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">
22929 + <pos x="x6" y="y4" />
22931 + <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">
22932 + <pos x="bd" y="t" />
22934 + <ahXY gdRefY="adj5" minY="minAdj5" maxY="100000">
22935 + <pos x="r" y="y5" />
22939 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22941 + <pos x="x6" y="y4" />
22944 + <pos x="x8" y="y5" />
22947 + <pos x="r" y="y4" />
22950 + <pos x="cx" y="t" />
22953 + <pos x="th2" y="b" />
22957 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
22959 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
22962 + <pt x="l" y="b" />
22965 + <pt x="l" y="bd" />
22967 + <arcTo wR="bd" hR="bd" stAng="cd2" swAng="cd4" />
22969 + <pt x="x4" y="t" />
22971 + <arcTo wR="bd" hR="bd" stAng="3cd4" swAng="cd4" />
22973 + <pt x="x9" y="y4" />
22976 + <pt x="r" y="y4" />
22979 + <pt x="x8" y="y5" />
22982 + <pt x="x6" y="y4" />
22985 + <pt x="x7" y="y4" />
22988 + <pt x="x7" y="x3" />
22990 + <arcTo wR="bd2" hR="bd2" stAng="0" swAng="-5400000" />
22992 + <pt x="x3" y="th" />
22994 + <arcTo wR="bd2" hR="bd2" stAng="3cd4" swAng="-5400000" />
22996 + <pt x="th" y="b" />
23005 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23006 + <gd name="adj" fmla="val 12500" />
23010 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23011 + <gd name="a" fmla="pin 0 adj 25000" />
23012 + <gd name="ch" fmla="*/ ss a 100000" />
23014 + <gd name="ch2" fmla="*/ ch 1 2" />
23016 + <gd name="ch4" fmla="*/ ch 1 4" />
23022 + <gd name="x3" fmla="+- ch ch2 0" />
23024 + <gd name="x4" fmla="+- ch ch 0" />
23026 + <gd name="x6" fmla="+- r 0 ch" />
23028 + <gd name="x7" fmla="+- r 0 ch2" />
23030 + <gd name="x5" fmla="+- x6 0 ch2" />
23036 + <gd name="y3" fmla="+- b 0 ch" />
23038 + <gd name="y4" fmla="+- b 0 ch2" />
23042 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23043 + <ahXY gdRefY="adj" minY="0" maxY="25000">
23044 + <pos x="l" y="ch" />
23048 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23050 + <pos x="hc" y="t" />
23053 + <pos x="ch" y="vc" />
23056 + <pos x="hc" y="b" />
23059 + <pos x="x6" y="vc" />
23063 + <rect l="ch" t="ch" r="x6" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
23065 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23066 + <path stroke="false" extrusionOk="false">
23069 + <pt x="ch2" y="b" />
23071 + <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />
23073 + <pt x="ch2" y="y4" />
23075 + <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="-10800000" />
23077 + <pt x="ch" y="y3" />
23080 + <pt x="ch" y="ch2" />
23082 + <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />
23084 + <pt x="x7" y="t" />
23086 + <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />
23088 + <pt x="x6" y="ch" />
23091 + <pt x="x6" y="y4" />
23093 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />
23096 + <pt x="x4" y="ch2" />
23098 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />
23099 + <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />
23102 + <path fill="darkenLess" stroke="false" extrusionOk="false">
23105 + <pt x="x4" y="ch2" />
23107 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />
23108 + <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />
23111 + <pt x="ch" y="y4" />
23113 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="3cd4" />
23114 + <arcTo wR="ch4" hR="ch4" stAng="3cd4" swAng="cd2" />
23117 + <path fill="none" extrusionOk="false">
23120 + <pt x="ch" y="y3" />
23123 + <pt x="ch" y="ch2" />
23125 + <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />
23127 + <pt x="x7" y="t" />
23129 + <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />
23131 + <pt x="x6" y="ch" />
23134 + <pt x="x6" y="y4" />
23136 + <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />
23138 + <pt x="ch2" y="b" />
23140 + <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="cd2" />
23143 + <pt x="x3" y="t" />
23145 + <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />
23146 + <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />
23148 + <pt x="x4" y="ch2" />
23151 + <pt x="x6" y="ch" />
23154 + <pt x="x3" y="ch" />
23157 + <pt x="ch2" y="y3" />
23159 + <arcTo wR="ch4" hR="ch4" stAng="3cd4" swAng="cd2" />
23161 + <pt x="ch" y="y4" />
23164 + <pt x="ch2" y="b" />
23166 + <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />
23168 + <pt x="ch" y="y3" />
23173 + </verticalScroll>
23176 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23177 + <gd name="adj1" fmla="val 12500" />
23179 + <gd name="adj2" fmla="val 0" />
23183 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23184 + <gd name="a1" fmla="pin 0 adj1 20000" />
23185 + <gd name="a2" fmla="pin -10000 adj2 10000" />
23186 + <gd name="y1" fmla="*/ h a1 100000" />
23188 + <gd name="dy2" fmla="*/ y1 10 3" />
23189 + <gd name="y2" fmla="+- y1 0 dy2" />
23191 + <gd name="y3" fmla="+- y1 dy2 0" />
23193 + <gd name="y4" fmla="+- b 0 y1" />
23195 + <gd name="y5" fmla="+- y4 0 dy2" />
23197 + <gd name="y6" fmla="+- y4 dy2 0" />
23199 + <gd name="dx1" fmla="*/ w a2 100000" />
23201 + <gd name="of2" fmla="*/ w a2 50000" />
23203 + <gd name="x1" fmla="abs dx1" />
23205 + <gd name="dx2" fmla="?: of2 0 of2" />
23206 + <gd name="x2" fmla="+- l 0 dx2" />
23208 + <gd name="dx5" fmla="?: of2 of2 0" />
23209 + <gd name="x5" fmla="+- r 0 dx5" />
23211 + <gd name="dx3" fmla="+/ dx2 x5 3" />
23213 + <gd name="x3" fmla="+- x2 dx3 0" />
23215 + <gd name="x4" fmla="+/ x3 x5 2" />
23217 + <gd name="x6" fmla="+- l dx5 0" />
23219 + <gd name="x10" fmla="+- r dx2 0" />
23221 + <gd name="x7" fmla="+- x6 dx3 0" />
23223 + <gd name="x8" fmla="+/ x7 x10 2" />
23225 + <gd name="x9" fmla="+- r 0 x1" />
23227 + <gd name="xAdj" fmla="+- hc dx1 0" />
23228 + <gd name="xAdj2" fmla="+- hc 0 dx1" />
23229 + <gd name="il" fmla="max x2 x6" />
23230 + <gd name="ir" fmla="min x5 x10" />
23231 + <gd name="it" fmla="*/ h a1 50000" />
23232 + <gd name="ib" fmla="+- b 0 it" />
23235 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23236 + <ahXY gdRefY="adj1" minY="0" maxY="20000">
23237 + <pos x="l" y="y1" />
23239 + <ahXY gdRefX="adj2" minX="-10000" maxX="10000">
23240 + <pos x="xAdj" y="b" />
23244 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23246 + <pos x="xAdj2" y="y1" />
23249 + <pos x="x1" y="vc" />
23252 + <pos x="xAdj" y="y4" />
23255 + <pos x="x9" y="vc" />
23259 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
23261 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23264 + <pt x="x2" y="y1" />
23267 + <pt x="x3" y="y2" />
23268 + <pt x="x4" y="y3" />
23269 + <pt x="x5" y="y1" />
23272 + <pt x="x10" y="y4" />
23275 + <pt x="x8" y="y6" />
23276 + <pt x="x7" y="y5" />
23277 + <pt x="x6" y="y4" />
23284 + <wedgeEllipseCallout>
23285 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23286 + <gd name="adj1" fmla="val -20833" />
23287 + <gd name="adj2" fmla="val 62500" />
23289 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23290 + <gd name="dxPos" fmla="*/ w adj1 100000" />
23291 + <gd name="dyPos" fmla="*/ h adj2 100000" />
23292 + <gd name="xPos" fmla="+- hc dxPos 0" />
23293 + <gd name="yPos" fmla="+- vc dyPos 0" />
23294 + <gd name="sdx" fmla="*/ dxPos h 1" />
23295 + <gd name="sdy" fmla="*/ dyPos w 1" />
23296 + <gd name="pang" fmla="at2 sdx sdy" />
23297 + <gd name="stAng" fmla="+- pang 660000 0" />
23298 + <gd name="enAng" fmla="+- pang 0 660000" />
23299 + <gd name="dx1" fmla="cos wd2 stAng" />
23300 + <gd name="dy1" fmla="sin hd2 stAng" />
23301 + <gd name="x1" fmla="+- hc dx1 0" />
23302 + <gd name="y1" fmla="+- vc dy1 0" />
23303 + <gd name="dx2" fmla="cos wd2 enAng" />
23304 + <gd name="dy2" fmla="sin hd2 enAng" />
23305 + <gd name="x2" fmla="+- hc dx2 0" />
23306 + <gd name="y2" fmla="+- vc dy2 0" />
23307 + <gd name="stAng1" fmla="at2 dx1 dy1" />
23308 + <gd name="enAng1" fmla="at2 dx2 dy2" />
23309 + <gd name="swAng1" fmla="+- enAng1 0 stAng1" />
23310 + <gd name="swAng2" fmla="+- swAng1 21600000 0" />
23311 + <gd name="swAng" fmla="?: swAng1 swAng1 swAng2" />
23312 + <gd name="idx" fmla="cos wd2 2700000" />
23313 + <gd name="idy" fmla="sin hd2 2700000" />
23314 + <gd name="il" fmla="+- hc 0 idx" />
23315 + <gd name="ir" fmla="+- hc idx 0" />
23316 + <gd name="it" fmla="+- vc 0 idy" />
23317 + <gd name="ib" fmla="+- vc idy 0" />
23319 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23320 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">
23321 + <pos x="xPos" y="yPos" />
23324 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23326 + <pos x="hc" y="t" />
23329 + <pos x="il" y="it" />
23332 + <pos x="il" y="ib" />
23335 + <pos x="hc" y="b" />
23338 + <pos x="ir" y="ib" />
23341 + <pos x="r" y="vc" />
23344 + <pos x="ir" y="it" />
23347 + <pos x="xPos" y="yPos" />
23350 + <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
23351 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23354 + <pt x="xPos" y="yPos" />
23357 + <pt x="x1" y="y1" />
23359 + <arcTo wR="wd2" hR="hd2" stAng="stAng1" swAng="swAng" />
23363 + </wedgeEllipseCallout>
23364 + <wedgeRectCallout>
23366 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23367 + <gd name="adj1" fmla="val -20833" />
23369 + <gd name="adj2" fmla="val 62500" />
23373 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23374 + <gd name="dxPos" fmla="*/ w adj1 100000" />
23375 + <gd name="dyPos" fmla="*/ h adj2 100000" />
23376 + <gd name="xPos" fmla="+- hc dxPos 0" />
23377 + <gd name="yPos" fmla="+- vc dyPos 0" />
23378 + <gd name="dx" fmla="+- xPos 0 hc" />
23379 + <gd name="dy" fmla="+- yPos 0 vc" />
23380 + <gd name="dq" fmla="*/ dxPos h w" />
23381 + <gd name="ady" fmla="abs dyPos" />
23382 + <gd name="adq" fmla="abs dq" />
23383 + <gd name="dz" fmla="+- ady 0 adq" />
23384 + <gd name="xg1" fmla="?: dxPos 7 2" />
23385 + <gd name="xg2" fmla="?: dxPos 10 5" />
23386 + <gd name="x1" fmla="*/ w xg1 12" />
23387 + <gd name="x2" fmla="*/ w xg2 12" />
23388 + <gd name="yg1" fmla="?: dyPos 7 2" />
23389 + <gd name="yg2" fmla="?: dyPos 10 5" />
23390 + <gd name="y1" fmla="*/ h yg1 12" />
23391 + <gd name="y2" fmla="*/ h yg2 12" />
23392 + <gd name="t1" fmla="?: dxPos l xPos" />
23393 + <gd name="xl" fmla="?: dz l t1" />
23394 + <gd name="t2" fmla="?: dyPos x1 xPos" />
23395 + <gd name="xt" fmla="?: dz t2 x1" />
23396 + <gd name="t3" fmla="?: dxPos xPos r" />
23397 + <gd name="xr" fmla="?: dz r t3" />
23398 + <gd name="t4" fmla="?: dyPos xPos x1" />
23399 + <gd name="xb" fmla="?: dz t4 x1" />
23400 + <gd name="t5" fmla="?: dxPos y1 yPos" />
23401 + <gd name="yl" fmla="?: dz y1 t5" />
23402 + <gd name="t6" fmla="?: dyPos t yPos" />
23403 + <gd name="yt" fmla="?: dz t6 t" />
23404 + <gd name="t7" fmla="?: dxPos yPos y1" />
23405 + <gd name="yr" fmla="?: dz y1 t7" />
23406 + <gd name="t8" fmla="?: dyPos yPos b" />
23407 + <gd name="yb" fmla="?: dz t8 b" />
23410 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23411 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">
23412 + <pos x="xPos" y="yPos" />
23416 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23418 + <pos x="hc" y="t" />
23421 + <pos x="l" y="vc" />
23424 + <pos x="hc" y="b" />
23427 + <pos x="r" y="vc" />
23430 + <pos x="xPos" y="yPos" />
23434 + <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
23436 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23439 + <pt x="l" y="t" />
23442 + <pt x="x1" y="t" />
23445 + <pt x="xt" y="yt" />
23448 + <pt x="x2" y="t" />
23451 + <pt x="r" y="t" />
23454 + <pt x="r" y="y1" />
23457 + <pt x="xr" y="yr" />
23460 + <pt x="r" y="y2" />
23463 + <pt x="r" y="b" />
23466 + <pt x="x2" y="b" />
23469 + <pt x="xb" y="yb" />
23472 + <pt x="x1" y="b" />
23475 + <pt x="l" y="b" />
23478 + <pt x="l" y="y2" />
23481 + <pt x="xl" y="yl" />
23484 + <pt x="l" y="y1" />
23490 + </wedgeRectCallout>
23491 + <wedgeRoundRectCallout>
23492 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23493 + <gd name="adj1" fmla="val -20833" />
23494 + <gd name="adj2" fmla="val 62500" />
23495 + <gd name="adj3" fmla="val 16667" />
23497 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23498 + <gd name="dxPos" fmla="*/ w adj1 100000" />
23499 + <gd name="dyPos" fmla="*/ h adj2 100000" />
23500 + <gd name="xPos" fmla="+- hc dxPos 0" />
23501 + <gd name="yPos" fmla="+- vc dyPos 0" />
23502 + <gd name="dq" fmla="*/ dxPos h w" />
23503 + <gd name="ady" fmla="abs dyPos" />
23504 + <gd name="adq" fmla="abs dq" />
23505 + <gd name="dz" fmla="+- ady 0 adq" />
23506 + <gd name="xg1" fmla="?: dxPos 7 2" />
23507 + <gd name="xg2" fmla="?: dxPos 10 5" />
23508 + <gd name="x1" fmla="*/ w xg1 12" />
23509 + <gd name="x2" fmla="*/ w xg2 12" />
23510 + <gd name="yg1" fmla="?: dyPos 7 2" />
23511 + <gd name="yg2" fmla="?: dyPos 10 5" />
23512 + <gd name="y1" fmla="*/ h yg1 12" />
23513 + <gd name="y2" fmla="*/ h yg2 12" />
23514 + <gd name="t1" fmla="?: dxPos l xPos" />
23515 + <gd name="xl" fmla="?: dz l t1" />
23516 + <gd name="t2" fmla="?: dyPos x1 xPos" />
23517 + <gd name="xt" fmla="?: dz t2 x1" />
23518 + <gd name="t3" fmla="?: dxPos xPos r" />
23519 + <gd name="xr" fmla="?: dz r t3" />
23520 + <gd name="t4" fmla="?: dyPos xPos x1" />
23521 + <gd name="xb" fmla="?: dz t4 x1" />
23522 + <gd name="t5" fmla="?: dxPos y1 yPos" />
23523 + <gd name="yl" fmla="?: dz y1 t5" />
23524 + <gd name="t6" fmla="?: dyPos t yPos" />
23525 + <gd name="yt" fmla="?: dz t6 t" />
23526 + <gd name="t7" fmla="?: dxPos yPos y1" />
23527 + <gd name="yr" fmla="?: dz y1 t7" />
23528 + <gd name="t8" fmla="?: dyPos yPos b" />
23529 + <gd name="yb" fmla="?: dz t8 b" />
23530 + <gd name="u1" fmla="*/ ss adj3 100000" />
23531 + <gd name="u2" fmla="+- r 0 u1" />
23532 + <gd name="v2" fmla="+- b 0 u1" />
23533 + <gd name="il" fmla="*/ u1 29289 100000" />
23534 + <gd name="ir" fmla="+- r 0 il" />
23535 + <gd name="ib" fmla="+- b 0 il" />
23537 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23538 + <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">
23539 + <pos x="xPos" y="yPos" />
23542 + <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23544 + <pos x="hc" y="t" />
23547 + <pos x="l" y="vc" />
23550 + <pos x="hc" y="b" />
23553 + <pos x="r" y="vc" />
23556 + <pos x="xPos" y="yPos" />
23559 + <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
23560 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23563 + <pt x="l" y="u1" />
23565 + <arcTo wR="u1" hR="u1" stAng="cd2" swAng="cd4" />
23567 + <pt x="x1" y="t" />
23570 + <pt x="xt" y="yt" />
23573 + <pt x="x2" y="t" />
23576 + <pt x="u2" y="t" />
23578 + <arcTo wR="u1" hR="u1" stAng="3cd4" swAng="cd4" />
23580 + <pt x="r" y="y1" />
23583 + <pt x="xr" y="yr" />
23586 + <pt x="r" y="y2" />
23589 + <pt x="r" y="v2" />
23591 + <arcTo wR="u1" hR="u1" stAng="0" swAng="cd4" />
23593 + <pt x="x2" y="b" />
23596 + <pt x="xb" y="yb" />
23599 + <pt x="x1" y="b" />
23602 + <pt x="u1" y="b" />
23604 + <arcTo wR="u1" hR="u1" stAng="cd4" swAng="cd4" />
23606 + <pt x="l" y="y2" />
23609 + <pt x="xl" y="yl" />
23612 + <pt x="l" y="y1" />
23617 + </wedgeRoundRectCallout>
23618 +</presetShapeDefinitons>
23619 diff --git oox/source/export/presetTextWarpDefinitions.xml oox/source/export/presetTextWarpDefinitions.xml
23620 new file mode 100644
23621 index 0000000..c701c8f
23623 +++ oox/source/export/presetTextWarpDefinitions.xml
23625 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
23626 +<presetTextWarpDefinitions>
23628 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23629 + <gd name="adj" fmla="val 0"/>
23631 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23632 + <gd name="adval" fmla="pin 0 adj 21599999"/>
23633 + <gd name="v1" fmla="+- 10800000 0 adval"/>
23634 + <gd name="v2" fmla="+- 32400000 0 adval"/>
23635 + <gd name="nv1" fmla="+- 0 0 v1"/>
23636 + <gd name="stAng" fmla="?: nv1 v2 v1"/>
23637 + <gd name="w1" fmla="+- 5400000 0 adval"/>
23638 + <gd name="w2" fmla="+- 16200000 0 adval"/>
23639 + <gd name="d1" fmla="+- adval 0 stAng"/>
23640 + <gd name="d2" fmla="+- d1 0 21600000"/>
23641 + <gd name="v3" fmla="+- 0 0 10800000"/>
23642 + <gd name="c2" fmla="?: w2 d1 d2"/>
23643 + <gd name="c1" fmla="?: v1 d2 c2"/>
23644 + <gd name="c0" fmla="?: w1 d1 c1"/>
23645 + <gd name="swAng" fmla="?: stAng c0 v3"/>
23646 + <gd name="wt1" fmla="sin wd2 adj"/>
23647 + <gd name="ht1" fmla="cos hd2 adj"/>
23648 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1"/>
23649 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1"/>
23650 + <gd name="x1" fmla="+- hc dx1 0"/>
23651 + <gd name="y1" fmla="+- vc dy1 0"/>
23652 + <gd name="wt2" fmla="sin wd2 stAng"/>
23653 + <gd name="ht2" fmla="cos hd2 stAng"/>
23654 + <gd name="dx2" fmla="cat2 wd2 ht2 wt2"/>
23655 + <gd name="dy2" fmla="sat2 hd2 ht2 wt2"/>
23656 + <gd name="x2" fmla="+- hc dx2 0"/>
23657 + <gd name="y2" fmla="+- vc dy2 0"/>
23659 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23660 + <ahPolar gdRefAng="adj" minAng="0" maxAng="21599999">
23661 + <pos x="x1" y="y1"/>
23664 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23667 + <pt x="x2" y="y2"/>
23669 + <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng"/>
23673 + <textArchDownPour>
23674 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23675 + <gd name="adj1" fmla="val 0"/>
23676 + <gd name="adj2" fmla="val 25000"/>
23678 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23679 + <gd name="adval" fmla="pin 0 adj1 21599999"/>
23680 + <gd name="v1" fmla="+- 10800000 0 adval"/>
23681 + <gd name="v2" fmla="+- 32400000 0 adval"/>
23682 + <gd name="nv1" fmla="+- 0 0 v1"/>
23683 + <gd name="stAng" fmla="?: nv1 v2 v1"/>
23684 + <gd name="w1" fmla="+- 5400000 0 adval"/>
23685 + <gd name="w2" fmla="+- 16200000 0 adval"/>
23686 + <gd name="d1" fmla="+- adval 0 stAng"/>
23687 + <gd name="d2" fmla="+- d1 0 21600000"/>
23688 + <gd name="v3" fmla="+- 0 0 10800000"/>
23689 + <gd name="c2" fmla="?: w2 d1 d2"/>
23690 + <gd name="c1" fmla="?: v1 d2 c2"/>
23691 + <gd name="c0" fmla="?: w1 d1 c1"/>
23692 + <gd name="swAng" fmla="?: stAng c0 v3"/>
23693 + <gd name="wt1" fmla="sin wd2 stAng"/>
23694 + <gd name="ht1" fmla="cos hd2 stAng"/>
23695 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1"/>
23696 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1"/>
23697 + <gd name="x1" fmla="+- hc dx1 0"/>
23698 + <gd name="y1" fmla="+- vc dy1 0"/>
23699 + <gd name="adval2" fmla="pin 0 adj2 99000"/>
23700 + <gd name="ratio" fmla="*/ adval2 1 100000"/>
23701 + <gd name="iwd2" fmla="*/ wd2 ratio 1"/>
23702 + <gd name="ihd2" fmla="*/ hd2 ratio 1"/>
23703 + <gd name="wt2" fmla="sin iwd2 adval"/>
23704 + <gd name="ht2" fmla="cos ihd2 adval"/>
23705 + <gd name="dx2" fmla="cat2 iwd2 ht2 wt2"/>
23706 + <gd name="dy2" fmla="sat2 ihd2 ht2 wt2"/>
23707 + <gd name="x2" fmla="+- hc dx2 0"/>
23708 + <gd name="y2" fmla="+- vc dy2 0"/>
23709 + <gd name="wt3" fmla="sin iwd2 stAng"/>
23710 + <gd name="ht3" fmla="cos ihd2 stAng"/>
23711 + <gd name="dx3" fmla="cat2 iwd2 ht3 wt3"/>
23712 + <gd name="dy3" fmla="sat2 ihd2 ht3 wt3"/>
23713 + <gd name="x3" fmla="+- hc dx3 0"/>
23714 + <gd name="y3" fmla="+- vc dy3 0"/>
23716 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23717 + <ahPolar gdRefR="adj2" minR="0" maxR="100000" gdRefAng="adj1" minAng="0" maxAng="21599999">
23718 + <pos x="x2" y="y2"/>
23721 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23724 + <pt x="x3" y="y3"/>
23726 + <arcTo wR="iwd2" hR="ihd2" stAng="stAng" swAng="swAng"/>
23730 + <pt x="x1" y="y1"/>
23732 + <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng"/>
23735 + </textArchDownPour>
23737 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23738 + <gd name="adj" fmla="val cd2"/>
23740 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23741 + <gd name="adval" fmla="pin 0 adj 21599999"/>
23742 + <gd name="v1" fmla="+- 10800000 0 adval"/>
23743 + <gd name="v2" fmla="+- 32400000 0 adval"/>
23744 + <gd name="end" fmla="?: v1 v1 v2"/>
23745 + <gd name="w1" fmla="+- 5400000 0 adval"/>
23746 + <gd name="w2" fmla="+- 16200000 0 adval"/>
23747 + <gd name="d1" fmla="+- end 0 adval"/>
23748 + <gd name="d2" fmla="+- 21600000 d1 0"/>
23749 + <gd name="c2" fmla="?: w2 d1 d2"/>
23750 + <gd name="c1" fmla="?: v1 d2 c2"/>
23751 + <gd name="swAng" fmla="?: w1 d1 c1"/>
23752 + <gd name="wt1" fmla="sin wd2 adj"/>
23753 + <gd name="ht1" fmla="cos hd2 adj"/>
23754 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1"/>
23755 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1"/>
23756 + <gd name="x1" fmla="+- hc dx1 0"/>
23757 + <gd name="y1" fmla="+- vc dy1 0"/>
23759 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23760 + <ahPolar gdRefAng="adj" minAng="0" maxAng="21599999">
23761 + <pos x="x1" y="y1"/>
23764 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23767 + <pt x="x1" y="y1"/>
23769 + <arcTo wR="wd2" hR="hd2" stAng="adval" swAng="swAng"/>
23774 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23775 + <gd name="adj1" fmla="val cd2"/>
23776 + <gd name="adj2" fmla="val 50000"/>
23778 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23779 + <gd name="adval" fmla="pin 0 adj1 21599999"/>
23780 + <gd name="v1" fmla="+- 10800000 0 adval"/>
23781 + <gd name="v2" fmla="+- 32400000 0 adval"/>
23782 + <gd name="end" fmla="?: v1 v1 v2"/>
23783 + <gd name="w1" fmla="+- 5400000 0 adval"/>
23784 + <gd name="w2" fmla="+- 16200000 0 adval"/>
23785 + <gd name="d1" fmla="+- end 0 adval"/>
23786 + <gd name="d2" fmla="+- 21600000 d1 0"/>
23787 + <gd name="c2" fmla="?: w2 d1 d2"/>
23788 + <gd name="c1" fmla="?: v1 d2 c2"/>
23789 + <gd name="swAng" fmla="?: w1 d1 c1"/>
23790 + <gd name="wt1" fmla="sin wd2 adval"/>
23791 + <gd name="ht1" fmla="cos hd2 adval"/>
23792 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1"/>
23793 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1"/>
23794 + <gd name="x1" fmla="+- hc dx1 0"/>
23795 + <gd name="y1" fmla="+- vc dy1 0"/>
23796 + <gd name="adval2" fmla="pin 0 adj2 99000"/>
23797 + <gd name="ratio" fmla="*/ adval2 1 100000"/>
23798 + <gd name="iwd2" fmla="*/ wd2 ratio 1"/>
23799 + <gd name="ihd2" fmla="*/ hd2 ratio 1"/>
23800 + <gd name="wt2" fmla="sin iwd2 adval"/>
23801 + <gd name="ht2" fmla="cos ihd2 adval"/>
23802 + <gd name="dx2" fmla="cat2 iwd2 ht2 wt2"/>
23803 + <gd name="dy2" fmla="sat2 ihd2 ht2 wt2"/>
23804 + <gd name="x2" fmla="+- hc dx2 0"/>
23805 + <gd name="y2" fmla="+- vc dy2 0"/>
23807 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23808 + <ahPolar gdRefR="adj2" minR="0" maxR="100000" gdRefAng="adj1" minAng="0" maxAng="21599999">
23809 + <pos x="x2" y="y2"/>
23812 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23815 + <pt x="x1" y="y1"/>
23817 + <arcTo wR="wd2" hR="hd2" stAng="adval" swAng="swAng"/>
23821 + <pt x="x2" y="y2"/>
23823 + <arcTo wR="iwd2" hR="ihd2" stAng="adval" swAng="swAng"/>
23826 + </textArchUpPour>
23828 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23829 + <gd name="adj" fmla="val 10800000"/>
23831 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23832 + <gd name="adval" fmla="pin 0 adj 21599999"/>
23833 + <gd name="bot" fmla="+- 5400000 0 adval"/>
23834 + <gd name="lef" fmla="+- 10800000 0 adval"/>
23835 + <gd name="top" fmla="+- 16200000 0 adval"/>
23836 + <gd name="rig" fmla="+- 21600000 0 adval"/>
23837 + <gd name="c3" fmla="?: top adval 0"/>
23838 + <gd name="c2" fmla="?: lef 10800000 c3"/>
23839 + <gd name="c1" fmla="?: bot rig c2"/>
23840 + <gd name="stAng" fmla="?: adval c1 0"/>
23841 + <gd name="w1" fmla="+- 21600000 0 stAng"/>
23842 + <gd name="stAngB" fmla="?: stAng w1 0"/>
23843 + <gd name="td1" fmla="*/ bot 2 1"/>
23844 + <gd name="td2" fmla="*/ top 2 1"/>
23845 + <gd name="ntd2" fmla="+- 0 0 td2"/>
23846 + <gd name="w2" fmla="+- 0 0 10800000"/>
23847 + <gd name="c6" fmla="?: top ntd2 w2"/>
23848 + <gd name="c5" fmla="?: lef 10800000 c6"/>
23849 + <gd name="c4" fmla="?: bot td1 c5"/>
23850 + <gd name="v1" fmla="?: adval c4 10800000"/>
23851 + <gd name="swAngT" fmla="+- 0 0 v1"/>
23852 + <gd name="stT" fmla="?: lef stAngB stAng"/>
23853 + <gd name="stB" fmla="?: lef stAng stAngB"/>
23854 + <gd name="swT" fmla="?: lef v1 swAngT"/>
23855 + <gd name="swB" fmla="?: lef swAngT v1"/>
23856 + <gd name="wt1" fmla="sin wd2 stT"/>
23857 + <gd name="ht1" fmla="cos hd2 stT"/>
23858 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1"/>
23859 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1"/>
23860 + <gd name="x1" fmla="+- hc dx1 0"/>
23861 + <gd name="y1" fmla="+- vc dy1 0"/>
23862 + <gd name="wt2" fmla="sin wd2 stB"/>
23863 + <gd name="ht2" fmla="cos hd2 stB"/>
23864 + <gd name="dx2" fmla="cat2 wd2 ht2 wt2"/>
23865 + <gd name="dy2" fmla="sat2 hd2 ht2 wt2"/>
23866 + <gd name="x2" fmla="+- hc dx2 0"/>
23867 + <gd name="y2" fmla="+- vc dy2 0"/>
23868 + <gd name="wt3" fmla="sin wd2 adj"/>
23869 + <gd name="ht3" fmla="cos hd2 adj"/>
23870 + <gd name="dx3" fmla="cat2 wd2 ht3 wt3"/>
23871 + <gd name="dy3" fmla="sat2 hd2 ht3 wt3"/>
23872 + <gd name="x3" fmla="+- hc dx3 0"/>
23873 + <gd name="y3" fmla="+- vc dy3 0"/>
23875 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23876 + <ahPolar gdRefAng="adj" minAng="0" maxAng="21599999">
23877 + <pos x="x3" y="y3"/>
23880 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23883 + <pt x="x1" y="y1"/>
23885 + <arcTo wR="wd2" hR="hd2" stAng="stT" swAng="swT"/>
23889 + <pt x="l" y="vc"/>
23892 + <pt x="r" y="vc"/>
23897 + <pt x="x2" y="y2"/>
23899 + <arcTo wR="wd2" hR="hd2" stAng="stB" swAng="swB"/>
23904 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23905 + <gd name="adj1" fmla="val cd2"/>
23906 + <gd name="adj2" fmla="val 50000"/>
23908 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23909 + <gd name="adval" fmla="pin 0 adj1 21599999"/>
23910 + <gd name="bot" fmla="+- 5400000 0 adval"/>
23911 + <gd name="lef" fmla="+- 10800000 0 adval"/>
23912 + <gd name="top" fmla="+- 16200000 0 adval"/>
23913 + <gd name="rig" fmla="+- 21600000 0 adval"/>
23914 + <gd name="c3" fmla="?: top adval 0"/>
23915 + <gd name="c2" fmla="?: lef 10800000 c3"/>
23916 + <gd name="c1" fmla="?: bot rig c2"/>
23917 + <gd name="stAng" fmla="?: adval c1 0"/>
23918 + <gd name="w1" fmla="+- 21600000 0 stAng"/>
23919 + <gd name="stAngB" fmla="?: stAng w1 0"/>
23920 + <gd name="td1" fmla="*/ bot 2 1"/>
23921 + <gd name="td2" fmla="*/ top 2 1"/>
23922 + <gd name="ntd2" fmla="+- 0 0 td2"/>
23923 + <gd name="w2" fmla="+- 0 0 10800000"/>
23924 + <gd name="c6" fmla="?: top ntd2 w2"/>
23925 + <gd name="c5" fmla="?: lef 10800000 c6"/>
23926 + <gd name="c4" fmla="?: bot td1 c5"/>
23927 + <gd name="v1" fmla="?: adval c4 10800000"/>
23928 + <gd name="swAngT" fmla="+- 0 0 v1"/>
23929 + <gd name="stT" fmla="?: lef stAngB stAng"/>
23930 + <gd name="stB" fmla="?: lef stAng stAngB"/>
23931 + <gd name="swT" fmla="?: lef v1 swAngT"/>
23932 + <gd name="swB" fmla="?: lef swAngT v1"/>
23933 + <gd name="wt1" fmla="sin wd2 stT"/>
23934 + <gd name="ht1" fmla="cos hd2 stT"/>
23935 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1"/>
23936 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1"/>
23937 + <gd name="x1" fmla="+- hc dx1 0"/>
23938 + <gd name="y1" fmla="+- vc dy1 0"/>
23939 + <gd name="wt6" fmla="sin wd2 stB"/>
23940 + <gd name="ht6" fmla="cos hd2 stB"/>
23941 + <gd name="dx6" fmla="cat2 wd2 ht6 wt6"/>
23942 + <gd name="dy6" fmla="sat2 hd2 ht6 wt6"/>
23943 + <gd name="x6" fmla="+- hc dx6 0"/>
23944 + <gd name="y6" fmla="+- vc dy6 0"/>
23945 + <gd name="adval2" fmla="pin 40000 adj2 99000"/>
23946 + <gd name="ratio" fmla="*/ adval2 1 100000"/>
23947 + <gd name="iwd2" fmla="*/ wd2 ratio 1"/>
23948 + <gd name="ihd2" fmla="*/ hd2 ratio 1"/>
23949 + <gd name="wt2" fmla="sin iwd2 stT"/>
23950 + <gd name="ht2" fmla="cos ihd2 stT"/>
23951 + <gd name="dx2" fmla="cat2 iwd2 ht2 wt2"/>
23952 + <gd name="dy2" fmla="sat2 ihd2 ht2 wt2"/>
23953 + <gd name="x2" fmla="+- hc dx2 0"/>
23954 + <gd name="y2" fmla="+- vc dy2 0"/>
23955 + <gd name="wt5" fmla="sin iwd2 stB"/>
23956 + <gd name="ht5" fmla="cos ihd2 stB"/>
23957 + <gd name="dx5" fmla="cat2 iwd2 ht5 wt5"/>
23958 + <gd name="dy5" fmla="sat2 ihd2 ht5 wt5"/>
23959 + <gd name="x5" fmla="+- hc dx5 0"/>
23960 + <gd name="y5" fmla="+- vc dy5 0"/>
23961 + <gd name="d1" fmla="+- hd2 0 ihd2"/>
23962 + <gd name="d12" fmla="*/ d1 1 2"/>
23963 + <gd name="yu" fmla="+- vc 0 d12"/>
23964 + <gd name="yd" fmla="+- vc d12 0"/>
23965 + <gd name="v1" fmla="*/ d12 d12 1"/>
23966 + <gd name="v2" fmla="*/ ihd2 ihd2 1"/>
23967 + <gd name="v3" fmla="*/ v1 1 v2"/>
23968 + <gd name="v4" fmla="+- 1 0 v3"/>
23969 + <gd name="v5" fmla="*/ iwd2 iwd2 1"/>
23970 + <gd name="v6" fmla="*/ v4 v5 1"/>
23971 + <gd name="v7" fmla="sqrt v6"/>
23972 + <gd name="xl" fmla="+- hc 0 v7"/>
23973 + <gd name="xr" fmla="+- hc v7 0"/>
23974 + <gd name="wtadj" fmla="sin iwd2 adj1"/>
23975 + <gd name="htadj" fmla="cos ihd2 adj1"/>
23976 + <gd name="dxadj" fmla="cat2 iwd2 htadj wtadj"/>
23977 + <gd name="dyadj" fmla="sat2 ihd2 htadj wtadj"/>
23978 + <gd name="xadj" fmla="+- hc dxadj 0"/>
23979 + <gd name="yadj" fmla="+- vc dyadj 0"/>
23981 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23982 + <ahPolar gdRefR="adj2" minR="0" maxR="100000" gdRefAng="adj1" minAng="0" maxAng="21599999">
23983 + <pos x="xadj" y="yadj"/>
23986 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
23989 + <pt x="x1" y="y1"/>
23991 + <arcTo wR="wd2" hR="hd2" stAng="stT" swAng="swT"/>
23995 + <pt x="x2" y="y2"/>
23997 + <arcTo wR="iwd2" hR="ihd2" stAng="stT" swAng="swT"/>
24001 + <pt x="xl" y="yu"/>
24004 + <pt x="xr" y="yu"/>
24009 + <pt x="xl" y="yd"/>
24012 + <pt x="xr" y="yd"/>
24017 + <pt x="x5" y="y5"/>
24019 + <arcTo wR="iwd2" hR="ihd2" stAng="stB" swAng="swB"/>
24023 + <pt x="x6" y="y6"/>
24025 + <arcTo wR="wd2" hR="hd2" stAng="stB" swAng="swB"/>
24028 + </textButtonPour>
24030 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24031 + <gd name="adj" fmla="val 14286"/>
24033 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24034 + <gd name="a" fmla="pin 0 adj 33333"/>
24035 + <gd name="dy" fmla="*/ a h 100000"/>
24036 + <gd name="y0" fmla="+- t dy 0"/>
24037 + <gd name="y1" fmla="+- b 0 dy"/>
24038 + <gd name="ncd2" fmla="*/ cd2 -1 1"/>
24040 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24041 + <ahXY gdRefY="adj" minY="0" maxY="33333">
24042 + <pos x="hc" y="y0"/>
24045 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24048 + <pt x="l" y="t"/>
24050 + <arcTo wR="wd2" hR="dy" stAng="cd2" swAng="ncd2"/>
24054 + <pt x="l" y="y1"/>
24056 + <arcTo wR="wd2" hR="dy" stAng="cd2" swAng="ncd2"/>
24061 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24062 + <gd name="adj" fmla="val 85714"/>
24064 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24065 + <gd name="a" fmla="pin 66667 adj 100000"/>
24066 + <gd name="dy1" fmla="*/ a h 100000"/>
24067 + <gd name="dy" fmla="+- h 0 dy1"/>
24068 + <gd name="y0" fmla="+- t dy1 0"/>
24069 + <gd name="y1" fmla="+- t dy 0"/>
24071 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24072 + <ahXY gdRefY="adj" minY="66667" maxY="100000">
24073 + <pos x="hc" y="y0"/>
24076 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24079 + <pt x="l" y="y1"/>
24081 + <arcTo wR="wd2" hR="dy" stAng="cd2" swAng="cd2"/>
24085 + <pt x="l" y="b"/>
24087 + <arcTo wR="wd2" hR="dy" stAng="cd2" swAng="cd2"/>
24091 + <textCascadeDown>
24092 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24093 + <gd name="adj" fmla="val 44444"/>
24095 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24096 + <gd name="a" fmla="pin 28570 adj 100000"/>
24097 + <gd name="dy" fmla="*/ a h 100000"/>
24098 + <gd name="y1" fmla="+- t dy 0"/>
24099 + <gd name="dy2" fmla="+- h 0 dy"/>
24100 + <gd name="dy3" fmla="*/ dy2 1 4"/>
24101 + <gd name="y2" fmla="+- t dy3 0"/>
24103 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24104 + <ahXY gdRefY="adj" minY="28570" maxY="100000">
24105 + <pos x="l" y="y1"/>
24108 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24111 + <pt x="l" y="t"/>
24114 + <pt x="r" y="y2"/>
24119 + <pt x="l" y="y1"/>
24122 + <pt x="r" y="b"/>
24126 + </textCascadeDown>
24128 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24129 + <gd name="adj" fmla="val 44444"/>
24131 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24132 + <gd name="a" fmla="pin 28570 adj 100000"/>
24133 + <gd name="dy" fmla="*/ a h 100000"/>
24134 + <gd name="y1" fmla="+- t dy 0"/>
24135 + <gd name="dy2" fmla="+- h 0 dy"/>
24136 + <gd name="dy3" fmla="*/ dy2 1 4"/>
24137 + <gd name="y2" fmla="+- t dy3 0"/>
24139 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24140 + <ahXY gdRefY="adj" minY="28570" maxY="100000">
24141 + <pos x="r" y="y1"/>
24144 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24147 + <pt x="l" y="y2"/>
24150 + <pt x="r" y="t"/>
24155 + <pt x="l" y="b"/>
24158 + <pt x="r" y="y1"/>
24164 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24165 + <gd name="adj" fmla="val 25000"/>
24167 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24168 + <gd name="a" fmla="pin 0 adj 50000"/>
24169 + <gd name="y" fmla="*/ a h 100000"/>
24170 + <gd name="y1" fmla="+- t b y"/>
24172 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24173 + <ahXY gdRefY="adj" minY="0" maxY="50000">
24174 + <pos x="l" y="y"/>
24177 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24180 + <pt x="l" y="y"/>
24183 + <pt x="hc" y="t"/>
24186 + <pt x="r" y="y"/>
24191 + <pt x="l" y="b"/>
24194 + <pt x="hc" y="y1"/>
24197 + <pt x="r" y="b"/>
24202 + <textChevronInverted>
24203 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24204 + <gd name="adj" fmla="val 75000"/>
24206 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24207 + <gd name="a" fmla="pin 50000 adj 100000"/>
24208 + <gd name="y" fmla="*/ a h 100000"/>
24209 + <gd name="y1" fmla="+- b 0 y"/>
24211 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24212 + <ahXY gdRefY="adj" minY="50000" maxY="100000">
24213 + <pos x="l" y="y"/>
24216 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24219 + <pt x="l" y="t"/>
24222 + <pt x="hc" y="y1"/>
24225 + <pt x="r" y="t"/>
24230 + <pt x="l" y="y"/>
24233 + <pt x="hc" y="b"/>
24236 + <pt x="r" y="y"/>
24240 + </textChevronInverted>
24242 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24243 + <gd name="adj" fmla="val 10800000"/>
24245 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24246 + <gd name="adval" fmla="pin 0 adj 21599999"/>
24247 + <gd name="d0" fmla="+- adval 0 10800000"/>
24248 + <gd name="d1" fmla="+- 10800000 0 adval"/>
24249 + <gd name="d2" fmla="+- 21600000 0 adval"/>
24250 + <gd name="d3" fmla="?: d1 d1 10799999"/>
24251 + <gd name="d4" fmla="?: d0 d2 d3"/>
24252 + <gd name="swAng" fmla="*/ d4 2 1"/>
24253 + <gd name="wt1" fmla="sin wd2 adj"/>
24254 + <gd name="ht1" fmla="cos hd2 adj"/>
24255 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1"/>
24256 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1"/>
24257 + <gd name="x1" fmla="+- hc dx1 0"/>
24258 + <gd name="y1" fmla="+- vc dy1 0"/>
24260 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24261 + <ahPolar gdRefAng="adj" minAng="0" maxAng="21599999">
24262 + <pos x="x1" y="y1"/>
24265 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24268 + <pt x="x1" y="y1"/>
24270 + <arcTo wR="wd2" hR="hd2" stAng="adval" swAng="swAng"/>
24275 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24276 + <gd name="adj1" fmla="val cd2"/>
24277 + <gd name="adj2" fmla="val 50000"/>
24279 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24280 + <gd name="adval" fmla="pin 0 adj1 21599999"/>
24281 + <gd name="d0" fmla="+- adval 0 10800000"/>
24282 + <gd name="d1" fmla="+- 10800000 0 adval"/>
24283 + <gd name="d2" fmla="+- 21600000 0 adval"/>
24284 + <gd name="d3" fmla="?: d1 d1 10799999"/>
24285 + <gd name="d4" fmla="?: d0 d2 d3"/>
24286 + <gd name="swAng" fmla="*/ d4 2 1"/>
24287 + <gd name="wt1" fmla="sin wd2 adval"/>
24288 + <gd name="ht1" fmla="cos hd2 adval"/>
24289 + <gd name="dx1" fmla="cat2 wd2 ht1 wt1"/>
24290 + <gd name="dy1" fmla="sat2 hd2 ht1 wt1"/>
24291 + <gd name="x1" fmla="+- hc dx1 0"/>
24292 + <gd name="y1" fmla="+- vc dy1 0"/>
24293 + <gd name="adval2" fmla="pin 0 adj2 99000"/>
24294 + <gd name="ratio" fmla="*/ adval2 1 100000"/>
24295 + <gd name="iwd2" fmla="*/ wd2 ratio 1"/>
24296 + <gd name="ihd2" fmla="*/ hd2 ratio 1"/>
24297 + <gd name="wt2" fmla="sin iwd2 adval"/>
24298 + <gd name="ht2" fmla="cos ihd2 adval"/>
24299 + <gd name="dx2" fmla="cat2 iwd2 ht2 wt2"/>
24300 + <gd name="dy2" fmla="sat2 ihd2 ht2 wt2"/>
24301 + <gd name="x2" fmla="+- hc dx2 0"/>
24302 + <gd name="y2" fmla="+- vc dy2 0"/>
24304 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24305 + <ahPolar gdRefR="adj2" minR="0" maxR="100000" gdRefAng="adj1" minAng="0" maxAng="21599999">
24306 + <pos x="x2" y="y2"/>
24309 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24312 + <pt x="x1" y="y1"/>
24314 + <arcTo wR="wd2" hR="hd2" stAng="adval" swAng="swAng"/>
24318 + <pt x="x2" y="y2"/>
24320 + <arcTo wR="iwd2" hR="ihd2" stAng="adval" swAng="swAng"/>
24323 + </textCirclePour>
24325 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24326 + <gd name="adj" fmla="val 45977"/>
24328 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24329 + <gd name="a" fmla="pin 0 adj 56338"/>
24330 + <gd name="dy" fmla="*/ a h 100000"/>
24331 + <gd name="gd1" fmla="*/ dy 3 4"/>
24332 + <gd name="gd2" fmla="*/ dy 5 4"/>
24333 + <gd name="gd3" fmla="*/ dy 3 8"/>
24334 + <gd name="gd4" fmla="*/ dy 1 8"/>
24335 + <gd name="gd5" fmla="+- h 0 gd3"/>
24336 + <gd name="gd6" fmla="+- gd4 h 0"/>
24337 + <gd name="y0" fmla="+- t dy 0"/>
24338 + <gd name="y1" fmla="+- t gd1 0"/>
24339 + <gd name="y2" fmla="+- t gd2 0"/>
24340 + <gd name="y3" fmla="+- t gd3 0"/>
24341 + <gd name="y4" fmla="+- t gd4 0"/>
24342 + <gd name="y5" fmla="+- t gd5 0"/>
24343 + <gd name="y6" fmla="+- t gd6 0"/>
24344 + <gd name="x1" fmla="+- l wd3 0"/>
24345 + <gd name="x2" fmla="+- r 0 wd3"/>
24347 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24348 + <ahXY gdRefY="adj" minY="0" maxY="56338">
24349 + <pos x="r" y="y0"/>
24352 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24355 + <pt x="l" y="t"/>
24358 + <pt x="x1" y="y1"/>
24359 + <pt x="x2" y="y2"/>
24360 + <pt x="r" y="y0"/>
24365 + <pt x="l" y="y5"/>
24368 + <pt x="x1" y="y6"/>
24369 + <pt x="x2" y="y6"/>
24370 + <pt x="r" y="y5"/>
24376 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24377 + <gd name="adj" fmla="val 45977"/>
24379 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24380 + <gd name="a" fmla="pin 0 adj 56338"/>
24381 + <gd name="dy" fmla="*/ a h 100000"/>
24382 + <gd name="gd1" fmla="*/ dy 3 4"/>
24383 + <gd name="gd2" fmla="*/ dy 5 4"/>
24384 + <gd name="gd3" fmla="*/ dy 3 8"/>
24385 + <gd name="gd4" fmla="*/ dy 1 8"/>
24386 + <gd name="gd5" fmla="+- h 0 gd3"/>
24387 + <gd name="gd6" fmla="+- gd4 h 0"/>
24388 + <gd name="y0" fmla="+- t dy 0"/>
24389 + <gd name="y1" fmla="+- t gd1 0"/>
24390 + <gd name="y2" fmla="+- t gd2 0"/>
24391 + <gd name="y3" fmla="+- t gd3 0"/>
24392 + <gd name="y4" fmla="+- t gd4 0"/>
24393 + <gd name="y5" fmla="+- t gd5 0"/>
24394 + <gd name="y6" fmla="+- t gd6 0"/>
24395 + <gd name="x1" fmla="+- l wd3 0"/>
24396 + <gd name="x2" fmla="+- r 0 wd3"/>
24398 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24399 + <ahXY gdRefY="adj" minY="0" maxY="56338">
24400 + <pos x="l" y="y0"/>
24403 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24406 + <pt x="l" y="y0"/>
24409 + <pt x="x1" y="y2"/>
24410 + <pt x="x2" y="y1"/>
24411 + <pt x="r" y="t"/>
24416 + <pt x="l" y="y5"/>
24419 + <pt x="x1" y="y6"/>
24420 + <pt x="x2" y="y6"/>
24421 + <pt x="r" y="y5"/>
24427 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24428 + <gd name="adj" fmla="val 18750"/>
24430 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24431 + <gd name="a" fmla="pin 0 adj 37500"/>
24432 + <gd name="dy" fmla="*/ a ss 100000"/>
24433 + <gd name="gd0" fmla="*/ dy 4 3"/>
24434 + <gd name="gd1" fmla="+- h 0 gd0"/>
24435 + <gd name="adjY" fmla="+- t dy 0"/>
24436 + <gd name="y0" fmla="+- t gd0 0"/>
24437 + <gd name="y1" fmla="+- t gd1 0"/>
24438 + <gd name="x0" fmla="+- l wd3 0"/>
24439 + <gd name="x1" fmla="+- r 0 wd3"/>
24441 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24442 + <ahXY gdRefY="adj" minY="0" maxY="37500">
24443 + <pos x="hc" y="adjY"/>
24446 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24449 + <pt x="l" y="t"/>
24452 + <pt x="x0" y="y0"/>
24453 + <pt x="x1" y="y0"/>
24454 + <pt x="r" y="t"/>
24459 + <pt x="l" y="b"/>
24462 + <pt x="x0" y="y1"/>
24463 + <pt x="x1" y="y1"/>
24464 + <pt x="r" y="b"/>
24469 + <textDeflateBottom>
24470 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24471 + <gd name="adj" fmla="val 50000"/>
24473 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24474 + <gd name="a" fmla="pin 6250 adj 100000"/>
24475 + <gd name="dy" fmla="*/ a ss 100000"/>
24476 + <gd name="dy2" fmla="+- h 0 dy"/>
24477 + <gd name="y1" fmla="+- t dy 0"/>
24478 + <gd name="cp" fmla="+- y1 0 dy2"/>
24480 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24481 + <ahXY gdRefY="adj" minY="6250" maxY="100000">
24482 + <pos x="hc" y="y1"/>
24485 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24488 + <pt x="l" y="t"/>
24491 + <pt x="r" y="t"/>
24496 + <pt x="l" y="b"/>
24499 + <pt x="hc" y="cp"/>
24500 + <pt x="r" y="b"/>
24504 + </textDeflateBottom>
24505 + <textDeflateInflate>
24506 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24507 + <gd name="adj" fmla="val 35000"/>
24509 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24510 + <gd name="a" fmla="pin 5000 adj 95000"/>
24511 + <gd name="dy" fmla="*/ a h 100000"/>
24512 + <gd name="del" fmla="*/ h 5 100"/>
24513 + <gd name="dh1" fmla="*/ h 45 100"/>
24514 + <gd name="dh2" fmla="*/ h 55 100"/>
24515 + <gd name="yh" fmla="+- dy 0 del"/>
24516 + <gd name="yl" fmla="+- dy del 0"/>
24517 + <gd name="y3" fmla="+- yh yh dh1"/>
24518 + <gd name="y4" fmla="+- yl yl dh2"/>
24520 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24521 + <ahXY gdRefY="adj" minY="5000" maxY="95000">
24522 + <pos x="hc" y="dy"/>
24525 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24528 + <pt x="l" y="t"/>
24531 + <pt x="r" y="t"/>
24536 + <pt x="l" y="dh1"/>
24539 + <pt x="hc" y="y3"/>
24540 + <pt x="r" y="dh1"/>
24545 + <pt x="l" y="dh2"/>
24548 + <pt x="hc" y="y4"/>
24549 + <pt x="r" y="dh2"/>
24554 + <pt x="l" y="b"/>
24557 + <pt x="r" y="b"/>
24561 + </textDeflateInflate>
24562 + <textDeflateInflateDeflate>
24563 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24564 + <gd name="adj" fmla="val 25000"/>
24566 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24567 + <gd name="a" fmla="pin 3000 adj 47000"/>
24568 + <gd name="dy" fmla="*/ a h 100000"/>
24569 + <gd name="del" fmla="*/ h 3 100"/>
24570 + <gd name="ey1" fmla="*/ h 30 100"/>
24571 + <gd name="ey2" fmla="*/ h 36 100"/>
24572 + <gd name="ey3" fmla="*/ h 63 100"/>
24573 + <gd name="ey4" fmla="*/ h 70 100"/>
24574 + <gd name="by" fmla="+- b 0 dy"/>
24575 + <gd name="yh1" fmla="+- dy 0 del"/>
24576 + <gd name="yl1" fmla="+- dy del 0"/>
24577 + <gd name="yh2" fmla="+- by 0 del"/>
24578 + <gd name="yl2" fmla="+- by del 0"/>
24579 + <gd name="y1" fmla="+- yh1 yh1 ey1"/>
24580 + <gd name="y2" fmla="+- yl1 yl1 ey2"/>
24581 + <gd name="y3" fmla="+- yh2 yh2 ey3"/>
24582 + <gd name="y4" fmla="+- yl2 yl2 ey4"/>
24584 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24585 + <ahXY gdRefY="adj" minY="3000" maxY="47000">
24586 + <pos x="hc" y="dy"/>
24589 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24592 + <pt x="l" y="t"/>
24595 + <pt x="r" y="t"/>
24600 + <pt x="l" y="ey1"/>
24603 + <pt x="hc" y="y1"/>
24604 + <pt x="r" y="ey1"/>
24609 + <pt x="l" y="ey2"/>
24612 + <pt x="hc" y="y2"/>
24613 + <pt x="r" y="ey2"/>
24618 + <pt x="l" y="ey3"/>
24621 + <pt x="hc" y="y3"/>
24622 + <pt x="r" y="ey3"/>
24627 + <pt x="l" y="ey4"/>
24630 + <pt x="hc" y="y4"/>
24631 + <pt x="r" y="ey4"/>
24636 + <pt x="l" y="b"/>
24639 + <pt x="r" y="b"/>
24643 + </textDeflateInflateDeflate>
24645 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24646 + <gd name="adj" fmla="val 50000"/>
24648 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24649 + <gd name="a" fmla="pin 0 adj 93750"/>
24650 + <gd name="dy" fmla="*/ a h 100000"/>
24651 + <gd name="y1" fmla="+- t dy 0"/>
24652 + <gd name="cp" fmla="+- y1 dy 0"/>
24654 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24655 + <ahXY gdRefY="adj" minY="0" maxY="93750">
24656 + <pos x="hc" y="y1"/>
24659 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24662 + <pt x="l" y="t"/>
24665 + <pt x="hc" y="cp"/>
24666 + <pt x="r" y="t"/>
24671 + <pt x="l" y="b"/>
24674 + <pt x="r" y="b"/>
24678 + </textDeflateTop>
24679 + <textDoubleWave1>
24680 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24681 + <gd name="adj1" fmla="val 6250"/>
24682 + <gd name="adj2" fmla="val 0"/>
24684 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24685 + <gd name="a1" fmla="pin 0 adj1 12500"/>
24686 + <gd name="a2" fmla="pin -10000 adj2 10000"/>
24687 + <gd name="y1" fmla="*/ h a1 100000"/>
24688 + <gd name="dy2" fmla="*/ y1 10 3"/>
24689 + <gd name="y2" fmla="+- y1 0 dy2"/>
24690 + <gd name="y3" fmla="+- y1 dy2 0"/>
24691 + <gd name="y4" fmla="+- b 0 y1"/>
24692 + <gd name="y5" fmla="+- y4 0 dy2"/>
24693 + <gd name="y6" fmla="+- y4 dy2 0"/>
24694 + <gd name="of" fmla="*/ w a2 100000"/>
24695 + <gd name="of2" fmla="*/ w a2 50000"/>
24696 + <gd name="x1" fmla="abs of"/>
24697 + <gd name="dx2" fmla="?: of2 0 of2"/>
24698 + <gd name="x2" fmla="+- l 0 dx2"/>
24699 + <gd name="dx8" fmla="?: of2 of2 0"/>
24700 + <gd name="x8" fmla="+- r 0 dx8"/>
24701 + <gd name="dx3" fmla="+/ dx2 x8 6"/>
24702 + <gd name="x3" fmla="+- x2 dx3 0"/>
24703 + <gd name="dx4" fmla="+/ dx2 x8 3"/>
24704 + <gd name="x4" fmla="+- x2 dx4 0"/>
24705 + <gd name="x5" fmla="+/ x2 x8 2"/>
24706 + <gd name="x6" fmla="+- x5 dx3 0"/>
24707 + <gd name="x7" fmla="+/ x6 x8 2"/>
24708 + <gd name="x9" fmla="+- l dx8 0"/>
24709 + <gd name="x15" fmla="+- r dx2 0"/>
24710 + <gd name="x10" fmla="+- x9 dx3 0"/>
24711 + <gd name="x11" fmla="+- x9 dx4 0"/>
24712 + <gd name="x12" fmla="+/ x9 x15 2"/>
24713 + <gd name="x13" fmla="+- x12 dx3 0"/>
24714 + <gd name="x14" fmla="+/ x13 x15 2"/>
24715 + <gd name="x16" fmla="+- r 0 x1"/>
24716 + <gd name="xAdj" fmla="+- hc of 0"/>
24718 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24719 + <ahXY gdRefY="adj1" minY="0" maxY="12500">
24720 + <pos x="l" y="y1"/>
24722 + <ahXY gdRefX="adj2" minX="-10000" maxX="10000">
24723 + <pos x="xAdj" y="b"/>
24726 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24729 + <pt x="x2" y="y1"/>
24732 + <pt x="x3" y="y2"/>
24733 + <pt x="x4" y="y3"/>
24734 + <pt x="x5" y="y1"/>
24737 + <pt x="x6" y="y2"/>
24738 + <pt x="x7" y="y3"/>
24739 + <pt x="x8" y="y1"/>
24744 + <pt x="x9" y="y4"/>
24747 + <pt x="x10" y="y5"/>
24748 + <pt x="x11" y="y6"/>
24749 + <pt x="x12" y="y4"/>
24752 + <pt x="x13" y="y5"/>
24753 + <pt x="x14" y="y6"/>
24754 + <pt x="x15" y="y4"/>
24758 + </textDoubleWave1>
24760 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24761 + <gd name="adj" fmla="val 33333"/>
24763 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24764 + <gd name="a" fmla="pin 0 adj 49999"/>
24765 + <gd name="dx" fmla="*/ a w 100000"/>
24766 + <gd name="x1" fmla="+- l dx 0"/>
24767 + <gd name="x2" fmla="+- r 0 dx"/>
24769 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24770 + <ahXY gdRefX="adj" minX="0" maxX="49999">
24771 + <pos x="x1" y="b"/>
24774 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24777 + <pt x="l" y="t"/>
24780 + <pt x="r" y="t"/>
24785 + <pt x="x1" y="b"/>
24788 + <pt x="x2" y="b"/>
24794 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24795 + <gd name="adj" fmla="val 33333"/>
24797 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24798 + <gd name="a" fmla="pin 0 adj 49999"/>
24799 + <gd name="dy" fmla="*/ a h 100000"/>
24800 + <gd name="y1" fmla="+- t dy 0"/>
24801 + <gd name="y2" fmla="+- b 0 dy"/>
24803 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24804 + <ahXY gdRefY="adj" minY="0" maxY="49999">
24805 + <pos x="l" y="y1"/>
24808 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24811 + <pt x="l" y="y1"/>
24814 + <pt x="r" y="t"/>
24819 + <pt x="l" y="y2"/>
24822 + <pt x="r" y="b"/>
24828 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24829 + <gd name="adj" fmla="val 33333"/>
24831 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24832 + <gd name="a" fmla="pin 0 adj 49999"/>
24833 + <gd name="dy" fmla="*/ a h 100000"/>
24834 + <gd name="y1" fmla="+- t dy 0"/>
24835 + <gd name="y2" fmla="+- b 0 dy"/>
24837 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24838 + <ahXY gdRefY="adj" minY="0" maxY="49999">
24839 + <pos x="r" y="y1"/>
24842 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24845 + <pt x="l" y="t"/>
24848 + <pt x="r" y="y1"/>
24853 + <pt x="l" y="b"/>
24856 + <pt x="r" y="y2"/>
24862 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24863 + <gd name="adj" fmla="val 33333"/>
24865 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24866 + <gd name="a" fmla="pin 0 adj 49999"/>
24867 + <gd name="dx" fmla="*/ a w 100000"/>
24868 + <gd name="x1" fmla="+- l dx 0"/>
24869 + <gd name="x2" fmla="+- r 0 dx"/>
24871 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24872 + <ahXY gdRefX="adj" minX="0" maxX="49999">
24873 + <pos x="x1" y="t"/>
24876 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24879 + <pt x="x1" y="t"/>
24882 + <pt x="x2" y="t"/>
24887 + <pt x="l" y="b"/>
24890 + <pt x="r" y="b"/>
24896 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24897 + <gd name="adj" fmla="val 18750"/>
24899 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24900 + <gd name="a" fmla="pin 0 adj 20000"/>
24901 + <gd name="dy" fmla="*/ a h 100000"/>
24902 + <gd name="gd" fmla="*/ dy 1 3"/>
24903 + <gd name="gd0" fmla="+- 0 0 gd"/>
24904 + <gd name="gd1" fmla="+- h 0 gd0"/>
24905 + <gd name="ty" fmla="+- t dy 0"/>
24906 + <gd name="by" fmla="+- b 0 dy"/>
24907 + <gd name="y0" fmla="+- t gd0 0"/>
24908 + <gd name="y1" fmla="+- t gd1 0"/>
24909 + <gd name="x0" fmla="+- l wd3 0"/>
24910 + <gd name="x1" fmla="+- r 0 wd3"/>
24912 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24913 + <ahXY gdRefY="adj" minY="0" maxY="20000">
24914 + <pos x="l" y="ty"/>
24917 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24920 + <pt x="l" y="ty"/>
24923 + <pt x="x0" y="y0"/>
24924 + <pt x="x1" y="y0"/>
24925 + <pt x="r" y="ty"/>
24930 + <pt x="l" y="by"/>
24933 + <pt x="x0" y="y1"/>
24934 + <pt x="x1" y="y1"/>
24935 + <pt x="r" y="by"/>
24940 + <textInflateBottom>
24941 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24942 + <gd name="adj" fmla="val 60000"/>
24944 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24945 + <gd name="a" fmla="pin 60000 adj 100000"/>
24946 + <gd name="dy" fmla="*/ a h 100000"/>
24947 + <gd name="ty" fmla="+- t dy 0"/>
24949 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24950 + <ahXY gdRefY="adj" minY="60000" maxY="100000">
24951 + <pos x="l" y="ty"/>
24954 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24957 + <pt x="l" y="t"/>
24960 + <pt x="r" y="t"/>
24965 + <pt x="l" y="ty"/>
24968 + <pt x="hc" y="b"/>
24969 + <pt x="r" y="ty"/>
24973 + </textInflateBottom>
24975 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24976 + <gd name="adj" fmla="val 40000"/>
24978 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24979 + <gd name="a" fmla="pin 0 adj 50000"/>
24980 + <gd name="dy" fmla="*/ a h 100000"/>
24981 + <gd name="ty" fmla="+- t dy 0"/>
24983 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24984 + <ahXY gdRefY="adj" minY="0" maxY="50000">
24985 + <pos x="l" y="ty"/>
24988 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
24991 + <pt x="l" y="ty"/>
24994 + <pt x="hc" y="t"/>
24995 + <pt x="r" y="ty"/>
25000 + <pt x="l" y="b"/>
25003 + <pt x="r" y="b"/>
25007 + </textInflateTop>
25009 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25010 + <gd name="adj" fmla="val 50000"/>
25012 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25013 + <gd name="a" fmla="pin 30000 adj 70000"/>
25014 + <gd name="mid" fmla="*/ a w 100000"/>
25015 + <gd name="midDir" fmla="+- mid 0 hc"/>
25016 + <gd name="dl" fmla="+- mid 0 l"/>
25017 + <gd name="dr" fmla="+- r 0 mid"/>
25018 + <gd name="dl2" fmla="*/ dl 2 1"/>
25019 + <gd name="dr2" fmla="*/ dr 2 1"/>
25020 + <gd name="dx" fmla="?: midDir dr2 dl2"/>
25021 + <gd name="xr" fmla="+- l dx 0"/>
25022 + <gd name="xl" fmla="+- r 0 dx"/>
25023 + <gd name="tlx" fmla="?: midDir l xl"/>
25024 + <gd name="trx" fmla="?: midDir xr r"/>
25025 + <gd name="blx" fmla="?: midDir xl l"/>
25026 + <gd name="brx" fmla="?: midDir r xr"/>
25028 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25029 + <ahXY gdRefX="adj" minX="30000" maxX="70000">
25030 + <pos x="mid" y="b"/>
25033 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25036 + <pt x="tlx" y="t"/>
25039 + <pt x="trx" y="t"/>
25044 + <pt x="blx" y="b"/>
25047 + <pt x="brx" y="b"/>
25053 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25054 + <gd name="adj" fmla="val 60000"/>
25056 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25057 + <gd name="a" fmla="pin 50000 adj 99000"/>
25058 + <gd name="dy" fmla="*/ a h 100000"/>
25059 + <gd name="y" fmla="+- t dy 0"/>
25060 + <gd name="r" fmla="*/ dy 1 2"/>
25061 + <gd name="y1" fmla="+- t r 0"/>
25062 + <gd name="y2" fmla="+- b 0 r"/>
25064 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25065 + <ahXY gdRefY="adj" minY="50000" maxY="99000">
25066 + <pos x="hc" y="y"/>
25069 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25072 + <pt x="l" y="y1"/>
25074 + <arcTo wR="wd2" hR="r" stAng="10800000" swAng="21599999"/>
25078 + <pt x="l" y="y2"/>
25080 + <arcTo wR="wd2" hR="r" stAng="10800000" swAng="21599999"/>
25083 + </textRingInside>
25084 + <textRingOutside>
25085 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25086 + <gd name="adj" fmla="val 60000"/>
25088 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25089 + <gd name="a" fmla="pin 50000 adj 99000"/>
25090 + <gd name="dy" fmla="*/ a h 100000"/>
25091 + <gd name="y" fmla="+- t dy 0"/>
25092 + <gd name="r" fmla="*/ dy 1 2"/>
25093 + <gd name="y1" fmla="+- t r 0"/>
25094 + <gd name="y2" fmla="+- b 0 r"/>
25096 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25097 + <ahXY gdRefY="adj" minY="50000" maxY="99000">
25098 + <pos x="hc" y="y"/>
25101 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25104 + <pt x="l" y="y1"/>
25106 + <arcTo wR="wd2" hR="r" stAng="10800000" swAng="-21599999"/>
25110 + <pt x="l" y="y2"/>
25112 + <arcTo wR="wd2" hR="r" stAng="10800000" swAng="-21599999"/>
25115 + </textRingOutside>
25117 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25118 + <gd name="adj" fmla="val 44445"/>
25120 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25121 + <gd name="a" fmla="pin 28569 adj 100000"/>
25122 + <gd name="dy" fmla="*/ a h 100000"/>
25123 + <gd name="y1" fmla="+- t dy 0"/>
25124 + <gd name="y2" fmla="+- b 0 dy"/>
25126 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25127 + <ahXY gdRefY="adj" minY="28569" maxY="100000">
25128 + <pos x="l" y="y1"/>
25131 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25134 + <pt x="l" y="t"/>
25137 + <pt x="r" y="y2"/>
25142 + <pt x="l" y="y1"/>
25145 + <pt x="r" y="b"/>
25151 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25152 + <gd name="adj" fmla="val 55555"/>
25154 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25155 + <gd name="a" fmla="pin 0 adj 71431"/>
25156 + <gd name="dy" fmla="*/ a h 100000"/>
25157 + <gd name="y1" fmla="+- t dy 0"/>
25158 + <gd name="y2" fmla="+- b 0 dy"/>
25160 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25161 + <ahXY gdRefY="adj" minY="0" maxY="71431">
25162 + <pos x="l" y="y1"/>
25165 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25168 + <pt x="l" y="y1"/>
25171 + <pt x="r" y="t"/>
25176 + <pt x="l" y="b"/>
25179 + <pt x="r" y="y2"/>
25185 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25186 + <gd name="adj" fmla="val 25000"/>
25188 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25189 + <gd name="a" fmla="pin 14286 adj 50000"/>
25190 + <gd name="dx" fmla="*/ w 1 3"/>
25191 + <gd name="dy" fmla="*/ a h 100000"/>
25192 + <gd name="x1" fmla="+- l dx 0"/>
25193 + <gd name="x2" fmla="+- r 0 dx"/>
25194 + <gd name="y1" fmla="+- t dy 0"/>
25195 + <gd name="y2" fmla="+- b 0 dy"/>
25197 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25198 + <ahXY gdRefY="adj" minY="14286" maxY="50000">
25199 + <pos x="l" y="dy"/>
25202 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25205 + <pt x="l" y="y1"/>
25208 + <pt x="x1" y="t"/>
25211 + <pt x="x2" y="t"/>
25214 + <pt x="r" y="y1"/>
25219 + <pt x="l" y="y2"/>
25222 + <pt x="x1" y="b"/>
25225 + <pt x="x2" y="b"/>
25228 + <pt x="r" y="y2"/>
25234 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25235 + <gd name="adj" fmla="val 50000"/>
25237 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25238 + <gd name="a" fmla="pin 0 adj 100000"/>
25239 + <gd name="y" fmla="*/ a h 100000"/>
25241 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25242 + <ahXY gdRefY="adj" minY="0" maxY="100000">
25243 + <pos x="l" y="y"/>
25246 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25249 + <pt x="l" y="y"/>
25252 + <pt x="hc" y="t"/>
25255 + <pt x="r" y="y"/>
25260 + <pt x="l" y="b"/>
25263 + <pt x="r" y="b"/>
25268 + <textTriangleInverted>
25269 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25270 + <gd name="adj" fmla="val 50000"/>
25272 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25273 + <gd name="a" fmla="pin 0 adj 100000"/>
25274 + <gd name="y" fmla="*/ a h 100000"/>
25276 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25277 + <ahXY gdRefY="adj" minY="0" maxY="100000">
25278 + <pos x="l" y="y"/>
25281 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25284 + <pt x="l" y="t"/>
25287 + <pt x="r" y="t"/>
25292 + <pt x="l" y="y"/>
25295 + <pt x="hc" y="b"/>
25298 + <pt x="r" y="y"/>
25302 + </textTriangleInverted>
25304 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25305 + <gd name="adj1" fmla="val 12500"/>
25306 + <gd name="adj2" fmla="val 0"/>
25308 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25309 + <gd name="a1" fmla="pin 0 adj1 20000"/>
25310 + <gd name="a2" fmla="pin -10000 adj2 10000"/>
25311 + <gd name="y1" fmla="*/ h a1 100000"/>
25312 + <gd name="dy2" fmla="*/ y1 10 3"/>
25313 + <gd name="y2" fmla="+- y1 0 dy2"/>
25314 + <gd name="y3" fmla="+- y1 dy2 0"/>
25315 + <gd name="y4" fmla="+- b 0 y1"/>
25316 + <gd name="y5" fmla="+- y4 0 dy2"/>
25317 + <gd name="y6" fmla="+- y4 dy2 0"/>
25318 + <gd name="of" fmla="*/ w a2 100000"/>
25319 + <gd name="of2" fmla="*/ w a2 50000"/>
25320 + <gd name="x1" fmla="abs of"/>
25321 + <gd name="dx2" fmla="?: of2 0 of2"/>
25322 + <gd name="x2" fmla="+- l 0 dx2"/>
25323 + <gd name="dx5" fmla="?: of2 of2 0"/>
25324 + <gd name="x5" fmla="+- r 0 dx5"/>
25325 + <gd name="dx3" fmla="+/ dx2 x5 3"/>
25326 + <gd name="x3" fmla="+- x2 dx3 0"/>
25327 + <gd name="x4" fmla="+/ x3 x5 2"/>
25328 + <gd name="x6" fmla="+- l dx5 0"/>
25329 + <gd name="x10" fmla="+- r dx2 0"/>
25330 + <gd name="x7" fmla="+- x6 dx3 0"/>
25331 + <gd name="x8" fmla="+/ x7 x10 2"/>
25332 + <gd name="x9" fmla="+- r 0 x1"/>
25333 + <gd name="xAdj" fmla="+- hc of 0"/>
25335 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25336 + <ahXY gdRefY="adj1" minY="0" maxY="20000">
25337 + <pos x="l" y="y1"/>
25339 + <ahXY gdRefX="adj2" minX="-10000" maxX="10000">
25340 + <pos x="xAdj" y="b"/>
25343 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25346 + <pt x="x2" y="y1"/>
25349 + <pt x="x3" y="y2"/>
25350 + <pt x="x4" y="y3"/>
25351 + <pt x="x5" y="y1"/>
25356 + <pt x="x6" y="y4"/>
25359 + <pt x="x7" y="y5"/>
25360 + <pt x="x8" y="y6"/>
25361 + <pt x="x10" y="y4"/>
25367 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25368 + <gd name="adj1" fmla="val 12500"/>
25369 + <gd name="adj2" fmla="val 0"/>
25371 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25372 + <gd name="a1" fmla="pin 0 adj1 20000"/>
25373 + <gd name="a2" fmla="pin -10000 adj2 10000"/>
25374 + <gd name="y1" fmla="*/ h a1 100000"/>
25375 + <gd name="dy2" fmla="*/ y1 10 3"/>
25376 + <gd name="y2" fmla="+- y1 0 dy2"/>
25377 + <gd name="y3" fmla="+- y1 dy2 0"/>
25378 + <gd name="y4" fmla="+- b 0 y1"/>
25379 + <gd name="y5" fmla="+- y4 0 dy2"/>
25380 + <gd name="y6" fmla="+- y4 dy2 0"/>
25381 + <gd name="of" fmla="*/ w a2 100000"/>
25382 + <gd name="of2" fmla="*/ w a2 50000"/>
25383 + <gd name="x1" fmla="abs of"/>
25384 + <gd name="dx2" fmla="?: of2 0 of2"/>
25385 + <gd name="x2" fmla="+- l 0 dx2"/>
25386 + <gd name="dx5" fmla="?: of2 of2 0"/>
25387 + <gd name="x5" fmla="+- r 0 dx5"/>
25388 + <gd name="dx3" fmla="+/ dx2 x5 3"/>
25389 + <gd name="x3" fmla="+- x2 dx3 0"/>
25390 + <gd name="x4" fmla="+/ x3 x5 2"/>
25391 + <gd name="x6" fmla="+- l dx5 0"/>
25392 + <gd name="x10" fmla="+- r dx2 0"/>
25393 + <gd name="x7" fmla="+- x6 dx3 0"/>
25394 + <gd name="x8" fmla="+/ x7 x10 2"/>
25395 + <gd name="x9" fmla="+- r 0 x1"/>
25396 + <gd name="xAdj" fmla="+- hc of 0"/>
25398 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25399 + <ahXY gdRefY="adj1" minY="0" maxY="20000">
25400 + <pos x="l" y="y1"/>
25402 + <ahXY gdRefX="adj2" minX="-10000" maxX="10000">
25403 + <pos x="xAdj" y="b"/>
25406 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25409 + <pt x="x2" y="y1"/>
25412 + <pt x="x3" y="y3"/>
25413 + <pt x="x4" y="y2"/>
25414 + <pt x="x5" y="y1"/>
25419 + <pt x="x6" y="y4"/>
25422 + <pt x="x7" y="y6"/>
25423 + <pt x="x8" y="y5"/>
25424 + <pt x="x10" y="y4"/>
25430 + <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25431 + <gd name="adj1" fmla="val 6250"/>
25432 + <gd name="adj2" fmla="val 0"/>
25434 + <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25435 + <gd name="a1" fmla="pin 0 adj1 12500"/>
25436 + <gd name="a2" fmla="pin -10000 adj2 10000"/>
25437 + <gd name="y1" fmla="*/ h a1 100000"/>
25438 + <gd name="dy2" fmla="*/ y1 10 3"/>
25439 + <gd name="y2" fmla="+- y1 0 dy2"/>
25440 + <gd name="y3" fmla="+- y1 dy2 0"/>
25441 + <gd name="y4" fmla="+- b 0 y1"/>
25442 + <gd name="y5" fmla="+- y4 0 dy2"/>
25443 + <gd name="y6" fmla="+- y4 dy2 0"/>
25444 + <gd name="of" fmla="*/ w a2 100000"/>
25445 + <gd name="of2" fmla="*/ w a2 50000"/>
25446 + <gd name="x1" fmla="abs of"/>
25447 + <gd name="dx2" fmla="?: of2 0 of2"/>
25448 + <gd name="x2" fmla="+- l 0 dx2"/>
25449 + <gd name="dx8" fmla="?: of2 of2 0"/>
25450 + <gd name="x8" fmla="+- r 0 dx8"/>
25451 + <gd name="dx3" fmla="+/ dx2 x8 6"/>
25452 + <gd name="x3" fmla="+- x2 dx3 0"/>
25453 + <gd name="dx4" fmla="+/ dx2 x8 3"/>
25454 + <gd name="x4" fmla="+- x2 dx4 0"/>
25455 + <gd name="x5" fmla="+/ x2 x8 2"/>
25456 + <gd name="x6" fmla="+- x5 dx3 0"/>
25457 + <gd name="x7" fmla="+/ x6 x8 2"/>
25458 + <gd name="x9" fmla="+- l dx8 0"/>
25459 + <gd name="x15" fmla="+- r dx2 0"/>
25460 + <gd name="x10" fmla="+- x9 dx3 0"/>
25461 + <gd name="x11" fmla="+- x9 dx4 0"/>
25462 + <gd name="x12" fmla="+/ x9 x15 2"/>
25463 + <gd name="x13" fmla="+- x12 dx3 0"/>
25464 + <gd name="x14" fmla="+/ x13 x15 2"/>
25465 + <gd name="x16" fmla="+- r 0 x1"/>
25466 + <gd name="xAdj" fmla="+- hc of 0"/>
25468 + <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25469 + <ahXY gdRefY="adj1" minY="0" maxY="12500">
25470 + <pos x="l" y="y1"/>
25472 + <ahXY gdRefX="adj2" minX="-10000" maxX="10000">
25473 + <pos x="xAdj" y="b"/>
25476 + <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
25479 + <pt x="x2" y="y1"/>
25482 + <pt x="x3" y="y3"/>
25483 + <pt x="x4" y="y2"/>
25484 + <pt x="x5" y="y1"/>
25487 + <pt x="x6" y="y3"/>
25488 + <pt x="x7" y="y2"/>
25489 + <pt x="x8" y="y1"/>
25494 + <pt x="x9" y="y4"/>
25497 + <pt x="x10" y="y6"/>
25498 + <pt x="x11" y="y5"/>
25499 + <pt x="x12" y="y4"/>
25502 + <pt x="x13" y="y6"/>
25503 + <pt x="x14" y="y5"/>
25504 + <pt x="x15" y="y4"/>
25509 +</presetTextWarpDefinitions>
25510 diff --git oox/source/export/shapes.cxx oox/source/export/shapes.cxx
25511 new file mode 100644
25512 index 0000000..7ce05d8
25514 +++ oox/source/export/shapes.cxx
25516 +/*************************************************************************
25518 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
25520 + * Copyright 2008 by Sun Microsystems, Inc.
25522 + * OpenOffice.org - a multi-platform office productivity suite
25527 + * This file is part of OpenOffice.org.
25529 + * OpenOffice.org is free software: you can redistribute it and/or modify
25530 + * it under the terms of the GNU Lesser General Public License version 3
25531 + * only, as published by the Free Software Foundation.
25533 + * OpenOffice.org is distributed in the hope that it will be useful,
25534 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
25535 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25536 + * GNU Lesser General Public License version 3 for more details
25537 + * (a copy is included in the LICENSE file that accompanied this code).
25539 + * You should have received a copy of the GNU Lesser General Public License
25540 + * version 3 along with OpenOffice.org. If not, see
25541 + * <http://www.openoffice.org/license.html>
25542 + * for a copy of the LGPLv3 License.
25544 + ************************************************************************/
25546 +#include "tokens.hxx"
25547 +#include "oox/core/xmlfilterbase.hxx"
25548 +#include "oox/export/shapes.hxx"
25549 +#include "oox/export/utils.hxx"
25552 +#include <com/sun/star/awt/CharSet.hpp>
25553 +#include <com/sun/star/awt/FontDescriptor.hpp>
25554 +#include <com/sun/star/awt/FontSlant.hpp>
25555 +#include <com/sun/star/awt/FontWeight.hpp>
25556 +#include <com/sun/star/awt/FontUnderline.hpp>
25557 +#include <com/sun/star/awt/Gradient.hpp>
25558 +#include <com/sun/star/beans/XPropertySet.hpp>
25559 +#include <com/sun/star/beans/XPropertyState.hpp>
25560 +#include <com/sun/star/container/XEnumerationAccess.hpp>
25561 +#include <com/sun/star/drawing/FillStyle.hpp>
25562 +#include <com/sun/star/drawing/BitmapMode.hpp>
25563 +#include <com/sun/star/drawing/ConnectorType.hpp>
25564 +#include <com/sun/star/drawing/LineDash.hpp>
25565 +#include <com/sun/star/drawing/LineJoint.hpp>
25566 +#include <com/sun/star/drawing/LineStyle.hpp>
25567 +#include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
25568 +#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
25569 +#include <com/sun/star/i18n/ScriptType.hpp>
25570 +#include <com/sun/star/io/XOutputStream.hpp>
25571 +#include <com/sun/star/style/ParagraphAdjust.hpp>
25572 +#include <com/sun/star/text/XSimpleText.hpp>
25573 +#include <com/sun/star/text/XText.hpp>
25574 +#include <com/sun/star/text/XTextContent.hpp>
25575 +#include <com/sun/star/text/XTextField.hpp>
25576 +#include <com/sun/star/text/XTextRange.hpp>
25577 +#include <tools/stream.hxx>
25578 +#include <tools/string.hxx>
25579 +#include <vcl/cvtgrf.hxx>
25580 +#include <vcl/fontcvt.hxx>
25581 +#include <vcl/graph.hxx>
25582 +#include <vcl/outdev.hxx>
25583 +#include <goodies/grfmgr.hxx>
25584 +#include <rtl/strbuf.hxx>
25585 +#include <sfx2/app.hxx>
25586 +#include <svtools/languageoptions.hxx>
25587 +#include <svx/escherex.hxx>
25588 +#include <svx/svdoashp.hxx>
25589 +#include <svx/svxenum.hxx>
25590 +#include <svx/unoapi.hxx>
25592 +using namespace ::com::sun::star;
25593 +using namespace ::com::sun::star::uno;
25594 +using namespace ::com::sun::star::drawing;
25595 +using namespace ::com::sun::star::i18n;
25596 +using ::com::sun::star::beans::PropertyState;
25597 +using ::com::sun::star::beans::PropertyValue;
25598 +using ::com::sun::star::beans::XPropertySet;
25599 +using ::com::sun::star::beans::XPropertyState;
25600 +using ::com::sun::star::container::XEnumeration;
25601 +using ::com::sun::star::container::XEnumerationAccess;
25602 +using ::com::sun::star::container::XIndexAccess;
25603 +using ::com::sun::star::drawing::FillStyle;
25604 +using ::com::sun::star::io::XOutputStream;
25605 +using ::com::sun::star::text::XSimpleText;
25606 +using ::com::sun::star::text::XText;
25607 +using ::com::sun::star::text::XTextContent;
25608 +using ::com::sun::star::text::XTextField;
25609 +using ::com::sun::star::text::XTextRange;
25610 +using ::rtl::OString;
25611 +using ::rtl::OStringBuffer;
25612 +using ::rtl::OUString;
25613 +using ::rtl::OUStringBuffer;
25614 +using ::sax_fastparser::FSHelperPtr;
25616 +DBG(extern void dump_pset(Reference< XPropertySet > rXPropSet));
25618 +#define IDS(x) (OString(#x " ") + OString::valueOf( mnShapeIdMax++ )).getStr()
25620 +struct CustomShapeTypeTranslationTable
25622 + const char* sOOo;
25623 + const char* sMSO;
25626 +static const CustomShapeTypeTranslationTable pCustomShapeTypeTranslationTable[] =
25628 + // { "non-primitive", mso_sptMin },
25629 + { "rectangle", "rect" },
25630 + { "round-rectangle", "roundRect" },
25631 + { "ellipse", "ellipse" },
25632 + { "diamond", "diamond" },
25633 + { "isosceles-triangle", "triangle" },
25634 + { "right-triangle", "rtTriangle" },
25635 + { "parallelogram", "parallelogram" },
25636 + { "trapezoid", "trapezoid" },
25637 + { "hexagon", "hexagon" },
25638 + { "octagon", "octagon" },
25639 + { "cross", "plus" },
25640 + { "star5", "star5" },
25641 + { "right-arrow", "rightArrow" },
25642 + // { "mso-spt14", mso_sptThickArrow },
25643 + { "pentagon-right", "homePlate" },
25644 + { "cube", "cube" },
25645 + // { "mso-spt17", mso_sptBalloon },
25646 + // { "mso-spt18", mso_sptSeal },
25647 + { "mso-spt19", "arc" },
25648 + { "mso-spt20", "line" },
25649 + { "mso-spt21", "plaque" },
25650 + { "can", "can" },
25651 + { "ring", "donut" },
25652 + { "mso-spt24", "textSimple" },
25653 + { "mso-spt25", "textOctagon" },
25654 + { "mso-spt26", "textHexagon" },
25655 + { "mso-spt27", "textCurve" },
25656 + { "mso-spt28", "textWave" },
25657 + { "mso-spt29", "textRing" },
25658 + { "mso-spt30", "textOnCurve" },
25659 + { "mso-spt31", "textOnRing" },
25660 + { "mso-spt32", "straightConnector1" },
25661 + { "mso-spt33", "bentConnector2" },
25662 + { "mso-spt34", "bentConnector3" },
25663 + { "mso-spt35", "bentConnector4" },
25664 + { "mso-spt36", "bentConnector5" },
25665 + { "mso-spt37", "curvedConnector2" },
25666 + { "mso-spt38", "curvedConnector3" },
25667 + { "mso-spt39", "curvedConnector4" },
25668 + { "mso-spt40", "curvedConnector5" },
25669 + { "mso-spt41", "callout1" },
25670 + { "mso-spt42", "callout2" },
25671 + { "mso-spt43", "callout3" },
25672 + { "mso-spt44", "accentCallout1" },
25673 + { "mso-spt45", "accentCallout2" },
25674 + { "mso-spt46", "accentCallout3" },
25675 + { "line-callout-1", "borderCallout1" },
25676 + { "line-callout-2", "borderCallout2" },
25677 + { "line-callout-3", "borderCallout3" },
25678 + { "mso-spt49", "accentBorderCallout90" },
25679 + { "mso-spt50", "accentBorderCallout1" },
25680 + { "mso-spt51", "accentBorderCallout2" },
25681 + { "mso-spt52", "accentBorderCallout3" },
25682 + { "mso-spt53", "ribbon" },
25683 + { "mso-spt54", "ribbon2" },
25684 + { "chevron", "chevron" },
25685 + { "pentagon", "pentagon" },
25686 + { "forbidden", "noSmoking" },
25687 + { "star8", "seal8" },
25688 + { "mso-spt59", "seal16" },
25689 + { "mso-spt60", "seal32" },
25690 + { "rectangular-callout", "wedgeRectCallout" },
25691 + { "round-rectangular-callout", "wedgeRoundRectCallout" },
25692 + { "round-callout", "wedgeEllipseCallout" },
25693 + { "mso-spt64", "wave" },
25694 + { "paper", "foldedCorner" },
25695 + { "left-arrow", "leftArrow" },
25696 + { "down-arrow", "downArrow" },
25697 + { "up-arrow", "upArrow" },
25698 + { "left-right-arrow", "leftRightArrow" },
25699 + { "up-down-arrow", "upDownArrow" },
25700 + { "mso-spt71", "irregularSeal1" },
25701 + { "bang", "irregularSeal2" },
25702 + { "lightning", "lightningBolt" },
25703 + { "heart", "heart" },
25704 + { "mso-spt75", "pictureFrame" },
25705 + { "quad-arrow", "quadArrow" },
25706 + { "left-arrow-callout", "leftArrowCallout" },
25707 + { "right-arrow-callout", "rightArrowCallout" },
25708 + { "up-arrow-callout", "upArrowCallout" },
25709 + { "down-arrow-callout", "downArrowCallout" },
25710 + { "left-right-arrow-callout", "leftRightArrowCallout" },
25711 + { "up-down-arrow-callout", "upDownArrowCallout" },
25712 + { "quad-arrow-callout", "quadArrowCallout" },
25713 + { "quad-bevel", "bevel" },
25714 + { "left-bracket", "leftBracket" },
25715 + { "right-bracket", "rightBracket" },
25716 + { "left-brace", "leftBrace" },
25717 + { "right-brace", "rightBrace" },
25718 + { "mso-spt89", "leftUpArrow" },
25719 + { "mso-spt90", "bentUpArrow" },
25720 + { "mso-spt91", "bentArrow" },
25721 + { "star24", "seal24" },
25722 + { "striped-right-arrow", "stripedRightArrow" },
25723 + { "notched-right-arrow", "notchedRightArrow" },
25724 + { "block-arc", "blockArc" },
25725 + { "smiley", "smileyFace" },
25726 + { "vertical-scroll", "verticalScroll" },
25727 + { "horizontal-scroll", "horizontalScroll" },
25728 + { "circular-arrow", "circularArrow" },
25729 + { "mso-spt100", "pie" }, // looks like MSO_SPT is wrong here
25730 + { "mso-spt101", "uturnArrow" },
25731 + { "mso-spt102", "curvedRightArrow" },
25732 + { "mso-spt103", "curvedLeftArrow" },
25733 + { "mso-spt104", "curvedUpArrow" },
25734 + { "mso-spt105", "curvedDownArrow" },
25735 + { "cloud-callout", "cloudCallout" },
25736 + { "mso-spt107", "ellipseRibbon" },
25737 + { "mso-spt108", "ellipseRibbon2" },
25738 + { "flowchart-process", "flowChartProcess" },
25739 + { "flowchart-decision", "flowChartDecision" },
25740 + { "flowchart-data", "flowChartInputOutput" },
25741 + { "flowchart-predefined-process", "flowChartPredefinedProcess" },
25742 + { "flowchart-internal-storage", "flowChartInternalStorage" },
25743 + { "flowchart-document", "flowChartDocument" },
25744 + { "flowchart-multidocument", "flowChartMultidocument" },
25745 + { "flowchart-terminator", "flowChartTerminator" },
25746 + { "flowchart-preparation", "flowChartPreparation" },
25747 + { "flowchart-manual-input", "flowChartManualInput" },
25748 + { "flowchart-manual-operation", "flowChartManualOperation" },
25749 + { "flowchart-connector", "flowChartConnector" },
25750 + { "flowchart-card", "flowChartPunchedCard" },
25751 + { "flowchart-punched-tape", "flowChartPunchedTape" },
25752 + { "flowchart-summing-junction", "flowChartSummingJunction" },
25753 + { "flowchart-or", "flowChartOr" },
25754 + { "flowchart-collate", "flowChartCollate" },
25755 + { "flowchart-sort", "flowChartSort" },
25756 + { "flowchart-extract", "flowChartExtract" },
25757 + { "flowchart-merge", "flowChartMerge" },
25758 + { "mso-spt129", "flowChartOfflineStorage" },
25759 + { "flowchart-stored-data", "flowChartOnlineStorage" },
25760 + { "flowchart-sequential-access", "flowChartMagneticTape" },
25761 + { "flowchart-magnetic-disk", "flowChartMagneticDisk" },
25762 + { "flowchart-direct-access-storage", "flowChartMagneticDrum" },
25763 + { "flowchart-display", "flowChartDisplay" },
25764 + { "flowchart-delay", "flowChartDelay" },
25765 + { "fontwork-plain-text", "textPlainText" },
25766 + { "fontwork-stop", "textStop" },
25767 + { "fontwork-triangle-up", "textTriangle" },
25768 + { "fontwork-triangle-down", "textTriangleInverted" },
25769 + { "fontwork-chevron-up", "textChevron" },
25770 + { "fontwork-chevron-down", "textChevronInverted" },
25771 + { "mso-spt142", "textRingInside" },
25772 + { "mso-spt143", "textRingOutside" },
25773 + { "fontwork-arch-up-curve", "textArchUpCurve" },
25774 + { "fontwork-arch-down-curve", "textArchDownCurve" },
25775 + { "fontwork-circle-curve", "textCircleCurve" },
25776 + { "fontwork-open-circle-curve", "textButtonCurve" },
25777 + { "fontwork-arch-up-pour", "textArchUpPour" },
25778 + { "fontwork-arch-down-pour", "textArchDownPour" },
25779 + { "fontwork-circle-pour", "textCirclePour" },
25780 + { "fontwork-open-circle-pour", "textButtonPour" },
25781 + { "fontwork-curve-up", "textCurveUp" },
25782 + { "fontwork-curve-down", "textCurveDown" },
25783 + { "fontwork-fade-up-and-right", "textCascadeUp" },
25784 + { "fontwork-fade-up-and-left", "textCascadeDown" },
25785 + { "fontwork-wave", "textWave1" },
25786 + { "mso-spt157", "textWave2" },
25787 + { "mso-spt158", "textWave3" },
25788 + { "mso-spt159", "textWave4" },
25789 + { "fontwork-inflate", "textInflate" },
25790 + { "mso-spt161", "textDeflate" },
25791 + { "mso-spt162", "textInflateBottom" },
25792 + { "mso-spt163", "textDeflateBottom" },
25793 + { "mso-spt164", "textInflateTop" },
25794 + { "mso-spt165", "textDeflateTop" },
25795 + { "mso-spt166", "textDeflateInflate" },
25796 + { "mso-spt167", "textDeflateInflateDeflate" },
25797 + { "fontwork-fade-right", "textFadeRight" },
25798 + { "fontwork-fade-left", "textFadeLeft" },
25799 + { "fontwork-fade-up", "textFadeUp" },
25800 + { "fontwork-fade-down", "textFadeDown" },
25801 + { "fontwork-slant-up", "textSlantUp" },
25802 + { "fontwork-slant-down", "textSlantDown" },
25803 + { "mso-spt174", "textCanUp" },
25804 + { "mso-spt175", "textCanDown" },
25805 + { "flowchart-alternate-process", "flowChartAlternateProcess" },
25806 + { "flowchart-off-page-connector", "flowChartOffpageConnector" },
25807 + { "mso-spt178", "callout90" },
25808 + { "mso-spt179", "accentCallout90" },
25809 + { "mso-spt180", "borderCallout90" },
25810 + { "mso-spt182", "leftRightUpArrow" },
25811 + { "sun", "sun" },
25812 + { "moon", "moon" },
25813 + { "bracket-pair", "bracketPair" },
25814 + { "brace-pair", "bracePair" },
25815 + { "star4", "seal4" },
25816 + { "mso-spt188", "doubleWave" },
25817 + { "mso-spt189", "actionButtonBlank" },
25818 + { "mso-spt190", "actionButtonHome" },
25819 + { "mso-spt191", "actionButtonHelp" },
25820 + { "mso-spt192", "actionButtonInformation" },
25821 + { "mso-spt193", "actionButtonForwardNext" },
25822 + { "mso-spt194", "actionButtonBackPrevious" },
25823 + { "mso-spt195", "actionButtonEnd" },
25824 + { "mso-spt196", "actionButtonBeginning" },
25825 + { "mso-spt197", "actionButtonReturn" },
25826 + { "mso-spt198", "actionButtonDocument" },
25827 + { "mso-spt199", "actionButtonSound" },
25828 + { "mso-spt200", "actionButtonMovie" },
25829 + { "mso-spt201", "hostControl" },
25830 + { "mso-spt202", "rect" }
25833 +struct StringCheck
25835 + bool operator()( const char* s1, const char* s2 ) const
25837 + return strcmp( s1, s2 ) == 0;
25841 +typedef std::hash_map< const char*, const char*, std::hash<const char*>, StringCheck> CustomShapeTypeTranslationHashMap;
25842 +static CustomShapeTypeTranslationHashMap* pCustomShapeTypeTranslationHashMap = NULL;
25844 +static const char* lcl_GetPresetGeometry( const char* sShapeType )
25846 + const char* sPresetGeo;
25848 + if( pCustomShapeTypeTranslationHashMap == NULL )
25850 + pCustomShapeTypeTranslationHashMap = new CustomShapeTypeTranslationHashMap ();
25851 + for( unsigned int i = 0; i < sizeof( pCustomShapeTypeTranslationTable )/sizeof( CustomShapeTypeTranslationTable ); i ++ )
25853 + (*pCustomShapeTypeTranslationHashMap)[ pCustomShapeTypeTranslationTable[ i ].sOOo ] = pCustomShapeTypeTranslationTable[ i ].sMSO;
25854 + //DBG(printf("type OOo: %s MSO: %s\n", pCustomShapeTypeTranslationTable[ i ].sOOo, pCustomShapeTypeTranslationTable[ i ].sMSO));
25858 + sPresetGeo = (*pCustomShapeTypeTranslationHashMap)[ sShapeType ];
25860 + if( sPresetGeo == NULL )
25861 + sPresetGeo = "rect";
25863 + return sPresetGeo;
25866 +namespace oox { namespace drawingml {
25868 +#define GETA(propName) \
25869 + GetProperty( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( #propName ) ) )
25871 +#define GETAD(propName) \
25872 + ( GetPropertyAndState( rXPropSet, rXPropState, String( RTL_CONSTASCII_USTRINGPARAM( #propName ) ), eState ) && eState == beans::PropertyState_DIRECT_VALUE )
25874 +#define GET(variable, propName) \
25875 + if ( GETA(propName) ) \
25876 + mAny >>= variable;
25878 +ShapeExport::ShapeExport( sal_Int32 nXmlNamespace, FSHelperPtr pFS, ::oox::core::XmlFilterBase* pFB, DocumentType eDocumentType )
25879 + : DrawingML( pFS, pFB, eDocumentType )
25880 + , mnXmlNamespace( nXmlNamespace )
25881 + , mnShapeIdMax( 1 )
25882 + , mnPictureIdMax( 1 )
25883 + , maFraction( 1, 576 )
25884 + , maMapModeSrc( MAP_100TH_MM )
25885 + , maMapModeDest( MAP_INCH, Point(), maFraction, maFraction )
25889 +sal_Int32 ShapeExport::GetXmlNamespace() const
25891 + return mnXmlNamespace;
25894 +ShapeExport& ShapeExport::SetXmlNamespace( sal_Int32 nXmlNamespace )
25896 + mnXmlNamespace = nXmlNamespace;
25900 +awt::Size ShapeExport::MapSize( const awt::Size& rSize ) const
25902 + Size aRetSize( OutputDevice::LogicToLogic( Size( rSize.Width, rSize.Height ), maMapModeSrc, maMapModeDest ) );
25904 + if ( !aRetSize.Width() )
25905 + aRetSize.Width()++;
25906 + if ( !aRetSize.Height() )
25907 + aRetSize.Height()++;
25908 + return awt::Size( aRetSize.Width(), aRetSize.Height() );
25911 +sal_Bool ShapeExport::NonEmptyText( Reference< XShape > xShape )
25913 + Reference< XSimpleText > xText( xShape, UNO_QUERY );
25915 + return ( xText.is() && xText->getString().getLength() );
25918 +ShapeExport& ShapeExport::WriteBezierShape( Reference< XShape > xShape, sal_Bool bClosed )
25920 + DBG(printf("write open bezier shape\n"));
25922 + FSHelperPtr pFS = GetFS();
25923 + pFS->startElementNS( mnXmlNamespace, XML_sp, FSEND );
25925 + PolyPolygon aPolyPolygon = EscherPropertyContainer::GetPolyPolygon( xShape );
25926 + Rectangle aRect( aPolyPolygon.GetBoundRect() );
25927 + awt::Size size = MapSize( awt::Size( aRect.GetWidth(), aRect.GetHeight() ) );
25929 + DBG(printf("poly count %d\nsize: %d x %d", aPolyPolygon.Count(), int( size.Width ), int( size.Height )));
25931 + // non visual shape properties
25932 + pFS->startElementNS( mnXmlNamespace, XML_nvSpPr, FSEND );
25933 + pFS->singleElementNS( mnXmlNamespace, XML_cNvPr,
25934 + XML_id, I32S( GetNewShapeID( xShape ) ),
25935 + XML_name, IDS( Freeform ),
25937 + pFS->singleElementNS( mnXmlNamespace, XML_cNvSpPr, FSEND );
25938 + WriteNonVisualProperties( xShape );
25939 + pFS->endElementNS( mnXmlNamespace, XML_nvSpPr );
25941 + // visual shape properties
25942 + pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
25943 + WriteTransformation( aRect );
25944 + WritePolyPolygon( aPolyPolygon );
25945 + Reference< XPropertySet > xProps( xShape, UNO_QUERY );
25946 + if( xProps.is() ) {
25948 + WriteFill( xProps );
25949 + WriteOutline( xProps );
25952 + pFS->endElementNS( mnXmlNamespace, XML_spPr );
25955 + WriteTextBox( xShape );
25957 + pFS->endElementNS( mnXmlNamespace, XML_sp );
25962 +ShapeExport& ShapeExport::WriteClosedBezierShape( Reference< XShape > xShape )
25964 + return WriteBezierShape( xShape, TRUE );
25967 +ShapeExport& ShapeExport::WriteOpenBezierShape( Reference< XShape > xShape )
25969 + return WriteBezierShape( xShape, FALSE );
25972 +ShapeExport& ShapeExport::WriteCustomShape( Reference< XShape > xShape )
25974 + DBG(printf("write custom shape\n"));
25976 + Reference< XPropertySet > rXPropSet( xShape, UNO_QUERY );
25977 + SdrObjCustomShape* pShape = (SdrObjCustomShape*) GetSdrObjectFromXShape( xShape );
25978 + sal_Bool bIsDefaultObject = EscherPropertyContainer::IsDefaultObject( pShape );
25979 + sal_Bool bPredefinedHandlesUsed = TRUE;
25980 + OUString sShapeType;
25981 + sal_uInt32 nMirrorFlags = 0;
25982 + MSO_SPT eShapeType = EscherPropertyContainer::GetCustomShapeType( xShape, nMirrorFlags, sShapeType );
25983 + const char* sPresetShape = lcl_GetPresetGeometry( USS( sShapeType ) );
25984 + DBG(printf("custom shape type: %s ==> %s\n", USS( sShapeType ), sPresetShape));
25985 + Sequence< PropertyValue > aGeometrySeq;
25986 + sal_Int32 nAdjustmentValuesIndex = -1;
25987 + sal_Int32 nAdjustmentsWhichNeedsToBeConverted = 0;
25989 + if( GETA( CustomShapeGeometry ) ) {
25990 + DBG(printf("got custom shape geometry\n"));
25991 + if( mAny >>= aGeometrySeq ) {
25993 + DBG(printf("got custom shape geometry sequence\n"));
25994 + for( int i = 0; i < aGeometrySeq.getLength(); i++ ) {
25995 + const PropertyValue& rProp = aGeometrySeq[ i ];
25996 + DBG(printf("geometry property: %s\n", USS( rProp.Name )));
25998 + if( rProp.Name.equalsAscii( "AdjustmentValues" ))
25999 + nAdjustmentValuesIndex = i;
26000 + else if( rProp.Name.equalsAscii( "Handles" )) {
26001 + if( !bIsDefaultObject )
26002 + bPredefinedHandlesUsed = FALSE;
26003 + // TODO: update nAdjustmentsWhichNeedsToBeConverted here
26009 + FSHelperPtr pFS = GetFS();
26010 + pFS->startElementNS( mnXmlNamespace, XML_sp, FSEND );
26012 + // non visual shape properties
26013 + pFS->startElementNS( mnXmlNamespace, XML_nvSpPr, FSEND );
26014 + pFS->singleElementNS( mnXmlNamespace, XML_cNvPr,
26015 + XML_id, I32S( GetNewShapeID( xShape ) ),
26016 + XML_name, IDS( CustomShape ),
26018 + pFS->singleElementNS( mnXmlNamespace, XML_cNvSpPr, FSEND );
26019 + WriteNonVisualProperties( xShape );
26020 + pFS->endElementNS( mnXmlNamespace, XML_nvSpPr );
26022 + // visual shape properties
26023 + pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
26024 + WriteShapeTransformation( xShape );
26025 + if( nAdjustmentValuesIndex != -1 )
26026 + WritePresetShape( sPresetShape, eShapeType, bPredefinedHandlesUsed, nAdjustmentsWhichNeedsToBeConverted, aGeometrySeq[ nAdjustmentValuesIndex ] );
26028 + WritePresetShape( sPresetShape );
26029 + if( rXPropSet.is() )
26031 + WriteFill( rXPropSet );
26032 + WriteOutline( rXPropSet );
26035 + pFS->endElementNS( mnXmlNamespace, XML_spPr );
26038 + WriteTextBox( xShape );
26040 + pFS->endElementNS( mnXmlNamespace, XML_sp );
26045 +ShapeExport& ShapeExport::WriteEllipseShape( Reference< XShape > xShape )
26047 + DBG(printf("write ellipse shape\n"));
26049 + FSHelperPtr pFS = GetFS();
26051 + pFS->startElementNS( mnXmlNamespace, XML_sp, FSEND );
26053 + // TODO: arc, section, cut, connector
26055 + // non visual shape properties
26056 + pFS->startElementNS( mnXmlNamespace, XML_nvSpPr, FSEND );
26057 + pFS->singleElementNS( mnXmlNamespace, XML_cNvPr,
26058 + XML_id, I32S( GetNewShapeID( xShape ) ),
26059 + XML_name, IDS( Ellipse ),
26061 + pFS->singleElementNS( mnXmlNamespace, XML_cNvSpPr, FSEND );
26062 + WriteNonVisualProperties( xShape );
26063 + pFS->endElementNS( mnXmlNamespace, XML_nvSpPr );
26065 + // visual shape properties
26066 + pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
26067 + WriteShapeTransformation( xShape );
26068 + WritePresetShape( "ellipse" );
26069 + Reference< XPropertySet > xProps( xShape, UNO_QUERY );
26070 + if( xProps.is() )
26072 + WriteFill( xProps );
26073 + WriteOutline( xProps );
26075 + pFS->endElementNS( mnXmlNamespace, XML_spPr );
26078 + WriteTextBox( xShape );
26080 + pFS->endElementNS( mnXmlNamespace, XML_sp );
26085 +ShapeExport& ShapeExport::WriteFill( Reference< XPropertySet > xPropSet )
26087 + FillStyle aFillStyle( FillStyle_NONE );
26088 + xPropSet->getPropertyValue( S( "FillStyle" ) ) >>= aFillStyle;
26090 + if( aFillStyle == FillStyle_BITMAP )
26092 + //DBG(printf ("FillStyle_BITMAP properties\n"));
26093 + //DBG(dump_pset(rXPropSet));
26096 + if( aFillStyle == FillStyle_NONE ||
26097 + aFillStyle == FillStyle_HATCH )
26100 + switch( aFillStyle )
26102 + case ::com::sun::star::drawing::FillStyle_SOLID :
26103 + WriteSolidFill( xPropSet );
26105 + case ::com::sun::star::drawing::FillStyle_GRADIENT :
26106 + WriteGradientFill( xPropSet );
26108 + case ::com::sun::star::drawing::FillStyle_BITMAP :
26109 + WriteBlipFill( xPropSet, S( "FillBitmapURL" ) );
26118 +ShapeExport& ShapeExport::WriteGraphicObjectShape( Reference< XShape > xShape )
26120 + DBG(printf("write graphic object shape\n"));
26122 + if( NonEmptyText( xShape ) )
26124 + WriteTextShape( xShape );
26126 + //DBG(dump_pset(mXPropSet));
26131 + DBG(printf("graphicObject without text\n"));
26133 + OUString sGraphicURL;
26134 + Reference< XPropertySet > xShapeProps( xShape, UNO_QUERY );
26135 + if( !xShapeProps.is() || !( xShapeProps->getPropertyValue( S( "GraphicURL" ) ) >>= sGraphicURL ) )
26137 + DBG(printf("no graphic URL found\n"));
26141 + FSHelperPtr pFS = GetFS();
26143 + pFS->startElementNS( mnXmlNamespace, XML_pic, FSEND );
26145 + pFS->startElementNS( mnXmlNamespace, XML_nvPicPr, FSEND );
26147 + OUString sName, sDescr;
26148 + bool bHaveName = xShapeProps->getPropertyValue( S( "Name" ) ) >>= sName;
26149 + bool bHaveDesc = xShapeProps->getPropertyValue( S( "Description" ) ) >>= sDescr;
26151 + pFS->singleElementNS( mnXmlNamespace, XML_cNvPr,
26152 + XML_id, I32S( GetNewShapeID( xShape ) ),
26153 + XML_name, bHaveName ? USS( sName ) : (OString("Picture ") + OString::valueOf( mnPictureIdMax++ )).getStr(),
26154 + XML_descr, bHaveDesc ? USS( sDescr ) : NULL,
26156 + // OOXTODO: //cNvPr children: XML_extLst, XML_hlinkClick, XML_hlinkHover
26158 + pFS->singleElementNS( mnXmlNamespace, XML_cNvPicPr,
26159 + // OOXTODO: XML_preferRelativeSize
26162 + WriteNonVisualProperties( xShape );
26164 + pFS->endElementNS( mnXmlNamespace, XML_nvPicPr );
26166 + pFS->startElementNS( mnXmlNamespace, XML_blipFill, FSEND );
26168 + WriteBlip( sGraphicURL );
26170 + bool bStretch = false;
26171 + if( ( xShapeProps->getPropertyValue( S( "FillBitmapStretch" ) ) >>= bStretch ) && bStretch )
26176 + pFS->endElementNS( mnXmlNamespace, XML_blipFill );
26178 + // visual shape properties
26179 + pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
26180 + WriteShapeTransformation( xShape );
26181 + WritePresetShape( "rect" );
26182 + pFS->endElementNS( mnXmlNamespace, XML_spPr );
26184 + pFS->endElementNS( mnXmlNamespace, XML_pic );
26189 +ShapeExport& ShapeExport::WriteConnectorShape( Reference< XShape > xShape )
26191 + sal_Bool bFlipH = false;
26192 + sal_Bool bFlipV = false;
26194 + DBG(printf("write connector shape\n"));
26196 + FSHelperPtr pFS = GetFS();
26198 + const char* sGeometry = "line";
26199 + Reference< XPropertySet > rXPropSet( xShape, UNO_QUERY );
26200 + Reference< XPropertyState > rXPropState( xShape, UNO_QUERY );
26201 + awt::Point aStartPoint, aEndPoint;
26202 + Reference< XShape > rXShapeA;
26203 + Reference< XShape > rXShapeB;
26204 + PropertyState eState;
26205 + ConnectorType eConnectorType;
26206 + if( GETAD( EdgeKind ) ) {
26207 + mAny >>= eConnectorType;
26209 + switch( eConnectorType ) {
26210 + case ConnectorType_CURVE:
26211 + sGeometry = "curvedConnector3";
26213 + case ConnectorType_STANDARD:
26214 + sGeometry = "bentConnector3";
26217 + case ConnectorType_LINE:
26218 + case ConnectorType_LINES:
26219 + sGeometry = "straightConnector1";
26223 + if( GETAD( EdgeStartPoint ) ) {
26224 + mAny >>= aStartPoint;
26225 + if( GETAD( EdgeEndPoint ) ) {
26226 + mAny >>= aEndPoint;
26229 + GET( rXShapeA, EdgeStartConnection );
26230 + GET( rXShapeB, EdgeEndConnection );
26232 + EscherConnectorListEntry aConnectorEntry( xShape, aStartPoint, rXShapeA, aEndPoint, rXShapeB );
26234 + Rectangle aRect( Point( aStartPoint.X, aStartPoint.Y ), Point( aEndPoint.X, aEndPoint.Y ) );
26235 + if( aRect.getWidth() < 0 ) {
26237 + aRect.setX( aEndPoint.X );
26238 + aRect.setWidth( aStartPoint.X - aEndPoint.X );
26241 + if( aRect.getHeight() < 0 ) {
26243 + aRect.setY( aEndPoint.Y );
26244 + aRect.setHeight( aStartPoint.Y - aEndPoint.Y );
26247 + pFS->startElementNS( mnXmlNamespace, XML_cxnSp, FSEND );
26249 + // non visual shape properties
26250 + pFS->startElementNS( mnXmlNamespace, XML_nvCxnSpPr, FSEND );
26251 + pFS->singleElementNS( mnXmlNamespace, XML_cNvPr,
26252 + XML_id, I32S( GetNewShapeID( xShape ) ),
26253 + XML_name, IDS( Line ),
26255 + // non visual connector shape drawing properties
26256 + pFS->startElementNS( mnXmlNamespace, XML_cNvCxnSpPr, FSEND );
26257 + WriteConnectorConnections( aConnectorEntry, GetShapeID( rXShapeA ), GetShapeID( rXShapeB ) );
26258 + pFS->endElementNS( mnXmlNamespace, XML_cNvCxnSpPr );
26259 + pFS->singleElementNS( mnXmlNamespace, XML_nvPr, FSEND );
26260 + pFS->endElementNS( mnXmlNamespace, XML_nvCxnSpPr );
26262 + // visual shape properties
26263 + pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
26264 + WriteTransformation( aRect, bFlipH, bFlipV );
26265 + // TODO: write adjustments (ppt export doesn't work well there either)
26266 + WritePresetShape( sGeometry );
26267 + Reference< XPropertySet > xShapeProps( xShape, UNO_QUERY );
26268 + if( xShapeProps.is() )
26269 + WriteOutline( xShapeProps );
26270 + pFS->endElementNS( mnXmlNamespace, XML_spPr );
26273 + WriteTextBox( xShape );
26275 + pFS->endElementNS( mnXmlNamespace, XML_cxnSp );
26280 +ShapeExport& ShapeExport::WriteLineShape( Reference< XShape > xShape )
26282 + sal_Bool bFlipH = false;
26283 + sal_Bool bFlipV = false;
26285 + DBG(printf("write line shape\n"));
26287 + FSHelperPtr pFS = GetFS();
26289 + pFS->startElementNS( mnXmlNamespace, XML_sp, FSEND );
26291 + PolyPolygon aPolyPolygon = EscherPropertyContainer::GetPolyPolygon( xShape );
26292 + if( aPolyPolygon.Count() == 1 && aPolyPolygon[ 0 ].GetSize() == 2)
26294 + const Polygon& rPoly = aPolyPolygon[ 0 ];
26296 + bFlipH = ( rPoly[ 0 ].X() > rPoly[ 1 ].X() );
26297 + bFlipV = ( rPoly[ 0 ].Y() > rPoly[ 1 ].Y() );
26300 + // non visual shape properties
26301 + pFS->startElementNS( mnXmlNamespace, XML_nvSpPr, FSEND );
26302 + pFS->singleElementNS( mnXmlNamespace, XML_cNvPr,
26303 + XML_id, I32S( GetNewShapeID( xShape ) ),
26304 + XML_name, IDS( Line ),
26306 + pFS->singleElementNS( mnXmlNamespace, XML_cNvSpPr, FSEND );
26307 + WriteNonVisualProperties( xShape );
26308 + pFS->endElementNS( mnXmlNamespace, XML_nvSpPr );
26310 + // visual shape properties
26311 + pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
26312 + WriteShapeTransformation( xShape, bFlipH, bFlipV );
26313 + WritePresetShape( "line" );
26314 + Reference< XPropertySet > xShapeProps( xShape, UNO_QUERY );
26315 + if( xShapeProps.is() )
26316 + WriteOutline( xShapeProps );
26317 + pFS->endElementNS( mnXmlNamespace, XML_spPr );
26320 + WriteTextBox( xShape );
26322 + pFS->endElementNS( mnXmlNamespace, XML_sp );
26327 +ShapeExport& ShapeExport::WriteNonVisualDrawingProperties( Reference< XShape > xShape, const char* pName )
26329 + GetFS()->singleElementNS( mnXmlNamespace, XML_cNvPr,
26330 + XML_id, I32S( GetNewShapeID( xShape ) ),
26337 +ShapeExport& ShapeExport::WriteNonVisualProperties( Reference< XShape > )
26339 + // Override to generate //nvPr elements.
26343 +ShapeExport& ShapeExport::WriteRectangleShape( Reference< XShape > xShape )
26345 + DBG(printf("write rectangle shape\n"));
26347 + FSHelperPtr pFS = GetFS();
26349 + pFS->startElementNS( mnXmlNamespace, XML_sp, FSEND );
26351 + sal_Int32 nRadius = 0;
26353 + Reference< XPropertySet > xShapeProps( xShape, UNO_QUERY );
26354 + if( xShapeProps.is() )
26356 + xShapeProps->getPropertyValue( S( "CornerRadius" ) ) >>= nRadius;
26361 + nRadius = MapSize( awt::Size( nRadius, 0 ) ).Width;
26364 + // non visual shape properties
26365 + pFS->startElementNS( mnXmlNamespace, XML_nvSpPr, FSEND );
26366 + pFS->singleElementNS( mnXmlNamespace, XML_cNvPr,
26367 + XML_id, I32S( GetNewShapeID( xShape ) ),
26368 + XML_name, IDS( Rectangle ),
26370 + pFS->singleElementNS( mnXmlNamespace, XML_cNvSpPr, FSEND );
26371 + WriteNonVisualProperties( xShape );
26372 + pFS->endElementNS( mnXmlNamespace, XML_nvSpPr );
26374 + // visual shape properties
26375 + pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
26376 + WriteShapeTransformation( xShape );
26377 + WritePresetShape( "rect" );
26378 + Reference< XPropertySet > xProps( xShape, UNO_QUERY );
26379 + if( xProps.is() )
26381 + WriteFill( xProps );
26382 + WriteOutline( xProps );
26384 + pFS->endElementNS( mnXmlNamespace, XML_spPr );
26387 + WriteTextBox( xShape );
26389 + pFS->endElementNS( mnXmlNamespace, XML_sp );
26394 +typedef ShapeExport& (ShapeExport::*ShapeConverter)( Reference< XShape > );
26395 +typedef std::hash_map< const char*, ShapeConverter, std::hash<const char*>, StringCheck> NameToConvertMapType;
26397 +static const NameToConvertMapType& lcl_GetConverters()
26399 + static bool shape_map_inited = false;
26400 + static NameToConvertMapType shape_converters;
26401 + if( shape_map_inited )
26403 + return shape_converters;
26406 + shape_converters[ "com.sun.star.drawing.ClosedBezierShape" ] = &ShapeExport::WriteClosedBezierShape;
26407 + shape_converters[ "com.sun.star.drawing.ConnectorShape" ] = &ShapeExport::WriteConnectorShape;
26408 + shape_converters[ "com.sun.star.drawing.CustomShape" ] = &ShapeExport::WriteCustomShape;
26409 + shape_converters[ "com.sun.star.drawing.EllipseShape" ] = &ShapeExport::WriteEllipseShape;
26410 + shape_converters[ "com.sun.star.drawing.GraphicObjectShape" ] = &ShapeExport::WriteGraphicObjectShape;
26411 + shape_converters[ "com.sun.star.drawing.LineShape" ] = &ShapeExport::WriteLineShape;
26412 + shape_converters[ "com.sun.star.drawing.OpenBezierShape" ] = &ShapeExport::WriteOpenBezierShape;
26413 + shape_converters[ "com.sun.star.drawing.RectangleShape" ] = &ShapeExport::WriteRectangleShape;
26414 + shape_converters[ "com.sun.star.drawing.TextShape" ] = &ShapeExport::WriteTextShape;
26415 + shape_converters[ "com.sun.star.presentation.DateTimeShape" ] = &ShapeExport::WriteTextShape;
26416 + shape_converters[ "com.sun.star.presentation.FooterShape" ] = &ShapeExport::WriteTextShape;
26417 + shape_converters[ "com.sun.star.presentation.HeaderShape" ] = &ShapeExport::WriteTextShape;
26418 + shape_converters[ "com.sun.star.presentation.NotesShape" ] = &ShapeExport::WriteTextShape;
26419 + shape_converters[ "com.sun.star.presentation.OutlinerShape" ] = &ShapeExport::WriteTextShape;
26420 + shape_converters[ "com.sun.star.presentation.SlideNumberShape" ] = &ShapeExport::WriteTextShape;
26421 + shape_converters[ "com.sun.star.presentation.TitleTextShape" ] = &ShapeExport::WriteTextShape;
26422 + shape_map_inited = true;
26424 + return shape_converters;
26427 +ShapeExport& ShapeExport::WriteShape( Reference< XShape > xShape )
26429 + OUString sShapeType = xShape->getShapeType();
26430 + DBG( printf( "write shape: %s\n", USS( sShapeType ) ) );
26431 + NameToConvertMapType::const_iterator aConverter = lcl_GetConverters().find( USS( sShapeType ) );
26432 + if( aConverter == lcl_GetConverters().end() )
26434 + DBG( printf( "unknown shape\n" ) );
26435 + return WriteUnknownShape( xShape );
26437 + (this->*(aConverter->second))( xShape );
26442 +ShapeExport& ShapeExport::WriteTextBox( Reference< XShape > xShape )
26444 + if( NonEmptyText( xShape ) )
26446 + FSHelperPtr pFS = GetFS();
26448 + pFS->startElementNS( mnXmlNamespace, XML_txBody, FSEND );
26449 + WriteText( xShape );
26450 + pFS->endElementNS( mnXmlNamespace, XML_txBody );
26456 +ShapeExport& ShapeExport::WriteTextShape( Reference< XShape > xShape )
26458 + FSHelperPtr pFS = GetFS();
26460 + pFS->startElementNS( mnXmlNamespace, XML_sp, FSEND );
26462 + // non visual shape properties
26463 + pFS->startElementNS( mnXmlNamespace, XML_nvSpPr, FSEND );
26464 + WriteNonVisualDrawingProperties( xShape, IDS( TextShape ) );
26465 + pFS->singleElementNS( mnXmlNamespace, XML_cNvSpPr, XML_txBox, "1", FSEND );
26466 + WriteNonVisualProperties( xShape );
26467 + pFS->endElementNS( mnXmlNamespace, XML_nvSpPr );
26469 + // visual shape properties
26470 + pFS->startElementNS( mnXmlNamespace, XML_spPr, FSEND );
26471 + WriteShapeTransformation( xShape );
26472 + WritePresetShape( "rect" );
26473 + WriteBlipFill( Reference< XPropertySet >(xShape, UNO_QUERY ), S( "GraphicURL" ) );
26474 + pFS->endElementNS( mnXmlNamespace, XML_spPr );
26476 + WriteTextBox( xShape );
26478 + pFS->endElementNS( mnXmlNamespace, XML_sp );
26483 +ShapeExport& ShapeExport::WriteUnknownShape( Reference< XShape > )
26485 + // Override this method to do something useful.
26489 +size_t ShapeExport::ShapeHash::operator()( const ::com::sun::star::uno::Reference < ::com::sun::star::drawing::XShape > rXShape ) const
26491 + return maHashFunction( USS( rXShape->getShapeType() ) );
26494 +sal_Int32 ShapeExport::GetNewShapeID( const Reference< XShape > rXShape )
26496 + sal_Int32 nID = GetFB()->GetUniqueId();
26498 + maShapeMap[ rXShape ] = nID;
26503 +sal_Int32 ShapeExport::GetShapeID( const Reference< XShape > rXShape )
26505 + ShapeHashMap::const_iterator aIter = maShapeMap.find( rXShape );
26507 + if( aIter == maShapeMap.end() )
26510 + return aIter->second;
26514 diff --git oox/source/export/vmlexport.cxx oox/source/export/vmlexport.cxx
26515 new file mode 100644
26516 index 0000000..d22e601
26518 +++ oox/source/export/vmlexport.cxx
26520 +/*************************************************************************
26522 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
26524 + * Copyright 2008 by Sun Microsystems, Inc.
26526 + * OpenOffice.org - a multi-platform office productivity suite
26531 + * This file is part of OpenOffice.org.
26533 + * OpenOffice.org is free software: you can redistribute it and/or modify
26534 + * it under the terms of the GNU Lesser General Public License version 3
26535 + * only, as published by the Free Software Foundation.
26537 + * OpenOffice.org is distributed in the hope that it will be useful,
26538 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26539 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26540 + * GNU Lesser General Public License version 3 for more details
26541 + * (a copy is included in the LICENSE file that accompanied this code).
26543 + * You should have received a copy of the GNU Lesser General Public License
26544 + * version 3 along with OpenOffice.org. If not, see
26545 + * <http://www.openoffice.org/license.html>
26546 + * for a copy of the LGPLv3 License.
26548 + ************************************************************************/
26550 +#include <oox/export/vmlexport.hxx>
26552 +#include <tokens.hxx>
26554 +#include <rtl/strbuf.hxx>
26555 +#include <rtl/ustring.hxx>
26557 +#include <tools/stream.hxx>
26561 +using rtl::OString;
26562 +using rtl::OStringBuffer;
26563 +using rtl::OUString;
26564 +using rtl::OUStringBuffer;
26566 +using namespace sax_fastparser;
26567 +using namespace oox::vml;
26569 +/// Implementation of an empty stream that silently succeeds, but does nothing.
26571 +/// In fact, this is a hack. The right solution is to abstract EscherEx to be
26572 +/// able to work without SvStream; but at the moment it is better to live with
26574 +class SvNullStream : public SvStream
26577 + virtual sal_Size GetData( void* pData, sal_Size nSize ) { memset( pData, 0, nSize ); return nSize; }
26578 + virtual sal_Size PutData( const void*, sal_Size nSize ) { return nSize; }
26579 + virtual sal_Size SeekPos( sal_Size nPos ) { return nPos; }
26580 + virtual void SetSize( sal_Size ) {}
26581 + virtual void FlushData() {}
26584 + SvNullStream() : SvStream() {}
26585 + virtual ~SvNullStream() {}
26588 +VMLExport::VMLExport( ::sax_fastparser::FSHelperPtr pSerializer )
26589 + : EscherEx( *( new SvNullStream ), 0 ),
26590 + m_pSerializer( pSerializer ),
26591 + m_pShapeAttrList( NULL ),
26592 + m_nShapeType( ESCHER_ShpInst_Nil ),
26593 + m_pShapeStyle( new OStringBuffer( 200 ) ),
26594 + m_pShapeTypeWritten( new bool[ ESCHER_ShpInst_COUNT ] )
26596 + mnGroupLevel = 1;
26597 + memset( m_pShapeTypeWritten, 0, ESCHER_ShpInst_COUNT * sizeof( bool ) );
26600 +VMLExport::~VMLExport()
26602 + delete mpOutStrm, mpOutStrm = NULL;
26603 + delete m_pShapeStyle, m_pShapeStyle = NULL;
26604 + delete[] m_pShapeTypeWritten, m_pShapeTypeWritten = NULL;
26607 +void VMLExport::OpenContainer( UINT16 nEscherContainer, int nRecInstance )
26609 + EscherEx::OpenContainer( nEscherContainer, nRecInstance );
26611 + if ( nEscherContainer == ESCHER_SpContainer )
26613 + // opening a shape container
26614 +#if OSL_DEBUG_LEVEL > 0
26615 + if ( m_nShapeType != ESCHER_ShpInst_Nil )
26616 + fprintf( stderr, "Warning! VMLExport::OpenContainer(): opening shape inside a shape.\n" );
26618 + m_nShapeType = ESCHER_ShpInst_Nil;
26619 + m_pShapeAttrList = m_pSerializer->createAttrList();
26621 + if ( m_pShapeStyle->getLength() )
26622 + m_pShapeStyle->makeStringAndClear();
26624 + m_pShapeStyle->ensureCapacity( 200 );
26626 + // postpone the ouput so that we are able to write even the elements
26627 + // that we learn inside Commit()
26628 + m_pSerializer->mark();
26632 +void VMLExport::CloseContainer()
26634 + if ( mRecTypes.back() == ESCHER_SpContainer )
26636 + // write the shape now when we have all the info
26637 + sal_Int32 nShapeElement = StartShape();
26639 + m_pSerializer->mergeTopMarks();
26641 + EndShape( nShapeElement );
26644 + m_nShapeType = ESCHER_ShpInst_Nil;
26645 + m_pShapeAttrList = NULL;
26648 + EscherEx::CloseContainer();
26651 +UINT32 VMLExport::EnterGroup( const String& rShapeName, const Rectangle* pRect )
26653 + UINT32 nShapeId = GetShapeID();
26655 + OStringBuffer aStyle( 200 );
26656 + FastAttributeList *pAttrList = m_pSerializer->createAttrList();
26658 + pAttrList->add( XML_id, ShapeIdString( nShapeId ) );
26660 + if ( rShapeName.Len() )
26661 + pAttrList->add( XML_alt, OUStringToOString( OUString( rShapeName ), RTL_TEXTENCODING_UTF8 ) );
26665 + AddRectangleDimensions( aStyle, *pRect );
26667 + if ( aStyle.getLength() )
26668 + pAttrList->add( XML_style, aStyle.makeStringAndClear() );
26670 + // coordorigin/coordsize
26671 + if ( pRect && ( mnGroupLevel == 1 ) )
26673 + pAttrList->add( XML_coordorigin,
26674 + OStringBuffer( 20 ).append( sal_Int32( pRect->Left() ) )
26675 + .append( "," ).append( sal_Int32( pRect->Top() ) )
26676 + .makeStringAndClear() );
26678 + pAttrList->add( XML_coordsize,
26679 + OStringBuffer( 20 ).append( sal_Int32( pRect->Right() ) - sal_Int32( pRect->Left() ) )
26680 + .append( "," ).append( sal_Int32( pRect->Bottom() ) - sal_Int32( pRect->Top() ) )
26681 + .makeStringAndClear() );
26684 + m_pSerializer->startElementNS( XML_v, XML_group, XFastAttributeListRef( pAttrList ) );
26690 +void VMLExport::LeaveGroup()
26693 + m_pSerializer->endElementNS( XML_v, XML_group );
26696 +void VMLExport::AddShape( UINT32 nShapeType, UINT32 nShapeFlags, UINT32 nShapeId )
26698 + m_nShapeType = nShapeType;
26699 + m_nShapeFlags = nShapeFlags;
26701 + m_pShapeAttrList->add( XML_id, ShapeIdString( nShapeId ) );
26704 +static void impl_AddArrowHead( sax_fastparser::FastAttributeList *pAttrList, sal_Int32 nElement, sal_uInt32 nValue )
26706 + if ( !pAttrList )
26709 + const char *pArrowHead = NULL;
26710 + switch ( nValue )
26712 + case ESCHER_LineNoEnd: pArrowHead = "none"; break;
26713 + case ESCHER_LineArrowEnd: pArrowHead = "block"; break;
26714 + case ESCHER_LineArrowStealthEnd: pArrowHead = "classic"; break;
26715 + case ESCHER_LineArrowDiamondEnd: pArrowHead = "diamond"; break;
26716 + case ESCHER_LineArrowOvalEnd: pArrowHead = "oval"; break;
26717 + case ESCHER_LineArrowOpenEnd: pArrowHead = "open"; break;
26720 + if ( pArrowHead )
26721 + pAttrList->add( nElement, pArrowHead );
26724 +static void impl_AddArrowLength( sax_fastparser::FastAttributeList *pAttrList, sal_Int32 nElement, sal_uInt32 nValue )
26726 + if ( !pAttrList )
26729 + const char *pArrowLength = NULL;
26730 + switch ( nValue )
26732 + case ESCHER_LineShortArrow: pArrowLength = "short"; break;
26733 + case ESCHER_LineMediumLenArrow: pArrowLength = "medium"; break;
26734 + case ESCHER_LineLongArrow: pArrowLength = "long"; break;
26737 + if ( pArrowLength )
26738 + pAttrList->add( nElement, pArrowLength );
26741 +static void impl_AddArrowWidth( sax_fastparser::FastAttributeList *pAttrList, sal_Int32 nElement, sal_uInt32 nValue )
26743 + if ( !pAttrList )
26746 + const char *pArrowWidth = NULL;
26747 + switch ( nValue )
26749 + case ESCHER_LineNarrowArrow: pArrowWidth = "narrow"; break;
26750 + case ESCHER_LineMediumWidthArrow: pArrowWidth = "medium"; break;
26751 + case ESCHER_LineWideArrow: pArrowWidth = "wide"; break;
26754 + if ( pArrowWidth )
26755 + pAttrList->add( nElement, pArrowWidth );
26758 +static void impl_AddBool( sax_fastparser::FastAttributeList *pAttrList, sal_Int32 nElement, bool bValue )
26760 + if ( !pAttrList )
26763 + pAttrList->add( nElement, bValue? "t": "f" );
26766 +static void impl_AddColor( sax_fastparser::FastAttributeList *pAttrList, sal_Int32 nElement, sal_uInt32 nColor )
26768 +#if OSL_DEBUG_LEVEL > 0
26769 + if ( nColor & 0xFF000000 )
26770 + fprintf( stderr, "TODO: this is not a RGB value!\n" );
26773 + if ( !pAttrList || ( nColor & 0xFF000000 ) )
26776 + nColor = ( ( nColor & 0xFF ) << 16 ) + ( nColor & 0xFF00 ) + ( ( nColor & 0xFF0000 ) >> 16 );
26778 + const char *pColor = NULL;
26779 + char pRgbColor[10];
26780 + switch ( nColor )
26782 + case 0x000000: pColor = "black"; break;
26783 + case 0xC0C0C0: pColor = "silver"; break;
26784 + case 0x808080: pColor = "gray"; break;
26785 + case 0xFFFFFF: pColor = "white"; break;
26786 + case 0x800000: pColor = "maroon"; break;
26787 + case 0xFF0000: pColor = "red"; break;
26788 + case 0x800080: pColor = "purple"; break;
26789 + case 0xFF00FF: pColor = "fuchsia"; break;
26790 + case 0x008000: pColor = "green"; break;
26791 + case 0x00FF00: pColor = "lime"; break;
26792 + case 0x808000: pColor = "olive"; break;
26793 + case 0xFFFF00: pColor = "yellow"; break;
26794 + case 0x000080: pColor = "navy"; break;
26795 + case 0x0000FF: pColor = "blue"; break;
26796 + case 0x008080: pColor = "teal"; break;
26797 + case 0x00FFFF: pColor = "aqua"; break;
26800 + snprintf( pRgbColor, sizeof( pRgbColor ), "#%06x", static_cast< unsigned int >( nColor ) ); // not too handy to use OString::valueOf() here :-(
26801 + pColor = pRgbColor;
26806 + pAttrList->add( nElement, pColor );
26809 +static void impl_AddInt( sax_fastparser::FastAttributeList *pAttrList, sal_Int32 nElement, sal_uInt32 nValue )
26811 + if ( !pAttrList )
26814 + pAttrList->add( nElement, OString::valueOf( static_cast< sal_Int32 >( nValue ) ).getStr() );
26817 +inline sal_uInt16 impl_GetUInt16( const sal_uInt8* &pVal )
26819 + sal_uInt16 nRet = *pVal++;
26820 + nRet += ( *pVal++ ) << 8;
26824 +inline sal_Int32 impl_GetPointComponent( const sal_uInt8* &pVal, sal_uInt16 nPointSize )
26826 + sal_Int32 nRet = 0;
26827 + if ( ( nPointSize == 0xfff0 ) || ( nPointSize == 4 ) )
26829 + sal_uInt16 nUnsigned = *pVal++;
26830 + nUnsigned += ( *pVal++ ) << 8;
26832 + nRet = sal_Int16( nUnsigned );
26834 + else if ( nPointSize == 8 )
26836 + sal_uInt32 nUnsigned = *pVal++;
26837 + nUnsigned += ( *pVal++ ) << 8;
26838 + nUnsigned += ( *pVal++ ) << 16;
26839 + nUnsigned += ( *pVal++ ) << 24;
26841 + nRet = nUnsigned;
26847 +void VMLExport::Commit( EscherPropertyContainer& rProps, const Rectangle& rRect )
26849 + if ( m_nShapeType == ESCHER_ShpInst_Nil )
26852 + // postpone the output of the embedded elements so that they are written
26853 + // inside the shapes
26854 + m_pSerializer->mark();
26857 + if ( m_nShapeType == ESCHER_ShpInst_Line )
26858 + AddLineDimensions( rRect );
26860 + AddRectangleDimensions( *m_pShapeStyle, rRect );
26863 + bool bAlreadyWritten[ 0xFFF ];
26864 + memset( bAlreadyWritten, 0, sizeof( bAlreadyWritten ) );
26865 + const EscherProperties &rOpts = rProps.GetOpts();
26866 + for ( EscherProperties::const_iterator it = rOpts.begin(); it != rOpts.end(); ++it )
26868 + sal_uInt16 nId = ( it->nPropId & 0x0FFF );
26870 + if ( bAlreadyWritten[ nId ] )
26875 + case ESCHER_Prop_WrapText: // 133
26877 + const char *pWrapType = NULL;
26878 + switch ( it->nPropValue )
26880 + case ESCHER_WrapSquare:
26881 + case ESCHER_WrapByPoints: pWrapType = "square"; break; // these two are equivalent according to the docu
26882 + case ESCHER_WrapNone: pWrapType = "none"; break;
26883 + case ESCHER_WrapTopBottom: pWrapType = "topAndBottom"; break;
26884 + case ESCHER_WrapThrough: pWrapType = "through"; break;
26887 + m_pSerializer->singleElementNS( XML_w10, XML_wrap,
26888 + FSNS( XML_w10, XML_type ), pWrapType,
26891 + bAlreadyWritten[ ESCHER_Prop_WrapText ] = true;
26895 + case ESCHER_Prop_geoLeft: // 320
26896 + case ESCHER_Prop_geoTop: // 321
26898 + sal_uInt32 nLeft = 0, nTop = 0;
26900 + if ( nId == ESCHER_Prop_geoLeft )
26902 + nLeft = it->nPropValue;
26903 + rProps.GetOpt( ESCHER_Prop_geoTop, nTop );
26907 + nTop = it->nPropValue;
26908 + rProps.GetOpt( ESCHER_Prop_geoLeft, nLeft );
26911 + m_pShapeAttrList->add( XML_coordorigin,
26912 + OStringBuffer( 20 ).append( sal_Int32( nLeft ) )
26913 + .append( "," ).append( sal_Int32( nTop ) )
26914 + .makeStringAndClear() );
26916 + bAlreadyWritten[ ESCHER_Prop_geoLeft ] = true;
26917 + bAlreadyWritten[ ESCHER_Prop_geoTop ] = true;
26921 + case ESCHER_Prop_geoRight: // 322
26922 + case ESCHER_Prop_geoBottom: // 323
26924 + sal_uInt32 nLeft = 0, nRight = 0, nTop = 0, nBottom = 0;
26925 + rProps.GetOpt( ESCHER_Prop_geoLeft, nLeft );
26926 + rProps.GetOpt( ESCHER_Prop_geoTop, nTop );
26928 + if ( nId == ESCHER_Prop_geoRight )
26930 + nRight = it->nPropValue;
26931 + rProps.GetOpt( ESCHER_Prop_geoBottom, nBottom );
26935 + nBottom = it->nPropValue;
26936 + rProps.GetOpt( ESCHER_Prop_geoRight, nRight );
26939 + m_pShapeAttrList->add( XML_coordsize,
26940 + OStringBuffer( 20 ).append( sal_Int32( nRight ) - sal_Int32( nLeft ) )
26941 + .append( "," ).append( sal_Int32( nBottom ) - sal_Int32( nTop ) )
26942 + .makeStringAndClear() );
26944 + bAlreadyWritten[ ESCHER_Prop_geoRight ] = true;
26945 + bAlreadyWritten[ ESCHER_Prop_geoBottom ] = true;
26948 + case ESCHER_Prop_pVertices: // 325
26949 + case ESCHER_Prop_pSegmentInfo: // 326
26951 + EscherPropSortStruct aVertices;
26952 + EscherPropSortStruct aSegments;
26954 + if ( rProps.GetOpt( ESCHER_Prop_pVertices, aVertices ) &&
26955 + rProps.GetOpt( ESCHER_Prop_pSegmentInfo, aSegments ) )
26957 + const sal_uInt8 *pVerticesIt = aVertices.pBuf + 6;
26958 + const sal_uInt8 *pSegmentIt = aSegments.pBuf;
26959 + OStringBuffer aPath( 512 );
26961 + sal_uInt16 nPointSize = aVertices.pBuf[4] + ( aVertices.pBuf[5] << 8 );
26963 + // number of segments
26964 + sal_uInt16 nSegments = impl_GetUInt16( pSegmentIt );
26967 + for ( ; nSegments; --nSegments )
26969 + sal_uInt16 nSeg = impl_GetUInt16( pSegmentIt );
26972 + case 0x4000: // moveto
26974 + sal_Int32 nX = impl_GetPointComponent( pVerticesIt, nPointSize );
26975 + sal_Int32 nY = impl_GetPointComponent( pVerticesIt, nPointSize );
26976 + aPath.append( "m" ).append( nX ).append( "," ).append( nY );
26982 + case 0x0001: // lineto
26984 + sal_Int32 nX = impl_GetPointComponent( pVerticesIt, nPointSize );
26985 + sal_Int32 nY = impl_GetPointComponent( pVerticesIt, nPointSize );
26986 + aPath.append( "l" ).append( nX ).append( "," ).append( nY );
26989 + case 0x2001: // curveto
26991 + sal_Int32 nX1 = impl_GetPointComponent( pVerticesIt, nPointSize );
26992 + sal_Int32 nY1 = impl_GetPointComponent( pVerticesIt, nPointSize );
26993 + sal_Int32 nX2 = impl_GetPointComponent( pVerticesIt, nPointSize );
26994 + sal_Int32 nY2 = impl_GetPointComponent( pVerticesIt, nPointSize );
26995 + sal_Int32 nX3 = impl_GetPointComponent( pVerticesIt, nPointSize );
26996 + sal_Int32 nY3 = impl_GetPointComponent( pVerticesIt, nPointSize );
26997 + aPath.append( "c" ).append( nX1 ).append( "," ).append( nY1 ).append( "," )
26998 + .append( nX2 ).append( "," ).append( nY2 ).append( "," )
26999 + .append( nX3 ).append( "," ).append( nY3 );
27002 + case 0xaa00: // nofill
27003 + aPath.append( "nf" );
27005 + case 0xab00: // nostroke
27006 + aPath.append( "ns" );
27008 + case 0x6001: // close
27009 + aPath.append( "x" );
27011 + case 0x8000: // end
27012 + aPath.append( "e" );
27015 +#if OSL_DEBUG_LEVEL > 0
27016 + fprintf( stderr, "TODO: unhandled segment '%x' in the path\n", nSeg );
27022 + if ( aPath.getLength() )
27023 + m_pShapeAttrList->add( XML_path, aPath.getStr() );
27025 +#if OSL_DEBUG_LEVEL > 0
27027 + fprintf( stderr, "TODO: unhandled shape path, missing either pVertices or pSegmentInfo.\n" );
27030 + bAlreadyWritten[ ESCHER_Prop_pVertices ] = true;
27031 + bAlreadyWritten[ ESCHER_Prop_pSegmentInfo ] = true;
27034 + case ESCHER_Prop_fillType: // 384
27035 + case ESCHER_Prop_fillColor: // 385
27036 + case ESCHER_Prop_fillBackColor: // 387
27037 + case ESCHER_Prop_fNoFillHitTest: // 447
27039 + sal_uInt32 nValue;
27040 + sax_fastparser::FastAttributeList *pAttrList = m_pSerializer->createAttrList();
27042 + if ( rProps.GetOpt( ESCHER_Prop_fillType, nValue ) )
27044 + const char *pFillType = NULL;
27045 + switch ( nValue )
27047 + case ESCHER_FillSolid: pFillType = "solid"; break;
27048 + // TODO case ESCHER_FillPattern: pFillType = ""; break;
27049 + // TODO case ESCHER_FillTexture: pFillType = ""; break;
27050 + // TODO case ESCHER_FillPicture: pFillType = ""; break;
27051 + // TODO case ESCHER_FillShade: pFillType = ""; break;
27052 + // TODO case ESCHER_FillShadeCenter: pFillType = ""; break;
27053 + // TODO case ESCHER_FillShadeShape: pFillType = ""; break;
27054 + // TODO case ESCHER_FillShadeScale: pFillType = ""; break;
27055 + // TODO case ESCHER_FillShadeTitle: pFillType = ""; break;
27056 + // TODO case ESCHER_FillBackground: pFillType = ""; break;
27058 +#if OSL_DEBUG_LEVEL > 0
27059 + fprintf( stderr, "TODO: unhandled fill type\n" );
27064 + pAttrList->add( XML_type, pFillType );
27067 + if ( rProps.GetOpt( ESCHER_Prop_fillColor, nValue ) )
27068 + impl_AddColor( pAttrList, XML_color, nValue );
27070 + if ( rProps.GetOpt( ESCHER_Prop_fillBackColor, nValue ) )
27071 + impl_AddColor( pAttrList, XML_color2, nValue );
27073 + if ( rProps.GetOpt( ESCHER_Prop_fNoFillHitTest, nValue ) )
27074 + impl_AddBool( pAttrList, XML_detectmouseclick, nValue );
27076 + m_pSerializer->singleElementNS( XML_v, XML_fill, XFastAttributeListRef( pAttrList ) );
27078 + bAlreadyWritten[ ESCHER_Prop_fillType ] = true;
27079 + bAlreadyWritten[ ESCHER_Prop_fillColor ] = true;
27080 + bAlreadyWritten[ ESCHER_Prop_fillBackColor ] = true;
27081 + bAlreadyWritten[ ESCHER_Prop_fNoFillHitTest ] = true;
27084 + case ESCHER_Prop_lineColor: // 448
27085 + case ESCHER_Prop_lineWidth: // 459
27086 + case ESCHER_Prop_lineDashing: // 462
27087 + case ESCHER_Prop_lineStartArrowhead: // 464
27088 + case ESCHER_Prop_lineEndArrowhead: // 465
27089 + case ESCHER_Prop_lineStartArrowWidth: // 466
27090 + case ESCHER_Prop_lineStartArrowLength: // 467
27091 + case ESCHER_Prop_lineEndArrowWidth: // 468
27092 + case ESCHER_Prop_lineEndArrowLength: // 469
27093 + case ESCHER_Prop_lineJoinStyle: // 470
27094 + case ESCHER_Prop_lineEndCapStyle: // 471
27096 + sal_uInt32 nValue;
27097 + sax_fastparser::FastAttributeList *pAttrList = m_pSerializer->createAttrList();
27099 + if ( rProps.GetOpt( ESCHER_Prop_lineColor, nValue ) )
27100 + impl_AddColor( pAttrList, XML_color, nValue );
27102 + if ( rProps.GetOpt( ESCHER_Prop_lineWidth, nValue ) )
27103 + impl_AddInt( pAttrList, XML_weight, nValue );
27105 + if ( rProps.GetOpt( ESCHER_Prop_lineDashing, nValue ) )
27107 + const char *pDashStyle = NULL;
27108 + switch ( nValue )
27110 + case ESCHER_LineSolid: pDashStyle = "solid"; break;
27111 + case ESCHER_LineDashSys: pDashStyle = "shortdash"; break;
27112 + case ESCHER_LineDotSys: pDashStyle = "shortdot"; break;
27113 + case ESCHER_LineDashDotSys: pDashStyle = "shortdashdot"; break;
27114 + case ESCHER_LineDashDotDotSys: pDashStyle = "shortdashdotdot"; break;
27115 + case ESCHER_LineDotGEL: pDashStyle = "dot"; break;
27116 + case ESCHER_LineDashGEL: pDashStyle = "dash"; break;
27117 + case ESCHER_LineLongDashGEL: pDashStyle = "longdash"; break;
27118 + case ESCHER_LineDashDotGEL: pDashStyle = "dashdot"; break;
27119 + case ESCHER_LineLongDashDotGEL: pDashStyle = "longdashdot"; break;
27120 + case ESCHER_LineLongDashDotDotGEL: pDashStyle = "longdashdotdot"; break;
27122 + if ( pDashStyle )
27123 + pAttrList->add( XML_dashstyle, pDashStyle );
27126 + if ( rProps.GetOpt( ESCHER_Prop_lineStartArrowhead, nValue ) )
27127 + impl_AddArrowHead( pAttrList, XML_startarrow, nValue );
27129 + if ( rProps.GetOpt( ESCHER_Prop_lineEndArrowhead, nValue ) )
27130 + impl_AddArrowHead( pAttrList, XML_endarrow, nValue );
27132 + if ( rProps.GetOpt( ESCHER_Prop_lineStartArrowWidth, nValue ) )
27133 + impl_AddArrowWidth( pAttrList, XML_startarrowwidth, nValue );
27135 + if ( rProps.GetOpt( ESCHER_Prop_lineStartArrowLength, nValue ) )
27136 + impl_AddArrowLength( pAttrList, XML_startarrowlength, nValue );
27138 + if ( rProps.GetOpt( ESCHER_Prop_lineEndArrowWidth, nValue ) )
27139 + impl_AddArrowWidth( pAttrList, XML_endarrowwidth, nValue );
27141 + if ( rProps.GetOpt( ESCHER_Prop_lineEndArrowLength, nValue ) )
27142 + impl_AddArrowLength( pAttrList, XML_endarrowlength, nValue );
27144 + if ( rProps.GetOpt( ESCHER_Prop_lineJoinStyle, nValue ) )
27146 + const char *pJoinStyle = NULL;
27147 + switch ( nValue )
27149 + case ESCHER_LineJoinBevel: pJoinStyle = "bevel"; break;
27150 + case ESCHER_LineJoinMiter: pJoinStyle = "miter"; break;
27151 + case ESCHER_LineJoinRound: pJoinStyle = "round"; break;
27153 + if ( pJoinStyle )
27154 + pAttrList->add( XML_joinstyle, pJoinStyle );
27157 + if ( rProps.GetOpt( ESCHER_Prop_lineEndCapStyle, nValue ) )
27159 + const char *pEndCap = NULL;
27160 + switch ( nValue )
27162 + case ESCHER_LineEndCapRound: pEndCap = "round"; break;
27163 + case ESCHER_LineEndCapSquare: pEndCap = "square"; break;
27164 + case ESCHER_LineEndCapFlat: pEndCap = "flat"; break;
27167 + pAttrList->add( XML_endcap, pEndCap );
27170 + m_pSerializer->singleElementNS( XML_v, XML_stroke, XFastAttributeListRef( pAttrList ) );
27172 + bAlreadyWritten[ ESCHER_Prop_lineColor ] = true;
27173 + bAlreadyWritten[ ESCHER_Prop_lineWidth ] = true;
27174 + bAlreadyWritten[ ESCHER_Prop_lineDashing ] = true;
27175 + bAlreadyWritten[ ESCHER_Prop_lineStartArrowhead ] = true;
27176 + bAlreadyWritten[ ESCHER_Prop_lineEndArrowhead ] = true;
27177 + bAlreadyWritten[ ESCHER_Prop_lineStartArrowWidth ] = true;
27178 + bAlreadyWritten[ ESCHER_Prop_lineStartArrowLength ] = true;
27179 + bAlreadyWritten[ ESCHER_Prop_lineEndArrowWidth ] = true;
27180 + bAlreadyWritten[ ESCHER_Prop_lineEndArrowLength ] = true;
27181 + bAlreadyWritten[ ESCHER_Prop_lineJoinStyle ] = true;
27182 + bAlreadyWritten[ ESCHER_Prop_lineEndCapStyle ] = true;
27185 + case ESCHER_Prop_fHidden:
27186 + m_pShapeStyle->append( ";visibility:hidden" );
27189 +#if OSL_DEBUG_LEVEL > 0
27190 + fprintf( stderr, "TODO VMLExport::Commit(), unimplemented id: %d, value: %d, data: [%d, %p]\n",
27191 + it->nPropId, it->nPropValue, it->nPropSize, it->pBuf );
27192 + if ( it->nPropSize )
27194 + const sal_uInt8 *pIt = it->pBuf;
27195 + fprintf( stderr, " ( " );
27196 + for ( int nCount = it->nPropSize; nCount; --nCount )
27198 + fprintf( stderr, "%02x ", *pIt );
27201 + fprintf( stderr, ")\n" );
27208 + m_pSerializer->mergeTopMarks( sax_fastparser::MERGE_MARKS_POSTPONE );
27211 +OString VMLExport::ShapeIdString( sal_uInt32 nId )
27213 + return OStringBuffer( 20 ).append( "shape_" ).append( sal_Int64( nId ) ).makeStringAndClear();
27216 +void VMLExport::AddLineDimensions( const Rectangle& rRectangle )
27219 + if ( m_pShapeStyle->getLength() )
27220 + m_pShapeStyle->append( ";" );
27222 + m_pShapeStyle->append( "position:absolute" );
27224 + switch ( m_nShapeFlags & 0xC0 )
27226 + case 0x40: m_pShapeStyle->append( ";flip:y" ); break;
27227 + case 0x80: m_pShapeStyle->append( ";flip:x" ); break;
27228 + case 0xC0: m_pShapeStyle->append( ";flip:xy" ); break;
27231 + // the actual dimensions
27232 + OString aLeft, aTop, aRight, aBottom;
27234 + if ( mnGroupLevel == 1 )
27236 + const OString aPt( "pt" );
27237 + aLeft = OString::valueOf( double( rRectangle.Left() ) / 20 ) + aPt;
27238 + aTop = OString::valueOf( double( rRectangle.Top() ) / 20 ) + aPt;
27239 + aRight = OString::valueOf( double( rRectangle.Right() ) / 20 ) + aPt;
27240 + aBottom = OString::valueOf( double( rRectangle.Bottom() ) / 20 ) + aPt;
27244 + aLeft = OString::valueOf( rRectangle.Left() );
27245 + aTop = OString::valueOf( rRectangle.Top() );
27246 + aRight = OString::valueOf( rRectangle.Right() );
27247 + aBottom = OString::valueOf( rRectangle.Bottom() );
27250 + m_pShapeAttrList->add( XML_from,
27251 + OStringBuffer( 20 ).append( aLeft )
27252 + .append( "," ).append( aTop )
27253 + .makeStringAndClear() );
27255 + m_pShapeAttrList->add( XML_to,
27256 + OStringBuffer( 20 ).append( aRight )
27257 + .append( "," ).append( aBottom )
27258 + .makeStringAndClear() );
27261 +void VMLExport::AddRectangleDimensions( rtl::OStringBuffer& rBuffer, const Rectangle& rRectangle )
27263 + if ( rBuffer.getLength() )
27264 + rBuffer.append( ";" );
27266 + rBuffer.append( "position:absolute;" );
27268 + if ( mnGroupLevel == 1 )
27270 + rBuffer.append( "margin-left:" ).append( double( rRectangle.Left() ) / 20 )
27271 + .append( "pt;margin-top:" ).append( double( rRectangle.Top() ) / 20 )
27272 + .append( "pt;width:" ).append( double( rRectangle.Right() - rRectangle.Left() ) / 20 )
27273 + .append( "pt;height:" ).append( double( rRectangle.Bottom() - rRectangle.Top() ) / 20 )
27278 + rBuffer.append( "left:" ).append( rRectangle.Left() )
27279 + .append( ";top:" ).append( rRectangle.Top() )
27280 + .append( ";width:" ).append( rRectangle.Right() - rRectangle.Left() )
27281 + .append( ";height:" ).append( rRectangle.Bottom() - rRectangle.Top() );
27285 +void VMLExport::AddShapeAttribute( sal_Int32 nAttribute, const rtl::OString& rValue )
27287 + m_pShapeAttrList->add( nAttribute, rValue );
27290 +extern const char* pShapeTypes[];
27292 +sal_Int32 VMLExport::StartShape()
27294 + if ( m_nShapeType == ESCHER_ShpInst_Nil )
27297 + // some of the shapes have their own name ;-)
27298 + sal_Int32 nShapeElement = -1;
27299 + bool bReferToShapeType = false;
27300 + switch ( m_nShapeType )
27302 + case ESCHER_ShpInst_NotPrimitive: nShapeElement = XML_shape; break;
27303 + case ESCHER_ShpInst_Rectangle: nShapeElement = XML_rect; break;
27304 + case ESCHER_ShpInst_RoundRectangle: nShapeElement = XML_roundrect; break;
27305 + case ESCHER_ShpInst_Ellipse: nShapeElement = XML_oval; break;
27306 + case ESCHER_ShpInst_Arc: nShapeElement = XML_arc; break;
27307 + case ESCHER_ShpInst_Line: nShapeElement = XML_line; break;
27309 + if ( m_nShapeType < ESCHER_ShpInst_COUNT )
27311 + nShapeElement = XML_shape;
27313 + // a predefined shape?
27314 + const char* pShapeType = pShapeTypes[ m_nShapeType ];
27315 + if ( pShapeType )
27317 + bReferToShapeType = true;
27318 + if ( !m_pShapeTypeWritten[ m_nShapeType ] )
27320 + m_pSerializer->write( pShapeType );
27321 + m_pShapeTypeWritten[ m_nShapeType ] = true;
27326 + // rectangle is probably the best fallback...
27327 + nShapeElement = XML_rect;
27334 + m_pShapeAttrList->add( XML_style, m_pShapeStyle->makeStringAndClear() );
27336 + if ( nShapeElement >= 0 )
27338 + if ( bReferToShapeType )
27340 + m_pShapeAttrList->add( XML_type, OStringBuffer( 20 )
27341 + .append( "shapetype_" ).append( sal_Int32( m_nShapeType ) )
27342 + .makeStringAndClear() );
27345 + // start of the shape
27346 + m_pSerializer->startElementNS( XML_v, nShapeElement, XFastAttributeListRef( m_pShapeAttrList ) );
27349 + return nShapeElement;
27352 +void VMLExport::EndShape( sal_Int32 nShapeElement )
27354 + if ( nShapeElement >= 0 )
27356 + // end of the shape
27357 + m_pSerializer->endElementNS( XML_v, nShapeElement );
27360 diff --git oox/source/token/tokens.txt oox/source/token/tokens.txt
27361 index 96f14da..4b3d47d 100644
27362 --- oox/source/token/tokens.txt
27363 +++ oox/source/token/tokens.txt
27364 @@ -1457,6 +1457,9 @@ cyan
27374 @@ -5415,7 +5418,9 @@ vol
27384 @@ -5493,6 +5498,7 @@ workbookView
27392 @@ -5516,6 +5522,7 @@ xMode
27400 @@ -5534,6 +5541,7 @@ xmlns
27408 diff --git oox/util/makefile.mk oox/util/makefile.mk
27409 index 03f6c21..119e52e 100644
27410 --- oox/util/makefile.mk
27411 +++ oox/util/makefile.mk
27412 @@ -57,7 +57,8 @@ LIB1FILES= \
27416 - $(SLB)$/docprop.lib
27417 + $(SLB)$/docprop.lib\
27418 + $(SLB)$/export.lib
27420 # --- Shared-Library -----------------------------------------------
27422 @@ -75,7 +76,13 @@ SHL1STDLIBS= \
27432 + $(SVXMSFILTERLIB) \
27435 SHL1DEF= $(MISC)$/$(SHL1TARGET).def
27436 SHL1LIBS= $(LIB1TARGET)
27437 diff --git reportdesign/util/makefile.mk reportdesign/util/makefile.mk
27438 index b114530..16eca7c 100644
27439 --- reportdesign/util/makefile.mk
27440 +++ reportdesign/util/makefile.mk
27441 @@ -54,6 +54,7 @@ LIB1FILES=\
27442 SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
27449 @@ -107,6 +107,7 @@ LIB2FILES=\
27450 SHL2TARGET=$(TARGET2)$(DLLPOSTFIX)
27457 @@ -174,7 +174,7 @@ LIB3FILES=\
27458 SHL3TARGET=$(TARGET3)$(DLLPOSTFIX)
27466 diff --git sax/inc/sax/fshelper.hxx sax/inc/sax/fshelper.hxx
27467 index 70b22b5..1c95afc 100644
27468 --- sax/inc/sax/fshelper.hxx
27469 +++ sax/inc/sax/fshelper.hxx
27470 @@ -39,11 +39,13 @@
27471 #include <sax/fastattribs.hxx>
27472 #include "sax/dllapi.h"
27474 -#define FSNS(namespace, element) ((namespace << 16) | element)
27475 -#define FSEND -1 // same as XML_TOKEN_INVALID
27476 +#define FSNS(namespc, element) ((namespc << 16) | element)
27477 +const sal_Int32 FSEND = -1; // same as XML_TOKEN_INVALID
27479 namespace sax_fastparser {
27481 +enum MergeMarksEnum { MERGE_MARKS_APPEND = 0, MERGE_MARKS_PREPEND = 1, MERGE_MARKS_POSTPONE = 2 };
27483 typedef ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList > XFastAttributeListRef;
27485 class FastSaxSerializer;
27486 @@ -82,6 +84,10 @@ public:
27487 inline void singleElementNS(sal_Int32 namespaceTokenId, sal_Int32 elementTokenId, XFastAttributeListRef xAttrList)
27488 { singleElementV(FSNS( namespaceTokenId, elementTokenId), xAttrList); }
27490 + void startElementV(sal_Int32 elementTokenId, XFastAttributeListRef xAttrList);
27491 + inline void startElementNS(sal_Int32 namespaceTokenId, sal_Int32 elementTokenId, XFastAttributeListRef xAttrList)
27492 + { startElementV( FSNS( namespaceTokenId, elementTokenId ), xAttrList ); }
27494 FastSerializerHelper* write(const char* value);
27495 FastSerializerHelper* write(const rtl::OUString& value);
27496 FastSerializerHelper* write(sal_Int32 value);
27497 @@ -99,7 +105,7 @@ public:
27498 FastAttributeList *createAttrList();
27501 - void mergeTopMarks( bool bPrepend = false );
27502 + void mergeTopMarks( MergeMarksEnum eMergeType = MERGE_MARKS_APPEND );
27506 diff --git sax/source/tools/fastserializer.cxx sax/source/tools/fastserializer.cxx
27507 index 0920886..6f159b8 100644
27508 --- sax/source/tools/fastserializer.cxx
27509 +++ sax/source/tools/fastserializer.cxx
27510 @@ -326,43 +326,29 @@ namespace sax_fastparser {
27512 void FastSaxSerializer::mark()
27514 - maMarkStack.push( Int8Sequence() );
27515 + maMarkStack.push( ForMerge() );
27518 - void FastSaxSerializer::mergeTopMarks( bool bPrepend )
27519 + void FastSaxSerializer::mergeTopMarks( sax_fastparser::MergeMarksEnum eMergeType )
27521 if ( maMarkStack.empty() )
27524 if ( maMarkStack.size() == 1 )
27526 - mxOutputStream->writeBytes( maMarkStack.top() );
27527 + mxOutputStream->writeBytes( maMarkStack.top().getData() );
27533 + const Int8Sequence aMerge( maMarkStack.top().getData() );
27534 + maMarkStack.pop();
27536 + switch ( eMergeType )
27538 - const Int8Sequence aMerge( maMarkStack.top() );
27539 - maMarkStack.pop();
27541 - sal_Int32 nMergeLen = aMerge.getLength();
27542 - if ( nMergeLen > 0 )
27544 - Int8Sequence &rTop = maMarkStack.top();
27545 - sal_Int32 nTopLen = rTop.getLength();
27547 - rTop.realloc( nTopLen + nMergeLen );
27550 - // prepend the aMerge to the rTop
27551 - memmove( rTop.getArray() + nMergeLen, rTop.getConstArray(), nTopLen );
27552 - memcpy( rTop.getArray(), aMerge.getConstArray(), nMergeLen );
27556 - // append the aMerge to the rTop
27557 - memcpy( rTop.getArray() + nTopLen, aMerge.getConstArray(), nMergeLen );
27560 + case MERGE_MARKS_APPEND: maMarkStack.top().append( aMerge ); break;
27561 + case MERGE_MARKS_PREPEND: maMarkStack.top().prepend( aMerge ); break;
27562 + case MERGE_MARKS_POSTPONE: maMarkStack.top().postpone( aMerge ); break;
27566 @@ -371,15 +357,50 @@ namespace sax_fastparser {
27567 if ( maMarkStack.empty() )
27568 mxOutputStream->writeBytes( aData );
27570 + maMarkStack.top().append( aData );
27573 + FastSaxSerializer::Int8Sequence& FastSaxSerializer::ForMerge::getData()
27575 + merge( maData, maPostponed, true );
27576 + maPostponed.realloc( 0 );
27581 + void FastSaxSerializer::ForMerge::prepend( const Int8Sequence &rWhat )
27583 + merge( maData, rWhat, false );
27586 + void FastSaxSerializer::ForMerge::append( const Int8Sequence &rWhat )
27588 + merge( maData, rWhat, true );
27591 + void FastSaxSerializer::ForMerge::postpone( const Int8Sequence &rWhat )
27593 + merge( maPostponed, rWhat, true );
27596 + void FastSaxSerializer::ForMerge::merge( Int8Sequence &rTop, const Int8Sequence &rMerge, bool bAppend )
27598 + sal_Int32 nMergeLen = rMerge.getLength();
27599 + if ( nMergeLen > 0 )
27601 - sal_Int32 nDataLen = aData.getLength();
27602 - if ( nDataLen > 0 )
27604 - Int8Sequence &rTop = maMarkStack.top();
27605 - sal_Int32 nTopLen = rTop.getLength();
27606 + sal_Int32 nTopLen = rTop.getLength();
27608 - rTop.realloc( nTopLen + nDataLen );
27609 - memcpy( rTop.getArray() + nTopLen, aData.getConstArray(), nDataLen );
27610 + rTop.realloc( nTopLen + nMergeLen );
27613 + // append the rMerge to the rTop
27614 + memcpy( rTop.getArray() + nTopLen, rMerge.getConstArray(), nMergeLen );
27618 + // prepend the rMerge to the rTop
27619 + memmove( rTop.getArray() + nMergeLen, rTop.getConstArray(), nTopLen );
27620 + memcpy( rTop.getArray(), rMerge.getConstArray(), nMergeLen );
27624 diff --git sax/source/tools/fastserializer.hxx sax/source/tools/fastserializer.hxx
27625 index 826c45f..429e7db 100644
27626 --- sax/source/tools/fastserializer.hxx
27627 +++ sax/source/tools/fastserializer.hxx
27631 #include "sax/dllapi.h"
27632 +#include "sax/fshelper.hxx"
27634 #define SERIALIZER_IMPLEMENTATION_NAME "com.sun.star.comp.extensions.xml.sax.FastSerializer"
27635 #define SERIALIZER_SERVICE_NAME "com.sun.star.xml.sax.FastSerializer"
27636 @@ -112,27 +113,49 @@ public:
27638 /** Merge 2 topmost marks.
27640 - There are 2 possibilities - prepend the top before the second top-most
27641 - mark, or append it; prepending brings the possibility to switch parts
27643 + There are 3 possibilities - prepend the top before the second top-most
27644 + mark, append it, or append it later; prepending brings the possibility
27645 + to switch parts of the output, appending later allows to write some
27646 + output in advance.
27648 Writes the result to the output stream if the mark stack becomes empty
27651 + When the MERGE_MARKS_POSTPONE is specified, the merge happens just
27652 + before the next merge.
27656 - void mergeTopMarks( bool bPrepend = false );
27657 + void mergeTopMarks( sax_fastparser::MergeMarksEnum eMergeType = sax_fastparser::MERGE_MARKS_APPEND );
27660 ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > mxOutputStream;
27661 ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastTokenHandler > mxFastTokenHandler;
27663 typedef ::com::sun::star::uno::Sequence< ::sal_Int8 > Int8Sequence;
27664 - ::std::stack< Int8Sequence > maMarkStack;
27667 + Int8Sequence maData;
27668 + Int8Sequence maPostponed;
27671 + ForMerge() : maData(), maPostponed() {}
27673 + Int8Sequence& getData();
27675 + void prepend( const Int8Sequence &rWhat );
27676 + void append( const Int8Sequence &rWhat );
27677 + void postpone( const Int8Sequence &rWhat );
27680 + static void merge( Int8Sequence &rTop, const Int8Sequence &rMerge, bool bAppend );
27683 + ::std::stack< ForMerge > maMarkStack;
27685 void writeFastAttributeList( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs );
27686 void write( const ::rtl::OUString& s );
27690 /** Forward the call to the output stream, or write to the stack.
27692 @@ -144,4 +167,3 @@ protected:
27693 } // namespace sax_fastparser
27697 diff --git sax/source/tools/fshelper.cxx sax/source/tools/fshelper.cxx
27698 index 2e3d42d..61d4661 100644
27699 --- sax/source/tools/fshelper.cxx
27700 +++ sax/source/tools/fshelper.cxx
27701 @@ -114,6 +114,12 @@ void FastSerializerHelper::endElement(sal_Int32 elementTokenId)
27702 mpSerializer->endFastElement(elementTokenId);
27705 +void FastSerializerHelper::startElementV(sal_Int32 elementTokenId, XFastAttributeListRef xAttrList)
27707 + mpSerializer->startFastElement(elementTokenId, xAttrList);
27711 void FastSerializerHelper::singleElement(const char* elementName, XFastAttributeListRef xAttrList)
27713 mpSerializer->singleUnknownElement(::rtl::OUString(), ::rtl::OUString::createFromAscii(elementName), xAttrList);
27714 @@ -181,9 +187,9 @@ void FastSerializerHelper::mark()
27715 mpSerializer->mark();
27718 -void FastSerializerHelper::mergeTopMarks( bool bPrepend )
27719 +void FastSerializerHelper::mergeTopMarks( MergeMarksEnum eMergeType )
27721 - mpSerializer->mergeTopMarks( bPrepend );
27722 + mpSerializer->mergeTopMarks( eMergeType );
27725 FastAttributeList * FastSerializerHelper::createAttrList()
27726 diff --git sc/util/makefile.mk sc/util/makefile.mk
27727 index c1e152f..88e0594 100644
27728 --- sc/util/makefile.mk
27729 +++ sc/util/makefile.mk
27730 @@ -83,6 +83,7 @@ SHL1STDLIBS= \
27738 @@ -189,6 +190,8 @@ SHL6STDLIBS= \
27743 + $(SVXMSFILTERLIB) \
27747 @@ -221,6 +224,7 @@ DEF8NAME=$(SHL8TARGET)
27755 @@ -316,7 +320,7 @@ SHL9STDLIBS= \
27764 diff --git scp2/source/ooo/file_library_ooo.scp scp2/source/ooo/file_library_ooo.scp
27765 index 5e4f05d..7d8d4f4 100644
27766 --- scp2/source/ooo/file_library_ooo.scp
27767 +++ scp2/source/ooo/file_library_ooo.scp
27768 @@ -1449,7 +1449,11 @@ STD_LIB_FILE_PATCH( gid_File_Lib_Svl, svl )
27769 STD_UNO_LIB_FILE( gid_File_Lib_Svtools, svt )
27770 SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Svtmisc, svtmisc.uno )
27772 +STD_LIB_FILE( gid_File_Lib_Svx_Core, svxcore)
27773 STD_UNO_LIB_FILE( gid_File_Lib_Svx, svx)
27775 +STD_LIB_FILE( gid_File_Lib_Svx_Msfilter, svxmsfilter)
27777 STD_UNO_LIB_FILE( gid_File_Lib_TextConversionDlgs, textconversiondlgs)
27779 STD_UNO_LIB_FILE( gid_File_Lib_Sw , sw)
27780 diff --git scp2/source/ooo/file_ooo.scp scp2/source/ooo/file_ooo.scp
27781 index b2643a4..f731f78 100644
27782 --- scp2/source/ooo/file_ooo.scp
27783 +++ scp2/source/ooo/file_ooo.scp
27784 @@ -359,7 +359,7 @@ End
27786 STD_FILTER_FILE( gid_File_Filter_Eme, eme)
27788 -STD_FILTER_FILE( gid_File_Filter_Emp, emp)
27789 +STD_FILTER_FILE( gid_File_Filter_Sdfilt, sdfilt)
27791 STD_FILTER_FILE( gid_File_Filter_Icg, icg)
27793 --- scp2/source/ooo/module_hidden_ooo.scp
27794 +++ scp2/source/ooo/module_hidden_ooo.scp
27795 @@ -140,7 +140,7 @@ Module gid_Module_Root_Files_4
27796 Styles = (HIDDEN_ROOT);
27797 Files = (gid_File_Dat_Root4,
27798 gid_File_Filter_Eme,
27799 - gid_File_Filter_Emp,
27800 + gid_File_Filter_Sdfilt,
27801 gid_File_Filter_Icg,
27802 gid_File_Filter_Egi,
27803 gid_File_Filter_Epb,
27804 diff --git sd/inc/CustomAnimationEffect.hxx sd/inc/CustomAnimationEffect.hxx
27805 index d96d6fa..ce3cd59 100644
27806 --- sd/inc/CustomAnimationEffect.hxx
27807 +++ sd/inc/CustomAnimationEffect.hxx
27808 @@ -38,15 +38,13 @@
27809 #include <com/sun/star/util/XChangesListener.hpp>
27810 #include <tools/string.hxx>
27812 -#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
27813 #include <boost/shared_ptr.hpp>
27816 -#ifndef _UTL_STLTYPES_HXX_
27817 #include <comphelper/stl_types.hxx>
27819 #include <vcl/timer.hxx>
27821 +#include <sddllapi.h>
27826 @@ -76,7 +74,7 @@ class CustomAnimationEffect
27827 friend class EffectSequenceHelper;
27830 - CustomAnimationEffect( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode );
27831 + SD_DLLPUBLIC CustomAnimationEffect( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode );
27832 virtual ~CustomAnimationEffect();
27834 const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& getNode() const { return mxNode; }
27835 @@ -94,7 +92,7 @@ public:
27836 void setPresetClass( sal_Int16 nPresetClass );
27838 sal_Int16 getNodeType() const { return mnNodeType; }
27839 - void setNodeType( sal_Int16 nNodeType );
27840 + SD_DLLPUBLIC void setNodeType( sal_Int16 nNodeType );
27842 ::com::sun::star::uno::Any getRepeatCount() const;
27843 void setRepeatCount( const ::com::sun::star::uno::Any& rRepeatCount );
27844 @@ -106,10 +104,10 @@ public:
27845 void setFill( sal_Int16 nFill );
27847 double getBegin() const { return mfBegin; }
27848 - void setBegin( double fBegin );
27849 + SD_DLLPUBLIC void setBegin( double fBegin );
27851 double getDuration() const { return mfDuration; }
27852 - void setDuration( double fDuration );
27853 + SD_DLLPUBLIC void setDuration( double fDuration );
27855 double getAbsoluteDuration() const { return mfAbsoluteDuration; }
27857 @@ -117,13 +115,13 @@ public:
27858 void setName( const String& rName ) { maName = rName; }
27860 sal_Int16 getIterateType() const { return mnIterateType; }
27861 - void setIterateType( sal_Int16 nIterateType );
27862 + SD_DLLPUBLIC void setIterateType( sal_Int16 nIterateType );
27864 double getIterateInterval() const { return mfIterateInterval; }
27865 - void setIterateInterval( double fIterateInterval );
27866 + SD_DLLPUBLIC void setIterateInterval( double fIterateInterval );
27868 ::com::sun::star::uno::Any getTarget() const { return maTarget; }
27869 - void setTarget( const ::com::sun::star::uno::Any& rTarget );
27870 + SD_DLLPUBLIC void setTarget( const ::com::sun::star::uno::Any& rTarget );
27872 sal_Bool hasAfterEffect() const { return mbHasAfterEffect; }
27873 void setHasAfterEffect( sal_Bool bHasAfterEffect ) { mbHasAfterEffect = bHasAfterEffect; }
27874 @@ -165,7 +163,7 @@ public:
27875 void setGroupId( sal_Int32 nGroupId );
27877 sal_Int16 getTargetSubItem() const { return mnTargetSubItem; }
27878 - void setTargetSubItem( sal_Int16 nSubItem );
27879 + SD_DLLPUBLIC void setTargetSubItem( sal_Int16 nSubItem );
27881 ::rtl::OUString getPath() const;
27882 void setPath( const ::rtl::OUString& rPath );
27883 @@ -175,8 +173,8 @@ public:
27885 void setAudio( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAudio >& xAudio );
27886 bool getStopAudio() const;
27887 - void setStopAudio();
27888 - void createAudio( const ::com::sun::star::uno::Any& rSource, double fVolume = 1.0 );
27889 + SD_DLLPUBLIC void setStopAudio();
27890 + SD_DLLPUBLIC void createAudio( const ::com::sun::star::uno::Any& rSource, double fVolume = 1.0 );
27891 void removeAudio();
27892 const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAudio >& getAudio() const { return mxAudio; }
27894 @@ -297,7 +295,7 @@ public:
27896 CustomAnimationEffectPtr append( const CustomAnimationPresetPtr& pDescriptor, const ::com::sun::star::uno::Any& rTarget, double fDuration = -1.0 );
27897 CustomAnimationEffectPtr append( const SdrPathObj& rPathObj, const ::com::sun::star::uno::Any& rTarget, double fDuration = -1.0 );
27898 - void append( const CustomAnimationEffectPtr& pEffect );
27899 + SD_DLLPUBLIC void append( const CustomAnimationEffectPtr& pEffect );
27900 void insert( EffectSequence::iterator& rPos, const CustomAnimationEffectPtr& pEffect );
27901 void replace( const CustomAnimationEffectPtr& pEffect, const CustomAnimationPresetPtr& pDescriptor, double fDuration = -1.0 );
27902 void replace( const CustomAnimationEffectPtr& pEffect, const CustomAnimationPresetPtr& pDescriptor, const rtl::OUString& rPresetSubType, double fDuration = -1.0 );
27903 @@ -337,7 +335,7 @@ public:
27904 // text group methods
27906 CustomAnimationTextGroupPtr findGroup( sal_Int32 nGroupId );
27907 - CustomAnimationTextGroupPtr createTextGroup( CustomAnimationEffectPtr pEffect, sal_Int32 nTextGrouping, double fTextGroupingAuto, sal_Bool bAnimateForm, sal_Bool bTextReverse );
27908 + SD_DLLPUBLIC CustomAnimationTextGroupPtr createTextGroup( CustomAnimationEffectPtr pEffect, sal_Int32 nTextGrouping, double fTextGroupingAuto, sal_Bool bAnimateForm, sal_Bool bTextReverse );
27909 void setTextGrouping( CustomAnimationTextGroupPtr pTextGroup, sal_Int32 nTextGrouping );
27910 void setAnimateForm( CustomAnimationTextGroupPtr pTextGroup, sal_Bool bAnimateForm );
27911 void setTextGroupingAuto( CustomAnimationTextGroupPtr pTextGroup, double fTextGroupingAuto );
27912 diff --git sd/inc/CustomAnimationPreset.hxx sd/inc/CustomAnimationPreset.hxx
27913 index c600fa6..699ca81 100644
27914 --- sd/inc/CustomAnimationPreset.hxx
27915 +++ sd/inc/CustomAnimationPreset.hxx
27916 @@ -59,7 +59,7 @@ public:
27918 void add( CustomAnimationEffectPtr pEffect );
27920 - ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > create( const rtl::OUString& rstrSubType );
27921 + SD_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > create( const rtl::OUString& rstrSubType );
27923 const rtl::OUString& getPresetId() const { return maPresetId; }
27924 const rtl::OUString& getProperty() const { return maProperty; }
27925 @@ -108,11 +108,11 @@ public:
27929 - static const CustomAnimationPresets& getCustomAnimationPresets();
27930 + SD_DLLPUBLIC static const CustomAnimationPresets& getCustomAnimationPresets();
27932 ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > getRandomPreset( sal_Int16 nPresetClass ) const;
27934 - CustomAnimationPresetPtr getEffectDescriptor( const rtl::OUString& rPresetId ) const;
27935 + SD_DLLPUBLIC CustomAnimationPresetPtr getEffectDescriptor( const rtl::OUString& rPresetId ) const;
27936 // const AnimationEffect* getEffect( const rtl::OUString& rPresetId ) const;
27937 // const AnimationEffect* getEffect( const rtl::OUString& rPresetId, const rtl::OUString& rPresetSubType ) const;
27939 diff --git sd/inc/animations.hxx sd/inc/animations.hxx
27940 index 1aa3cc7..3958056 100644
27941 --- sd/inc/animations.hxx
27942 +++ sd/inc/animations.hxx
27944 #ifndef _SD_ANIMATIONS_HXX_
27945 #define _SD_ANIMATIONS_HXX_
27947 +#include <sddllapi.h>
27952 @@ -21,7 +23,7 @@ typedef std::list< AfterEffectNode > AfterEffectNodeList;
27954 /** inserts the animation node in the given AfterEffectNode at the correct position
27955 in the timing hierarchie of its master */
27956 -void stl_process_after_effect_node_func(AfterEffectNode& rNode);
27957 +SD_DLLPUBLIC void stl_process_after_effect_node_func(AfterEffectNode& rNode);
27961 diff --git sd/inc/drawdoc.hxx sd/inc/drawdoc.hxx
27962 index 71145d8..2ab3559 100644
27963 --- sd/inc/drawdoc.hxx
27964 +++ sd/inc/drawdoc.hxx
27965 @@ -249,7 +249,7 @@ public:
27967 SvxNumType GetPageNumType() const;
27968 void SetPageNumType(SvxNumType eType) { mePageNumType = eType; }
27969 - String CreatePageNumValue(USHORT nNum) const;
27970 + SD_DLLPUBLIC String CreatePageNumValue(USHORT nNum) const;
27972 DocumentType GetDocumentType() const { return meDocType; }
27974 @@ -263,7 +263,7 @@ public:
27975 for newly created slides.
27977 SD_DLLPUBLIC void CreateFirstPages( SdDrawDocument* pRefDocument = 0 );
27978 - BOOL CreateMissingNotesAndHandoutPages();
27979 + SD_DLLPUBLIC BOOL CreateMissingNotesAndHandoutPages();
27981 void MovePage(USHORT nPgNum, USHORT nNewPos);
27982 void InsertPage(SdrPage* pPage, USHORT nPos=0xFFFF);
27983 @@ -439,7 +439,7 @@ public:
27985 SdAnimationInfo* GetAnimationInfo(SdrObject* pObject) const;
27987 - static SdAnimationInfo* GetShapeUserData(SdrObject& rObject, bool bCreate = false );
27988 + SD_DLLPUBLIC static SdAnimationInfo* GetShapeUserData(SdrObject& rObject, bool bCreate = false );
27990 SdIMapInfo* GetIMapInfo( SdrObject* pObject ) const;
27991 IMapObject* GetHitIMapObject( SdrObject* pObject, const Point& rWinPoint, const ::Window& rCmpWnd );
27992 @@ -592,6 +592,10 @@ public:
27993 /* converts the given western font height to a corresponding ctl font height, deppending on the system language */
27994 static sal_uInt32 convertFontHeightToCTL( sal_uInt32 nWesternFontHeight );
27996 + /** Get the style sheet pool if it was a SdStyleSheetPool.
27998 + SD_DLLPUBLIC SdStyleSheetPool* GetSdStyleSheetPool() const;
28001 /** This member stores the printer independent layout mode. Please
28002 refer to <member>SetPrinterIndependentLayout()</member> for its
28003 diff --git sd/inc/helper/simplereferencecomponent.hxx sd/inc/helper/simplereferencecomponent.hxx
28004 index 3a19ee9..f8b8554 100644
28005 --- sd/inc/helper/simplereferencecomponent.hxx
28006 +++ sd/inc/helper/simplereferencecomponent.hxx
28007 @@ -34,14 +34,10 @@
28008 #include "osl/interlck.h"
28009 #include "sal/types.h"
28011 -#ifndef INCLUDED_CSTDDEF
28013 -#define INCLUDED_CSTDDEF
28015 -#ifndef INCLUDED_NEW
28017 -#define INCLUDED_NEW
28020 +#include <sddllapi.h>
28024 @@ -60,8 +56,8 @@ public:
28025 the total number of calls to release() by a plattform dependent amount
28026 (which, hopefully, is quite large).
28030 + SD_DLLPUBLIC void acquire();
28031 + SD_DLLPUBLIC void release();
28035 diff --git sd/inc/stlpool.hxx sd/inc/stlpool.hxx
28036 index 9c7f039..d4b7d9d 100644
28037 --- sd/inc/stlpool.hxx
28038 +++ sd/inc/stlpool.hxx
28040 #include <stlfamily.hxx>
28041 #include <stlsheet.hxx>
28043 +#include <sddllapi.h>
28045 class SdStyleSheet;
28046 class SdDrawDocument;
28048 @@ -82,7 +84,7 @@ public:
28049 had to be created. This is used to assert errors in documents
28050 when styles are missing.
28052 - void CreateLayoutStyleSheets(const String& rLayoutName, sal_Bool bCheck = sal_False );
28053 + SD_DLLPUBLIC void CreateLayoutStyleSheets(const String& rLayoutName, sal_Bool bCheck = sal_False );
28054 void EraseLayoutStyleSheets(const String& rLayoutName);
28055 List* CreateLayoutSheetNames(const String& rLayoutName) const;
28056 void CreateLayoutSheetList(const String& rLayoutName, SdStyleSheetVector& rLayoutSheets);
28057 @@ -150,6 +152,3 @@ private:
28060 #endif // _SD_STLPOOL_HXX
28064 diff --git sd/source/core/drawdoc4.cxx sd/source/core/drawdoc4.cxx
28065 index abd6968..4454125 100644
28066 --- sd/source/core/drawdoc4.cxx
28067 +++ sd/source/core/drawdoc4.cxx
28068 @@ -1543,6 +1543,11 @@ sal_uInt32 SdDrawDocument::convertFontHeightToCTL( sal_uInt32 nWesternFontHeight
28069 return nWesternFontHeight;
28072 +SdStyleSheetPool* SdDrawDocument::GetSdStyleSheetPool() const
28074 + return dynamic_cast< SdStyleSheetPool* >( GetStyleSheetPool() );
28077 ModifyGuard::ModifyGuard( DrawDocShell* pDocShell )
28078 : mpDocShell( pDocShell ), mpDoc( 0 )
28080 diff --git sd/source/filter/eppt/exports.map sd/source/filter/eppt/exports.map
28081 index 4a57b50..e69de29 100644
28082 --- sd/source/filter/eppt/exports.map
28083 +++ sd/source/filter/eppt/exports.map
28092 diff --git sd/source/filter/eppt/makefile.mk sd/source/filter/eppt/makefile.mk
28093 index 91ee77f..808984a 100644
28094 --- sd/source/filter/eppt/makefile.mk
28095 +++ sd/source/filter/eppt/makefile.mk
28096 @@ -51,29 +51,6 @@ SLOFILES = $(SLO)$/eppt.obj \
28097 $(SLO)$/pptexanimations.obj \
28098 $(SLO)$/pptexsoundcollection.obj
28100 -SHL1TARGET = emp$(DLLPOSTFIX)
28102 -SHL1VERSIONMAP=exports.map
28103 -SHL1DEF = $(MISC)$/$(SHL1TARGET).def
28104 -SHL1LIBS = $(SLB)$/eppt.lib
28106 -DEF1NAME=$(SHL1TARGET)
28108 -SHL1STDLIBS = $(SVXLIB) \
28117 - $(UCBHELPERLIB) \
28120 - $(COMPHELPERLIB) \
28121 - $(I18NISOLANGLIB)
28123 # --- Targets --------------------------------------------------------------
28125 .INCLUDE : target.mk
28126 diff --git sd/source/filter/makefile.mk sd/source/filter/makefile.mk
28127 index 6e095f0..6590afa 100644
28128 --- sd/source/filter/makefile.mk
28129 +++ sd/source/filter/makefile.mk
28130 @@ -48,8 +48,6 @@ CDEFS+= -DDBG_ANIM_LOG
28133 $(SLO)$/sdfilter.obj \
28134 - $(SLO)$/pptin.obj \
28135 - $(SLO)$/propread.obj \
28136 $(SLO)$/sdpptwrp.obj
28139 diff --git sd/source/filter/ppt/makefile.mk sd/source/filter/ppt/makefile.mk
28140 index 580b3fe..219fbe0 100644
28141 --- sd/source/filter/ppt/makefile.mk
28142 +++ sd/source/filter/ppt/makefile.mk
28143 @@ -33,6 +33,7 @@ PRJ=..$/..$/..
28146 ENABLE_EXCEPTIONS=TRUE
28147 +VISIBILITY_HIDDEN=TRUE
28149 # --- Settings -----------------------------------------------------
28151 @@ -48,8 +49,10 @@ CDEFS+= -DDBG_ANIM_LOG
28152 # --- Files --------------------------------------------------------
28155 - $(SLO)$/pptinanimations.obj\
28156 - $(SLO)$/pptatom.obj\
28157 + $(SLO)$/propread.obj \
28158 + $(SLO)$/pptin.obj \
28159 + $(SLO)$/pptinanimations.obj \
28160 + $(SLO)$/pptatom.obj \
28161 $(SLO)$/ppt97animations.obj
28163 # --- Targets --------------------------------------------------------------
28164 diff --git sd/source/filter/ppt/pptin.cxx sd/source/filter/ppt/pptin.cxx
28165 new file mode 100644
28166 index 0000000..4e92f7c
28167 --- /dev/null 2007-04-20 17:59:41.000000000 +0200
28168 +++ sd/source/filter/ppt/pptin.cxx 2009-04-24 18:14:38.000000000 +0200
28170 +/*************************************************************************
28172 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
28174 + * Copyright 2008 by Sun Microsystems, Inc.
28176 + * OpenOffice.org - a multi-platform office productivity suite
28178 + * $RCSfile: pptin.cxx,v $
28179 + * $Revision: 1.92.78.3 $
28181 + * This file is part of OpenOffice.org.
28183 + * OpenOffice.org is free software: you can redistribute it and/or modify
28184 + * it under the terms of the GNU Lesser General Public License version 3
28185 + * only, as published by the Free Software Foundation.
28187 + * OpenOffice.org is distributed in the hope that it will be useful,
28188 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
28189 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28190 + * GNU Lesser General Public License version 3 for more details
28191 + * (a copy is included in the LICENSE file that accompanied this code).
28193 + * You should have received a copy of the GNU Lesser General Public License
28194 + * version 3 along with OpenOffice.org. If not, see
28195 + * <http://www.openoffice.org/license.html>
28196 + * for a copy of the LGPLv3 License.
28198 + ************************************************************************/
28200 +// MARKER(update_precomp.py): autogen include statement, do not remove
28201 +#include "precompiled_sd.hxx"
28203 +#include <svx/numitem.hxx>
28205 +#include <unotools/ucbstreamhelper.hxx>
28206 +#include <vcl/wrkwin.hxx>
28207 +#include <svx/svxids.hrc>
28208 +#include <svx/svdfppt.hxx>
28209 +#include <svx/svditer.hxx>
28210 +#include <sfx2/docfile.hxx>
28211 +#include <sfx2/app.hxx>
28212 +#include <svx/svdograf.hxx>
28213 +#include <svx/svdlayer.hxx>
28214 +#include <vcl/msgbox.hxx>
28215 +#include <svtools/style.hxx>
28216 +#include <svx/xflclit.hxx>
28217 +#include <svx/eeitem.hxx>
28218 +#include <svx/colritem.hxx>
28219 +#include <svtools/whiter.hxx>
28220 +#include <svx/xgrad.hxx>
28221 +#include <svx/xflgrit.hxx>
28222 +#include <svx/xbtmpit.hxx>
28223 +#include <svx/xlnclit.hxx>
28224 +#include <svx/adjitem.hxx>
28225 +#include <svx/editeng.hxx>
28226 +#include <svx/bulitem.hxx>
28227 +#include <svx/lrspitem.hxx>
28228 +#include <svx/lspcitem.hxx>
28229 +#include <svx/tstpitem.hxx>
28231 +#include <sfx2/docinf.hxx>
28233 +#include "glob.hrc"
28234 +#include "pptin.hxx"
28235 +#include "Outliner.hxx"
28236 +#include "drawdoc.hxx"
28237 +#include "sdpage.hxx"
28238 +#include "sdresid.hxx"
28239 +#include "pres.hxx"
28240 +#include "sdresid.hxx"
28241 +#include "stlpool.hxx"
28242 +#include "anminfo.hxx"
28243 +#include <svx/gallery.hxx>
28244 +#include <tools/urlobj.hxx>
28245 +#include <svx/numitem.hxx>
28246 +#include <svtools/itempool.hxx>
28247 +#include <svx/fhgtitem.hxx>
28248 +#include <svx/svdopage.hxx>
28249 +#include <svx/svdomedia.hxx>
28250 +#include <svx/svdogrp.hxx>
28251 +#include "propread.hxx"
28252 +#include <cusshow.hxx>
28253 +#include <vcl/bmpacc.hxx>
28255 +#include "../../ui/inc/DrawDocShell.hxx"
28256 +#include "../../ui/inc/FrameView.hxx"
28257 +#include "../../ui/inc/optsitem.hxx"
28259 +#include <svtools/fltrcfg.hxx>
28260 +#include <sfx2/progress.hxx>
28261 +#include <unotools/localfilehelper.hxx>
28262 +#include <svx/editstat.hxx>
28263 +#include <svtools/pathoptions.hxx>
28264 +#include <sfx2/docfac.hxx>
28265 +#define MAX_USER_MOVE 2
28267 +#include "pptinanimations.hxx"
28268 +#include "ppt97animations.hxx"
28270 +#include <com/sun/star/document/XDocumentProperties.hpp>
28271 +#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
28274 +using namespace ::com::sun::star;
28277 +SdPPTImport::SdPPTImport( SdDrawDocument* pDocument, SvStream& rDocStream, SvStorage& rStorage, SfxMedium& rMedium, MSFilterTracer* pTracer )
28280 + sal_uInt32 nImportFlags = 0;
28283 + PropRead* pSummaryInformation = new PropRead( rStorage, String( RTL_CONSTASCII_USTRINGPARAM( "\005SummaryInformation" ) ) );
28284 + if ( pSummaryInformation->IsValid() )
28286 + pSummaryInformation->Read();
28287 + sal_uInt8 aPropSetGUID[ 16 ] =
28289 + 0xe0, 0x85, 0x9f, 0xf2, 0xf9, 0x4f, 0x68, 0x10, 0xab, 0x91, 0x08, 0x00, 0x2b, 0x27, 0xb3, 0xd9
28291 + Section* pSection = (Section*)pSummaryInformation->GetSection( aPropSetGUID );
28294 + PropItem aPropItem;
28295 + if ( pSection->GetProperty( PID_COMMENTS, aPropItem ) )
28298 + aPropItem.Read( aComment );
28299 + if ( aComment.Search( String( RTL_CONSTASCII_USTRINGPARAM( "Applixware" ) ), 0 ) != STRING_NOTFOUND )
28301 + nImportFlags |= PPT_IMPORTFLAGS_NO_TEXT_ASSERT;
28306 + delete pSummaryInformation;
28309 + PowerPointImportParam aParam( rDocStream, nImportFlags, pTracer );
28310 + SvStream* pCurrentUserStream = rStorage.OpenSotStream( String( RTL_CONSTASCII_USTRINGPARAM( "Current User" ) ), STREAM_STD_READ );
28311 + if( pCurrentUserStream )
28313 + *pCurrentUserStream >> aParam.aCurrentUserAtom;
28314 + delete pCurrentUserStream;
28319 + // iterate over all styles
28320 + SdStyleSheetPool* pStyleSheetPool = pDocument->GetSdStyleSheetPool();
28322 + sal_uInt32 nStyles = pStyleSheetPool ? pStyleSheetPool->GetStyles().size() : 0;
28323 + for (sal_uInt32 nStyle = 0; nStyle < nStyles; nStyle++)
28325 + SfxStyleSheet* pSheet = static_cast<SfxStyleSheet*>( pStyleSheetPool->GetStyles()[nStyle].get() );
28326 + SfxItemSet& rSet = pSheet->GetItemSet();
28328 + // if autokerning is set in style, override it, ppt has no autokerning
28329 + if( rSet.GetItemState( EE_CHAR_PAIRKERNING, FALSE ) == SFX_ITEM_SET )
28330 + rSet.ClearItem( EE_CHAR_PAIRKERNING );
28334 + pFilter = new ImplSdPPTImport( pDocument, rStorage, rMedium, aParam );
28337 +sal_Bool SdPPTImport::Import()
28339 + return pFilter->Import();
28342 +SdPPTImport::~SdPPTImport()
28347 +ImplSdPPTImport::ImplSdPPTImport( SdDrawDocument* pDocument, SvStorage& rStorage_, SfxMedium& rMedium, PowerPointImportParam& rParam )
28348 +: SdrPowerPointImport ( rParam, rMedium.GetBaseURL() )
28349 +, mrMed ( rMedium )
28350 +, mrStorage ( rStorage_ )
28351 +, mbDocumentFound ( FALSE )
28352 +, mnFilterOptions ( 0 )
28354 + mpDoc = pDocument;
28357 + mbDocumentFound = SeekToDocument( &maDocHd ); // maDocHd = the latest DocumentHeader
28358 + while ( SeekToRec( rStCtrl, PPT_PST_Document, nStreamLen, &maDocHd ) )
28359 + mbDocumentFound = TRUE;
28361 + UINT32 nDggContainerOfs = 0;
28363 + if ( mbDocumentFound )
28365 + ULONG nPosMerk = rStCtrl.Tell();
28367 + pStData = rStorage_.OpenSotStream( String( RTL_CONSTASCII_USTRINGPARAM( "Pictures" ) ), STREAM_STD_READ );
28369 + rStCtrl.Seek( maDocHd.GetRecBegFilePos() + 8 );
28370 + ULONG nDocLen = maDocHd.GetRecEndFilePos();
28371 + DffRecordHeader aPPDGHd;
28372 + if ( SeekToRec( rStCtrl, PPT_PST_PPDrawingGroup, nDocLen, &aPPDGHd ) )
28374 + ULONG nPPDGLen = aPPDGHd.GetRecEndFilePos();
28375 + if ( SeekToRec( rStCtrl, DFF_msofbtDggContainer, nPPDGLen, NULL ) )
28376 + nDggContainerOfs = rStCtrl.Tell();
28378 + rStCtrl.Seek( nPosMerk );
28380 + sal_uInt32 nSvxMSDffOLEConvFlags2 = 0;
28382 + SvtFilterOptions* pBasOpt = SvtFilterOptions::Get();
28385 + if ( pBasOpt->IsLoadPPointBasicCode() )
28386 + mnFilterOptions |= 1;
28387 + if ( pBasOpt->IsMathType2Math() )
28388 + nSvxMSDffOLEConvFlags2 |= OLE_MATHTYPE_2_STARMATH;
28389 + if ( pBasOpt->IsWinWord2Writer() )
28390 + nSvxMSDffOLEConvFlags2 |= OLE_WINWORD_2_STARWRITER;
28391 + if ( pBasOpt->IsExcel2Calc() )
28392 + nSvxMSDffOLEConvFlags2 |= OLE_EXCEL_2_STARCALC;
28393 + if ( pBasOpt->IsPowerPoint2Impress() )
28394 + nSvxMSDffOLEConvFlags2 |= OLE_POWERPOINT_2_STARIMPRESS;
28397 + InitSvxMSDffManager( nDggContainerOfs, pStData, nSvxMSDffOLEConvFlags2 );
28398 + SetSvxMSDffSettings( SVXMSDFF_SETTINGS_CROP_BITMAPS
28399 + | SVXMSDFF_SETTINGS_IMPORT_IAS | SVXMSDFF_SETTINGS_IMPORT_PPT );
28400 + SetModel( mpDoc, 576 );
28404 +//////////////////////////////////////////////////////////////////////////
28408 +//////////////////////////////////////////////////////////////////////////
28410 +ImplSdPPTImport::~ImplSdPPTImport()
28412 + for ( void* pPtr = maSlideNameList.First(); pPtr; pPtr = maSlideNameList.Next() )
28413 + delete (String*)pPtr;
28417 +//////////////////////////////////////////////////////////////////////////
28421 +//////////////////////////////////////////////////////////////////////////
28423 +sal_Bool ImplSdPPTImport::Import()
28428 + pSdrModel->setLock( sal_True );
28429 + SdrOutliner& rOutl = mpDoc->GetDrawOutliner();
28430 + sal_uInt32 nControlWord = rOutl.GetEditEngine().GetControlWord();
28431 + nControlWord |= EE_CNTRL_ULSPACESUMMATION;
28432 + nControlWord &=~ EE_CNTRL_ULSPACEFIRSTPARA;
28433 + ((EditEngine&)rOutl.GetEditEngine()).SetControlWord( nControlWord );
28435 + SdrLayerAdmin& rAdmin = mpDoc->GetLayerAdmin();
28436 + mnBackgroundLayerID = rAdmin.GetLayerID( String( SdResId( STR_LAYER_BCKGRND )), FALSE );
28437 + mnBackgroundObjectsLayerID = rAdmin.GetLayerID( String( SdResId( STR_LAYER_BCKGRNDOBJ )), FALSE );
28439 + ::sd::DrawDocShell* pDocShell = mpDoc->GetDocSh();
28441 + SeekOle( pDocShell, mnFilterOptions );
28444 + PropRead* pDInfoSec2 = new PropRead( mrStorage, String( RTL_CONSTASCII_USTRINGPARAM( "\005DocumentSummaryInformation" ) ) );
28445 + if ( pDInfoSec2->IsValid() )
28447 + PropItem aPropItem;
28449 + UINT32 nType, nPropSize, nPropCount;
28451 + pDInfoSec2->Read();
28453 + BYTE aPropSetGUID[ 16 ] =
28455 + 0x02, 0xd5, 0xcd, 0xd5, 0x9c, 0x2e, 0x1b, 0x10, 0x93, 0x97, 0x08, 0x00, 0x2b, 0x2c, 0xf9, 0xae
28457 + Section* pSection = (Section*)pDInfoSec2->GetSection( aPropSetGUID );
28460 + if ( pSection->GetProperty( PID_SLIDECOUNT, aPropItem ) )
28462 + aPropItem >> nType;
28463 + if ( ( nType == VT_I4 ) || ( nType == VT_UI4 ) )
28465 + // examine PID_HEADINGPAIR to get the correct entry for PID_DOCPARTS
28466 + UINT32 nSlideCount, nVecCount;
28467 + aPropItem >> nSlideCount;
28468 + if ( nSlideCount && pSection->GetProperty( PID_HEADINGPAIR, aPropItem ) )
28470 + UINT32 nSlideTitleIndex = 0, nSlideTitleCount = 0;
28471 + UINT32 nFontIndex, nFontCount = 0;
28472 + UINT32 nDesignTemplateIndex, nDesignTemplateCount = 0;
28473 + UINT32 i, nTemp, nEntryCount = 0;
28477 + aPropItem >> nType
28480 + if ( ( nType == ( VT_VARIANT | VT_VECTOR ) ) && ( nVecCount ^ 1 ) )
28484 + for ( i = 0; i < nVecCount; i++ )
28486 + if ( !aPropItem.Read( aUString, VT_EMPTY, FALSE ) )
28488 + aPropItem >> nType;
28489 + if ( ( nType != VT_I4 ) && ( nType != VT_UI4 ) )
28491 + aPropItem >> nTemp;
28492 + if ( aUString.EqualsAscii("Slide Titles") || aUString.EqualsAscii("Folientitel") )
28494 + nSlideTitleCount = nTemp;
28495 + nSlideTitleIndex = nEntryCount;
28497 + else if ( aUString.EqualsAscii("Fonts Used") )
28499 + nFontCount = nTemp;
28500 + nFontIndex = nEntryCount;
28502 + else if ( aUString.EqualsAscii("Design Template") )
28504 + nDesignTemplateCount = nTemp;
28505 + nDesignTemplateIndex = nEntryCount;
28507 + nEntryCount += nTemp;
28510 + if ( ( nSlideCount == nSlideTitleCount ) && pSection->GetProperty( PID_DOCPARTS, aPropItem ) )
28512 + aPropItem >> nType
28515 + if ( ( nVecCount >= ( nSlideTitleIndex + nSlideTitleCount ) )
28516 + && ( nType == ( VT_LPSTR | VT_VECTOR ) ) )
28518 + for ( i = 0; i != nSlideTitleIndex; i++ )
28520 + aPropItem >> nTemp;
28521 + aPropItem.SeekRel( nTemp );
28523 + for ( i = 0; i < nSlideTitleCount; i++ )
28525 + if ( !aPropItem.Read( aUString, nType, FALSE ) )
28527 + String* pString = new String( aUString );
28528 + if ( pString->EqualsAscii( "No Slide Title" ))
28529 + *pString = String();
28533 + for ( pPtr = maSlideNameList.First(); pPtr; pPtr = maSlideNameList.Next() )
28535 + if ( *((String*)pPtr ) == *pString )
28537 + *pString = String();
28542 + maSlideNameList.Insert( pString, LIST_APPEND );
28550 + BYTE aUserPropSetGUID[ 16 ] =
28552 + 0x05, 0xd5, 0xcd, 0xd5, 0x9c, 0x2e, 0x1b, 0x10, 0x93, 0x97, 0x08, 0x00, 0x2b, 0x2c, 0xf9, 0xae
28554 + pSection = (Section*)pDInfoSec2->GetSection( aUserPropSetGUID );
28557 + Dictionary aDict;
28558 + if ( pSection->GetDictionary( aDict ) )
28560 + UINT32 nPropId = aDict.GetProperty( rtl::OUString::createFromAscii("_PID_HLINKS" ));
28563 + if ( pSection->GetProperty( nPropId, aPropItem ) )
28565 + aPropItem.Seek( STREAM_SEEK_TO_BEGIN );
28566 + aPropItem >> nType;
28567 + if ( nType == VT_BLOB )
28569 + aPropItem >> nPropSize
28572 + if ( ! ( nPropCount % 6 ) )
28576 + nPropCount /= 6; // 6 propertys a hyperlink
28578 + SdHyperlinkEntry* pHyperlink = 0;
28579 + for ( i = 0; i < nPropCount; i++ )
28581 + pHyperlink = new SdHyperlinkEntry;
28582 + pHyperlink->nIndex = 0;
28583 + aPropItem >> nType;
28584 + if ( nType != VT_I4 )
28586 + aPropItem >> pHyperlink->nPrivate1
28588 + if ( nType != VT_I4 )
28590 + aPropItem >> pHyperlink->nPrivate2
28592 + if ( nType != VT_I4 )
28594 + aPropItem >> pHyperlink->nPrivate3
28596 + if ( nType != VT_I4 )
28598 + aPropItem >> pHyperlink->nInfo;
28599 + if ( !aPropItem.Read( pHyperlink->aTarget, VT_EMPTY ) )
28602 + // #n382718# (and #n261623#) Convert '\\' notation to 'smb://'
28603 + INetURLObject aUrl( pHyperlink->aTarget, INET_PROT_FILE );
28604 + pHyperlink->aTarget = aUrl.GetMainURL( INetURLObject::NO_DECODE );
28606 + if ( !aPropItem.Read( pHyperlink->aSubAdress, VT_EMPTY ) )
28608 + pHyperlink->nStartPos = pHyperlink->nEndPos = -1;
28610 + if ( pHyperlink->aSubAdress.Len() ) // get the converted subadress
28612 + sal_uInt32 nPageNumber = 0;
28613 + String aString( pHyperlink->aSubAdress );
28614 + ByteString aStringAry[ 3 ];
28615 + sal_uInt16 nTokenCount = aString.GetTokenCount( ',' );
28616 + if ( nTokenCount > 3 )
28618 + sal_uInt16 nToken;
28619 + for( nToken = 0; nToken < nTokenCount; nToken++ )
28620 + aStringAry[ nToken ] = ByteString( aString.GetToken( nToken, (sal_Unicode)',' ), RTL_TEXTENCODING_UTF8 );
28622 + sal_Bool bSucceeded = sal_False;
28624 + // first pass, searching for a SlideId
28625 + for( nToken = 0; nToken < nTokenCount; nToken++ )
28627 + if ( aStringAry[ nToken ].IsNumericAscii() )
28629 + sal_Int32 nNumber = aStringAry[ nToken ].ToInt32();
28630 + if ( nNumber & ~0xff )
28632 + PptSlidePersistList* pPageList = GetPageList( PPT_SLIDEPAGE );
28635 + sal_uInt16 nPage = pPageList->FindPage( nNumber );
28636 + if ( nPage != PPTSLIDEPERSIST_ENTRY_NOTFOUND )
28638 + nPageNumber = nPage;
28639 + bSucceeded = sal_True;
28646 + if ( !bSucceeded )
28647 + { // second pass, searching for a SlideName
28648 + for ( nToken = 0; nToken < nTokenCount; nToken++ )
28650 + String aToken( aString.GetToken( nToken, (sal_Unicode)',' ) );
28651 + for ( void* pPtr = maSlideNameList.First(); pPtr; pPtr = maSlideNameList.Next() )
28653 + if ( *(String*)pPtr == aToken )
28655 + nPageNumber = maSlideNameList.GetCurPos();
28656 + bSucceeded = sal_True;
28662 + if ( !bSucceeded )
28663 + { // third pass, searching for a slide number
28664 + for ( nToken = 0; nToken < nTokenCount; nToken++ )
28666 + if ( aStringAry[ nToken ].IsNumericAscii() )
28668 + sal_Int32 nNumber = aStringAry[ nToken ].ToInt32();
28669 + if ( ( nNumber & ~0xff ) == 0 )
28671 + nPageNumber = (sal_uInt32)nNumber - 1;
28672 + bSucceeded = sal_True;
28678 + if ( bSucceeded )
28680 + if ( nPageNumber < maSlideNameList.Count() )
28681 + pHyperlink->aConvSubString = *(String*)maSlideNameList.GetObject( nPageNumber );
28682 + if ( !pHyperlink->aConvSubString.Len() )
28684 + pHyperlink->aConvSubString = String( SdResId( STR_PAGE ) );
28685 + pHyperlink->aConvSubString.Append( sal_Unicode( ' ' ) );
28686 + pHyperlink->aConvSubString.Append( mpDoc->CreatePageNumValue( (USHORT)nPageNumber + 1 ) );
28690 + aHyperList.Insert( pHyperlink, LIST_APPEND );
28692 + if ( i != nPropCount )
28693 + delete pHyperlink;
28702 + delete pDInfoSec2;
28704 + if ( mbDocumentFound )
28706 + rStCtrl.Seek( maDocHd.GetRecBegFilePos() + 8 );
28707 + // HyperList lesen / Indexe der einzelnen Eintraege setzen
28708 + DffRecordHeader aHyperHd;
28709 + if ( SeekToRec( rStCtrl, PPT_PST_ExObjList, maDocHd.GetRecEndFilePos(), &aHyperHd ) )
28711 + UINT32 nExObjHyperListLen = aHyperHd.GetRecEndFilePos();
28712 + for ( void* pPtr = aHyperList.First(); pPtr; pPtr = aHyperList.Next() )
28714 + DffRecordHeader aHyperE;
28715 + if ( !SeekToRec( rStCtrl, PPT_PST_ExHyperlink, nExObjHyperListLen, &aHyperE ) )
28717 + if ( !SeekToRec( rStCtrl, PPT_PST_ExHyperlinkAtom, nExObjHyperListLen, NULL, 0 ) )
28719 + rStCtrl.SeekRel( 8 );
28720 + rStCtrl >> ((SdHyperlinkEntry*)pPtr)->nIndex;
28721 + aHyperE.SeekToEndOfRecord( rStCtrl );
28726 + Size aVisAreaSize;
28727 + switch ( aUserEditAtom.eLastViewType )
28729 + case 5 : // notes master
28730 + case 3 : // notes
28731 + aVisAreaSize = aDocAtom.GetNotesPageSize();
28734 + aVisAreaSize = aDocAtom.GetSlidesPageSize();
28736 + Scale( aVisAreaSize );
28737 + pDocShell->SetVisArea( Rectangle( Point(), aVisAreaSize ) );
28739 + ///////////////////////////////////////////////////////////
28740 + // create master pages:
28741 + ///////////////////////////////////////////////////////////
28742 + SfxProgress* pStbMgr = new SfxProgress( pDocShell, String( SdResId( STR_POWERPOINT_IMPORT ) ),
28743 + pMasterPages->Count() + pSlidePages->Count() + pNotePages->Count() );
28745 + UINT32 nImportedPages = 0;
28747 + UINT16 nMasterAnz = GetPageCount( PPT_MASTERPAGE );
28749 + for ( USHORT nMasterNum = 0; nMasterNum < nMasterAnz; nMasterNum++ )
28751 + SetPageNum( nMasterNum, PPT_MASTERPAGE );
28752 + SdPage* pPage = (SdPage*)MakeBlancPage( TRUE );
28755 + BOOL bNotesMaster = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bNotesMaster;
28756 + BOOL bStarDrawFiller = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bStarDrawFiller;
28758 + PageKind ePgKind = ( bNotesMaster ) ? PK_NOTES : PK_STANDARD;
28759 + pPage->SetPageKind( ePgKind );
28760 + pSdrModel->InsertMasterPage( (SdrPage*)pPage );
28761 + if ( bNotesMaster && bStarDrawFiller )
28762 + ((SdPage*)pPage)->SetAutoLayout( AUTOLAYOUT_NOTES, TRUE );
28763 + if ( nMasterNum )
28765 + boost::optional< sal_Int16 > oStartNumbering;
28766 + SfxStyleSheet* pSheet;
28767 + if ( nMasterNum == 1 )
28769 + ///////////////////
28770 + // standardsheet //
28771 + ///////////////////
28772 + pSheet = (SfxStyleSheet*)mpDoc->GetStyleSheetPool()->Find( String(SdResId( STR_STANDARD_STYLESHEET_NAME )), SD_STYLE_FAMILY_GRAPHICS );
28775 + SfxItemSet& rItemSet = pSheet->GetItemSet();
28776 + PPTParagraphObj aParagraph( *pPPTStyleSheet, TSS_TYPE_TEXT_IN_SHAPE, 0 );
28777 + PPTPortionObj aPortion( *pPPTStyleSheet, TSS_TYPE_TEXT_IN_SHAPE, 0 );
28778 + aParagraph.AppendPortion( aPortion );
28779 + aParagraph.ApplyTo( rItemSet, oStartNumbering, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
28780 + aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
28785 + pSheet = (SfxStyleSheet*)mpDoc->GetStyleSheetPool()->Find( String(SdResId( STR_PSEUDOSHEET_BACKGROUNDOBJECTS )), SD_STYLE_FAMILY_PSEUDO );
28788 + SfxItemSet& rItemSet = pSheet->GetItemSet();
28789 + PPTParagraphObj aParagraph( *pPPTStyleSheet, TSS_TYPE_TEXT_IN_SHAPE, 0 );
28790 + PPTPortionObj aPortion( *pPPTStyleSheet, TSS_TYPE_TEXT_IN_SHAPE, 0 );
28791 + aParagraph.AppendPortion( aPortion );
28792 + aParagraph.ApplyTo( rItemSet, oStartNumbering, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
28793 + aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
28796 + ///////////////////////////////////////////////////////////
28797 + // create layoutstylesheets, set layoutname and stylesheet
28798 + // (nur auf Standard- und Notizseiten)
28799 + ///////////////////////////////////////////////////////////
28800 + String aLayoutName( SdResId( STR_LAYOUT_DEFAULT_NAME ) );
28801 + if ( nMasterNum > 2 )
28803 + if ( ePgKind == PK_STANDARD )
28804 + { // Standardseite: Neues Praesentationslayout erzeugen
28805 + aLayoutName = String( SdResId( STR_LAYOUT_DEFAULT_TITLE_NAME ) );
28806 + aLayoutName += String::CreateFromInt32( (sal_Int32)( ( nMasterNum + 1 ) / 2 - 1 ) );
28807 + ( (SdStyleSheetPool*)mpDoc->GetStyleSheetPool() )->CreateLayoutStyleSheets( aLayoutName );
28809 + else // Notizseite: Praesentationslayout von der Standardseite verwenden
28810 + aLayoutName = ( (SdPage*)mpDoc->GetMasterPage( nMasterNum - 1 ) )->GetName();
28812 + pPage->SetName( aLayoutName );
28813 + aLayoutName.AppendAscii( RTL_CONSTASCII_STRINGPARAM( SD_LT_SEPARATOR ));
28814 + aLayoutName += String( SdResId( STR_LAYOUT_OUTLINE ) );
28815 + pPage->SetLayoutName( aLayoutName );
28817 + /////////////////////
28818 + // set stylesheets //
28819 + /////////////////////
28820 + if ( pPage->GetPageKind() == PK_STANDARD )
28822 + UINT32 nTitleInstance = TSS_TYPE_PAGETITLE;
28823 + UINT32 nOutlinerInstance = TSS_TYPE_BODY;
28824 +// BOOL bSwapStyleSheet = pSlideLayout->eLayout == PPT_LAYOUT_TITLEMASTERSLIDE;
28825 +// if ( bSwapStyleSheet )
28827 +// nTitleInstance = TSS_TYPE_TITLE;
28828 +// nOutlinerInstance = TSS_TYPE_SUBTITLE;
28830 + /////////////////////
28831 + // titelstylesheet //
28832 + /////////////////////
28833 + pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE );
28836 + SfxItemSet& rItemSet = pSheet->GetItemSet();
28837 + PPTParagraphObj aParagraph( *pPPTStyleSheet, nTitleInstance, 0 );
28838 + PPTPortionObj aPortion( *pPPTStyleSheet, nTitleInstance, 0 );
28839 + aParagraph.AppendPortion( aPortion );
28840 + aParagraph.ApplyTo( rItemSet, oStartNumbering, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
28841 + aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
28843 + ////////////////////////
28844 + // outlinerstylesheet //
28845 + ////////////////////////
28847 + PPTParagraphObj* pParagraphs[ 9 ];
28848 + PPTParagraphObj* pPreviousPara = NULL;
28850 + for ( nLevel = 0; nLevel < 9; nLevel++ )
28852 + String aName( pPage->GetLayoutName() );
28853 + aName.Append( (sal_Unicode)( ' ' ) );
28854 + aName.Append( String::CreateFromInt32( nLevel + 1 ) );
28855 + SfxStyleSheet* pOutlineSheet = (SfxStyleSheet*)mpDoc->GetStyleSheetPool()->Find( aName, SD_STYLE_FAMILY_MASTERPAGE );
28856 + DBG_ASSERT( pOutlineSheet, "Vorlage fuer Gliederungsobjekt nicht gefunden" );
28857 + if ( pOutlineSheet )
28859 + pParagraphs[ nLevel ] = new PPTParagraphObj( *pPPTStyleSheet, nOutlinerInstance, nLevel );
28860 + SfxItemSet& rItemSet = pOutlineSheet->GetItemSet();
28861 + PPTPortionObj aPortion( *pPPTStyleSheet, nOutlinerInstance, nLevel );
28862 + pParagraphs[ nLevel ]->AppendPortion( aPortion );
28863 + pParagraphs[ nLevel ]->ApplyTo( rItemSet, oStartNumbering, (SdrPowerPointImport&)*this, 0xffffffff, pPreviousPara );
28864 + aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
28865 + pPreviousPara = pParagraphs[ nLevel ];
28868 + pParagraphs[ nLevel ] = NULL;
28870 + for ( nLevel = 0; nLevel < 9; delete pParagraphs[ nLevel++ ] ) ;
28871 + /////////////////////////
28872 + // subtitle stylesheet //
28873 + /////////////////////////
28874 + pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TEXT );
28877 + SfxItemSet& rItemSet = pSheet->GetItemSet();
28878 + PPTParagraphObj aParagraph( *pPPTStyleSheet, TSS_TYPE_SUBTITLE, 0 );
28879 + PPTPortionObj aPortion( *pPPTStyleSheet, TSS_TYPE_SUBTITLE, 0 );
28880 + aParagraph.AppendPortion( aPortion );
28881 + aParagraph.ApplyTo( rItemSet, oStartNumbering, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
28882 + aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
28885 + else if ( ePgKind == PK_NOTES )
28887 + pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_NOTES );
28890 + SfxItemSet& rItemSet = pSheet->GetItemSet();
28891 + PPTParagraphObj aParagraph( *pPPTStyleSheet, TSS_TYPE_NOTES, 0 );
28892 + PPTPortionObj aPortion( *pPPTStyleSheet, TSS_TYPE_NOTES, 0 );
28893 + aParagraph.AppendPortion( aPortion );
28894 + aParagraph.ApplyTo( rItemSet, oStartNumbering, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
28895 + aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
28904 + for ( i = 1; i < mpDoc->GetMasterPageCount() && ( (pMPage = (SdPage*)mpDoc->GetMasterPage( i )) != 0 ); i++ )
28906 + SetPageNum( i, PPT_MASTERPAGE );
28907 + /////////////////////////////////////////////
28908 + // importing master page objects //
28909 + /////////////////////////////////////////////
28910 + PptSlidePersistList* pList = GetPageList( eAktPageKind );
28911 + PptSlidePersistEntry* pPersist = ( pList && ( nAktPageNum < pList->Count() ) )
28912 + ? (*pList)[ nAktPageNum ] : NULL;
28915 + if ( pPersist->bStarDrawFiller && pPersist->bNotesMaster && ( nAktPageNum > 2 ) && ( ( nAktPageNum & 1 ) == 0 ) )
28917 + pSdrModel->DeleteMasterPage( nAktPageNum );
28918 + SdrPage* pNotesClone = ((SdPage*)pSdrModel->GetMasterPage( 2 ))->Clone();
28919 + pSdrModel->InsertMasterPage( pNotesClone, nAktPageNum );
28920 + if ( pNotesClone )
28922 + String aLayoutName( ((SdPage*)pSdrModel->GetMasterPage( nAktPageNum - 1 ))->GetLayoutName() );
28923 + ((SdPage*)pNotesClone)->SetPresentationLayout( aLayoutName, sal_False, sal_False, sal_False );
28924 + ((SdPage*)pNotesClone)->SetLayoutName( aLayoutName );
28927 + else if ( ( pPersist->bStarDrawFiller == FALSE ) )
28929 + PptSlidePersistEntry* pE = pPersist;
28930 + while( ( pE->aSlideAtom.nFlags & 4 ) && pE->aSlideAtom.nMasterId )
28932 + sal_uInt16 nNextMaster = pMasterPages->FindPage( pE->aSlideAtom.nMasterId );
28933 + if ( nNextMaster == PPTSLIDEPERSIST_ENTRY_NOTFOUND )
28936 + pE = (*pList)[ nNextMaster ];
28938 + SdrObject* pObj = ImportPageBackgroundObject( *pMPage, pE->nBackgroundOffset, TRUE ); // import background
28940 + pMPage->NbcInsertObject( pObj );
28942 + sal_Bool bNewAnimationsUsed = sal_False;
28943 + ProcessData aProcessData( *(*pList)[ nAktPageNum ], (SdPage*)pMPage );
28944 + sal_uInt32 nFPosMerk = rStCtrl.Tell();
28945 + DffRecordHeader aPageHd;
28946 + if ( SeekToAktPage( &aPageHd ) )
28949 + mpTracer->AddAttribute( rtl::OUString::createFromAscii( "MasterPage" ), rtl::OUString::valueOf( (sal_Int32) (nAktPageNum + 1) ) );
28951 + while( ( rStCtrl.GetError() == 0 ) && ( rStCtrl.Tell() < aPageHd.GetRecEndFilePos() ) )
28953 + DffRecordHeader aHd;
28955 + switch( aHd.nRecType )
28957 + case PPT_PST_PPDrawing :
28959 + aHd.SeekToBegOfRecord( rStCtrl );
28960 + DffRecordHeader aPPDrawHd;
28961 + if ( SeekToRec( rStCtrl, PPT_PST_PPDrawing, aHd.GetRecEndFilePos(), &aPPDrawHd ) )
28963 + sal_uInt32 nPPDrawEnd = aPPDrawHd.GetRecEndFilePos();
28964 + DffRecordHeader aEscherF002Hd;
28965 + if ( SeekToRec( rStCtrl, DFF_msofbtDgContainer, nPPDrawEnd, &aEscherF002Hd ) )
28967 + sal_uInt32 nEscherF002End = aEscherF002Hd.GetRecEndFilePos();
28968 + DffRecordHeader aEscherObjListHd;
28969 + if ( SeekToRec( rStCtrl, DFF_msofbtSpgrContainer, nEscherF002End, &aEscherObjListHd ) )
28971 + sal_uInt32 nObjCount = 0;
28972 + while( ( rStCtrl.GetError() == 0 ) && ( rStCtrl.Tell() < aEscherObjListHd.GetRecEndFilePos() ) )
28974 + DffRecordHeader aHd2;
28976 + if ( ( aHd2.nRecType == DFF_msofbtSpContainer ) || ( aHd2.nRecType == DFF_msofbtSpgrContainer ) )
28978 + if ( nObjCount++ ) // skipping the first object
28980 + Rectangle aEmpty;
28981 + aHd2.SeekToBegOfRecord( rStCtrl );
28982 + SdrObject* pImpObj = ImportObj( rStCtrl, (void*)&aProcessData, aEmpty, aEmpty );
28985 + pImpObj->SetLayer( mnBackgroundObjectsLayerID );
28986 + pMPage->NbcInsertObject( pImpObj );
28990 + aHd2.SeekToEndOfRecord( rStCtrl );
28998 + case PPT_PST_ProgTags :
29000 + DffRecordHeader aProgTagHd;
29001 + if ( SeekToContentOfProgTag( 10, rStCtrl, aPageHd, aProgTagHd ) )
29003 + while ( ( rStCtrl.GetError() == 0 ) && ( rStCtrl.Tell() < aProgTagHd.GetRecEndFilePos() ) )
29005 + DffRecordHeader aProgTagContentHd;
29006 + rStCtrl >> aProgTagContentHd;
29007 + switch( aProgTagContentHd.nRecType )
29009 + case DFF_msofbtAnimGroup :
29011 + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > xPage( pMPage->getUnoPage(), ::com::sun::star::uno::UNO_QUERY );
29012 + ppt::AnimationImporter aImporter( this, rStCtrl );
29013 + aImporter.import( xPage, aProgTagContentHd );
29014 + bNewAnimationsUsed = sal_True;
29018 + aProgTagContentHd.SeekToEndOfRecord( rStCtrl );
29024 + aHd.SeekToEndOfRecord( rStCtrl );
29027 + mpTracer->RemoveAttribute( rtl::OUString::createFromAscii( "MasterPage" ) );
29029 + rStCtrl.Seek( nFPosMerk );
29030 + ImportPageEffect( (SdPage*)pMPage, bNewAnimationsUsed );
29032 + ///////////////////////
29033 + // background object //
29034 + ///////////////////////
29035 + pObj = pMPage->GetObj( 0 );
29036 + if ( pObj && pObj->GetObjIdentifier() == OBJ_RECT )
29038 + if ( pMPage->GetPageKind() == PK_STANDARD )
29040 + // Hintergrundobjekt gefunden (erstes Objekt der MasterPage)
29041 + pObj->SetEmptyPresObj( TRUE );
29042 + pObj->SetUserCall( pMPage );
29043 + pObj->SetLayer( mnBackgroundLayerID );
29045 + // Schatten am ersten Objekt (Hintergrundobjekt) entfernen (#57918#)
29046 + SfxItemSet aTempAttr( mpDoc->GetPool() );
29047 + aTempAttr.Put( pObj->GetMergedItemSet() );
29049 + BOOL bShadowIsOn = ( (SdrShadowItem&)( aTempAttr.Get( SDRATTR_SHADOW ) ) ).GetValue();
29050 + if( bShadowIsOn )
29052 + aTempAttr.Put( SdrShadowItem( FALSE ) );
29053 + pObj->SetMergedItemSet( aTempAttr );
29055 + SfxStyleSheet* pSheet = pMPage->GetStyleSheetForPresObj( PRESOBJ_BACKGROUND );
29057 + { // StyleSheet fuellen und dem Objekt zuweisen
29058 + pSheet->GetItemSet().ClearItem();
29059 + pSheet->GetItemSet().Put( pObj->GetMergedItemSet() );
29060 + aTempAttr.ClearItem();
29061 + pObj->SetMergedItemSet( aTempAttr );
29062 + pObj->SetStyleSheet( pSheet, FALSE );
29064 + pMPage->InsertPresObj( pObj, PRESOBJ_BACKGROUND );
29067 + // tell the page that it's visualization has changed
29068 + pMPage->ActionChanged();
29074 + pStbMgr->SetState( nImportedPages++ );
29076 + ////////////////////////////////////
29077 + // importing slide pages //
29078 + ////////////////////////////////////
29080 + UINT32 nFPosMerk = rStCtrl.Tell();
29081 + PptPageKind ePageKind = eAktPageKind;
29082 + UINT16 nPageNum = nAktPageNum;
29084 + SdPage* pHandoutPage = (SdPage*)MakeBlancPage( FALSE );
29085 + pHandoutPage->SetPageKind( PK_HANDOUT );
29086 + pSdrModel->InsertPage( pHandoutPage );
29088 + USHORT nPageAnz = GetPageCount( PPT_SLIDEPAGE );
29091 + for ( USHORT nPage = 0; nPage < nPageAnz; nPage++ )
29093 + sal_Bool bNewAnimationsUsed = sal_False;
29095 + mePresChange = PRESCHANGE_SEMIAUTO;
29096 + SetPageNum( nPage, PPT_SLIDEPAGE );
29097 + SdPage* pPage = (SdPage*)MakeBlancPage( FALSE );
29098 + PptSlidePersistEntry* pMasterPersist = NULL;
29099 + if ( HasMasterPage( nPage, PPT_SLIDEPAGE ) ) // try to get the LayoutName from the masterpage
29101 + sal_uInt16 nMasterNum = GetMasterPageIndex( nAktPageNum, eAktPageKind );
29102 + pPage->TRG_SetMasterPage(*pSdrModel->GetMasterPage(nMasterNum));
29103 + PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE );
29104 + if ( pPageList && nMasterNum < pPageList->Count() )
29105 + pMasterPersist = (*pPageList)[ nMasterNum ];
29106 + pPage->SetLayoutName(((SdPage&)pPage->TRG_GetMasterPage()).GetLayoutName());
29108 + pPage->SetPageKind( PK_STANDARD );
29109 + pSdrModel->InsertPage( pPage ); // SJ: #i29625# because of form controls, the
29110 + ImportPage( pPage, pMasterPersist ); // page must be inserted before importing
29111 + SetHeaderFooterPageSettings( pPage, pMasterPersist );
29112 + // CWS preseng01: pPage->SetPageKind( PK_STANDARD );
29114 + DffRecordHeader aPageHd;
29115 + if ( SeekToAktPage( &aPageHd ) )
29117 + aPageHd.SeekToContent( rStCtrl );
29118 + while ( ( rStCtrl.GetError() == 0 ) && ( rStCtrl.Tell() < aPageHd.GetRecEndFilePos() ) )
29120 + DffRecordHeader aHd;
29122 + switch ( aHd.nRecType )
29124 + case PPT_PST_ProgTags :
29126 + DffRecordHeader aProgTagHd;
29127 + if ( SeekToContentOfProgTag( 10, rStCtrl, aPageHd, aProgTagHd ) )
29129 + while ( ( rStCtrl.GetError() == 0 ) && ( rStCtrl.Tell() < aProgTagHd.GetRecEndFilePos() ) )
29131 + DffRecordHeader aProgTagContentHd;
29132 + rStCtrl >> aProgTagContentHd;
29133 + switch( aProgTagContentHd.nRecType )
29136 + case PPT_PST_CommentContainer :
29142 + case DFF_msofbtAnimGroup :
29144 + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > xPage( pPage->getUnoPage(), ::com::sun::star::uno::UNO_QUERY );
29145 + ppt::AnimationImporter aImporter( this, rStCtrl );
29146 + aImporter.import( xPage, aProgTagContentHd );
29147 + bNewAnimationsUsed = sal_True;
29151 + case PPT_PST_NewlyAddedAtomByXP11008 : // ???
29154 + case PPT_PST_NewlyAddedAtomByXP12011 : // ??? don't know, this atom is always 8 bytes big
29155 + break; // and is appearing in nearly every l10 progtag
29157 + aProgTagContentHd.SeekToEndOfRecord( rStCtrl );
29163 + case PPT_PST_HeadersFooters :
29164 + case PPT_PST_PPDrawing :
29169 + aHd.SeekToEndOfRecord( rStCtrl );
29171 + ImportPageEffect( (SdPage*)pPage, bNewAnimationsUsed );
29174 + // creating the corresponding note page
29175 + eAktPageKind = PPT_NOTEPAGE;
29176 + SdPage* pNotesPage = (SdPage*)MakeBlancPage( FALSE );
29177 + sal_uInt16 nNotesMasterNum = GetMasterPageIndex( nPage, PPT_SLIDEPAGE ) + 1;
29178 + sal_uInt32 nNotesPageId = GetNotesPageId( nPage );
29179 + if ( nNotesPageId )
29181 + nImportedPages++;
29182 + sal_uInt16 nNotesPageIndex = pNotePages->FindPage( nNotesPageId );
29183 + if ( nNotesPageIndex == PPTSLIDEPERSIST_ENTRY_NOTFOUND )
29184 + nNotesPageIndex = 0;
29185 + SetPageNum( nNotesPageIndex, PPT_NOTEPAGE );
29186 + PptSlidePersistEntry* pMasterPersist2 = NULL;
29187 + if ( HasMasterPage( nNotesPageIndex, PPT_NOTEPAGE ) ) // try to get the LayoutName from the masterpage
29189 + pNotesPage->TRG_SetMasterPage(*pSdrModel->GetMasterPage(nNotesMasterNum));
29190 + PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE );
29191 + if ( pPageList && nNotesMasterNum < pPageList->Count() )
29192 + pMasterPersist2 = (*pPageList)[ nNotesMasterNum ];
29193 + pNotesPage->SetLayoutName( ((SdPage&)pNotesPage->TRG_GetMasterPage()).GetLayoutName() );
29195 + pNotesPage->SetPageKind( PK_NOTES );
29196 + pNotesPage->TRG_SetMasterPage(*pSdrModel->GetMasterPage(nNotesMasterNum));
29197 + pSdrModel->InsertPage( pNotesPage ); // SJ: #i29625# because of form controls, the
29198 + ImportPage( pNotesPage, pMasterPersist2 ); // page must be inserted before importing
29199 + SetHeaderFooterPageSettings( pNotesPage, pMasterPersist2 );
29200 + pNotesPage->SetAutoLayout( AUTOLAYOUT_NOTES, FALSE );
29204 + pNotesPage->SetPageKind( PK_NOTES );
29205 + pNotesPage->TRG_SetMasterPage(*pSdrModel->GetMasterPage(nNotesMasterNum));
29206 + pNotesPage->SetAutoLayout( AUTOLAYOUT_NOTES, TRUE );
29207 + pSdrModel->InsertPage( pNotesPage );
29208 + SdrObject* pPageObj = pNotesPage->GetPresObj( PRESOBJ_PAGE, 1 );
29210 + ((SdrPageObj*)pPageObj)->SetReferencedPage(pSdrModel->GetPage(( nPage << 1 ) + 1));
29214 + pStbMgr->SetState( nImportedPages++ );
29220 + // Das kann bei Dokumentvorlagen vorkommen
29221 + eAktPageKind = PPT_SLIDEPAGE;
29222 + SdrPage* pPage = MakeBlancPage( FALSE );
29223 + pSdrModel->InsertPage( pPage );
29225 + // #i37397#, trying to set the title master for the first page
29226 + sal_uInt16 nMaster, nMasterCount = pSdrModel->GetMasterPageCount();
29227 + SdPage* pFoundMaster = NULL;
29228 + for ( nMaster = 1; nMaster < nMasterCount; nMaster++ )
29230 + SdPage* pMaster = static_cast<SdPage*>( pSdrModel->GetMasterPage( nMaster ) );
29231 + if ( pMaster->GetPageKind() == PK_STANDARD )
29233 + SetPageNum( nMaster, PPT_MASTERPAGE );
29234 + if ( !pFoundMaster )
29235 + pFoundMaster = pMaster;
29236 + else if ( GetSlideLayoutAtom()->eLayout == PPT_LAYOUT_TITLEMASTERSLIDE )
29237 + pFoundMaster = pMaster;
29238 + if ( GetSlideLayoutAtom()->eLayout == PPT_LAYOUT_TITLEMASTERSLIDE )
29242 + if ( pFoundMaster )
29244 + ((SdPage*)pPage)->TRG_SetMasterPage( *((SdPage*)pFoundMaster) );
29245 + ((SdPage*)pPage)->SetLayoutName( ((SdPage*)pFoundMaster)->GetLayoutName() );
29247 + ((SdPage*)pPage)->SetAutoLayout( AUTOLAYOUT_TITLE, TRUE, TRUE );
29249 + eAktPageKind = PPT_NOTEPAGE;
29250 + SdrPage* pNPage = MakeBlancPage( FALSE );
29251 + pSdrModel->InsertPage( pNPage );
29253 + SetPageNum( nPageNum, ePageKind );
29254 + rStCtrl.Seek( nFPosMerk );
29256 + ///////////////////////////////////////////////////////////////////
29257 + // Handzettel und Notiz-Seiten erzeugen //
29258 + ///////////////////////////////////////////////////////////////////
29259 + bOk = mpDoc->CreateMissingNotesAndHandoutPages();
29262 + for ( i = 0; i < mpDoc->GetSdPageCount( PK_STANDARD ); i++ )
29264 + ////////////////////
29265 + // set AutoLayout //
29266 + ////////////////////
29267 + SetPageNum( i, PPT_SLIDEPAGE );
29268 + SdPage* pPage = mpDoc->GetSdPage( i, PK_STANDARD );
29269 + AutoLayout eAutoLayout = AUTOLAYOUT_NONE;
29270 + const PptSlideLayoutAtom* pSlideLayout = GetSlideLayoutAtom();
29271 + if ( pSlideLayout )
29273 + switch ( pSlideLayout->eLayout ) // Praesentationslayouts fuer Standard-Seiten
29275 + case PPT_LAYOUT_TITLEANDBODYSLIDE :
29277 + eAutoLayout = AUTOLAYOUT_ENUM;
29278 + USHORT nID1 = pSlideLayout->aPlaceholderId[ 1 ];
29281 + case PPT_PLACEHOLDER_BODY :
29282 + eAutoLayout = AUTOLAYOUT_ENUM;
29284 + case PPT_PLACEHOLDER_TABLE :
29285 + eAutoLayout = AUTOLAYOUT_TAB;
29287 + case PPT_PLACEHOLDER_ORGANISZATIONCHART :
29288 + eAutoLayout = AUTOLAYOUT_ORG;
29290 + case PPT_PLACEHOLDER_GRAPH :
29291 + eAutoLayout = AUTOLAYOUT_CHART;
29293 + case PPT_PLACEHOLDER_OBJECT :
29294 + eAutoLayout = AUTOLAYOUT_OBJ;
29296 + case PPT_PLACEHOLDER_VERTICALTEXTBODY :
29297 + eAutoLayout = AUTOLAYOUT_TITLE_VERTICAL_OUTLINE;
29303 + case PPT_LAYOUT_2COLUMNSANDTITLE :
29305 + eAutoLayout = AUTOLAYOUT_2TEXT;
29306 + USHORT nID1 = pSlideLayout->aPlaceholderId[ 1 ];
29307 + USHORT nID2 = pSlideLayout->aPlaceholderId[ 2 ];
29308 + if ( nID1 == PPT_PLACEHOLDER_BODY && nID2 == PPT_PLACEHOLDER_GRAPH )
29309 + eAutoLayout = AUTOLAYOUT_TEXTCHART;
29310 + else if ( nID1 == PPT_PLACEHOLDER_GRAPH && nID2 == PPT_PLACEHOLDER_BODY )
29311 + eAutoLayout = AUTOLAYOUT_CHARTTEXT;
29312 + else if ( nID1 == PPT_PLACEHOLDER_BODY && nID2 == PPT_PLACEHOLDER_CLIPART )
29313 + eAutoLayout = AUTOLAYOUT_TEXTCLIP;
29314 + else if ( nID1 == PPT_PLACEHOLDER_CLIPART && nID2 == PPT_PLACEHOLDER_BODY )
29315 + eAutoLayout = AUTOLAYOUT_CLIPTEXT;
29316 + else if ( nID1 == PPT_PLACEHOLDER_CLIPART && nID2 == PPT_PLACEHOLDER_VERTICALTEXTBODY )
29317 + eAutoLayout = AUTOLAYOUT_TITLE_VERTICAL_OUTLINE_CLIPART;
29318 + else if ( ( nID1 == PPT_PLACEHOLDER_BODY )
29319 + && ( ( nID2 == PPT_PLACEHOLDER_OBJECT ) || ( nID2 == PPT_PLACEHOLDER_MEDIACLIP ) ) )
29320 + eAutoLayout = AUTOLAYOUT_TEXTOBJ;
29321 + else if ( ( nID2 == PPT_PLACEHOLDER_BODY )
29322 + && ( ( nID1 == PPT_PLACEHOLDER_OBJECT ) || ( nID1 == PPT_PLACEHOLDER_MEDIACLIP ) ) )
29323 + eAutoLayout = AUTOLAYOUT_OBJTEXT;
29324 + else if ( ( nID1 == PPT_PLACEHOLDER_OBJECT ) && ( nID2 == PPT_PLACEHOLDER_OBJECT ) )
29325 + eAutoLayout = AUTOLAYOUT_OBJ;
29329 + case PPT_LAYOUT_2ROWSANDTITLE :
29331 + eAutoLayout = AUTOLAYOUT_2TEXT;
29332 + USHORT nID1 = pSlideLayout->aPlaceholderId[ 1 ];
29333 + USHORT nID2 = pSlideLayout->aPlaceholderId[ 2 ];
29334 + if ( nID1 == PPT_PLACEHOLDER_BODY && nID2 == PPT_PLACEHOLDER_OBJECT )
29335 + eAutoLayout = AUTOLAYOUT_TEXTOVEROBJ;
29336 + else if ( nID1 == PPT_PLACEHOLDER_OBJECT && nID2 == PPT_PLACEHOLDER_BODY )
29337 + eAutoLayout = AUTOLAYOUT_OBJOVERTEXT;
29341 + case PPT_LAYOUT_TITLESLIDE :
29342 + eAutoLayout = AUTOLAYOUT_TITLE;
29344 + case PPT_LAYOUT_ONLYTITLE :
29345 + eAutoLayout = AUTOLAYOUT_ONLY_TITLE;
29347 + case PPT_LAYOUT_RIGHTCOLUMN2ROWS :
29348 + eAutoLayout = AUTOLAYOUT_TEXT2OBJ;
29350 + case PPT_LAYOUT_LEFTCOLUMN2ROWS :
29351 + eAutoLayout = AUTOLAYOUT_2OBJTEXT;
29353 + case PPT_LAYOUT_TOPROW2COLUMN :
29354 + eAutoLayout = AUTOLAYOUT_2OBJOVERTEXT;
29356 + case PPT_LAYOUT_4OBJECTS :
29357 + eAutoLayout = AUTOLAYOUT_4OBJ;
29359 + case PPT_LAYOUT_BIGOBJECT :
29360 + eAutoLayout = AUTOLAYOUT_OBJ;
29362 + case PPT_LAYOUT_TITLERIGHTBODYLEFT :
29363 + eAutoLayout = AUTOLAYOUT_VERTICAL_TITLE_VERTICAL_OUTLINE; // AUTOLAYOUT_ENUM;
29365 + case PPT_LAYOUT_TITLERIGHT2BODIESLEFT :
29366 + eAutoLayout = AUTOLAYOUT_VERTICAL_TITLE_TEXT_CHART; // AUTOLAYOUT_TEXT2OBJ;
29369 + case PPT_LAYOUT_BOTTOMROW2COLUMNS :
29370 + case PPT_LAYOUT_BLANCSLIDE :
29371 + case PPT_LAYOUT_MASTERSLIDE : // Layout der Standard- und Titel-MasterPage
29372 + case PPT_LAYOUT_TITLEMASTERSLIDE :
29373 + case PPT_LAYOUT_MASTERNOTES : // Layout der Notizen-MasterPage
29374 + case PPT_LAYOUT_NOTESTITLEBODY : // Praesentationslayout fuer Notiz-Seiten
29375 + case PPT_LAYOUT_HANDOUTLAYOUT : // Praesentationslayout fuer Handzettelseiten
29376 + eAutoLayout = AUTOLAYOUT_NONE;
29379 + if ( eAutoLayout != AUTOLAYOUT_NONE )
29380 + pPage->SetAutoLayout( eAutoLayout, FALSE );
29383 + //////////////////////////////////////////////////////////////
29384 + // Handzettel-MasterPage: Autolayout setzen //
29385 + //////////////////////////////////////////////////////////////
29386 + SdPage* pHandoutMPage = mpDoc->GetMasterSdPage( 0, PK_HANDOUT );
29387 + pHandoutMPage->SetAutoLayout( AUTOLAYOUT_HANDOUT6, TRUE, TRUE );
29390 + UINT32 nSlideCount = GetPageCount();
29391 + for ( i = 0; ( i < nSlideCount) && ( i < maSlideNameList.Count() ); i++ )
29393 + SdPage* pPage = mpDoc->GetSdPage( i, PK_STANDARD );
29394 + String* pName = (String*)maSlideNameList.GetObject( i );
29395 + if ( pPage && pName )
29397 + if ( pName->Len() )
29398 + pPage->SetName( *pName );
29400 + *pName = pPage->GetName();
29403 + if ( mbDocumentFound )
29405 + mpDoc->SetSummationOfParagraphs( sal_True );
29408 + ::sd::FrameView* pFrameView = mpDoc->GetFrameView( 0 );
29409 + if ( !pFrameView )
29411 + List* pFrameViewList = mpDoc->GetFrameViewList();
29412 + if ( pFrameViewList )
29414 + pFrameView = new ::sd::FrameView( mpDoc );
29415 + if ( pFrameView )
29416 + pFrameViewList->Insert( pFrameView );
29419 + if ( pFrameView )
29421 + sal_uInt16 nSelectedPage = 0;
29422 + PageKind ePageKind = PK_STANDARD;
29423 + EditMode eEditMode = EM_PAGE;
29425 + switch ( aUserEditAtom.eLastViewType )
29427 + case 7 : // outliner view
29429 + SfxItemSet* pSet = mrMed.GetItemSet();
29431 + pSet->Put( SfxUInt16Item( SID_VIEW_ID, 3 ) );
29434 + case 8 : // slide sorter
29436 + SfxItemSet* pSet = mrMed.GetItemSet();
29438 + pSet->Put( SfxUInt16Item( SID_VIEW_ID, 2 ) );
29441 + case 10 : // titlemaster
29442 + nSelectedPage = 1;
29443 + case 2 : // master
29445 + ePageKind = PK_STANDARD;
29446 + eEditMode = EM_MASTERPAGE;
29449 + case 5 : // notes master
29450 + eEditMode = EM_MASTERPAGE;
29451 + case 3 : // notes
29452 + ePageKind = PK_NOTES;
29454 + case 4 : // handout
29455 + ePageKind = PK_HANDOUT;
29458 + case 1 : // normal
29461 + pFrameView->SetPageKind( ePageKind );
29462 + pFrameView->SetSelectedPage( nSelectedPage );
29463 + pFrameView->SetViewShEditMode( eEditMode, ePageKind );
29466 + DffRecordHeader aCustomShowHeader;
29467 + // custom show einlesen und setzen
29468 + rStCtrl.Seek( maDocHd.GetRecBegFilePos() + 8 );
29469 + if ( SeekToRec( rStCtrl, PPT_PST_NamedShows, maDocHd.GetRecEndFilePos(), &aCustomShowHeader ) )
29471 + DffRecordHeader aCuHeader;
29472 + while( SeekToRec( rStCtrl, PPT_PST_NamedShow, aCustomShowHeader.GetRecEndFilePos(), &aCuHeader ) )
29474 + DffRecordHeader aContent;
29475 + if ( SeekToRec( rStCtrl, PPT_PST_CString, aCuHeader.GetRecEndFilePos(), &aContent ) )
29478 + aContent.SeekToBegOfRecord( rStCtrl );
29479 + if ( ReadString( aCuShow ) )
29481 + if ( SeekToRec( rStCtrl, PPT_PST_NamedShowSlides, aCuHeader.GetRecEndFilePos(), &aContent ) )
29483 + PptSlidePersistList* pPageList = GetPageList( PPT_SLIDEPAGE );
29484 + UINT32 nSCount = aContent.nRecLen >> 2;
29485 + if ( pPageList && nSCount )
29487 + List* pList = mpDoc->GetCustomShowList( TRUE );
29490 + SdCustomShow* pSdCustomShow = new SdCustomShow( mpDoc );
29491 + if ( pSdCustomShow )
29493 + pSdCustomShow->SetName( aCuShow );
29494 + UINT32 nFound = 0;
29495 + for ( UINT32 nS = 0; nS < nSCount; nS++ )
29497 + UINT32 nPageNumber;
29498 + rStCtrl >> nPageNumber;
29499 + USHORT nPage = pPageList->FindPage( nPageNumber );
29500 + if ( nPage != PPTSLIDEPERSIST_ENTRY_NOTFOUND )
29502 + SdPage* pPage = mpDoc->GetSdPage( nPage, PK_STANDARD );
29505 + pSdCustomShow->Insert( pPage, LIST_APPEND );
29511 + pList->Insert( pSdCustomShow, LIST_APPEND );
29513 + delete pSdCustomShow;
29522 + // this is defaulted, maybe there is no SSDocInfoAtom
29523 + String aCustomShow;
29524 + sal_uInt32 nFlags = 1; // Bit 0: Auto advance
29525 + sal_uInt32 nPenColor = 0x1000000;
29526 + sal_Int32 nRestartTime = 0x7fffffff;
29527 + sal_uInt16 nStartSlide = 0;
29528 + sal_Int16 nEndSlide = 0;
29530 + // read the pres. configuration
29531 + rStCtrl.Seek( maDocHd.GetRecBegFilePos() + 8 );
29532 + if ( SeekToRec( rStCtrl, PPT_PST_SSDocInfoAtom, maDocHd.GetRecEndFilePos(), &aCustomShowHeader ) )
29534 + rStCtrl >> nPenColor
29539 + sal_Unicode nChar;
29540 + for ( UINT32 i2 = 0; i2 < 32; i2++ )
29542 + rStCtrl >> nChar;
29544 + aCustomShow.Append( nChar );
29547 + rStCtrl.SeekRel( ( 31 - i2 ) << 1 );
29551 + rStCtrl >> nFlags;
29553 + // set the current custom show
29554 + if ( aCustomShow.Len() )
29557 + List* pList = mpDoc->GetCustomShowList( FALSE );
29560 + for ( pPtr = pList->First(); pPtr; pPtr = pList->Next() )
29562 + if ( ((SdCustomShow*)pPtr)->GetName() == aCustomShow )
29569 + sd::PresentationSettings& rPresSettings = mpDoc->getPresentationSettings();
29571 + rPresSettings.mbManual = ( nFlags & 1 ) == 0;
29572 + rPresSettings.mbAnimationAllowed = ( nFlags & 2 ) == 0;
29573 + rPresSettings.mbAll = ( nFlags & 4 ) == 0;
29574 + rPresSettings.mbCustomShow = ( nFlags & 8 ) != 0;
29575 + rPresSettings.mbEndless = ( nFlags & 0x80 ) != 0;
29576 + rPresSettings.mbFullScreen = ( nFlags & 0x10 ) == 0;
29577 +// rPresSettings.mnPauseTimeout;
29578 +// rPresSettings.mbShowLogo;
29579 + if ( nStartSlide && ( nStartSlide <= GetPageCount() ) )
29581 + SdPage* pPage = mpDoc->GetSdPage( nStartSlide - 1, PK_STANDARD );
29583 + rPresSettings.maPresPage = pPage->GetName();
29589 + // read DocumentInfo
29590 + uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
29591 + mpDoc->GetObjectShell()->GetModel(), uno::UNO_QUERY_THROW);
29592 + uno::Reference<document::XDocumentProperties> xDocProps
29593 + = xDPS->getDocumentProperties();
29594 + sfx2::LoadOlePropertySet(xDocProps, &mrStorage);
29595 + xDocProps->setTemplateName(::rtl::OUString());
29597 + pSdrModel->setLock( sal_False );
29601 +void ImplSdPPTImport::SetHeaderFooterPageSettings( SdPage* pPage, const PptSlidePersistEntry* pMasterPersist )
29604 + PptSlidePersistList* pList = GetPageList( eAktPageKind );
29605 + if ( ( !pList ) || ( pList->Count() <= nAktPageNum ) )
29607 + PptSlidePersistEntry& rSlidePersist = *(*pList)[ nAktPageNum ];
29608 + HeaderFooterEntry* pHFE = rSlidePersist.pHeaderFooterEntry;
29611 + for ( i = 0; i < 4; i++ )
29613 + bool bVisible = pHFE->IsToDisplay( i );
29614 + if ( ( eAktPageKind == PPT_SLIDEPAGE )
29615 + && ( rSlidePersist.aSlideAtom.aLayout.eLayout == PPT_LAYOUT_TITLESLIDE )
29616 + && ( aDocAtom.bTitlePlaceholdersOmitted == TRUE ) )
29618 + bVisible = sal_False;
29620 + if ( bVisible && pMasterPersist )
29622 + sal_uInt32 nPosition = pHFE->NeedToImportInstance( i, rSlidePersist );
29625 + Rectangle aEmpty;
29626 + bVisible = sal_False;
29627 + rStCtrl.Seek( nPosition );
29628 + ProcessData aProcessData( rSlidePersist, (SdPage*)pPage );
29629 + SdrObject* pObj = ImportObj( rStCtrl, (void*)&aProcessData, aEmpty, aEmpty );
29631 + pPage->NbcInsertObject( pObj, 0 );
29634 + String aPlaceHolderString;
29635 + if ( pHFE->pPlaceholder )
29636 + aPlaceHolderString = pHFE->pPlaceholder[ i ];
29638 + sd::HeaderFooterSettings rHeaderFooterSettings( pPage->getHeaderFooterSettings() );
29643 + rHeaderFooterSettings.mbDateTimeVisible = bVisible;
29644 + rHeaderFooterSettings.mbDateTimeIsFixed = ( pHFE->nAtom & 0x20000 ) == 0;
29645 + rHeaderFooterSettings.maDateTimeText = aPlaceHolderString;
29646 + SvxDateFormat eDateFormat;
29647 + SvxTimeFormat eTimeFormat;
29648 + PPTFieldEntry::GetDateTime( pHFE->nAtom & 0xff, eDateFormat, eTimeFormat );
29649 + rHeaderFooterSettings.meDateTimeFormat = eDateFormat | ( eTimeFormat << 4 );
29654 + rHeaderFooterSettings.mbHeaderVisible = bVisible;
29655 + rHeaderFooterSettings.maHeaderText = aPlaceHolderString;
29660 + rHeaderFooterSettings.mbFooterVisible = bVisible;
29661 + rHeaderFooterSettings.maFooterText = aPlaceHolderString;
29666 + rHeaderFooterSettings.mbSlideNumberVisible = bVisible;
29670 + pPage->setHeaderFooterSettings( rHeaderFooterSettings );
29675 +//////////////////////////////////////////////////////////////////////////
29677 +// Import von Seiten
29679 +//////////////////////////////////////////////////////////////////////////
29681 +struct Ppt97AnimationStlSortHelper
29683 + bool operator()( const std::pair< SdrObject*, Ppt97AnimationPtr >& p1, const std::pair< SdrObject*, Ppt97AnimationPtr >& p2 );
29686 +bool Ppt97AnimationStlSortHelper::operator()( const std::pair< SdrObject*, Ppt97AnimationPtr >& p1, const std::pair< SdrObject*, Ppt97AnimationPtr >& p2 )
29688 + if( !p1.second.get() || !p2.second.get() )
29690 + if( *p1.second < *p2.second )
29692 + if( *p1.second > *p2.second )
29694 + if( p1.first->GetOrdNum() < p2.first->GetOrdNum() )
29699 +void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const sal_Bool bNewAnimationsUsed )
29701 + ULONG nFilePosMerk = rStCtrl.Tell();
29703 + // PageKind an der Seite setzen (bisher nur PK_STANDARD oder PK_NOTES)
29704 + if ( pPage->GetPageKind() == PK_STANDARD )
29706 + PptSlidePersistList* pPersistList = GetPageList( eAktPageKind );
29707 + PptSlidePersistEntry* pActualSlidePersist = ( pPersistList && ( nAktPageNum < pPersistList->Count() ) )
29708 + ? (*pPersistList)[ nAktPageNum ] : NULL;
29710 + if ( pActualSlidePersist && ( eAktPageKind == PPT_SLIDEPAGE ) )
29712 + if ( ! ( pActualSlidePersist->aSlideAtom.nFlags & 1 ) ) // do not follow master objects ?
29714 + if(pPage->TRG_HasMasterPage())
29716 + SetOfByte aVisibleLayers = pPage->TRG_GetMasterPageVisibleLayers();
29717 + aVisibleLayers.Set(mnBackgroundObjectsLayerID, FALSE);
29718 + pPage->TRG_SetMasterPageVisibleLayers(aVisibleLayers);
29722 + DffRecordHeader aPageRecHd;
29723 + if ( pPage && SeekToAktPage( &aPageRecHd ) )
29725 + ULONG nPageRecEnd = aPageRecHd.GetRecEndFilePos();
29727 + BOOL bTryTwice = ( eAktPageKind == PPT_SLIDEPAGE );
29728 + BOOL bSSSlideInfoAtom = FALSE;
29731 + while ( ( rStCtrl.GetError() == 0 ) && ( rStCtrl.Tell() < nPageRecEnd ) )
29733 + DffRecordHeader aHd;
29735 + switch ( aHd.nRecType )
29737 + case PPT_PST_SSSlideInfoAtom:
29739 + bSSSlideInfoAtom = TRUE;
29740 + if ( eAktPageKind == PPT_MASTERPAGE )
29742 + if ( pActualSlidePersist )
29743 + pActualSlidePersist->aPersistAtom.nReserved = aHd.GetRecBegFilePos();
29747 + sal_Int8 nDirection, nTransitionType, nByteDummy, nSpeed;
29748 + sal_Int16 nBuildFlags;
29749 + sal_Int32 nSlideTime, nSoundRef;
29750 + rStCtrl >> nSlideTime // Standzeit (in Ticks)
29751 + >> nSoundRef // Index in SoundCollection
29752 + >> nDirection // Richtung des Ueberblendeffekts
29753 + >> nTransitionType // Ueberblendeffekt
29754 + >> nBuildFlags // Buildflags (s.u.)
29755 + >> nSpeed // Geschwindigkeit (langsam, mittel, schnell)
29756 + >> nByteDummy >> nByteDummy >> nByteDummy;
29758 + switch ( nTransitionType )
29760 + case PPT_TRANSITION_TYPE_BLINDS :
29762 + if ( nDirection == 0 )
29763 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_VERTICAL_STRIPES );// Vertikal blenden
29764 + else if ( nDirection == 1 )
29765 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_HORIZONTAL_STRIPES );// Horizontal blenden
29768 + case PPT_TRANSITION_TYPE_CHECKER :
29770 + if ( nDirection == 0 )
29771 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_HORIZONTAL_CHECKERBOARD );// Vertikal versetzt einblenden ??
29772 + else if ( nDirection == 1 )
29773 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_VERTICAL_CHECKERBOARD );// Horizontal versetzt einblenden ??
29776 + case PPT_TRANSITION_TYPE_COVER :
29778 + if ( nDirection == 0 )
29779 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_RIGHT ); // Von rechts ueberdecken
29780 + else if ( nDirection == 1 )
29781 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_BOTTOM ); // Von unten ueberdecken
29782 + else if ( nDirection == 2 )
29783 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_LEFT ); // Von links ueberdecken
29784 + else if ( nDirection == 3 )
29785 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_TOP ); // Von oben ueberdecken
29786 + else if ( nDirection == 4 )
29787 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_LOWERRIGHT );// Von rechts unten ueberdecken ??
29788 + else if ( nDirection == 5 )
29789 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_LOWERLEFT ); // Von links unten ueberdecken ??
29790 + else if ( nDirection == 6 )
29791 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_UPPERRIGHT );// Von rechts oben ueberdecken
29792 + else if ( nDirection == 7 )
29793 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_UPPERLEFT ); // Von links oben ueberdecken ??
29796 + case PPT_TRANSITION_TYPE_NONE :
29798 + if ( nBuildFlags )
29800 + if ( nDirection == 0 )
29801 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_NONE ); // Direkt
29802 + else if ( nDirection == 1 )
29804 + pPage->setTransitionType( animations::TransitionType::BARWIPE );
29805 + pPage->setTransitionSubtype( animations::TransitionSubType::FADEOVERCOLOR );
29806 + pPage->setTransitionFadeColor( 0 );
29810 + pPage->setTransitionType( 0 );
29813 + case PPT_TRANSITION_TYPE_DISSOLVE :
29814 + pPage->SetFadeEffect(::com::sun::star::presentation::FadeEffect_DISSOLVE); // Aufloesen
29816 + case PPT_TRANSITION_TYPE_RANDOM_BARS :
29818 + if ( nDirection == 0 )
29819 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_HORIZONTAL_LINES ); // Horizontale Linien
29820 + else if ( nDirection == 1 )
29821 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_VERTICAL_LINES ); // Vertikale Linien
29824 + case PPT_TRANSITION_TYPE_SPLIT :
29826 + if ( nDirection == 0 )
29827 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_OPEN_VERTICAL ); // Horizontal oeffnen
29828 + else if ( nDirection == 1 )
29829 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_CLOSE_VERTICAL ); // Horizontal schliessen
29830 + else if ( nDirection == 2 )
29831 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_OPEN_HORIZONTAL ); // Vertikal oeffnen
29832 + else if ( nDirection == 3 )
29833 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_CLOSE_HORIZONTAL );// Vertikal schliessen
29836 + case PPT_TRANSITION_TYPE_STRIPS :
29838 + if ( nDirection == 4 )
29839 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_LOWERRIGHT );// Diagonal nach links oben
29840 + else if ( nDirection == 5 )
29841 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_LOWERLEFT ); // Diagonal nach rechts oben
29842 + else if ( nDirection == 6 )
29843 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_UPPERRIGHT );// Diagonal nach links unten
29844 + else if ( nDirection == 7 )
29845 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_UPPERLEFT ); // Diagonal nach rechts unten
29848 + case PPT_TRANSITION_TYPE_PULL :
29850 + if ( nDirection == 0 )
29851 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_UNCOVER_TO_LEFT ); // Nach links aufdecken
29852 + else if ( nDirection == 1 )
29853 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_UNCOVER_TO_TOP ); // Nach oben aufdecken
29854 + else if ( nDirection == 2 )
29855 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_UNCOVER_TO_RIGHT ); // Nach rechts aufdecken
29856 + else if ( nDirection == 3 )
29857 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_UNCOVER_TO_BOTTOM ); // Nach unten aufdecken
29858 + else if ( nDirection == 4 )
29859 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_UNCOVER_TO_UPPERLEFT );// Nach links oben aufdecken
29860 + else if ( nDirection == 5 )
29861 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT );// Nach rechts oben aufdecken
29862 + else if ( nDirection == 6 )
29863 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_UNCOVER_TO_LOWERLEFT );// Nach links unten aufdecken
29864 + else if ( nDirection == 7 )
29865 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT );// Nach rechts unten aufdecken
29868 + case PPT_TRANSITION_TYPE_WIPE :
29870 + if ( nDirection == 0 )
29871 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_RIGHT ); // Von rechts rollen
29872 + else if ( nDirection == 1 )
29873 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_BOTTOM );// Von unten rollen
29874 + else if ( nDirection == 2 )
29875 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_LEFT ); // Von links rollen
29876 + else if ( nDirection == 3 )
29877 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_TOP ); // Von oben rollen
29880 + case PPT_TRANSITION_TYPE_RANDOM :
29881 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_RANDOM ); // Automatisch
29883 + case PPT_TRANSITION_TYPE_FADE :
29885 + pPage->setTransitionType( animations::TransitionType::FADE );
29886 + pPage->setTransitionSubtype( animations::TransitionSubType::FADEOVERCOLOR );
29887 + pPage->setTransitionFadeColor( 0 );
29890 + case PPT_TRANSITION_TYPE_ZOOM :
29892 + if ( nDirection == 0 )
29893 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_CENTER );// Von innen einblenden
29894 + else if ( nDirection == 1 )
29895 + pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_TO_CENTER ); // Von aussen einblenden
29898 + case PPT_TRANSITION_TYPE_DIAMOND :
29900 + pPage->setTransitionType( animations::TransitionType::IRISWIPE );
29901 + pPage->setTransitionSubtype( animations::TransitionSubType::DIAMOND );
29904 + case PPT_TRANSITION_TYPE_PLUS :
29906 + pPage->setTransitionType( animations::TransitionType::FOURBOXWIPE );
29907 + pPage->setTransitionSubtype( animations::TransitionSubType::CORNERSOUT );
29910 + case PPT_TRANSITION_TYPE_CIRCLE :
29912 + pPage->setTransitionType( animations::TransitionType::ELLIPSEWIPE );
29913 + pPage->setTransitionSubtype( animations::TransitionSubType::CIRCLE );
29916 + case PPT_TRANSITION_TYPE_WEDGE :
29918 + pPage->setTransitionType( animations::TransitionType::FANWIPE );
29919 + pPage->setTransitionSubtype( animations::TransitionSubType::CENTERTOP );
29922 + case PPT_TRANSITION_TYPE_WHEEL :
29924 + pPage->setTransitionType( animations::TransitionType::PINWHEELWIPE );
29925 + sal_Int16 nSubType;
29926 + switch( nDirection )
29929 + case 1 : nSubType = animations::TransitionSubType::ONEBLADE; break;
29930 + case 2 : nSubType = animations::TransitionSubType::TWOBLADEVERTICAL; break;
29931 + case 3 : nSubType = animations::TransitionSubType::THREEBLADE; break;
29932 + case 4 : nSubType = animations::TransitionSubType::FOURBLADE; break;
29933 + case 8 : nSubType = animations::TransitionSubType::EIGHTBLADE; break;
29935 + pPage->setTransitionSubtype( nSubType );
29938 + case PPT_TRANSITION_TYPE_PUSH :
29940 + pPage->setTransitionType( animations::TransitionType::PUSHWIPE );
29941 + sal_Int16 nSubType;
29942 + switch( nDirection )
29945 + case 0 : nSubType = animations::TransitionSubType::FROMRIGHT; break;
29946 + case 1 : nSubType = animations::TransitionSubType::FROMBOTTOM; break;
29947 + case 2 : nSubType = animations::TransitionSubType::FROMLEFT; break;
29948 + case 3 : nSubType = animations::TransitionSubType::FROMTOP; break;
29950 + pPage->setTransitionSubtype( nSubType );
29953 + case PPT_TRANSITION_TYPE_COMB :
29955 + pPage->setTransitionType( animations::TransitionType::PUSHWIPE );
29956 + pPage->setTransitionSubtype( nDirection ? animations::TransitionSubType::COMBVERTICAL : animations::TransitionSubType::COMBHORIZONTAL );
29959 + case PPT_TRANSITION_TYPE_NEWSFLASH :
29961 + pPage->setTransitionType( animations::TransitionType::ZOOM );
29962 + pPage->setTransitionSubtype( animations::TransitionSubType::ROTATEIN );
29965 + case PPT_TRANSITION_TYPE_SMOOTHFADE :
29967 + pPage->setTransitionType( animations::TransitionType::FADE );
29968 + pPage->setTransitionSubtype( animations::TransitionSubType::CROSSFADE );
29973 + if ( nSpeed == 0 )
29974 + pPage->setTransitionDuration( 3.0 ); // langsam
29975 + else if ( nSpeed == 1 )
29976 + pPage->setTransitionDuration( 2.0 ); // mittel
29977 + else if ( nSpeed == 2 )
29978 + pPage->setTransitionDuration( 1.0 ); // schnell
29980 + if ( nBuildFlags & 0x400 ) // slidechange by time
29981 + { // Standzeit (in Ticks)
29982 + pPage->SetPresChange( PRESCHANGE_AUTO );
29983 + pPage->SetTime( nSlideTime / 1000 );
29986 + pPage->SetPresChange( mePresChange );
29988 +// if ( nBuildFlags & 1 ) // slidechange by mouseclick
29989 +// pPage->SetPresChange( mePresChange );
29991 + if ( nBuildFlags & 4 )
29992 + pPage->SetExcluded( TRUE ); // Dia nicht anzeigen
29993 + if ( nBuildFlags & 16 )
29994 + { // Dia mit Soundeffekt
29995 + pPage->SetSound( TRUE );
29996 + String aSoundFile( ReadSound( nSoundRef ) );
29997 + pPage->SetSoundFile( aSoundFile );
29999 + if ( nBuildFlags & ( 1 << 6 ) ) // Loop until next sound
30000 + pPage->SetLoopSound( sal_True );
30001 + if ( nBuildFlags & ( 1 << 8 ) ) // Stop the previous sound
30002 + pPage->SetStopSound( sal_True );
30007 + aHd.SeekToEndOfRecord( rStCtrl );
30009 + if ( bTryTwice && ( bSSSlideInfoAtom == FALSE ) )
30011 + bTryTwice = FALSE;
30012 + if ( HasMasterPage( nAktPageNum, eAktPageKind ) )
30014 + USHORT nMasterNum = GetMasterPageIndex( nAktPageNum, eAktPageKind );
30015 + PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE );
30016 + if ( pPageList && ( nMasterNum < pPageList->Count() ) )
30018 + PptSlidePersistEntry* pE = (*pPageList)[ nMasterNum ];
30021 + UINT32 nOfs = pE->aPersistAtom.nReserved;
30024 + rStCtrl.Seek( nOfs );
30025 + nPageRecEnd = nOfs + 16;
30038 + if ( !bNewAnimationsUsed )
30040 + tAnimationVector aAnimationsOnThisPage;
30042 + // add effects from page in correct order
30043 + SdrObjListIter aSdrIter( *pPage, IM_FLAT );
30044 + while ( aSdrIter.IsMore() )
30046 + SdrObject* pObj = aSdrIter.Next();
30047 + tAnimationMap::iterator aFound = maAnimations.find( pObj );
30048 + if( aFound != maAnimations.end() )
30050 + std::pair< SdrObject*, Ppt97AnimationPtr > aPair( (*aFound).first, (*aFound).second );
30051 + aAnimationsOnThisPage.push_back( aPair );
30055 + Ppt97AnimationStlSortHelper aSortHelper;
30056 + std::sort( aAnimationsOnThisPage.begin(), aAnimationsOnThisPage.end(), aSortHelper );
30058 + tAnimationVector::iterator aIter( aAnimationsOnThisPage.begin() );
30059 + const tAnimationVector::iterator aEnd( aAnimationsOnThisPage.end() );
30061 + for( ;aIter != aEnd; aIter++ )
30063 + Ppt97AnimationPtr pPpt97Animation = (*aIter).second;;
30064 + if( pPpt97Animation.get() )
30065 + pPpt97Animation->createAndSetCustomAnimationEffect( (*aIter).first );
30068 + rStCtrl.Seek( nFilePosMerk );
30071 +//////////////////////////////////////////////////////////////////////////
30073 +// Import von Sounds
30075 +// Die Sounds werden nicht nur als String importiert sondern auch
30076 +// in die Gallery einefuegt, falls dort noch nicht vorhanden.
30078 +///////////////////////////////////////////////////////////////////////////
30080 +String ImplSdPPTImport::ReadSound(UINT32 nSoundRef) const
30083 + UINT32 nPosMerk = rStCtrl.Tell();
30084 + DffRecordHeader aDocHd;
30085 + if ( SeekToDocument( &aDocHd ) )
30087 + UINT32 nSoundLen = aDocHd.GetRecEndFilePos();
30088 + DffRecordHeader aSoundBlockRecHd;
30089 + if( SeekToRec( rStCtrl, PPT_PST_SoundCollection, nSoundLen, &aSoundBlockRecHd ) )
30091 + UINT32 nDataLen = aSoundBlockRecHd.GetRecEndFilePos();
30092 + DffRecordHeader aSoundRecHd;
30093 + BOOL bRefStrValid = FALSE;
30094 + BOOL bDone = FALSE;
30096 + while( !bDone && SeekToRec( rStCtrl, PPT_PST_Sound, nDataLen, &aSoundRecHd ) )
30098 + UINT32 nStrLen = aSoundRecHd.GetRecEndFilePos();
30100 + UINT32 nPosMerk2 = rStCtrl.Tell();
30101 + if ( SeekToRec( rStCtrl, PPT_PST_CString, nStrLen, NULL, 2 ) )
30103 + if ( ReadString( aRefStr ) )
30104 + bRefStrValid = TRUE;
30106 + if ( bRefStrValid )
30108 + if ( UniString::CreateFromInt32( nSoundRef ) == aRefStr )
30110 + rStCtrl.Seek( nPosMerk2 );
30111 + if ( SeekToRec( rStCtrl, PPT_PST_CString, nStrLen, NULL, 0 ) )
30113 + ReadString( aRetval );
30120 + // ueberpruefen, ob diese Sound-Datei schon
30121 + // existiert. Wenn nicht, exportiere diese
30122 + // in unser lokales Sound-Verzeichnis.
30123 + BOOL bSoundExists = FALSE;
30124 + List* pSoundList = new List();
30126 + GalleryExplorer::FillObjList( GALLERY_THEME_SOUNDS, *pSoundList );
30127 + GalleryExplorer::FillObjList( GALLERY_THEME_USERSOUNDS, *pSoundList );
30129 + for( ULONG n = 0; ( n < pSoundList->Count() ) && !bSoundExists; n++ )
30131 + INetURLObject aURL( *(String*)pSoundList->GetObject( n ) );
30132 + String aSoundName( aURL.GetName() );
30134 + if( aSoundName == aRetval )
30136 + aRetval = *(String*)pSoundList->GetObject( n );
30137 + bSoundExists = TRUE;
30141 + for ( void* pPtr = pSoundList->First(); pPtr; pPtr = pSoundList->Next() )
30142 + delete (String*)pPtr;
30144 + delete pSoundList;
30146 + if ( !bSoundExists )
30148 + rStCtrl.Seek( nPosMerk2 );
30149 + DffRecordHeader aSoundDataRecHd;
30150 + if ( SeekToRec( rStCtrl, PPT_PST_SoundData, nStrLen, &aSoundDataRecHd, 0 ) )
30152 + String aGalleryDir( SvtPathOptions().GetGalleryPath() );
30153 + INetURLObject aGalleryUserSound( aGalleryDir.GetToken( aGalleryDir.GetTokenCount( ';' ) - 1 ) );
30155 + aGalleryUserSound.Append( aRetval );
30156 + UINT32 nSoundDataLen = aSoundDataRecHd.nRecLen;
30157 + UINT8* pBuf = new UINT8[ nSoundDataLen ];
30159 + rStCtrl.Read( pBuf, nSoundDataLen );
30160 + SvStream* pOStm = ::utl::UcbStreamHelper::CreateStream( aGalleryUserSound.GetMainURL( INetURLObject::NO_DECODE ), STREAM_WRITE | STREAM_TRUNC );
30164 + pOStm->Write( pBuf, nSoundDataLen );
30166 + if( pOStm->GetError() == ERRCODE_NONE )
30168 + GalleryExplorer::InsertURL( GALLERY_THEME_USERSOUNDS, aGalleryUserSound.GetMainURL( INetURLObject::NO_DECODE ) );
30169 + aRetval = aGalleryUserSound.GetMainURL( INetURLObject::NO_DECODE );
30180 + aSoundRecHd.SeekToEndOfRecord( rStCtrl );
30184 + rStCtrl.Seek( nPosMerk );
30188 +//////////////////////////////////////////////////////////////////////////
30190 +// media object import, the return value is the url to the media object
30192 +//////////////////////////////////////////////////////////////////////////
30194 +String ImplSdPPTImport::ReadMedia( sal_uInt32 nMediaRef ) const
30197 + DffRecordHeader* pHd( const_cast<ImplSdPPTImport*>(this)->aDocRecManager.GetRecordHeader( PPT_PST_ExObjList, SEEK_FROM_BEGINNING ) );
30200 + pHd->SeekToContent( rStCtrl );
30201 + while ( ( rStCtrl.Tell() < pHd->GetRecEndFilePos() ) && !aRetVal.Len() )
30203 + DffRecordHeader aHdMovie;
30204 + rStCtrl >> aHdMovie;
30205 + switch( aHdMovie.nRecType )
30207 + case PPT_PST_ExAviMovie :
30208 + case PPT_PST_ExMCIMovie :
30210 + DffRecordHeader aExVideoHd;
30211 + if ( SeekToRec( rStCtrl, PPT_PST_ExVideo, aHdMovie.GetRecEndFilePos(), &aExVideoHd ) )
30213 + DffRecordHeader aExMediaAtomHd;
30214 + if ( SeekToRec( rStCtrl, PPT_PST_ExMediaAtom, aExVideoHd.GetRecEndFilePos(), &aExMediaAtomHd ) )
30218 + if ( nRef == nMediaRef )
30220 + aExVideoHd.SeekToContent( rStCtrl );
30221 + while( rStCtrl.Tell() < aExVideoHd.GetRecEndFilePos() )
30223 + DffRecordHeader aHd;
30225 + switch( aHd.nRecType )
30227 + case PPT_PST_CString :
30229 + aHd.SeekToBegOfRecord( rStCtrl );
30231 + if ( ReadString( aStr ) )
30233 + if( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( aStr, aRetVal ) )
30235 + aRetVal = INetURLObject( aRetVal ).GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS );
30241 + aHd.SeekToEndOfRecord( rStCtrl );
30250 + aHdMovie.SeekToEndOfRecord( rStCtrl );
30256 +//////////////////////////////////////////////////////////////////////////
30258 +// Import von Objekten
30260 +//////////////////////////////////////////////////////////////////////////
30262 +void ImplSdPPTImport::FillSdAnimationInfo( SdAnimationInfo* pInfo, PptInteractiveInfoAtom* pIAtom, String aMacroName )
30264 + // Lokale Informationen in pInfo eintragen
30265 + if( pIAtom->nSoundRef )
30267 + pInfo->maBookmark = ReadSound( pIAtom->nSoundRef ); // Pfad zum Soundfile in MSDOS-Notation
30268 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_SOUND; // RunProgramAction
30270 +// if ( nFlags & 0x01 ) // koennen wir nicht ( beim Anklicken markieren )
30271 + switch ( pIAtom->nAction )
30273 +// case 0x01 : // MacroAction
30275 +// pInfo->meClickAction = ::com::sun::star::presentation::::com::sun::star::presentation::ClickAction_MACRO;
30276 +// // aMacro liegt in folgender Form vor:
30277 +// // "Macroname.Modulname.Libname.Dokumentname" oder
30278 +// // "Macroname.Modulname.Libname.Applikationsname"
30279 +// pInfo->maBookmark = aMacroName;
30282 + case 0x02 : // RunProgramAction
30284 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_PROGRAM;
30285 + pInfo->maBookmark = aMacroName; // Programmname in aBookmark
30288 + case 0x03 : // JumpAction
30290 + switch( pIAtom->nJump )
30293 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_NEXTPAGE; // Next slide
30296 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_PREVPAGE; // Previous slide
30299 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_FIRSTPAGE; // First slide
30302 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_LASTPAGE; // last Slide
30305 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_PREVPAGE; // Last slide viewed
30308 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_STOPPRESENTATION; // End show
30311 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_NONE; // 0x00: no action, else unknown
30318 + SdHyperlinkEntry* pPtr;
30319 + for ( pPtr = (SdHyperlinkEntry*)aHyperList.First(); pPtr; pPtr = (SdHyperlinkEntry*)aHyperList.Next() )
30321 + if ( pPtr->nIndex == pIAtom->nExHyperlinkId )
30326 + switch( pIAtom->nHyperlinkType )
30331 + case 8: // hyperlink : URL
30333 + if ( pPtr->aTarget.Len() )
30335 + pInfo->maBookmark = String( pPtr->aTarget );
30336 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_DOCUMENT;
30340 + case 7: // hyperlink auf eine Seite
30342 + if ( pPtr->aConvSubString.Len() )
30344 + pInfo->maBookmark = pPtr->aConvSubString;
30345 + pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_BOOKMARK;
30353 + case 0x05 : // OLEAction ( OLEVerb to use, 0==first, 1==secnd, .. )
30354 + case 0x06 : // MediaAction
30355 + case 0x07 : // CustomShowAction
30356 + default : // 0x00: no action, else unknown action
30361 +SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj, SdPage* pPage,
30362 + SfxStyleSheet* pSheet, SfxStyleSheet** ppStyleSheetAry ) const
30364 + SfxStyleSheet* pStyleSheetAry[ 9 ];
30365 + SdrTextObj* pText = pObj;
30366 + SdrObject* pRet = pText;
30368 + ppStyleSheetAry = NULL;
30370 + PresObjKind ePresKind = PRESOBJ_NONE;
30371 + PptOEPlaceholderAtom* pPlaceHolder = pTextObj->GetOEPlaceHolderAtom();
30372 + String aPresentationText;
30373 + if ( pPlaceHolder )
30375 + switch( pPlaceHolder->nPlaceholderId )
30377 + case PPT_PLACEHOLDER_MASTERNOTESSLIDEIMAGE :
30378 + case PPT_PLACEHOLDER_MASTERCENTEREDTITLE :
30379 + case PPT_PLACEHOLDER_MASTERTITLE :
30381 + ePresKind = PRESOBJ_TITLE;
30382 + aPresentationText = pPage->GetPresObjText( ePresKind );
30385 + case PPT_PLACEHOLDER_MASTERBODY :
30387 + ePresKind = PRESOBJ_OUTLINE;
30388 + aPresentationText = pPage->GetPresObjText( ePresKind );
30391 + case PPT_PLACEHOLDER_MASTERSUBTITLE :
30393 + ePresKind = PRESOBJ_TEXT;
30394 + aPresentationText = pPage->GetPresObjText( ePresKind );
30397 + case PPT_PLACEHOLDER_MASTERNOTESBODYIMAGE :
30399 + ePresKind = PRESOBJ_NOTES;
30400 + aPresentationText = pPage->GetPresObjText( ePresKind );
30403 + case PPT_PLACEHOLDER_MASTERDATE : ePresKind = PRESOBJ_DATETIME; break;
30404 + case PPT_PLACEHOLDER_MASTERSLIDENUMBER : ePresKind = PRESOBJ_SLIDENUMBER;break;
30405 + case PPT_PLACEHOLDER_MASTERFOOTER : ePresKind = PRESOBJ_FOOTER; break;
30406 + case PPT_PLACEHOLDER_MASTERHEADER : ePresKind = PRESOBJ_HEADER; break;
30409 + switch ( pTextObj->GetDestinationInstance() )
30411 + case TSS_TYPE_PAGETITLE :
30412 + case TSS_TYPE_TITLE :
30414 + pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE );
30416 + ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
30417 + DBG_ASSERT( pSheet, "ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for titleobject (SJ)" );
30420 + case TSS_TYPE_SUBTITLE :
30422 + pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TEXT );
30424 + ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
30425 + DBG_ASSERT( pSheet, "ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for subtitleobject (SJ)" );
30428 + case TSS_TYPE_BODY :
30429 + case TSS_TYPE_HALFBODY :
30430 + case TSS_TYPE_QUARTERBODY :
30432 + for ( UINT16 nLevel = 9; nLevel; nLevel-- )
30434 + String aName( pPage->GetLayoutName() );
30435 + aName.Append( (sal_Unicode)( ' ' ) );
30436 + aName.Append( String::CreateFromInt32( nLevel ) );
30437 + pSheet = (SfxStyleSheet*)mpDoc->GetStyleSheetPool()->Find( aName, SD_STYLE_FAMILY_MASTERPAGE );
30439 + pText->StartListening( *pSheet );
30440 + pStyleSheetAry[ nLevel - 1 ] = pSheet;
30442 + DBG_ASSERT( pSheet, "ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for outlinerobject (SJ)" );
30444 + ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
30445 + ppStyleSheetAry = &pStyleSheetAry[ 0 ];
30448 + case TSS_TYPE_NOTES :
30450 + if ( pPlaceHolder && ( ( pPlaceHolder->nPlaceholderId == PPT_PLACEHOLDER_NOTESSLIDEIMAGE )
30451 + || ( pPlaceHolder->nPlaceholderId == PPT_PLACEHOLDER_MASTERNOTESSLIDEIMAGE ) ) )
30453 + pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE );
30455 + ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
30456 + DBG_ASSERT( pSheet, "ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for titleobject (SJ)" );
30460 + pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_NOTES );
30461 + DBG_ASSERT( pSheet, "ImplSdPPTImport::ApplyTextObj -> could not get stylesheet for notesobj (SJ)" );
30463 + ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
30467 + case TSS_TYPE_UNUSED :
30468 + case TSS_TYPE_TEXT_IN_SHAPE :
30470 + switch( ePresKind )
30472 + case PRESOBJ_DATETIME :
30473 + case PRESOBJ_SLIDENUMBER :
30474 + case PRESOBJ_FOOTER :
30475 + case PRESOBJ_HEADER :
30476 + pSheet = (SfxStyleSheet*)mpDoc->GetStyleSheetPool()->Find( String(SdResId( STR_PSEUDOSHEET_BACKGROUNDOBJECTS )), SD_STYLE_FAMILY_PSEUDO );
30479 + pSheet = (SfxStyleSheet*)mpDoc->GetStyleSheetPool()->Find( String(SdResId( STR_STANDARD_STYLESHEET_NAME )), SD_STYLE_FAMILY_GRAPHICS );
30484 + pText = (SdrTextObj*)SdrPowerPointImport::ApplyTextObj( pTextObj, pText, pPage, pSheet, ppStyleSheetAry );
30485 + if ( pPlaceHolder && pPlaceHolder->nPlaceholderId )
30487 + if ( eAktPageKind == PPT_MASTERPAGE )
30489 + sal_Bool bCreatePlaceHolder = ( pTextObj->GetInstance() != TSS_TYPE_SUBTITLE ) && ( pTextObj->GetInstance() != TSS_TYPE_UNUSED );
30490 + sal_Bool bIsHeaderFooter = ( ePresKind == PRESOBJ_HEADER) || (ePresKind == PRESOBJ_FOOTER)
30491 + || (ePresKind == PRESOBJ_DATETIME) || (ePresKind == PRESOBJ_SLIDENUMBER);
30492 + if ( bCreatePlaceHolder && ( pTextObj->GetInstance() == TSS_TYPE_TEXT_IN_SHAPE ) )
30493 + bCreatePlaceHolder = bIsHeaderFooter;
30494 + if ( bCreatePlaceHolder )
30496 + if ( !bIsHeaderFooter )
30498 + pText->SetNotVisibleAsMaster( TRUE );
30499 + pText->SetEmptyPresObj( TRUE );
30501 + pText->SetUserCall( pPage );
30502 + pPage->InsertPresObj( pText, ePresKind );
30503 + SdrOutliner* pOutl = NULL;
30504 + if ( pTextObj->GetInstance() == TSS_TYPE_NOTES )
30505 + pOutl = GetDrawOutliner( pText );
30506 + if ( aPresentationText.Len() )
30507 + pPage->SetObjText( (SdrTextObj*)pText, pOutl, ePresKind, aPresentationText );
30509 + SfxStyleSheet* pSheet2( pPage->GetStyleSheetForPresObj( ePresKind ) );
30512 + SfxItemSet& rItemSet = pSheet2->GetItemSet();
30513 + rItemSet.Put( (SdrTextLeftDistItem&)pText->GetMergedItem( SDRATTR_TEXT_LEFTDIST ) );
30514 + rItemSet.Put( (SdrTextRightDistItem&)pText->GetMergedItem( SDRATTR_TEXT_RIGHTDIST ) );
30515 + rItemSet.Put( (SdrTextUpperDistItem&)pText->GetMergedItem( SDRATTR_TEXT_UPPERDIST ) );
30516 + rItemSet.Put( (SdrTextLowerDistItem&)pText->GetMergedItem( SDRATTR_TEXT_LOWERDIST ) );
30518 + pText->NbcSetStyleSheet( pSheet2, TRUE );
30520 + SfxItemSet aTempAttr( mpDoc->GetPool() );
30521 + SdrTextMinFrameHeightItem aMinHeight( pText->GetLogicRect().GetSize().Height() );
30522 + aTempAttr.Put( aMinHeight );
30523 + SdrTextAutoGrowHeightItem aAutoGrowHeight( FALSE );
30524 + aTempAttr.Put( aAutoGrowHeight );
30525 + pText->SetMergedItemSet(aTempAttr);
30534 + const PptSlideLayoutAtom* pSlideLayout = GetSlideLayoutAtom();
30535 + if ( pSlideLayout || ( eAktPageKind == PPT_NOTEPAGE ) )
30537 + INT16 nPlaceholderId = pPlaceHolder->nPlaceholderId;
30539 + if ( eAktPageKind == PPT_SLIDEPAGE )
30541 + for ( ; i < 8; i++ )
30543 + if ( pSlideLayout->aPlaceholderId[ i ] == nPlaceholderId )
30549 + PresObjKind ePresObjKind = PRESOBJ_NONE;
30550 + sal_Bool bEmptyPresObj = sal_True;
30551 + sal_Bool bVertical = sal_False;
30552 + if ( ( pTextObj->GetShapeType() == mso_sptRectangle ) || ( pTextObj->GetShapeType() == mso_sptTextBox ) )
30554 + if ( pTextObj->Count() )
30555 + bEmptyPresObj = sal_False;
30556 + switch ( nPlaceholderId )
30558 + case PPT_PLACEHOLDER_NOTESBODY : ePresObjKind = PRESOBJ_NOTES; break;
30559 + case PPT_PLACEHOLDER_VERTICALTEXTTITLE :
30560 + bVertical = sal_True; // PASSTHROUGH !!!
30561 + case PPT_PLACEHOLDER_TITLE : ePresObjKind = PRESOBJ_TITLE; break;
30562 + case PPT_PLACEHOLDER_VERTICALTEXTBODY :
30563 + bVertical = sal_True; // PASSTHROUGH !!!
30564 + case PPT_PLACEHOLDER_BODY : ePresObjKind = PRESOBJ_OUTLINE; break;
30565 + case PPT_PLACEHOLDER_CENTEREDTITLE : ePresObjKind = PRESOBJ_TITLE; break;
30566 + case PPT_PLACEHOLDER_SUBTITLE : ePresObjKind = PRESOBJ_TEXT; break; // PRESOBJ_OUTLINE
30570 + if ( !pTextObj->Count() )
30572 + switch ( nPlaceholderId )
30574 + case PPT_PLACEHOLDER_MEDIACLIP :
30575 + case PPT_PLACEHOLDER_OBJECT : ePresObjKind = PRESOBJ_OBJECT; break;
30576 + case PPT_PLACEHOLDER_GRAPH : ePresObjKind = PRESOBJ_CHART; break;
30577 + case PPT_PLACEHOLDER_TABLE : ePresObjKind = PRESOBJ_TABLE; break;
30578 + case PPT_PLACEHOLDER_CLIPART : ePresObjKind = PRESOBJ_GRAPHIC; break;
30579 + case PPT_PLACEHOLDER_ORGANISZATIONCHART : ePresObjKind = PRESOBJ_ORGCHART; break;
30585 + else if ( pTextObj->GetShapeType() == mso_sptPictureFrame )
30587 + if ( !pTextObj->Count() && pObj->ISA( SdrGrafObj ) )
30589 + bEmptyPresObj = sal_False;
30590 + switch ( nPlaceholderId )
30592 + case PPT_PLACEHOLDER_MEDIACLIP :
30593 + case PPT_PLACEHOLDER_OBJECT : ePresObjKind = PRESOBJ_OBJECT; break;
30594 + case PPT_PLACEHOLDER_GRAPH : ePresObjKind = PRESOBJ_CHART; break;
30595 + case PPT_PLACEHOLDER_TABLE : ePresObjKind = PRESOBJ_TABLE; break;
30596 + case PPT_PLACEHOLDER_CLIPART : ePresObjKind = PRESOBJ_GRAPHIC; break;
30597 + case PPT_PLACEHOLDER_ORGANISZATIONCHART : ePresObjKind = PRESOBJ_ORGCHART; break;
30601 + if ( ePresObjKind != PRESOBJ_NONE )
30603 + if ( !bEmptyPresObj )
30605 + pPage->InsertPresObj( pRet, ePresObjKind );
30609 + SdrObject* pPresObj = pPage->CreatePresObj( ePresObjKind, bVertical, pText->GetLogicRect(), TRUE );
30610 + pPresObj->SetUserCall( pPage );
30612 + SfxItemSet aSet( pSdrModel->GetItemPool() );
30613 + ApplyAttributes( rStCtrl, aSet );
30614 + pPresObj->SetMergedItemSet(aSet);
30616 + if ( ( eAktPageKind != PPT_NOTEPAGE ) && ( pSlideLayout->aPlacementId[ i ] != (ULONG)-1 ) )
30618 + SdrObject* pTitleObj = ((SdPage&)pPage->TRG_GetMasterPage()).GetPresObj( PRESOBJ_TITLE );
30619 + SdrObject* pOutlineObj = ((SdPage&)pPage->TRG_GetMasterPage()).GetPresObj( PRESOBJ_OUTLINE );
30621 + Rectangle aTitleRect;
30622 + Rectangle aOutlineRect;
30623 + Size aOutlineSize;
30626 + aTitleRect = pTitleObj->GetLogicRect();
30627 + if ( pOutlineObj )
30629 + aOutlineRect = pOutlineObj->GetLogicRect();
30630 + aOutlineSize = aOutlineRect.GetSize();
30632 + Rectangle aLogicRect( pPresObj->GetLogicRect() );
30633 + Size aLogicSize( aLogicRect.GetSize() );
30635 + switch ( pSlideLayout->aPlacementId[ i ] )
30637 + case 0 : // Lage im Titelbereich
30639 + if ( aLogicRect != aTitleRect )
30640 + pPresObj->SetUserCall( NULL );
30646 + if ( pSlideLayout->eLayout == PPT_LAYOUT_TITLEANDBODYSLIDE )
30647 + { // Lage im Outlinebereich
30648 + if ( aLogicRect != aOutlineRect )
30649 + pPresObj->SetUserCall( NULL );
30651 + else if ( pSlideLayout->eLayout == PPT_LAYOUT_2COLUMNSANDTITLE )
30652 + { // Lage im Outlinebereich links
30653 + if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
30654 + Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE ||
30655 + Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE ||
30656 + aLogicSize.Width() / aOutlineSize.Width() < 0.48 ||
30657 + aLogicSize.Width() / aOutlineSize.Width() > 0.5)
30659 + pPresObj->SetUserCall(NULL);
30662 + else if ( pSlideLayout->eLayout == PPT_LAYOUT_2ROWSANDTITLE )
30663 + { // Lage im Outlinebereich oben
30664 + if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
30665 + Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE ||
30666 + Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE)
30668 + pPresObj->SetUserCall( NULL );
30671 + else if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
30672 + Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE)
30673 + { // Lage im Outlinebereich links oben
30674 + pPresObj->SetUserCall( NULL );
30681 + if ( pSlideLayout->eLayout == PPT_LAYOUT_2COLUMNSANDTITLE )
30682 + { // Lage im Outlinebereich rechts
30683 + if (Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE ||
30684 + Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE ||
30685 + Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE ||
30686 + aLogicSize.Width() / aOutlineSize.Width() < 0.48 ||
30687 + aLogicSize.Width() / aOutlineSize.Width() > 0.5)
30689 + pPresObj->SetUserCall( NULL );
30692 + else if ( pSlideLayout->eLayout == PPT_LAYOUT_2ROWSANDTITLE )
30693 + { // Lage im Outlinebereich unten
30694 + if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
30695 + Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE ||
30696 + Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE)
30698 + pPresObj->SetUserCall( NULL );
30701 + else if (Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE ||
30702 + Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE)
30703 + { // Lage im Outlinebereich rechts oben
30704 + pPresObj->SetUserCall(NULL);
30710 + { // Lage im Outlinebereich links unten
30711 + if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
30712 + Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE)
30714 + pPresObj->SetUserCall( NULL );
30720 + { // Lage im Outlinebereich rechts unten
30721 + if (Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE ||
30722 + Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE)
30724 + pObj->SetUserCall( NULL );
30730 + pRet = NULL; // return zero cause this obj was already inserted by CreatePresObj
30733 + else if ( !pTextObj->Count() )
30739 + if ( pRet != pText )
30741 + SdrObject* pFree( pText );
30742 + SdrObject::Free( pFree );
30747 +SdrObject* ImplSdPPTImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, void* pData, Rectangle& rTextRect, SdrObject* pRet )
30749 + SdrObject* pObj = SdrPowerPointImport::ProcessObj( rSt, rObjData, pData, rTextRect, pRet );
30753 + // further setup placeholder objects
30754 + if( pObj->ISA(SdrPageObj) && pData )
30756 + const ProcessData* pProcessData=(const ProcessData*)pData;
30757 + if( pProcessData->pPage )
30758 + pProcessData->pPage->InsertPresObj( pObj, PRESOBJ_PAGE );
30761 + // Animationseffekte des Objektes lesen
30762 + BOOL bInhabitanceChecked = FALSE;
30763 + BOOL bAnimationInfoFound = FALSE;
30764 + DffRecordHeader aMasterShapeHd;
30766 + if ( maShapeRecords.SeekToContent( rSt, DFF_msofbtClientData, SEEK_FROM_CURRENT_AND_RESTART ) )
30768 + DffRecordHeader& rHdClientData = *maShapeRecords.Current();
30771 + UINT32 nClientDataLen = rHdClientData.GetRecEndFilePos();
30772 + DffRecordHeader aHd;
30776 + UINT32 nHdRecEnd = aHd.GetRecEndFilePos();
30777 + switch ( aHd.nRecType )
30779 + case PPT_PST_AnimationInfo :
30781 + DffRecordHeader aHdAnimInfoAtom;
30782 + if ( SeekToRec( rSt, PPT_PST_AnimationInfoAtom, nHdRecEnd, &aHdAnimInfoAtom ) )
30784 + // read data from stream
30785 + Ppt97AnimationPtr pAnimation( new Ppt97Animation( rSt ) );
30786 + // store animation informations
30787 + if( pAnimation->HasEffect() )
30789 + // translate color to RGB
30790 + pAnimation->SetDimColor( MSO_CLR_ToColor(pAnimation->GetDimColor()).GetColor() );
30791 + // translate sound bits to file url
30792 + if( pAnimation->HasSoundEffect() )
30793 + pAnimation->SetSoundFileUrl( ReadSound( pAnimation->GetSoundRef() ) );
30795 + bool bDontAnimateInvisibleShape = false;
30797 + SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>(pObj);
30799 + if( pTextObj && pTextObj->HasText() &&
30800 + !pObj->ISA( SdrObjGroup ) &&
30801 + pAnimation->HasAnimateAssociatedShape() )
30803 + const SfxItemSet& rObjItemSet = pObj->GetMergedItemSet();
30805 + XFillStyle eFillStyle = ((XFillStyleItem&)(rObjItemSet.Get(XATTR_FILLSTYLE))).GetValue();
30806 + XLineStyle eLineStyle = ((XLineStyleItem&)(rObjItemSet.Get(XATTR_LINESTYLE))).GetValue();
30808 + if ( ( eFillStyle == XFILL_NONE ) && ( eLineStyle == XLINE_NONE ) )
30809 + bDontAnimateInvisibleShape = true;
30812 + if( bDontAnimateInvisibleShape )
30813 + pAnimation->SetAnimateAssociatedShape(false);
30815 + //maybe some actions necessary to ensure that animations on master pages are played before animations on normal pages
30816 + ///mabe todo in future: bool bIsEffectOnMasterPage = !bInhabitanceChecked;?
30818 + maAnimations[pObj] = pAnimation;
30820 + bAnimationInfoFound = TRUE;
30825 + case PPT_PST_InteractiveInfo:
30827 + UINT32 nFilePosMerk2 = rSt.Tell();
30828 + String aMacroName;
30830 + if(SeekToRec( rSt, PPT_PST_CString, nHdRecEnd, NULL, 0 ) )
30831 + ReadString(aMacroName);
30833 + rSt.Seek( nFilePosMerk2 );
30834 + DffRecordHeader aHdInteractiveInfoAtom;
30835 + if ( SeekToRec( rSt, PPT_PST_InteractiveInfoAtom, nHdRecEnd, &aHdInteractiveInfoAtom ) )
30837 + PptInteractiveInfoAtom aInteractiveInfoAtom;
30838 + rSt >> aInteractiveInfoAtom;
30840 + // interactive object
30841 + SdAnimationInfo* pInfo = SdDrawDocument::GetShapeUserData(*pObj, true);
30843 + ( (ImplSdPPTImport*) this )->FillSdAnimationInfo( pInfo, &aInteractiveInfoAtom, aMacroName );
30844 + if ( aInteractiveInfoAtom.nAction == 6 ) // Sj -> media action
30846 + rHdClientData.SeekToContent( rStCtrl );
30847 + DffRecordHeader aObjRefAtomHd;
30848 + if ( SeekToRec( rSt, PPT_PST_ExObjRefAtom, nHdRecEnd, &aObjRefAtomHd ) )
30852 + String aMediaURL( ReadMedia( nRef ) );
30853 + if ( !aMediaURL.Len() )
30854 + aMediaURL = ReadSound( nRef );
30855 + if ( aMediaURL.Len() )
30857 + SdrMediaObj* pMediaObj = new SdrMediaObj( pObj->GetSnapRect() );
30858 + pMediaObj->SetModel( pObj->GetModel() );
30859 + pMediaObj->SetMergedItemSet( pObj->GetMergedItemSet() );
30861 + //--remove object from maAnimations list and add the new object instead
30862 + Ppt97AnimationPtr pAnimation;
30864 + tAnimationMap::iterator aFound = maAnimations.find( pObj );
30865 + if( aFound != maAnimations.end() )
30867 + pAnimation = (*aFound).second;
30868 + maAnimations.erase(aFound);
30870 + maAnimations[pMediaObj] = pAnimation;
30874 + SdrObject::Free( pObj ), pObj = pMediaObj; // SJ: hoping that pObj is not inserted in any list
30875 + pMediaObj->setURL( aMediaURL );
30883 + aHd.SeekToEndOfRecord( rSt );
30885 + while( ( rSt.GetError() == 0 ) && ( rSt.Tell() < nClientDataLen ) );
30887 + if ( bInhabitanceChecked || bAnimationInfoFound )
30889 + bInhabitanceChecked = TRUE;
30890 + if ( ! ( IsProperty( DFF_Prop_hspMaster ) && SeekToShape( rSt, pData, GetPropertyValue( DFF_Prop_hspMaster ) ) ) )
30892 + rSt >> aMasterShapeHd;
30893 + if ( !SeekToRec( rSt, DFF_msofbtClientData, aMasterShapeHd.GetRecEndFilePos(), &aMasterShapeHd ) )
30895 + aMasterShapeHd.SeekToContent( rSt );
30896 + rHdClientData = aMasterShapeHd;
30903 +// ---------------------
30904 +// - exported function -
30905 +// ---------------------
30907 +extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL ImportPPT( const ::rtl::OUString& rConfigPath,
30908 + uno::Sequence< beans::PropertyValue >* pConfigData,
30909 + SdDrawDocument* pDocument, SvStream& rDocStream, SvStorage& rStorage, SfxMedium& rMedium )
30911 + sal_Bool bRet = sal_False;
30913 + MSFilterTracer aTracer( rConfigPath, pConfigData );
30914 + aTracer.StartTracing();
30916 + SdPPTImport* pImport = new SdPPTImport( pDocument, rDocStream, rStorage, rMedium, &aTracer );
30917 + bRet = pImport->Import();
30919 + aTracer.EndTracing();
30924 diff --git sd/source/filter/ppt/pptin.hxx sd/source/filter/ppt/pptin.hxx
30925 new file mode 100644
30926 index 0000000..d4b5c04
30928 +++ sd/source/filter/ppt/pptin.hxx
30930 +/*************************************************************************
30932 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
30934 + * Copyright 2008 by Sun Microsystems, Inc.
30936 + * OpenOffice.org - a multi-platform office productivity suite
30938 + * $RCSfile: pptin.hxx,v $
30939 + * $Revision: 1.9 $
30941 + * This file is part of OpenOffice.org.
30943 + * OpenOffice.org is free software: you can redistribute it and/or modify
30944 + * it under the terms of the GNU Lesser General Public License version 3
30945 + * only, as published by the Free Software Foundation.
30947 + * OpenOffice.org is distributed in the hope that it will be useful,
30948 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
30949 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30950 + * GNU Lesser General Public License version 3 for more details
30951 + * (a copy is included in the LICENSE file that accompanied this code).
30953 + * You should have received a copy of the GNU Lesser General Public License
30954 + * version 3 along with OpenOffice.org. If not, see
30955 + * <http://www.openoffice.org/license.html>
30956 + * for a copy of the LGPLv3 License.
30958 + ************************************************************************/
30960 +#ifndef _SD_PPTIN_HXX
30961 +#define _SD_PPTIN_HXX
30963 +#include <svx/svdfppt.hxx>
30964 +#include <svx/msdffdef.hxx>
30965 +#include <diadef.h>
30966 +#include <svx/svdtypes.hxx>
30967 +#include <svx/msfiltertracer.hxx>
30968 +#include <com/sun/star/uno/Any.h>
30969 +#include <boost/shared_ptr.hpp>
30971 +class SdDrawDocument;
30974 +/*************************************************************************
30978 +\************************************************************************/
30981 +class SdAnimationInfo;
30982 +struct PptInteractiveInfoAtom;
30983 +class Ppt97Animation;
30985 +typedef boost::shared_ptr< Ppt97Animation > Ppt97AnimationPtr;
30986 +typedef ::std::map < SdrObject*, Ppt97AnimationPtr > tAnimationMap;
30987 +typedef std::vector< std::pair< SdrObject*, Ppt97AnimationPtr > > tAnimationVector;
30989 +class ImplSdPPTImport : public SdrPowerPointImport
30991 + SfxMedium& mrMed;
30992 + SvStorage& mrStorage;
30993 +// SvStream* mpPicStream;
30994 + DffRecordHeader maDocHd;
30995 + List maSlideNameList;
30996 + BOOL mbDocumentFound;
30997 + sal_uInt32 mnFilterOptions;
30998 + SdDrawDocument* mpDoc;
30999 + PresChange mePresChange;
31000 + SdrLayerID mnBackgroundLayerID;
31001 + SdrLayerID mnBackgroundObjectsLayerID;
31003 + tAnimationMap maAnimations;
31005 + void SetHeaderFooterPageSettings( SdPage* pPage, const PptSlidePersistEntry* pMasterPersist );
31006 + void ImportPageEffect( SdPage* pPage, const sal_Bool bNewAnimationsUsed );
31008 + void FillSdAnimationInfo( SdAnimationInfo* pInfo, PptInteractiveInfoAtom* pIAtom, String aMacroName );
31010 + virtual SdrObject* ProcessObj( SvStream& rSt, DffObjData& rData, void* pData, Rectangle& rTextRect, SdrObject* pObj );
31011 + virtual SdrObject* ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pText, SdPage* pPage,
31012 + SfxStyleSheet*, SfxStyleSheet** ) const;
31016 + String ReadSound( sal_uInt32 nSoundRef ) const;
31017 + String ReadMedia( sal_uInt32 nMediaRef ) const;
31019 + ImplSdPPTImport( SdDrawDocument* pDoc, SvStorage& rStorage, SfxMedium& rMed, PowerPointImportParam& );
31020 + ~ImplSdPPTImport();
31022 + sal_Bool Import();
31027 + ImplSdPPTImport* pFilter;
31031 + SdPPTImport( SdDrawDocument* pDoc, SvStream& rDocStream, SvStorage& rStorage, SfxMedium& rMed, MSFilterTracer* pTracer = NULL );
31034 + sal_Bool Import();
31037 +#endif // _SD_PPTIN_HXX
31038 diff --git sd/source/filter/ppt/pptinanimations.cxx sd/source/filter/ppt/pptinanimations.cxx
31039 index 819459d..07ca44e 100644
31040 --- sd/source/filter/ppt/pptinanimations.cxx
31041 +++ sd/source/filter/ppt/pptinanimations.cxx
31043 #include <svx/editobj.hxx>
31044 #include <pptinanimations.hxx>
31045 #include <pptatom.hxx>
31046 -#include "../pptin.hxx"
31047 +#include "pptin.hxx"
31048 #include <algorithm>
31051 diff --git sd/source/filter/ppt/propread.cxx sd/source/filter/ppt/propread.cxx
31052 new file mode 100644
31053 index 0000000..41de988
31055 +++ sd/source/filter/ppt/propread.cxx
31057 +/*************************************************************************
31059 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
31061 + * Copyright 2008 by Sun Microsystems, Inc.
31063 + * OpenOffice.org - a multi-platform office productivity suite
31065 + * $RCSfile: propread.cxx,v $
31066 + * $Revision: 1.13 $
31068 + * This file is part of OpenOffice.org.
31070 + * OpenOffice.org is free software: you can redistribute it and/or modify
31071 + * it under the terms of the GNU Lesser General Public License version 3
31072 + * only, as published by the Free Software Foundation.
31074 + * OpenOffice.org is distributed in the hope that it will be useful,
31075 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
31076 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31077 + * GNU Lesser General Public License version 3 for more details
31078 + * (a copy is included in the LICENSE file that accompanied this code).
31080 + * You should have received a copy of the GNU Lesser General Public License
31081 + * version 3 along with OpenOffice.org. If not, see
31082 + * <http://www.openoffice.org/license.html>
31083 + * for a copy of the LGPLv3 License.
31085 + ************************************************************************/
31087 +// MARKER(update_precomp.py): autogen include statement, do not remove
31088 +#include "precompiled_sd.hxx"
31089 +#include <propread.hxx>
31090 +#include <tools/bigint.hxx>
31091 +#include "rtl/tencinfo.h"
31092 +#include "rtl/textenc.h"
31094 +// ------------------------------------------------------------------------
31099 + sal_uInt32 mnSize;
31100 + sal_uInt16 mnTextEnc;
31101 + sal_uInt8* mpBuf;
31103 + PropEntry( sal_uInt32 nId, const sal_uInt8* pBuf, sal_uInt32 nBufSize, sal_uInt16 nTextEnc );
31104 + PropEntry( const PropEntry& rProp );
31105 + ~PropEntry() { delete[] mpBuf; } ;
31107 + const PropEntry& operator=(const PropEntry& rPropEntry);
31110 +PropEntry::PropEntry( sal_uInt32 nId, const sal_uInt8* pBuf, sal_uInt32 nBufSize, sal_uInt16 nTextEnc ) :
31112 + mnSize ( nBufSize ),
31113 + mnTextEnc ( nTextEnc ),
31114 + mpBuf ( new sal_uInt8[ nBufSize ] )
31116 + memcpy( (void*)mpBuf, (void*)pBuf, nBufSize );
31119 +PropEntry::PropEntry( const PropEntry& rProp ) :
31120 + mnId ( rProp.mnId ),
31121 + mnSize ( rProp.mnSize ),
31122 + mnTextEnc ( rProp.mnTextEnc ),
31123 + mpBuf ( new sal_uInt8[ mnSize ] )
31125 + memcpy( (void*)mpBuf, (void*)rProp.mpBuf, mnSize );
31128 +const PropEntry& PropEntry::operator=(const PropEntry& rPropEntry)
31130 + if ( this != &rPropEntry )
31133 + mnId = rPropEntry.mnId;
31134 + mnSize = rPropEntry.mnSize;
31135 + mnTextEnc = rPropEntry.mnTextEnc;
31136 + mpBuf = new sal_uInt8[ mnSize ];
31137 + memcpy( (void*)mpBuf, (void*)rPropEntry.mpBuf, mnSize );
31142 +// -----------------------------------------------------------------------
31144 +void PropItem::Clear()
31146 + Seek( STREAM_SEEK_TO_BEGIN );
31147 + delete[] (sal_uInt8*)SwitchBuffer();
31150 +// -----------------------------------------------------------------------
31152 +BOOL PropItem::Read( String& rString, sal_uInt32 nStringType, sal_Bool bAlign )
31154 + sal_uInt32 i, nItemSize, nType, nItemPos;
31155 + sal_Bool bRetValue = sal_False;
31157 + nItemPos = Tell();
31159 + if ( nStringType == VT_EMPTY )
31162 + nType = nStringType & VT_TYPEMASK;
31164 + *this >> nItemSize;
31170 + if ( (sal_uInt16)nItemSize )
31172 + sal_Char* pString = new sal_Char[ (sal_uInt16)nItemSize ];
31173 + if ( mnTextEnc == RTL_TEXTENCODING_UCS2 )
31176 + if ( (sal_uInt16)nItemSize > 1 )
31178 + sal_Unicode* pWString = (sal_Unicode*)pString;
31179 + for ( i = 0; i < (sal_uInt16)nItemSize; i++ )
31180 + *this >> pWString[ i ];
31181 + rString = String( pWString, (sal_uInt16)nItemSize - 1 );
31184 + rString = String();
31185 + bRetValue = sal_True;
31189 + SvMemoryStream::Read( pString, (sal_uInt16)nItemSize );
31190 + if ( pString[ (sal_uInt16)nItemSize - 1 ] == 0 )
31192 + if ( (sal_uInt16)nItemSize > 1 )
31193 + rString = String( ByteString( pString ), mnTextEnc );
31195 + rString = String();
31196 + bRetValue = sal_True;
31199 + delete[] pString;
31202 + SeekRel( ( 4 - ( nItemSize & 3 ) ) & 3 ); // dword align
31210 + sal_Unicode* pString = new sal_Unicode[ (sal_uInt16)nItemSize ];
31211 + for ( i = 0; i < (sal_uInt16)nItemSize; i++ )
31212 + *this >> pString[ i ];
31213 + if ( pString[ i - 1 ] == 0 )
31215 + if ( (sal_uInt16)nItemSize > 1 )
31216 + rString = String( pString, (sal_uInt16)nItemSize - 1 );
31218 + rString = String();
31219 + bRetValue = sal_True;
31221 + delete[] pString;
31223 + if ( bAlign && ( nItemSize & 1 ) )
31224 + SeekRel( 2 ); // dword align
31228 + if ( !bRetValue )
31229 + Seek( nItemPos );
31230 + return bRetValue;
31233 +// -----------------------------------------------------------------------
31235 +PropItem& PropItem::operator=( PropItem& rPropItem )
31237 + if ( this != &rPropItem )
31239 + Seek( STREAM_SEEK_TO_BEGIN );
31240 + delete[] (sal_uInt8*)SwitchBuffer();
31242 + mnTextEnc = rPropItem.mnTextEnc;
31243 + sal_uInt32 nItemPos = rPropItem.Tell();
31244 + rPropItem.Seek( STREAM_SEEK_TO_END );
31245 + SvMemoryStream::Write( rPropItem.GetData(), rPropItem.Tell() );
31246 + rPropItem.Seek( nItemPos );
31251 +// -----------------------------------------------------------------------
31258 + Dict( sal_uInt32 nId, String rString ) { mnId = nId; aString = rString; };
31261 +// -----------------------------------------------------------------------
31263 +Dictionary::~Dictionary()
31265 + for ( void* pPtr = First(); pPtr; pPtr = Next() )
31266 + delete (Dict*)pPtr;
31269 +// -----------------------------------------------------------------------
31271 +void Dictionary::AddProperty( sal_uInt32 nId, const String& rString )
31273 + if ( rString.Len() ) // eindeutige namen bei properties
31275 + // pruefen, ob es die Propertybeschreibung in der Dictionary schon gibt
31276 + for ( Dict* pDict = (Dict*)First(); pDict; pDict = (Dict*)Next() )
31278 + if ( pDict->mnId == nId )
31280 + pDict->aString = rString;
31284 + Insert( new Dict( nId, rString ), LIST_APPEND );
31288 +// -----------------------------------------------------------------------
31290 +UINT32 Dictionary::GetProperty( const String& rString )
31292 + for ( Dict* pDict = (Dict*)First(); pDict; pDict = (Dict*)Next() )
31294 + if ( pDict->aString == rString )
31295 + return pDict->mnId;
31300 +// -----------------------------------------------------------------------
31302 +Dictionary& Dictionary::operator=( Dictionary& rDictionary )
31306 + if ( this != &rDictionary )
31308 + for ( pPtr = First(); pPtr; pPtr = Next() )
31309 + delete (Dict*)pPtr;
31311 + for ( pPtr = rDictionary.First(); pPtr; pPtr = rDictionary.Next() )
31312 + Insert( new Dict( ((Dict*)pPtr)->mnId, ((Dict*)pPtr)->aString ), LIST_APPEND );
31317 +// -----------------------------------------------------------------------
31319 +Section::Section( Section& rSection )
31322 + mnTextEnc = rSection.mnTextEnc;
31323 + for ( int i = 0; i < 16; i++ )
31324 + aFMTID[ i ] = rSection.aFMTID[ i ];
31325 + for ( PropEntry* pProp = (PropEntry*)rSection.First(); pProp; pProp = (PropEntry*)rSection.Next() )
31326 + Insert( new PropEntry( *pProp ), LIST_APPEND );
31329 +// -----------------------------------------------------------------------
31331 +Section::Section( const sal_uInt8* pFMTID )
31333 + mnTextEnc = RTL_TEXTENCODING_MS_1252;
31334 + for ( int i = 0; i < 16; i++ )
31335 + aFMTID[ i ] = pFMTID[ i ];
31338 +// -----------------------------------------------------------------------
31340 +sal_Bool Section::GetProperty( sal_uInt32 nId, PropItem& rPropItem )
31342 + PropEntry* pProp;
31345 + for ( pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
31347 + if ( pProp->mnId == nId )
31352 + rPropItem.Clear();
31353 + rPropItem.SetTextEncoding( mnTextEnc );
31354 + rPropItem.Write( pProp->mpBuf, pProp->mnSize );
31355 + rPropItem.Seek( STREAM_SEEK_TO_BEGIN );
31359 + return sal_False;
31362 +// -----------------------------------------------------------------------
31364 +void Section::AddProperty( sal_uInt32 nId, const sal_uInt8* pBuf, sal_uInt32 nBufSize )
31366 + // kleiner id check
31370 + if ( nId == 0xffffffff )
31373 + // keine doppelten PropId's zulassen, sortieren
31374 + for ( sal_uInt32 i = 0; i < Count(); i++ )
31376 + PropEntry* pPropEntry = (PropEntry*)GetObject( i );
31377 + if ( pPropEntry->mnId == nId )
31378 + delete (PropEntry*)Replace( new PropEntry( nId, pBuf, nBufSize, mnTextEnc ), i );
31379 + else if ( pPropEntry->mnId > nId )
31380 + Insert( new PropEntry( nId, pBuf, nBufSize, mnTextEnc ), i );
31385 + Insert( new PropEntry( nId, pBuf, nBufSize, mnTextEnc ), LIST_APPEND );
31388 +// -----------------------------------------------------------------------
31390 +sal_Bool Section::GetDictionary( Dictionary& rDict )
31392 + sal_Bool bRetValue = sal_False;
31394 + Dictionary aDict;
31395 + PropEntry* pProp;
31397 + for ( pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
31399 + if ( pProp->mnId == 0 )
31404 + sal_uInt32 nDictCount, nId, nSize, nPos;
31405 + SvMemoryStream aStream( (sal_Int8*)pProp->mpBuf, pProp->mnSize, STREAM_READ );
31406 + aStream.Seek( STREAM_SEEK_TO_BEGIN );
31407 + aStream >> nDictCount;
31408 + for ( sal_uInt32 i = 0; i < nDictCount; i++ )
31410 + aStream >> nId >> nSize;
31411 + if ( (sal_uInt16)nSize )
31414 + nPos = aStream.Tell();
31415 + sal_Char* pString = new sal_Char[ (sal_uInt16)nSize ];
31416 + aStream.Read( pString, (sal_uInt16)nSize );
31417 + if ( mnTextEnc == RTL_TEXTENCODING_UCS2 )
31420 + aStream.Seek( nPos );
31421 + sal_Unicode* pWString = (sal_Unicode*)pString;
31422 + for ( i = 0; i < (sal_uInt16)nSize; i++ )
31423 + aStream >> pWString[ i ];
31424 + aString = String( pWString, (sal_uInt16)nSize - 1 );
31427 + aString = String( ByteString( pString, (sal_uInt16)nSize - 1 ), mnTextEnc );
31428 + delete[] pString;
31429 + if ( !aString.Len() )
31431 + aDict.AddProperty( nId, aString );
31433 + bRetValue = sal_True;
31437 + return bRetValue;
31440 +// -----------------------------------------------------------------------
31442 +Section::~Section()
31444 + for ( PropEntry* pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
31448 +// -----------------------------------------------------------------------
31450 +void Section::Read( SvStorageStream *pStrm )
31452 + sal_uInt32 i, nSecOfs, nSecSize, nPropCount, nPropId, nPropOfs, nPropType, nPropSize, nCurrent, nVectorCount, nTemp, nStrmSize;
31453 + nSecOfs = pStrm->Tell();
31455 + pStrm->Seek( STREAM_SEEK_TO_END );
31456 + nStrmSize = pStrm->Tell();
31457 + pStrm->Seek( nSecOfs );
31459 + mnTextEnc = RTL_TEXTENCODING_MS_1252;
31460 + *pStrm >> nSecSize >> nPropCount;
31461 + while( nPropCount-- && ( pStrm->GetError() == ERRCODE_NONE ) )
31463 + *pStrm >> nPropId >> nPropOfs;
31464 + nCurrent = pStrm->Tell();
31465 + pStrm->Seek( nPropOfs + nSecOfs );
31466 + if ( nPropId ) // dictionary wird nicht eingelesen
31469 + *pStrm >> nPropType;
31473 + if ( nPropType & VT_VECTOR )
31475 + *pStrm >> nVectorCount;
31476 + nPropType &=~VT_VECTOR;
31480 + nVectorCount = 1;
31483 + sal_Bool bVariant = ( nPropType == VT_VARIANT );
31485 + for ( i = 0; nPropSize && ( i < nVectorCount ); i++ )
31489 + *pStrm >> nPropType;
31492 + switch( nPropType )
31516 + case VT_FILETIME :
31522 + nPropSize += ( nTemp + 4 );
31527 + nPropSize += ( nTemp + 4 );
31532 + nPropSize += ( nTemp << 1 ) + 4;
31535 + case VT_BLOB_OBJECT :
31539 + nPropSize += ( nTemp + 4 );
31544 + case VT_STORAGE :
31545 + case VT_STREAMED_OBJECT :
31546 + case VT_STORED_OBJECT :
31547 + case VT_VARIANT :
31554 + if ( ( nVectorCount - i ) > 1 )
31555 + pStrm->Seek( nPropOfs + nSecOfs + nPropSize );
31562 + pStrm->Seek( nPropOfs + nSecOfs );
31563 + sal_uInt8* pBuf = new sal_uInt8[ nPropSize ];
31564 + pStrm->Read( pBuf, nPropSize );
31565 + AddProperty( nPropId, pBuf, nPropSize );
31568 + if ( nPropId == 1 )
31570 + PropItem aPropItem;
31571 + if ( GetProperty( 1, aPropItem ) )
31573 + sal_uInt16 nCodePage;
31574 + aPropItem >> nPropType;
31575 + if ( nPropType == VT_I2 )
31577 + aPropItem >> nCodePage;
31579 + if ( nCodePage == 1200 )
31581 + mnTextEnc = RTL_TEXTENCODING_UCS2;
31585 + mnTextEnc = rtl_getTextEncodingFromWindowsCodePage( nCodePage );
31586 + if ( mnTextEnc == RTL_TEXTENCODING_DONTKNOW )
31587 + mnTextEnc = RTL_TEXTENCODING_MS_1252;
31592 + mnTextEnc = RTL_TEXTENCODING_MS_1252;
31599 + sal_uInt32 nDictCount, nSize;
31600 + *pStrm >> nDictCount;
31601 + for ( i = 0; i < nDictCount; i++ )
31603 + *pStrm >> nSize >> nSize;
31604 + pStrm->SeekRel( nSize );
31606 + nSize = pStrm->Tell();
31607 + pStrm->Seek( nPropOfs + nSecOfs );
31608 + nSize -= pStrm->Tell();
31609 + if ( nSize > nStrmSize )
31614 + sal_uInt8* pBuf = new sal_uInt8[ nSize ];
31615 + pStrm->Read( pBuf, nSize );
31616 + AddProperty( 0xffffffff, pBuf, nSize );
31619 + pStrm->Seek( nCurrent );
31621 + pStrm->Seek( nSecOfs + nSecSize );
31624 +// -----------------------------------------------------------------------
31626 +Section& Section::operator=( Section& rSection )
31628 + PropEntry* pProp;
31630 + if ( this != &rSection )
31632 + memcpy( (void*)aFMTID, (void*)rSection.aFMTID, 16 );
31633 + for ( pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
31636 + for ( pProp = (PropEntry*)rSection.First(); pProp; pProp = (PropEntry*)rSection.Next() )
31637 + Insert( new PropEntry( *pProp ), LIST_APPEND );
31642 +// -----------------------------------------------------------------------
31644 +PropRead::PropRead( SvStorage& rStorage, const String& rName ) :
31645 + mbStatus ( sal_False ),
31646 + mnByteOrder ( 0xfffe ),
31648 + mnVersionLo ( 4 ),
31649 + mnVersionHi ( 2 )
31651 + if ( rStorage.IsStream( rName ) )
31653 + mpSvStream = rStorage.OpenSotStream( rName, STREAM_STD_READ );
31654 + if ( mpSvStream )
31656 + mpSvStream->SetNumberFormatInt( NUMBERFORMAT_INT_LITTLEENDIAN );
31657 + memset( mApplicationCLSID, 0, 16 );
31658 + mbStatus = sal_True;
31663 +// -----------------------------------------------------------------------
31665 +void PropRead::AddSection( Section& rSection )
31667 + Insert( new Section( rSection ), LIST_APPEND );
31670 +// -----------------------------------------------------------------------
31672 +const Section* PropRead::GetSection( const sal_uInt8* pFMTID )
31674 + Section* pSection;
31676 + for ( pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
31678 + if ( memcmp( pSection->GetFMTID(), pFMTID, 16 ) == 0 )
31684 +// -----------------------------------------------------------------------
31686 +PropRead::~PropRead()
31688 + for ( Section* pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
31692 +// -----------------------------------------------------------------------
31694 +void PropRead::Read()
31696 + for ( Section* pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
31701 + sal_uInt32 nSections;
31702 + sal_uInt32 nSectionOfs;
31703 + sal_uInt32 nCurrent;
31704 + *mpSvStream >> mnByteOrder >> mnFormat >> mnVersionLo >> mnVersionHi;
31705 + if ( mnByteOrder == 0xfffe )
31707 + sal_uInt8* pSectCLSID = new sal_uInt8[ 16 ];
31708 + mpSvStream->Read( mApplicationCLSID, 16 );
31709 + *mpSvStream >> nSections;
31710 + if ( nSections > 2 ) // sj: PowerPoint documents are containing max 2 sections
31712 + mbStatus = sal_False;
31714 + else for ( sal_uInt32 i = 0; i < nSections; i++ )
31716 + mpSvStream->Read( pSectCLSID, 16 );
31717 + *mpSvStream >> nSectionOfs;
31718 + nCurrent = mpSvStream->Tell();
31719 + mpSvStream->Seek( nSectionOfs );
31720 + Section aSection( pSectCLSID );
31721 + aSection.Read( mpSvStream );
31722 + AddSection( aSection );
31723 + mpSvStream->Seek( nCurrent );
31725 + delete[] pSectCLSID;
31730 +// -----------------------------------------------------------------------
31732 +PropRead& PropRead::operator=( PropRead& rPropRead )
31734 + Section* pSection;
31736 + if ( this != &rPropRead )
31738 + mbStatus = rPropRead.mbStatus;
31739 + mpSvStream = rPropRead.mpSvStream;
31741 + mnByteOrder = rPropRead.mnByteOrder;
31742 + mnFormat = rPropRead.mnFormat;
31743 + mnVersionLo = rPropRead.mnVersionLo;
31744 + mnVersionHi = rPropRead.mnVersionHi;
31745 + memcpy( mApplicationCLSID, rPropRead.mApplicationCLSID, 16 );
31747 + for ( pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
31750 + for ( pSection = (Section*)rPropRead.First(); pSection; pSection = (Section*)rPropRead.Next() )
31751 + Insert( new Section( *pSection ), LIST_APPEND );
31755 diff --git sd/source/filter/ppt/propread.hxx sd/source/filter/ppt/propread.hxx
31756 new file mode 100644
31757 index 0000000..6a2e7ab
31759 +++ sd/source/filter/ppt/propread.hxx
31761 +/*************************************************************************
31763 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
31765 + * Copyright 2008 by Sun Microsystems, Inc.
31767 + * OpenOffice.org - a multi-platform office productivity suite
31769 + * $RCSfile: propread.hxx,v $
31770 + * $Revision: 1.7 $
31772 + * This file is part of OpenOffice.org.
31774 + * OpenOffice.org is free software: you can redistribute it and/or modify
31775 + * it under the terms of the GNU Lesser General Public License version 3
31776 + * only, as published by the Free Software Foundation.
31778 + * OpenOffice.org is distributed in the hope that it will be useful,
31779 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
31780 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31781 + * GNU Lesser General Public License version 3 for more details
31782 + * (a copy is included in the LICENSE file that accompanied this code).
31784 + * You should have received a copy of the GNU Lesser General Public License
31785 + * version 3 along with OpenOffice.org. If not, see
31786 + * <http://www.openoffice.org/license.html>
31787 + * for a copy of the LGPLv3 License.
31789 + ************************************************************************/
31791 +#ifndef _PROPREAD_HXX_
31792 +#define _PROPREAD_HXX_
31794 +#include <tools/solar.h>
31795 +#include <sot/storage.hxx>
31796 +#include <tools/gen.hxx>
31797 +#include <tools/list.hxx>
31798 +#include <tools/stream.hxx>
31799 +#include <tools/datetime.hxx>
31801 +#include <tools/string.hxx>
31803 +// SummaryInformation
31804 +#define PID_TITLE 0x02
31805 +#define PID_SUBJECT 0x03
31806 +#define PID_AUTHOR 0x04
31807 +#define PID_KEYWORDS 0x05
31808 +#define PID_COMMENTS 0x06
31809 +#define PID_TEMPLATE 0x07
31810 +#define PID_LASTAUTHOR 0x08
31811 +#define PID_REVNUMBER 0x09
31812 +#define PID_EDITTIME 0x0a
31813 +#define PID_LASTPRINTED_DTM 0x0b
31814 +#define PID_CREATE_DTM 0x0c
31815 +#define PID_LASTSAVED_DTM 0x0d
31817 +// DocumentSummaryInformation
31818 +#define PID_CATEGORY 0x02
31819 +#define PID_PRESFORMAT 0x03
31820 +#define PID_BYTECOUNT 0x04
31821 +#define PID_LINECOUNT 0x05
31822 +#define PID_PARACOUNT 0x06
31823 +#define PID_SLIDECOUNT 0x07
31824 +#define PID_NOTECOUNT 0x08
31825 +#define PID_HIDDENCOUNT 0x09
31826 +#define PID_MMCLIPCOUNT 0x0a
31827 +#define PID_SCALE 0x0b
31828 +#define PID_HEADINGPAIR 0x0c
31829 +#define PID_DOCPARTS 0x0d
31830 +#define PID_MANAGER 0x0e
31831 +#define PID_COMPANY 0x0f
31832 +#define PID_LINKSDIRTY 0x10
31834 +#define VT_EMPTY 0
31844 +#define VT_ERROR 10
31845 +#define VT_BOOL 11
31846 +#define VT_VARIANT 12
31847 +#define VT_DECIMAL 14
31854 +#define VT_UINT 23
31855 +#define VT_LPSTR 30
31856 +#define VT_LPWSTR 31
31857 +#define VT_FILETIME 64
31858 +#define VT_BLOB 65
31859 +#define VT_STREAM 66
31860 +#define VT_STORAGE 67
31861 +#define VT_STREAMED_OBJECT 68
31862 +#define VT_STORED_OBJECT 69
31863 +#define VT_BLOB_OBJECT 70
31865 +#define VT_CLSID 72
31866 +#define VT_VECTOR 0x1000
31867 +#define VT_ARRAY 0x2000
31868 +#define VT_BYREF 0x4000
31869 +#define VT_TYPEMASK 0xFFF
31871 +// ------------------------------------------------------------------------
31873 +class PropItem : public SvMemoryStream
31875 + sal_uInt16 mnTextEnc;
31881 + void SetTextEncoding( sal_uInt16 nTextEnc ){ mnTextEnc = nTextEnc; };
31882 + sal_Bool Read( String& rString, sal_uInt32 nType = VT_EMPTY, sal_Bool bDwordAlign = sal_True );
31883 + PropItem& operator=( PropItem& rPropItem );
31885 + using SvStream::Read;
31888 +// ------------------------------------------------------------------------
31890 +class Dictionary : protected List
31892 + friend class Section;
31894 + void AddProperty( UINT32 nId, const String& rString );
31899 + Dictionary& operator=( Dictionary& rDictionary );
31900 + UINT32 GetProperty( const String& rPropName );
31903 +// ------------------------------------------------------------------------
31905 +class Section : private List
31907 + sal_uInt16 mnTextEnc;
31911 + BYTE aFMTID[ 16 ];
31913 + void AddProperty( sal_uInt32 nId, const sal_uInt8* pBuf, sal_uInt32 nBufSize );
31916 + Section( const sal_uInt8* pFMTID );
31917 + Section( Section& rSection );
31920 + Section& operator=( Section& rSection );
31921 + sal_Bool GetProperty( sal_uInt32 nId, PropItem& rPropItem );
31922 + sal_Bool GetDictionary( Dictionary& rDict );
31923 + const sal_uInt8* GetFMTID() const { return aFMTID; };
31924 + void Read( SvStorageStream* pStrm );
31927 +// ------------------------------------------------------------------------
31929 +class PropRead : private List
31931 + sal_Bool mbStatus;
31932 + SvStorageStream* mpSvStream;
31934 + sal_uInt16 mnByteOrder;
31935 + sal_uInt16 mnFormat;
31936 + sal_uInt16 mnVersionLo;
31937 + sal_uInt16 mnVersionHi;
31938 + sal_uInt8 mApplicationCLSID[ 16 ];
31940 + void AddSection( Section& rSection );
31943 + PropRead( SvStorage& rSvStorage, const String& rName );
31946 + PropRead& operator=( PropRead& rPropRead );
31947 + const Section* GetSection( const BYTE* pFMTID );
31948 + sal_Bool IsValid() const { return mbStatus; };
31955 diff --git sd/source/filter/pptin.hxx sd/source/filter/pptin.hxx
31956 index d4b5c04..e69de29 100644
31957 --- sd/source/filter/pptin.hxx
31958 +++ sd/source/filter/pptin.hxx
31960 -/*************************************************************************
31962 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
31964 - * Copyright 2008 by Sun Microsystems, Inc.
31966 - * OpenOffice.org - a multi-platform office productivity suite
31968 - * $RCSfile: pptin.hxx,v $
31969 - * $Revision: 1.9 $
31971 - * This file is part of OpenOffice.org.
31973 - * OpenOffice.org is free software: you can redistribute it and/or modify
31974 - * it under the terms of the GNU Lesser General Public License version 3
31975 - * only, as published by the Free Software Foundation.
31977 - * OpenOffice.org is distributed in the hope that it will be useful,
31978 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
31979 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31980 - * GNU Lesser General Public License version 3 for more details
31981 - * (a copy is included in the LICENSE file that accompanied this code).
31983 - * You should have received a copy of the GNU Lesser General Public License
31984 - * version 3 along with OpenOffice.org. If not, see
31985 - * <http://www.openoffice.org/license.html>
31986 - * for a copy of the LGPLv3 License.
31988 - ************************************************************************/
31990 -#ifndef _SD_PPTIN_HXX
31991 -#define _SD_PPTIN_HXX
31993 -#include <svx/svdfppt.hxx>
31994 -#include <svx/msdffdef.hxx>
31995 -#include <diadef.h>
31996 -#include <svx/svdtypes.hxx>
31997 -#include <svx/msfiltertracer.hxx>
31998 -#include <com/sun/star/uno/Any.h>
31999 -#include <boost/shared_ptr.hpp>
32001 -class SdDrawDocument;
32004 -/*************************************************************************
32008 -\************************************************************************/
32011 -class SdAnimationInfo;
32012 -struct PptInteractiveInfoAtom;
32013 -class Ppt97Animation;
32015 -typedef boost::shared_ptr< Ppt97Animation > Ppt97AnimationPtr;
32016 -typedef ::std::map < SdrObject*, Ppt97AnimationPtr > tAnimationMap;
32017 -typedef std::vector< std::pair< SdrObject*, Ppt97AnimationPtr > > tAnimationVector;
32019 -class ImplSdPPTImport : public SdrPowerPointImport
32021 - SfxMedium& mrMed;
32022 - SvStorage& mrStorage;
32023 -// SvStream* mpPicStream;
32024 - DffRecordHeader maDocHd;
32025 - List maSlideNameList;
32026 - BOOL mbDocumentFound;
32027 - sal_uInt32 mnFilterOptions;
32028 - SdDrawDocument* mpDoc;
32029 - PresChange mePresChange;
32030 - SdrLayerID mnBackgroundLayerID;
32031 - SdrLayerID mnBackgroundObjectsLayerID;
32033 - tAnimationMap maAnimations;
32035 - void SetHeaderFooterPageSettings( SdPage* pPage, const PptSlidePersistEntry* pMasterPersist );
32036 - void ImportPageEffect( SdPage* pPage, const sal_Bool bNewAnimationsUsed );
32038 - void FillSdAnimationInfo( SdAnimationInfo* pInfo, PptInteractiveInfoAtom* pIAtom, String aMacroName );
32040 - virtual SdrObject* ProcessObj( SvStream& rSt, DffObjData& rData, void* pData, Rectangle& rTextRect, SdrObject* pObj );
32041 - virtual SdrObject* ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pText, SdPage* pPage,
32042 - SfxStyleSheet*, SfxStyleSheet** ) const;
32046 - String ReadSound( sal_uInt32 nSoundRef ) const;
32047 - String ReadMedia( sal_uInt32 nMediaRef ) const;
32049 - ImplSdPPTImport( SdDrawDocument* pDoc, SvStorage& rStorage, SfxMedium& rMed, PowerPointImportParam& );
32050 - ~ImplSdPPTImport();
32052 - sal_Bool Import();
32057 - ImplSdPPTImport* pFilter;
32061 - SdPPTImport( SdDrawDocument* pDoc, SvStream& rDocStream, SvStorage& rStorage, SfxMedium& rMed, MSFilterTracer* pTracer = NULL );
32064 - sal_Bool Import();
32067 -#endif // _SD_PPTIN_HXX
32068 diff --git sd/source/filter/propread.cxx sd/source/filter/propread.cxx
32069 index 41de988..e69de29 100644
32070 --- sd/source/filter/propread.cxx
32071 +++ sd/source/filter/propread.cxx
32073 -/*************************************************************************
32075 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
32077 - * Copyright 2008 by Sun Microsystems, Inc.
32079 - * OpenOffice.org - a multi-platform office productivity suite
32081 - * $RCSfile: propread.cxx,v $
32082 - * $Revision: 1.13 $
32084 - * This file is part of OpenOffice.org.
32086 - * OpenOffice.org is free software: you can redistribute it and/or modify
32087 - * it under the terms of the GNU Lesser General Public License version 3
32088 - * only, as published by the Free Software Foundation.
32090 - * OpenOffice.org is distributed in the hope that it will be useful,
32091 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
32092 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32093 - * GNU Lesser General Public License version 3 for more details
32094 - * (a copy is included in the LICENSE file that accompanied this code).
32096 - * You should have received a copy of the GNU Lesser General Public License
32097 - * version 3 along with OpenOffice.org. If not, see
32098 - * <http://www.openoffice.org/license.html>
32099 - * for a copy of the LGPLv3 License.
32101 - ************************************************************************/
32103 -// MARKER(update_precomp.py): autogen include statement, do not remove
32104 -#include "precompiled_sd.hxx"
32105 -#include <propread.hxx>
32106 -#include <tools/bigint.hxx>
32107 -#include "rtl/tencinfo.h"
32108 -#include "rtl/textenc.h"
32110 -// ------------------------------------------------------------------------
32115 - sal_uInt32 mnSize;
32116 - sal_uInt16 mnTextEnc;
32117 - sal_uInt8* mpBuf;
32119 - PropEntry( sal_uInt32 nId, const sal_uInt8* pBuf, sal_uInt32 nBufSize, sal_uInt16 nTextEnc );
32120 - PropEntry( const PropEntry& rProp );
32121 - ~PropEntry() { delete[] mpBuf; } ;
32123 - const PropEntry& operator=(const PropEntry& rPropEntry);
32126 -PropEntry::PropEntry( sal_uInt32 nId, const sal_uInt8* pBuf, sal_uInt32 nBufSize, sal_uInt16 nTextEnc ) :
32128 - mnSize ( nBufSize ),
32129 - mnTextEnc ( nTextEnc ),
32130 - mpBuf ( new sal_uInt8[ nBufSize ] )
32132 - memcpy( (void*)mpBuf, (void*)pBuf, nBufSize );
32135 -PropEntry::PropEntry( const PropEntry& rProp ) :
32136 - mnId ( rProp.mnId ),
32137 - mnSize ( rProp.mnSize ),
32138 - mnTextEnc ( rProp.mnTextEnc ),
32139 - mpBuf ( new sal_uInt8[ mnSize ] )
32141 - memcpy( (void*)mpBuf, (void*)rProp.mpBuf, mnSize );
32144 -const PropEntry& PropEntry::operator=(const PropEntry& rPropEntry)
32146 - if ( this != &rPropEntry )
32149 - mnId = rPropEntry.mnId;
32150 - mnSize = rPropEntry.mnSize;
32151 - mnTextEnc = rPropEntry.mnTextEnc;
32152 - mpBuf = new sal_uInt8[ mnSize ];
32153 - memcpy( (void*)mpBuf, (void*)rPropEntry.mpBuf, mnSize );
32158 -// -----------------------------------------------------------------------
32160 -void PropItem::Clear()
32162 - Seek( STREAM_SEEK_TO_BEGIN );
32163 - delete[] (sal_uInt8*)SwitchBuffer();
32166 -// -----------------------------------------------------------------------
32168 -BOOL PropItem::Read( String& rString, sal_uInt32 nStringType, sal_Bool bAlign )
32170 - sal_uInt32 i, nItemSize, nType, nItemPos;
32171 - sal_Bool bRetValue = sal_False;
32173 - nItemPos = Tell();
32175 - if ( nStringType == VT_EMPTY )
32178 - nType = nStringType & VT_TYPEMASK;
32180 - *this >> nItemSize;
32186 - if ( (sal_uInt16)nItemSize )
32188 - sal_Char* pString = new sal_Char[ (sal_uInt16)nItemSize ];
32189 - if ( mnTextEnc == RTL_TEXTENCODING_UCS2 )
32192 - if ( (sal_uInt16)nItemSize > 1 )
32194 - sal_Unicode* pWString = (sal_Unicode*)pString;
32195 - for ( i = 0; i < (sal_uInt16)nItemSize; i++ )
32196 - *this >> pWString[ i ];
32197 - rString = String( pWString, (sal_uInt16)nItemSize - 1 );
32200 - rString = String();
32201 - bRetValue = sal_True;
32205 - SvMemoryStream::Read( pString, (sal_uInt16)nItemSize );
32206 - if ( pString[ (sal_uInt16)nItemSize - 1 ] == 0 )
32208 - if ( (sal_uInt16)nItemSize > 1 )
32209 - rString = String( ByteString( pString ), mnTextEnc );
32211 - rString = String();
32212 - bRetValue = sal_True;
32215 - delete[] pString;
32218 - SeekRel( ( 4 - ( nItemSize & 3 ) ) & 3 ); // dword align
32226 - sal_Unicode* pString = new sal_Unicode[ (sal_uInt16)nItemSize ];
32227 - for ( i = 0; i < (sal_uInt16)nItemSize; i++ )
32228 - *this >> pString[ i ];
32229 - if ( pString[ i - 1 ] == 0 )
32231 - if ( (sal_uInt16)nItemSize > 1 )
32232 - rString = String( pString, (sal_uInt16)nItemSize - 1 );
32234 - rString = String();
32235 - bRetValue = sal_True;
32237 - delete[] pString;
32239 - if ( bAlign && ( nItemSize & 1 ) )
32240 - SeekRel( 2 ); // dword align
32244 - if ( !bRetValue )
32245 - Seek( nItemPos );
32246 - return bRetValue;
32249 -// -----------------------------------------------------------------------
32251 -PropItem& PropItem::operator=( PropItem& rPropItem )
32253 - if ( this != &rPropItem )
32255 - Seek( STREAM_SEEK_TO_BEGIN );
32256 - delete[] (sal_uInt8*)SwitchBuffer();
32258 - mnTextEnc = rPropItem.mnTextEnc;
32259 - sal_uInt32 nItemPos = rPropItem.Tell();
32260 - rPropItem.Seek( STREAM_SEEK_TO_END );
32261 - SvMemoryStream::Write( rPropItem.GetData(), rPropItem.Tell() );
32262 - rPropItem.Seek( nItemPos );
32267 -// -----------------------------------------------------------------------
32274 - Dict( sal_uInt32 nId, String rString ) { mnId = nId; aString = rString; };
32277 -// -----------------------------------------------------------------------
32279 -Dictionary::~Dictionary()
32281 - for ( void* pPtr = First(); pPtr; pPtr = Next() )
32282 - delete (Dict*)pPtr;
32285 -// -----------------------------------------------------------------------
32287 -void Dictionary::AddProperty( sal_uInt32 nId, const String& rString )
32289 - if ( rString.Len() ) // eindeutige namen bei properties
32291 - // pruefen, ob es die Propertybeschreibung in der Dictionary schon gibt
32292 - for ( Dict* pDict = (Dict*)First(); pDict; pDict = (Dict*)Next() )
32294 - if ( pDict->mnId == nId )
32296 - pDict->aString = rString;
32300 - Insert( new Dict( nId, rString ), LIST_APPEND );
32304 -// -----------------------------------------------------------------------
32306 -UINT32 Dictionary::GetProperty( const String& rString )
32308 - for ( Dict* pDict = (Dict*)First(); pDict; pDict = (Dict*)Next() )
32310 - if ( pDict->aString == rString )
32311 - return pDict->mnId;
32316 -// -----------------------------------------------------------------------
32318 -Dictionary& Dictionary::operator=( Dictionary& rDictionary )
32322 - if ( this != &rDictionary )
32324 - for ( pPtr = First(); pPtr; pPtr = Next() )
32325 - delete (Dict*)pPtr;
32327 - for ( pPtr = rDictionary.First(); pPtr; pPtr = rDictionary.Next() )
32328 - Insert( new Dict( ((Dict*)pPtr)->mnId, ((Dict*)pPtr)->aString ), LIST_APPEND );
32333 -// -----------------------------------------------------------------------
32335 -Section::Section( Section& rSection )
32338 - mnTextEnc = rSection.mnTextEnc;
32339 - for ( int i = 0; i < 16; i++ )
32340 - aFMTID[ i ] = rSection.aFMTID[ i ];
32341 - for ( PropEntry* pProp = (PropEntry*)rSection.First(); pProp; pProp = (PropEntry*)rSection.Next() )
32342 - Insert( new PropEntry( *pProp ), LIST_APPEND );
32345 -// -----------------------------------------------------------------------
32347 -Section::Section( const sal_uInt8* pFMTID )
32349 - mnTextEnc = RTL_TEXTENCODING_MS_1252;
32350 - for ( int i = 0; i < 16; i++ )
32351 - aFMTID[ i ] = pFMTID[ i ];
32354 -// -----------------------------------------------------------------------
32356 -sal_Bool Section::GetProperty( sal_uInt32 nId, PropItem& rPropItem )
32358 - PropEntry* pProp;
32361 - for ( pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
32363 - if ( pProp->mnId == nId )
32368 - rPropItem.Clear();
32369 - rPropItem.SetTextEncoding( mnTextEnc );
32370 - rPropItem.Write( pProp->mpBuf, pProp->mnSize );
32371 - rPropItem.Seek( STREAM_SEEK_TO_BEGIN );
32375 - return sal_False;
32378 -// -----------------------------------------------------------------------
32380 -void Section::AddProperty( sal_uInt32 nId, const sal_uInt8* pBuf, sal_uInt32 nBufSize )
32382 - // kleiner id check
32386 - if ( nId == 0xffffffff )
32389 - // keine doppelten PropId's zulassen, sortieren
32390 - for ( sal_uInt32 i = 0; i < Count(); i++ )
32392 - PropEntry* pPropEntry = (PropEntry*)GetObject( i );
32393 - if ( pPropEntry->mnId == nId )
32394 - delete (PropEntry*)Replace( new PropEntry( nId, pBuf, nBufSize, mnTextEnc ), i );
32395 - else if ( pPropEntry->mnId > nId )
32396 - Insert( new PropEntry( nId, pBuf, nBufSize, mnTextEnc ), i );
32401 - Insert( new PropEntry( nId, pBuf, nBufSize, mnTextEnc ), LIST_APPEND );
32404 -// -----------------------------------------------------------------------
32406 -sal_Bool Section::GetDictionary( Dictionary& rDict )
32408 - sal_Bool bRetValue = sal_False;
32410 - Dictionary aDict;
32411 - PropEntry* pProp;
32413 - for ( pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
32415 - if ( pProp->mnId == 0 )
32420 - sal_uInt32 nDictCount, nId, nSize, nPos;
32421 - SvMemoryStream aStream( (sal_Int8*)pProp->mpBuf, pProp->mnSize, STREAM_READ );
32422 - aStream.Seek( STREAM_SEEK_TO_BEGIN );
32423 - aStream >> nDictCount;
32424 - for ( sal_uInt32 i = 0; i < nDictCount; i++ )
32426 - aStream >> nId >> nSize;
32427 - if ( (sal_uInt16)nSize )
32430 - nPos = aStream.Tell();
32431 - sal_Char* pString = new sal_Char[ (sal_uInt16)nSize ];
32432 - aStream.Read( pString, (sal_uInt16)nSize );
32433 - if ( mnTextEnc == RTL_TEXTENCODING_UCS2 )
32436 - aStream.Seek( nPos );
32437 - sal_Unicode* pWString = (sal_Unicode*)pString;
32438 - for ( i = 0; i < (sal_uInt16)nSize; i++ )
32439 - aStream >> pWString[ i ];
32440 - aString = String( pWString, (sal_uInt16)nSize - 1 );
32443 - aString = String( ByteString( pString, (sal_uInt16)nSize - 1 ), mnTextEnc );
32444 - delete[] pString;
32445 - if ( !aString.Len() )
32447 - aDict.AddProperty( nId, aString );
32449 - bRetValue = sal_True;
32453 - return bRetValue;
32456 -// -----------------------------------------------------------------------
32458 -Section::~Section()
32460 - for ( PropEntry* pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
32464 -// -----------------------------------------------------------------------
32466 -void Section::Read( SvStorageStream *pStrm )
32468 - sal_uInt32 i, nSecOfs, nSecSize, nPropCount, nPropId, nPropOfs, nPropType, nPropSize, nCurrent, nVectorCount, nTemp, nStrmSize;
32469 - nSecOfs = pStrm->Tell();
32471 - pStrm->Seek( STREAM_SEEK_TO_END );
32472 - nStrmSize = pStrm->Tell();
32473 - pStrm->Seek( nSecOfs );
32475 - mnTextEnc = RTL_TEXTENCODING_MS_1252;
32476 - *pStrm >> nSecSize >> nPropCount;
32477 - while( nPropCount-- && ( pStrm->GetError() == ERRCODE_NONE ) )
32479 - *pStrm >> nPropId >> nPropOfs;
32480 - nCurrent = pStrm->Tell();
32481 - pStrm->Seek( nPropOfs + nSecOfs );
32482 - if ( nPropId ) // dictionary wird nicht eingelesen
32485 - *pStrm >> nPropType;
32489 - if ( nPropType & VT_VECTOR )
32491 - *pStrm >> nVectorCount;
32492 - nPropType &=~VT_VECTOR;
32496 - nVectorCount = 1;
32499 - sal_Bool bVariant = ( nPropType == VT_VARIANT );
32501 - for ( i = 0; nPropSize && ( i < nVectorCount ); i++ )
32505 - *pStrm >> nPropType;
32508 - switch( nPropType )
32532 - case VT_FILETIME :
32538 - nPropSize += ( nTemp + 4 );
32543 - nPropSize += ( nTemp + 4 );
32548 - nPropSize += ( nTemp << 1 ) + 4;
32551 - case VT_BLOB_OBJECT :
32555 - nPropSize += ( nTemp + 4 );
32560 - case VT_STORAGE :
32561 - case VT_STREAMED_OBJECT :
32562 - case VT_STORED_OBJECT :
32563 - case VT_VARIANT :
32570 - if ( ( nVectorCount - i ) > 1 )
32571 - pStrm->Seek( nPropOfs + nSecOfs + nPropSize );
32578 - pStrm->Seek( nPropOfs + nSecOfs );
32579 - sal_uInt8* pBuf = new sal_uInt8[ nPropSize ];
32580 - pStrm->Read( pBuf, nPropSize );
32581 - AddProperty( nPropId, pBuf, nPropSize );
32584 - if ( nPropId == 1 )
32586 - PropItem aPropItem;
32587 - if ( GetProperty( 1, aPropItem ) )
32589 - sal_uInt16 nCodePage;
32590 - aPropItem >> nPropType;
32591 - if ( nPropType == VT_I2 )
32593 - aPropItem >> nCodePage;
32595 - if ( nCodePage == 1200 )
32597 - mnTextEnc = RTL_TEXTENCODING_UCS2;
32601 - mnTextEnc = rtl_getTextEncodingFromWindowsCodePage( nCodePage );
32602 - if ( mnTextEnc == RTL_TEXTENCODING_DONTKNOW )
32603 - mnTextEnc = RTL_TEXTENCODING_MS_1252;
32608 - mnTextEnc = RTL_TEXTENCODING_MS_1252;
32615 - sal_uInt32 nDictCount, nSize;
32616 - *pStrm >> nDictCount;
32617 - for ( i = 0; i < nDictCount; i++ )
32619 - *pStrm >> nSize >> nSize;
32620 - pStrm->SeekRel( nSize );
32622 - nSize = pStrm->Tell();
32623 - pStrm->Seek( nPropOfs + nSecOfs );
32624 - nSize -= pStrm->Tell();
32625 - if ( nSize > nStrmSize )
32630 - sal_uInt8* pBuf = new sal_uInt8[ nSize ];
32631 - pStrm->Read( pBuf, nSize );
32632 - AddProperty( 0xffffffff, pBuf, nSize );
32635 - pStrm->Seek( nCurrent );
32637 - pStrm->Seek( nSecOfs + nSecSize );
32640 -// -----------------------------------------------------------------------
32642 -Section& Section::operator=( Section& rSection )
32644 - PropEntry* pProp;
32646 - if ( this != &rSection )
32648 - memcpy( (void*)aFMTID, (void*)rSection.aFMTID, 16 );
32649 - for ( pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
32652 - for ( pProp = (PropEntry*)rSection.First(); pProp; pProp = (PropEntry*)rSection.Next() )
32653 - Insert( new PropEntry( *pProp ), LIST_APPEND );
32658 -// -----------------------------------------------------------------------
32660 -PropRead::PropRead( SvStorage& rStorage, const String& rName ) :
32661 - mbStatus ( sal_False ),
32662 - mnByteOrder ( 0xfffe ),
32664 - mnVersionLo ( 4 ),
32665 - mnVersionHi ( 2 )
32667 - if ( rStorage.IsStream( rName ) )
32669 - mpSvStream = rStorage.OpenSotStream( rName, STREAM_STD_READ );
32670 - if ( mpSvStream )
32672 - mpSvStream->SetNumberFormatInt( NUMBERFORMAT_INT_LITTLEENDIAN );
32673 - memset( mApplicationCLSID, 0, 16 );
32674 - mbStatus = sal_True;
32679 -// -----------------------------------------------------------------------
32681 -void PropRead::AddSection( Section& rSection )
32683 - Insert( new Section( rSection ), LIST_APPEND );
32686 -// -----------------------------------------------------------------------
32688 -const Section* PropRead::GetSection( const sal_uInt8* pFMTID )
32690 - Section* pSection;
32692 - for ( pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
32694 - if ( memcmp( pSection->GetFMTID(), pFMTID, 16 ) == 0 )
32700 -// -----------------------------------------------------------------------
32702 -PropRead::~PropRead()
32704 - for ( Section* pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
32708 -// -----------------------------------------------------------------------
32710 -void PropRead::Read()
32712 - for ( Section* pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
32717 - sal_uInt32 nSections;
32718 - sal_uInt32 nSectionOfs;
32719 - sal_uInt32 nCurrent;
32720 - *mpSvStream >> mnByteOrder >> mnFormat >> mnVersionLo >> mnVersionHi;
32721 - if ( mnByteOrder == 0xfffe )
32723 - sal_uInt8* pSectCLSID = new sal_uInt8[ 16 ];
32724 - mpSvStream->Read( mApplicationCLSID, 16 );
32725 - *mpSvStream >> nSections;
32726 - if ( nSections > 2 ) // sj: PowerPoint documents are containing max 2 sections
32728 - mbStatus = sal_False;
32730 - else for ( sal_uInt32 i = 0; i < nSections; i++ )
32732 - mpSvStream->Read( pSectCLSID, 16 );
32733 - *mpSvStream >> nSectionOfs;
32734 - nCurrent = mpSvStream->Tell();
32735 - mpSvStream->Seek( nSectionOfs );
32736 - Section aSection( pSectCLSID );
32737 - aSection.Read( mpSvStream );
32738 - AddSection( aSection );
32739 - mpSvStream->Seek( nCurrent );
32741 - delete[] pSectCLSID;
32746 -// -----------------------------------------------------------------------
32748 -PropRead& PropRead::operator=( PropRead& rPropRead )
32750 - Section* pSection;
32752 - if ( this != &rPropRead )
32754 - mbStatus = rPropRead.mbStatus;
32755 - mpSvStream = rPropRead.mpSvStream;
32757 - mnByteOrder = rPropRead.mnByteOrder;
32758 - mnFormat = rPropRead.mnFormat;
32759 - mnVersionLo = rPropRead.mnVersionLo;
32760 - mnVersionHi = rPropRead.mnVersionHi;
32761 - memcpy( mApplicationCLSID, rPropRead.mApplicationCLSID, 16 );
32763 - for ( pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
32766 - for ( pSection = (Section*)rPropRead.First(); pSection; pSection = (Section*)rPropRead.Next() )
32767 - Insert( new Section( *pSection ), LIST_APPEND );
32771 diff --git sd/source/filter/propread.hxx sd/source/filter/propread.hxx
32772 index 6a2e7ab..e69de29 100644
32773 --- sd/source/filter/propread.hxx
32774 +++ sd/source/filter/propread.hxx
32776 -/*************************************************************************
32778 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
32780 - * Copyright 2008 by Sun Microsystems, Inc.
32782 - * OpenOffice.org - a multi-platform office productivity suite
32784 - * $RCSfile: propread.hxx,v $
32785 - * $Revision: 1.7 $
32787 - * This file is part of OpenOffice.org.
32789 - * OpenOffice.org is free software: you can redistribute it and/or modify
32790 - * it under the terms of the GNU Lesser General Public License version 3
32791 - * only, as published by the Free Software Foundation.
32793 - * OpenOffice.org is distributed in the hope that it will be useful,
32794 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
32795 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32796 - * GNU Lesser General Public License version 3 for more details
32797 - * (a copy is included in the LICENSE file that accompanied this code).
32799 - * You should have received a copy of the GNU Lesser General Public License
32800 - * version 3 along with OpenOffice.org. If not, see
32801 - * <http://www.openoffice.org/license.html>
32802 - * for a copy of the LGPLv3 License.
32804 - ************************************************************************/
32806 -#ifndef _PROPREAD_HXX_
32807 -#define _PROPREAD_HXX_
32809 -#include <tools/solar.h>
32810 -#include <sot/storage.hxx>
32811 -#include <tools/gen.hxx>
32812 -#include <tools/list.hxx>
32813 -#include <tools/stream.hxx>
32814 -#include <tools/datetime.hxx>
32816 -#include <tools/string.hxx>
32818 -// SummaryInformation
32819 -#define PID_TITLE 0x02
32820 -#define PID_SUBJECT 0x03
32821 -#define PID_AUTHOR 0x04
32822 -#define PID_KEYWORDS 0x05
32823 -#define PID_COMMENTS 0x06
32824 -#define PID_TEMPLATE 0x07
32825 -#define PID_LASTAUTHOR 0x08
32826 -#define PID_REVNUMBER 0x09
32827 -#define PID_EDITTIME 0x0a
32828 -#define PID_LASTPRINTED_DTM 0x0b
32829 -#define PID_CREATE_DTM 0x0c
32830 -#define PID_LASTSAVED_DTM 0x0d
32832 -// DocumentSummaryInformation
32833 -#define PID_CATEGORY 0x02
32834 -#define PID_PRESFORMAT 0x03
32835 -#define PID_BYTECOUNT 0x04
32836 -#define PID_LINECOUNT 0x05
32837 -#define PID_PARACOUNT 0x06
32838 -#define PID_SLIDECOUNT 0x07
32839 -#define PID_NOTECOUNT 0x08
32840 -#define PID_HIDDENCOUNT 0x09
32841 -#define PID_MMCLIPCOUNT 0x0a
32842 -#define PID_SCALE 0x0b
32843 -#define PID_HEADINGPAIR 0x0c
32844 -#define PID_DOCPARTS 0x0d
32845 -#define PID_MANAGER 0x0e
32846 -#define PID_COMPANY 0x0f
32847 -#define PID_LINKSDIRTY 0x10
32849 -#define VT_EMPTY 0
32859 -#define VT_ERROR 10
32860 -#define VT_BOOL 11
32861 -#define VT_VARIANT 12
32862 -#define VT_DECIMAL 14
32869 -#define VT_UINT 23
32870 -#define VT_LPSTR 30
32871 -#define VT_LPWSTR 31
32872 -#define VT_FILETIME 64
32873 -#define VT_BLOB 65
32874 -#define VT_STREAM 66
32875 -#define VT_STORAGE 67
32876 -#define VT_STREAMED_OBJECT 68
32877 -#define VT_STORED_OBJECT 69
32878 -#define VT_BLOB_OBJECT 70
32880 -#define VT_CLSID 72
32881 -#define VT_VECTOR 0x1000
32882 -#define VT_ARRAY 0x2000
32883 -#define VT_BYREF 0x4000
32884 -#define VT_TYPEMASK 0xFFF
32886 -// ------------------------------------------------------------------------
32888 -class PropItem : public SvMemoryStream
32890 - sal_uInt16 mnTextEnc;
32896 - void SetTextEncoding( sal_uInt16 nTextEnc ){ mnTextEnc = nTextEnc; };
32897 - sal_Bool Read( String& rString, sal_uInt32 nType = VT_EMPTY, sal_Bool bDwordAlign = sal_True );
32898 - PropItem& operator=( PropItem& rPropItem );
32900 - using SvStream::Read;
32903 -// ------------------------------------------------------------------------
32905 -class Dictionary : protected List
32907 - friend class Section;
32909 - void AddProperty( UINT32 nId, const String& rString );
32914 - Dictionary& operator=( Dictionary& rDictionary );
32915 - UINT32 GetProperty( const String& rPropName );
32918 -// ------------------------------------------------------------------------
32920 -class Section : private List
32922 - sal_uInt16 mnTextEnc;
32926 - BYTE aFMTID[ 16 ];
32928 - void AddProperty( sal_uInt32 nId, const sal_uInt8* pBuf, sal_uInt32 nBufSize );
32931 - Section( const sal_uInt8* pFMTID );
32932 - Section( Section& rSection );
32935 - Section& operator=( Section& rSection );
32936 - sal_Bool GetProperty( sal_uInt32 nId, PropItem& rPropItem );
32937 - sal_Bool GetDictionary( Dictionary& rDict );
32938 - const sal_uInt8* GetFMTID() const { return aFMTID; };
32939 - void Read( SvStorageStream* pStrm );
32942 -// ------------------------------------------------------------------------
32944 -class PropRead : private List
32946 - sal_Bool mbStatus;
32947 - SvStorageStream* mpSvStream;
32949 - sal_uInt16 mnByteOrder;
32950 - sal_uInt16 mnFormat;
32951 - sal_uInt16 mnVersionLo;
32952 - sal_uInt16 mnVersionHi;
32953 - sal_uInt8 mApplicationCLSID[ 16 ];
32955 - void AddSection( Section& rSection );
32958 - PropRead( SvStorage& rSvStorage, const String& rName );
32961 - PropRead& operator=( PropRead& rPropRead );
32962 - const Section* GetSection( const BYTE* pFMTID );
32963 - sal_Bool IsValid() const { return mbStatus; };
32970 diff --git sd/source/filter/sdpptwrp.cxx sd/source/filter/sdpptwrp.cxx
32971 index c920a48..a9dd979 100644
32972 --- sd/source/filter/sdpptwrp.cxx
32973 +++ sd/source/filter/sdpptwrp.cxx
32975 #include <svtools/fltrcfg.hxx>
32977 #include "sdpptwrp.hxx"
32978 -#include "pptin.hxx"
32979 +#include "ppt/pptin.hxx"
32980 #include "drawdoc.hxx"
32981 #include <tools/urlobj.hxx>
32982 #include <svx/msfiltertracer.hxx>
32983 @@ -60,6 +60,9 @@ typedef BOOL ( __LOADONCALLAPI *ExportPPT )( SvStorageRef&,
32984 Reference< XStatusIndicator > &,
32985 SvMemoryStream*, sal_uInt32 nCnvrtFlags );
32987 +typedef sal_Bool ( SAL_CALL *ImportPPT )( const ::rtl::OUString&, Sequence< PropertyValue >*,
32988 + SdDrawDocument*, SvStream&, SvStorage&, SfxMedium& );
32993 @@ -81,9 +84,13 @@ SdPPTFilter::~SdPPTFilter()
32995 sal_Bool SdPPTFilter::Import()
32997 + ::osl::Module* pLibrary = OpenLibrary( mrMedium.GetFilter()->GetUserData() );
32999 + return sal_False;
33001 sal_Bool bRet = sal_False;
33002 - SotStorageRef pStorage = new SotStorage( mrMedium.GetInStream(), FALSE );
33003 - if( !pStorage->GetError() )
33004 + SotStorageRef pStorage = new SotStorage( mrMedium.GetInStream(), FALSE );
33005 + if( !pStorage->GetError() )
33007 /* check if there is a dualstorage, then the
33008 document is propably a PPT95 containing PPT97 */
33009 @@ -107,18 +114,18 @@ sal_Bool SdPPTFilter::Import()
33010 aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DocumentURL" ) );
33011 aConfigData[ 0 ] = aPropValue;
33013 - MSFilterTracer aTracer( aTraceConfigPath, &aConfigData );
33014 - aTracer.StartTracing();
33015 - SdPPTImport* pImport = new SdPPTImport( &mrDocument, *pDocStream, *pStorage, mrMedium, &aTracer );
33016 - if ( ( bRet = pImport->Import() ) == sal_False )
33017 + ImportPPT PPTImport = reinterpret_cast<ImportPPT>(pLibrary->getFunctionSymbol( ::rtl::OUString::createFromAscii("ImportPPT") ));
33019 + bRet = PPTImport( aTraceConfigPath, &aConfigData, &mrDocument, *pDocStream, *pStorage, mrMedium );
33023 if ( pStorage->IsStream( String( RTL_CONSTASCII_USTRINGPARAM("EncryptedSummary") ) ) )
33024 mrMedium.SetError( ERRCODE_SVX_READ_FILTER_PPOINT );
33026 mrMedium.SetError( SVSTREAM_WRONGVERSION );
33028 - aTracer.EndTracing();
33034 diff --git sd/source/ui/dlg/ins_paste.cxx sd/source/ui/dlg/ins_paste.cxx
33035 index 848ed87..aeab2a4 100644
33036 --- sd/source/ui/dlg/ins_paste.cxx
33037 +++ sd/source/ui/dlg/ins_paste.cxx
33039 // MARKER(update_precomp.py): autogen include statement, do not remove
33040 #include "precompiled_sd.hxx"
33042 -#ifdef SD_DLLIMPLEMENTATION
33043 -#undef SD_DLLIMPLEMENTATION
33046 #include "ins_paste.hrc"
33047 #include "ins_paste.hxx"
33049 diff --git sd/source/ui/docshell/docshell.cxx sd/source/ui/docshell/docshell.cxx
33050 index 27a27f1..32a243a 100644
33051 --- sd/source/ui/docshell/docshell.cxx
33052 +++ sd/source/ui/docshell/docshell.cxx
33053 @@ -118,9 +118,6 @@ namespace sd {
33055 GraphicFilter* GetGrfFilter();
33057 -SfxProgress* DrawDocShell::mpSpecialProgress = NULL;
33058 -Link* DrawDocShell::mpSpecialProgressHdl = NULL;
33060 /*************************************************************************
33062 |* SFX-Slotmaps und -Definitionen
33063 @@ -526,7 +523,6 @@ void DrawDocShell::ApplySlotFilter() const
33068 void DrawDocShell::SetModified( BOOL bSet /* = TRUE */ )
33070 SfxObjectShell::SetModified( bSet );
33071 diff --git sd/source/ui/inc/DrawDocShell.hxx sd/source/ui/inc/DrawDocShell.hxx
33072 index 5cf83ee..af8cd2a 100644
33073 --- sd/source/ui/inc/DrawDocShell.hxx
33074 +++ sd/source/ui/inc/DrawDocShell.hxx
33075 @@ -164,11 +164,6 @@ public:
33076 UINT16 GetStyleFamily() const { return mnStyleFamily; }
33077 void SetStyleFamily( UINT16 nSF ) { mnStyleFamily = nSF; }
33079 - BOOL HasSpecialProgress() const { return ( mpSpecialProgress != NULL && mpSpecialProgressHdl != NULL ); }
33080 - void ReleaseSpecialProgress() { mpSpecialProgress = NULL; mpSpecialProgressHdl = NULL; }
33081 - void SetSpecialProgress( SfxProgress* _pProgress, Link* pLink ) { mpSpecialProgress = _pProgress; mpSpecialProgressHdl = pLink; }
33082 - SfxProgress* GetSpecialProgress() { return( HasSpecialProgress() ? mpSpecialProgress : NULL ); }
33084 sal_Bool IsNewDocument() const;
33086 /** executes the SID_OPENDOC slot to let the framework open a document
33087 @@ -235,9 +230,6 @@ protected:
33089 BOOL mbNewDocument;
33091 - static SfxProgress* mpSpecialProgress;
33092 - static Link* mpSpecialProgressHdl;
33094 bool mbOwnDocument; // if true, we own mpDoc and will delete it in our d'tor
33095 void Construct(bool bClipboard);
33096 virtual void InPlaceActivate( BOOL bActive );
33097 diff --git sd/source/ui/inc/FrameView.hxx sd/source/ui/inc/FrameView.hxx
33098 index f56ef36..1d7ab2d 100644
33099 --- sd/source/ui/inc/FrameView.hxx
33100 +++ sd/source/ui/inc/FrameView.hxx
33101 @@ -49,7 +49,7 @@ class FrameView
33105 - FrameView(SdDrawDocument* pDrawDoc, FrameView* pFrameView = NULL );
33106 + SD_DLLPUBLIC FrameView(SdDrawDocument* pDrawDoc, FrameView* pFrameView = NULL );
33107 FrameView(const FrameView& rFrameView);
33108 virtual ~FrameView();
33110 @@ -106,7 +106,7 @@ public:
33111 /** can be used to get the page kind that was selected on last save of this document */
33112 PageKind GetPageKindOnLoad() const { return mePageKindOnLoad; }
33114 - void SetSelectedPage (USHORT nPage);
33115 + SD_DLLPUBLIC void SetSelectedPage (USHORT nPage);
33116 USHORT GetSelectedPage () const;
33118 /** is used in FrameView::ReadUserDataSequence() only to store the
33119 @@ -116,7 +116,7 @@ public:
33120 /** can be used to get the page that was selected on last save of this document */
33121 USHORT GetSelectedPageOnLoad () const { return mnSelectedPageOnLoad; }
33123 - void SetViewShEditMode(EditMode eMode, PageKind eKind);
33124 + SD_DLLPUBLIC void SetViewShEditMode(EditMode eMode, PageKind eKind);
33125 EditMode GetViewShEditMode (PageKind eKind);
33127 /** Remember the edit mode of the main view shell at the time when the
33128 diff --git sd/source/ui/inc/ins_paste.hxx sd/source/ui/inc/ins_paste.hxx
33129 index d74154e..bbb9dec 100644
33130 --- sd/source/ui/inc/ins_paste.hxx
33131 +++ sd/source/ui/inc/ins_paste.hxx
33132 @@ -31,18 +31,10 @@
33133 #ifndef _SD_INS_PASTE_HXX_
33134 #define _SD_INS_PASTE_HXX_
33136 -#ifndef _BUTTON_HXX //autogen
33137 #include <vcl/button.hxx>
33139 -#ifndef _FIXED_HXX //autogen
33140 #include <vcl/fixed.hxx>
33142 -#ifndef _DIALOG_HXX //autogen
33143 #include <vcl/dialog.hxx>
33145 -#ifndef _SD_SDRESID_HXX
33146 #include "sdresid.hxx"
33149 // --------------------
33150 // - SdInsertPasteDlg -
33151 diff --git sd/source/ui/unoidl/randomnode.cxx sd/source/ui/unoidl/randomnode.cxx
33152 index 3a006ab..830491e 100644
33153 --- sd/source/ui/unoidl/randomnode.cxx
33154 +++ sd/source/ui/unoidl/randomnode.cxx
33155 @@ -171,7 +171,7 @@ static const sal_Char* pSN2 = "com.sun.star.comp.sd.RandomAnimationNode";
33157 // --------------------------------------------------------------------
33159 -Reference< XInterface > RandomAnimationNode_createInstance( sal_Int16 nPresetClass )
33160 +SD_DLLPUBLIC Reference< XInterface > RandomAnimationNode_createInstance( sal_Int16 nPresetClass )
33162 Reference< XInterface > xInt( static_cast<XWeak*>( new RandomAnimationNode( nPresetClass ) ) );
33164 diff --git sd/util/makefile.mk sd/util/makefile.mk
33165 index a08f0e8..fb5e7af 100644
33166 --- sd/util/makefile.mk
33167 +++ sd/util/makefile.mk
33168 @@ -65,6 +65,7 @@ SHL1IMPLIB= sdi
33170 # dynamic libraries
33176 @@ -130,7 +131,6 @@ LIB5FILES= \
33178 $(SLB)$/filter.lib \
33179 $(SLB)$/unoidl.lib \
33180 - $(SLB)$/ppt.lib \
33181 $(SLB)$/animui.lib \
33182 $(SLB)$/accessibility.lib \
33183 $(SLB)$/toolpanel.lib \
33184 @@ -162,7 +162,7 @@ DEF2NAME= $(SHL2TARGET)
33193 @@ -195,6 +195,7 @@ LIB4FILES= \
33201 @@ -235,10 +236,40 @@ SHL4OBJS += $(SLO)$/pchname.obj \
33202 # $(ISDLIB) is build in SHL1TARGET
33203 .IF "$(GUI)" == "UNX"
33204 SHL4DEPN=$(SHL1TARGETN)
33205 +SHL5DEPN=$(SHL1TARGETN)
33207 SHL4DEPN=$(SHL1IMPLIBN)
33208 +SHL5DEPN=$(SHL1IMPLIBN)
33211 +# ppt import/export library
33212 +SHL5TARGET = sdfilt$(DLLPOSTFIX)
33213 +SHL5IMPLIB = sdfilti
33214 +SHL5VERSIONMAP= sdfilt.map
33215 +SHL5DEF = $(MISC)$/$(SHL5TARGET).def
33216 +SHL5LIBS = $(SLB)$/ppt.lib $(SLB)$/eppt.lib
33218 +DEF5NAME=$(SHL5TARGET)
33220 +SHL5STDLIBS = $(ISDLIB) \
33222 + $(SVXMSFILTERLIB) \
33232 + $(UCBHELPERLIB) \
33233 + $(CPPUHELPERLIB) \
33236 + $(COMPHELPERLIB) \
33237 + $(I18NISOLANGLIB)
33239 # --- Targets -------------------------------------------------------------
33241 .INCLUDE : target.mk
33242 diff --git sd/util/sdfilt.map sd/util/sdfilt.map
33243 new file mode 100644
33244 index 0000000..ac6b782
33246 +++ sd/util/sdfilt.map
33256 diff --git solenv/inc/libs.mk solenv/inc/libs.mk
33257 index f6b9815..2a75646 100644
33258 --- solenv/inc/libs.mk
33259 +++ solenv/inc/libs.mk
33260 @@ -256,6 +256,8 @@ EGGTRAYLIB=-leggtray$(DLLPOSTFIX)
33262 FWELIB=-lfwe$(DLLPOSTFIX)
33263 FWILIB=-lfwi$(DLLPOSTFIX)
33264 +SVXCORELIB=-lsvxcore$(DLLPOSTFIX)
33265 +SVXMSFILTERLIB=-lsvxmsfilter$(DLLPOSTFIX)
33266 SVXLIB=-lsvx$(DLLPOSTFIX)
33267 BASCTLLIB=-lbasctl$(DLLPOSTFIX)
33268 BASICIDELIB=-lybctl
33269 @@ -441,6 +443,8 @@ BASICLIB=basic.lib
33270 VBAHELPERLIB=vbahelper.lib
33273 +SVXCORELIB=isvxcore.lib
33274 +SVXMSFILTERLIB=isvxmsfilter.lib
33276 BASCTLLIB=basctl.lib
33277 BASICIDELIB=ybctl.lib
33278 diff --git starmath/util/makefile.mk starmath/util/makefile.mk
33279 index 2ef0f02..e4e21cb 100644
33280 --- starmath/util/makefile.mk
33281 +++ starmath/util/makefile.mk
33282 @@ -57,6 +57,7 @@ SHL1DEF=$(MISC)$/$(SHL1TARGET).def
33283 DEF1NAME= $(SHL1TARGET)
33290 diff --git svx/inc/EnhancedCustomShapeFunctionParser.hxx svx/inc/EnhancedCustomShapeFunctionParser.hxx
33291 index 6311b47..018da4c 100755
33292 --- svx/inc/EnhancedCustomShapeFunctionParser.hxx
33293 +++ svx/inc/EnhancedCustomShapeFunctionParser.hxx
33294 @@ -32,14 +32,14 @@
33295 #define _ENHANCEDCUSTOMSHAPEFUNCTIONPARSER_HXX
33297 #include <sal/config.h>
33298 -#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
33299 #include <boost/shared_ptr.hpp>
33301 #include "EnhancedCustomShapeFunctionParser.hxx"
33302 #include <com/sun/star/drawing/EnhancedCustomShapeParameter.hpp>
33303 #include <com/sun/star/drawing/EnhancedCustomShapeParameterType.hpp>
33306 +#include <svx/svxdllapi.h>
33308 struct EnhancedCustomShapeEquation
33310 sal_Int32 nOperation;
33311 @@ -97,7 +97,7 @@ enum ExpressionFunct
33313 #define EXPRESSION_FLAG_SUMANGLE_MODE 1
33315 -void FillEquationParameter( const com::sun::star::drawing::EnhancedCustomShapeParameter&, const sal_Int32, EnhancedCustomShapeEquation& );
33316 +SVX_DLLPUBLIC void FillEquationParameter( const com::sun::star::drawing::EnhancedCustomShapeParameter&, const sal_Int32, EnhancedCustomShapeEquation& );
33318 class ExpressionNode
33320 @@ -200,7 +200,7 @@ public:
33321 @return the generated function object.
33324 - static ExpressionNodeSharedPtr parseFunction( const ::rtl::OUString& rFunction, const EnhancedCustomShape2d& rCustoShape );
33325 + SVX_DLLPUBLIC static ExpressionNodeSharedPtr parseFunction( const ::rtl::OUString& rFunction, const EnhancedCustomShape2d& rCustoShape );
33328 // disabled constructor/destructor, since this is
33329 diff --git svx/inc/fontitem.hxx svx/inc/fontitem.hxx
33330 index 9607f8c..3ab3ffe 100644
33331 --- svx/inc/fontitem.hxx
33332 +++ svx/inc/fontitem.hxx
33333 @@ -111,7 +111,7 @@ public:
33337 - static void EnableStoreUnicodeNames( BOOL bEnable ) { bEnableStoreUnicodeNames = bEnable; }
33338 + static void EnableStoreUnicodeNames( BOOL bEnable );
33342 diff --git svx/inc/gallery1.hxx svx/inc/gallery1.hxx
33343 index 51e4520..75f2946 100644
33344 --- svx/inc/gallery1.hxx
33345 +++ svx/inc/gallery1.hxx
33346 @@ -144,7 +144,7 @@ private:
33347 void ImplLoadImports();
33348 void ImplWriteImportList();
33350 - GalleryThemeEntry* ImplGetThemeEntry( const String& rThemeName );
33351 + SVX_DLLPUBLIC GalleryThemeEntry* ImplGetThemeEntry( const String& rThemeName );
33352 GalleryThemeEntry* ImplGetThemeEntry( ULONG nThemeId );
33353 GalleryImportThemeEntry* ImplGetImportThemeEntry( const String& rImportName );
33355 @@ -168,7 +168,7 @@ public:
33356 SVX_DLLPUBLIC BOOL CreateTheme( const String& rThemeName, UINT32 nNumFrom = 0 );
33357 BOOL CreateImportTheme( const INetURLObject& rURL, const String& rFileName );
33358 BOOL RenameTheme( const String& rOldName, const String& rNewName );
33359 - BOOL RemoveTheme( const String& rThemeName );
33360 + SVX_DLLPUBLIC BOOL RemoveTheme( const String& rThemeName );
33362 SVX_DLLPUBLIC GalleryTheme* AcquireTheme( const String& rThemeName, SfxListener& rListener );
33363 SVX_DLLPUBLIC void ReleaseTheme( GalleryTheme* pTheme, SfxListener& rListener );
33364 diff --git svx/inc/galobj.hxx svx/inc/galobj.hxx
33365 index 9b67257..f675a41 100644
33366 --- svx/inc/galobj.hxx
33367 +++ svx/inc/galobj.hxx
33368 @@ -122,8 +122,8 @@ public:
33369 BOOL IsValid() const { return bIsValid; }
33370 BOOL IsThumbBitmap() const { return bIsThumbBmp; }
33372 - const String GetTitle() const;
33373 - void SetTitle( const String& rTitle );
33374 + SVX_DLLPUBLIC const String GetTitle() const;
33375 + SVX_DLLPUBLIC void SetTitle( const String& rTitle );
33377 friend SvStream& operator<<( SvStream& rOut, const SgaObject& rObj );
33378 friend SvStream& operator>>( SvStream& rIn, SgaObject& rObj );
33379 diff --git svx/inc/galtheme.hxx svx/inc/galtheme.hxx
33380 index 5561d33..72fd5e0 100644
33381 --- svx/inc/galtheme.hxx
33382 +++ svx/inc/galtheme.hxx
33383 @@ -107,12 +107,12 @@ private:
33384 BOOL bAbortActualize;
33386 void ImplCreateSvDrawStorage();
33387 - SgaObject* ImplReadSgaObject( GalleryObject* pEntry );
33388 + SVX_DLLPUBLIC SgaObject* ImplReadSgaObject( GalleryObject* pEntry );
33389 BOOL ImplWriteSgaObject( const SgaObject& rObj, ULONG nPos, GalleryObject* pExistentEntry );
33392 const GalleryObject* ImplGetGalleryObject( ULONG nPos ) const { return aObjectList.GetObject( nPos ); }
33393 - const GalleryObject* ImplGetGalleryObject( const INetURLObject& rURL );
33394 + SVX_DLLPUBLIC const GalleryObject* ImplGetGalleryObject( const INetURLObject& rURL );
33395 ULONG ImplGetGalleryObjectPos( const GalleryObject* pObj ) const { return aObjectList.GetPos( pObj ); }
33396 INetURLObject ImplGetURL( const GalleryObject* pObject ) const;
33397 INetURLObject ImplCreateUniqueURL( SgaObjKind eObjKind, ULONG nFormat = CVT_UNKNOWN );
33398 @@ -129,11 +129,11 @@ public:
33400 ULONG GetObjectCount() const { return aObjectList.Count(); }
33402 - SgaObject* AcquireObject( ULONG nPos );
33403 - void ReleaseObject( SgaObject* pObj );
33404 + SVX_DLLPUBLIC SgaObject* AcquireObject( ULONG nPos );
33405 + SVX_DLLPUBLIC void ReleaseObject( SgaObject* pObj );
33407 - BOOL InsertObject( const SgaObject& rObj, ULONG nPos = LIST_APPEND );
33408 - BOOL RemoveObject( ULONG nPos );
33409 + SVX_DLLPUBLIC BOOL InsertObject( const SgaObject& rObj, ULONG nPos = LIST_APPEND );
33410 + SVX_DLLPUBLIC BOOL RemoveObject( ULONG nPos );
33411 BOOL ChangeObjectPos( ULONG nOldPos, ULONG nNewPos );
33413 const String& GetName() const { return IsImported() ? aImportName : pThm->GetThemeName(); }
33414 @@ -194,11 +194,11 @@ public:
33416 BOOL GetThumb( ULONG nPos, Bitmap& rBmp, BOOL bProgress = FALSE );
33418 - BOOL GetGraphic( ULONG nPos, Graphic& rGraphic, BOOL bProgress = FALSE );
33419 - BOOL InsertGraphic( const Graphic& rGraphic, ULONG nInsertPos = LIST_APPEND );
33420 + SVX_DLLPUBLIC BOOL GetGraphic( ULONG nPos, Graphic& rGraphic, BOOL bProgress = FALSE );
33421 + SVX_DLLPUBLIC BOOL InsertGraphic( const Graphic& rGraphic, ULONG nInsertPos = LIST_APPEND );
33423 - BOOL GetModel( ULONG nPos, SdrModel& rModel, BOOL bProgress = FALSE );
33424 - BOOL InsertModel( const FmFormModel& rModel, ULONG nInsertPos = LIST_APPEND );
33425 + SVX_DLLPUBLIC BOOL GetModel( ULONG nPos, SdrModel& rModel, BOOL bProgress = FALSE );
33426 + SVX_DLLPUBLIC BOOL InsertModel( const FmFormModel& rModel, ULONG nInsertPos = LIST_APPEND );
33428 BOOL GetModelStream( ULONG nPos, SotStorageStreamRef& rModelStreamRef, BOOL bProgress = FALSE );
33429 BOOL InsertModelStream( const SotStorageStreamRef& rModelStream, ULONG nInsertPos = LIST_APPEND );
33430 diff --git svx/inc/svdglob.hxx svx/inc/svdglob.hxx
33431 index 87eb126..dbf584a 100644
33432 --- svx/inc/svdglob.hxx
33433 +++ svx/inc/svdglob.hxx
33434 @@ -33,11 +33,11 @@
33436 #include <tools/contnr.hxx>
33438 -#ifndef _RESID_HXX //autogen
33439 #include <tools/resid.hxx>
33441 #include <tools/string.hxx>
33443 +#include <svx/svxdllapi.h>
33445 //************************************************************
33446 // Vorausdeklarationen
33447 //************************************************************
33448 @@ -64,7 +64,7 @@ public:
33449 // IDs von SDR_StringCacheBegin (256) bis
33450 // SDR_StringCacheEnd (weiss ich grad' nicht).
33451 // Hierzu siehe auch SvdStr.Hrc
33452 -String ImpGetResStr(sal_uInt16 nResID);
33453 +SVX_DLLPUBLIC String ImpGetResStr(sal_uInt16 nResID);
33455 ////////////////////////////////////////////////////////////////////////////////////////////////////
33457 diff --git svx/inc/svx/AccessibleContextBase.hxx svx/inc/svx/AccessibleContextBase.hxx
33458 index 480392a..c1f98a5 100644
33459 --- svx/inc/svx/AccessibleContextBase.hxx
33460 +++ svx/inc/svx/AccessibleContextBase.hxx
33462 /*************************************************************************
33464 -<<<<<<< AccessibleContextBase.hxx
33465 - * OpenOffice.org - a multi-platform office productivity suite
33467 - * $RCSfile: AccessibleContextBase.hxx,v $
33469 - * $Revision: 1.4 $
33471 - * last change: $Author: rt $ $Date: 2008-07-07 14:27:26 $
33473 - * The Contents of this file are made available subject to
33474 - * the terms of GNU Lesser General Public License Version 2.1.
33477 - * GNU Lesser General Public License Version 2.1
33478 - * =============================================
33479 - * Copyright 2005 by Sun Microsystems, Inc.
33480 - * 901 San Antonio Road, Palo Alto, CA 94303, USA
33482 - * This library is free software; you can redistribute it and/or
33483 - * modify it under the terms of the GNU Lesser General Public
33484 - * License version 2.1, as published by the Free Software Foundation.
33486 - * This library is distributed in the hope that it will be useful,
33487 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
33488 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
33489 - * Lesser General Public License for more details.
33491 - * You should have received a copy of the GNU Lesser General Public
33492 - * License along with this library; if not, write to the Free Software
33493 - * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
33494 - * MA 02111-1307 USA
33496 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
33498 * Copyright 2008 by Sun Microsystems, Inc.
33500 * version 3 along with OpenOffice.org. If not, see
33501 * <http://www.openoffice.org/license.html>
33502 * for a copy of the LGPLv3 License.
33505 ************************************************************************/
33507 diff --git svx/inc/svx/AccessibleControlShape.hxx svx/inc/svx/AccessibleControlShape.hxx
33508 index 326d57e..276746f 100644
33509 --- svx/inc/svx/AccessibleControlShape.hxx
33510 +++ svx/inc/svx/AccessibleControlShape.hxx
33512 #ifndef _SVX_ACCESSIBILITY_ACCESSIBLE_CONTROL_SHAPE_HXX
33513 #define _SVX_ACCESSIBILITY_ACCESSIBLE_CONTROL_SHAPE_HXX
33515 -#ifndef _SVX_ACCESSIBILITY_ACCESSIBLE_SHAPE_MANAGER_HXX
33516 #include <svx/AccessibleShape.hxx>
33519 -#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_ACTION_HPP_
33520 #include <com/sun/star/accessibility/XAccessibleAction.hpp>
33522 #include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
33523 #include <com/sun/star/util/XModeChangeBroadcaster.hpp>
33524 #include <com/sun/star/container/XContainerListener.hpp>
33525 diff --git svx/inc/svx/escherex.hxx svx/inc/svx/escherex.hxx
33526 index d7b7184..6c437cb 100644
33527 --- svx/inc/svx/escherex.hxx
33528 +++ svx/inc/svx/escherex.hxx
33529 @@ -305,6 +305,8 @@
33530 #define ESCHER_ShpInst_ActionButtonMovie 200
33531 #define ESCHER_ShpInst_HostControl 201
33532 #define ESCHER_ShpInst_TextBox 202
33534 +#define ESCHER_ShpInst_COUNT 203
33535 #define ESCHER_ShpInst_Max 0x0FFF
33536 #define ESCHER_ShpInst_Nil ESCHER_ShpInst_Max
33538 @@ -961,10 +963,35 @@ namespace com { namespace sun { namespace star {
33541 namespace drawing {
33542 + struct EnhancedCustomShapeAdjustmentValue;
33547 +struct SVX_DLLPUBLIC EscherConnectorListEntry
33549 + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnector;
33550 + ::com::sun::star::awt::Point maPointA;
33551 + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnectToA;
33552 + ::com::sun::star::awt::Point maPointB;
33553 + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnectToB;
33555 + sal_uInt32 GetConnectorRule( sal_Bool bFirst );
33557 + EscherConnectorListEntry( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rC,
33558 + const ::com::sun::star::awt::Point& rPA,
33559 + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rSA ,
33560 + const ::com::sun::star::awt::Point& rPB,
33561 + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rSB ) :
33562 + mXConnector ( rC ),
33563 + maPointA ( rPA ),
33564 + mXConnectToA( rSA ),
33565 + maPointB ( rPB ),
33566 + mXConnectToB( rSB ) {}
33568 + sal_uInt32 GetClosestPoint( const Polygon& rPoly, const ::com::sun::star::awt::Point& rP );
33571 struct SVX_DLLPUBLIC EscherExContainer
33573 sal_uInt32 nContPos;
33574 @@ -1109,8 +1136,19 @@ public:
33575 #define ESCHER_CREATEPOLYGON_POLYLINE 2
33576 #define ESCHER_CREATEPOLYGON_POLYPOLYGON 4
33578 -struct EscherPropSortStruct;
33580 +class SdrObjCustomShape;
33582 +struct EscherPropSortStruct
33585 + sal_uInt32 nPropSize;
33586 + sal_uInt32 nPropValue;
33587 + sal_uInt16 nPropId;
33590 +typedef std::vector< EscherPropSortStruct > EscherProperties;
33592 class SVX_DLLPUBLIC EscherPropertyContainer
33594 EscherGraphicProvider* pGraphicProvider;
33595 @@ -1155,6 +1193,10 @@ class SVX_DLLPUBLIC EscherPropertyContainer
33596 sal_uInt8* pProp, sal_uInt32 nPropSize );
33598 sal_Bool GetOpt( sal_uInt16 nPropertyID, sal_uInt32& rPropValue ) const;
33600 + sal_Bool GetOpt( sal_uInt16 nPropertyID, EscherPropSortStruct& rPropValue ) const;
33602 + EscherProperties GetOpts() const;
33604 void Commit( SvStream& rSt, sal_uInt16 nVersion = 3, sal_uInt16 nRecType = ESCHER_OPT );
33606 @@ -1203,6 +1245,14 @@ class SVX_DLLPUBLIC EscherPropertyContainer
33607 static PolyPolygon GetPolyPolygon( const ::com::sun::star::uno::Any& rSource );
33608 static MSO_SPT GetCustomShapeType( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape, sal_uInt32& nMirrorFlags );
33609 static MSO_SPT GetCustomShapeType( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape, sal_uInt32& nMirrorFlags, rtl::OUString& rShapeType );
33611 + // helper functions which are also used in ooxml export
33612 + static sal_Bool GetLineArrow( const sal_Bool bLineStart,
33613 + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet,
33614 + ESCHER_LineEnd& reLineEnd, sal_Int32& rnArrowLength, sal_Int32& rnArrowWidth );
33615 + static sal_Bool IsDefaultObject( SdrObjCustomShape* pCustoShape );
33616 + static void LookForPolarHandles( const MSO_SPT eShapeType, sal_Int32& nAdjustmentsWhichNeedsToBeConverted );
33617 + static sal_Bool GetAdjustmentValue( const com::sun::star::drawing::EnhancedCustomShapeAdjustmentValue & rkProp, sal_Int32 nIndex, sal_Int32 nAdjustmentsWhichNeedsToBeConverted, sal_Int32& nValue );
33620 // ---------------------------------------------------------------------------------------------
33621 @@ -1357,7 +1407,7 @@ class SVX_DLLPUBLIC EscherEx : public EscherPersistTable, public EscherGraphicPr
33622 BOOL mbOleEmf; // OLE is EMF instead of WMF
33625 - BOOL DoSeek( UINT32 nKey );
33626 + virtual BOOL DoSeek( UINT32 nKey );
33630 @@ -1368,7 +1418,7 @@ class SVX_DLLPUBLIC EscherEx : public EscherPersistTable, public EscherGraphicPr
33631 /// Wenn pPicStreamMergeBSE angegeben ist, werden die BLIPs
33632 /// aus diesem Stream in die MsofbtBSE Records des EscherStream
33633 /// gemerged, wie es fuer Excel (und Word?) benoetigt wird.
33634 - void Flush( SvStream* pPicStreamMergeBSE = NULL );
33635 + virtual void Flush( SvStream* pPicStreamMergeBSE = NULL );
33637 virtual ~EscherEx();
33639 @@ -1379,13 +1429,13 @@ class SVX_DLLPUBLIC EscherEx : public EscherPersistTable, public EscherGraphicPr
33641 void InsertPersistOffset( UINT32 nKey, UINT32 nOffset ); // Es wird nicht geprueft, ob sich jener schluessel schon in der PersistantTable befindet
33642 BOOL SeekToPersistOffset( UINT32 nKey );
33643 - BOOL InsertAtPersistOffset( UINT32 nKey, UINT32 nValue );// nValue wird im Stream an entrsprechender Stelle eingefuegt(overwrite modus), ohne dass sich die
33644 + virtual BOOL InsertAtPersistOffset( UINT32 nKey, UINT32 nValue );// nValue wird im Stream an entrsprechender Stelle eingefuegt(overwrite modus), ohne dass sich die
33645 // aktuelle StreamPosition aendert
33647 SvStream& GetStream() const { return *mpOutStrm; }
33648 ULONG GetStreamPos() const { return mpOutStrm->Tell(); }
33650 - BOOL SeekBehindRecHeader( UINT16 nRecType ); // der stream muss vor einem gueltigen Record Header oder Atom stehen
33651 + virtual BOOL SeekBehindRecHeader( UINT16 nRecType ); // der stream muss vor einem gueltigen Record Header oder Atom stehen
33653 // features beim erzeugen folgender Container:
33655 @@ -1397,23 +1447,26 @@ class SVX_DLLPUBLIC EscherEx : public EscherPersistTable, public EscherGraphicPr
33656 virtual void OpenContainer( UINT16 nEscherContainer, int nRecInstance = 0 );
33657 virtual void CloseContainer();
33659 - void BeginAtom();
33660 - void EndAtom( UINT16 nRecType, int nRecVersion = 0, int nRecInstance = 0 );
33661 - void AddAtom( UINT32 nAtomSitze, UINT16 nRecType, int nRecVersion = 0, int nRecInstance = 0 );
33662 - void AddClientAnchor( const Rectangle& rRectangle );
33663 + virtual void BeginAtom();
33664 + virtual void EndAtom( UINT16 nRecType, int nRecVersion = 0, int nRecInstance = 0 );
33665 + virtual void AddAtom( UINT32 nAtomSitze, UINT16 nRecType, int nRecVersion = 0, int nRecInstance = 0 );
33666 + virtual void AddChildAnchor( const Rectangle& rRectangle );
33667 + virtual void AddClientAnchor( const Rectangle& rRectangle );
33669 - UINT32 EnterGroup( const String& rShapeName, const Rectangle* pBoundRect = 0 );
33670 + virtual UINT32 EnterGroup( const String& rShapeName, const Rectangle* pBoundRect = 0 );
33671 UINT32 EnterGroup( const Rectangle* pBoundRect = NULL );
33672 UINT32 GetGroupLevel() const { return mnGroupLevel; };
33673 - BOOL SetGroupSnapRect( UINT32 nGroupLevel, const Rectangle& rRect );
33674 - BOOL SetGroupLogicRect( UINT32 nGroupLevel, const Rectangle& rRect );
33675 - void LeaveGroup();
33676 + virtual BOOL SetGroupSnapRect( UINT32 nGroupLevel, const Rectangle& rRect );
33677 + virtual BOOL SetGroupLogicRect( UINT32 nGroupLevel, const Rectangle& rRect );
33678 + virtual void LeaveGroup();
33680 // ein ESCHER_Sp wird geschrieben ( Ein ESCHER_DgContainer muss dazu geoeffnet sein !!)
33681 - void AddShape( UINT32 nShpInstance, UINT32 nFlagIds, UINT32 nShapeID = 0 );
33682 + virtual void AddShape( UINT32 nShpInstance, UINT32 nFlagIds, UINT32 nShapeID = 0 );
33683 // reserviert eine ShapeId
33684 UINT32 GetShapeID();
33686 + virtual void Commit( EscherPropertyContainer& rProps, const Rectangle& rRect );
33688 UINT32 GetColor( const UINT32 nColor, BOOL bSwap = TRUE );
33689 UINT32 GetColor( const Color& rColor, BOOL bSwap = TRUE );
33691 diff --git svx/inc/svx/framelink.hxx svx/inc/svx/framelink.hxx
33692 index e626360..2bf5138 100644
33693 --- svx/inc/svx/framelink.hxx
33694 +++ svx/inc/svx/framelink.hxx
33695 @@ -325,7 +325,7 @@ inline double GetVerDiagAngle( const Rectangle& rRect )
33697 Inner (right) angle between diagonal and horizontal frame border.
33699 -long GetTLDiagOffset( long nVerOffs, long nDiagOffs, double fAngle );
33700 +SVX_DLLPUBLIC long GetTLDiagOffset( long nVerOffs, long nDiagOffs, double fAngle );
33702 /** Returns an X coordinate for a diagonal frame border in the specified height.
33704 @@ -434,7 +434,7 @@ long GetTRDiagOffset( long nVerOffs, long nDiagOffs, double fAngle );
33705 True, if rLBorder and rRBorder can be drawn in one step without
33706 interruption at their connection point.
33708 -bool CheckFrameBorderConnectable(
33709 +SVX_DLLPUBLIC bool CheckFrameBorderConnectable(
33710 const Style& rLBorder, /// Style of the left frame border to connect.
33711 const Style& rRBorder, /// Style of the right frame border to connect.
33713 @@ -486,7 +486,7 @@ bool CheckFrameBorderConnectable(
33715 rLFromB \ / rRFromB
33717 -void DrawHorFrameBorder(
33718 +SVX_DLLPUBLIC void DrawHorFrameBorder(
33719 OutputDevice& rDev, /// The output device used to draw the frame border.
33721 const Point& rLPos, /// Reference point for left end of the processed frame border.
33722 @@ -603,7 +603,7 @@ void SVX_DLLPUBLIC DrawHorFrameBorder(
33726 -void DrawVerFrameBorder(
33727 +SVX_DLLPUBLIC void DrawVerFrameBorder(
33728 OutputDevice& rDev, /// The output device used to draw the frame border.
33730 const Point& rTPos, /// Reference point for top end of the processed frame border.
33731 @@ -698,7 +698,7 @@ void SVX_DLLPUBLIC DrawVerFrameBorderSlanted(
33733 The function preserves all settings of the passed output device.
33735 -void DrawDiagFrameBorders(
33736 +SVX_DLLPUBLIC void DrawDiagFrameBorders(
33737 OutputDevice& rDev, /// The output device used to draw the frame border.
33739 const Rectangle& rRect, /// Rectangle for both diagonal frame borders.
33740 diff --git svx/inc/svx/msdffimp.hxx svx/inc/svx/msdffimp.hxx
33741 index 2b42844..781202a 100644
33742 --- svx/inc/svx/msdffimp.hxx
33743 +++ svx/inc/svx/msdffimp.hxx
33745 #include <tools/solar.h> // UINTXX
33746 #include <svtools/svarray.hxx>
33748 -#ifndef _SV_COLOR_HXX //autogen
33749 #include <tools/color.hxx>
33751 #include <tools/gen.hxx>
33752 #include <tools/table.hxx>
33753 #include <svx/msdffdef.hxx>
33757 #include <com/sun/star/beans/XPropertySet.hpp>
33758 -#include "svx/svxdllapi.h"
33759 +#include <svx/svxdllapi.h>
33761 #include <sot/storage.hxx>
33763 diff --git svx/inc/svx/obj3d.hxx svx/inc/svx/obj3d.hxx
33764 index 3b218ef..27dfc81 100644
33765 --- svx/inc/svx/obj3d.hxx
33766 +++ svx/inc/svx/obj3d.hxx
33767 @@ -92,8 +92,8 @@ class E3dObjList : public SdrObjList
33770 E3dObjList(SdrModel* pNewModel = 0, SdrPage* pNewPage = 0, E3dObjList* pNewUpList = 0);
33771 - E3dObjList(const E3dObjList& rSrcList);
33772 - virtual ~E3dObjList();
33773 + SVX_DLLPUBLIC E3dObjList(const E3dObjList& rSrcList);
33774 + SVX_DLLPUBLIC virtual ~E3dObjList();
33776 virtual void NbcInsertObject(SdrObject* pObj, ULONG nPos=CONTAINER_APPEND, const SdrInsertReason* pReason=NULL);
33777 virtual void InsertObject(SdrObject* pObj, ULONG nPos=CONTAINER_APPEND, const SdrInsertReason* pReason=NULL);
33778 diff --git svx/inc/svx/sdasaitm.hxx svx/inc/svx/sdasaitm.hxx
33779 index e3950a9..fa0c69b 100644
33780 --- svx/inc/svx/sdasaitm.hxx
33781 +++ svx/inc/svx/sdasaitm.hxx
33782 @@ -54,9 +54,9 @@ class SdrCustomShapeAdjustmentItem : public SfxPoolItem
33786 - SdrCustomShapeAdjustmentItem();
33787 + SVX_DLLPUBLIC SdrCustomShapeAdjustmentItem();
33788 SdrCustomShapeAdjustmentItem( SvStream& rIn, sal_uInt16 nVersion );
33789 - ~SdrCustomShapeAdjustmentItem();
33790 + SVX_DLLPUBLIC ~SdrCustomShapeAdjustmentItem();
33792 virtual int operator==( const SfxPoolItem& ) const;
33793 virtual SfxItemPresentation GetPresentation(SfxItemPresentation ePresentation,
33794 @@ -76,8 +76,8 @@ class SdrCustomShapeAdjustmentItem : public SfxPoolItem
33797 sal_uInt32 GetCount() const { return aAdjustmentValueList.Count(); };
33798 - const SdrCustomShapeAdjustmentValue& GetValue( sal_uInt32 nIndex ) const;
33799 - void SetValue( sal_uInt32 nIndex,
33800 + SVX_DLLPUBLIC const SdrCustomShapeAdjustmentValue& GetValue( sal_uInt32 nIndex ) const;
33801 + SVX_DLLPUBLIC void SetValue( sal_uInt32 nIndex,
33802 const SdrCustomShapeAdjustmentValue& rVal );
33805 diff --git svx/inc/svx/sdgcpitm.hxx svx/inc/svx/sdgcpitm.hxx
33806 index 041cfbd..7b8043c 100644
33807 --- svx/inc/svx/sdgcpitm.hxx
33808 +++ svx/inc/svx/sdgcpitm.hxx
33810 // SdrGrafCropItem -
33811 //------------------
33813 -class SdrGrafCropItem : public SvxGrfCrop
33814 +class SVX_DLLPUBLIC SdrGrafCropItem : public SvxGrfCrop
33818 diff --git svx/inc/svx/sdr/animation/objectanimator.hxx svx/inc/svx/sdr/animation/objectanimator.hxx
33819 index ad08f72..d222271 100644
33820 --- svx/inc/svx/sdr/animation/objectanimator.hxx
33821 +++ svx/inc/svx/sdr/animation/objectanimator.hxx
33822 @@ -48,7 +48,7 @@ namespace sdr
33824 // basic constructor and destructor
33825 primitiveAnimator();
33826 - virtual ~primitiveAnimator();
33827 + SVX_DLLPUBLIC virtual ~primitiveAnimator();
33829 } // end of namespace animation
33830 } // end of namespace sdr
33831 diff --git svx/inc/svx/sdr/animation/scheduler.hxx svx/inc/svx/sdr/animation/scheduler.hxx
33832 index f51379e..79104cb 100644
33833 --- svx/inc/svx/sdr/animation/scheduler.hxx
33834 +++ svx/inc/svx/sdr/animation/scheduler.hxx
33837 #include <sal/types.h>
33838 #include <vcl/timer.hxx>
33839 +#include <svx/svxdllapi.h>
33841 //////////////////////////////////////////////////////////////////////////////
33843 @@ -52,7 +53,7 @@ namespace sdr
33845 // constructor/destructor
33846 Event(sal_uInt32 nTime);
33847 - virtual ~Event();
33848 + SVX_DLLPUBLIC virtual ~Event();
33850 // access to mpNext
33851 Event* GetNext() const;
33852 @@ -83,7 +84,7 @@ namespace sdr
33854 // constructor/destructor
33856 - virtual ~EventList();
33857 + SVX_DLLPUBLIC virtual ~EventList();
33859 // insert/remove time dependent
33860 void Insert(Event* pNew);
33861 @@ -123,10 +124,10 @@ namespace sdr
33863 // constructor/destructor
33865 - virtual ~Scheduler();
33866 + SVX_DLLPUBLIC virtual ~Scheduler();
33868 // From baseclass Timer, the timeout call
33869 - virtual void Timeout();
33870 + SVX_DLLPUBLIC virtual void Timeout();
33873 sal_uInt32 GetTime();
33874 diff --git svx/inc/svx/sdr/primitive2d/primitiveFactory2d.hxx svx/inc/svx/sdr/primitive2d/primitiveFactory2d.hxx
33875 index 757b5f1..cdd3d62 100644
33876 --- svx/inc/svx/sdr/primitive2d/primitiveFactory2d.hxx
33877 +++ svx/inc/svx/sdr/primitive2d/primitiveFactory2d.hxx
33879 #include <cppuhelper/compbase1.hxx>
33880 #include <comphelper/broadcasthelper.hxx>
33882 +#include <svx/svxdllapi.h>
33884 //////////////////////////////////////////////////////////////////////////////
33885 // UNO API helper methods
33887 @@ -43,7 +45,7 @@ namespace drawinglayer
33889 namespace primitive2d
33891 - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL XPrimitiveFactory2DProvider_createInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( ::com::sun::star::uno::Exception );
33892 + SVX_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL XPrimitiveFactory2DProvider_createInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( ::com::sun::star::uno::Exception );
33893 } // end of namespace primitive2d
33894 } // end of namespace drawinglayer
33896 @@ -73,8 +75,8 @@ namespace drawinglayer
33897 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XPrimitive2D > > SAL_CALL createPrimitivesFromXDrawPage( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xDrawPage, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aParms ) throw (::com::sun::star::uno::RuntimeException);
33900 - static rtl::OUString getImplementationName_Static();
33901 - static com::sun::star::uno::Sequence< rtl::OUString > getSupportedServiceNames_Static();
33902 + SVX_DLLPUBLIC static rtl::OUString getImplementationName_Static();
33903 + SVX_DLLPUBLIC static com::sun::star::uno::Sequence< rtl::OUString > getSupportedServiceNames_Static();
33905 } // end of namespace primitive2d
33906 } // end of namespace drawinglayer
33907 diff --git svx/inc/svx/sdtfchim.hxx svx/inc/svx/sdtfchim.hxx
33908 index bda0890..a1c912b 100644
33909 --- svx/inc/svx/sdtfchim.hxx
33910 +++ svx/inc/svx/sdtfchim.hxx
33911 @@ -37,7 +37,7 @@ class SdrTextFixedCellHeightItem : public SfxBoolItem
33915 - SdrTextFixedCellHeightItem( BOOL bUseFixedCellHeight = FALSE );
33916 + SVX_DLLPUBLIC SdrTextFixedCellHeightItem( BOOL bUseFixedCellHeight = FALSE );
33917 SdrTextFixedCellHeightItem( SvStream & rStream, sal_uInt16 nVersion );
33919 virtual SfxItemPresentation GetPresentation(SfxItemPresentation ePresentation,
33920 diff --git svx/inc/svx/svdetc.hxx svx/inc/svx/svdetc.hxx
33921 index ef2b48b..1f2c461 100644
33922 --- svx/inc/svx/svdetc.hxx
33923 +++ svx/inc/svx/svdetc.hxx
33924 @@ -81,7 +81,7 @@ friend class SdrAttrObj;
33925 Fraction aMapFraction;
33928 - SVX_DLLPRIVATE static SdrEngineDefaults& GetDefaults();
33929 + static SdrEngineDefaults& GetDefaults();
33932 SdrEngineDefaults();
33933 @@ -272,7 +272,7 @@ protected:
33935 SdrLinkList(): aList(1024,4,4) {}
33936 ~SdrLinkList() { Clear(); }
33938 + SVX_DLLPUBLIC void Clear();
33939 unsigned GetLinkCount() const { return (unsigned)aList.Count(); }
33940 Link& GetLink(unsigned nNum) { return *((Link*)(aList.GetObject(nNum))); }
33941 const Link& GetLink(unsigned nNum) const { return *((Link*)(aList.GetObject(nNum))); }
33942 @@ -299,7 +299,7 @@ class OLEObjCache : public Container
33947 + SVX_DLLPUBLIC ~OLEObjCache();
33949 void SetSize(ULONG nNewSize);
33950 void InsertObj(SdrOle2Obj* pObj);
33951 diff --git svx/inc/svx/svdmodel.hxx svx/inc/svx/svdmodel.hxx
33952 index 959ccdc..c1741d3 100644
33953 --- svx/inc/svx/svdmodel.hxx
33954 +++ svx/inc/svx/svdmodel.hxx
33955 @@ -688,7 +688,7 @@ public:
33956 void SetModelStorage( SotStorage* pStor ) { pModelStorage = pStor; }
33958 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getUnoModel();
33959 - void setUnoModel( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xModel ) { mxUnoModel = xModel; }
33960 + void setUnoModel( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xModel );
33962 // these functions are used by the api to disable repaints during a
33963 // set of api calls.
33964 diff --git svx/inc/svx/svdoashp.hxx svx/inc/svx/svdoashp.hxx
33965 index 9a24cf4..10b5103 100644
33966 --- svx/inc/svx/svdoashp.hxx
33967 +++ svx/inc/svx/svdoashp.hxx
33968 @@ -105,7 +105,7 @@ private:
33969 // #i37011# render geometry shadow
33970 SdrObject* mpLastShadowGeometry;
33972 - static SVX_DLLPRIVATE com::sun::star::uno::Reference< com::sun::star::drawing::XCustomShapeEngine > GetCustomShapeEngine( const SdrObjCustomShape* pCustomShape );
33973 + static com::sun::star::uno::Reference< com::sun::star::drawing::XCustomShapeEngine > GetCustomShapeEngine( const SdrObjCustomShape* pCustomShape );
33975 // SVX_DLLPRIVATE com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::drawing::XCustomShapeHandle > >
33976 // SdrObjCustomShape::GetInteraction( const SdrObjCustomShape* pCustomShape ) const;
33977 @@ -134,7 +134,7 @@ public:
33978 const SdrObject* GetSdrObjectShadowFromCustomShape() const;
33979 sal_Bool GetTextBounds( Rectangle& rTextBound ) const;
33980 sal_Bool IsTextPath() const;
33981 - static SVX_DLLPRIVATE basegfx::B2DPolyPolygon GetLineGeometry( const SdrObjCustomShape* pCustomShape, const sal_Bool bBezierAllowed );
33982 + static basegfx::B2DPolyPolygon GetLineGeometry( const SdrObjCustomShape* pCustomShape, const sal_Bool bBezierAllowed );
33986 diff --git svx/inc/svx/svdoedge.hxx svx/inc/svx/svdoedge.hxx
33987 index 352befd..4947307 100644
33988 --- svx/inc/svx/svdoedge.hxx
33989 +++ svx/inc/svx/svdoedge.hxx
33990 @@ -73,7 +73,7 @@ protected:
33993 SdrObjConnection() { ResetVars(); }
33994 - ~SdrObjConnection();
33995 + SVX_DLLPUBLIC ~SdrObjConnection();
33998 FASTBOOL TakeGluePoint(SdrGluePoint& rGP, FASTBOOL bSetAbsolutePos) const;
33999 diff --git svx/inc/svx/svdotext.hxx svx/inc/svx/svdotext.hxx
34000 index 18c4a42..ea2588a 100644
34001 --- svx/inc/svx/svdotext.hxx
34002 +++ svx/inc/svx/svdotext.hxx
34003 @@ -263,7 +263,7 @@ protected:
34004 // flag for preventing recursive onEditOutlinerStatusEvent calls
34005 BOOL mbInDownScale : 1;
34007 - SVX_DLLPRIVATE SdrOutliner& ImpGetDrawOutliner() const;
34008 + SdrOutliner& ImpGetDrawOutliner() const;
34011 SVX_DLLPRIVATE void ImpCheckMasterCachable();
34012 diff --git svx/inc/svx/svdpntv.hxx svx/inc/svx/svdpntv.hxx
34013 index c295be3..ba64d65 100644
34014 --- svx/inc/svx/svdpntv.hxx
34015 +++ svx/inc/svx/svdpntv.hxx
34016 @@ -109,7 +109,7 @@ namespace sdr
34017 ////////////////////////////////////////////////////////////////////////////////////////////////////
34020 -class SvxViewHint : public SfxHint
34021 +class SVX_DLLPUBLIC SvxViewHint : public SfxHint
34024 enum HintType { SVX_HINT_VIEWCHANGED };
34025 diff --git svx/inc/svx/svdundo.hxx svx/inc/svx/svdundo.hxx
34026 index 0ec1e0c..2ec497b 100644
34027 --- svx/inc/svx/svdundo.hxx
34028 +++ svx/inc/svx/svdundo.hxx
34029 @@ -754,7 +754,7 @@ protected:
34030 SdrUndoPageMasterPage(SdrPage& rChangedPage);
34033 - virtual ~SdrUndoPageMasterPage();
34034 + SVX_DLLPUBLIC virtual ~SdrUndoPageMasterPage();
34037 //************************************************************
34038 diff --git svx/inc/svx/svx3ditems.hxx svx/inc/svx/svx3ditems.hxx
34039 index e003557..743ea3a 100644
34040 --- svx/inc/svx/svx3ditems.hxx
34041 +++ svx/inc/svx/svx3ditems.hxx
34042 @@ -48,12 +48,12 @@ public:
34044 class Svx3DBackscaleItem : public SfxUInt16Item {
34046 - Svx3DBackscaleItem(sal_uInt16 nVal = 100);
34047 + SVX_DLLPUBLIC Svx3DBackscaleItem(sal_uInt16 nVal = 100);
34050 class Svx3DDepthItem : public SfxUInt32Item {
34052 - Svx3DDepthItem(sal_uInt32 nVal = 1000);
34053 + SVX_DLLPUBLIC Svx3DDepthItem(sal_uInt32 nVal = 1000);
34056 class SVX_DLLPUBLIC Svx3DHorizontalSegmentsItem : public SfxUInt32Item {
34057 @@ -63,12 +63,12 @@ public:
34059 class Svx3DVerticalSegmentsItem : public SfxUInt32Item {
34061 - Svx3DVerticalSegmentsItem(sal_uInt32 nVal = 24);
34062 + SVX_DLLPUBLIC Svx3DVerticalSegmentsItem(sal_uInt32 nVal = 24);
34065 class Svx3DEndAngleItem : public SfxUInt32Item {
34067 - Svx3DEndAngleItem(sal_uInt32 nVal = 3600);
34068 + SVX_DLLPUBLIC Svx3DEndAngleItem(sal_uInt32 nVal = 3600);
34071 class SVX_DLLPUBLIC Svx3DDoubleSidedItem : public SfxBoolItem {
34072 @@ -85,29 +85,29 @@ public:
34073 virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
34076 -class Svx3DNormalsKindItem : public SfxUInt16Item {
34077 +class SVX_DLLPUBLIC Svx3DNormalsKindItem : public SfxUInt16Item {
34079 Svx3DNormalsKindItem(sal_uInt16 nVal = 0);
34081 // use drawing::NormalsKind
34082 - virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34083 - virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34084 - virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34085 + SVX_DLLPRIVATE virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34086 + SVX_DLLPRIVATE virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34087 + SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34090 class Svx3DNormalsInvertItem : public SfxBoolItem {
34092 - Svx3DNormalsInvertItem(BOOL bVal = 0);
34093 + SVX_DLLPUBLIC Svx3DNormalsInvertItem(BOOL bVal = 0);
34096 -class Svx3DTextureProjectionXItem : public SfxUInt16Item {
34097 +class SVX_DLLPUBLIC Svx3DTextureProjectionXItem : public SfxUInt16Item {
34099 Svx3DTextureProjectionXItem(sal_uInt16 nVal = 0);
34101 // use drawing::TextureProjectionMode
34102 - virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34103 - virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34104 - virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34105 + SVX_DLLPRIVATE virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34106 + SVX_DLLPRIVATE virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34107 + SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34110 class SVX_DLLPUBLIC Svx3DTextureProjectionYItem : public SfxUInt16Item {
34111 @@ -122,7 +122,7 @@ public:
34113 class Svx3DShadow3DItem : public SfxBoolItem {
34115 - Svx3DShadow3DItem(BOOL bVal = 0);
34116 + SVX_DLLPUBLIC Svx3DShadow3DItem(BOOL bVal = 0);
34119 class Svx3DMaterialColorItem : public SvxColorItem {
34120 @@ -132,68 +132,68 @@ public:
34122 class Svx3DMaterialEmissionItem : public SvxColorItem {
34124 - Svx3DMaterialEmissionItem(const Color& rCol = Color(0x00000000));
34125 + SVX_DLLPUBLIC Svx3DMaterialEmissionItem(const Color& rCol = Color(0x00000000));
34128 class Svx3DMaterialSpecularItem : public SvxColorItem {
34130 - Svx3DMaterialSpecularItem(const Color& rCol = Color(0x00ffffff));
34131 + SVX_DLLPUBLIC Svx3DMaterialSpecularItem(const Color& rCol = Color(0x00ffffff));
34134 class Svx3DMaterialSpecularIntensityItem : public SfxUInt16Item {
34136 - Svx3DMaterialSpecularIntensityItem(sal_uInt16 nVal = 15);
34137 + SVX_DLLPUBLIC Svx3DMaterialSpecularIntensityItem(sal_uInt16 nVal = 15);
34140 -class Svx3DTextureKindItem : public SfxUInt16Item {
34141 +class SVX_DLLPUBLIC Svx3DTextureKindItem : public SfxUInt16Item {
34143 Svx3DTextureKindItem(sal_uInt16 nVal = 3);
34145 // use drawing::TextureKind
34146 - virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34147 - virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34148 - virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34149 + SVX_DLLPRIVATE virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34150 + SVX_DLLPRIVATE virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34151 + SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34154 -class Svx3DTextureModeItem : public SfxUInt16Item {
34155 +class SVX_DLLPUBLIC Svx3DTextureModeItem : public SfxUInt16Item {
34157 Svx3DTextureModeItem(sal_uInt16 nVal = 2);
34159 // use drawing:TextureMode
34160 - virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34161 - virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34162 - virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34163 + SVX_DLLPRIVATE virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34164 + SVX_DLLPRIVATE virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34165 + SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34168 class Svx3DTextureFilterItem : public SfxBoolItem {
34170 - Svx3DTextureFilterItem(BOOL bVal = 0);
34171 + SVX_DLLPUBLIC Svx3DTextureFilterItem(BOOL bVal = 0);
34174 // Svx3D _3DSCENE_ Items
34175 -class Svx3DPerspectiveItem : public SfxUInt16Item {
34176 +class SVX_DLLPUBLIC Svx3DPerspectiveItem : public SfxUInt16Item {
34178 Svx3DPerspectiveItem(sal_uInt16 nVal = (sal_uInt16)PR_PERSPECTIVE);
34180 // use drawing::ProjectionMode
34181 - virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34182 - virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34183 - virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34184 + SVX_DLLPRIVATE virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34185 + SVX_DLLPRIVATE virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34186 + SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34189 class Svx3DDistanceItem : public SfxUInt32Item {
34191 - Svx3DDistanceItem(sal_uInt32 nVal = 100);
34192 + SVX_DLLPUBLIC Svx3DDistanceItem(sal_uInt32 nVal = 100);
34195 class Svx3DFocalLengthItem : public SfxUInt32Item {
34197 - Svx3DFocalLengthItem(sal_uInt32 nVal = 100);
34198 + SVX_DLLPUBLIC Svx3DFocalLengthItem(sal_uInt32 nVal = 100);
34201 class Svx3DTwoSidedLightingItem : public SfxBoolItem {
34203 - Svx3DTwoSidedLightingItem(BOOL bVal = 0);
34204 + SVX_DLLPUBLIC Svx3DTwoSidedLightingItem(BOOL bVal = 0);
34207 class SVX_DLLPUBLIC Svx3DLightcolor1Item : public SvxColorItem {
34208 @@ -323,17 +323,17 @@ public:
34210 class Svx3DShadowSlantItem : public SfxUInt16Item {
34212 - Svx3DShadowSlantItem(sal_uInt16 nVal = 0);
34213 + SVX_DLLPUBLIC Svx3DShadowSlantItem(sal_uInt16 nVal = 0);
34216 -class Svx3DShadeModeItem : public SfxUInt16Item {
34217 +class SVX_DLLPUBLIC Svx3DShadeModeItem : public SfxUInt16Item {
34219 Svx3DShadeModeItem(sal_uInt16 nVal = 2);
34221 // use drawing::ShadeMode
34222 - virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34223 - virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34224 - virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34225 + SVX_DLLPRIVATE virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
34226 + SVX_DLLPRIVATE virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
34227 + SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
34230 //////////////////////////////////////////////////////////////////////////////
34231 @@ -362,19 +362,19 @@ public:
34234 // #107245# Item to replace bExtrudeCloseFront and bLatheCloseFront
34235 -class Svx3DCloseFrontItem : public SfxBoolItem {
34236 +class SVX_DLLPUBLIC Svx3DCloseFrontItem : public SfxBoolItem {
34238 Svx3DCloseFrontItem(BOOL bVal = 1);
34239 - virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
34240 - virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
34241 + SVX_DLLPRIVATE virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
34242 + SVX_DLLPRIVATE virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
34245 // #107245# Item to replace bExtrudeCloseBack and bLatheCloseBack
34246 -class Svx3DCloseBackItem : public SfxBoolItem {
34247 +class SVX_DLLPUBLIC Svx3DCloseBackItem : public SfxBoolItem {
34249 Svx3DCloseBackItem(BOOL bVal = 1);
34250 - virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
34251 - virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
34252 + SVX_DLLPRIVATE virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
34253 + SVX_DLLPRIVATE virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
34256 #endif // _SVX3DITEMS_HXX
34257 diff --git svx/inc/svx/sxfiitm.hxx svx/inc/svx/sxfiitm.hxx
34258 index 703c24f..45d4f68 100644
34259 --- svx/inc/svx/sxfiitm.hxx
34260 +++ svx/inc/svx/sxfiitm.hxx
34262 class SdrFractionItem: public SfxPoolItem {
34266 + TYPEINFO_VISIBILITY( SVX_DLLPUBLIC );
34267 SdrFractionItem(USHORT nId=0): SfxPoolItem(nId) {}
34268 SdrFractionItem(USHORT nId, const Fraction& rVal): SfxPoolItem(nId), nValue(rVal) {}
34269 SdrFractionItem(USHORT nId, SvStream& rIn);
34270 diff --git svx/inc/svx/unoprov.hxx svx/inc/svx/unoprov.hxx
34271 index bafc403..0dd07ba 100644
34272 --- svx/inc/svx/unoprov.hxx
34273 +++ svx/inc/svx/unoprov.hxx
34274 @@ -161,7 +161,7 @@ namespace comphelper { class PropertySetInfo; }
34275 class SvxPropertySetInfoPool
34278 - static comphelper::PropertySetInfo* getOrCreate( sal_Int32 nServiceId ) throw();
34279 + SVX_DLLPUBLIC static comphelper::PropertySetInfo* getOrCreate( sal_Int32 nServiceId ) throw();
34282 static comphelper::PropertySetInfo* mpInfos[SVXUNO_SERVICEID_LASTID+1];
34283 diff --git svx/inc/svx/unotext.hxx svx/inc/svx/unotext.hxx
34284 index b1ed690..8f4d716 100644
34285 --- svx/inc/svx/unotext.hxx
34286 +++ svx/inc/svx/unotext.hxx
34287 @@ -664,7 +664,7 @@ public:
34291 -const SfxItemPropertyMap* ImplGetSvxUnoOutlinerTextCursorPropertyMap();
34292 -const SfxItemPropertyMap* ImplGetSvxTextPortionPropertyMap();
34293 +SVX_DLLPUBLIC const SfxItemPropertyMap* ImplGetSvxUnoOutlinerTextCursorPropertyMap();
34294 +SVX_DLLPUBLIC const SfxItemPropertyMap* ImplGetSvxTextPortionPropertyMap();
34297 diff --git svx/inc/svx/xflbckit.hxx svx/inc/svx/xflbckit.hxx
34298 index d541450..3b644e4 100644
34299 --- svx/inc/svx/xflbckit.hxx
34300 +++ svx/inc/svx/xflbckit.hxx
34301 @@ -46,7 +46,7 @@ class XFillBackgroundItem : public SfxBoolItem
34305 - XFillBackgroundItem( BOOL bFill = FALSE );
34306 + SVX_DLLPUBLIC XFillBackgroundItem( BOOL bFill = FALSE );
34307 XFillBackgroundItem( SvStream& rIn );
34310 diff --git svx/inc/svx/xflbmpit.hxx svx/inc/svx/xflbmpit.hxx
34311 index 495cde4..950c629 100644
34312 --- svx/inc/svx/xflbmpit.hxx
34313 +++ svx/inc/svx/xflbmpit.hxx
34314 @@ -43,7 +43,7 @@ class XFillBmpPosItem : public SfxEnumItem
34318 - XFillBmpPosItem( RECT_POINT eRP = RP_MM );
34319 + SVX_DLLPUBLIC XFillBmpPosItem( RECT_POINT eRP = RP_MM );
34320 XFillBmpPosItem( SvStream& rIn );
34322 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
34323 diff --git svx/inc/svx/xflbmsli.hxx svx/inc/svx/xflbmsli.hxx
34324 index 0575203..fdf941d 100644
34325 --- svx/inc/svx/xflbmsli.hxx
34326 +++ svx/inc/svx/xflbmsli.hxx
34327 @@ -43,7 +43,7 @@ class XFillBmpSizeLogItem : public SfxBoolItem
34331 - XFillBmpSizeLogItem( BOOL bLog = TRUE );
34332 + SVX_DLLPUBLIC XFillBmpSizeLogItem( BOOL bLog = TRUE );
34333 XFillBmpSizeLogItem( SvStream& rIn );
34335 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
34336 diff --git svx/inc/svx/xflbmsxy.hxx svx/inc/svx/xflbmsxy.hxx
34337 index b4404f8..39f1f67 100644
34338 --- svx/inc/svx/xflbmsxy.hxx
34339 +++ svx/inc/svx/xflbmsxy.hxx
34340 @@ -43,7 +43,7 @@ class XFillBmpSizeXItem : public SfxMetricItem
34344 - XFillBmpSizeXItem( long nSizeX = 0 );
34345 + SVX_DLLPUBLIC XFillBmpSizeXItem( long nSizeX = 0 );
34346 XFillBmpSizeXItem( SvStream& rIn );
34348 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
34349 @@ -70,7 +70,7 @@ class XFillBmpSizeYItem : public SfxMetricItem
34353 - XFillBmpSizeYItem( long nSizeY = 0 );
34354 + SVX_DLLPUBLIC XFillBmpSizeYItem( long nSizeY = 0 );
34355 XFillBmpSizeYItem( SvStream& rIn );
34357 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
34358 diff --git svx/inc/svx/xflboxy.hxx svx/inc/svx/xflboxy.hxx
34359 index a2116f3..d6c8f7d 100644
34360 --- svx/inc/svx/xflboxy.hxx
34361 +++ svx/inc/svx/xflboxy.hxx
34362 @@ -43,7 +43,7 @@ class XFillBmpPosOffsetXItem : public SfxUInt16Item
34366 - XFillBmpPosOffsetXItem( USHORT nOffPosX = 0 );
34367 + SVX_DLLPUBLIC XFillBmpPosOffsetXItem( USHORT nOffPosX = 0 );
34368 XFillBmpPosOffsetXItem( SvStream& rIn );
34370 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
34371 @@ -66,7 +66,7 @@ class XFillBmpPosOffsetYItem : public SfxUInt16Item
34375 - XFillBmpPosOffsetYItem( USHORT nOffPosY = 0 );
34376 + SVX_DLLPUBLIC XFillBmpPosOffsetYItem( USHORT nOffPosY = 0 );
34377 XFillBmpPosOffsetYItem( SvStream& rIn );
34379 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
34380 diff --git svx/inc/svx/xflbtoxy.hxx svx/inc/svx/xflbtoxy.hxx
34381 index 336bb87..0830015 100644
34382 --- svx/inc/svx/xflbtoxy.hxx
34383 +++ svx/inc/svx/xflbtoxy.hxx
34384 @@ -43,7 +43,7 @@ class XFillBmpTileOffsetXItem : public SfxUInt16Item
34388 - XFillBmpTileOffsetXItem( USHORT nOffX = 0 );
34389 + SVX_DLLPUBLIC XFillBmpTileOffsetXItem( USHORT nOffX = 0 );
34390 XFillBmpTileOffsetXItem( SvStream& rIn );
34392 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
34393 @@ -66,7 +66,7 @@ class XFillBmpTileOffsetYItem : public SfxUInt16Item
34397 - XFillBmpTileOffsetYItem( USHORT nOffX = 0 );
34398 + SVX_DLLPUBLIC XFillBmpTileOffsetYItem( USHORT nOffX = 0 );
34399 XFillBmpTileOffsetYItem( SvStream& rIn );
34401 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
34402 diff --git svx/inc/svx/xsflclit.hxx svx/inc/svx/xsflclit.hxx
34403 index 788950c..ff9aba2 100644
34404 --- svx/inc/svx/xsflclit.hxx
34405 +++ svx/inc/svx/xsflclit.hxx
34406 @@ -42,7 +42,7 @@ public:
34408 XSecondaryFillColorItem() {}
34409 XSecondaryFillColorItem(long nIndex, const Color& rTheColor);
34410 - XSecondaryFillColorItem(const String& rName, const Color& rTheColor);
34411 + SVX_DLLPUBLIC XSecondaryFillColorItem(const String& rName, const Color& rTheColor);
34412 XSecondaryFillColorItem(SvStream& rIn);
34414 virtual SfxPoolItem* Clone(SfxItemPool* pPool = 0) const;
34415 diff --git svx/inc/unoapi.hxx svx/inc/unoapi.hxx
34416 index 527bae4..09df9ff 100644
34417 --- svx/inc/unoapi.hxx
34418 +++ svx/inc/unoapi.hxx
34419 @@ -97,12 +97,12 @@ SVX_DLLPUBLIC sal_Bool SvxFieldUnitToMeasureUnit( const short nVcl, short& eApi
34420 /** if the given name is a predefined name for the current language it is replaced by
34421 the corresponding api name.
34423 -void SvxUnogetApiNameForItem( const sal_Int16 nWhich, const String& rInternalName, rtl::OUString& rApiName ) throw();
34424 +SVX_DLLPUBLIC void SvxUnogetApiNameForItem( const sal_Int16 nWhich, const String& rInternalName, rtl::OUString& rApiName ) throw();
34426 /** if the given name is a predefined api name it is replaced by the predefined name
34427 for the current language.
34429 -void SvxUnogetInternalNameForItem( const sal_Int16 nWhich, const rtl::OUString& rApiName, String& rInternalName ) throw();
34430 +SVX_DLLPUBLIC void SvxUnogetInternalNameForItem( const sal_Int16 nWhich, const rtl::OUString& rApiName, String& rInternalName ) throw();
34432 /** returns the which id for the given property name. This only works for
34433 properties of shapes (map SVXMAP_SHAPE is used for searching)
34434 @@ -114,10 +114,10 @@ void SvxUnogetInternalNameForItem( const sal_Int16 nWhich, const rtl::OUString&
34435 SVX_DLLPUBLIC sal_Int16 SvxUnoGetWhichIdForNamedProperty( const ::rtl::OUString & rPropName );
34437 /** converts the given any with a metric to 100th/mm if needed */
34438 -void SvxUnoConvertToMM( const SfxMapUnit eSourceMapUnit, com::sun::star::uno::Any & rMetric ) throw();
34439 +SVX_DLLPUBLIC void SvxUnoConvertToMM( const SfxMapUnit eSourceMapUnit, com::sun::star::uno::Any & rMetric ) throw();
34441 /** converts the given any with a metric from 100th/mm to the given metric if needed */
34442 -void SvxUnoConvertFromMM( const SfxMapUnit eDestinationMapUnit, com::sun::star::uno::Any & rMetric ) throw();
34443 +SVX_DLLPUBLIC void SvxUnoConvertFromMM( const SfxMapUnit eDestinationMapUnit, com::sun::star::uno::Any & rMetric ) throw();
34445 #endif // _SVX_UNOAPI_HXX_
34447 diff --git svx/inc/unoedhlp.hxx svx/inc/unoedhlp.hxx
34448 index 9cac7c7..74991a3 100644
34449 --- svx/inc/unoedhlp.hxx
34450 +++ svx/inc/unoedhlp.hxx
34451 @@ -49,7 +49,7 @@ class EditEngine;
34452 case denotes the destination position, the two parameters the
34453 start and the end of the moved paragraph range.
34455 -class SvxEditSourceHint : public TextHint
34456 +class SVX_DLLPUBLIC SvxEditSourceHint : public TextHint
34460 diff --git svx/inc/unolingu.hxx svx/inc/unolingu.hxx
34461 index c81a389..b10353e 100644
34462 --- svx/inc/unolingu.hxx
34463 +++ svx/inc/unolingu.hxx
34464 @@ -67,7 +67,7 @@ class SvxLinguConfigUpdate
34468 - static void UpdateAll( sal_Bool bForceCheck = sal_False );
34469 + SVX_DLLPUBLIC static void UpdateAll( sal_Bool bForceCheck = sal_False );
34470 static BOOL IsNeedUpdateAll( sal_Bool bForceCheck = sal_False );
34473 diff --git svx/inc/xexch.hxx svx/inc/xexch.hxx
34474 index 46a0d55..7568186 100644
34475 --- svx/inc/xexch.hxx
34476 +++ svx/inc/xexch.hxx
34477 @@ -60,7 +60,7 @@ public:
34478 // Zuweisungsoperator
34479 XFillExchangeData& operator=( const XFillExchangeData& rXFillExchangeData );
34481 - friend SvStream& operator<<( SvStream& rOStm, const XFillExchangeData& rXFillExchangeData );
34482 + SVX_DLLPUBLIC friend SvStream& operator<<( SvStream& rOStm, const XFillExchangeData& rXFillExchangeData );
34483 SVX_DLLPUBLIC friend SvStream& operator>>( SvStream& rIStm, XFillExchangeData& rXFillExchangeData );
34485 static ULONG RegisterClipboardFormatName();
34486 diff --git svx/inc/xmlgrhlp.hxx svx/inc/xmlgrhlp.hxx
34487 index 01ba9b5..d15853f 100644
34488 --- svx/inc/xmlgrhlp.hxx
34489 +++ svx/inc/xmlgrhlp.hxx
34490 @@ -142,9 +142,9 @@ namespace svx
34491 uses eCreateMode == GRAPHICHELPER_MODE_READ, bDirect == TRUE in
34494 -::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SvXMLGraphicImportHelper_createInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( ::com::sun::star::uno::Exception );
34495 -::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL SvXMLGraphicImportHelper_getSupportedServiceNames() throw();
34496 -::rtl::OUString SAL_CALL SvXMLGraphicImportHelper_getImplementationName() throw();
34497 +SVX_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SvXMLGraphicImportHelper_createInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( ::com::sun::star::uno::Exception );
34498 +SVX_DLLPUBLIC ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL SvXMLGraphicImportHelper_getSupportedServiceNames() throw();
34499 +SVX_DLLPUBLIC ::rtl::OUString SAL_CALL SvXMLGraphicImportHelper_getImplementationName() throw();
34501 /** Create this with createInstanceWithArguments. service name
34502 "com.sun.star.comp.Svx.GraphicExportHelper", one argument which is the
34503 @@ -158,9 +158,9 @@ namespace svx
34504 uses eCreateMode == GRAPHICHELPER_MODE_WRITE, bDirect == TRUE in
34507 -::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SvXMLGraphicExportHelper_createInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( ::com::sun::star::uno::Exception );
34508 -::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL SvXMLGraphicExportHelper_getSupportedServiceNames() throw();
34509 -::rtl::OUString SAL_CALL SvXMLGraphicExportHelper_getImplementationName() throw();
34510 +SVX_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SvXMLGraphicExportHelper_createInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( ::com::sun::star::uno::Exception );
34511 +SVX_DLLPUBLIC ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL SvXMLGraphicExportHelper_getSupportedServiceNames() throw();
34512 +SVX_DLLPUBLIC ::rtl::OUString SAL_CALL SvXMLGraphicExportHelper_getImplementationName() throw();
34516 diff --git svx/inc/xoutbmp.hxx svx/inc/xoutbmp.hxx
34517 index 498c0bd..d1f7afe 100644
34518 --- svx/inc/xoutbmp.hxx
34519 +++ svx/inc/xoutbmp.hxx
34520 @@ -95,6 +95,6 @@ public:
34521 // - DitherBitmap -
34522 // ----------------
34524 -BOOL DitherBitmap( Bitmap& rBitmap );
34525 +SVX_DLLPUBLIC BOOL DitherBitmap( Bitmap& rBitmap );
34527 #endif // _XOUTBMP_HXX
34528 diff --git svx/prj/d.lst svx/prj/d.lst
34529 index fcd4d8b..119a6ea 100644
34532 @@ -10,7 +10,7 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\global\accelerator\es
34533 ..\%__SRC%\inc\svxslots.ilb %_DEST%\inc%_EXT%\svxslots.ilb
34534 ..\%__SRC%\inc\*.ilb* %_DEST%\inc%_EXT%\*.ilb*
34535 ..\%__SRC%\lib\lib*.* %_DEST%\lib%_EXT%\lib*.*
34536 -..\%__SRC%\lib\isvx.lib %_DEST%\lib%_EXT%\isvx.lib
34537 +..\%__SRC%\lib\isvx*.lib %_DEST%\lib%_EXT%\isvx*.lib
34538 ..\%__SRC%\bin\gengal* %_DEST%\bin%_EXT%\gengal*
34539 ..\%__SRC%\bin\gengalrc %_DEST%\bin%_EXT%\gengal.ini
34540 ..\%__SRC%\bin\cui*.dll %_DEST%\bin%_EXT%\cui*.dll
34541 diff --git svx/source/accessibility/makefile.mk svx/source/accessibility/makefile.mk
34542 index c3a93ea..c69fe7d 100755
34543 --- svx/source/accessibility/makefile.mk
34544 +++ svx/source/accessibility/makefile.mk
34545 @@ -33,6 +33,7 @@ PRJ=..$/..
34548 TARGET=accessibility
34550 ENABLE_EXCEPTIONS=TRUE
34552 # --- Settings -----------------------------------------------------
34553 @@ -42,7 +43,12 @@ ENABLE_EXCEPTIONS=TRUE
34555 # --- Files --------------------------------------------------------
34558 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
34560 + $(SLO)$/AccessibleStringWrap.obj
34562 +LIB2TARGET= $(SLB)$/$(TARGET).lib
34564 $(SLO)$/charmapacc.obj \
34565 $(SLO)$/svxrectctaccessiblecontext.obj \
34566 $(SLO)$/GraphCtlAccessibleContext.obj \
34567 @@ -63,13 +69,14 @@ SLOFILES = \
34568 $(SLO)$/AccessibleStaticTextBase.obj \
34569 $(SLO)$/AccessibleParaManager.obj \
34570 $(SLO)$/AccessibleEditableTextPara.obj \
34571 - $(SLO)$/AccessibleStringWrap.obj \
34572 $(SLO)$/AccessibleImageBullet.obj \
34573 $(SLO)$/ShapeTypeHandler.obj \
34574 $(SLO)$/SvxShapeTypes.obj \
34575 $(SLO)$/AccessibleControlShape.obj \
34576 $(SLO)$/DGColorNameLookUp.obj \
34577 $(SLO)$/AccessibleFrameSelector.obj
34579 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
34581 SRS2NAME = accessibility
34582 SRC2FILES = accessibility.src
34583 diff --git svx/source/customshapes/EnhancedCustomShape2d.hxx svx/source/customshapes/EnhancedCustomShape2d.hxx
34584 index 349c5f1..9d0f04b 100644
34585 --- svx/source/customshapes/EnhancedCustomShape2d.hxx
34586 +++ svx/source/customshapes/EnhancedCustomShape2d.hxx
34587 @@ -32,28 +32,19 @@
34588 #define _ENHANCEDCUSTOMSHAPE2D_HXX
34590 #include <svx/msdffdef.hxx>
34591 -#include <svx/msdffimp.hxx>
34592 #include <svx/sdasitm.hxx>
34593 #include <com/sun/star/uno/Sequence.h>
34594 -#ifndef _com_sun_star_beans_PropertyValues_hpp__
34595 #include <com/sun/star/beans/PropertyValues.hpp>
34597 #include <com/sun/star/awt/Point.hpp>
34598 #include <svtools/itemset.hxx>
34599 -#ifndef __com_sun_star_drawing_EnhancedCustomShapeParameterPair_hpp__
34600 #include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
34602 #include <com/sun/star/drawing/EnhancedCustomShapeSegment.hpp>
34603 #include <com/sun/star/drawing/EnhancedCustomShapeParameter.hpp>
34604 -#ifndef __COM_SUN_STAR_DRAWING_ENHANCEDCUSTOMSHAPETEXTFRAME_HPP__
34605 #include <com/sun/star/drawing/EnhancedCustomShapeTextFrame.hpp>
34607 #include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
34608 #include <EnhancedCustomShapeFunctionParser.hxx>
34610 -#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
34611 #include <boost/shared_ptr.hpp>
34615 #define DFF_CUSTOMSHAPE_FLIP_V 1
34616 @@ -84,6 +75,7 @@ class SvxMSDffAdjustmentHandle;
34617 // between X_RANGE and Y_RANGE
34621 class EnhancedCustomShape2d : public SfxItemSet
34623 SdrObject* pCustomShapeObj;
34624 @@ -164,17 +156,17 @@ class EnhancedCustomShape2d : public SfxItemSet
34625 sal_Bool IsFlipHorz() { return bFlipH; };
34626 sal_Int32 GetRotateAngle() { return nRotateAngle; };
34628 - SdrObject* CreateLineGeometry();
34629 - SdrObject* CreateObject( sal_Bool bLineGeometryNeededOnly );
34630 - void ApplyGluePoints( SdrObject* pObj );
34631 - Rectangle GetTextRect() const;
34632 + SVX_DLLPUBLIC SdrObject* CreateLineGeometry();
34633 + SVX_DLLPUBLIC SdrObject* CreateObject( sal_Bool bLineGeometryNeededOnly );
34634 + SVX_DLLPUBLIC void ApplyGluePoints( SdrObject* pObj );
34635 + SVX_DLLPUBLIC Rectangle GetTextRect() const;
34637 - sal_uInt32 GetHdlCount() const;
34638 - sal_Bool GetHandlePosition( const sal_uInt32 nIndex, Point& rReturnPosition ) const;
34639 - sal_Bool SetHandleControllerPosition( const sal_uInt32 nIndex, const com::sun::star::awt::Point& rPosition );
34640 + SVX_DLLPUBLIC sal_uInt32 GetHdlCount() const;
34641 + SVX_DLLPUBLIC sal_Bool GetHandlePosition( const sal_uInt32 nIndex, Point& rReturnPosition ) const;
34642 + SVX_DLLPUBLIC sal_Bool SetHandleControllerPosition( const sal_uInt32 nIndex, const com::sun::star::awt::Point& rPosition );
34644 - EnhancedCustomShape2d( SdrObject* pSdrObjCustomShape );
34645 - ~EnhancedCustomShape2d();
34646 + SVX_DLLPUBLIC EnhancedCustomShape2d( SdrObject* pSdrObjCustomShape );
34647 + SVX_DLLPUBLIC ~EnhancedCustomShape2d();
34651 @@ -198,15 +190,15 @@ class EnhancedCustomShape2d : public SfxItemSet
34652 double GetEquationValueAsDouble( const sal_Int32 nIndex ) const;
34653 sal_Int32 GetAdjustValueAsInteger( const sal_Int32 nIndex, const sal_Int32 nDefault = 0 ) const;
34655 - static rtl::OUString GetEquation( const sal_uInt16 nFlags, sal_Int16 nPara1, sal_Int16 nPara2, sal_Int16 nPara3 );
34656 + SVX_DLLPUBLIC static rtl::OUString GetEquation( const sal_uInt16 nFlags, sal_Int16 nPara1, sal_Int16 nPara2, sal_Int16 nPara3 );
34658 static void AppendEnhancedCustomShapeEquationParameter( rtl::OUString& rParameter, const sal_Int16 nPara, const sal_Bool bIsSpecialValue );
34660 static void SetEnhancedCustomShapeEquationParameter( com::sun::star::drawing::EnhancedCustomShapeParameter&
34661 rParameter, const sal_Int16 nPara, const sal_Bool bIsSpecialValue );
34662 - static void SetEnhancedCustomShapeParameter( com::sun::star::drawing::EnhancedCustomShapeParameter&
34663 + SVX_DLLPUBLIC static void SetEnhancedCustomShapeParameter( com::sun::star::drawing::EnhancedCustomShapeParameter&
34664 rParameter, const sal_Int32 nValue );
34665 - static void SetEnhancedCustomShapeHandleParameter( com::sun::star::drawing::EnhancedCustomShapeParameter&
34666 + SVX_DLLPUBLIC static void SetEnhancedCustomShapeHandleParameter( com::sun::star::drawing::EnhancedCustomShapeParameter&
34667 rParameter, const sal_Int32 nPara, const sal_Bool bIsSpecialValue, sal_Bool bHorz );
34668 static sal_Bool ConvertSequenceToEnhancedCustomShape2dHandle( const com::sun::star::beans::PropertyValues& rHandleProperties,
34669 EnhancedCustomShape2d::Handle& rDestinationHandle );
34670 diff --git svx/source/customshapes/EnhancedCustomShape3d.hxx svx/source/customshapes/EnhancedCustomShape3d.hxx
34671 index dcac36e..430cf7b 100644
34672 --- svx/source/customshapes/EnhancedCustomShape3d.hxx
34673 +++ svx/source/customshapes/EnhancedCustomShape3d.hxx
34674 @@ -31,14 +31,15 @@
34675 #ifndef _ENHANCEDCUSTOMSHAPE3D_HXX
34676 #define _ENHANCEDCUSTOMSHAPE3D_HXX
34678 -#include <svx/msdffimp.hxx>
34680 -//#include <poly3d.hxx>
34681 -//#include <goodies/point3d.hxx>
34682 #include <com/sun/star/drawing/ProjectionMode.hpp>
34683 #include <basegfx/point/b3dpoint.hxx>
34684 #include <basegfx/polygon/b3dpolygon.hxx>
34686 +#include <tools/gen.hxx>
34690 class EnhancedCustomShape3d
34692 class Transformation2D
34693 diff --git svx/source/customshapes/EnhancedCustomShapeGeometry.hxx svx/source/customshapes/EnhancedCustomShapeGeometry.hxx
34694 index 3c25d02..0dacce8 100644
34695 --- svx/source/customshapes/EnhancedCustomShapeGeometry.hxx
34696 +++ svx/source/customshapes/EnhancedCustomShapeGeometry.hxx
34697 @@ -93,12 +93,12 @@ struct mso_CustomShape
34698 #define MSO_I | (sal_Int32)0x80000000
34700 sal_Bool SortFilledObjectsToBackByDefault( MSO_SPT eSpType );
34701 -sal_Bool IsCustomShapeFilledByDefault( MSO_SPT eSpType );
34702 -sal_Int16 GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType );
34703 +SVX_DLLPUBLIC sal_Bool IsCustomShapeFilledByDefault( MSO_SPT eSpType );
34704 +SVX_DLLPUBLIC sal_Int16 GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType );
34707 -sal_Bool IsCustomShapeStrokedByDefault( MSO_SPT eSpType );
34708 +SVX_DLLPUBLIC sal_Bool IsCustomShapeStrokedByDefault( MSO_SPT eSpType );
34710 -const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType );
34711 +SVX_DLLPUBLIC const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType );
34714 diff --git svx/source/customshapes/EnhancedCustomShapeTypeNames.hxx svx/source/customshapes/EnhancedCustomShapeTypeNames.hxx
34715 index f6ede3d..c9f65e2 100644
34716 --- svx/source/customshapes/EnhancedCustomShapeTypeNames.hxx
34717 +++ svx/source/customshapes/EnhancedCustomShapeTypeNames.hxx
34718 @@ -33,12 +33,10 @@
34719 #include <svx/msdffdef.hxx>
34720 #include <rtl/ustring.hxx>
34722 -class EnhancedCustomShapeTypeNames
34723 +namespace EnhancedCustomShapeTypeNames
34727 - static MSO_SPT Get( const rtl::OUString& );
34728 - static rtl::OUString Get( const MSO_SPT );
34730 + SVX_DLLPUBLIC MSO_SPT Get( const rtl::OUString& );
34731 + SVX_DLLPUBLIC rtl::OUString Get( const MSO_SPT );
34735 diff --git svx/source/customshapes/makefile.mk svx/source/customshapes/makefile.mk
34736 index a954eb4..2a2d2d6 100644
34737 --- svx/source/customshapes/makefile.mk
34738 +++ svx/source/customshapes/makefile.mk
34742 TARGET=customshapes
34744 ENABLE_EXCEPTIONS=TRUE
34746 # --- Settings ----------------------------------
34747 @@ -54,16 +55,23 @@ NOOPTFILES= $(SLO)$/EnhancedCustomShapeFunctionParser.obj
34749 # --- Files -------------------------------------
34751 -SLOFILES= $(SLO)$/EnhancedCustomShapeEngine.obj \
34752 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
34754 $(SLO)$/EnhancedCustomShapeTypeNames.obj \
34755 $(SLO)$/EnhancedCustomShapeGeometry.obj \
34756 $(SLO)$/EnhancedCustomShape2d.obj \
34757 + $(SLO)$/EnhancedCustomShapeFunctionParser.obj
34759 +LIB2TARGET= $(SLB)$/$(TARGET).lib
34761 + $(SLO)$/EnhancedCustomShapeEngine.obj \
34762 $(SLO)$/EnhancedCustomShape3d.obj \
34763 $(SLO)$/EnhancedCustomShapeFontWork.obj \
34764 $(SLO)$/EnhancedCustomShapeHandle.obj \
34765 - $(SLO)$/EnhancedCustomShapeFunctionParser.obj \
34766 $(SLO)$/tbxcustomshapes.obj
34768 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
34770 # --- Targets ----------------------------------
34772 .INCLUDE : target.mk
34773 diff --git svx/source/dialog/makefile.mk svx/source/dialog/makefile.mk
34774 index 2979329..c3ece19 100644
34775 --- svx/source/dialog/makefile.mk
34776 +++ svx/source/dialog/makefile.mk
34777 @@ -297,20 +297,31 @@ SLOFILES+=\
34778 $(SLO)$/optimprove.obj \
34779 $(SLO)$/optimprove2.obj
34781 -LIB1TARGET= $(SLB)$/$(TARGET).lib
34782 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
34785 - $(SLO)$/fontsubs.obj \
34786 $(SLO)$/svxdlg.obj \
34787 - $(SLO)$/charmap.obj \
34788 - $(SLO)$/_bmpmask.obj \
34789 - $(SLO)$/frmsel.obj \
34790 $(SLO)$/opengrf.obj \
34791 $(SLO)$/hyphen.obj \
34792 - $(SLO)$/rubydialog.obj \
34793 $(SLO)$/thesdlg.obj \
34794 $(SLO)$/splwrap.obj \
34795 $(SLO)$/hangulhanja.obj \
34796 + $(SLO)$/dlgutil.obj \
34797 + $(SLO)$/impgrf.obj \
34798 + $(SLO)$/langbox.obj \
34799 + $(SLO)$/simptabl.obj \
34800 + $(SLO)$/stddlg.obj \
34801 + $(SLO)$/dialmgr.obj \
34802 + $(SLO)$/framelink.obj
34804 +LIB2TARGET= $(SLB)$/$(TARGET).lib
34807 + $(SLO)$/fontsubs.obj \
34808 + $(SLO)$/charmap.obj \
34809 + $(SLO)$/_bmpmask.obj \
34810 + $(SLO)$/frmsel.obj \
34811 + $(SLO)$/rubydialog.obj \
34812 $(SLO)$/_contdlg.obj \
34813 $(SLO)$/connctrl.obj \
34814 $(SLO)$/contwnd.obj \
34815 @@ -329,13 +340,10 @@ LIB1OBJFILES= \
34816 $(SLO)$/ctredlin.obj \
34817 $(SLO)$/dlgctrl.obj \
34818 $(SLO)$/dlgctl3d.obj \
34819 - $(SLO)$/dlgutil.obj \
34820 $(SLO)$/docrecovery.obj \
34821 $(SLO)$/fntctrl.obj \
34822 $(SLO)$/fontwork.obj \
34824 - $(SLO)$/impgrf.obj \
34825 - $(SLO)$/langbox.obj \
34826 $(SLO)$/linkwarn.obj \
34827 $(SLO)$/wrapfield.obj \
34828 $(SLO)$/pagectrl.obj \
34829 @@ -347,10 +355,8 @@ LIB1OBJFILES= \
34830 $(SLO)$/rulritem.obj \
34831 $(SLO)$/scriptdlg.obj \
34832 $(SLO)$/selector.obj \
34833 - $(SLO)$/simptabl.obj \
34834 $(SLO)$/srchctrl.obj \
34835 $(SLO)$/srchdlg.obj \
34836 - $(SLO)$/stddlg.obj \
34837 $(SLO)$/svxbox.obj \
34838 $(SLO)$/svxruler.obj \
34839 $(SLO)$/tparea.obj \
34840 @@ -362,31 +368,29 @@ LIB1OBJFILES= \
34841 $(SLO)$/commonlingui.obj \
34842 $(SLO)$/SpellDialogChildWindow.obj \
34843 $(SLO)$/svxbmpnumvalueset.obj\
34844 - $(SLO)$/dialmgr.obj\
34845 $(SLO)$/svxgrahicitem.obj \
34846 $(SLO)$/swframeexample.obj \
34847 $(SLO)$/swframeposstrings.obj \
34848 $(SLO)$/eventdlg.obj \
34849 $(SLO)$/macropg.obj \
34851 - $(SLO)$/framelink.obj\
34852 $(SLO)$/framelinkarray.obj \
34853 $(SLO)$/databaseregistrationui.obj \
34854 $(SLO)$/radiobtnbox.obj
34856 .IF "$(GUI)"=="UNX"
34857 -LIB1OBJFILES += $(SLO)$/sendreportunx.obj
34858 +LIB2OBJFILES += $(SLO)$/sendreportunx.obj
34860 .IF "$(GUI)"=="WNT"
34861 -LIB1OBJFILES += $(SLO)$/sendreportw32.obj
34862 +LIB2OBJFILES += $(SLO)$/sendreportw32.obj
34864 -LIB1OBJFILES += $(SLO)$/sendreportgen.obj
34865 +LIB2OBJFILES += $(SLO)$/sendreportgen.obj
34869 -LIB2TARGET= $(SLB)$/cui.lib
34870 +LIB3TARGET= $(SLB)$/cui.lib
34874 $(SLO)$/linkdlg.obj \
34875 $(SLO)$/pastedlg.obj \
34876 $(SLO)$/plfilter.obj \
34877 @@ -487,7 +491,7 @@ LIB2OBJFILES= \
34879 .IF "$(GUI)"=="WNT"
34880 SLOFILES+=$(SLO)$/winpluginlib.obj
34881 -LIB2OBJFILES+=$(SLO)$/winpluginlib.obj
34882 +LIB3OBJFILES+=$(SLO)$/winpluginlib.obj
34886 diff --git svx/source/dialog/showcols.cxx svx/source/dialog/showcols.cxx
34887 index 4b5e1f8..ead9243 100644
34888 --- svx/source/dialog/showcols.cxx
34889 +++ svx/source/dialog/showcols.cxx
34890 @@ -36,19 +36,17 @@
34892 #include "showcols.hxx"
34894 -#ifndef _SVX_FMRESIDS_HRC
34895 #include "fmresids.hrc"
34897 #include <tools/shl.hxx>
34898 #include <svx/dialmgr.hxx>
34899 #include <vcl/msgbox.hxx>
34900 #include <com/sun/star/beans/XPropertySet.hpp>
34901 #include <comphelper/extract.hxx>
34902 #include <comphelper/types.hxx>
34903 -#include "fmstatic.hxx" //CHINA001
34905 -IMPLEMENT_CONSTASCII_USTRING(CUIFM_PROP_HIDDEN, "Hidden");
34906 -IMPLEMENT_CONSTASCII_USTRING(CUIFM_PROP_LABEL,"Label");
34907 +#define CUIFM_PROP_HIDDEN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Hidden" ) )
34908 +#define CUIFM_PROP_LABEL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Label" ) )
34910 //==========================================================================
34911 // FmShowColsDialog
34912 //==========================================================================
34913 diff --git svx/source/editeng/editeng.cxx svx/source/editeng/editeng.cxx
34914 index fbfb942..e6cd888 100644
34915 --- svx/source/editeng/editeng.cxx
34916 +++ svx/source/editeng/editeng.cxx
34918 #include <vcl/help.hxx>
34919 #include <svx/xpoly.hxx>
34920 #include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
34921 -#ifndef _COM_SUN_STAR_I18N_XINPUTSEQUENCECHECKER_HPP_
34922 #include <com/sun/star/i18n/InputSequenceCheckMode.hpp>
34925 -#include <srchdlg.hxx>
34926 +#include <sfx2/srchdefs.hxx>
34928 #if OSL_DEBUG_LEVEL > 1
34929 #include <svx/frmdiritem.hxx>
34930 @@ -99,18 +97,11 @@
34932 // Spaeter -> TOOLS\STRING.H (fuer Grep: WS_TARGET)
34934 -//using namespace ::rtl;
34935 -//using namespace ::utl;
34936 using namespace ::com::sun::star;
34937 -//using namespace ::com::sun::star::util;
34938 using namespace ::com::sun::star::uno;
34939 -//using namespace ::com::sun::star::lang;
34940 -//using namespace ::com::sun::star::beans;
34941 -//using namespace ::com::sun::star::frame;
34942 using namespace ::com::sun::star::linguistic2;
34946 DBG_NAME( EditEngine )
34947 DBG_NAMEEX( EditView )
34949 diff --git svx/source/editeng/eertfpar.cxx svx/source/editeng/eertfpar.cxx
34950 index 7aeda4f..22ec196 100644
34951 --- svx/source/editeng/eertfpar.cxx
34952 +++ svx/source/editeng/eertfpar.cxx
34955 #include <svtools/rtftoken.h>
34957 +// alle Werte auf default; wird nach einlesen der Bitmap aufgerufen !
34958 +void SvxRTFPictureType::ResetValues()
34959 +{ // setze alle Werte RTF-Defaults
34960 + eStyle = RTF_BITMAP;
34961 + nMode = HEX_MODE;
34962 + nType = nGoalWidth = nGoalHeight = 0;
34963 + nWidth = nHeight = nWidthBytes = 0;
34965 + nBitsPerPixel = nPlanes = 1;
34966 + nScalX = nScalY = 100; // Skalierung in Prozent
34967 + nCropT = nCropB = nCropL = nCropR = 0;
34970 ImportInfo::ImportInfo( ImportState eSt, SvParser* pPrsrs, const ESelection& rSel )
34971 : aSelection( rSel )
34973 diff --git svx/source/engine3d/makefile.mk svx/source/engine3d/makefile.mk
34974 index 1b1112b..7dbb3e7 100644
34975 --- svx/source/engine3d/makefile.mk
34976 +++ svx/source/engine3d/makefile.mk
34977 @@ -33,6 +33,7 @@ PRJ=..$/..
34982 ENABLE_EXCEPTIONS=TRUE
34984 # --- Settings -----------------------------------------------------
34985 @@ -42,7 +43,8 @@ ENABLE_EXCEPTIONS=TRUE
34987 # --- Files --------------------------------------------------------
34990 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
34992 $(SLO)$/e3dsceneupdater.obj \
34993 $(SLO)$/helperminimaldepth3d.obj \
34994 $(SLO)$/helperhittest3d.obj \
34995 @@ -57,16 +59,21 @@ SLOFILES= \
34996 $(SLO)$/svx3ditems.obj \
34997 $(SLO)$/deflt3d.obj \
34998 $(SLO)$/e3dundo.obj \
34999 - $(SLO)$/volume3d.obj \
35000 - $(SLO)$/viewpt3d.obj \
35001 $(SLO)$/viewpt3d2.obj \
35002 $(SLO)$/camera3d.obj \
35003 $(SLO)$/objfac3d.obj \
35004 $(SLO)$/dragmt3d.obj \
35005 $(SLO)$/view3d.obj \
35006 - $(SLO)$/view3d1.obj \
35007 + $(SLO)$/view3d1.obj
35009 +LIB2TARGET= $(SLB)$/$(TARGET).lib
35011 + $(SLO)$/volume3d.obj \
35012 + $(SLO)$/viewpt3d.obj \
35013 $(SLO)$/float3d.obj
35015 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
35017 #disable optimizer for MSCompiler and ICC
35018 .IF "$(COM)"=="ICC" || "$(COM)"=="MSC"
35020 diff --git svx/source/fmcomp/dbaexchange.cxx svx/source/fmcomp/dbaexchange.cxx
35021 index ea65dbf..eaf5474 100644
35022 --- svx/source/fmcomp/dbaexchange.cxx
35023 +++ svx/source/fmcomp/dbaexchange.cxx
35024 @@ -61,7 +61,6 @@ namespace svx
35025 using namespace ::com::sun::star::sdbcx;
35026 using namespace ::com::sun::star::container;
35027 using namespace ::com::sun::star::datatransfer;
35028 - using namespace ::svxform;
35029 using namespace ::comphelper;
35031 //====================================================================
35032 diff --git svx/source/fmcomp/dbaobjectex.cxx svx/source/fmcomp/dbaobjectex.cxx
35033 index fe76d7a..084a3b3 100644
35034 --- svx/source/fmcomp/dbaobjectex.cxx
35035 +++ svx/source/fmcomp/dbaobjectex.cxx
35036 @@ -60,7 +60,6 @@ namespace svx
35037 using namespace ::com::sun::star::sdbcx;
35038 using namespace ::com::sun::star::container;
35039 using namespace ::com::sun::star::datatransfer;
35040 - using namespace ::svxform;
35041 using namespace ::comphelper;
35043 //====================================================================
35044 diff --git svx/source/fmcomp/fmgridif.cxx svx/source/fmcomp/fmgridif.cxx
35045 index 34713e8..495e8fc 100644
35046 --- svx/source/fmcomp/fmgridif.cxx
35047 +++ svx/source/fmcomp/fmgridif.cxx
35048 @@ -1919,7 +1919,7 @@ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& V
35050 sal_Bool bVoid = !Value.hasValue();
35052 - if ( 0 == PropertyName.compareToAscii( FM_PROP_TEXTLINECOLOR ) )
35053 + if ( 0 == PropertyName.compareTo( FM_PROP_TEXTLINECOLOR ) )
35055 ::Color aTextLineColor(::comphelper::getINT32(Value));
35057 @@ -1951,21 +1951,21 @@ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& V
35058 if (isDesignMode())
35059 pGrid->Invalidate();
35061 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_FONTEMPHASISMARK ) )
35062 + else if ( 0 == PropertyName.compareTo( FM_PROP_FONTEMPHASISMARK ) )
35064 Font aGridFont = pGrid->GetControlFont();
35065 sal_Int16 nValue = ::comphelper::getINT16(Value);
35066 aGridFont.SetEmphasisMark( nValue );
35067 pGrid->SetControlFont( aGridFont );
35069 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_FONTRELIEF ) )
35070 + else if ( 0 == PropertyName.compareTo( FM_PROP_FONTRELIEF ) )
35072 Font aGridFont = pGrid->GetControlFont();
35073 sal_Int16 nValue = ::comphelper::getINT16(Value);
35074 aGridFont.SetRelief( (FontRelief)nValue );
35075 pGrid->SetControlFont( aGridFont );
35077 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_HELPURL ) )
35078 + else if ( 0 == PropertyName.compareTo( FM_PROP_HELPURL ) )
35080 String sHelpURL(::comphelper::getString(Value));
35082 @@ -1976,11 +1976,11 @@ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& V
35083 pGrid->SetHelpId(sID.ToInt32());
35086 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_DISPLAYSYNCHRON ) )
35087 + else if ( 0 == PropertyName.compareTo( FM_PROP_DISPLAYSYNCHRON ) )
35089 pGrid->setDisplaySynchron(::comphelper::getBOOL(Value));
35091 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_CURSORCOLOR ) )
35092 + else if ( 0 == PropertyName.compareTo( FM_PROP_CURSORCOLOR ) )
35095 pGrid->SetCursorColor(COL_TRANSPARENT);
35096 @@ -1989,13 +1989,13 @@ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& V
35097 if (isDesignMode())
35098 pGrid->Invalidate();
35100 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_ALWAYSSHOWCURSOR ) )
35101 + else if ( 0 == PropertyName.compareTo( FM_PROP_ALWAYSSHOWCURSOR ) )
35103 pGrid->EnablePermanentCursor(::comphelper::getBOOL(Value));
35104 if (isDesignMode())
35105 pGrid->Invalidate();
35107 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_FONT ) )
35108 + else if ( 0 == PropertyName.compareTo( FM_PROP_FONT ) )
35111 pGrid->SetControlFont( Font() );
35112 @@ -2029,7 +2029,7 @@ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& V
35116 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_BACKGROUNDCOLOR ) )
35117 + else if ( 0 == PropertyName.compareTo( FM_PROP_BACKGROUNDCOLOR ) )
35121 @@ -2042,7 +2042,7 @@ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& V
35122 pGrid->SetControlBackground( aColor );
35125 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_TEXTCOLOR ) )
35126 + else if ( 0 == PropertyName.compareTo( FM_PROP_TEXTCOLOR ) )
35130 @@ -2055,7 +2055,7 @@ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& V
35131 pGrid->SetControlForeground( aColor );
35134 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_ROWHEIGHT ) )
35135 + else if ( 0 == PropertyName.compareTo( FM_PROP_ROWHEIGHT ) )
35137 sal_Int32 nLogHeight(0);
35138 if (Value >>= nLogHeight)
35139 @@ -2068,17 +2068,17 @@ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& V
35141 pGrid->SetDataRowHeight(0);
35143 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_HASNAVIGATION ) )
35144 + else if ( 0 == PropertyName.compareTo( FM_PROP_HASNAVIGATION ) )
35146 if (Value.getValueType() == ::getBooleanCppuType())
35147 pGrid->EnableNavigationBar(*(sal_Bool*)Value.getValue());
35149 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_RECORDMARKER ) )
35150 + else if ( 0 == PropertyName.compareTo( FM_PROP_RECORDMARKER ) )
35152 if (Value.getValueType() == ::getBooleanCppuType())
35153 pGrid->EnableHandle(*(sal_Bool*)Value.getValue());
35155 - else if ( 0 == PropertyName.compareToAscii( FM_PROP_ENABLED ) )
35156 + else if ( 0 == PropertyName.compareTo( FM_PROP_ENABLED ) )
35158 if (Value.getValueType() == ::getBooleanCppuType())
35160 @@ -2132,37 +2132,37 @@ Any FmXGridPeer::getProperty( const ::rtl::OUString& _rPropertyName ) throw( Run
35161 FmGridControl* pGrid = (FmGridControl*) GetWindow();
35162 Window* pDataWindow = &pGrid->GetDataWindow();
35164 - if ( 0 == _rPropertyName.compareToAscii( FM_PROP_NAME ) )
35165 + if ( 0 == _rPropertyName.compareTo( FM_PROP_NAME ) )
35167 Font aFont = pDataWindow->GetControlFont();
35168 aProp <<= ImplCreateFontDescriptor( aFont );
35170 - else if ( 0 == _rPropertyName.compareToAscii( FM_PROP_TEXTCOLOR ) )
35171 + else if ( 0 == _rPropertyName.compareTo( FM_PROP_TEXTCOLOR ) )
35173 aProp <<= (sal_Int32)pDataWindow->GetControlForeground().GetColor();
35175 - else if ( 0 == _rPropertyName.compareToAscii( FM_PROP_BACKGROUNDCOLOR ) )
35176 + else if ( 0 == _rPropertyName.compareTo( FM_PROP_BACKGROUNDCOLOR ) )
35178 aProp <<= (sal_Int32)pDataWindow->GetControlBackground().GetColor();
35180 - else if ( 0 == _rPropertyName.compareToAscii( FM_PROP_ROWHEIGHT ) )
35181 + else if ( 0 == _rPropertyName.compareTo( FM_PROP_ROWHEIGHT ) )
35183 sal_Int32 nPixelHeight = pGrid->GetDataRowHeight();
35184 // take the zoom factor into account
35185 nPixelHeight = pGrid->CalcReverseZoom(nPixelHeight);
35186 aProp <<= (sal_Int32)pGrid->PixelToLogic(Point(0,nPixelHeight),MAP_10TH_MM).Y();
35188 - else if ( 0 == _rPropertyName.compareToAscii( FM_PROP_HASNAVIGATION ) )
35189 + else if ( 0 == _rPropertyName.compareTo( FM_PROP_HASNAVIGATION ) )
35191 sal_Bool bHasNavBar = pGrid->HasNavigationBar();
35192 aProp <<= (sal_Bool)bHasNavBar;
35194 - else if ( 0 == _rPropertyName.compareToAscii( FM_PROP_RECORDMARKER ) )
35195 + else if ( 0 == _rPropertyName.compareTo( FM_PROP_RECORDMARKER ) )
35197 sal_Bool bHasHandle = pGrid->HasHandle();
35198 aProp <<= (sal_Bool)bHasHandle;
35200 - else if ( 0 == _rPropertyName.compareToAscii( FM_PROP_ENABLED ) )
35201 + else if ( 0 == _rPropertyName.compareTo( FM_PROP_ENABLED ) )
35203 aProp <<= (sal_Bool)pDataWindow->IsEnabled();
35205 @@ -2942,7 +2942,7 @@ IMPL_LINK(FmXGridPeer, OnExecuteGridSlot, void*, pSlot)
35206 if (m_pDispatchers[i].is())
35208 // commit any changes done so far, if it's not the undoRecord URL
35209 - if ( 0 == pUrls->Complete.compareToAscii( FMURL_RECORD_UNDO ) || commit() )
35210 + if ( 0 == pUrls->Complete.compareTo( FMURL_RECORD_UNDO ) || commit() )
35211 m_pDispatchers[i]->dispatch(*pUrls, Sequence< PropertyValue>());
35213 return 1; // handled
35214 diff --git svx/source/fmcomp/gridcell.cxx svx/source/fmcomp/gridcell.cxx
35215 index 57abadd..7e078d9 100644
35216 --- svx/source/fmcomp/gridcell.cxx
35217 +++ svx/source/fmcomp/gridcell.cxx
35218 @@ -648,10 +648,10 @@ void DbCellControl::_propertyChanged(const PropertyChangeEvent& _rEvent) throw(R
35220 Reference< XPropertySet > xSourceProps( _rEvent.Source, UNO_QUERY );
35222 - if ( _rEvent.PropertyName.equalsAscii( FM_PROP_VALUE )
35223 - || _rEvent.PropertyName.equalsAscii( FM_PROP_STATE )
35224 - || _rEvent.PropertyName.equalsAscii( FM_PROP_TEXT )
35225 - || _rEvent.PropertyName.equalsAscii( FM_PROP_EFFECTIVE_VALUE )
35226 + if ( _rEvent.PropertyName.equals( FM_PROP_VALUE )
35227 + || _rEvent.PropertyName.equals( FM_PROP_STATE )
35228 + || _rEvent.PropertyName.equals( FM_PROP_TEXT )
35229 + || _rEvent.PropertyName.equals( FM_PROP_EFFECTIVE_VALUE )
35231 { // it was one of the known "value" properties
35232 if ( !isValuePropertyLocked() )
35233 @@ -659,11 +659,11 @@ void DbCellControl::_propertyChanged(const PropertyChangeEvent& _rEvent) throw(R
35234 implValuePropertyChanged( );
35237 - else if ( _rEvent.PropertyName.equalsAscii( FM_PROP_READONLY ) )
35238 + else if ( _rEvent.PropertyName.equals( FM_PROP_READONLY ) )
35240 implAdjustReadOnly( xSourceProps );
35242 - else if ( _rEvent.PropertyName.equalsAscii( FM_PROP_ENABLED ) )
35243 + else if ( _rEvent.PropertyName.equals( FM_PROP_ENABLED ) )
35245 implAdjustEnabled( xSourceProps );
35247 @@ -2408,7 +2408,7 @@ DbComboBox::DbComboBox(DbGridColumn& _rColumn)
35248 //------------------------------------------------------------------------------
35249 void DbComboBox::_propertyChanged( const PropertyChangeEvent& _rEvent ) throw( RuntimeException )
35251 - if ( _rEvent.PropertyName.equalsAscii( FM_PROP_STRINGITEMLIST ) )
35252 + if ( _rEvent.PropertyName.equals( FM_PROP_STRINGITEMLIST ) )
35254 SetList(_rEvent.NewValue);
35256 @@ -2537,7 +2537,7 @@ DbListBox::DbListBox(DbGridColumn& _rColumn)
35257 //------------------------------------------------------------------------------
35258 void DbListBox::_propertyChanged( const ::com::sun::star::beans::PropertyChangeEvent& _rEvent ) throw( RuntimeException )
35260 - if ( _rEvent.PropertyName.equalsAscii( FM_PROP_STRINGITEMLIST ) )
35261 + if ( _rEvent.PropertyName.equals( FM_PROP_STRINGITEMLIST ) )
35263 SetList(_rEvent.NewValue);
35265 diff --git svx/source/fmcomp/gridcols.cxx svx/source/fmcomp/gridcols.cxx
35266 index 2fc232f..561be8a 100644
35267 --- svx/source/fmcomp/gridcols.cxx
35268 +++ svx/source/fmcomp/gridcols.cxx
35270 #include "fmservs.hxx"
35271 #include "fmtools.hxx"
35276 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_TEXTFIELD, "TextField");
35277 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_COMBOBOX, "ComboBox");
35278 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_CHECKBOX, "CheckBox");
35279 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_TIMEFIELD, "TimeField");
35280 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_DATEFIELD, "DateField");
35281 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_NUMERICFIELD, "NumericField");
35282 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_CURRENCYFIELD, "CurrencyField");
35283 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_PATTERNFIELD, "PatternField");
35284 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_LISTBOX, "ListBox");
35285 - IMPLEMENT_CONSTASCII_USTRING(FM_COL_FORMATTEDFIELD, "FormattedField");
35287 -} // namespace svxform
35288 -using namespace ::svxform;
35290 //------------------------------------------------------------------------------
35291 const ::comphelper::StringSequence& getColumnTypes()
35293 @@ -81,7 +64,7 @@ sal_Int32 getColumnTypeByModelName(const ::rtl::OUString& aModelName)
35294 const ::rtl::OUString aCompatibleModelPrefix = ::rtl::OUString::createFromAscii("stardiv.one.form.component.");
35296 sal_Int32 nTypeId = -1;
35297 - if (aModelName == ::svxform::FM_COMPONENT_EDIT)
35298 + if (aModelName == FM_COMPONENT_EDIT)
35299 nTypeId = TYPE_TEXTFIELD;
35302 diff --git svx/source/fmcomp/makefile.mk svx/source/fmcomp/makefile.mk
35303 index bacee5b..d18f522 100644
35304 --- svx/source/fmcomp/makefile.mk
35305 +++ svx/source/fmcomp/makefile.mk
35306 @@ -33,6 +33,7 @@ PRJ=..$/..
35312 ENABLE_EXCEPTIONS=TRUE
35314 @@ -48,25 +49,20 @@ SRC1FILES= \
35319 -# $(SLO)$/dbaexchange.obj \
35320 -# $(SLO)$/gridcols.obj \
35321 -# $(SLO)$/gridctrl.obj \
35322 -# $(SLO)$/gridcell.obj \
35323 -# $(SLO)$/fmgridcl.obj \
35324 -# $(SLO)$/fmgridif.obj \
35325 -# $(SLO)$/trace.obj
35328 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
35330 $(SLO)$/dbaexchange.obj \
35331 - $(SLO)$/dbaobjectex.obj \
35332 $(SLO)$/gridcols.obj \
35333 $(SLO)$/gridctrl.obj \
35334 $(SLO)$/gridcell.obj \
35335 $(SLO)$/fmgridcl.obj \
35336 $(SLO)$/fmgridif.obj \
35337 - $(SLO)$/trace.obj \
35338 $(SLO)$/xmlexchg.obj
35340 +LIB2TARGET= $(SLB)$/$(TARGET).lib
35342 + $(SLO)$/dbaobjectex.obj \
35343 + $(SLO)$/trace.obj
35345 .INCLUDE : target.mk
35347 diff --git svx/source/form/fmprop.cxx svx/source/form/fmprop.cxx
35348 index 0247e75..e69de29 100644
35349 --- svx/source/form/fmprop.cxx
35350 +++ svx/source/form/fmprop.cxx
35352 -/*************************************************************************
35354 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
35356 - * Copyright 2008 by Sun Microsystems, Inc.
35358 - * OpenOffice.org - a multi-platform office productivity suite
35360 - * $RCSfile: fmprop.cxx,v $
35361 - * $Revision: 1.22 $
35363 - * This file is part of OpenOffice.org.
35365 - * OpenOffice.org is free software: you can redistribute it and/or modify
35366 - * it under the terms of the GNU Lesser General Public License version 3
35367 - * only, as published by the Free Software Foundation.
35369 - * OpenOffice.org is distributed in the hope that it will be useful,
35370 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
35371 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35372 - * GNU Lesser General Public License version 3 for more details
35373 - * (a copy is included in the LICENSE file that accompanied this code).
35375 - * You should have received a copy of the GNU Lesser General Public License
35376 - * version 3 along with OpenOffice.org. If not, see
35377 - * <http://www.openoffice.org/license.html>
35378 - * for a copy of the LGPLv3 License.
35380 - ************************************************************************/
35382 -// MARKER(update_precomp.py): autogen include statement, do not remove
35383 -#include "precompiled_svx.hxx"
35385 -#ifndef _SVX_FMPROP_HRC
35386 -#include "fmprop.hrc"
35388 -#include "fmstatic.hxx"
35394 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_NAME,"Name");
35395 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CLASSID,"ClassId");
35396 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ROWCOUNT,"RowCount");
35397 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ROWCOUNTFINAL,"IsRowCountFinal");
35398 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FETCHSIZE,"FetchSize");
35399 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_VALUE,"Value");
35400 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TEXT,"Text");
35401 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_LABEL,"Label");
35402 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CANINSERT,"CanInsert");
35403 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CANUPDATE,"CanUpdate");
35404 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CANDELETE,"CanDelete");
35405 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_NAVIGATION,"NavigationBarMode");
35406 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_HASNAVIGATION,"HasNavigationBar");
35407 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CYCLE,"Cycle");
35408 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CONTROLSOURCE,"DataField");
35409 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ENABLED,"Enabled");
35410 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_READONLY,"ReadOnly");
35411 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ISREADONLY,"IsReadOnly");
35412 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FILTER,"Filter");
35413 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_AUTOINCREMENT,"IsAutoIncrement");
35414 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DATAENTRY,"DataEntry");
35415 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_WIDTH,"Width");
35416 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_SEARCHABLE,"IsSearchable");
35417 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_MULTILINE,"MultiLine");
35418 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TARGET_URL,"TargetURL");
35419 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DEFAULTCONTROL,"DefaultControl");
35420 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_MAXTEXTLEN,"MaxTextLen");
35421 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_EDITMASK,"EditMask");
35422 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_SPIN,"Spin");
35423 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DATE,"Date");
35424 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TIME,"Time");
35425 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_STATE,"State");
35426 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TRISTATE,"TriState");
35427 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_STRINGITEMLIST,"StringItemList");
35428 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DEFAULT_TEXT,"DefaultText");
35429 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DEFAULTCHECKED,"DefaultState");
35430 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FORMATKEY,"FormatKey");
35431 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FORMATSSUPPLIER,"FormatsSupplier");
35432 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_LISTSOURCETYPE,"ListSourceType");
35433 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_LISTSOURCE,"ListSource");
35434 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_SELECT_SEQ,"SelectedItems");
35435 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_VALUE_SEQ,"ValueItemList");
35436 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DEFAULT_SELECT_SEQ,"DefaultSelection");
35437 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ALIGN,"Align");
35438 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DEFAULT_DATE,"DefaultDate");
35439 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DEFAULT_TIME,"DefaultTime");
35440 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DEFAULT_VALUE,"DefaultValue");
35441 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DECIMAL_ACCURACY,"DecimalAccuracy");
35442 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CURSORSOURCE,"DataSelection");
35443 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CURSORSOURCETYPE,"DataSelectionType");
35444 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FIELDTYPE,"Type");
35445 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_REFVALUE,"RefValue");
35446 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_VALUEMIN,"ValueMin");
35447 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_VALUEMAX,"ValueMax");
35448 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_STRICTFORMAT,"StrictFormat");
35449 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_LITERALMASK,"LiteralMask");
35450 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_VALUESTEP,"ValueStep");
35451 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_SHOWTHOUSANDSEP,"ShowThousandsSeparator");
35452 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CURRENCYSYMBOL,"CurrencySymbol");
35453 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DATEFORMAT,"DateFormat");
35454 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DATEMIN,"DateMin");
35455 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DATEMAX,"DateMax");
35456 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DATE_SHOW_CENTURY,"DateShowCentury");
35457 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TIMEFORMAT, "TimeFormat");
35458 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TIMEMIN, "TimeMin");
35459 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TIMEMAX,"TimeMax");
35460 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_LINECOUNT,"LineCount");
35461 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_BOUNDCOLUMN, "BoundColumn");
35462 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FONT,"FontDescriptor");
35463 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_BACKGROUNDCOLOR,"BackgroundColor");
35464 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TEXTCOLOR,"TextColor");
35465 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_BORDER,"Border");
35466 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DROPDOWN,"Dropdown");
35467 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ROWHEIGHT,"RowHeight");
35468 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_HELPTEXT, "HelpText");
35469 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_HELPURL, "HelpURL");
35470 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_RECORDMARKER, "HasRecordMarker");
35471 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_BOUNDFIELD, "BoundField");
35472 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_VALUE, "EffectiveValue");
35473 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_DEFAULT, "EffectiveDefault");
35474 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_MIN, "EffectiveMin");
35475 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_MAX, "EffectiveMax");
35476 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_HIDDEN, "Hidden");
35477 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FILTERPROPOSAL, "UseFilterValueProposal");
35478 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FIELDSOURCE, "FieldSource");
35479 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TABLENAME, "TableName");
35480 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FILTERSUPPLIER, "FilterSupplier");
35481 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CURRENTFILTER, "CurrentFilter");
35482 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_SELECTED_FIELDS, "SelectedFields");
35483 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_SELECTED_TABLES, "SelectedTables");
35484 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_THREADSAFE, "ThreadSafe");
35485 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ISFILTERAPPLIED, "IsFilterApplied");
35486 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CONTROLLABEL, "LabelControl");
35487 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CURSORCOLOR, "CursorColor");
35488 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ALWAYSSHOWCURSOR, "AlwaysShowCursor");
35489 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DISPLAYSYNCHRON, "DisplayIsSynchron");
35490 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ISMODIFIED, "IsModified");
35491 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ISNEW, "IsNew");
35492 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_PRIVILEGES, "Privileges");
35493 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_COMMAND,"Command");
35494 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_COMMANDTYPE,"CommandType");
35495 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_RESULTSET_CONCURRENCY, "ResultSetConcurrency");
35496 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_INSERTONLY, "IgnoreResult");
35497 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_RESULTSET_TYPE, "ResultSetType");
35498 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ESCAPE_PROCESSING, "EscapeProcessing");
35499 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_APPLYFILTER, "ApplyFilter");
35500 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ISNULLABLE, "IsNullable");
35501 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ACTIVECOMMAND, "ActiveCommand");
35502 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ISCURRENCY, "IsCurrency");
35503 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_URL, "URL");
35504 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_ACTIVE_CONNECTION, "ActiveConnection");
35505 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_SORT, "Order");
35506 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_DATASOURCE, "DataSourceName");
35507 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_REALNAME,"RealName");
35508 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_CONTROLSOURCEPROPERTY,"DataFieldProperty");
35509 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_TEXTLINECOLOR, "TextLineColor");
35510 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FONTEMPHASISMARK, "FontEmphasisMark");
35511 - IMPLEMENT_CONSTASCII_USTRING(FM_PROP_FONTRELIEF, "FontRelief");
35513 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_SCROLLVALUE_MIN, "ScrollValueMin" );
35514 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_SCROLLVALUE_MAX, "ScrollValueMax" );
35515 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_DEFAULT_SCROLLVALUE, "DefaultScrollValue" );
35516 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_LINEINCREMENT, "LineIncrement" );
35517 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_BLOCKINCREMENT, "BlockIncrement" );
35518 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_ORIENTATION, "Orientation" );
35519 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_REPEAT, "Repeat" );
35520 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_REPEATDELAY, "RepeatDelay" );
35521 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_SYMBOLCOLOR, "SymbolColor" );
35522 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_VISIBILESIZE, "VisibleSize" );
35523 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_SPINVALUE_MIN, "SpinValueMin" );
35524 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_SPINVALUE_MAX, "SpinValueMax" );
35525 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_DEFAULT_SPINVALUE, "DefaultSpinValue" );
35526 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_SPININCREMENT, "SpinIncrement" );
35527 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_LINEENDFORMAT, "LineEndFormat" );
35528 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_TOGGLE, "Toggle" );
35529 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_FOCUSONCLICK, "FocusOnClick" );
35530 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_HIDEINACTIVESELECTION, "HideInactiveSelection" );
35531 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_VISUALEFFECT, "VisualEffect" );
35532 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_BORDERCOLOR, "BorderColor" );
35533 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_DYNAMIC_CONTROL_BORDER, "DynamicControlBorder" );
35534 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_CONTROL_BORDER_COLOR_FOCUS, "ControlBorderColorOnFocus" );
35535 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_CONTROL_BORDER_COLOR_MOUSE, "ControlBorderColorOnHover" );
35536 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_CONTROL_BORDER_COLOR_INVALID,"ControlBorderColorOnInvalid" );
35538 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_BUTTON_TYPE, "ButtonType" );
35539 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_FORM_OPERATIONS, "FormOperations" );
35540 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_INPUT_REQUIRED, "InputRequired" );
35542 - IMPLEMENT_CONSTASCII_USTRING( FM_PROP_WRITING_MODE, "WritingMode" );
35544 -} // namespace svxform
35546 diff --git svx/source/form/fmservs.cxx svx/source/form/fmservs.cxx
35547 index 9d94074..02612f8 100644
35548 --- svx/source/form/fmservs.cxx
35549 +++ svx/source/form/fmservs.cxx
35551 // MARKER(update_precomp.py): autogen include statement, do not remove
35552 #include "precompiled_svx.hxx"
35553 #include <com/sun/star/container/XSet.hpp>
35554 -#include "fmstatic.hxx"
35555 #include <cppuhelper/factory.hxx>
35556 #include <comphelper/processfactory.hxx>
35561 - // -----------------------
35562 - // service names for compatibility
35563 - // -----------------------
35564 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_EDIT,"stardiv.one.form.component.Edit"); // compatibility
35565 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_TEXTFIELD,"stardiv.one.form.component.TextField");
35566 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_LISTBOX,"stardiv.one.form.component.ListBox");
35567 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_COMBOBOX,"stardiv.one.form.component.ComboBox");
35568 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_RADIOBUTTON,"stardiv.one.form.component.RadioButton");
35569 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_GROUPBOX,"stardiv.one.form.component.GroupBox"); // compatibility
35570 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_FIXEDTEXT,"stardiv.one.form.component.FixedText"); // compatibility
35571 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_COMMANDBUTTON,"stardiv.one.form.component.CommandButton");
35572 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_CHECKBOX,"stardiv.one.form.component.CheckBox");
35573 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_GRID,"stardiv.one.form.component.Grid"); // compatibility
35574 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_GRIDCONTROL,"stardiv.one.form.component.GridControl");
35575 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_IMAGEBUTTON,"stardiv.one.form.component.ImageButton");
35576 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_FILECONTROL,"stardiv.one.form.component.FileControl");
35577 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_TIMEFIELD,"stardiv.one.form.component.TimeField");
35578 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_DATEFIELD,"stardiv.one.form.component.DateField");
35579 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_NUMERICFIELD,"stardiv.one.form.component.NumericField");
35580 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_CURRENCYFIELD,"stardiv.one.form.component.CurrencyField");
35581 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_PATTERNFIELD,"stardiv.one.form.component.PatternField");
35582 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_HIDDEN,"stardiv.one.form.component.Hidden");
35583 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_HIDDENCONTROL,"stardiv.one.form.component.HiddenControl");
35584 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_IMAGECONTROL,"stardiv.one.form.component.ImageControl");
35585 - IMPLEMENT_CONSTASCII_USTRING(FM_COMPONENT_FORMATTEDFIELD,"stardiv.one.form.component.FormattedField");
35587 - IMPLEMENT_CONSTASCII_USTRING(FM_CONTROL_GRID,"stardiv.one.form.control.Grid"); // compatibility
35588 - IMPLEMENT_CONSTASCII_USTRING(FM_CONTROL_GRIDCONTROL,"stardiv.one.form.control.GridControl");
35590 - // -----------------------
35591 - // new (sun) service names
35592 - // -----------------------
35593 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_FORM,"com.sun.star.form.component.Form");
35594 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_TEXTFIELD,"com.sun.star.form.component.TextField");
35595 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_LISTBOX,"com.sun.star.form.component.ListBox");
35596 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_COMBOBOX,"com.sun.star.form.component.ComboBox");
35597 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_RADIOBUTTON,"com.sun.star.form.component.RadioButton");
35598 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_GROUPBOX,"com.sun.star.form.component.GroupBox");
35599 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_FIXEDTEXT,"com.sun.star.form.component.FixedText");
35600 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_COMMANDBUTTON,"com.sun.star.form.component.CommandButton");
35601 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_CHECKBOX,"com.sun.star.form.component.CheckBox");
35602 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_GRIDCONTROL,"com.sun.star.form.component.GridControl");
35603 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_IMAGEBUTTON,"com.sun.star.form.component.ImageButton");
35604 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_FILECONTROL,"com.sun.star.form.component.FileControl");
35605 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_TIMEFIELD,"com.sun.star.form.component.TimeField");
35606 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_DATEFIELD,"com.sun.star.form.component.DateField");
35607 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_NUMERICFIELD,"com.sun.star.form.component.NumericField");
35608 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_CURRENCYFIELD,"com.sun.star.form.component.CurrencyField");
35609 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_PATTERNFIELD,"com.sun.star.form.component.PatternField");
35610 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_HIDDENCONTROL,"com.sun.star.form.component.HiddenControl");
35611 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_IMAGECONTROL,"com.sun.star.form.component.DatabaseImageControl");
35612 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_COMPONENT_FORMATTEDFIELD,"com.sun.star.form.component.FormattedField");
35613 - IMPLEMENT_CONSTASCII_USTRING( FM_SUN_COMPONENT_SCROLLBAR, "com.sun.star.form.component.ScrollBar" );
35614 - IMPLEMENT_CONSTASCII_USTRING( FM_SUN_COMPONENT_SPINBUTTON, "com.sun.star.form.component.SpinButton" );
35615 - IMPLEMENT_CONSTASCII_USTRING( FM_SUN_COMPONENT_NAVIGATIONBAR,"com.sun.star.form.component.NavigationToolBar" );
35617 - IMPLEMENT_CONSTASCII_USTRING(FM_SUN_CONTROL_GRIDCONTROL,"com.sun.star.form.control.GridControl");
35619 - IMPLEMENT_CONSTASCII_USTRING(FM_NUMBER_FORMATTER,"com.sun.star.util.NumberFormatter");
35620 - IMPLEMENT_CONSTASCII_USTRING(FM_FORM_CONTROLLER,"com.sun.star.form.FormController");
35621 - IMPLEMENT_CONSTASCII_USTRING(SRV_SDB_CONNECTION,"com.sun.star.sdb.Connection");
35622 - IMPLEMENT_CONSTASCII_USTRING(SRV_SDB_INTERACTION_HANDLER,"com.sun.star.sdb.InteractionHandler");
35623 -} // namespace svxform
35624 +#include "fmservs.hxx"
35626 // ------------------------------------------------------------------------
35627 #define DECL_SERVICE(ImplName) \
35628 diff --git svx/source/form/fmtextcontrolshell.cxx svx/source/form/fmtextcontrolshell.cxx
35629 index 2f51b66..ee80601 100644
35630 --- svx/source/form/fmtextcontrolshell.cxx
35631 +++ svx/source/form/fmtextcontrolshell.cxx
35632 @@ -94,7 +94,6 @@ namespace svx
35633 using namespace ::com::sun::star::util;
35634 using namespace ::com::sun::star::beans;
35635 using namespace ::com::sun::star::container;
35636 - using namespace ::svxform;
35638 //====================================================================
35639 typedef USHORT WhichId;
35640 diff --git svx/source/form/fmtools.cxx svx/source/form/fmtools.cxx
35641 index db407ef..1dcc7dd 100644
35642 --- svx/source/form/fmtools.cxx
35643 +++ svx/source/form/fmtools.cxx
35644 @@ -100,7 +100,6 @@
35645 #include <connectivity/dbtools.hxx>
35646 #include <comphelper/processfactory.hxx>
35647 #include <comphelper/sequence.hxx>
35648 -#include "fmstatic.hxx"
35649 #include <comphelper/extract.hxx>
35650 #include <comphelper/uno3.hxx>
35651 #include <connectivity/dbexception.hxx>
35652 @@ -109,14 +108,6 @@
35653 #include <cppuhelper/typeprovider.hxx>
35654 #include <algorithm>
35659 - IMPLEMENT_CONSTASCII_USTRING(DATA_MODE,"DataMode");
35660 - IMPLEMENT_CONSTASCII_USTRING(FILTER_MODE,"FilterMode");
35662 -} // namespace svxform
35664 using namespace ::com::sun::star::uno;
35665 using namespace ::com::sun::star::util;
35666 using namespace ::com::sun::star::lang;
35667 diff --git svx/source/form/fmundo.cxx svx/source/form/fmundo.cxx
35668 index f3b5c3d..dacea0b 100644
35669 --- svx/source/form/fmundo.cxx
35670 +++ svx/source/form/fmundo.cxx
35671 @@ -540,7 +540,7 @@ void SAL_CALL FmXUndoEnvironment::propertyChange(const PropertyChangeEvent& evt)
35674 // if it's a "default value" property of a control model, set the according "value" property
35675 - static const sal_Char* pDefaultValueProperties[] = {
35676 + static ::rtl::OUString pDefaultValueProperties[] = {
35677 FM_PROP_DEFAULT_TEXT, FM_PROP_DEFAULTCHECKED, FM_PROP_DEFAULT_DATE, FM_PROP_DEFAULT_TIME,
35678 FM_PROP_DEFAULT_VALUE, FM_PROP_DEFAULT_SELECT_SEQ, FM_PROP_EFFECTIVE_DEFAULT
35680 @@ -553,7 +553,7 @@ void SAL_CALL FmXUndoEnvironment::propertyChange(const PropertyChangeEvent& evt)
35681 "FmXUndoEnvironment::propertyChange: inconsistence!");
35682 for (sal_Int32 i=0; i<nDefaultValueProps; ++i)
35684 - if (0 == evt.PropertyName.compareToAscii(pDefaultValueProperties[i]))
35685 + if (0 == evt.PropertyName.compareTo(pDefaultValueProperties[i]))
35689 diff --git svx/source/form/fmurl.cxx svx/source/form/fmurl.cxx
35690 index 7f8cbc4..e69de29 100644
35691 --- svx/source/form/fmurl.cxx
35692 +++ svx/source/form/fmurl.cxx
35694 -/*************************************************************************
35696 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
35698 - * Copyright 2008 by Sun Microsystems, Inc.
35700 - * OpenOffice.org - a multi-platform office productivity suite
35702 - * $RCSfile: fmurl.cxx,v $
35703 - * $Revision: 1.7 $
35705 - * This file is part of OpenOffice.org.
35707 - * OpenOffice.org is free software: you can redistribute it and/or modify
35708 - * it under the terms of the GNU Lesser General Public License version 3
35709 - * only, as published by the Free Software Foundation.
35711 - * OpenOffice.org is distributed in the hope that it will be useful,
35712 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
35713 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35714 - * GNU Lesser General Public License version 3 for more details
35715 - * (a copy is included in the LICENSE file that accompanied this code).
35717 - * You should have received a copy of the GNU Lesser General Public License
35718 - * version 3 along with OpenOffice.org. If not, see
35719 - * <http://www.openoffice.org/license.html>
35720 - * for a copy of the LGPLv3 License.
35722 - ************************************************************************/
35724 -// MARKER(update_precomp.py): autogen include statement, do not remove
35725 -#include "precompiled_svx.hxx"
35726 -#include "fmurl.hxx"
35732 - IMPLEMENT_CONSTASCII_USTRING(FMURL_FORMSLOTS_PREFIX, ".uno:FormController/");
35734 - IMPLEMENT_CONSTASCII_USTRING(FMURL_FORM_POSITION, ".uno:FormController/positionForm" );
35735 - IMPLEMENT_CONSTASCII_USTRING(FMURL_FORM_RECORDCOUNT, ".uno:FormController/RecordCount" );
35736 - IMPLEMENT_CONSTASCII_USTRING(FMURL_RECORD_MOVEFIRST, ".uno:FormController/moveToFirst" );
35737 - IMPLEMENT_CONSTASCII_USTRING(FMURL_RECORD_MOVEPREV, ".uno:FormController/moveToPrev" );
35738 - IMPLEMENT_CONSTASCII_USTRING(FMURL_RECORD_MOVENEXT, ".uno:FormController/moveToNext" );
35739 - IMPLEMENT_CONSTASCII_USTRING(FMURL_RECORD_MOVELAST, ".uno:FormController/moveToLast" );
35740 - IMPLEMENT_CONSTASCII_USTRING(FMURL_RECORD_MOVETONEW, ".uno:FormController/moveToNew" );
35741 - IMPLEMENT_CONSTASCII_USTRING(FMURL_RECORD_UNDO, ".uno:FormController/undoRecord" );
35742 - IMPLEMENT_CONSTASCII_USTRING(FMURL_RECORD_SAVE, ".uno:FormController/saveRecord" );
35743 - IMPLEMENT_CONSTASCII_USTRING(FMURL_RECORD_DELETE, ".uno:FormController/deleteRecord" );
35744 - IMPLEMENT_CONSTASCII_USTRING(FMURL_FORM_REFRESH, ".uno:FormController/refreshForm" );
35745 - IMPLEMENT_CONSTASCII_USTRING(FMURL_FORM_REFRESH_CURRENT_CONTROL,
35746 - ".uno:FormController/refreshCurrentControl" );
35748 - IMPLEMENT_CONSTASCII_USTRING( FMURL_FORM_SORT_UP, ".uno:FormController/sortUp" );
35749 - IMPLEMENT_CONSTASCII_USTRING( FMURL_FORM_SORT_DOWN, ".uno:FormController/sortDown" );
35750 - IMPLEMENT_CONSTASCII_USTRING( FMURL_FORM_SORT, ".uno:FormController/sort" );
35751 - IMPLEMENT_CONSTASCII_USTRING( FMURL_FORM_AUTO_FILTER, ".uno:FormController/autoFilter" );
35752 - IMPLEMENT_CONSTASCII_USTRING( FMURL_FORM_FILTER, ".uno:FormController/filter" );
35753 - IMPLEMENT_CONSTASCII_USTRING( FMURL_FORM_APPLY_FILTER, ".uno:FormController/applyFilter" );
35754 - IMPLEMENT_CONSTASCII_USTRING( FMURL_FORM_REMOVE_FILTER,".uno:FormController/removeFilterOrder" );
35756 - IMPLEMENT_CONSTASCII_USTRING(FMURL_CONFIRM_DELETION,".uno:FormSlots/ConfirmDeletion");
35758 - IMPLEMENT_CONSTASCII_USTRING(FMURL_COMPONENT_FORMGRIDVIEW,".component:DB/FormGridView");
35759 - IMPLEMENT_CONSTASCII_USTRING(FMURL_GRIDVIEW_CLEARVIEW,".uno:FormSlots/ClearView");
35760 - IMPLEMENT_CONSTASCII_USTRING(FMURL_GRIDVIEW_ADDCOLUMN,".uno:FormSlots/AddGridColumn");
35761 - IMPLEMENT_CONSTASCII_USTRING(FMURL_GRIDVIEW_ATTACHTOFORM,".uno:FormSlots/AttachToForm");
35763 - IMPLEMENT_CONSTASCII_USTRING(FMARG_ATTACHTO_MASTERFORM,"MasterForm");
35764 - IMPLEMENT_CONSTASCII_USTRING(FMARG_ADDCOL_COLUMNTYPE,"ColumnType");
35765 - IMPLEMENT_CONSTASCII_USTRING(FMARG_ADDCOL_COLUMNPOS,"ColumnPosition");
35767 -} // namespace svxform
35768 diff --git svx/source/form/formcontrolling.cxx svx/source/form/formcontrolling.cxx
35769 index 8f63ca1..6bf0afb 100644
35770 --- svx/source/form/formcontrolling.cxx
35771 +++ svx/source/form/formcontrolling.cxx
35772 @@ -55,7 +55,6 @@ namespace svx
35774 //........................................................................
35776 - using namespace ::svxform;
35777 /** === begin UNO using === **/
35778 using ::com::sun::star::uno::Reference;
35779 using ::com::sun::star::lang::XMultiServiceFactory;
35780 diff --git svx/source/form/makefile.mk svx/source/form/makefile.mk
35781 index 0b5a7cd..403e6d4 100644
35782 --- svx/source/form/makefile.mk
35783 +++ svx/source/form/makefile.mk
35784 @@ -33,6 +33,7 @@ PRJ=..$/..
35790 ENABLE_EXCEPTIONS=TRUE
35792 @@ -57,7 +58,8 @@ SRC1FILES= \
35797 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
35799 $(SLO)$/formtoolbars.obj \
35800 $(SLO)$/fmdocumentclassification.obj \
35801 $(SLO)$/fmcontrolbordermanager.obj \
35802 @@ -65,7 +67,6 @@ SLOFILES = \
35803 $(SLO)$/fmtextcontroldialogs.obj \
35804 $(SLO)$/fmtextcontrolfeature.obj \
35805 $(SLO)$/fmtextcontrolshell.obj \
35806 - $(SLO)$/dbcharsethelper.obj \
35807 $(SLO)$/ParseContext.obj \
35808 $(SLO)$/typeconversionclient.obj \
35809 $(SLO)$/confirmdelete.obj \
35810 @@ -73,9 +74,7 @@ SLOFILES = \
35811 $(SLO)$/sqlparserclient.obj \
35812 $(SLO)$/dataaccessdescriptor.obj \
35813 $(SLO)$/fmpage.obj \
35814 - $(SLO)$/fmPropBrw.obj \
35815 $(SLO)$/fmundo.obj \
35816 - $(SLO)$/fmprop.obj \
35817 $(SLO)$/fmmodel.obj \
35818 $(SLO)$/navigatortree.obj \
35819 $(SLO)$/navigatortreemodel.obj \
35820 @@ -85,21 +84,14 @@ SLOFILES = \
35821 $(SLO)$/fmvwimp.obj \
35822 $(SLO)$/fmdpage.obj \
35823 $(SLO)$/fmitems.obj \
35824 - $(SLO)$/tbxform.obj \
35825 $(SLO)$/fmobj.obj \
35826 $(SLO)$/fmdmod.obj \
35827 - $(SLO)$/fmobjfac.obj \
35828 - $(SLO)$/fmsrccfg.obj \
35829 $(SLO)$/fmservs.obj \
35830 $(SLO)$/typemap.obj \
35831 $(SLO)$/fmexch.obj \
35832 - $(SLO)$/tabwin.obj \
35833 - $(SLO)$/fmurl.obj \
35834 - $(SLO)$/filtnav.obj \
35835 $(SLO)$/fmtools.obj \
35836 $(SLO)$/fmshimp.obj \
35837 $(SLO)$/fmshell.obj \
35838 - $(SLO)$/fmsrcimp.obj \
35839 $(SLO)$/fmview.obj \
35840 $(SLO)$/sdbdatacolumn.obj \
35841 $(SLO)$/formcontrolling.obj \
35842 @@ -109,13 +101,22 @@ SLOFILES = \
35843 $(SLO)$/datalistener.obj \
35844 $(SLO)$/fmscriptingenv.obj \
35845 $(SLO)$/stringlistresource.obj \
35846 - $(SLO)$/databaselocationinput.obj \
35847 $(SLO)$/delayedevent.obj \
35848 $(SLO)$/formcontrolfactory.obj
35850 -.IF "$(OS)$(CPU)"=="SOLARISI"
35851 -NOOPTFILES=$(SLO)$/fmprop.obj
35853 +LIB2TARGET= $(SLB)$/$(TARGET).lib
35855 + $(SLO)$/dbcharsethelper.obj \
35856 + $(SLO)$/fmPropBrw.obj \
35857 + $(SLO)$/tbxform.obj \
35858 + $(SLO)$/fmobjfac.obj \
35859 + $(SLO)$/fmsrccfg.obj \
35860 + $(SLO)$/tabwin.obj \
35861 + $(SLO)$/filtnav.obj \
35862 + $(SLO)$/fmsrcimp.obj \
35863 + $(SLO)$/databaselocationinput.obj
35865 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
35867 # --- Targets ----------------------------------
35869 diff --git svx/source/gengal/makefile.mk svx/source/gengal/makefile.mk
35870 index 92b38a7..9bb7bc1 100644
35871 --- svx/source/gengal/makefile.mk
35872 +++ svx/source/gengal/makefile.mk
35873 @@ -71,7 +71,7 @@ APP1STDLIBS=$(TOOLSLIB) \
35880 #.IF "$(COM)"=="GCC"
35881 #ADDOPTFILES=$(OBJ)$/gengal.obj
35882 diff --git svx/source/inc/AccessibleStringWrap.hxx svx/source/inc/AccessibleStringWrap.hxx
35883 index dba73db..0d4e5c4 100644
35884 --- svx/source/inc/AccessibleStringWrap.hxx
35885 +++ svx/source/inc/AccessibleStringWrap.hxx
35887 #include <sal/types.h>
35888 #include <tools/string.hxx>
35890 +#include <svx/svxdllapi.h>
35892 class OutputDevice;
35895 @@ -49,10 +51,10 @@ class AccessibleStringWrap
35899 - AccessibleStringWrap( OutputDevice& rDev, SvxFont& rFont, const String& rText );
35900 + SVX_DLLPUBLIC AccessibleStringWrap( OutputDevice& rDev, SvxFont& rFont, const String& rText );
35902 - sal_Bool GetCharacterBounds( sal_Int32 nIndex, Rectangle& rRect );
35903 - sal_Int32 GetIndexAtPoint( const Point& rPoint );
35904 + SVX_DLLPUBLIC sal_Bool GetCharacterBounds( sal_Int32 nIndex, Rectangle& rRect );
35905 + SVX_DLLPUBLIC sal_Int32 GetIndexAtPoint( const Point& rPoint );
35909 diff --git svx/source/inc/datanavi.hxx svx/source/inc/datanavi.hxx
35910 index 5f0e48c..b63dcb9 100644
35911 --- svx/source/inc/datanavi.hxx
35912 +++ svx/source/inc/datanavi.hxx
35913 @@ -307,10 +307,10 @@ namespace svxform
35916 //========================================================================
35917 - class DataNavigatorManager : public SfxChildWindow
35918 + class SVX_DLLPUBLIC DataNavigatorManager : public SfxChildWindow
35921 - DataNavigatorManager( Window* pParent, sal_uInt16 nId,
35922 + SVX_DLLPRIVATE DataNavigatorManager( Window* pParent, sal_uInt16 nId,
35923 SfxBindings* pBindings, SfxChildWinInfo* pInfo );
35924 SFX_DECL_CHILDWINDOW( DataNavigatorManager );
35926 diff --git svx/source/inc/dbtoolsclient.hxx svx/source/inc/dbtoolsclient.hxx
35927 index b1d41e0..56bd0cc 100644
35928 --- svx/source/inc/dbtoolsclient.hxx
35929 +++ svx/source/inc/dbtoolsclient.hxx
35931 #include <osl/module.h>
35932 #include <tools/solar.h>
35933 #include <unotools/sharedunocomponent.hxx>
35934 +#include <svx/svxdllapi.h>
35936 //........................................................................
35938 @@ -50,7 +51,7 @@ namespace svxform
35939 /** base class for classes which want to use dbtools features with load-on-call
35940 of the dbtools lib.
35942 - class ODbtoolsClient
35943 + class SVX_DLLPUBLIC ODbtoolsClient
35946 static ::osl::Mutex s_aMutex;
35947 @@ -82,7 +83,7 @@ namespace svxform
35948 //====================================================================
35949 //= OStaticDataAccessTools
35950 //====================================================================
35951 - class OStaticDataAccessTools : public ODbtoolsClient
35952 + class SVX_DLLPUBLIC OStaticDataAccessTools : public ODbtoolsClient
35955 mutable ::rtl::Reference< ::connectivity::simple::IDataAccessTools > m_xDataAccessTools;
35956 @@ -93,7 +94,7 @@ namespace svxform
35958 OStaticDataAccessTools();
35960 - const ::rtl::Reference< ::connectivity::simple::IDataAccessTools >& getDataAccessTools() const { return m_xDataAccessTools; }
35961 + SVX_DLLPRIVATE const ::rtl::Reference< ::connectivity::simple::IDataAccessTools >& getDataAccessTools() const { return m_xDataAccessTools; }
35963 // ------------------------------------------------
35964 ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier> getNumberFormats(
35965 @@ -102,13 +103,13 @@ namespace svxform
35968 // ------------------------------------------------
35969 - sal_Int32 getDefaultNumberFormat(
35970 + SVX_DLLPRIVATE sal_Int32 getDefaultNumberFormat(
35971 const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _xColumn,
35972 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatTypes >& _xTypes,
35973 const ::com::sun::star::lang::Locale& _rLocale );
35975 // ------------------------------------------------
35976 - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getConnection_withFeedback(
35977 + SVX_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getConnection_withFeedback(
35978 const ::rtl::OUString& _rDataSourceName,
35979 const ::rtl::OUString& _rUser,
35980 const ::rtl::OUString& _rPwd,
35981 @@ -130,26 +131,26 @@ namespace svxform
35982 const SAL_THROW ( (::com::sun::star::uno::RuntimeException) );
35984 // ------------------------------------------------
35985 - void TransferFormComponentProperties(
35986 + SVX_DLLPRIVATE void TransferFormComponentProperties(
35987 const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxOld,
35988 const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxNew,
35989 const ::com::sun::star::lang::Locale& _rLocale
35992 // ------------------------------------------------
35993 - ::rtl::OUString quoteName(
35994 + SVX_DLLPRIVATE ::rtl::OUString quoteName(
35995 const ::rtl::OUString& _rQuote,
35996 const ::rtl::OUString& _rName
35999 // ------------------------------------------------
36000 - ::rtl::OUString composeTableNameForSelect(
36001 + SVX_DLLPRIVATE ::rtl::OUString composeTableNameForSelect(
36002 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
36003 const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xTable
36006 // ------------------------------------------------
36007 - ::com::sun::star::sdb::SQLContext prependContextInfo(
36008 + SVX_DLLPRIVATE ::com::sun::star::sdb::SQLContext prependContextInfo(
36009 ::com::sun::star::sdbc::SQLException& _rException,
36010 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext,
36011 const ::rtl::OUString& _rContextDescription,
36012 @@ -157,7 +158,7 @@ namespace svxform
36015 // ------------------------------------------------
36016 - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource > getDataSource(
36017 + SVX_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource > getDataSource(
36018 const ::rtl::OUString& _rsRegisteredName,
36019 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory
36021 @@ -166,22 +167,22 @@ namespace svxform
36022 /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::INSERT
36023 @param _rxCursorSet the property set
36025 - sal_Bool canInsert(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
36026 + SVX_DLLPRIVATE sal_Bool canInsert(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
36028 // ------------------------------------------------
36029 /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::UPDATE
36030 @param _rxCursorSet the property set
36032 - sal_Bool canUpdate(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
36033 + SVX_DLLPRIVATE sal_Bool canUpdate(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
36035 // ------------------------------------------------
36036 /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::DELETE
36037 @param _rxCursorSet the property set
36039 - sal_Bool canDelete(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
36040 + SVX_DLLPRIVATE sal_Bool canDelete(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
36042 // ------------------------------------------------
36043 - ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
36044 + SVX_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
36045 getFieldsByCommandDescriptor(
36046 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
36047 const sal_Int32 _nCommandType,
36048 @@ -200,13 +201,13 @@ namespace svxform
36049 ) SAL_THROW( ( ) );
36051 // ------------------------------------------------
36052 - bool isEmbeddedInDatabase(
36053 + SVX_DLLPRIVATE bool isEmbeddedInDatabase(
36054 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent,
36055 ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxActualConnection
36058 // ------------------------------------------------
36059 - bool isEmbeddedInDatabase(
36060 + SVX_DLLPRIVATE bool isEmbeddedInDatabase(
36061 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent
36064 diff --git svx/source/inc/filtnav.hxx svx/source/inc/filtnav.hxx
36065 index fbce080..30f9ec1 100644
36066 --- svx/source/inc/filtnav.hxx
36067 +++ svx/source/inc/filtnav.hxx
36069 #include <vcl/image.hxx>
36070 #include <svtools/svtreebx.hxx>
36072 -#ifndef _DIALOG_HXX //autogen
36073 #include <vcl/dialog.hxx>
36076 -#ifndef _GROUP_HXX //autogen
36077 #include <vcl/group.hxx>
36079 #include <vcl/dockwin.hxx>
36080 #include "fmtools.hxx"
36081 #include "fmexch.hxx"
36082 diff --git svx/source/inc/fmctrler.hxx svx/source/inc/fmctrler.hxx
36083 index 2c56c5f..0430e04 100644
36084 --- svx/source/inc/fmctrler.hxx
36085 +++ svx/source/inc/fmctrler.hxx
36086 @@ -273,7 +273,7 @@ public:
36088 virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
36089 static ::com::sun::star::uno::Sequence< sal_Int8 > getUnoTunnelImplementationId();
36090 - static FmXFormController* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent );
36091 + SVX_DLLPUBLIC static FmXFormController* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent );
36094 virtual void SAL_CALL dispatch( const ::com::sun::star::util::URL& _rURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rArgs ) throw (::com::sun::star::uno::RuntimeException);
36095 @@ -462,7 +462,7 @@ public:
36096 --m_nCurrentFilterPosition;
36099 - void setCurrentFilterPosition(sal_Int32 nPos);
36100 + SVX_DLLPUBLIC void setCurrentFilterPosition(sal_Int32 nPos);
36101 sal_Int32 getCurrentFilterPosition() const {return m_nCurrentFilterPosition;}
36104 diff --git svx/source/inc/fmexch.hxx svx/source/inc/fmexch.hxx
36105 index d6c44bc..2547f6d 100644
36106 --- svx/source/inc/fmexch.hxx
36107 +++ svx/source/inc/fmexch.hxx
36109 #include <com/sun/star/container/XNameContainer.hpp>
36110 #include <tools/link.hxx>
36112 +#include <svx/svxdllapi.h>
36117 @@ -63,7 +65,7 @@ namespace svxform
36118 //====================================================================
36120 //====================================================================
36121 - class OLocalExchange : public TransferableHelper
36122 + class SVX_DLLPUBLIC OLocalExchange : public TransferableHelper
36125 Link m_aClipboardListener;
36126 @@ -110,7 +112,7 @@ namespace svxform
36127 //= OLocalExchangeHelper
36128 //====================================================================
36129 /// a helper for navigator windows (SvTreeListBox'es) which allow DnD within themself
36130 - class OLocalExchangeHelper
36131 + class SVX_DLLPUBLIC OLocalExchangeHelper
36134 Window* m_pDragSource;
36135 @@ -130,13 +132,13 @@ namespace svxform
36136 inline sal_Bool isDataExchangeActive( ) const { return isDragSource() || isClipboardOwner(); }
36137 inline void clear() { if ( isDataExchangeActive() ) m_pTransferable->clear(); }
36139 - void setClipboardListener( const Link& _rListener ) { if ( m_pTransferable ) m_pTransferable->setClipboardListener( _rListener ); }
36140 + SVX_DLLPRIVATE void setClipboardListener( const Link& _rListener ) { if ( m_pTransferable ) m_pTransferable->setClipboardListener( _rListener ); }
36143 - virtual OLocalExchange* createExchange() const = 0;
36144 + SVX_DLLPRIVATE virtual OLocalExchange* createExchange() const = 0;
36147 - void implReset();
36148 + SVX_DLLPRIVATE void implReset();
36151 //====================================================================
36152 diff --git svx/source/inc/fmexpl.hxx svx/source/inc/fmexpl.hxx
36153 index 40f6522..28920e4 100644
36154 --- svx/source/inc/fmexpl.hxx
36155 +++ svx/source/inc/fmexpl.hxx
36156 @@ -593,10 +593,10 @@ namespace svxform
36159 //========================================================================
36160 - class NavigatorFrameManager : public SfxChildWindow
36161 + class SVX_DLLPUBLIC NavigatorFrameManager : public SfxChildWindow
36164 - NavigatorFrameManager( Window *pParent, sal_uInt16 nId, SfxBindings *pBindings,
36165 + SVX_DLLPRIVATE NavigatorFrameManager( Window *pParent, sal_uInt16 nId, SfxBindings *pBindings,
36166 SfxChildWinInfo *pInfo );
36167 SFX_DECL_CHILDWINDOW( NavigatorFrameManager );
36169 diff --git svx/source/inc/fmobj.hxx svx/source/inc/fmobj.hxx
36170 index defd657..0934fd6 100644
36171 --- svx/source/inc/fmobj.hxx
36172 +++ svx/source/inc/fmobj.hxx
36173 @@ -62,8 +62,8 @@ class FmFormObj: public SdrUnoObj
36174 // only to be used for comparison with the current ref device!
36177 - FmFormObj(const ::rtl::OUString& rModelName,sal_Int32 _nType);
36178 - FmFormObj(sal_Int32 _nType);
36179 + SVX_DLLPUBLIC FmFormObj(const ::rtl::OUString& rModelName,sal_Int32 _nType);
36180 + SVX_DLLPUBLIC FmFormObj(sal_Int32 _nType);
36184 diff --git svx/source/inc/fmprop.hrc svx/source/inc/fmprop.hrc
36185 index 1c2204c..5f227c4 100644
36186 --- svx/source/inc/fmprop.hrc
36187 +++ svx/source/inc/fmprop.hrc
36189 #ifndef _SVX_FMPROP_HRC
36190 #define _SVX_FMPROP_HRC
36192 -#ifndef _FM_STATIC_HXX_
36193 -#include "fmstatic.hxx"
36195 // PropertyId's, welche eine Zuordnung zu einen PropertyName haben, das koennten
36196 // auch in Zukunft WhichIds sein -> Itemset
36197 #define FM_ATTR_START 0
36198 @@ -40,150 +37,144 @@
36199 #define FM_ATTR_FILTER ( FM_ATTR_START + 1 )
36200 #define FM_ATTR_FORM_OPERATIONS ( FM_ATTR_START + 2 )
36205 - DECLARE_CONSTASCII_USTRING(FM_PROP_NAME);
36206 - DECLARE_CONSTASCII_USTRING(FM_PROP_CLASSID);
36207 - DECLARE_CONSTASCII_USTRING(FM_PROP_ALIGN);
36208 - DECLARE_CONSTASCII_USTRING(FM_PROP_ROWCOUNT);
36209 - DECLARE_CONSTASCII_USTRING(FM_PROP_ROWCOUNTFINAL);
36210 - DECLARE_CONSTASCII_USTRING(FM_PROP_FETCHSIZE);
36211 - DECLARE_CONSTASCII_USTRING(FM_PROP_VALUE);
36212 - DECLARE_CONSTASCII_USTRING(FM_PROP_VALUEMIN);
36213 - DECLARE_CONSTASCII_USTRING(FM_PROP_VALUEMAX);
36214 - DECLARE_CONSTASCII_USTRING(FM_PROP_VALUESTEP);
36215 - DECLARE_CONSTASCII_USTRING(FM_PROP_TEXT);
36216 - DECLARE_CONSTASCII_USTRING(FM_PROP_LABEL);
36217 - DECLARE_CONSTASCII_USTRING(FM_PROP_NAVIGATION);
36218 - DECLARE_CONSTASCII_USTRING(FM_PROP_CYCLE);
36219 - DECLARE_CONSTASCII_USTRING(FM_PROP_CONTROLSOURCE);
36220 - DECLARE_CONSTASCII_USTRING(FM_PROP_ENABLED);
36221 - DECLARE_CONSTASCII_USTRING(FM_PROP_SPIN);
36222 - DECLARE_CONSTASCII_USTRING(FM_PROP_READONLY);
36223 - DECLARE_CONSTASCII_USTRING(FM_PROP_FILTER);
36224 - DECLARE_CONSTASCII_USTRING(FM_PROP_AUTOINCREMENT);
36225 - DECLARE_CONSTASCII_USTRING(FM_PROP_WIDTH);
36226 - DECLARE_CONSTASCII_USTRING(FM_PROP_SEARCHABLE);
36227 - DECLARE_CONSTASCII_USTRING(FM_PROP_MULTILINE);
36228 - DECLARE_CONSTASCII_USTRING(FM_PROP_TARGET_URL);
36229 - DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULTCONTROL);
36230 - DECLARE_CONSTASCII_USTRING(FM_PROP_MAXTEXTLEN);
36231 - DECLARE_CONSTASCII_USTRING(FM_PROP_DATE);
36232 - DECLARE_CONSTASCII_USTRING(FM_PROP_TIME);
36233 - DECLARE_CONSTASCII_USTRING(FM_PROP_STATE);
36234 - DECLARE_CONSTASCII_USTRING(FM_PROP_TRISTATE);
36235 - DECLARE_CONSTASCII_USTRING(FM_PROP_STRINGITEMLIST);
36236 - DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_TEXT);
36237 - DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULTCHECKED);
36238 - DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_DATE);
36239 - DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_TIME);
36240 - DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_VALUE);
36241 - DECLARE_CONSTASCII_USTRING(FM_PROP_FORMATKEY);
36242 - DECLARE_CONSTASCII_USTRING(FM_PROP_FORMATSSUPPLIER);
36243 - DECLARE_CONSTASCII_USTRING(FM_PROP_LISTSOURCETYPE);
36244 - DECLARE_CONSTASCII_USTRING(FM_PROP_LISTSOURCE);
36245 - DECLARE_CONSTASCII_USTRING(FM_PROP_SELECT_SEQ);
36246 - DECLARE_CONSTASCII_USTRING(FM_PROP_VALUE_SEQ);
36247 - DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_SELECT_SEQ);
36248 - DECLARE_CONSTASCII_USTRING(FM_PROP_DECIMAL_ACCURACY);
36249 - DECLARE_CONSTASCII_USTRING(FM_PROP_EDITMASK);
36250 - DECLARE_CONSTASCII_USTRING(FM_PROP_ISREADONLY);
36251 - DECLARE_CONSTASCII_USTRING(FM_PROP_FIELDTYPE);
36252 - DECLARE_CONSTASCII_USTRING(FM_PROP_REFVALUE);
36253 - DECLARE_CONSTASCII_USTRING(FM_PROP_STRICTFORMAT);
36254 - DECLARE_CONSTASCII_USTRING(FM_PROP_DATASOURCE);
36255 - DECLARE_CONSTASCII_USTRING(FM_PROP_LITERALMASK);
36256 - DECLARE_CONSTASCII_USTRING(FM_PROP_SHOWTHOUSANDSEP);
36257 - DECLARE_CONSTASCII_USTRING(FM_PROP_CURRENCYSYMBOL);
36258 - DECLARE_CONSTASCII_USTRING(FM_PROP_DATEFORMAT);
36259 - DECLARE_CONSTASCII_USTRING(FM_PROP_DATEMIN);
36260 - DECLARE_CONSTASCII_USTRING(FM_PROP_DATEMAX);
36261 - DECLARE_CONSTASCII_USTRING(FM_PROP_DATE_SHOW_CENTURY);
36262 - DECLARE_CONSTASCII_USTRING(FM_PROP_TIMEFORMAT);
36263 - DECLARE_CONSTASCII_USTRING(FM_PROP_TIMEMIN);
36264 - DECLARE_CONSTASCII_USTRING(FM_PROP_TIMEMAX);
36265 - DECLARE_CONSTASCII_USTRING(FM_PROP_LINECOUNT);
36266 - DECLARE_CONSTASCII_USTRING(FM_PROP_BOUNDCOLUMN);
36267 - DECLARE_CONSTASCII_USTRING(FM_PROP_HASNAVIGATION);
36268 - DECLARE_CONSTASCII_USTRING(FM_PROP_FONT);
36269 - DECLARE_CONSTASCII_USTRING(FM_PROP_BACKGROUNDCOLOR);
36270 - DECLARE_CONSTASCII_USTRING(FM_PROP_TEXTCOLOR);
36271 - DECLARE_CONSTASCII_USTRING(FM_PROP_BORDER);
36272 - DECLARE_CONSTASCII_USTRING(FM_PROP_DROPDOWN);
36273 - DECLARE_CONSTASCII_USTRING(FM_PROP_ROWHEIGHT);
36274 - DECLARE_CONSTASCII_USTRING(FM_PROP_HELPTEXT);
36275 - DECLARE_CONSTASCII_USTRING(FM_PROP_HELPURL);
36276 - DECLARE_CONSTASCII_USTRING(FM_PROP_RECORDMARKER);
36277 - DECLARE_CONSTASCII_USTRING(FM_PROP_BOUNDFIELD);
36278 - DECLARE_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_VALUE);
36279 - DECLARE_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_DEFAULT);
36280 - DECLARE_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_MIN);
36281 - DECLARE_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_MAX);
36282 - DECLARE_CONSTASCII_USTRING(FM_PROP_HIDDEN);
36283 - DECLARE_CONSTASCII_USTRING(FM_PROP_FILTERPROPOSAL);
36284 - DECLARE_CONSTASCII_USTRING(FM_PROP_FIELDSOURCE);
36285 - DECLARE_CONSTASCII_USTRING(FM_PROP_TABLENAME);
36286 - DECLARE_CONSTASCII_USTRING(FM_PROP_FILTERSUPPLIER);
36287 - DECLARE_CONSTASCII_USTRING(FM_PROP_CURRENTFILTER);
36288 - DECLARE_CONSTASCII_USTRING(FM_PROP_SELECTED_FIELDS);
36289 - DECLARE_CONSTASCII_USTRING(FM_PROP_SELECTED_TABLES);
36290 - DECLARE_CONSTASCII_USTRING(FM_PROP_THREADSAFE);
36291 - DECLARE_CONSTASCII_USTRING(FM_PROP_CONTROLLABEL);
36292 - DECLARE_CONSTASCII_USTRING(FM_PROP_CURSORCOLOR);
36293 - DECLARE_CONSTASCII_USTRING(FM_PROP_ALWAYSSHOWCURSOR);
36294 - DECLARE_CONSTASCII_USTRING(FM_PROP_DISPLAYSYNCHRON);
36295 - DECLARE_CONSTASCII_USTRING(FM_PROP_ISMODIFIED);
36296 - DECLARE_CONSTASCII_USTRING(FM_PROP_ISNEW);
36297 - DECLARE_CONSTASCII_USTRING(FM_PROP_PRIVILEGES);
36298 - DECLARE_CONSTASCII_USTRING(FM_PROP_COMMAND);
36299 - DECLARE_CONSTASCII_USTRING(FM_PROP_COMMANDTYPE);
36300 - DECLARE_CONSTASCII_USTRING(FM_PROP_RESULTSET_CONCURRENCY);
36301 - DECLARE_CONSTASCII_USTRING(FM_PROP_INSERTONLY);
36302 - DECLARE_CONSTASCII_USTRING(FM_PROP_RESULTSET_TYPE);
36303 - DECLARE_CONSTASCII_USTRING(FM_PROP_ESCAPE_PROCESSING);
36304 - DECLARE_CONSTASCII_USTRING(FM_PROP_APPLYFILTER);
36305 - DECLARE_CONSTASCII_USTRING(FM_PROP_ISNULLABLE);
36306 - DECLARE_CONSTASCII_USTRING(FM_PROP_ACTIVECOMMAND);
36307 - DECLARE_CONSTASCII_USTRING(FM_PROP_ISCURRENCY);
36308 - DECLARE_CONSTASCII_USTRING(FM_PROP_URL);
36309 - DECLARE_CONSTASCII_USTRING(FM_PROP_ACTIVE_CONNECTION);
36310 - DECLARE_CONSTASCII_USTRING(FM_PROP_SORT);
36311 - DECLARE_CONSTASCII_USTRING(FM_PROP_CONTROLSOURCEPROPERTY);
36312 - DECLARE_CONSTASCII_USTRING(FM_PROP_REALNAME);
36313 - DECLARE_CONSTASCII_USTRING(FM_PROP_TEXTLINECOLOR);
36314 - DECLARE_CONSTASCII_USTRING(FM_PROP_FONTEMPHASISMARK);
36315 - DECLARE_CONSTASCII_USTRING(FM_PROP_FONTRELIEF);
36316 - DECLARE_CONSTASCII_USTRING( FM_PROP_SCROLLVALUE_MIN );
36317 - DECLARE_CONSTASCII_USTRING( FM_PROP_SCROLLVALUE_MAX );
36318 - DECLARE_CONSTASCII_USTRING( FM_PROP_DEFAULT_SCROLLVALUE );
36319 - DECLARE_CONSTASCII_USTRING( FM_PROP_LINEINCREMENT );
36320 - DECLARE_CONSTASCII_USTRING( FM_PROP_BLOCKINCREMENT );
36321 - DECLARE_CONSTASCII_USTRING( FM_PROP_ORIENTATION );
36322 - DECLARE_CONSTASCII_USTRING( FM_PROP_REPEAT );
36323 - DECLARE_CONSTASCII_USTRING( FM_PROP_REPEATDELAY );
36324 - DECLARE_CONSTASCII_USTRING( FM_PROP_SYMBOLCOLOR );
36325 - DECLARE_CONSTASCII_USTRING( FM_PROP_VISIBILESIZE );
36326 - DECLARE_CONSTASCII_USTRING( FM_PROP_SPINVALUE_MIN );
36327 - DECLARE_CONSTASCII_USTRING( FM_PROP_SPINVALUE_MAX );
36328 - DECLARE_CONSTASCII_USTRING( FM_PROP_DEFAULT_SPINVALUE );
36329 - DECLARE_CONSTASCII_USTRING( FM_PROP_SPININCREMENT );
36330 - DECLARE_CONSTASCII_USTRING( FM_PROP_LINEENDFORMAT );
36331 - DECLARE_CONSTASCII_USTRING( FM_PROP_TOGGLE );
36332 - DECLARE_CONSTASCII_USTRING( FM_PROP_FOCUSONCLICK );
36333 - DECLARE_CONSTASCII_USTRING( FM_PROP_HIDEINACTIVESELECTION );
36334 - DECLARE_CONSTASCII_USTRING( FM_PROP_VISUALEFFECT );
36335 - DECLARE_CONSTASCII_USTRING( FM_PROP_BORDERCOLOR );
36336 - DECLARE_CONSTASCII_USTRING( FM_PROP_DYNAMIC_CONTROL_BORDER );
36337 - DECLARE_CONSTASCII_USTRING( FM_PROP_CONTROL_BORDER_COLOR_FOCUS );
36338 - DECLARE_CONSTASCII_USTRING( FM_PROP_CONTROL_BORDER_COLOR_MOUSE );
36339 - DECLARE_CONSTASCII_USTRING( FM_PROP_CONTROL_BORDER_COLOR_INVALID );
36340 - DECLARE_CONSTASCII_USTRING( FM_PROP_BUTTON_TYPE );
36341 - DECLARE_CONSTASCII_USTRING( FM_PROP_FORM_OPERATIONS );
36342 - DECLARE_CONSTASCII_USTRING( FM_PROP_INPUT_REQUIRED );
36343 - DECLARE_CONSTASCII_USTRING( FM_PROP_WRITING_MODE );
36345 -} // namespace svxform
36346 +#define FM_PROP_NAME rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Name" ) )
36347 +#define FM_PROP_CLASSID rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ClassId" ) )
36348 +#define FM_PROP_ALIGN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Align" ) )
36349 +#define FM_PROP_ROWCOUNT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RowCount" ) )
36350 +#define FM_PROP_ROWCOUNTFINAL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsRowCountFinal" ) )
36351 +#define FM_PROP_FETCHSIZE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FetchSize" ) )
36352 +#define FM_PROP_VALUE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Value" ) )
36353 +#define FM_PROP_VALUEMIN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ValueMin" ) )
36354 +#define FM_PROP_VALUEMAX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ValueMax" ) )
36355 +#define FM_PROP_VALUESTEP rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ValueStep" ) )
36356 +#define FM_PROP_TEXT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Text" ) )
36357 +#define FM_PROP_LABEL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Label" ) )
36358 +#define FM_PROP_NAVIGATION rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "NavigationBarMode" ) )
36359 +#define FM_PROP_CYCLE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cycle" ) )
36360 +#define FM_PROP_CONTROLSOURCE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DataField" ) )
36361 +#define FM_PROP_ENABLED rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Enabled" ) )
36362 +#define FM_PROP_SPIN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Spin" ) )
36363 +#define FM_PROP_READONLY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ReadOnly" ) )
36364 +#define FM_PROP_FILTER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Filter" ) )
36365 +#define FM_PROP_AUTOINCREMENT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsAutoIncrement" ) )
36366 +#define FM_PROP_WIDTH rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Width" ) )
36367 +#define FM_PROP_SEARCHABLE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsSearchable" ) )
36368 +#define FM_PROP_MULTILINE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MultiLine" ) )
36369 +#define FM_PROP_TARGET_URL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" ) )
36370 +#define FM_PROP_DEFAULTCONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultControl" ) )
36371 +#define FM_PROP_MAXTEXTLEN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MaxTextLen" ) )
36372 +#define FM_PROP_DATE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Date" ) )
36373 +#define FM_PROP_TIME rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Time" ) )
36374 +#define FM_PROP_STATE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "State" ) )
36375 +#define FM_PROP_TRISTATE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TriState" ) )
36376 +#define FM_PROP_STRINGITEMLIST rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StringItemList" ) )
36377 +#define FM_PROP_DEFAULT_TEXT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultText" ) )
36378 +#define FM_PROP_DEFAULTCHECKED rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultState" ) )
36379 +#define FM_PROP_DEFAULT_DATE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultDate" ) )
36380 +#define FM_PROP_DEFAULT_TIME rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultTime" ) )
36381 +#define FM_PROP_DEFAULT_VALUE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultValue" ) )
36382 +#define FM_PROP_FORMATKEY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FormatKey" ) )
36383 +#define FM_PROP_FORMATSSUPPLIER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FormatsSupplier" ) )
36384 +#define FM_PROP_LISTSOURCETYPE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ListSourceType" ) )
36385 +#define FM_PROP_LISTSOURCE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ListSource" ) )
36386 +#define FM_PROP_SELECT_SEQ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SelectedItems" ) )
36387 +#define FM_PROP_VALUE_SEQ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ValueItemList" ) )
36388 +#define FM_PROP_DEFAULT_SELECT_SEQ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultSelection" ) )
36389 +#define FM_PROP_DECIMAL_ACCURACY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DecimalAccuracy" ) )
36390 +#define FM_PROP_EDITMASK rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EditMask" ) )
36391 +#define FM_PROP_ISREADONLY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsReadOnly" ) )
36392 +#define FM_PROP_FIELDTYPE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Type" ) )
36393 +#define FM_PROP_REFVALUE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RefValue" ) )
36394 +#define FM_PROP_STRICTFORMAT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StrictFormat" ) )
36395 +#define FM_PROP_DATASOURCE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DataSourceName" ) )
36396 +#define FM_PROP_LITERALMASK rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LiteralMask" ) )
36397 +#define FM_PROP_SHOWTHOUSANDSEP rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ShowThousandsSeparator" ) )
36398 +#define FM_PROP_CURRENCYSYMBOL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CurrencySymbol" ) )
36399 +#define FM_PROP_DATEFORMAT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateFormat" ) )
36400 +#define FM_PROP_DATEMIN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateMin" ) )
36401 +#define FM_PROP_DATEMAX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateMax" ) )
36402 +#define FM_PROP_DATE_SHOW_CENTURY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateShowCentury" ) )
36403 +#define FM_PROP_TIMEFORMAT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TimeFormat" ) )
36404 +#define FM_PROP_TIMEMIN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TimeMin" ) )
36405 +#define FM_PROP_TIMEMAX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TimeMax" ) )
36406 +#define FM_PROP_LINECOUNT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LineCount" ) )
36407 +#define FM_PROP_BOUNDCOLUMN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "BoundColumn" ) )
36408 +#define FM_PROP_HASNAVIGATION rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "HasNavigationBar" ) )
36409 +#define FM_PROP_FONT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FontDescriptor" ) )
36410 +#define FM_PROP_BACKGROUNDCOLOR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "BackgroundColor" ) )
36411 +#define FM_PROP_TEXTCOLOR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TextColor" ) )
36412 +#define FM_PROP_BORDER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Border" ) )
36413 +#define FM_PROP_DROPDOWN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Dropdown" ) )
36414 +#define FM_PROP_ROWHEIGHT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RowHeight" ) )
36415 +#define FM_PROP_HELPTEXT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "HelpText" ) )
36416 +#define FM_PROP_HELPURL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "HelpURL" ) )
36417 +#define FM_PROP_RECORDMARKER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "HasRecordMarker" ) )
36418 +#define FM_PROP_BOUNDFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "BoundField" ) )
36419 +#define FM_PROP_EFFECTIVE_VALUE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EffectiveValue" ) )
36420 +#define FM_PROP_EFFECTIVE_DEFAULT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EffectiveDefault" ) )
36421 +#define FM_PROP_EFFECTIVE_MIN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EffectiveMin" ) )
36422 +#define FM_PROP_EFFECTIVE_MAX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EffectiveMax" ) )
36423 +#define FM_PROP_HIDDEN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Hidden" ) )
36424 +#define FM_PROP_FILTERPROPOSAL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UseFilterValueProposal" ) )
36425 +#define FM_PROP_FIELDSOURCE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FieldSource" ) )
36426 +#define FM_PROP_TABLENAME rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TableName" ) )
36427 +#define FM_PROP_FILTERSUPPLIER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterSupplier" ) )
36428 +#define FM_PROP_CURRENTFILTER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CurrentFilter" ) )
36429 +#define FM_PROP_SELECTED_FIELDS rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SelectedFields" ) )
36430 +#define FM_PROP_SELECTED_TABLES rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SelectedTables" ) )
36431 +#define FM_PROP_THREADSAFE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ThreadSafe" ) )
36432 +#define FM_PROP_CONTROLLABEL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LabelControl" ) )
36433 +#define FM_PROP_CURSORCOLOR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CursorColor" ) )
36434 +#define FM_PROP_ALWAYSSHOWCURSOR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AlwaysShowCursor" ) )
36435 +#define FM_PROP_DISPLAYSYNCHRON rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DisplayIsSynchron" ) )
36436 +#define FM_PROP_ISMODIFIED rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsModified" ) )
36437 +#define FM_PROP_ISNEW rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsNew" ) )
36438 +#define FM_PROP_PRIVILEGES rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Privileges" ) )
36439 +#define FM_PROP_COMMAND rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Command" ) )
36440 +#define FM_PROP_COMMANDTYPE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CommandType" ) )
36441 +#define FM_PROP_RESULTSET_CONCURRENCY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ResultSetConcurrency" ) )
36442 +#define FM_PROP_INSERTONLY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IgnoreResult" ) )
36443 +#define FM_PROP_RESULTSET_TYPE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ResultSetType" ) )
36444 +#define FM_PROP_ESCAPE_PROCESSING rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EscapeProcessing" ) )
36445 +#define FM_PROP_APPLYFILTER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ApplyFilter" ) )
36446 +#define FM_PROP_ISNULLABLE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsNullable" ) )
36447 +#define FM_PROP_ACTIVECOMMAND rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ActiveCommand" ) )
36448 +#define FM_PROP_ISCURRENCY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsCurrency" ) )
36449 +#define FM_PROP_URL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "URL" ) )
36450 +#define FM_PROP_ACTIVE_CONNECTION rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ActiveConnection" ) )
36451 +#define FM_PROP_SORT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Order" ) )
36452 +#define FM_PROP_CONTROLSOURCEPROPERTY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DataFieldProperty" ) )
36453 +#define FM_PROP_REALNAME rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RealName" ) )
36454 +#define FM_PROP_TEXTLINECOLOR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TextLineColor" ) )
36455 +#define FM_PROP_FONTEMPHASISMARK rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FontEmphasisMark" ) )
36456 +#define FM_PROP_FONTRELIEF rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FontRelief" ) )
36457 +#define FM_PROP_SCROLLVALUE_MIN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScrollValueMin" ) )
36458 +#define FM_PROP_SCROLLVALUE_MAX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScrollValueMax" ) )
36459 +#define FM_PROP_DEFAULT_SCROLLVALUE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultScrollValue" ) )
36460 +#define FM_PROP_LINEINCREMENT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LineIncrement" ) )
36461 +#define FM_PROP_BLOCKINCREMENT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "BlockIncrement" ) )
36462 +#define FM_PROP_ORIENTATION rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Orientation" ) )
36463 +#define FM_PROP_REPEAT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Repeat" ) )
36464 +#define FM_PROP_REPEATDELAY rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RepeatDelay" ) )
36465 +#define FM_PROP_SYMBOLCOLOR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SymbolColor" ) )
36466 +#define FM_PROP_VISIBILESIZE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "VisibleSize" ) )
36467 +#define FM_PROP_SPINVALUE_MIN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SpinValueMin" ) )
36468 +#define FM_PROP_SPINVALUE_MAX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SpinValueMax" ) )
36469 +#define FM_PROP_DEFAULT_SPINVALUE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultSpinValue" ) )
36470 +#define FM_PROP_SPININCREMENT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SpinIncrement" ) )
36471 +#define FM_PROP_LINEENDFORMAT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LineEndFormat" ) )
36472 +#define FM_PROP_TOGGLE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Toggle" ) )
36473 +#define FM_PROP_FOCUSONCLICK rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FocusOnClick" ) )
36474 +#define FM_PROP_HIDEINACTIVESELECTION rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "HideInactiveSelection" ) )
36475 +#define FM_PROP_VISUALEFFECT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "VisualEffect" ) )
36476 +#define FM_PROP_BORDERCOLOR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "BorderColor" ) )
36477 +#define FM_PROP_DYNAMIC_CONTROL_BORDER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DynamicControlBorder" ) )
36478 +#define FM_PROP_CONTROL_BORDER_COLOR_FOCUS rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ControlBorderColorOnFocus" ) )
36479 +#define FM_PROP_CONTROL_BORDER_COLOR_MOUSE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ControlBorderColorOnHover" ) )
36480 +#define FM_PROP_CONTROL_BORDER_COLOR_INVALID rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ControlBorderColorOnInvalid" ) )
36481 +#define FM_PROP_BUTTON_TYPE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" ) )
36482 +#define FM_PROP_FORM_OPERATIONS rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FormOperations" ) )
36483 +#define FM_PROP_INPUT_REQUIRED rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "InputRequired" ) )
36484 +#define FM_PROP_WRITING_MODE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "WritingMode" ) )
36486 #endif // _SVX_FMPROP_HRC
36488 diff --git svx/source/inc/fmservs.hxx svx/source/inc/fmservs.hxx
36489 index e70374f..13c0c73 100644
36490 --- svx/source/inc/fmservs.hxx
36491 +++ svx/source/inc/fmservs.hxx
36492 @@ -30,76 +30,64 @@
36493 #ifndef _SVX_FMSERVS_HXX
36494 #define _SVX_FMSERVS_HXX
36496 -#include "fmstatic.hxx"
36497 +#include <svx/svxdllapi.h>
36499 +#define FM_NUMBER_FORMATTER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.NumberFormatter" ) )
36500 +#define FM_COMPONENT_EDIT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.Edit" ) )
36501 +#define FM_COMPONENT_TEXTFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.TextField" ) )
36502 +#define FM_COMPONENT_LISTBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.ListBox" ) )
36503 +#define FM_COMPONENT_COMBOBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.ComboBox" ) )
36504 +#define FM_COMPONENT_RADIOBUTTON rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.RadioButton" ) )
36505 +#define FM_COMPONENT_GROUPBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.GroupBox" ) )
36506 +#define FM_COMPONENT_FIXEDTEXT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.FixedText" ) )
36507 +#define FM_COMPONENT_COMMANDBUTTON rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.CommandButton" ) )
36508 +#define FM_COMPONENT_CHECKBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.CheckBox" ) )
36509 +#define FM_COMPONENT_GRID rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.Grid" ) )
36510 +#define FM_COMPONENT_GRIDCONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.GridControl" ) )
36511 +#define FM_COMPONENT_IMAGEBUTTON rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.ImageButton" ) )
36512 +#define FM_COMPONENT_FILECONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.FileControl" ) )
36513 +#define FM_COMPONENT_TIMEFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.TimeField" ) )
36514 +#define FM_COMPONENT_DATEFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.DateField" ) )
36515 +#define FM_COMPONENT_NUMERICFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.NumericField" ) )
36516 +#define FM_COMPONENT_CURRENCYFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.CurrencyField" ) )
36517 +#define FM_COMPONENT_PATTERNFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.PatternField" ) )
36518 +#define FM_COMPONENT_FORMATTEDFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.FormattedField" ) )
36519 +#define FM_COMPONENT_HIDDEN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.Hidden" ) )
36520 +#define FM_COMPONENT_HIDDENCONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.HiddenControl" ) )
36521 +#define FM_COMPONENT_IMAGECONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.component.ImageControl" ) )
36522 +#define FM_CONTROL_GRID rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.control.Grid" ) )
36523 +#define FM_CONTROL_GRIDCONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "stardiv.one.form.control.GridControl" ) )
36524 +#define FM_FORM_CONTROLLER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.FormController" ) )
36525 +#define SRV_SDB_CONNECTION rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.Connection" ) )
36526 +#define SRV_SDB_INTERACTION_HANDLER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.InteractionHandler" ) )
36527 +#define FM_SUN_COMPONENT_FORM rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.Form" ) )
36528 +#define FM_SUN_COMPONENT_TEXTFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.TextField" ) )
36529 +#define FM_SUN_COMPONENT_LISTBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.ListBox" ) )
36530 +#define FM_SUN_COMPONENT_COMBOBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.ComboBox" ) )
36531 +#define FM_SUN_COMPONENT_RADIOBUTTON rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.RadioButton" ) )
36532 +#define FM_SUN_COMPONENT_GROUPBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.GroupBox" ) )
36533 +#define FM_SUN_COMPONENT_FIXEDTEXT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.FixedText" ) )
36534 +#define FM_SUN_COMPONENT_COMMANDBUTTON rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.CommandButton" ) )
36535 +#define FM_SUN_COMPONENT_CHECKBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.CheckBox" ) )
36536 +#define FM_SUN_COMPONENT_GRIDCONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.GridControl" ) )
36537 +#define FM_SUN_COMPONENT_IMAGEBUTTON rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.ImageButton" ) )
36538 +#define FM_SUN_COMPONENT_FILECONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.FileControl" ) )
36539 +#define FM_SUN_COMPONENT_TIMEFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.TimeField" ) )
36540 +#define FM_SUN_COMPONENT_DATEFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.DateField" ) )
36541 +#define FM_SUN_COMPONENT_NUMERICFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.NumericField" ) )
36542 +#define FM_SUN_COMPONENT_CURRENCYFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.CurrencyField" ) )
36543 +#define FM_SUN_COMPONENT_PATTERNFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.PatternField" ) )
36544 +#define FM_SUN_COMPONENT_HIDDENCONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.HiddenControl" ) )
36545 +#define FM_SUN_COMPONENT_IMAGECONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.DatabaseImageControl" ) )
36546 +#define FM_SUN_COMPONENT_FORMATTEDFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.FormattedField" ) )
36547 +#define FM_SUN_COMPONENT_SCROLLBAR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.ScrollBar" ) )
36548 +#define FM_SUN_COMPONENT_SPINBUTTON rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.SpinButton" ) )
36549 +#define FM_SUN_COMPONENT_NAVIGATIONBAR rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.component.NavigationToolBar" ) )
36550 +#define FM_SUN_CONTROL_GRIDCONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.control.GridControl" ) )
36555 - DECLARE_CONSTASCII_USTRING(FM_NUMBER_FORMATTER);
36557 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_EDIT); // alter service name (5.0)
36558 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_TEXTFIELD);
36560 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_LISTBOX);
36561 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_COMBOBOX);
36562 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_RADIOBUTTON);
36563 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_GROUPBOX);
36564 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_FIXEDTEXT);
36565 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_COMMANDBUTTON);
36566 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_CHECKBOX);
36568 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_GRID); // alter service name (5.0)
36569 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_GRIDCONTROL);
36571 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_IMAGEBUTTON);
36572 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_FILECONTROL);
36573 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_TIMEFIELD);
36574 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_DATEFIELD);
36575 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_NUMERICFIELD);
36576 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_CURRENCYFIELD);
36577 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_PATTERNFIELD);
36578 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_FORMATTEDFIELD);
36580 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_HIDDEN); // alter service name (5.0)
36581 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_HIDDENCONTROL);
36583 - DECLARE_CONSTASCII_USTRING(FM_COMPONENT_IMAGECONTROL);
36585 - DECLARE_CONSTASCII_USTRING(FM_CONTROL_GRID);
36586 - DECLARE_CONSTASCII_USTRING(FM_CONTROL_GRIDCONTROL);
36588 - DECLARE_CONSTASCII_USTRING(FM_FORM_CONTROLLER);
36589 - DECLARE_CONSTASCII_USTRING(SRV_SDB_CONNECTION);
36590 - DECLARE_CONSTASCII_USTRING(SRV_SDB_INTERACTION_HANDLER);
36592 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_FORM);
36593 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_TEXTFIELD);
36594 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_LISTBOX);
36595 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_COMBOBOX);
36596 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_RADIOBUTTON);
36597 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_GROUPBOX);
36598 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_FIXEDTEXT);
36599 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_COMMANDBUTTON);
36600 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_CHECKBOX);
36601 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_GRIDCONTROL);
36602 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_IMAGEBUTTON);
36603 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_FILECONTROL);
36604 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_TIMEFIELD);
36605 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_DATEFIELD);
36606 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_NUMERICFIELD);
36607 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_CURRENCYFIELD);
36608 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_PATTERNFIELD);
36609 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_HIDDENCONTROL);
36610 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_IMAGECONTROL);
36611 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_FORMATTEDFIELD);
36612 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_SCROLLBAR);
36613 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_SPINBUTTON);
36614 - DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_NAVIGATIONBAR);
36616 - DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_GRIDCONTROL);
36618 - void ImplSmartRegisterUnoServices();
36620 + SVX_DLLPUBLIC void ImplSmartRegisterUnoServices();
36621 } // namespace svxform
36623 #endif // _SVX_FMSERVS_HXX
36624 diff --git svx/source/inc/fmshimp.hxx svx/source/inc/fmshimp.hxx
36625 index 8d20b1d..f5c28d2 100644
36626 --- svx/source/inc/fmshimp.hxx
36627 +++ svx/source/inc/fmshimp.hxx
36628 @@ -421,7 +421,7 @@ public:
36630 /** retrieves the current selection
36632 - void getCurrentSelection( InterfaceBag& /* [out] */ _rSelection ) const;
36633 + SVX_DLLPUBLIC void getCurrentSelection( InterfaceBag& /* [out] */ _rSelection ) const;
36635 /** sets a new current selection as indicated by a mark list
36637 @@ -622,7 +622,7 @@ public:
36639 // ========================================================================
36640 SV_DECL_PTRARR_DEL(StatusForwarderArray, SfxStatusForwarder*, 16, 0)
36641 -class SAL_DLLPRIVATE ControlConversionMenuController : public SfxMenuControl
36642 +class SVX_DLLPUBLIC ControlConversionMenuController : public SfxMenuControl
36645 StatusForwarderArray m_aStatusForwarders;
36646 @@ -630,11 +630,11 @@ protected:
36647 PopupMenu* m_pConversionMenu;
36650 - ControlConversionMenuController(sal_uInt16 nId, Menu& rMenu, SfxBindings& rBindings);
36651 - virtual ~ControlConversionMenuController();
36652 + SVX_DLLPRIVATE ControlConversionMenuController(sal_uInt16 nId, Menu& rMenu, SfxBindings& rBindings);
36653 + SVX_DLLPRIVATE virtual ~ControlConversionMenuController();
36654 SFX_DECL_MENU_CONTROL();
36656 - virtual void StateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState);
36657 + SVX_DLLPRIVATE virtual void StateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState);
36660 //==================================================================
36661 diff --git svx/source/inc/fmstatic.hxx svx/source/inc/fmstatic.hxx
36662 index 2da97ed..e69de29 100644
36663 --- svx/source/inc/fmstatic.hxx
36664 +++ svx/source/inc/fmstatic.hxx
36666 -/*************************************************************************
36668 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
36670 - * Copyright 2008 by Sun Microsystems, Inc.
36672 - * OpenOffice.org - a multi-platform office productivity suite
36674 - * $RCSfile: fmstatic.hxx,v $
36675 - * $Revision: 1.6 $
36677 - * This file is part of OpenOffice.org.
36679 - * OpenOffice.org is free software: you can redistribute it and/or modify
36680 - * it under the terms of the GNU Lesser General Public License version 3
36681 - * only, as published by the Free Software Foundation.
36683 - * OpenOffice.org is distributed in the hope that it will be useful,
36684 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
36685 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36686 - * GNU Lesser General Public License version 3 for more details
36687 - * (a copy is included in the LICENSE file that accompanied this code).
36689 - * You should have received a copy of the GNU Lesser General Public License
36690 - * version 3 along with OpenOffice.org. If not, see
36691 - * <http://www.openoffice.org/license.html>
36692 - * for a copy of the LGPLv3 License.
36694 - ************************************************************************/
36696 -#ifndef _FM_STATIC_HXX_
36697 -#define _FM_STATIC_HXX_
36698 -#include <tools/string.hxx>
36700 -struct ConstAsciiString
36702 - const sal_Char* ascii;
36703 - sal_Int32 length;
36705 - inline operator const ::rtl::OUString () const;
36706 - inline operator const sal_Char* () const { return ascii; }
36708 - inline ConstAsciiString(const sal_Char* _pAsciiZeroTerminated, const sal_Int32 _nLength);
36709 - inline ~ConstAsciiString();
36712 - mutable ::rtl::OUString* ustring;
36715 -//------------------------------------------------------------
36716 -inline ConstAsciiString::ConstAsciiString(const sal_Char* _pAsciiZeroTerminated, const sal_Int32 _nLength)
36717 - :ascii(_pAsciiZeroTerminated)
36718 - ,length(_nLength)
36723 -//------------------------------------------------------------
36724 -inline ConstAsciiString::~ConstAsciiString()
36730 -//------------------------------------------------------------
36731 -inline ConstAsciiString::operator const ::rtl::OUString () const
36734 - ustring = new ::rtl::OUString(ascii, length, RTL_TEXTENCODING_ASCII_US);
36738 -#define DECLARE_CONSTASCII_USTRING(name) \
36739 - extern ConstAsciiString name
36741 -#define IMPLEMENT_CONSTASCII_USTRING(name, asciivalue) \
36742 - ConstAsciiString name(asciivalue, sizeof(asciivalue) - 1)
36745 -#endif // _FM_STATIC_HXX_
36747 diff --git svx/source/inc/fmtools.hxx svx/source/inc/fmtools.hxx
36748 index 5ea0d0e..adfbc05 100644
36749 --- svx/source/inc/fmtools.hxx
36750 +++ svx/source/inc/fmtools.hxx
36752 #include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
36753 #include <com/sun/star/sdb/XColumn.hpp>
36754 #include <com/sun/star/sdb/XColumnUpdate.hpp>
36755 -#ifndef _COM_SUN_STAR_SDBC_SQLERROREVENT_HPP_
36756 #include <com/sun/star/sdb/SQLErrorEvent.hpp>
36758 #include <com/sun/star/sdbc/XConnection.hpp>
36759 #include <com/sun/star/sdbc/XResultSet.hpp>
36760 #include <com/sun/star/sdbc/XResultSetUpdate.hpp>
36762 #include <tools/time.hxx>
36763 #include <tools/datetime.hxx>
36765 -#ifndef _SVX_FMPROP_HRC
36766 #include "fmprop.hrc"
36768 #include <com/sun/star/sdbc/XConnection.hpp>
36769 #include <com/sun/star/io/XObjectInputStream.hpp>
36770 #include <com/sun/star/io/XObjectOutputStream.hpp>
36772 #include <cppuhelper/implbase2.hxx>
36773 #include <cppuhelper/implbase3.hxx>
36774 #include <cppuhelper/component.hxx>
36775 -#include "fmstatic.hxx"
36777 +#include <svx/svxdllapi.h>
36781 @@ -113,19 +110,12 @@ class Window;
36782 // display info about a simple ::com::sun::star::sdbc::SQLException
36783 void displayException(const ::com::sun::star::sdbc::SQLException&, Window* _pParent = NULL);
36784 void displayException(const ::com::sun::star::sdbc::SQLWarning&, Window* _pParent = NULL);
36785 -void displayException(const ::com::sun::star::sdb::SQLContext&, Window* _pParent = NULL);
36786 +SVX_DLLPUBLIC void displayException(const ::com::sun::star::sdb::SQLContext&, Window* _pParent = NULL);
36787 void displayException(const ::com::sun::star::sdb::SQLErrorEvent&, Window* _pParent = NULL);
36788 void displayException(const ::com::sun::star::uno::Any&, Window* _pParent = NULL);
36790 -// StringConversion
36793 - // modes for the XModeSelector
36794 - DECLARE_CONSTASCII_USTRING(DATA_MODE);
36795 - DECLARE_CONSTASCII_USTRING(FILTER_MODE);
36797 -} // namespace svxform
36799 +#define DATA_MODE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DataMode" ) )
36800 +#define FILTER_MODE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterMode" ) )
36802 // Kopieren von Persistenten Objecten
36803 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> cloneUsingProperties(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XPersistObject>& _xObj);
36804 @@ -143,7 +133,7 @@ String getFormComponentAccessPath(const ::com::sun::star::uno::Reference< ::com:
36806 ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel> getXModel(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xIface);
36808 -::rtl::OUString getLabelName(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& xControlModel);
36809 +SVX_DLLPUBLIC ::rtl::OUString getLabelName(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& xControlModel);
36811 // ===================================================================================================
36812 // = class CursorWrapper - eine Hilfsklasse, die parallel mit je einem ::com::sun::star::uno::Reference<XDatabaseUpdateCursor>,
36813 @@ -163,7 +153,7 @@ public:
36814 // Construction/Destruction
36815 CursorWrapper() { }
36816 CursorWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxCursor, sal_Bool bUseCloned = sal_False);
36817 - CursorWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _rxCursor, sal_Bool bUseCloned = sal_False);
36818 + SVX_DLLPUBLIC CursorWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _rxCursor, sal_Bool bUseCloned = sal_False);
36819 // bei bUseCloned == sal_True wird der Cursor ueber das XCloneable-Interface (dass er besitzen muss) gedoubled und
36820 // erst dann benutzt
36822 diff --git svx/source/inc/fmurl.hxx svx/source/inc/fmurl.hxx
36823 index 93f3840..9513fa1 100644
36824 --- svx/source/inc/fmurl.hxx
36825 +++ svx/source/inc/fmurl.hxx
36826 @@ -31,46 +31,33 @@
36827 #ifndef _SVX_FMURL_HXX
36828 #define _SVX_FMURL_HXX
36830 -#include "fmstatic.hxx"
36835 - DECLARE_CONSTASCII_USTRING(FMURL_FORMSLOTS_PREFIX);
36837 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_POSITION);
36838 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_RECORDCOUNT);
36839 - DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVEFIRST);
36840 - DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVEPREV);
36841 - DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVENEXT);
36842 - DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVELAST);
36843 - DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVETONEW);
36844 - DECLARE_CONSTASCII_USTRING(FMURL_RECORD_UNDO);
36845 - DECLARE_CONSTASCII_USTRING(FMURL_RECORD_SAVE);
36846 - DECLARE_CONSTASCII_USTRING(FMURL_RECORD_DELETE);
36847 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_REFRESH);
36848 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_REFRESH_CURRENT_CONTROL);
36850 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_SORT_UP);
36851 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_SORT_DOWN);
36852 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_SORT);
36853 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_AUTO_FILTER);
36854 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_FILTER);
36855 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_APPLY_FILTER);
36856 - DECLARE_CONSTASCII_USTRING(FMURL_FORM_REMOVE_FILTER);
36858 - DECLARE_CONSTASCII_USTRING(FMURL_CONFIRM_DELETION);
36860 - DECLARE_CONSTASCII_USTRING(FMURL_COMPONENT_FORMGRIDVIEW);
36861 - DECLARE_CONSTASCII_USTRING(FMURL_GRIDVIEW_CLEARVIEW);
36862 - DECLARE_CONSTASCII_USTRING(FMURL_GRIDVIEW_ADDCOLUMN);
36863 - DECLARE_CONSTASCII_USTRING(FMURL_GRIDVIEW_ATTACHTOFORM);
36865 - DECLARE_CONSTASCII_USTRING(FMARG_ATTACHTO_MASTERFORM);
36866 - DECLARE_CONSTASCII_USTRING(FMARG_ADDCOL_COLUMNTYPE);
36867 - DECLARE_CONSTASCII_USTRING(FMARG_ADDCOL_COLUMNPOS);
36869 -} // namespace svxform
36870 +#define FMURL_FORMSLOTS_PREFIX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/" ) )
36871 +#define FMURL_FORM_POSITION rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/positionForm" ) )
36872 +#define FMURL_FORM_RECORDCOUNT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/RecordCount" ) )
36873 +#define FMURL_RECORD_MOVEFIRST rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/moveToFirst" ) )
36874 +#define FMURL_RECORD_MOVEPREV rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/moveToPrev" ) )
36875 +#define FMURL_RECORD_MOVENEXT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/moveToNext" ) )
36876 +#define FMURL_RECORD_MOVELAST rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/moveToLast" ) )
36877 +#define FMURL_RECORD_MOVETONEW rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/moveToNew" ) )
36878 +#define FMURL_RECORD_UNDO rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/undoRecord" ) )
36879 +#define FMURL_RECORD_SAVE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/saveRecord" ) )
36880 +#define FMURL_RECORD_DELETE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/deleteRecord" ) )
36881 +#define FMURL_FORM_REFRESH rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/refreshForm" ) )
36882 +#define FMURL_FORM_REFRESH_CURRENT_CONTROL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/refreshCurrentControl" ) )
36883 +#define FMURL_FORM_SORT_UP rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/sortUp" ) )
36884 +#define FMURL_FORM_SORT_DOWN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/sortDown" ) )
36885 +#define FMURL_FORM_SORT rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/sort" ) )
36886 +#define FMURL_FORM_AUTO_FILTER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/autoFilter" ) )
36887 +#define FMURL_FORM_FILTER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/filter" ) )
36888 +#define FMURL_FORM_APPLY_FILTER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/applyFilter" ) )
36889 +#define FMURL_FORM_REMOVE_FILTER rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormController/removeFilterOrder" ) )
36890 +#define FMURL_CONFIRM_DELETION rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormSlots/ConfirmDeletion" ) )
36891 +#define FMURL_COMPONENT_FORMGRIDVIEW rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".component:DB/FormGridView" ) )
36892 +#define FMURL_GRIDVIEW_CLEARVIEW rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormSlots/ClearView" ) )
36893 +#define FMURL_GRIDVIEW_ADDCOLUMN rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormSlots/AddGridColumn" ) )
36894 +#define FMURL_GRIDVIEW_ATTACHTOFORM rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormSlots/AttachToForm" ) )
36895 +#define FMARG_ATTACHTO_MASTERFORM rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MasterForm" ) )
36896 +#define FMARG_ADDCOL_COLUMNTYPE rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ColumnType" ) )
36897 +#define FMARG_ADDCOL_COLUMNPOS rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ColumnPosition" ) )
36899 #endif // _SVX_FMURL_HXX
36901 diff --git svx/source/inc/formtoolbars.hxx svx/source/inc/formtoolbars.hxx
36902 index 9ce42ca..5268ef1 100644
36903 --- svx/source/inc/formtoolbars.hxx
36904 +++ svx/source/inc/formtoolbars.hxx
36905 @@ -31,14 +31,13 @@
36906 #ifndef SVX_SOURCE_INC_FORMTOOLBARS_HXX
36907 #define SVX_SOURCE_INC_FORMTOOLBARS_HXX
36909 -/** === begin UNO includes === **/
36910 -/** === end UNO includes === **/
36912 #include "fmdocumentclassification.hxx"
36913 #include <com/sun/star/frame/XLayoutManager.hpp>
36915 #include <tools/solar.h>
36917 +#include <svx/svxdllapi.h>
36919 //........................................................................
36922 @@ -58,7 +57,7 @@ namespace svxform
36924 the frame to analyze
36927 + SVX_DLLPUBLIC FormToolboxes(
36928 const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _rxFrame
36931 @@ -66,16 +65,16 @@ namespace svxform
36932 /** retrieves the URI for the toolbox associated with the given slot, depending
36933 on the type of our document
36936 + SVX_DLLPUBLIC ::rtl::OUString
36937 getToolboxResourceName( USHORT _nSlotId ) const;
36939 /** toggles the toolbox associated with the given slot
36941 - void toggleToolbox( USHORT _nSlotId ) const;
36942 + SVX_DLLPUBLIC void toggleToolbox( USHORT _nSlotId ) const;
36944 /** determines whether the toolbox associated with the given slot is currently visible
36946 - bool isToolboxVisible( USHORT _nSlotId ) const;
36947 + SVX_DLLPUBLIC bool isToolboxVisible( USHORT _nSlotId ) const;
36949 /** ensures that a given toolbox is visible
36951 diff --git svx/source/inc/gridcols.hxx svx/source/inc/gridcols.hxx
36952 index 5f50578..9b79308 100644
36953 --- svx/source/inc/gridcols.hxx
36954 +++ svx/source/inc/gridcols.hxx
36955 @@ -30,25 +30,20 @@
36956 #ifndef _SVX_GRIDCOLS_HXX
36957 #define _SVX_GRIDCOLS_HXX
36959 -#include "fmstatic.hxx"
36960 +#include <sal/types.h>
36965 - // list of possible controls
36966 - DECLARE_CONSTASCII_USTRING(FM_COL_TEXTFIELD);
36967 - DECLARE_CONSTASCII_USTRING(FM_COL_CHECKBOX);
36968 - DECLARE_CONSTASCII_USTRING(FM_COL_COMBOBOX);
36969 - DECLARE_CONSTASCII_USTRING(FM_COL_LISTBOX);
36970 - DECLARE_CONSTASCII_USTRING(FM_COL_NUMERICFIELD);
36971 - DECLARE_CONSTASCII_USTRING(FM_COL_DATEFIELD);
36972 - DECLARE_CONSTASCII_USTRING(FM_COL_TIMEFIELD);
36973 - DECLARE_CONSTASCII_USTRING(FM_COL_CURRENCYFIELD);
36974 - DECLARE_CONSTASCII_USTRING(FM_COL_PATTERNFIELD);
36975 - DECLARE_CONSTASCII_USTRING(FM_COL_FORMATTEDFIELD);
36977 -} // namespace svxform
36978 +namespace rtl { class OUString; }
36980 +#define FM_COL_TEXTFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TextField" ) )
36981 +#define FM_COL_COMBOBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ComboBox" ) )
36982 +#define FM_COL_CHECKBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CheckBox" ) )
36983 +#define FM_COL_TIMEFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TimeField" ) )
36984 +#define FM_COL_DATEFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateField" ) )
36985 +#define FM_COL_NUMERICFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "NumericField" ) )
36986 +#define FM_COL_CURRENCYFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CurrencyField" ) )
36987 +#define FM_COL_PATTERNFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PatternField" ) )
36988 +#define FM_COL_LISTBOX rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ListBox" ) )
36989 +#define FM_COL_FORMATTEDFIELD rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FormattedField" ) )
36992 #define TYPE_CHECKBOX 0
36993 diff --git svx/source/inc/sqlparserclient.hxx svx/source/inc/sqlparserclient.hxx
36994 index 4b5c67b..1386ff8 100644
36995 --- svx/source/inc/sqlparserclient.hxx
36996 +++ svx/source/inc/sqlparserclient.hxx
36997 @@ -43,7 +43,7 @@ namespace svxform
36998 //====================================================================
36999 //= OSQLParserClient
37000 //====================================================================
37001 - class OSQLParserClient : public ODbtoolsClient
37002 + class SVX_DLLPUBLIC OSQLParserClient : public ODbtoolsClient
37003 ,public ::svxform::OParseContextClient
37006 diff --git svx/source/inc/stringlistresource.hxx svx/source/inc/stringlistresource.hxx
37007 index 3db48e1..8fb8ff9 100644
37008 --- svx/source/inc/stringlistresource.hxx
37009 +++ svx/source/inc/stringlistresource.hxx
37010 @@ -31,11 +31,10 @@
37011 #ifndef SVX_STRINGLISTRESOURCE_HXX
37012 #define SVX_STRINGLISTRESOURCE_HXX
37014 -/** === begin UNO includes === **/
37015 -/** === end UNO includes === **/
37017 #include <tools/rc.hxx>
37019 +#include <svx/svxdllapi.h>
37023 //........................................................................
37024 @@ -52,8 +51,8 @@ namespace svx
37025 class StringListResource : public Resource
37028 - StringListResource( const ResId& _rResId );
37029 - ~StringListResource();
37030 + SVX_DLLPUBLIC StringListResource( const ResId& _rResId );
37031 + SVX_DLLPUBLIC ~StringListResource();
37033 inline void get( ::std::vector< String >& _rStrings )
37035 diff --git svx/source/inc/unogalthemeprovider.hxx svx/source/inc/unogalthemeprovider.hxx
37036 index dd59bb4..8306a00 100644
37037 --- svx/source/inc/unogalthemeprovider.hxx
37038 +++ svx/source/inc/unogalthemeprovider.hxx
37040 #include <com/sun/star/lang/XInitialization.hpp>
37041 #include <com/sun/star/gallery/XGalleryThemeProvider.hpp>
37043 +#include <svx/svxdllapi.h>
37047 namespace unogallery {
37048 @@ -60,8 +62,8 @@ public:
37049 GalleryThemeProvider();
37050 ~GalleryThemeProvider();
37052 - static ::rtl::OUString getImplementationName_Static() throw();
37053 - static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static() throw();
37054 + SVX_DLLPUBLIC static ::rtl::OUString getImplementationName_Static() throw();
37055 + SVX_DLLPUBLIC static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static() throw();
37059 diff --git svx/source/inc/unopolyhelper.hxx svx/source/inc/unopolyhelper.hxx
37060 index aeae623..35d56bc 100644
37061 --- svx/source/inc/unopolyhelper.hxx
37062 +++ svx/source/inc/unopolyhelper.hxx
37065 #include <com/sun/star/lang/IllegalArgumentException.hpp>
37067 +#include <svx/svxdllapi.h>
37069 namespace com { namespace sun { namespace star { namespace drawing {
37070 struct PolyPolygonBezierCoords;
37072 @@ -48,7 +50,7 @@ basegfx::B2DPolyPolygon SvxConvertPolyPolygonBezierToB2DPolyPolygon( const com::
37074 /** convert a B2DPolyPolygon to a drawing::PolyPolygonBezierCoords
37076 -void SvxConvertB2DPolyPolygonToPolyPolygonBezier( const basegfx::B2DPolyPolygon& rPolyPoly, com::sun::star::drawing::PolyPolygonBezierCoords& rRetval );
37077 +SVX_DLLPUBLIC void SvxConvertB2DPolyPolygonToPolyPolygonBezier( const basegfx::B2DPolyPolygon& rPolyPoly, com::sun::star::drawing::PolyPolygonBezierCoords& rRetval );
37081 diff --git svx/source/items/makefile.mk svx/source/items/makefile.mk
37082 index 1557abb..4894cff 100644
37083 --- svx/source/items/makefile.mk
37084 +++ svx/source/items/makefile.mk
37085 @@ -38,6 +38,7 @@ PROJECTPCHSOURCE=$(PRJ)$/util$/svxpch
37091 # --- Settings -----------------------------------------------------
37093 @@ -51,41 +52,45 @@ SRC1FILES = \
37098 - $(SLO)$/ofaitem.obj \
37099 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
37101 $(SLO)$/writingmodeitem.obj \
37102 $(SLO)$/frmitems.obj \
37103 $(SLO)$/paraitem.obj \
37104 $(SLO)$/textitem.obj \
37105 - $(SLO)$/postattr.obj \
37106 $(SLO)$/flditem.obj \
37107 - $(SLO)$/hlnkitem.obj \
37108 $(SLO)$/svxfont.obj \
37109 - $(SLO)$/pageitem.obj \
37110 - $(SLO)$/viewlayoutitem.obj \
37111 - $(SLO)$/paperinf.obj \
37112 $(SLO)$/drawitem.obj \
37113 - $(SLO)$/algitem.obj \
37114 $(SLO)$/itemtype.obj \
37115 - $(SLO)$/rotmodit.obj \
37116 - $(SLO)$/numinf.obj \
37117 - $(SLO)$/svxerr.obj \
37118 - $(SLO)$/numfmtsh.obj \
37119 - $(SLO)$/zoomitem.obj \
37120 $(SLO)$/chrtitem.obj \
37121 $(SLO)$/bulitem.obj \
37122 $(SLO)$/e3ditem.obj \
37123 $(SLO)$/numitem.obj \
37124 $(SLO)$/grfitem.obj \
37125 $(SLO)$/clipfmtitem.obj \
37126 - $(SLO)$/svxempty.obj \
37127 $(SLO)$/xmlcnitm.obj \
37128 $(SLO)$/customshapeitem.obj \
37129 - $(SLO)$/charhiddenitem.obj \
37130 + $(SLO)$/charhiddenitem.obj
37132 +LIB2TARGET= $(SLB)$/$(TARGET).lib
37134 + $(SLO)$/ofaitem.obj \
37135 + $(SLO)$/postattr.obj \
37136 + $(SLO)$/hlnkitem.obj \
37137 + $(SLO)$/pageitem.obj \
37138 + $(SLO)$/viewlayoutitem.obj \
37139 + $(SLO)$/paperinf.obj \
37140 + $(SLO)$/algitem.obj \
37141 + $(SLO)$/rotmodit.obj \
37142 + $(SLO)$/numinf.obj \
37143 + $(SLO)$/svxerr.obj \
37144 + $(SLO)$/numfmtsh.obj \
37145 + $(SLO)$/zoomitem.obj \
37146 + $(SLO)$/svxempty.obj \
37147 $(SLO)$/SmartTagItem.obj \
37148 $(SLO)$/zoomslideritem.obj \
37151 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
37154 $(SLO)$/paraitem.obj \
37155 diff --git svx/source/items/textitem.cxx svx/source/items/textitem.cxx
37156 index 3fad7c3..604e38c 100644
37157 --- svx/source/items/textitem.cxx
37158 +++ svx/source/items/textitem.cxx
37159 @@ -485,6 +485,13 @@ SfxItemPresentation SvxFontItem::GetPresentation
37160 return SFX_ITEM_PRESENTATION_NONE;
37163 +//------------------------------------------------------------------------
37165 +void SvxFontItem::EnableStoreUnicodeNames( BOOL bEnable )
37167 + bEnableStoreUnicodeNames = bEnable;
37170 // class SvxPostureItem --------------------------------------------------
37172 SvxPostureItem::SvxPostureItem( const FontItalic ePosture, const USHORT nId ) :
37173 diff --git svx/source/msfilter/escherex.cxx svx/source/msfilter/escherex.cxx
37174 index e27de7c..493df58 100644
37175 --- svx/source/msfilter/escherex.cxx
37176 +++ svx/source/msfilter/escherex.cxx
37177 @@ -156,14 +156,6 @@ EscherExClientAnchor_Base::~EscherExClientAnchor_Base()
37179 // ---------------------------------------------------------------------------------------------
37181 -struct EscherPropSortStruct
37184 - sal_uInt32 nPropSize;
37185 - sal_uInt32 nPropValue;
37186 - sal_uInt16 nPropId;
37189 void EscherPropertyContainer::ImplInit()
37192 @@ -275,21 +267,40 @@ void EscherPropertyContainer::AddOpt( sal_uInt16 nPropID, sal_Bool bBlib, sal_uI
37196 -sal_Bool EscherPropertyContainer::GetOpt( sal_uInt16 nPropId, sal_uInt32& nPropValue ) const
37197 +sal_Bool EscherPropertyContainer::GetOpt( sal_uInt16 nPropId, sal_uInt32& rPropValue ) const
37199 + EscherPropSortStruct aPropStruct;
37201 + if ( GetOpt( nPropId, aPropStruct ) )
37203 + rPropValue = aPropStruct.nPropValue;
37206 + return sal_False;
37209 +sal_Bool EscherPropertyContainer::GetOpt( sal_uInt16 nPropId, EscherPropSortStruct& rPropValue ) const
37211 - sal_Bool bRetValue = sal_False;
37212 for( sal_uInt32 i = 0; i < nSortCount; i++ )
37214 if ( ( pSortStruct[ i ].nPropId &~0xc000 ) == ( nPropId &~0xc000 ) )
37216 - nPropValue = pSortStruct[ i ].nPropValue;
37217 - bRetValue = sal_True;
37219 + rPropValue = pSortStruct[ i ];
37223 - return bRetValue;
37224 + return sal_False;
37227 +EscherProperties EscherPropertyContainer::GetOpts() const
37229 + EscherProperties aVector;
37231 + for ( sal_uInt32 i = 0; i < nSortCount; ++i )
37232 + aVector.push_back( pSortStruct[ i ] );
37237 extern "C" int __LOADONCALLAPI EscherPropSortFunc( const void* p1, const void* p2 )
37239 @@ -738,7 +749,7 @@ void EscherPropertyContainer::CreateTextProperties(
37243 -static sal_Bool GetLineArrow( const sal_Bool bLineStart,
37244 +sal_Bool EscherPropertyContainer::GetLineArrow( const sal_Bool bLineStart,
37245 const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet,
37246 ESCHER_LineEnd& reLineEnd, sal_Int32& rnArrowLength, sal_Int32& rnArrowWidth )
37248 @@ -2107,6 +2118,68 @@ void ConvertEnhancedCustomShapeEquation( SdrObjCustomShape* pCustoShape,
37252 +sal_Bool EscherPropertyContainer::IsDefaultObject( SdrObjCustomShape* pCustoShape )
37254 + sal_Bool bIsDefaultObject = sal_False;
37255 + if ( pCustoShape )
37257 + if ( pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_EQUATIONS )
37258 + && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_VIEWBOX )
37259 + && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_PATH )
37260 + && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_GLUEPOINTS )
37261 + && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_SEGMENTS )
37262 + && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_STRETCHX )
37263 + && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_STRETCHY )
37264 +// && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_HANDLES )
37265 + && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_TEXTFRAMES ) )
37266 + bIsDefaultObject = sal_True;
37269 + return bIsDefaultObject;
37272 +void EscherPropertyContainer::LookForPolarHandles( const MSO_SPT eShapeType, sal_Int32& nAdjustmentsWhichNeedsToBeConverted )
37274 + const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eShapeType );
37275 + if ( pDefCustomShape && pDefCustomShape->nHandles && pDefCustomShape->pHandles )
37277 + sal_Int32 k, nkCount = pDefCustomShape->nHandles;
37278 + const SvxMSDffHandle* pData = pDefCustomShape->pHandles;
37279 + for ( k = 0; k < nkCount; k++, pData++ )
37281 + if ( pData->nFlags & MSDFF_HANDLE_FLAGS_POLAR )
37283 + if ( ( pData->nPositionY >= 0x256 ) || ( pData->nPositionY <= 0x107 ) )
37284 + nAdjustmentsWhichNeedsToBeConverted |= ( 1 << k );
37290 +sal_Bool EscherPropertyContainer::GetAdjustmentValue( const com::sun::star::drawing::EnhancedCustomShapeAdjustmentValue & rkProp, sal_Int32 nIndex, sal_Int32 nAdjustmentsWhichNeedsToBeConverted, sal_Int32& nValue )
37292 + if ( rkProp.State != beans::PropertyState_DIRECT_VALUE )
37295 + sal_Bool bUseFixedFloat = ( nAdjustmentsWhichNeedsToBeConverted & ( 1 << nIndex ) ) != 0;
37296 + if ( rkProp.Value.getValueTypeClass() == uno::TypeClass_DOUBLE )
37299 + rkProp.Value >>= fValue;
37300 + if ( bUseFixedFloat )
37301 + fValue *= 65536.0;
37302 + nValue = (sal_Int32)fValue;
37306 + rkProp.Value >>= nValue;
37307 + if ( bUseFixedFloat )
37314 void EscherPropertyContainer::CreateCustomShapeProperties( const MSO_SPT eShapeType, const uno::Reference< drawing::XShape > & rXShape )
37316 uno::Reference< beans::XPropertySet > aXPropSet( rXShape, uno::UNO_QUERY );
37317 @@ -2131,22 +2204,7 @@ void EscherPropertyContainer::CreateCustomShapeProperties( const MSO_SPT eShapeT
37318 sal_Int32 nAdjustmentsWhichNeedsToBeConverted = 0;
37319 uno::Sequence< beans::PropertyValues > aHandlesPropSeq;
37320 sal_Bool bPredefinedHandlesUsed = sal_True;
37323 - sal_Bool bIsDefaultObject = sal_False;
37324 - if ( pCustoShape )
37326 - if ( pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_EQUATIONS )
37327 - && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_VIEWBOX )
37328 - && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_PATH )
37329 - && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_GLUEPOINTS )
37330 - && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_SEGMENTS )
37331 - && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_STRETCHX )
37332 - && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_STRETCHY )
37333 -// && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_HANDLES )
37334 - && pCustoShape->IsDefaultGeometry( SdrObjCustomShape::DEFAULT_TEXTFRAMES ) )
37335 - bIsDefaultObject = sal_True;
37337 + sal_Bool bIsDefaultObject = IsDefaultObject( pCustoShape );
37339 // convert property "Equations" into std::vector< EnhancedCustomShapeEquationEquation >
37340 std::vector< EnhancedCustomShapeEquation > aEquations;
37341 @@ -3208,46 +3266,12 @@ void EscherPropertyContainer::CreateCustomShapeProperties( const MSO_SPT eShapeT
37342 if ( pAdjustmentValuesProp->Value >>= aAdjustmentSeq )
37344 if ( bPredefinedHandlesUsed )
37346 - const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eShapeType );
37347 - if ( pDefCustomShape && pDefCustomShape->nHandles && pDefCustomShape->pHandles )
37349 - sal_Int32 k, nkCount = pDefCustomShape->nHandles;
37350 - const SvxMSDffHandle* pData = pDefCustomShape->pHandles;
37351 - for ( k = 0; k < nkCount; k++, pData++ )
37353 - if ( pData->nFlags & MSDFF_HANDLE_FLAGS_POLAR )
37355 - if ( ( pData->nPositionY >= 0x256 ) || ( pData->nPositionY <= 0x107 ) )
37356 - nAdjustmentsWhichNeedsToBeConverted |= ( 1 << k );
37361 + LookForPolarHandles( eShapeType, nAdjustmentsWhichNeedsToBeConverted );
37363 sal_Int32 k, nValue = 0, nAdjustmentValues = aAdjustmentSeq.getLength();
37364 for ( k = 0; k < nAdjustmentValues; k++ )
37366 - const com::sun::star::drawing::EnhancedCustomShapeAdjustmentValue & rkProp = aAdjustmentSeq[ k ];
37367 - if ( rkProp.State == beans::PropertyState_DIRECT_VALUE )
37369 - sal_Bool bUseFixedFloat = ( nAdjustmentsWhichNeedsToBeConverted & ( 1 << k ) ) != 0;
37370 - if ( rkProp.Value.getValueTypeClass() == uno::TypeClass_DOUBLE )
37373 - rkProp.Value >>= fValue;
37374 - if ( bUseFixedFloat )
37375 - fValue *= 65536.0;
37376 - nValue = (sal_Int32)fValue;
37380 - rkProp.Value >>= nValue;
37381 - if ( bUseFixedFloat )
37384 + if( GetAdjustmentValue( aAdjustmentSeq[ k ], k, nAdjustmentsWhichNeedsToBeConverted, nValue ) )
37385 AddOpt( (sal_uInt16)( DFF_Prop_adjustValue + k ), (sal_uInt32)nValue );
37391 @@ -3946,30 +3970,6 @@ struct EscherConnectorRule
37392 sal_uInt32 ncptiB; // Connection site Index of shape B
37395 -struct EscherConnectorListEntry
37397 - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnector;
37398 - ::com::sun::star::awt::Point maPointA;
37399 - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnectToA;
37400 - ::com::sun::star::awt::Point maPointB;
37401 - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnectToB;
37403 - sal_uInt32 GetConnectorRule( sal_Bool bFirst );
37405 - EscherConnectorListEntry( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rC,
37406 - const ::com::sun::star::awt::Point& rPA,
37407 - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rSA ,
37408 - const ::com::sun::star::awt::Point& rPB,
37409 - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rSB ) :
37410 - mXConnector ( rC ),
37411 - maPointA ( rPA ),
37412 - mXConnectToA( rSA ),
37413 - maPointB ( rPB ),
37414 - mXConnectToB( rSB ) {}
37416 - sal_uInt32 GetClosestPoint( const Polygon& rPoly, const ::com::sun::star::awt::Point& rP );
37419 struct EscherShapeListEntry
37421 ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > aXShape;
37422 @@ -4673,6 +4673,17 @@ void EscherEx::AddAtom( UINT32 nAtomSize, UINT16 nRecType, int nRecVersion, int
37424 // ---------------------------------------------------------------------------------------------
37426 +void EscherEx::AddChildAnchor( const Rectangle& rRect )
37428 + AddAtom( 16, ESCHER_ChildAnchor );
37429 + GetStream() << (INT32)rRect.Left()
37430 + << (INT32)rRect.Top()
37431 + << (INT32)rRect.Right()
37432 + << (INT32)rRect.Bottom();
37435 +// ---------------------------------------------------------------------------------------------
37437 void EscherEx::AddClientAnchor( const Rectangle& rRect )
37439 AddAtom( 8, ESCHER_ClientAnchor );
37440 @@ -4722,15 +4733,10 @@ UINT32 EscherEx::EnterGroup( const String& rShapeName, const Rectangle* pBoundRe
37441 if( rShapeName.Len() > 0 )
37442 aPropOpt.AddOpt( ESCHER_Prop_wzName, rShapeName );
37444 - aPropOpt.Commit( *mpOutStrm );
37445 + Commit( aPropOpt, aRect );
37446 if ( mnGroupLevel > 1 )
37448 - AddAtom( 16, ESCHER_ChildAnchor );
37449 - *mpOutStrm << (INT32)aRect.Left()
37450 - << (INT32)aRect.Top()
37451 - << (INT32)aRect.Right()
37452 - << (INT32)aRect.Bottom();
37454 + AddChildAnchor( aRect );
37456 EscherExHostAppData* pAppData = mpImplEscherExSdr->ImplGetHostData();
37459 @@ -4828,6 +4834,13 @@ UINT32 EscherEx::GetShapeID()
37461 // ---------------------------------------------------------------------------------------------
37463 +void EscherEx::Commit( EscherPropertyContainer& rProps, const Rectangle& )
37465 + rProps.Commit( GetStream() );
37468 +// ---------------------------------------------------------------------------------------------
37470 UINT32 EscherEx::GetColor( const UINT32 nSOColor, BOOL bSwap )
37473 diff --git svx/source/msfilter/eschesdo.cxx svx/source/msfilter/eschesdo.cxx
37474 index 243c236..03b4e2a 100644
37475 --- svx/source/msfilter/eschesdo.cxx
37476 +++ svx/source/msfilter/eschesdo.cxx
37477 @@ -749,16 +749,10 @@ UINT32 ImplEESdrWriter::ImplWriteShape( ImplEESdrObject& rObj,
37478 if( rObj.GetAngle() )
37479 ImplFlipBoundingBox( rObj, aPropOpt );
37481 - aPropOpt.Commit( mpEscherEx->GetStream() );
37482 + mpEscherEx->Commit( aPropOpt, rObj.GetRect() );
37483 if( mpEscherEx->GetGroupLevel() > 1 )
37485 - mpEscherEx->AddAtom( 16, ESCHER_ChildAnchor );
37486 - const Rectangle& rRect = rObj.GetRect();
37487 - mpEscherEx->GetStream() << (INT32)rRect.Left()
37488 - << (INT32)rRect.Top()
37489 - << (INT32)rRect.Right()
37490 - << (INT32)rRect.Bottom();
37492 + mpEscherEx->AddChildAnchor( rObj.GetRect() );
37494 if ( mpHostAppData )
37495 { //! with AdditionalText the App has to control whether these are written or not
37496 mpHostAppData->WriteClientAnchor( *mpEscherEx, rObj.GetRect() );
37497 @@ -852,15 +846,10 @@ void ImplEESdrWriter::ImplWriteAdditionalText( ImplEESdrObject& rObj,
37500 rObj.SetAngle( nAngle );
37501 - aPropOpt.Commit( mpEscherEx->GetStream() );
37502 + mpEscherEx->Commit( aPropOpt, rObj.GetRect() );
37504 // write the childanchor
37505 - mpEscherEx->AddAtom( 16, ESCHER_ChildAnchor );
37506 - const Rectangle& rRect = rObj.GetRect();
37507 - mpEscherEx->GetStream() << (INT32)rRect.Left()
37508 - << (INT32)rRect.Top()
37509 - << (INT32)rRect.Right()
37510 - << (INT32)rRect.Bottom();
37511 + mpEscherEx->AddChildAnchor( rObj.GetRect() );
37513 #if defined EES_WRITE_EPP
37515 diff --git svx/source/msfilter/makefile.mk svx/source/msfilter/makefile.mk
37516 index 768bc0e..05188c1 100644
37517 --- svx/source/msfilter/makefile.mk
37518 +++ svx/source/msfilter/makefile.mk
37519 @@ -33,6 +33,7 @@ PRJ=..$/..
37526 # --- Settings -----------------------------------------------------
37527 @@ -42,7 +43,8 @@ AUTOSEG=true
37529 # --- Files --------------------------------------------------------
37532 +LIB1TARGET= $(SLB)$/$(TARGET)-msfilter.lib
37534 $(SLO)$/countryid.obj \
37535 $(SLO)$/escherex.obj \
37536 $(SLO)$/eschesdo.obj \
37537 @@ -57,6 +59,12 @@ SLOFILES=\
37538 $(SLO)$/msfiltertracer.obj\
37539 $(SLO)$/mstoolbar.obj\
37541 +LIB2TARGET= $(SLB)$/$(TARGET)-core.lib
37543 + $(SLO)$/svxmsbas2.obj
37545 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
37548 $(SLO)$/eschesdo.obj \
37549 $(SLO)$/escherex.obj \
37550 diff --git svx/source/msfilter/svxmsbas.cxx svx/source/msfilter/svxmsbas.cxx
37551 index 5efc08f..d4d6838 100644
37552 --- svx/source/msfilter/svxmsbas.cxx
37553 +++ svx/source/msfilter/svxmsbas.cxx
37554 @@ -564,53 +564,4 @@ BOOL SvxImportMSVBasic::ImportCode_Impl( VBA_Impl& aVBA, BOOL bAsComment, BOOL b
37558 -ULONG SvxImportMSVBasic::SaveOrDelMSVBAStorage( BOOL bSaveInto,
37559 - const String& rStorageName )
37561 - ULONG nRet = ERRCODE_NONE;
37562 - uno::Reference < embed::XStorage > xSrcRoot( rDocSh.GetStorage() );
37563 - String aDstStgName( GetMSBasicStorageName() );
37564 - SotStorageRef xVBAStg( SotStorage::OpenOLEStorage( xSrcRoot, aDstStgName,
37565 - STREAM_READWRITE | STREAM_NOCREATE | STREAM_SHARE_DENYALL ) );
37566 - if( xVBAStg.Is() && !xVBAStg->GetError() )
37571 - BasicManager *pBasicMan = rDocSh.GetBasicManager();
37572 - if( pBasicMan && pBasicMan->IsBasicModified() )
37573 - nRet = ERRCODE_SVX_MODIFIED_VBASIC_STORAGE;
37575 - SotStorageRef xSrc = SotStorage::OpenOLEStorage( xSrcRoot, aDstStgName, STREAM_STD_READ );
37576 - SotStorageRef xDst = xRoot->OpenSotStorage( rStorageName, STREAM_READWRITE | STREAM_TRUNC );
37577 - xSrc->CopyTo( xDst );
37579 - ErrCode nError = xDst->GetError();
37580 - if ( nError == ERRCODE_NONE )
37581 - nError = xSrc->GetError();
37582 - if ( nError != ERRCODE_NONE )
37583 - xRoot->SetError( nError );
37590 -// check if the MS-VBA-Storage exists in the RootStorage of the DocShell.
37591 -// If it exists, then return the WarningId for losing the information.
37592 -ULONG SvxImportMSVBasic::GetSaveWarningOfMSVBAStorage( SfxObjectShell &rDocSh)
37594 - uno::Reference < embed::XStorage > xSrcRoot( rDocSh.GetStorage() );
37595 - SvStorageRef xVBAStg( SotStorage::OpenOLEStorage( xSrcRoot, GetMSBasicStorageName(),
37596 - STREAM_READ | STREAM_NOCREATE | STREAM_SHARE_DENYALL ));
37597 - return ( xVBAStg.Is() && !xVBAStg->GetError() )
37598 - ? ERRCODE_SVX_VBASIC_STORAGE_EXIST
37602 -String SvxImportMSVBasic::GetMSBasicStorageName()
37604 - return String( RTL_CONSTASCII_USTRINGPARAM( "_MS_VBA_Macros" ) );
37607 /* vi:set tabstop=4 shiftwidth=4 expandtab: */
37608 diff --git svx/source/msfilter/svxmsbas2.cxx svx/source/msfilter/svxmsbas2.cxx
37609 new file mode 100644
37610 index 0000000..afd772b
37612 +++ svx/source/msfilter/svxmsbas2.cxx
37614 +/*************************************************************************
37616 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
37618 + * Copyright 2008 by Sun Microsystems, Inc.
37620 + * OpenOffice.org - a multi-platform office productivity suite
37622 + * $RCSfile: svxmsbas.cxx,v $
37623 + * $Revision: 1.24 $
37625 + * This file is part of OpenOffice.org.
37627 + * OpenOffice.org is free software: you can redistribute it and/or modify
37628 + * it under the terms of the GNU Lesser General Public License version 3
37629 + * only, as published by the Free Software Foundation.
37631 + * OpenOffice.org is distributed in the hope that it will be useful,
37632 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
37633 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37634 + * GNU Lesser General Public License version 3 for more details
37635 + * (a copy is included in the LICENSE file that accompanied this code).
37637 + * You should have received a copy of the GNU Lesser General Public License
37638 + * version 3 along with OpenOffice.org. If not, see
37639 + * <http://www.openoffice.org/license.html>
37640 + * for a copy of the LGPLv3 License.
37642 + ************************************************************************/
37644 +// MARKER(update_precomp.py): autogen include statement, do not remove
37645 +#include "precompiled_svx.hxx"
37647 +#include <basic/basmgr.hxx>
37648 +#include <sfx2/objsh.hxx>
37649 +#include <svxerr.hxx>
37650 +#include <svxmsbas.hxx>
37652 +using namespace com::sun::star;
37654 +ULONG SvxImportMSVBasic::SaveOrDelMSVBAStorage( BOOL bSaveInto,
37655 + const String& rStorageName )
37657 + ULONG nRet = ERRCODE_NONE;
37658 + uno::Reference < embed::XStorage > xSrcRoot( rDocSh.GetStorage() );
37659 + String aDstStgName( GetMSBasicStorageName() );
37660 + SotStorageRef xVBAStg( SotStorage::OpenOLEStorage( xSrcRoot, aDstStgName,
37661 + STREAM_READWRITE | STREAM_NOCREATE | STREAM_SHARE_DENYALL ) );
37662 + if( xVBAStg.Is() && !xVBAStg->GetError() )
37667 + BasicManager *pBasicMan = rDocSh.GetBasicManager();
37668 + if( pBasicMan && pBasicMan->IsBasicModified() )
37669 + nRet = ERRCODE_SVX_MODIFIED_VBASIC_STORAGE;
37671 + SotStorageRef xSrc = SotStorage::OpenOLEStorage( xSrcRoot, aDstStgName, STREAM_STD_READ );
37672 + SotStorageRef xDst = xRoot->OpenSotStorage( rStorageName, STREAM_READWRITE | STREAM_TRUNC );
37673 + xSrc->CopyTo( xDst );
37675 + ErrCode nError = xDst->GetError();
37676 + if ( nError == ERRCODE_NONE )
37677 + nError = xSrc->GetError();
37678 + if ( nError != ERRCODE_NONE )
37679 + xRoot->SetError( nError );
37686 +// check if the MS-VBA-Storage exists in the RootStorage of the DocShell.
37687 +// If it exists, then return the WarningId for losing the information.
37688 +ULONG SvxImportMSVBasic::GetSaveWarningOfMSVBAStorage( SfxObjectShell &rDocSh)
37690 + uno::Reference < embed::XStorage > xSrcRoot( rDocSh.GetStorage() );
37691 + SvStorageRef xVBAStg( SotStorage::OpenOLEStorage( xSrcRoot, GetMSBasicStorageName(),
37692 + STREAM_READ | STREAM_NOCREATE | STREAM_SHARE_DENYALL ));
37693 + return ( xVBAStg.Is() && !xVBAStg->GetError() )
37694 + ? ERRCODE_SVX_VBASIC_STORAGE_EXIST
37698 +String SvxImportMSVBasic::GetMSBasicStorageName()
37700 + return String( RTL_CONSTASCII_USTRINGPARAM( "_MS_VBA_Macros" ) );
37702 diff --git svx/source/options/makefile.mk svx/source/options/makefile.mk
37703 index 2a8573f..9f03f06 100644
37704 --- svx/source/options/makefile.mk
37705 +++ svx/source/options/makefile.mk
37706 @@ -36,6 +36,7 @@ PROJECTPCHSOURCE=$(PRJ)$/util\svxpch
37712 # --- Settings -----------------------------------------------------
37714 @@ -62,39 +63,23 @@ SRC1FILES=\
37718 -#EXCEPTIONSFILES=\
37719 -# $(SLO)$/optasian.obj \
37720 -# $(SLO)$/optlingu.obj \
37721 -# $(SLO)$/optaccessibility.obj \
37722 -# $(SLO)$/optsave.obj \
37723 -# $(SLO)$/optpath.obj
37726 -# $(EXCEPTIONSFILES) \
37727 -# $(SLO)$/asiancfg.obj \
37728 -# $(SLO)$/htmlcfg.obj \
37729 -# $(SLO)$/optcolor.obj \
37730 -# $(SLO)$/optjsearch.obj \
37731 -# $(SLO)$/optitems.obj \
37732 -# $(SLO)$/optgenrl.obj \
37733 -# $(SLO)$/adritem.obj \
37734 -# $(SLO)$/optgrid.obj \
37735 -# $(SLO)$/optinet2.obj \
37736 -# $(SLO)$/optextbr.obj \
37737 -# $(SLO)$/srchcfg.obj \
37738 -# $(SLO)$/optctl.obj
37741 $(SLO)$/optlingu.obj
37744 - $(EXCEPTIONSFILES) \
37745 - $(SLO)$/asiancfg.obj \
37746 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
37748 + $(SLO)$/asiancfg.obj
37750 +LIB2TARGET= $(SLB)$/$(TARGET).lib
37752 + $(SLO)$/optlingu.obj \
37753 $(SLO)$/htmlcfg.obj \
37754 $(SLO)$/optitems.obj \
37755 $(SLO)$/optgrid.obj \
37756 $(SLO)$/srchcfg.obj
37758 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
37760 # --- Targets -------------------------------------------------------
37762 .INCLUDE : target.mk
37763 diff --git svx/source/svdraw/makefile.mk svx/source/svdraw/makefile.mk
37764 index ab306be..94adffe 100644
37765 --- svx/source/svdraw/makefile.mk
37766 +++ svx/source/svdraw/makefile.mk
37767 @@ -33,6 +33,7 @@ PRJ=..$/..
37772 ENABLE_EXCEPTIONS=TRUE
37774 # --- Settings -----------------------------------------------------
37775 @@ -42,11 +43,11 @@ ENABLE_EXCEPTIONS=TRUE
37777 # --- Files --------------------------------------------------------
37780 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
37782 $(SLO)$/svdxcgv.obj \
37783 $(SLO)$/svdmodel.obj \
37784 $(SLO)$/svdpage.obj \
37785 - $(SLO)$/svdoimp.obj \
37786 $(SLO)$/svdobj.obj \
37787 $(SLO)$/svdedtv1.obj \
37788 $(SLO)$/svdcrtv.obj \
37789 @@ -59,7 +60,6 @@ SLOFILES=\
37790 $(SLO)$/svdotextdecomposition.obj \
37791 $(SLO)$/svdotextpathdecomposition.obj \
37792 $(SLO)$/svdouno.obj \
37793 - $(SLO)$/svdfppt.obj \
37794 $(SLO)$/svdpagv.obj \
37795 $(SLO)$/svddrgmt.obj \
37796 $(SLO)$/svdpntv.obj \
37797 @@ -95,7 +95,6 @@ SLOFILES=\
37798 $(SLO)$/svdglev.obj \
37799 $(SLO)$/svdglue.obj \
37800 $(SLO)$/svdhlpln.obj \
37801 - $(SLO)$/svdibrow.obj \
37802 $(SLO)$/svditer.obj \
37803 $(SLO)$/svdlayer.obj \
37804 $(SLO)$/svdmark.obj \
37805 @@ -105,20 +104,31 @@ SLOFILES=\
37806 $(SLO)$/sdrpagewindow.obj \
37807 $(SLO)$/sdrpaintwindow.obj \
37808 $(SLO)$/svdpoev.obj \
37809 - $(SLO)$/svdscrol.obj \
37810 $(SLO)$/svdtouch.obj \
37811 $(SLO)$/svdtrans.obj \
37812 $(SLO)$/svdtxhdl.obj \
37813 $(SLO)$/svdundo.obj \
37814 $(SLO)$/svdviter.obj \
37815 $(SLO)$/clonelist.obj \
37816 - $(SLO)$/ActionDescriptionProvider.obj \
37817 $(SLO)$/svdedtv.obj \
37818 $(SLO)$/selectioncontroller.obj \
37819 $(SLO)$/polypolygoneditor.obj \
37820 - $(SLO)$/svdomedia.obj \
37821 + $(SLO)$/svdomedia.obj
37823 +LIB2TARGET= $(SLB)$/$(TARGET).lib
37825 + $(SLO)$/svdoimp.obj \
37826 + $(SLO)$/svdibrow.obj \
37827 + $(SLO)$/svdscrol.obj \
37828 + $(SLO)$/ActionDescriptionProvider.obj \
37829 $(SLO)$/impgrfll.obj
37831 +LIB3TARGET= $(SLB)$/$(TARGET)-msfilter.lib
37833 + $(SLO)$/svdfppt.obj \
37835 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES) $(LIB3OBJFILES)
37838 SRC1FILES= svdstr.src
37840 diff --git svx/source/svdraw/svdmodel.cxx svx/source/svdraw/svdmodel.cxx
37841 index d328dcf..587ff0a 100644
37842 --- svx/source/svdraw/svdmodel.cxx
37843 +++ svx/source/svdraw/svdmodel.cxx
37844 @@ -1801,6 +1801,11 @@ uno::Reference< uno::XInterface > SdrModel::getUnoModel()
37848 +void SdrModel::setUnoModel( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xModel )
37850 + mxUnoModel = xModel;
37853 uno::Reference< uno::XInterface > SdrModel::createUnoModel()
37855 DBG_ERROR( "SdrModel::createUnoModel() - base implementation should not be called!" );
37856 diff --git svx/source/svrtf/makefile.mk svx/source/svrtf/makefile.mk
37857 index 6ae14ad..8a78c77 100644
37858 --- svx/source/svrtf/makefile.mk
37859 +++ svx/source/svrtf/makefile.mk
37860 @@ -36,6 +36,7 @@ PROJECTPCHSOURCE=$(PRJ)$/util$/svxpch
37867 # --- Settings -----------------------------------------------------
37868 @@ -48,11 +49,17 @@ AUTOSEG=true
37873 - $(SLO)$/rtfgrf.obj \
37874 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
37876 $(SLO)$/rtfitem.obj \
37879 +LIB2TARGET= $(SLB)$/$(TARGET).lib
37881 + $(SLO)$/rtfgrf.obj
37883 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
37885 # ==========================================================================
37887 .INCLUDE : target.mk
37888 diff --git svx/source/svrtf/rtfgrf.cxx svx/source/svrtf/rtfgrf.cxx
37889 index 9fd6ec1..ddddab8 100644
37890 --- svx/source/svrtf/rtfgrf.cxx
37891 +++ svx/source/svrtf/rtfgrf.cxx
37892 @@ -559,17 +559,4 @@ BOOL SvxRTFParser::ReadBmpData( Graphic& rGrf, SvxRTFPictureType& rPicType )
37896 - // alle Werte auf default; wird nach einlesen der Bitmap aufgerufen !
37897 -void SvxRTFPictureType::ResetValues()
37898 -{ // setze alle Werte RTF-Defaults
37899 - eStyle = RTF_BITMAP;
37900 - nMode = HEX_MODE;
37901 - nType = nGoalWidth = nGoalHeight = 0;
37902 - nWidth = nHeight = nWidthBytes = 0;
37904 - nBitsPerPixel = nPlanes = 1;
37905 - nScalX = nScalY = 100; // Skalierung in Prozent
37906 - nCropT = nCropB = nCropL = nCropR = 0;
37909 /* vi:set tabstop=4 shiftwidth=4 expandtab: */
37910 diff --git svx/source/table/cell.hxx svx/source/table/cell.hxx
37911 index 6b4843a..aa4464c 100644
37912 --- svx/source/table/cell.hxx
37913 +++ svx/source/table/cell.hxx
37914 @@ -57,160 +57,160 @@ namespace sdr { namespace table {
37916 // -----------------------------------------------------------------------------
37918 -class Cell : public SdrText,
37919 +class SVX_DLLPUBLIC Cell : public SdrText,
37920 public SvxUnoTextBase,
37921 public ::com::sun::star::table::XMergeableCell,
37922 public ::com::sun::star::awt::XLayoutConstrains,
37923 public ::com::sun::star::beans::XMultiPropertyStates,
37924 public ::cppu::OWeakObject
37926 - friend class CellUndo;
37927 + friend class CellUndo;
37930 - Cell( SdrTableObj& rTableObj, OutlinerParaObject* pOutlinerParaObject ) throw();
37931 - virtual ~Cell() throw();
37932 + Cell( SdrTableObj& rTableObj, OutlinerParaObject* pOutlinerParaObject ) throw();
37933 + virtual ~Cell() throw();
37938 + SVX_DLLPRIVATE void dispose();
37940 - // SdrTextShape proxy
37941 - bool IsTextEditActive();
37942 - bool hasText() const;
37943 + // SdrTextShape proxy
37944 + bool IsTextEditActive();
37945 + SVX_DLLPRIVATE bool hasText() const;
37947 - void cloneFrom( const CellRef& rCell );
37948 + SVX_DLLPRIVATE void cloneFrom( const CellRef& rCell );
37950 - void setCellRect( ::Rectangle& rCellRect ) { maCellRect = rCellRect; }
37951 - const ::Rectangle& getCellRect() const { return maCellRect; }
37952 - ::Rectangle& getCellRect() { return maCellRect; }
37953 + SVX_DLLPRIVATE void setCellRect( ::Rectangle& rCellRect ) { maCellRect = rCellRect; }
37954 + SVX_DLLPRIVATE const ::Rectangle& getCellRect() const { return maCellRect; }
37955 + SVX_DLLPRIVATE ::Rectangle& getCellRect() { return maCellRect; }
37957 - OutlinerParaObject* GetEditOutlinerParaObject() const;
37958 - void SetStyleSheet( SfxStyleSheet* pStyleSheet, sal_Bool bDontRemoveHardAttr );
37959 - virtual SfxStyleSheet* GetStyleSheet() const;
37960 - SfxStyleSheetPool* GetStyleSheetPool() const;
37961 - virtual const Rectangle& GetCurrentBoundRect() const;
37962 - virtual void TakeTextAnchorRect(Rectangle& rAnchorRect) const;
37963 + OutlinerParaObject* GetEditOutlinerParaObject() const;
37964 + SVX_DLLPRIVATE void SetStyleSheet( SfxStyleSheet* pStyleSheet, sal_Bool bDontRemoveHardAttr );
37965 + SVX_DLLPRIVATE virtual SfxStyleSheet* GetStyleSheet() const;
37966 + SfxStyleSheetPool* GetStyleSheetPool() const;
37967 + SVX_DLLPRIVATE virtual const Rectangle& GetCurrentBoundRect() const;
37968 + SVX_DLLPRIVATE virtual void TakeTextAnchorRect(Rectangle& rAnchorRect) const;
37970 - virtual const SfxItemSet& GetItemSet() const;
37971 - void SetMergedItemSetAndBroadcast(const SfxItemSet& rSet, sal_Bool bClearAllItems);
37972 - void SetMergedItem(const SfxPoolItem& rItem);
37973 + SVX_DLLPRIVATE virtual const SfxItemSet& GetItemSet() const;
37974 + SVX_DLLPRIVATE void SetMergedItemSetAndBroadcast(const SfxItemSet& rSet, sal_Bool bClearAllItems);
37975 + void SetMergedItem(const SfxPoolItem& rItem);
37977 - sal_Int32 getMinimumWidth();
37978 - sal_Int32 getMinimumHeight();
37979 + SVX_DLLPRIVATE sal_Int32 getMinimumWidth();
37980 + SVX_DLLPRIVATE sal_Int32 getMinimumHeight();
37982 - long GetTextLeftDistance() const;
37983 - long GetTextRightDistance() const;
37984 - long GetTextUpperDistance() const;
37985 - long GetTextLowerDistance() const;
37986 + SVX_DLLPRIVATE long GetTextLeftDistance() const;
37987 + SVX_DLLPRIVATE long GetTextRightDistance() const;
37988 + SVX_DLLPRIVATE long GetTextUpperDistance() const;
37989 + SVX_DLLPRIVATE long GetTextLowerDistance() const;
37991 - SdrTextVertAdjust GetTextVerticalAdjust() const;
37992 - SdrTextHorzAdjust GetTextHorizontalAdjust() const;
37993 + SVX_DLLPRIVATE SdrTextVertAdjust GetTextVerticalAdjust() const;
37994 + SdrTextHorzAdjust GetTextHorizontalAdjust() const;
37996 - virtual void SetModel(SdrModel* pNewModel);
37997 + SVX_DLLPRIVATE virtual void SetModel(SdrModel* pNewModel);
37999 - void merge( sal_Int32 nColumnSpan, sal_Int32 nRowSpan );
38000 - void mergeContent( const CellRef& xSourceCell );
38001 - void replaceContentAndFormating( const CellRef& xSourceCell );
38002 + SVX_DLLPRIVATE void merge( sal_Int32 nColumnSpan, sal_Int32 nRowSpan );
38003 + SVX_DLLPRIVATE void mergeContent( const CellRef& xSourceCell );
38004 + SVX_DLLPRIVATE void replaceContentAndFormating( const CellRef& xSourceCell );
38006 - void setMerged();
38007 + SVX_DLLPRIVATE void setMerged();
38010 - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& Type ) throw (::com::sun::star::uno::RuntimeException);
38011 - virtual void SAL_CALL acquire() throw ();
38012 - virtual void SAL_CALL release() throw ();
38013 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& Type ) throw (::com::sun::star::uno::RuntimeException);
38014 + SVX_DLLPRIVATE virtual void SAL_CALL acquire() throw ();
38015 + SVX_DLLPRIVATE virtual void SAL_CALL release() throw ();
38018 - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw (::com::sun::star::uno::RuntimeException);
38019 - virtual ::com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL getImplementationId( ) throw (::com::sun::star::uno::RuntimeException);
38020 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw (::com::sun::star::uno::RuntimeException);
38021 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL getImplementationId( ) throw (::com::sun::star::uno::RuntimeException);
38024 - virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
38025 - virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
38026 - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
38027 + SVX_DLLPRIVATE virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
38028 + SVX_DLLPRIVATE virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
38029 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
38031 // XLayoutConstrains
38032 - virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize( ) throw (::com::sun::star::uno::RuntimeException);
38033 - virtual ::com::sun::star::awt::Size SAL_CALL getPreferredSize( ) throw (::com::sun::star::uno::RuntimeException);
38034 - virtual ::com::sun::star::awt::Size SAL_CALL calcAdjustedSize( const ::com::sun::star::awt::Size& aNewSize ) throw (::com::sun::star::uno::RuntimeException);
38035 + SVX_DLLPRIVATE virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize( ) throw (::com::sun::star::uno::RuntimeException);
38036 + SVX_DLLPRIVATE virtual ::com::sun::star::awt::Size SAL_CALL getPreferredSize( ) throw (::com::sun::star::uno::RuntimeException);
38037 + SVX_DLLPRIVATE virtual ::com::sun::star::awt::Size SAL_CALL calcAdjustedSize( const ::com::sun::star::awt::Size& aNewSize ) throw (::com::sun::star::uno::RuntimeException);
38040 - virtual ::sal_Int32 SAL_CALL getRowSpan() throw (::com::sun::star::uno::RuntimeException);
38041 - virtual ::sal_Int32 SAL_CALL getColumnSpan() throw (::com::sun::star::uno::RuntimeException);
38042 - virtual ::sal_Bool SAL_CALL isMerged() throw (::com::sun::star::uno::RuntimeException);
38043 + SVX_DLLPRIVATE virtual ::sal_Int32 SAL_CALL getRowSpan() throw (::com::sun::star::uno::RuntimeException);
38044 + SVX_DLLPRIVATE virtual ::sal_Int32 SAL_CALL getColumnSpan() throw (::com::sun::star::uno::RuntimeException);
38045 + SVX_DLLPRIVATE virtual ::sal_Bool SAL_CALL isMerged() throw (::com::sun::star::uno::RuntimeException);
38048 - virtual ::rtl::OUString SAL_CALL getFormula() throw (::com::sun::star::uno::RuntimeException);
38049 - virtual void SAL_CALL setFormula( const ::rtl::OUString& aFormula ) throw (::com::sun::star::uno::RuntimeException);
38050 - virtual double SAL_CALL getValue() throw (::com::sun::star::uno::RuntimeException);
38051 - virtual void SAL_CALL setValue( double nValue ) throw (::com::sun::star::uno::RuntimeException);
38052 - virtual ::com::sun::star::table::CellContentType SAL_CALL getType() throw (::com::sun::star::uno::RuntimeException);
38053 - virtual sal_Int32 SAL_CALL getError() throw (::com::sun::star::uno::RuntimeException);
38054 + SVX_DLLPRIVATE virtual ::rtl::OUString SAL_CALL getFormula() throw (::com::sun::star::uno::RuntimeException);
38055 + SVX_DLLPRIVATE virtual void SAL_CALL setFormula( const ::rtl::OUString& aFormula ) throw (::com::sun::star::uno::RuntimeException);
38056 + SVX_DLLPRIVATE virtual double SAL_CALL getValue() throw (::com::sun::star::uno::RuntimeException);
38057 + SVX_DLLPRIVATE virtual void SAL_CALL setValue( double nValue ) throw (::com::sun::star::uno::RuntimeException);
38058 + SVX_DLLPRIVATE virtual ::com::sun::star::table::CellContentType SAL_CALL getType() throw (::com::sun::star::uno::RuntimeException);
38059 + SVX_DLLPRIVATE virtual sal_Int32 SAL_CALL getError() throw (::com::sun::star::uno::RuntimeException);
38061 // ::com::sun::star::beans::XPropertySet
38062 - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw(::com::sun::star::uno::RuntimeException);
38063 - virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38064 - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38065 - virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38066 - virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38067 - virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38068 - virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38069 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw(::com::sun::star::uno::RuntimeException);
38070 + SVX_DLLPRIVATE virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38071 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38072 + SVX_DLLPRIVATE virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38073 + SVX_DLLPRIVATE virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38074 + SVX_DLLPRIVATE virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38075 + SVX_DLLPRIVATE virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38077 // XMultiPropertySet
38078 - virtual void SAL_CALL setPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues ) throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38079 - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw (::com::sun::star::uno::RuntimeException);
38080 - virtual void SAL_CALL addPropertiesChangeListener( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
38081 - virtual void SAL_CALL removePropertiesChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
38082 - virtual void SAL_CALL firePropertiesChangeEvent( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
38083 + SVX_DLLPRIVATE virtual void SAL_CALL setPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues ) throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38084 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw (::com::sun::star::uno::RuntimeException);
38085 + SVX_DLLPRIVATE virtual void SAL_CALL addPropertiesChangeListener( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
38086 + SVX_DLLPRIVATE virtual void SAL_CALL removePropertiesChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
38087 + SVX_DLLPRIVATE virtual void SAL_CALL firePropertiesChangeEvent( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
38089 // ::com::sun::star::beans::XPropertyState
38090 - virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
38091 - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
38092 - virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
38093 - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38094 + SVX_DLLPRIVATE virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
38095 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
38096 + SVX_DLLPRIVATE virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
38097 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38099 // XMultiPropertyStates
38100 - virtual void SAL_CALL setAllPropertiesToDefault( ) throw (::com::sun::star::uno::RuntimeException);
38101 - virtual void SAL_CALL setPropertiesToDefault( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
38102 - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyDefaults( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38103 + SVX_DLLPRIVATE virtual void SAL_CALL setAllPropertiesToDefault( ) throw (::com::sun::star::uno::RuntimeException);
38104 + SVX_DLLPRIVATE virtual void SAL_CALL setPropertiesToDefault( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
38105 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyDefaults( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38107 // XFastPropertySet
38108 - virtual void SAL_CALL setFastPropertyValue( ::sal_Int32 nHandle, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38109 - virtual ::com::sun::star::uno::Any SAL_CALL getFastPropertyValue( ::sal_Int32 nHandle ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38110 + SVX_DLLPRIVATE virtual void SAL_CALL setFastPropertyValue( ::sal_Int32 nHandle, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38111 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Any SAL_CALL getFastPropertyValue( ::sal_Int32 nHandle ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
38114 - virtual void SAL_CALL insertTextContent( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xRange, const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent >& xContent, ::sal_Bool bAbsorb ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
38115 - virtual void SAL_CALL removeTextContent( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent >& xContent ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
38116 + SVX_DLLPRIVATE virtual void SAL_CALL insertTextContent( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xRange, const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent >& xContent, ::sal_Bool bAbsorb ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
38117 + SVX_DLLPRIVATE virtual void SAL_CALL removeTextContent( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent >& xContent ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
38120 - virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursor( ) throw (::com::sun::star::uno::RuntimeException);
38121 - virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursorByRange( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& aTextPosition ) throw (::com::sun::star::uno::RuntimeException);
38122 - virtual void SAL_CALL insertString( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xRange, const ::rtl::OUString& aString, ::sal_Bool bAbsorb ) throw (::com::sun::star::uno::RuntimeException);
38123 - virtual void SAL_CALL insertControlCharacter( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xRange, ::sal_Int16 nControlCharacter, ::sal_Bool bAbsorb ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
38124 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursor( ) throw (::com::sun::star::uno::RuntimeException);
38125 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursorByRange( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& aTextPosition ) throw (::com::sun::star::uno::RuntimeException);
38126 + SVX_DLLPRIVATE virtual void SAL_CALL insertString( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xRange, const ::rtl::OUString& aString, ::sal_Bool bAbsorb ) throw (::com::sun::star::uno::RuntimeException);
38127 + SVX_DLLPRIVATE virtual void SAL_CALL insertControlCharacter( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xRange, ::sal_Int16 nControlCharacter, ::sal_Bool bAbsorb ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
38130 - virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL getText( ) throw (::com::sun::star::uno::RuntimeException);
38131 - virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getStart( ) throw (::com::sun::star::uno::RuntimeException);
38132 - virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getEnd( ) throw (::com::sun::star::uno::RuntimeException);
38133 - virtual ::rtl::OUString SAL_CALL getString( ) throw (::com::sun::star::uno::RuntimeException);
38134 - virtual void SAL_CALL setString( const ::rtl::OUString& aString ) throw (::com::sun::star::uno::RuntimeException);
38135 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL getText( ) throw (::com::sun::star::uno::RuntimeException);
38136 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getStart( ) throw (::com::sun::star::uno::RuntimeException);
38137 + SVX_DLLPRIVATE virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getEnd( ) throw (::com::sun::star::uno::RuntimeException);
38138 + SVX_DLLPRIVATE virtual ::rtl::OUString SAL_CALL getString( ) throw (::com::sun::star::uno::RuntimeException);
38139 + SVX_DLLPRIVATE virtual void SAL_CALL setString( const ::rtl::OUString& aString ) throw (::com::sun::star::uno::RuntimeException);
38141 - virtual void SetOutlinerParaObject( OutlinerParaObject* pTextObject );
38142 + SVX_DLLPRIVATE virtual void SetOutlinerParaObject( OutlinerParaObject* pTextObject );
38145 + SVX_DLLPRIVATE void AddUndo();
38147 - using SvxUnoTextRangeBase::setPropertyValue;
38148 - using SvxUnoTextRangeBase::getPropertyValue;
38149 + using SvxUnoTextRangeBase::setPropertyValue;
38150 + using SvxUnoTextRangeBase::getPropertyValue;
38152 - sdr::properties::TextProperties* CloneProperties( SdrObject& rNewObj, Cell& rNewCell );
38153 + SVX_DLLPRIVATE sdr::properties::TextProperties* CloneProperties( SdrObject& rNewObj, Cell& rNewCell );
38155 - static sdr::properties::TextProperties* CloneProperties( sdr::properties::TextProperties* pProperties, SdrObject& rNewObj, Cell& rNewCell );
38156 + SVX_DLLPRIVATE static sdr::properties::TextProperties* CloneProperties( sdr::properties::TextProperties* pProperties, SdrObject& rNewObj, Cell& rNewCell );
38158 - void notifyModified();
38159 + SVX_DLLPRIVATE void notifyModified();
38162 - virtual const SfxItemSet& GetObjectItemSet();
38163 - virtual void SetObjectItem(const SfxPoolItem& rItem);
38164 + SVX_DLLPRIVATE virtual const SfxItemSet& GetObjectItemSet();
38165 + SVX_DLLPRIVATE virtual void SetObjectItem(const SfxPoolItem& rItem);
38167 - ::com::sun::star::uno::Any GetAnyForItem( SfxItemSet& aSet, const SfxItemPropertyMap* pMap );
38168 + SVX_DLLPRIVATE ::com::sun::star::uno::Any GetAnyForItem( SfxItemSet& aSet, const SfxItemPropertyMap* pMap );
38171 SvxItemPropertySet maPropSet;
38172 diff --git svx/source/table/makefile.mk svx/source/table/makefile.mk
38173 index fe34fd5..bccf1b2 100644
38174 --- svx/source/table/makefile.mk
38175 +++ svx/source/table/makefile.mk
38176 @@ -36,6 +36,7 @@ PROJECTPCHSOURCE=$(PRJ)$/util$/svxpch
38181 ENABLE_EXCEPTIONS=TRUE;
38183 # --- Settings -----------------------------------------------------
38184 @@ -45,9 +46,9 @@ ENABLE_EXCEPTIONS=TRUE;
38186 # --- Files --------------------------------------------------------
38189 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
38191 $(SLO)$/propertyset.obj\
38192 - $(SLO)$/celleditsource.obj\
38194 $(SLO)$/cellrange.obj\
38195 $(SLO)$/cellcursor.obj\
38196 @@ -61,13 +62,19 @@ SLOFILES= \
38197 $(SLO)$/tablelayouter.obj\
38198 $(SLO)$/tablehandles.obj\
38199 $(SLO)$/tablecontroller.obj\
38200 - $(SLO)$/tabledesign.obj\
38201 - $(SLO)$/tableundo.obj\
38202 - $(SLO)$/accessibletableshape.obj\
38203 + $(SLO)$/tableundo.obj
38205 +LIB2TARGET= $(SLB)$/$(TARGET).lib
38207 + $(SLO)$/celleditsource.obj \
38208 + $(SLO)$/tabledesign.obj \
38209 + $(SLO)$/accessibletableshape.obj \
38210 $(SLO)$/accessiblecell.obj \
38211 $(SLO)$/tablertfexporter.obj \
38212 $(SLO)$/tablertfimporter.obj
38214 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
38217 SRC1FILES= table.src
38219 diff --git svx/source/table/tablecontroller.hxx svx/source/table/tablecontroller.hxx
38220 index bd1569c..6270aa9 100644
38221 --- svx/source/table/tablecontroller.hxx
38222 +++ svx/source/table/tablecontroller.hxx
38223 @@ -50,97 +50,97 @@ const sal_Int16 SELTYPE_NONE = 0;
38224 const sal_Int16 SELTYPE_MOUSE = 1;
38225 const sal_Int16 SELTYPE_KEYS = 2;
38227 -class SvxTableController: public sdr::SelectionController
38228 +class SVX_DLLPUBLIC SvxTableController: public sdr::SelectionController
38231 - SvxTableController( SdrObjEditView* pView, const SdrObject* pObj );
38232 - virtual ~SvxTableController();
38233 + SVX_DLLPRIVATE SvxTableController( SdrObjEditView* pView, const SdrObject* pObj );
38234 + SVX_DLLPRIVATE virtual ~SvxTableController();
38236 - virtual bool onKeyInput(const KeyEvent& rKEvt, Window* pWin);
38237 - virtual bool onMouseButtonDown(const MouseEvent& rMEvt, Window* pWin);
38238 - virtual bool onMouseButtonUp(const MouseEvent& rMEvt, Window* pWin);
38239 - virtual bool onMouseMove(const MouseEvent& rMEvt, Window* pWin);
38240 + SVX_DLLPRIVATE virtual bool onKeyInput(const KeyEvent& rKEvt, Window* pWin);
38241 + SVX_DLLPRIVATE virtual bool onMouseButtonDown(const MouseEvent& rMEvt, Window* pWin);
38242 + SVX_DLLPRIVATE virtual bool onMouseButtonUp(const MouseEvent& rMEvt, Window* pWin);
38243 + SVX_DLLPRIVATE virtual bool onMouseMove(const MouseEvent& rMEvt, Window* pWin);
38245 - virtual bool DeleteMarked();
38246 + SVX_DLLPRIVATE virtual bool DeleteMarked();
38248 - virtual void onSelectionHasChanged();
38249 + SVX_DLLPRIVATE virtual void onSelectionHasChanged();
38251 - virtual void GetState( SfxItemSet& rSet );
38252 - virtual void Execute( SfxRequest& rReq );
38253 + SVX_DLLPRIVATE virtual void GetState( SfxItemSet& rSet );
38254 + SVX_DLLPRIVATE virtual void Execute( SfxRequest& rReq );
38256 - virtual bool GetStyleSheet( SfxStyleSheet* &rpStyleSheet ) const;
38257 - virtual bool SetStyleSheet( SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr );
38258 + SVX_DLLPRIVATE virtual bool GetStyleSheet( SfxStyleSheet* &rpStyleSheet ) const;
38259 + SVX_DLLPRIVATE virtual bool SetStyleSheet( SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr );
38262 - void onInsert( sal_uInt16 nSId );
38263 - void onDelete( sal_uInt16 nSId );
38264 - void onSelect( sal_uInt16 nSId );
38265 - void onFormatTable( SfxRequest& rReq );
38266 - void MergeMarkedCells();
38267 - void SplitMarkedCells();
38268 - void DistributeColumns();
38269 - void DistributeRows();
38270 - void SetVertical( sal_uInt16 nSId );
38271 + SVX_DLLPRIVATE void onInsert( sal_uInt16 nSId );
38272 + SVX_DLLPRIVATE void onDelete( sal_uInt16 nSId );
38273 + SVX_DLLPRIVATE void onSelect( sal_uInt16 nSId );
38274 + SVX_DLLPRIVATE void onFormatTable( SfxRequest& rReq );
38275 + SVX_DLLPRIVATE void MergeMarkedCells();
38276 + SVX_DLLPRIVATE void SplitMarkedCells();
38277 + SVX_DLLPRIVATE void DistributeColumns();
38278 + SVX_DLLPRIVATE void DistributeRows();
38279 + SVX_DLLPRIVATE void SetVertical( sal_uInt16 nSId );
38281 - static rtl::Reference< sdr::SelectionController > create( SdrObjEditView* pView, const SdrObject* pObj, const rtl::Reference< sdr::SelectionController >& xRefController );
38282 + SVX_DLLPRIVATE static rtl::Reference< sdr::SelectionController > create( SdrObjEditView* pView, const SdrObject* pObj, const rtl::Reference< sdr::SelectionController >& xRefController );
38284 - void MergeAttrFromSelectedCells(SfxItemSet& rAttr, bool bOnlyHardAttr) const;
38285 - void SetAttrToSelectedCells(const SfxItemSet& rAttr, bool bReplaceAll);
38286 + SVX_DLLPRIVATE void MergeAttrFromSelectedCells(SfxItemSet& rAttr, bool bOnlyHardAttr) const;
38287 + SVX_DLLPRIVATE void SetAttrToSelectedCells(const SfxItemSet& rAttr, bool bReplaceAll);
38289 - virtual bool GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr) const;
38290 - virtual bool SetAttributes(const SfxItemSet& rSet, bool bReplaceAll);
38291 + SVX_DLLPRIVATE virtual bool GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr) const;
38292 + SVX_DLLPRIVATE virtual bool SetAttributes(const SfxItemSet& rSet, bool bReplaceAll);
38294 - virtual bool GetMarkedObjModel( SdrPage* pNewPage );
38295 - virtual bool PasteObjModel( const SdrModel& rModel );
38296 + SVX_DLLPRIVATE virtual bool GetMarkedObjModel( SdrPage* pNewPage );
38297 + SVX_DLLPRIVATE virtual bool PasteObjModel( const SdrModel& rModel );
38299 - bool hasSelectedCells() const { return mbCellSelectionMode || mpView->IsTextEdit(); }
38300 + SVX_DLLPRIVATE bool hasSelectedCells() const { return mbCellSelectionMode || mpView->IsTextEdit(); }
38302 void getSelectedCells( CellPos& rFirstPos, CellPos& rLastPos );
38303 void setSelectedCells( const CellPos& rFirstPos, const CellPos& rLastPos );
38304 void clearSelection();
38307 - void onTableModified();
38308 + SVX_DLLPRIVATE void onTableModified();
38311 SvxTableController(SvxTableController &); // not defined
38312 void operator =(SvxTableController &); // not defined
38315 - void ApplyBorderAttr( const SfxItemSet& rAttr );
38316 - void UpdateTableShape();
38317 + SVX_DLLPRIVATE void ApplyBorderAttr( const SfxItemSet& rAttr );
38318 + SVX_DLLPRIVATE void UpdateTableShape();
38320 - void SetTableStyle( const SfxItemSet* pArgs );
38321 - void SetTableStyleSettings( const SfxItemSet* pArgs );
38322 + SVX_DLLPRIVATE void SetTableStyle( const SfxItemSet* pArgs );
38323 + SVX_DLLPRIVATE void SetTableStyleSettings( const SfxItemSet* pArgs );
38325 - bool PasteObject( SdrTableObj* pPasteTableObj );
38326 + SVX_DLLPRIVATE bool PasteObject( SdrTableObj* pPasteTableObj );
38328 - bool checkTableObject();
38329 - bool updateTableObject();
38330 - const CellPos& getSelectionStart();
38331 - void setSelectionStart( const CellPos& rPos );
38332 - const CellPos& getSelectionEnd();
38333 - ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellCursor > getSelectionCursor();
38334 - void checkCell( CellPos& rPos );
38335 + SVX_DLLPRIVATE bool checkTableObject();
38336 + SVX_DLLPRIVATE bool updateTableObject();
38337 + SVX_DLLPRIVATE const CellPos& getSelectionStart();
38338 + SVX_DLLPRIVATE void setSelectionStart( const CellPos& rPos );
38339 + SVX_DLLPRIVATE const CellPos& getSelectionEnd();
38340 + SVX_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellCursor > getSelectionCursor();
38341 + SVX_DLLPRIVATE void checkCell( CellPos& rPos );
38343 - void MergeRange( sal_Int32 nFirstCol, sal_Int32 nFirstRow, sal_Int32 nLastCol, sal_Int32 nLastRow );
38344 + SVX_DLLPRIVATE void MergeRange( sal_Int32 nFirstCol, sal_Int32 nFirstRow, sal_Int32 nLastCol, sal_Int32 nLastRow );
38346 - void EditCell( const CellPos& rPos, ::Window* pWindow, const ::com::sun::star::awt::MouseEvent* pMouseEvent = 0, sal_uInt16 nAction = 0 );
38347 - bool StopTextEdit();
38348 + SVX_DLLPRIVATE void EditCell( const CellPos& rPos, ::Window* pWindow, const ::com::sun::star::awt::MouseEvent* pMouseEvent = 0, sal_uInt16 nAction = 0 );
38349 + SVX_DLLPRIVATE bool StopTextEdit();
38351 - void DeleteTable();
38352 + SVX_DLLPRIVATE void DeleteTable();
38354 - sal_uInt16 getKeyboardAction( const KeyEvent& rKEvt, Window* pWindow );
38355 - bool executeAction( sal_uInt16 nAction, bool bSelect, Window* pWindow );
38356 - void gotoCell( const CellPos& rCell, bool bSelect, Window* pWindow, sal_uInt16 nAction = 0 );
38357 + SVX_DLLPRIVATE sal_uInt16 getKeyboardAction( const KeyEvent& rKEvt, Window* pWindow );
38358 + SVX_DLLPRIVATE bool executeAction( sal_uInt16 nAction, bool bSelect, Window* pWindow );
38359 + SVX_DLLPRIVATE void gotoCell( const CellPos& rCell, bool bSelect, Window* pWindow, sal_uInt16 nAction = 0 );
38361 - void StartSelection( const CellPos& rPos );
38362 - void UpdateSelection( const CellPos& rPos );
38363 - void RemoveSelection();
38364 - void updateSelectionOverlay();
38365 - void destroySelectionOverlay();
38366 + SVX_DLLPRIVATE void StartSelection( const CellPos& rPos );
38367 + SVX_DLLPRIVATE void UpdateSelection( const CellPos& rPos );
38368 + SVX_DLLPRIVATE void RemoveSelection();
38369 + SVX_DLLPRIVATE void updateSelectionOverlay();
38370 + SVX_DLLPRIVATE void destroySelectionOverlay();
38372 - void findMergeOrigin( CellPos& rPos );
38373 + SVX_DLLPRIVATE void findMergeOrigin( CellPos& rPos );
38375 DECL_LINK( UpdateHdl, void * );
38377 diff --git svx/source/tbxctrls/makefile.mk svx/source/tbxctrls/makefile.mk
38378 index 9de74b6..e7cd3d5 100644
38379 --- svx/source/tbxctrls/makefile.mk
38380 +++ svx/source/tbxctrls/makefile.mk
38381 @@ -33,6 +33,7 @@ PRJ=..$/..
38386 ENABLE_EXCEPTIONS=TRUE
38388 # --- Settings -----------------------------------------------------
38389 @@ -42,10 +43,17 @@ ENABLE_EXCEPTIONS=TRUE
38391 # --- Files --------------------------------------------------------
38394 - $(SLO)$/formatpaintbrushctrl.obj\
38395 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
38397 $(SLO)$/fontworkgallery.obj\
38398 $(SLO)$/extrusioncontrols.obj \
38399 + $(SLO)$/tbcontrl.obj \
38400 + $(SLO)$/toolbarmenu.obj \
38401 + $(SLO)$/tbxcolorupdate.obj
38403 +LIB2TARGET= $(SLB)$/$(TARGET).lib
38405 + $(SLO)$/formatpaintbrushctrl.obj\
38406 $(SLO)$/colrctrl.obj \
38407 $(SLO)$/fillctrl.obj \
38408 $(SLO)$/grafctrl.obj \
38409 @@ -53,17 +61,16 @@ SLOFILES= \
38410 $(SLO)$/layctrl.obj \
38411 $(SLO)$/lboxctrl.obj \
38412 $(SLO)$/linectrl.obj \
38413 - $(SLO)$/tbcontrl.obj \
38414 $(SLO)$/tbxalign.obj \
38415 $(SLO)$/tbxdrctl.obj \
38416 $(SLO)$/verttexttbxctrl.obj \
38417 - $(SLO)$/toolbarmenu.obj \
38418 $(SLO)$/subtoolboxcontrol.obj \
38419 $(SLO)$/tbxcolor.obj \
38420 - $(SLO)$/tbxcolorupdate.obj \
38421 $(SLO)$/tbunocontroller.obj \
38422 $(SLO)$/zoomtbxctrl.obj
38424 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
38428 fontworkgallery.src \
38429 diff --git svx/source/unodraw/UnoGraphicExporter.cxx svx/source/unodraw/UnoGraphicExporter.cxx
38430 index 08ea68b..9070b2e 100644
38431 --- svx/source/unodraw/UnoGraphicExporter.cxx
38432 +++ svx/source/unodraw/UnoGraphicExporter.cxx
38433 @@ -198,13 +198,13 @@ namespace svx
38437 - Reference< XInterface > SAL_CALL GraphicExporter_createInstance(const Reference< XMultiServiceFactory > & )
38438 + SVX_DLLPUBLIC Reference< XInterface > SAL_CALL GraphicExporter_createInstance(const Reference< XMultiServiceFactory > & )
38441 return (XWeak*)new GraphicExporter();
38444 - Sequence< OUString > SAL_CALL GraphicExporter_getSupportedServiceNames()
38445 + SVX_DLLPUBLIC Sequence< OUString > SAL_CALL GraphicExporter_getSupportedServiceNames()
38448 Sequence< OUString > aSupportedServiceNames( 1 );
38449 @@ -212,7 +212,7 @@ namespace svx
38450 return aSupportedServiceNames;
38453 - OUString SAL_CALL GraphicExporter_getImplementationName()
38454 + SVX_DLLPUBLIC OUString SAL_CALL GraphicExporter_getImplementationName()
38457 return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Draw.GraphicExporter" ) );
38458 diff --git svx/source/unodraw/UnoGraphicExporter.hxx svx/source/unodraw/UnoGraphicExporter.hxx
38459 index e015b1b..733c9ed 100644
38460 --- svx/source/unodraw/UnoGraphicExporter.hxx
38461 +++ svx/source/unodraw/UnoGraphicExporter.hxx
38466 - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL GraphicExporter_createInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( ::com::sun::star::uno::Exception );
38467 - ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL GraphicExporter_getSupportedServiceNames() throw();
38468 - ::rtl::OUString SAL_CALL GraphicExporter_getImplementationName() throw();
38469 + SVX_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL GraphicExporter_createInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( ::com::sun::star::uno::Exception );
38470 + SVX_DLLPUBLIC ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL GraphicExporter_getSupportedServiceNames() throw();
38471 + SVX_DLLPUBLIC ::rtl::OUString SAL_CALL GraphicExporter_getImplementationName() throw();
38475 diff --git svx/source/unodraw/makefile.mk svx/source/unodraw/makefile.mk
38476 index ede2c0b..082eb17 100644
38477 --- svx/source/unodraw/makefile.mk
38478 +++ svx/source/unodraw/makefile.mk
38479 @@ -33,6 +33,7 @@ PRJ=..$/..
38484 ENABLE_EXCEPTIONS=TRUE
38486 # --- Settings -----------------------------------------------------
38487 @@ -42,21 +43,18 @@ ENABLE_EXCEPTIONS=TRUE
38489 # --- Files --------------------------------------------------------
38492 - $(SLO)$/UnoNamespaceMap.obj \
38493 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
38495 $(SLO)$/UnoGraphicExporter.obj \
38496 - $(SLO)$/unopool.obj \
38497 $(SLO)$/XPropertyTable.obj \
38498 $(SLO)$/UnoNameItemTable.obj \
38499 $(SLO)$/unoshape.obj \
38500 $(SLO)$/unoipset.obj \
38501 - $(SLO)$/unoctabl.obj \
38502 $(SLO)$/unoshap2.obj \
38503 $(SLO)$/unoshap3.obj \
38504 $(SLO)$/unoshap4.obj \
38505 $(SLO)$/unopage.obj \
38506 $(SLO)$/unoshtxt.obj \
38507 - $(SLO)$/unoshcol.obj \
38508 $(SLO)$/unoprov.obj \
38509 $(SLO)$/unomod.obj \
38510 $(SLO)$/unonrule.obj \
38511 @@ -69,9 +67,18 @@ SLOFILES = \
38512 $(SLO)$/unomtabl.obj \
38513 $(SLO)$/unodtabl.obj \
38514 $(SLO)$/gluepts.obj \
38515 - $(SLO)$/recoveryui.obj \
38516 $(SLO)$/tableshape.obj
38518 +LIB2TARGET= $(SLB)$/$(TARGET).lib
38520 + $(SLO)$/UnoNamespaceMap.obj \
38521 + $(SLO)$/unopool.obj \
38522 + $(SLO)$/unoctabl.obj \
38523 + $(SLO)$/unoshcol.obj \
38524 + $(SLO)$/recoveryui.obj
38526 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
38531 diff --git svx/source/unodraw/unoshap2.cxx svx/source/unodraw/unoshap2.cxx
38532 index 213525a..e53d0f3 100644
38533 --- svx/source/unodraw/unoshap2.cxx
38534 +++ svx/source/unodraw/unoshap2.cxx
38536 #include "shapeimpl.hxx"
38537 #include "svx/unoshprp.hxx"
38538 #include <svx/svdoashp.hxx>
38539 +#include "unopolyhelper.hxx"
38542 #include "svdviter.hxx"
38543 diff --git svx/source/unoedit/makefile.mk svx/source/unoedit/makefile.mk
38544 index 6852db4..fd9dd17 100644
38545 --- svx/source/unoedit/makefile.mk
38546 +++ svx/source/unoedit/makefile.mk
38547 @@ -33,6 +33,7 @@ PRJ=..$/..
38552 ENABLE_EXCEPTIONS=TRUE
38554 # --- Settings -----------------------------------------------------
38555 @@ -42,13 +43,10 @@ ENABLE_EXCEPTIONS=TRUE
38557 # --- Files --------------------------------------------------------
38560 - $(SLO)$/UnoForbiddenCharsTable.obj \
38561 +LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
38563 $(SLO)$/unoedsrc.obj \
38564 $(SLO)$/unoedhlp.obj \
38565 - $(SLO)$/unopracc.obj \
38566 - $(SLO)$/unoedprx.obj \
38567 - $(SLO)$/unoviwed.obj \
38568 $(SLO)$/unoviwou.obj \
38569 $(SLO)$/unofored.obj \
38570 $(SLO)$/unoforou.obj \
38571 @@ -56,6 +54,15 @@ SLOFILES = \
38572 $(SLO)$/unotext2.obj \
38573 $(SLO)$/unofield.obj
38575 +LIB2TARGET= $(SLB)$/$(TARGET).lib
38577 + $(SLO)$/UnoForbiddenCharsTable.obj \
38578 + $(SLO)$/unopracc.obj \
38579 + $(SLO)$/unoedprx.obj \
38580 + $(SLO)$/unoviwed.obj
38582 +SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
38584 # --- Tagets -------------------------------------------------------
38586 .INCLUDE : target.mk
38587 diff --git svx/util/makefile.mk svx/util/makefile.mk
38588 index 2b49d35..bd79564 100644
38589 --- svx/util/makefile.mk
38590 +++ svx/util/makefile.mk
38591 @@ -52,11 +52,6 @@ RSCLOCINC+=-I$(PRJ)$/source$/svdraw
38593 LIB1TARGET= $(SLB)$/$(TARGET).lib
38595 - $(SLB)$/animation.lib \
38596 - $(SLB)$/overlay.lib \
38597 - $(SLB)$/attribute.lib \
38598 - $(SLB)$/primitive2d.lib \
38599 - $(SLB)$/primitive3d.lib \
38600 $(SLB)$/svdraw.lib \
38603 @@ -68,10 +63,6 @@ LIB2TARGET= $(SLB)$/$(TARGET)_2.lib
38606 $(SLB)$/items.lib \
38607 - $(SLB)$/svxlink.lib \
38608 - $(SLB)$/svxrtf.lib \
38609 - $(SLB)$/editeng.lib \
38610 - $(SLB)$/outliner.lib \
38611 $(SLB)$/dialogs.lib \
38612 $(SLB)$/mnuctrls.lib \
38613 $(SLB)$/options.lib \
38614 @@ -84,40 +75,108 @@ LIB3TARGET= $(SLB)$/$(TARGET)_3.lib
38616 $(SLB)$/unodraw.lib \
38617 $(SLB)$/unogallery.lib\
38618 - $(SLB)$/gal.lib \
38619 $(SLB)$/accessibility.lib \
38620 - $(SLB)$/customshapes.lib\
38621 - $(SLB)$/toolbars.lib \
38622 - $(SLB)$/properties.lib \
38623 - $(SLB)$/contact.lib \
38624 - $(SLB)$/event.lib
38625 + $(SLB)$/customshapes.lib
38627 LIB4TARGET= $(SLB)$/$(TARGET)_4.lib
38629 $(SLB)$/fmcomp.lib \
38630 $(SLB)$/engine3d.lib \
38631 - $(SLB)$/msfilter.lib \
38632 - $(SLB)$/xout.lib \
38633 - $(SLB)$/xml.lib \
38636 +# Objects needed for the svxcore library.
38637 +LIB5TARGET= $(SLB)$/$(TARGET)_5.lib
38639 + $(SLB)$/accessibility-core.lib \
38640 + $(SLB)$/animation.lib \
38641 + $(SLB)$/attribute.lib \
38642 + $(SLB)$/contact.lib \
38643 + $(SLB)$/customshapes-core.lib \
38644 + $(SLB)$/dialogs-core.lib \
38645 + $(SLB)$/editeng.lib \
38646 + $(SLB)$/engine3d-core.lib \
38647 + $(SLB)$/event.lib \
38648 + $(SLB)$/fmcomp-core.lib \
38649 + $(SLB)$/form-core.lib \
38650 + $(SLB)$/gal.lib \
38651 + $(SLB)$/items-core.lib \
38652 + $(SLB)$/msfilter-core.lib \
38653 + $(SLB)$/options-core.lib \
38654 + $(SLB)$/outliner.lib \
38655 + $(SLB)$/overlay.lib \
38656 + $(SLB)$/primitive2d.lib \
38657 + $(SLB)$/primitive3d.lib \
38658 + $(SLB)$/properties.lib \
38659 + $(SLB)$/svdraw-core.lib \
38660 + $(SLB)$/svxlink.lib \
38661 + $(SLB)$/svxrtf-core.lib \
38662 + $(SLB)$/table-core.lib \
38663 + $(SLB)$/tbxctrls-core.lib \
38664 + $(SLB)$/toolbars.lib \
38665 + $(SLB)$/unodraw-core.lib \
38666 + $(SLB)$/unoedit-core.lib \
38667 + $(SLB)$/xml.lib \
38670 +# Objects needed for the svxmsfilter library.
38671 +LIB6TARGET= $(SLB)$/$(TARGET)_6.lib
38673 + $(SLB)$/msfilter-msfilter.lib \
38674 + $(SLB)$/svdraw-msfilter.lib \
38675 + $(SLB)$/svxrtf.lib
38677 HELPIDFILES= ..$/inc$/helpid.hrc
38680 -SHL1TARGET= svx$(DLLPOSTFIX)
38681 -SHL1IMPLIB= i$(TARGET)
38683 +SHL1TARGET= svxcore$(DLLPOSTFIX)
38684 +SHL1IMPLIB= isvxcore
38685 SHL1USE_EXPORTS=name
38686 +SHL1LIBS= $(LIB5TARGET)
38688 -SHL1LIBS= $(LIB1TARGET) $(LIB2TARGET) $(LIB3TARGET) $(LIB4TARGET)
38696 + $(DRAWINGLAYERLIB) \
38706 + $(I18NISOLANGLIB) \
38707 + $(COMPHELPERLIB) \
38708 + $(UCBHELPERLIB) \
38709 + $(CPPUHELPERLIB) \
38715 +SHL1DEF= $(MISC)$/$(SHL1TARGET).def
38716 +DEF1NAME= $(SHL1TARGET)
38717 +DEFLIB1NAME=$(TARGET)_5
38720 +SHL2TARGET= svx$(DLLPOSTFIX)
38721 +SHL2IMPLIB= i$(TARGET)
38722 +SHL2USE_EXPORTS=name
38723 +SHL2DEPN=$(SHL1TARGETN)
38725 +SHL2LIBS= $(LIB1TARGET) $(LIB2TARGET) $(LIB3TARGET) $(LIB4TARGET)
38732 $(DRAWINGLAYERLIB) \
38738 @@ -132,33 +191,33 @@ SHL1STDLIBS= \
38746 .IF "$(GUI)"=="WNT"
38747 -SHL1STDLIBS+=$(SHELLLIB)
38748 +SHL2STDLIBS+=$(SHELLLIB)
38751 -SHL1DEF= $(MISC)$/$(SHL1TARGET).def
38752 -DEF1NAME= $(SHL1TARGET)
38753 -DEFLIB1NAME=$(TARGET) $(TARGET)_2 $(TARGET)_3 $(TARGET)_4
38754 +SHL2DEF= $(MISC)$/$(SHL2TARGET).def
38755 +DEF2NAME= $(SHL2TARGET)
38756 +DEFLIB2NAME=$(TARGET) $(TARGET)_2 $(TARGET)_3 $(TARGET)_4
38760 -SHL2TARGET= cui$(DLLPOSTFIX)
38761 -SHL2VERSIONMAP= cui.map
38763 -SHL2DEPN=$(SHL1TARGETN)
38764 +SHL3TARGET= cui$(DLLPOSTFIX)
38765 +SHL3VERSIONMAP= cui.map
38767 +SHL3DEPN=$(SHL2TARGETN)
38769 -SHL2DEF= $(MISC)$/$(SHL2TARGET).def
38770 -DEF2NAME= $(SHL2TARGET)
38771 +SHL3DEF= $(MISC)$/$(SHL3TARGET).def
38772 +DEF3NAME= $(SHL3TARGET)
38774 -SHL2LIBS= $(SLB)$/cui.lib
38776 +SHL3LIBS= $(SLB)$/cui.lib
38778 $(SLO)$/cuiexp.obj \
38779 $(SLO)$/dlgfact.obj
38787 @@ -178,16 +237,46 @@ SHL2STDLIBS= \
38795 .IF "$(GUI)"=="WNT"
38803 +# svxmsfilter library
38804 +SHL4TARGET= svxmsfilter$(DLLPOSTFIX)
38805 +SHL4IMPLIB= isvxmsfilter
38806 +SHL4USE_EXPORTS=name
38807 +SHL4DEPN=$(SHL1TARGETN)
38808 +SHL4LIBS= $(LIB6TARGET)
38824 + $(XMLSCRIPTLIB) \
38825 + $(COMPHELPERLIB) \
38826 + $(CPPUHELPERLIB) \
38830 +SHL4DEF= $(MISC)$/$(SHL4TARGET).def
38831 +DEF4NAME= $(SHL4TARGET)
38832 +DEFLIB4NAME=$(TARGET)_6
38834 # ------------------------------------------------------------------------------
38837 --- sw/util/makefile.mk (.../tags/DEV300_m42) (revision 270095)
38838 +++ sw/util/makefile.mk (.../cws/ooxml03) (revision 270095)
38839 @@ -102,6 +102,7 @@
38840 # dynamic libraries
38847 @@ -180,6 +181,7 @@
38855 @@ -320,7 +322,10 @@
38863 + $(SVXMSFILTERLIB) \
38867 diff --git vcl/inc/vcl/graph.hxx vcl/inc/vcl/graph.hxx
38868 index b7b7870..dd1df6f 100644
38869 --- vcl/inc/vcl/graph.hxx
38870 +++ vcl/inc/vcl/graph.hxx
38871 @@ -174,7 +174,7 @@ public:
38872 BOOL IsSwapOut() const;
38874 void SetLink( const GfxLink& );
38875 - GfxLink GetLink();
38876 + GfxLink GetLink() const;
38877 BOOL IsLink() const;
38879 BOOL ExportNative( SvStream& rOStream ) const;
38880 diff --git vcl/source/gdi/graph.cxx vcl/source/gdi/graph.cxx
38881 index 1854a6a..12a8294 100644
38882 --- vcl/source/gdi/graph.cxx
38883 +++ vcl/source/gdi/graph.cxx
38884 @@ -803,7 +803,7 @@ void Graphic::SetLink( const GfxLink& rGfxLink )
38886 // ------------------------------------------------------------------------
38888 -GfxLink Graphic::GetLink()
38889 +GfxLink Graphic::GetLink() const
38891 return mpImpGraphic->ImplGetLink();
38893 diff --git writerfilter/prj/d.lst writerfilter/prj/d.lst
38894 index 0ad5cdd..f941f42 100644
38895 --- writerfilter/prj/d.lst
38896 +++ writerfilter/prj/d.lst
38898 ..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*.so
38899 ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
38901 +mkdir: %_DEST%\inc%_EXT%\writerfilter\doctok
38902 +..\%__SRC%\inc\doctok\sprmids.hxx %_DEST%\inc%_EXT%\writerfilter\doctok\sprmids.hxx
38903 diff --git writerfilter/source/filter/ImportFilter.cxx writerfilter/source/filter/ImportFilter.cxx
38904 index 32fe782..c36a844 100644
38905 --- writerfilter/source/filter/ImportFilter.cxx
38906 +++ writerfilter/source/filter/ImportFilter.cxx
38909 #include <osl/diagnose.h>
38910 #include <com/sun/star/uno/XComponentContext.hpp>
38911 -#ifndef _COM_SU_STAR_DRAWING_XDRAWPAGESUPPLIER_HPP_
38912 #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
38914 #include <com/sun/star/io/XInputStream.hpp>
38915 #include <dmapper/DomainMapper.hxx>
38916 #include <WriterFilter.hxx>
38918 #include <iostream>
38919 #include <osl/process.h>
38922 #include <resourcemodel/TagLogger.hxx>
38923 using namespace ::rtl;
38924 using namespace ::com::sun::star;
38925 @@ -52,6 +51,24 @@ using namespace ::com::sun::star;
38926 sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescriptor )
38927 throw (uno::RuntimeException)
38929 + if( m_xSrcDoc.is() )
38931 + uno::Reference< lang::XMultiServiceFactory > xMSF(m_xContext->getServiceManager(), uno::UNO_QUERY_THROW);
38932 + uno::Reference< uno::XInterface > xIfc( xMSF->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.DocxExport" ))), uno::UNO_QUERY_THROW);
38934 + return sal_False;
38935 + uno::Reference< document::XExporter > xExprtr(xIfc, uno::UNO_QUERY_THROW);
38936 + uno::Reference< document::XFilter > xFltr(xIfc, uno::UNO_QUERY_THROW);
38937 + if (!xExprtr.is() || !xFltr.is())
38938 + return sal_False;
38939 + xExprtr->setSourceDocument(m_xSrcDoc);
38940 + if (xFltr->filter(aDescriptor))
38942 + return sal_False;
38944 + else if (m_xDstDoc.is())
38947 sal_Int32 nLength = aDescriptor.getLength();
38948 const beans::PropertyValue * pValue = aDescriptor.getConstArray();
38949 uno::Reference < io::XInputStream > xInputStream;
38950 @@ -82,18 +99,18 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
38951 (m_sFilterName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "writer_MS_Word_2007" ) ) ||
38952 m_sFilterName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "writer_MS_Word_2007_Template" ) )) ?
38953 writerfilter::dmapper::DOCUMENT_OOXML : writerfilter::dmapper::DOCUMENT_DOC;
38954 - writerfilter::Stream::Pointer_t pStream(new writerfilter::dmapper::DomainMapper(m_xContext, xInputStream, m_xDoc, eType));
38955 + writerfilter::Stream::Pointer_t pStream(new writerfilter::dmapper::DomainMapper(m_xContext, xInputStream, m_xDstDoc, eType));
38956 //create the tokenizer and domain mapper
38957 if( eType == writerfilter::dmapper::DOCUMENT_OOXML )
38959 writerfilter::ooxml::OOXMLStream::Pointer_t pDocStream = writerfilter::ooxml::OOXMLDocumentFactory::createStream(m_xContext, xInputStream);
38960 writerfilter::ooxml::OOXMLDocument::Pointer_t pDocument(writerfilter::ooxml::OOXMLDocumentFactory::createDocument(pDocStream));
38962 - uno::Reference<frame::XModel> xModel(m_xDoc, uno::UNO_QUERY_THROW);
38963 + uno::Reference<frame::XModel> xModel(m_xDstDoc, uno::UNO_QUERY_THROW);
38964 pDocument->setModel(xModel);
38966 uno::Reference<drawing::XDrawPageSupplier> xDrawings
38967 - (m_xDoc, uno::UNO_QUERY_THROW);
38968 + (m_xDstDoc, uno::UNO_QUERY_THROW);
38969 uno::Reference<drawing::XShapes> xShapes
38970 (xDrawings->getDrawPage(), uno::UNO_QUERY_THROW);
38971 pDocument->setShapes(xShapes);
38972 @@ -116,6 +133,8 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
38977 + return sal_False;
38979 /*-- 09.06.2006 10:15:20---------------------------------------------------
38981 @@ -130,7 +149,13 @@ void WriterFilter::cancel( ) throw (uno::RuntimeException)
38982 void WriterFilter::setTargetDocument( const uno::Reference< lang::XComponent >& xDoc )
38983 throw (lang::IllegalArgumentException, uno::RuntimeException)
38986 + m_xDstDoc = xDoc;
38989 +void WriterFilter::setSourceDocument( const uno::Reference< lang::XComponent >& xDoc )
38990 + throw (lang::IllegalArgumentException, uno::RuntimeException)
38992 + m_xSrcDoc = xDoc;
38995 /*-- 09.06.2006 10:15:20---------------------------------------------------
38996 @@ -163,24 +188,28 @@ OUString WriterFilter_getImplementationName () throw (uno::RuntimeException)
38999 #define SERVICE_NAME1 "com.sun.star.document.ImportFilter"
39000 +#define SERVICE_NAME2 "com.sun.star.document.ExportFilter"
39001 /*-- 09.06.2006 10:15:20---------------------------------------------------
39003 -----------------------------------------------------------------------*/
39004 sal_Bool WriterFilter_supportsService( const OUString& ServiceName ) throw (uno::RuntimeException)
39006 - return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ));
39007 + return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ) ||
39008 + ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ));
39010 /*-- 09.06.2006 10:15:20---------------------------------------------------
39012 -----------------------------------------------------------------------*/
39013 uno::Sequence< OUString > WriterFilter_getSupportedServiceNames( ) throw (uno::RuntimeException)
39015 - uno::Sequence < OUString > aRet(1);
39016 + uno::Sequence < OUString > aRet(2);
39017 OUString* pArray = aRet.getArray();
39018 pArray[0] = OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) );
39019 + pArray[1] = OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME2 ) );
39022 #undef SERVICE_NAME1
39023 +#undef SERVICE_NAME2
39025 /*-- 09.06.2006 10:15:20---------------------------------------------------
39027 diff --git writerfilter/source/filter/WriterFilter.hxx writerfilter/source/filter/WriterFilter.hxx
39028 index 6ad4797..0be0428 100644
39029 --- writerfilter/source/filter/WriterFilter.hxx
39030 +++ writerfilter/source/filter/WriterFilter.hxx
39031 @@ -33,16 +33,18 @@
39033 #include <com/sun/star/document/XFilter.hpp>
39034 #include <com/sun/star/document/XImporter.hpp>
39035 +#include <com/sun/star/document/XExporter.hpp>
39036 #include <com/sun/star/lang/XInitialization.hpp>
39037 #include <com/sun/star/lang/XServiceInfo.hpp>
39038 #include <com/sun/star/xml/sax/XDocumentHandler.hpp>
39039 -#include <cppuhelper/implbase4.hxx>
39040 +#include <cppuhelper/implbase5.hxx>
39041 #include <WriterFilterDllApi.hxx>
39043 -class WRITERFILTER_DLLPUBLIC WriterFilter : public cppu::WeakImplHelper4
39044 +class WRITERFILTER_DLLPUBLIC WriterFilter : public cppu::WeakImplHelper5
39046 com::sun::star::document::XFilter,
39047 com::sun::star::document::XImporter,
39048 + com::sun::star::document::XExporter,
39049 com::sun::star::lang::XInitialization,
39050 com::sun::star::lang::XServiceInfo
39052 @@ -50,7 +52,7 @@ class WRITERFILTER_DLLPUBLIC WriterFilter : public cppu::WeakImplHelper4
39055 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext;
39056 - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > m_xDoc;
39057 + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > m_xSrcDoc, m_xDstDoc;
39058 ::rtl::OUString m_sFilterName;
39059 ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xHandler;
39061 @@ -69,6 +71,10 @@ public:
39062 virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc )
39063 throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
39066 + virtual void SAL_CALL setSourceDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc )
39067 + throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
39070 virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
39071 throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
39072 diff --git xmlsecurity/util/makefile.mk xmlsecurity/util/makefile.mk
39073 index d572e69..64ed60b 100644
39074 --- xmlsecurity/util/makefile.mk
39075 +++ xmlsecurity/util/makefile.mk
39076 @@ -156,7 +156,7 @@ SHL4STDLIBS=\
39083 SHL4VERSIONMAP = xmlsecurity.map