1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_svx.hxx"
30 #include "svx/EnhancedCustomShapeGeometry.hxx"
31 #include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp>
32 /*
33 static const SvxMSDffVertPair Vert[] =
34 {
35 	{ 0, 0, }
36 };
37 static const sal_uInt16 Segm[] =
38 {
39 	0x4000,
40 	0x8000
41 };
42 static const SvxMSDffCalculationData Calc[] =
43 {
44 	{ 0x0000, 0, 0, 0 }
45 };
46 static const sal_Int32 Default[] =
47 {
48 	0
49 };
50 static const SvxMSDffTextRect TextRect[] =
51 {
52 	{ { 0, 0 }, { 0, 0 } }
53 };
54 static const mso_CustomShape mso =
55 {
56 	(SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
57 	(sal_uInt16*)mso_sptSegm, sizeof( mso_sptSegm ) >> 1,
58 	(SvxMSDffCalculationData*)mso_sptCalc, sizeof( mso_sptCalc ) / sizeof( SvxMSDffCalculationData ),
59 	(sal_Int32*)mso_sptDefault,
60 	(SvxMSDffTextRectangles*)mso_sptTextRect, sizeof( mso_sptTextRect ) / sizeof( SvxMSDffTextRectangles ),
61 	21600, 21600,
62 	0x80000000, 0x80000000,
63 	(SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
64 	(SvxMSDffHandles*)mso_sptHandles, sizeof( mso_sptHandles ) / sizeof( SvxMSDffHandles )
65 };
66 */
67 
68 static const sal_Int32 mso_sptDefault0[] =
69 {
70 	1, 0
71 };
72 static const sal_Int32 mso_sptDefault1400[] =
73 {
74 	1, 1400
75 };
76 static const sal_Int32 mso_sptDefault1800[] =
77 {
78 	1, 1800
79 };
80 static const sal_Int32 mso_sptDefault2500[] =
81 {
82 	1, 2500
83 };
84 static const sal_Int32 mso_sptDefault2700[] =
85 {
86 	1, 2700
87 };
88 static const sal_Int32 mso_sptDefault3600[] =
89 {
90 	1, 3600
91 };
92 static const sal_Int32 mso_sptDefault3700[] =
93 {
94 	1, 3700
95 };
96 static const sal_Int32 mso_sptDefault5400[] =
97 {
98 	1, 5400
99 };
100 static const sal_Int32 mso_sptDefault7200[] =
101 {
102 	1, 7200
103 };
104 static const sal_Int32 mso_sptDefault8100[] =
105 {
106 	1, 8100
107 };
108 static const sal_Int32 mso_sptDefault9600[] =
109 {
110 	1, 9600
111 };
112 static const sal_Int32 mso_sptDefault10800[] =
113 {
114 	1, 10800
115 };
116 static const sal_Int32 mso_sptDefault12000[] =
117 {
118 	1, 12000
119 };
120 static const sal_Int32 mso_sptDefault13500[] =
121 {
122 	1, 13500
123 };
124 static const sal_Int32 mso_sptDefault16200[] =
125 {
126 	1, 16200
127 };
128 static const sal_Int32 mso_sptDefault16200and5400[] =
129 {
130 	2, 16200, 5400
131 };
132 
133 static const SvxMSDffVertPair mso_sptArcVert[] =
134 {
135 	{ 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }, { 10800, 10800 },
136 	{ 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }
137 };
138 static const sal_uInt16 mso_sptArcSegm[] =
139 {
140 	0xa504, 0xab00, 0x0001, 0x6001, 0x8000,
141 	0xa504, 0xaa00, 0x8000
142 };
143 static const SvxMSDffCalculationData mso_sptArcCalc[] =
144 {
145 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
146 	{ 0x2000, { 0x400, 10800, 0 } },
147 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
148 	{ 0x2000, { 0x402, 10800, 0 } },
149 	{ 0x4009, { 10800, DFF_Prop_adjust2Value, 0 } },
150 	{ 0x2000, { 0x404, 10800, 0 } },
151 	{ 0x400a, { 10800, DFF_Prop_adjust2Value, 0 } },
152 	{ 0x2000, { 0x406, 10800, 0 } }
153 };
154 static const sal_Int32 mso_sptArcDefault[] =
155 {
156 	2, 270, 0
157 };
158 static const SvxMSDffVertPair mso_sptStandardGluePoints[] =
159 {
160 	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
161 };
162 static const SvxMSDffHandle mso_sptArcHandle[] =
163 {
164 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
165 		10800, 0x100, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff },
166 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
167 		10800, 0x101, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff }
168 };
169 static const mso_CustomShape msoArc =
170 {
171 	(SvxMSDffVertPair*)mso_sptArcVert, sizeof( mso_sptArcVert ) / sizeof( SvxMSDffVertPair ),
172 	(sal_uInt16*)mso_sptArcSegm, sizeof( mso_sptArcSegm ) >> 1,
173 	(SvxMSDffCalculationData*)mso_sptArcCalc, sizeof( mso_sptArcCalc ) / sizeof( SvxMSDffCalculationData ),
174 	(sal_Int32*)mso_sptArcDefault,
175 	NULL, 0,
176 	21600, 21600,
177 	0x80000000, 0x80000000,
178 	NULL, 0,
179 	(SvxMSDffHandle*)mso_sptArcHandle, sizeof( mso_sptArcHandle ) / sizeof( SvxMSDffHandle )		// handles
180 };
181 
182 static const SvxMSDffVertPair mso_sptTextSimpleVert[] =
183 {
184 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
185 };
186 static const mso_CustomShape msoTextSimple =
187 {
188 	(SvxMSDffVertPair*)mso_sptTextSimpleVert, sizeof( mso_sptTextSimpleVert ) / sizeof( SvxMSDffVertPair ),
189 	NULL, 0,
190 	NULL, 0,
191 	NULL,
192 	NULL, 0,
193 	21600, 21600,
194 	0x80000000, 0x80000000,
195 	NULL, 0,
196 	NULL, 0		// handles
197 };
198 
199 static const SvxMSDffVertPair mso_sptRectangleVert[] =
200 {
201 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
202 };
203 static const mso_CustomShape msoRectangle =
204 {
205 	(SvxMSDffVertPair*)mso_sptRectangleVert, sizeof( mso_sptRectangleVert ) / sizeof( SvxMSDffVertPair ),
206 	NULL, 0,
207 	NULL, 0,
208 	NULL,
209 	NULL, 0,
210 	21600, 21600,
211 	0x80000000, 0x80000000,
212 	NULL, 0,
213 	NULL, 0		// handles
214 };
215 
216 static const SvxMSDffVertPair mso_sptRoundRectangleVert[] =	// adj value 0 -> 10800
217 {
218 	{ 7 MSO_I, 0 }, { 0, 8 MSO_I },	{ 0, 9 MSO_I }, { 7 MSO_I, 21600 },
219 	{ 10 MSO_I, 21600 }, { 21600, 9 MSO_I }, { 21600, 8 MSO_I }, { 10 MSO_I, 0 }
220 };
221 static const sal_uInt16 mso_sptRoundRectangleSegm[] =
222 {
223 	0x4000, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x6000, 0x8000
224 };
225 static const SvxMSDffCalculationData mso_sptRoundRectangleCalc[] =
226 {
227 	{ 0x000e, { 0, 45, 0 } },
228 	{ 0x6009, { DFF_Prop_adjustValue, 0x400, 0 } },
229 	{ 0x2001, { 0x401, 3163, 7636 } },
230 	{ 0x6000, { DFF_Prop_geoLeft, 0x402, 0 } },
231 	{ 0x6000, { DFF_Prop_geoTop, 0x402, 0 } },
232 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },
233 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x402 } },
234 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
235 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
236 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
237 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } }
238 };
239 static const SvxMSDffTextRectangles mso_sptRoundRectangleTextRect[] =
240 {
241 	{ { 3 MSO_I, 4 MSO_I }, { 5 MSO_I, 6 MSO_I } }
242 };
243 static const SvxMSDffHandle mso_sptRoundRectangleHandle[] =
244 {
245 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
246 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
247 };
248 static const mso_CustomShape msoRoundRectangle =
249 {
250 	(SvxMSDffVertPair*)mso_sptRoundRectangleVert, sizeof( mso_sptRoundRectangleVert ) / sizeof( SvxMSDffVertPair ),
251 	(sal_uInt16*)mso_sptRoundRectangleSegm, sizeof( mso_sptRoundRectangleSegm ) >> 1,
252 	(SvxMSDffCalculationData*)mso_sptRoundRectangleCalc, sizeof( mso_sptRoundRectangleCalc ) / sizeof( SvxMSDffCalculationData ),
253 	(sal_Int32*)mso_sptDefault3600,
254 	(SvxMSDffTextRectangles*)mso_sptRoundRectangleTextRect, sizeof( mso_sptRoundRectangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
255 	21600, 21600,
256 	10800, 10800,
257 	NULL, 0,
258 	(SvxMSDffHandle*)mso_sptRoundRectangleHandle, sizeof( mso_sptRoundRectangleHandle ) / sizeof( SvxMSDffHandle )		// handles
259 };
260 
261 static const SvxMSDffVertPair mso_sptRightTriangleVert[] =
262 {
263 	{ 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
264 };
265 static const SvxMSDffTextRectangles mso_sptRightTriangleTextRect[] =
266 {
267 	{ { 1900, 12700 }, { 12700, 19700 } }
268 };
269 static const SvxMSDffVertPair mso_sptRightTriangleGluePoints[] =
270 {
271 	{ 10800, 0 }, { 5400, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 16200, 10800 }
272 };
273 static const mso_CustomShape msoRightTriangle =
274 {
275 	(SvxMSDffVertPair*)mso_sptRightTriangleVert, sizeof( mso_sptRightTriangleVert ) / sizeof( SvxMSDffVertPair ),
276 	NULL, 0,
277 	NULL, 0,
278 	NULL,
279 	(SvxMSDffTextRectangles*)mso_sptRightTriangleTextRect, sizeof( mso_sptRightTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
280 	21600, 21600,
281 	0x80000000, 0x80000000,
282 	(SvxMSDffVertPair*)mso_sptRightTriangleGluePoints, sizeof( mso_sptRightTriangleGluePoints ) / sizeof( SvxMSDffVertPair ),
283 	NULL, 0		// handles
284 };
285 
286 static const SvxMSDffVertPair mso_sptEllipseVert[] =
287 {
288 	{ 10800, 10800 }, { 10800, 10800 },  { 0, 360 }
289 };
290 static const sal_uInt16 mso_sptEllipseSegm[] =
291 {
292 	0xa203, 0x6000, 0x8000
293 };
294 static const SvxMSDffTextRectangles mso_sptEllipseTextRect[] =
295 {
296 	{ { 3163, 3163 }, { 18437, 18437 } }
297 };
298 static const SvxMSDffVertPair mso_sptEllipseGluePoints[] =
299 {
300 	{ 10800, 0 }, { 3163, 3163 }, { 0, 10800 }, { 3163, 18437 }, { 10800, 21600 }, { 18437, 18437 }, { 21600, 10800 }, { 18437, 3163 }
301 };
302 static const mso_CustomShape msoEllipse =
303 {
304 	(SvxMSDffVertPair*)mso_sptEllipseVert, sizeof( mso_sptEllipseVert ) / sizeof( SvxMSDffVertPair ),
305 	(sal_uInt16*)mso_sptEllipseSegm, sizeof( mso_sptEllipseSegm ) >> 1,
306 	NULL, 0,
307 	NULL,
308 	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
309 	21600, 21600,
310 	0x80000000, 0x80000000,
311 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
312 	NULL, 0		// handles
313 };
314 
315 static const SvxMSDffVertPair mso_sptParallelogramVert[] =	// adjustment1 : 0 - 21600
316 {
317 	{ 0 MSO_I, 0 },	{ 21600, 0 }, { 1 MSO_I, 21600 }, { 0, 21600 }
318 };
319 static const sal_uInt16 mso_sptParallelogramSegm[] =
320 {
321 	0x4000,	0x0003,	0x6001,	0x8000
322 };
323 static const SvxMSDffCalculationData mso_sptParallelogramCalc[] =
324 {
325 	{ 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
326 	{ 0x8000, { 0, 21600, DFF_Prop_adjustValue } },
327 	{ 0x2001, { DFF_Prop_adjustValue, 10, 24 } },
328 	{ 0x2000, { 0x0402, 1750, 0 } },
329 	{ 0x8000, { 21600, 0, 0x0403 } },
330 	{ 0x2001, { 0x400, 1, 2 } },
331 	{ 0x4000, { 10800, 0x405, 0 } },
332 	{ 0x2000, { 0x400, 0, 10800 } },
333 	{ 0x6006, { 0x407, 0x40d, 0 } },
334 	{ 0x8000, { 10800, 0, 0x405 } },
335 	{ 0x6006, { 0x407, 0x40c, 21600 } },
336 	{ 0x8000, { 21600, 0, 0x405 } },
337 	{ 0x8001, { 21600, 10800, 0x400 } },
338 	{ 0x8000, { 21600, 0, 0x40c } }
339 };
340 static const SvxMSDffTextRectangles mso_sptParallelogramTextRect[] =
341 {
342 	{ { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
343 };
344 static const SvxMSDffVertPair mso_sptParallelogramGluePoints[] =
345 {
346 	{ 6 MSO_I, 0 }, { 10800, 8 MSO_I }, { 11 MSO_I, 10800 }, { 9 MSO_I, 21600 }, { 10800, 10 MSO_I }, { 5 MSO_I, 10800 }
347 };
348 static const SvxMSDffHandle mso_sptParallelogramHandle[] =
349 {
350 	{	MSDFF_HANDLE_FLAGS_RANGE,
351 		0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
352 };
353 static const mso_CustomShape msoParallelogram =
354 {
355 	(SvxMSDffVertPair*)mso_sptParallelogramVert, sizeof( mso_sptParallelogramVert ) / sizeof( SvxMSDffVertPair ),
356 	(sal_uInt16*)mso_sptParallelogramSegm, sizeof( mso_sptParallelogramSegm ) >> 1,
357 	(SvxMSDffCalculationData*)mso_sptParallelogramCalc, sizeof( mso_sptParallelogramCalc ) / sizeof( SvxMSDffCalculationData ),
358 	(sal_Int32*)mso_sptDefault5400,
359 	(SvxMSDffTextRectangles*)mso_sptParallelogramTextRect, sizeof( mso_sptParallelogramTextRect ) / sizeof( SvxMSDffTextRectangles ),
360 	21600, 21600,
361 	0x80000000, 0x80000000,
362 	(SvxMSDffVertPair*)mso_sptParallelogramGluePoints, sizeof( mso_sptParallelogramGluePoints ) / sizeof( SvxMSDffVertPair ),
363 	(SvxMSDffHandle*)mso_sptParallelogramHandle, sizeof( mso_sptParallelogramHandle ) / sizeof( SvxMSDffHandle )		// handles
364 };
365 
366 static const SvxMSDffVertPair mso_sptDiamondVert[] =
367 {
368 	{ 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, {	0, 10800 }, { 10800, 0 }
369 };
370 static const SvxMSDffTextRectangles mso_sptDiamondTextRect[] =
371 {
372 	{ { 5400, 5400 }, { 16200, 16200 } }
373 };
374 static const mso_CustomShape msoDiamond =
375 {
376 	(SvxMSDffVertPair*)mso_sptDiamondVert, sizeof( mso_sptDiamondVert ) / sizeof( SvxMSDffVertPair ),
377 	NULL, 0,
378 	NULL, 0,
379 	NULL,
380 	(SvxMSDffTextRectangles*)mso_sptDiamondTextRect, sizeof( mso_sptDiamondTextRect ) / sizeof( SvxMSDffTextRectangles ),
381 	21600, 21600,
382 	0x80000000, 0x80000000,
383 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
384 	NULL, 0		// handles
385 };
386 
387 static const SvxMSDffVertPair mso_sptTrapezoidVert[] =		// adjustment1 : 0 - 10800
388 {
389 	{ 0, 0 }, { 21600, 0 }, {0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
390 };
391 static const sal_uInt16 mso_sptTrapezoidSegm[] =
392 {
393 	0x4000, 0x0003,	0x6001,	0x8000
394 };
395 static const SvxMSDffCalculationData mso_sptTrapezoidCalc[] =
396 {
397 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
398 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
399 	{ 0x2001, { DFF_Prop_adjustValue, 10, 18 } },
400 	{ 0x2000, { 0x0402, 1750, 0 } },
401 	{ 0x8000, { 21600, 0, 0x403 } },
402 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
403 	{ 0x8000, { 21600, 0, 0x405 } }
404 };
405 static const SvxMSDffTextRectangles mso_sptTrapezoidTextRect[] =
406 {
407 	{ { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
408 };
409 static const SvxMSDffVertPair mso_sptTrapezoidGluePoints[] =
410 {
411 	{ 6 MSO_I, 10800 }, { 10800, 21600 }, { 5 MSO_I, 10800 }, { 10800, 0 }
412 };
413 static const SvxMSDffHandle mso_sptTrapezoidHandle[] =
414 {
415 	{	MSDFF_HANDLE_FLAGS_RANGE,
416 		0x100, 1, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
417 };
418 static const mso_CustomShape msoTrapezoid =
419 {
420 	(SvxMSDffVertPair*)mso_sptTrapezoidVert, sizeof( mso_sptTrapezoidVert ) / sizeof( SvxMSDffVertPair ),
421 	(sal_uInt16*)mso_sptTrapezoidSegm, sizeof( mso_sptTrapezoidSegm ) >> 1,
422 	(SvxMSDffCalculationData*)mso_sptTrapezoidCalc, sizeof( mso_sptTrapezoidCalc ) / sizeof( SvxMSDffCalculationData ),
423 	(sal_Int32*)mso_sptDefault5400,
424 	(SvxMSDffTextRectangles*)mso_sptTrapezoidTextRect, sizeof( mso_sptTrapezoidTextRect ) / sizeof( SvxMSDffTextRectangles ),
425 	21600, 21600,
426 	0x80000000, 0x80000000,
427 	(SvxMSDffVertPair*)mso_sptTrapezoidGluePoints, sizeof( mso_sptTrapezoidGluePoints ) / sizeof( SvxMSDffVertPair ),
428 	(SvxMSDffHandle*)mso_sptTrapezoidHandle, sizeof( mso_sptTrapezoidHandle ) / sizeof( SvxMSDffHandle )		// handles
429 };
430 
431 static const SvxMSDffVertPair mso_sptOctagonVert[] =		// adjustment1 : 0 - 10800
432 {
433 	{ 0 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 3 MSO_I },
434 	{ 2 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }, { 0, 1 MSO_I }
435 };
436 static const sal_uInt16 mso_sptOctagonSegm[] =
437 {
438 	0x4000, 0x0007, 0x6001, 0x8000
439 };
440 static const SvxMSDffCalculationData mso_sptOctagonCalc[] =
441 {
442 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
443 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
444 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
445 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
446 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
447 	{ 0x6000, { DFF_Prop_geoLeft, 0x404, 0 } },
448 	{ 0x6000, { DFF_Prop_geoTop, 0x404, 0 } },
449 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
450 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
451 };
452 static const sal_Int32 mso_sptOctagonDefault[] =
453 {
454 	1, 5000
455 };
456 static const SvxMSDffTextRectangles mso_sptOctagonTextRect[] =
457 {
458 	{ { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 8 MSO_I } }
459 };
460 static const SvxMSDffHandle mso_sptOctagonHandle[] =
461 {
462 	{	MSDFF_HANDLE_FLAGS_RANGE,
463 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
464 };
465 static const mso_CustomShape msoOctagon =
466 {
467 	(SvxMSDffVertPair*)mso_sptOctagonVert, sizeof( mso_sptOctagonVert ) / sizeof( SvxMSDffVertPair ),
468 	(sal_uInt16*)mso_sptOctagonSegm, sizeof( mso_sptOctagonSegm ) >> 1,
469 	(SvxMSDffCalculationData*)mso_sptOctagonCalc, sizeof( mso_sptOctagonCalc ) / sizeof( SvxMSDffCalculationData ),
470 	(sal_Int32*)mso_sptOctagonDefault,
471 	(SvxMSDffTextRectangles*)mso_sptOctagonTextRect, sizeof( mso_sptOctagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
472 	21600, 21600,
473 	10800, 10800,
474 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
475 	(SvxMSDffHandle*)mso_sptOctagonHandle, sizeof( mso_sptOctagonHandle ) / sizeof( SvxMSDffHandle )		// handles
476 };
477 
478 static const SvxMSDffVertPair mso_sptIsocelesTriangleVert[] =	// adjustment1 : 0 - 21600
479 {
480 	{ 0 MSO_I, 0 }, { 21600, 21600 }, { 0, 21600 }
481 };
482 static const sal_uInt16 mso_sptIsocelesTriangleSegm[] =
483 {
484 	0x4000, 0x0002, 0x6001, 0x8000
485 };
486 static const SvxMSDffCalculationData mso_sptIsocelesTriangleCalc[] =
487 {
488 	{ 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
489 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
490 	{ 0x2000, { 0x401, 10800, 0 } },
491 	{ 0x2001, { DFF_Prop_adjustValue, 2, 3 } },
492 	{ 0x2000, { 0x403, 7200, 0 } },
493 	{ 0x8000, { 21600, 0, 0x400 } },
494 	{ 0x2001, { 0x405, 1, 2 } },
495 	{ 0x8000, { 21600, 0, 0x406 } }
496 };
497 static const SvxMSDffTextRectangles mso_sptIsocelesTriangleTextRect[] =
498 {
499 	{ { 1 MSO_I, 10800 }, { 2 MSO_I, 18000 } },
500 	{ { 3 MSO_I, 7200 }, { 4 MSO_I, 21600	} }
501 };
502 static const SvxMSDffVertPair mso_sptIsocelesTriangleGluePoints[] =
503 {
504 	{ 10800, 0 }, { 1 MSO_I, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 7 MSO_I, 10800 }
505 };
506 static const SvxMSDffHandle mso_sptIsocelesTriangleHandle[] =
507 {
508 	{	MSDFF_HANDLE_FLAGS_RANGE,
509 		0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
510 };
511 static const mso_CustomShape msoIsocelesTriangle =
512 {
513 	(SvxMSDffVertPair*)mso_sptIsocelesTriangleVert, sizeof( mso_sptIsocelesTriangleVert ) / sizeof( SvxMSDffVertPair ),
514 	(sal_uInt16*)mso_sptIsocelesTriangleSegm, sizeof( mso_sptIsocelesTriangleSegm ) >> 1,
515 	(SvxMSDffCalculationData*)mso_sptIsocelesTriangleCalc, sizeof( mso_sptIsocelesTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
516 	(sal_Int32*)mso_sptDefault10800,
517 	(SvxMSDffTextRectangles*)mso_sptIsocelesTriangleTextRect, sizeof( mso_sptIsocelesTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
518 	21600, 21600,
519 	0x80000000, 0x80000000,
520 	(SvxMSDffVertPair*)mso_sptIsocelesTriangleGluePoints, sizeof( mso_sptIsocelesTriangleGluePoints ) / sizeof( SvxMSDffVertPair ),
521 	(SvxMSDffHandle*)mso_sptIsocelesTriangleHandle, sizeof( mso_sptIsocelesTriangleHandle ) / sizeof( SvxMSDffHandle )		// handles
522 };
523 
524 static const SvxMSDffVertPair mso_sptHexagonVert[] =				// adjustment1 : 0 - 10800
525 {
526 	{ 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 10800 }, { 1 MSO_I, 21600 },
527 	{ 0 MSO_I, 21600 }, { 0, 10800 }
528 };
529 static const sal_uInt16 mso_sptHexagonSegm[] =
530 {
531 	0x4000, 0x0005, 0x6001, 0x8000
532 };
533 static const SvxMSDffCalculationData mso_sptHexagonCalc[] =
534 {
535 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
536 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
537 	{ 0x2001, { DFF_Prop_adjustValue, 100, 234 } },
538 	{ 0x2000, { 0x402, 1700, 0 } },
539 	{ 0x8000, { 21600, 0, 0x403 } }
540 };
541 static const SvxMSDffTextRectangles mso_sptHexagonTextRect[] =
542 {
543 	{ { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
544 };
545 static const SvxMSDffHandle mso_sptHexagonHandle[] =
546 {
547 	{	MSDFF_HANDLE_FLAGS_RANGE,
548 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
549 };
550 static const mso_CustomShape msoHexagon =
551 {
552 	(SvxMSDffVertPair*)mso_sptHexagonVert, sizeof( mso_sptHexagonVert ) / sizeof( SvxMSDffVertPair ),
553 	(sal_uInt16*)mso_sptHexagonSegm, sizeof( mso_sptHexagonSegm ) >> 1,
554 	(SvxMSDffCalculationData*)mso_sptHexagonCalc, sizeof( mso_sptHexagonCalc ) / sizeof( SvxMSDffCalculationData ),
555 	(sal_Int32*)mso_sptDefault5400,
556 	(SvxMSDffTextRectangles*)mso_sptHexagonTextRect, sizeof( mso_sptHexagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
557 	21600, 21600,
558 	0x80000000, 0x80000000,
559 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
560 	(SvxMSDffHandle*)mso_sptHexagonHandle, sizeof( mso_sptHexagonHandle ) / sizeof( SvxMSDffHandle )		// handles
561 };
562 
563 static const SvxMSDffVertPair mso_sptPentagonVert[] =
564 {
565 	{ 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 17370, 21600 },
566 	{ 21600, 8260 }, { 10800, 0 }
567 };
568 static const SvxMSDffTextRectangles mso_sptPentagonTextRect[] =
569 {
570 	{ { 4230, 5080 }, { 17370, 21600 } }
571 };
572 static const SvxMSDffVertPair mso_sptPentagonGluePoints[] =
573 {
574 	{ 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 10800, 21600 },
575 	{ 17370, 21600 }, { 21600, 8260 }
576 };
577 static const mso_CustomShape msoPentagon =
578 {
579 	(SvxMSDffVertPair*)mso_sptPentagonVert, sizeof( mso_sptPentagonVert ) / sizeof( SvxMSDffVertPair ),
580 	NULL, 0,
581 	NULL, 0,
582 	NULL,
583 	(SvxMSDffTextRectangles*)mso_sptPentagonTextRect, sizeof( mso_sptPentagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
584 	21600, 21600,
585 	0x80000000, 0x80000000,
586 	(SvxMSDffVertPair*)mso_sptPentagonGluePoints, sizeof( mso_sptPentagonGluePoints ) / sizeof( SvxMSDffVertPair ),
587 	NULL, 0		// handles
588 };
589 
590 static const SvxMSDffVertPair mso_sptPlusVert[] =				// adjustment1 : 0 - 10800
591 {
592 	{ 1 MSO_I, 0 }, { 2 MSO_I, 0 }, { 2 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I },
593 	{ 21600, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 21600 }, { 1 MSO_I, 21600 },
594 	{ 1 MSO_I, 3 MSO_I }, { 0, 3 MSO_I }, { 0, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 0 }
595 };
596 static const SvxMSDffCalculationData mso_sptPlusCalc[] =
597 {
598 	{ 0x2001, { DFF_Prop_adjustValue, 10799, 10800 } },
599     { 0x2000, { 0x400, 0, 0 } },
600     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
601     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
602 };
603 static const SvxMSDffTextRectangles mso_sptPlusTextRect[] =
604 {
605 	{ { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I } }
606 };
607 static const SvxMSDffHandle mso_sptPlusHandle[] =
608 {
609 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
610 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
611 };
612 static const mso_CustomShape msoPlus =
613 {
614 	(SvxMSDffVertPair*)mso_sptPlusVert, sizeof( mso_sptPlusVert ) / sizeof( SvxMSDffVertPair ),
615 	NULL, 0,
616 	(SvxMSDffCalculationData*)mso_sptPlusCalc, sizeof( mso_sptPlusCalc ) / sizeof( SvxMSDffCalculationData ),
617 	(sal_Int32*)mso_sptDefault5400,
618 	(SvxMSDffTextRectangles*)mso_sptPlusTextRect, sizeof( mso_sptPlusTextRect ) / sizeof( SvxMSDffTextRectangles ),
619 	21600, 21600,
620 	10800, 10800,
621 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
622 	(SvxMSDffHandle*)mso_sptPlusHandle, sizeof( mso_sptPlusHandle ) / sizeof( SvxMSDffHandle )		// handles
623 };
624 
625 static const SvxMSDffVertPair mso_sptCanVert[] =		// adjustment1 : 0 - 10800
626 {
627 	{ 44, 0 },
628 	{ 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },			// ccp
629 	{ 0, 3 MSO_I },										// p
630 	{ 0, 4 MSO_I }, { 20, 21600 }, { 44, 21600 },		// ccp
631 	{ 68, 21600 }, { 88, 4 MSO_I }, { 88, 3 MSO_I },	// ccp
632 	{ 88, 0 MSO_I },									// p
633 	{ 88, 2 MSO_I }, { 68, 0 }, { 44, 0 },				// ccp
634 	{ 44, 0 },											// p
635 	{ 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },			// ccp
636 	{ 0, 5 MSO_I }, { 20, 6 MSO_I }, { 44, 6 MSO_I },	// ccp
637 	{ 68, 6 MSO_I },{ 88, 5 MSO_I }, { 88, 0 MSO_I },	// ccp
638 	{ 88, 2 MSO_I },{ 68, 0 }, { 44, 0 }				// ccp
639 };
640 static const sal_uInt16 mso_sptCanSegm[] =
641 {
642 	0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x6001, 0x8000,
643 	0x4000, 0x2004, 0x6001, 0x8000
644 };
645 static const SvxMSDffCalculationData mso_sptCanCalc[] =
646 {
647 	{ 0x2001, { DFF_Prop_adjustValue, 2, 4 } },		// 1/4
648 	{ 0x2001, { 0x0400, 6, 11 } },
649 	{ 0xa000, { 0x0400, 0, 0x0401 } },
650 	{ 0x8000, { 21600, 0, 0x0400 } },
651 	{ 0x6000, { 0x0403, 0x0401, 0 } },
652 	{ 0x6000, { 0x0400, 0x0401, 0 } },
653 	{ 0x2001, { DFF_Prop_adjustValue, 2, 2 } },
654 	{ 0x0000, { 44, 0, 0 } }
655 };
656 static const SvxMSDffTextRectangles mso_sptCanTextRect[] =
657 {
658 	{ { 0, 6 MSO_I }, { 88, 3 MSO_I } }
659 };
660 static const SvxMSDffVertPair mso_sptCanGluePoints[] =
661 {
662 	{ 44, 6 MSO_I }, { 44, 0 }, { 0, 10800 }, { 44, 21600 }, { 88, 10800 }
663 };
664 static const SvxMSDffHandle mso_sptCanHandle[] =
665 {
666 	{	MSDFF_HANDLE_FLAGS_RANGE,
667 		7 + 3, 0x100, 44, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
668 };
669 static const mso_CustomShape msoCan =
670 {
671 	(SvxMSDffVertPair*)mso_sptCanVert, sizeof( mso_sptCanVert ) / sizeof( SvxMSDffVertPair ),
672 	(sal_uInt16*)mso_sptCanSegm, sizeof( mso_sptCanSegm ) >> 1,
673 	(SvxMSDffCalculationData*)mso_sptCanCalc, sizeof( mso_sptCanCalc ) / sizeof( SvxMSDffCalculationData ),
674 	(sal_Int32*)mso_sptDefault5400,
675 	(SvxMSDffTextRectangles*)mso_sptCanTextRect, sizeof( mso_sptCanTextRect ) / sizeof( SvxMSDffTextRectangles ),
676 	88, 21600,
677 	0x80000000, 0x80000000,
678 	(SvxMSDffVertPair*)mso_sptCanGluePoints, sizeof( mso_sptCanGluePoints ) / sizeof( SvxMSDffVertPair ),
679 	(SvxMSDffHandle*)mso_sptCanHandle, sizeof( mso_sptCanHandle ) / sizeof( SvxMSDffHandle )		// handles
680 };
681 
682 static const SvxMSDffVertPair mso_sptArrowVert[] =	// adjustment1: x 0 - 21600
683 {													// adjustment2: y 0 - 10800
684 	{ 0, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
685 	{ 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }
686 };
687 static const sal_uInt16 mso_sptArrowSegm[] =
688 {
689 	0x4000, 0x0006, 0x6001,	0x8000
690 };
691 static const SvxMSDffCalculationData mso_sptArrowCalc[] =
692 {
693 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
694 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
695 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
696 	{ 0x8000, { 21600, 0, 0x401 } },
697 	{ 0x6001, { 0x403, 0x400, 10800 } },
698 	{ 0x6000, { 0x401, 0x404, 0 } },
699 	{ 0x6001, { 0x401, 0x400, 10800 } },
700 	{ 0xa000, { 0x401, 0, 0x406 } }
701 };
702 static const SvxMSDffTextRectangles mso_sptArrowTextRect[] =
703 {
704 	{ { 0, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
705 };
706 static const SvxMSDffHandle mso_sptArrowHandle[] =
707 {
708 	{	MSDFF_HANDLE_FLAGS_RANGE,
709 		0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
710 };
711 static const mso_CustomShape msoArrow =
712 {
713 	(SvxMSDffVertPair*)mso_sptArrowVert, sizeof( mso_sptArrowVert ) / sizeof( SvxMSDffVertPair ),
714 	(sal_uInt16*)mso_sptArrowSegm, sizeof( mso_sptArrowSegm ) >> 1,
715 	(SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
716 	(sal_Int32*)mso_sptDefault16200and5400,
717 	(SvxMSDffTextRectangles*)mso_sptArrowTextRect, sizeof( mso_sptArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
718 	21600, 21600,
719 	0x80000000, 0x80000000,
720 	NULL, 0,
721 	(SvxMSDffHandle*)mso_sptArrowHandle, sizeof( mso_sptArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
722 };
723 
724 static const SvxMSDffVertPair mso_sptLeftArrowVert[] =	// adjustment1: x 0 - 21600
725 {														// adjustment2: y 0 - 10800
726 	{ 21600, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 0, 10800 },
727 	{ 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }
728 };
729 static const sal_uInt16 mso_sptLeftArrowSegm[] =
730 {
731 	0x4000, 0x0006, 0x6001,	0x8000
732 };
733 static const sal_Int32 mso_sptLeftArrowDefault[] =
734 {
735 	2, 5400, 5400
736 };
737 static const SvxMSDffTextRectangles mso_sptLeftArrowTextRect[] =
738 {
739 	{ { 7 MSO_I, 0 MSO_I }, { 21600, 2 MSO_I } }
740 };
741 static const SvxMSDffHandle mso_sptLeftArrowHandle[] =
742 {
743 	{	MSDFF_HANDLE_FLAGS_RANGE,
744 		0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
745 };
746 static const mso_CustomShape msoLeftArrow =
747 {
748 	(SvxMSDffVertPair*)mso_sptLeftArrowVert, sizeof( mso_sptLeftArrowVert ) / sizeof( SvxMSDffVertPair ),
749 	(sal_uInt16*)mso_sptLeftArrowSegm, sizeof( mso_sptLeftArrowSegm ) >> 1,
750 	(SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
751 	(sal_Int32*)mso_sptLeftArrowDefault,
752 	(SvxMSDffTextRectangles*)mso_sptLeftArrowTextRect, sizeof( mso_sptLeftArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
753 	21600, 21600,
754 	0x80000000, 0x80000000,
755 	NULL, 0,
756 	(SvxMSDffHandle*)mso_sptLeftArrowHandle, sizeof( mso_sptLeftArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
757 };
758 
759 static const SvxMSDffVertPair mso_sptDownArrowVert[] =	// adjustment1: x 0 - 21600
760 {														// adjustment2: y 0 - 10800
761 	{ 0 MSO_I, 0 },	{ 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 21600 },
762 	{ 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 }
763 };
764 static const sal_uInt16 mso_sptDownArrowSegm[] =
765 {
766 	0x4000, 0x0006, 0x6001,	0x8000
767 };
768 static const SvxMSDffTextRectangles mso_sptDownArrowTextRect[] =
769 {
770 	{ { 0 MSO_I, 0 }, { 2 MSO_I, 5 MSO_I } }
771 };
772 static const SvxMSDffHandle mso_sptDownArrowHandle[] =
773 {
774 	{	MSDFF_HANDLE_FLAGS_RANGE,
775 		0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
776 };
777 static const mso_CustomShape msoDownArrow =
778 {
779 	(SvxMSDffVertPair*)mso_sptDownArrowVert, sizeof( mso_sptDownArrowVert ) / sizeof( SvxMSDffVertPair ),
780 	(sal_uInt16*)mso_sptDownArrowSegm, sizeof( mso_sptDownArrowSegm ) >> 1,
781 	(SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
782 	(sal_Int32*)mso_sptDefault16200and5400,
783 	(SvxMSDffTextRectangles*)mso_sptDownArrowTextRect, sizeof( mso_sptDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
784 	21600, 21600,
785 	0x80000000, 0x80000000,
786 	NULL, 0,
787 	(SvxMSDffHandle*)mso_sptDownArrowHandle, sizeof( mso_sptDownArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
788 };
789 
790 static const SvxMSDffVertPair mso_sptUpArrowVert[] =	// adjustment1: x 0 - 21600
791 {														// adjustment2: y 0 - 10800
792 	{ 0 MSO_I, 21600 },	{ 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 0 },
793 	{ 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
794 };
795 static const sal_uInt16 mso_sptUpArrowSegm[] =
796 {
797 	0x4000, 0x0006, 0x6001,	0x8000
798 };
799 static const sal_Int32 mso_sptUpArrowDefault[] =
800 {
801 	2, 5400, 5400
802 };
803 static const SvxMSDffTextRectangles mso_sptUpArrowTextRect[] =
804 {
805 	{ { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 21600 } }
806 };
807 static const SvxMSDffHandle mso_sptUpArrowHandle[] =
808 {
809 	{	MSDFF_HANDLE_FLAGS_RANGE,
810 		0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
811 };
812 static const mso_CustomShape msoUpArrow =
813 {
814 	(SvxMSDffVertPair*)mso_sptUpArrowVert, sizeof( mso_sptUpArrowVert ) / sizeof( SvxMSDffVertPair ),
815 	(sal_uInt16*)mso_sptUpArrowSegm, sizeof( mso_sptUpArrowSegm ) >> 1,
816 	(SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
817 	(sal_Int32*)mso_sptUpArrowDefault,
818 	(SvxMSDffTextRectangles*)mso_sptUpArrowTextRect, sizeof( mso_sptUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
819 	21600, 21600,
820 	0x80000000, 0x80000000,
821 	NULL, 0,
822 	(SvxMSDffHandle*)mso_sptUpArrowHandle, sizeof( mso_sptUpArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
823 };
824 
825 static const SvxMSDffVertPair mso_sptLeftRightArrowVert[] =	// adjustment1: x 0 - 10800
826 {															// adjustment2: y 0 - 10800
827 	{ 0, 10800 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I },	{ 2 MSO_I, 1 MSO_I },
828 	{ 2 MSO_I, 0 }, { 21600, 10800 }, { 2 MSO_I, 21600 }, { 2 MSO_I, 3 MSO_I },
829 	{ 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 21600 }
830 };
831 static const sal_uInt16 mso_sptLeftRightArrowSegm[] =
832 {
833 	0x4000, 0x0009, 0x6001, 0x8000
834 };
835 static const SvxMSDffCalculationData mso_sptDoubleArrowCalc[] =
836 {
837 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
838 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
839 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
840 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
841 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
842 	{ 0x6001, { DFF_Prop_adjustValue, 0x404, 10800 } },
843 	{ 0x8000, { 21600, 0, 0x405 } },
844 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
845 	{ 0x6001, { DFF_Prop_adjust2Value, 0x407, 10800 } },
846 	{ 0x8000, { 21600, 0, 0x408 } }
847 };
848 static const sal_Int32 mso_sptLeftRightArrowDefault[] =
849 {
850 	2, 4300, 5400
851 };
852 static const SvxMSDffTextRectangles mso_sptLeftRightArrowTextRect[] =
853 {
854 	{ { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 3 MSO_I } }
855 };
856 static const SvxMSDffHandle mso_sptLeftRightArrowHandle[] =
857 {
858 	{	MSDFF_HANDLE_FLAGS_RANGE,
859 		0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
860 };
861 static const mso_CustomShape msoLeftRightArrow =
862 {
863 	(SvxMSDffVertPair*)mso_sptLeftRightArrowVert, sizeof( mso_sptLeftRightArrowVert ) / sizeof( SvxMSDffVertPair ),
864 	(sal_uInt16*)mso_sptLeftRightArrowSegm, sizeof( mso_sptLeftRightArrowSegm ) >> 1,
865 	(SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ),
866 	(sal_Int32*)mso_sptLeftRightArrowDefault,
867 	(SvxMSDffTextRectangles*)mso_sptLeftRightArrowTextRect, sizeof( mso_sptLeftRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
868 	21600, 21600,
869 	0x80000000, 0x80000000,
870 	NULL, 0,
871 	(SvxMSDffHandle*)mso_sptLeftRightArrowHandle, sizeof( mso_sptLeftRightArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
872 };
873 
874 static const SvxMSDffVertPair mso_sptUpDownArrowVert[] =	// adjustment1: x 0 - 10800
875 {															// adjustment2: y 0 - 10800
876 	{ 0, 1 MSO_I },	{ 10800, 0 }, { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
877 	{ 2 MSO_I, 3 MSO_I }, { 21600, 3 MSO_I }, { 10800, 21600 }, { 0, 3 MSO_I },
878 	{ 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
879 };
880 static const sal_uInt16 mso_sptUpDownArrowSegm[] =
881 {
882 	0x4000, 0x0009, 0x6001, 0x8000
883 };
884 static const sal_Int32 mso_sptUpDownArrowDefault[] =
885 {
886 	2, 5400, 4300
887 };
888 static const SvxMSDffTextRectangles mso_sptUpDownArrowTextRect[] =
889 {
890 	{ { 0 MSO_I, 8 MSO_I }, { 2 MSO_I, 9 MSO_I } }
891 };
892 static const SvxMSDffHandle mso_sptUpDownArrowHandle[] =
893 {
894 	{	MSDFF_HANDLE_FLAGS_RANGE,
895 		0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
896 };
897 static const mso_CustomShape msoUpDownArrow =
898 {
899 	(SvxMSDffVertPair*)mso_sptUpDownArrowVert, sizeof( mso_sptUpDownArrowVert ) / sizeof( SvxMSDffVertPair ),
900 	(sal_uInt16*)mso_sptUpDownArrowSegm, sizeof( mso_sptUpDownArrowSegm ) >> 1,
901 	(SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ),
902 	(sal_Int32*)mso_sptUpDownArrowDefault,
903 	(SvxMSDffTextRectangles*)mso_sptUpDownArrowTextRect, sizeof( mso_sptUpDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
904 	21600, 21600,
905 	0x80000000, 0x80000000,
906 	NULL, 0,
907 	(SvxMSDffHandle*)mso_sptUpDownArrowHandle, sizeof( mso_sptUpDownArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
908 };
909 
910 static const SvxMSDffVertPair mso_sptQuadArrowVert[] =	// adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
911 {														// adjustment3: y 0 - 10800
912 	{ 0, 10800 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 2 MSO_I, 2 MSO_I },
913 	{ 2 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 10800, 0 }, { 3 MSO_I, 0 MSO_I },
914 	{ 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 1 MSO_I },
915 	{ 21600, 10800 }, { 5 MSO_I, 3 MSO_I }, { 5 MSO_I, 4 MSO_I }, { 4 MSO_I, 4 MSO_I },
916 	{ 4 MSO_I, 5 MSO_I }, { 3 MSO_I, 5 MSO_I }, { 10800, 21600 }, { 1 MSO_I, 5 MSO_I },
917 	{ 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 3 MSO_I }
918 };
919 static const sal_uInt16 mso_sptQuadArrowSegm[] =
920 {
921 	0x4000, 0x0017, 0x6001, 0x8000
922 };
923 static const SvxMSDffCalculationData mso_sptQuadArrowCalc[] =
924 {
925 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
926 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
927 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
928 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
929 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
930 	{ 0x8000, { 21600, 0, DFF_Prop_adjust3Value } }
931 };
932 static const sal_Int32 mso_sptQuadArrowDefault[] =
933 {
934 	3, 6500, 8600, 4300
935 };
936 static const SvxMSDffTextRectangles mso_sptQuadArrowTextRect[] =	// todo
937 {
938 	{ { 0, 0 }, { 21600, 21600 } }
939 };
940 static const SvxMSDffHandle mso_sptQuadArrowHandle[] =
941 {
942 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
943 		0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
944 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
945 		0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff }
946 };
947 static const mso_CustomShape msoQuadArrow =
948 {
949 	(SvxMSDffVertPair*)mso_sptQuadArrowVert, sizeof( mso_sptQuadArrowVert ) / sizeof( SvxMSDffVertPair ),
950 	(sal_uInt16*)mso_sptQuadArrowSegm, sizeof( mso_sptQuadArrowSegm ) >> 1,
951 	(SvxMSDffCalculationData*)mso_sptQuadArrowCalc, sizeof( mso_sptQuadArrowCalc ) / sizeof( SvxMSDffCalculationData ),
952 	(sal_Int32*)mso_sptQuadArrowDefault,
953 	(SvxMSDffTextRectangles*)mso_sptQuadArrowTextRect, sizeof( mso_sptQuadArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
954 	21600, 21600,
955 	0x80000000, 0x80000000,
956 	NULL, 0,
957 	(SvxMSDffHandle*)mso_sptQuadArrowHandle, sizeof( mso_sptQuadArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
958 };
959 
960 static const SvxMSDffVertPair mso_sptLeftRightUpArrowVert[] =	// adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
961 {																// adjustment3: y 0 - 21600
962 	{ 10800, 0 }, { 3 MSO_I, 2 MSO_I },	{ 4 MSO_I, 2 MSO_I }, { 4 MSO_I, 1 MSO_I },
963 	{ 5 MSO_I, 1 MSO_I }, { 5 MSO_I, 0 MSO_I },	{ 21600, 10800 }, { 5 MSO_I, 3 MSO_I },
964 	{ 5 MSO_I, 4 MSO_I }, { 2 MSO_I, 4 MSO_I },	{ 2 MSO_I, 3 MSO_I }, { 0, 10800 },
965 	{ 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 1 MSO_I },	{ 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 2 MSO_I },
966 	{ 0 MSO_I, 2 MSO_I }
967 };
968 static const sal_uInt16 mso_sptLeftRightUpArrowSegm[] =
969 {
970 	0x4000, 0x0010, 0x6001, 0x8000
971 };
972 static const SvxMSDffCalculationData mso_sptLeftRightUpArrowCalc[] =
973 {
974 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },				// 0
975 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },			// 1
976 	{ 0x6001, { 0x0403, DFF_Prop_adjust3Value, 21600 } },	// 2
977 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },			// 3
978 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },		// 4
979 	{ 0x8000, { 21600, 0, 0x0402 } }						// 5
980 };
981 static const sal_Int32 mso_sptLeftRightUpArrowDefault[] =
982 {
983 	3, 6500, 8600, 6200
984 };
985 static const SvxMSDffTextRectangles mso_sptLeftRightUpArrowTextRect[] =		// todo
986 {
987 	{ { 0, 0 }, { 21600, 21600 } }
988 };
989 static const SvxMSDffHandle mso_sptLeftRightUpArrowHandle[] =
990 {
991 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
992 		0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
993 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
994 		0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff }
995 };
996 static const mso_CustomShape msoLeftRightUpArrow =
997 {
998 	(SvxMSDffVertPair*)mso_sptLeftRightUpArrowVert, sizeof( mso_sptLeftRightUpArrowVert ) / sizeof( SvxMSDffVertPair ),
999 	(sal_uInt16*)mso_sptLeftRightUpArrowSegm, sizeof( mso_sptLeftRightUpArrowSegm ) >> 1,
1000 	(SvxMSDffCalculationData*)mso_sptLeftRightUpArrowCalc, sizeof( mso_sptLeftRightUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1001 	(sal_Int32*)mso_sptLeftRightUpArrowDefault,
1002 	(SvxMSDffTextRectangles*)mso_sptLeftRightUpArrowTextRect, sizeof( mso_sptLeftRightUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1003 	21600, 21600,
1004 	0x80000000, 0x80000000,
1005 	NULL, 0,
1006 	(SvxMSDffHandle*)mso_sptLeftRightUpArrowHandle, sizeof( mso_sptLeftRightUpArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
1007 };
1008 
1009 static const SvxMSDffVertPair mso_sptBentArrowVert[] =	// adjustment1 : x 12427 - 21600
1010 {														// adjustment2 : y 0 - 6079
1011 	{ 0, 21600 }, { 0, 12160 }, { 12427, 1 MSO_I }, { 0 MSO_I, 1 MSO_I },
1012 	{ 0 MSO_I, 0 }, { 21600, 6079 }, { 0 MSO_I, 12158 }, { 0 MSO_I, 2 MSO_I },
1013 	{ 12427, 2 MSO_I }, { 4 MSO_I, 12160 }, { 4 MSO_I, 21600 }
1014 };
1015 static const sal_uInt16 mso_sptBentArrowSegm[] =
1016 {
1017 	0x4000, 0x0001, 0xa801, 0x0006, 0xa701, 0x0001, 0x6001, 0x8000
1018 };
1019 static const SvxMSDffCalculationData mso_sptBentArrowCalc[] =
1020 {
1021 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1022 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1023 	{ 0x8000, { 12158, 0, DFF_Prop_adjust2Value } },
1024 	{ 0x8000, { 6079, 0, DFF_Prop_adjust2Value } },
1025 	{ 0x2001, { 0x0403, 2, 1 } }
1026 };
1027 static const sal_Int32 mso_sptBentArrowDefault[] =
1028 {
1029 	2, 15100, 2900
1030 };
1031 static const SvxMSDffTextRectangles mso_sptBentArrowTextRect[] =	// todo
1032 {
1033 	{ { 0, 0 }, { 21600, 21600 } }
1034 };
1035 static const SvxMSDffHandle mso_sptBentArrowHandle[] =
1036 {
1037 	{	MSDFF_HANDLE_FLAGS_RANGE,
1038 		0x100, 0x101, 10800, 10800, 12427, 21600, 0, 6079 }
1039 };
1040 static const mso_CustomShape msoBentArrow =
1041 {
1042 	(SvxMSDffVertPair*)mso_sptBentArrowVert, sizeof( mso_sptBentArrowVert ) / sizeof( SvxMSDffVertPair ),
1043 	(sal_uInt16*)mso_sptBentArrowSegm, sizeof( mso_sptBentArrowSegm ) >> 1,
1044 	(SvxMSDffCalculationData*)mso_sptBentArrowCalc, sizeof( mso_sptBentArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1045 	(sal_Int32*)mso_sptBentArrowDefault,
1046 	(SvxMSDffTextRectangles*)mso_sptBentArrowTextRect, sizeof( mso_sptBentArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1047 	21600, 21600,
1048 	0x80000000, 0x80000000,
1049 	NULL, 0,
1050 	(SvxMSDffHandle*)mso_sptBentArrowHandle, sizeof( mso_sptBentArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
1051 };
1052 
1053 static const SvxMSDffVertPair mso_sptUturnArrowVert[] =
1054 {
1055 	{ 0, 21600 }, { 0, 8550 },											// pp
1056 	{ 0, 3540 }, { 4370, 0 }, { 9270, 0 },								// ccp
1057 	{ 13890, 0 }, { 18570, 3230 }, { 18600, 8300 },						// ccp
1058 	{ 21600, 8300 }, { 15680, 14260 }, { 9700, 8300 }, { 12500, 8300 }, // pppp
1059 	{ 12320, 6380 }, { 10870, 5850 }, { 9320, 5850 },					// ccp
1060 	{ 7770, 5850 }, { 6040, 6410 }, { 6110, 8520 },						// ccp
1061 	{ 6110, 21600 }
1062 };
1063 static const sal_uInt16 mso_sptUturnArrowSegm[] =
1064 {
1065 	0x4000, 0x0001, 0x2002, 0x0004, 0x2002, 0x0001, 0x6000, 0x8000
1066 };
1067 static const SvxMSDffTextRectangles mso_sptUturnArrowTextRect[] =
1068 {
1069 	{ { 0, 8280 }, { 6110, 21600 } }
1070 };
1071 static const mso_CustomShape msoUturnArrow =
1072 {
1073 	(SvxMSDffVertPair*)mso_sptUturnArrowVert, sizeof( mso_sptUturnArrowVert ) / sizeof( SvxMSDffVertPair ),
1074 	(sal_uInt16*)mso_sptUturnArrowSegm, sizeof( mso_sptUturnArrowSegm ) >> 1,
1075 	NULL, 0,
1076 	NULL,
1077 	(SvxMSDffTextRectangles*)mso_sptUturnArrowTextRect, sizeof( mso_sptUturnArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1078 	21600, 21600,
1079 	0x80000000, 0x80000000,
1080 	NULL, 0,
1081 	NULL, 0		// handles
1082 };
1083 
1084 static const SvxMSDffVertPair mso_sptLeftUpArrowVert[] =	// adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1085 {															// adjustment3 : y 0 - 21600
1086 	{ 0, 5 MSO_I },	{ 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 7 MSO_I, 7 MSO_I },
1087 	{ 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 }, { 21600, 2 MSO_I },
1088 	{ 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I },	{ 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
1089 };
1090 static const sal_uInt16 mso_sptLeftUpArrowSegm[] =
1091 {
1092 	0x4000, 0x000b, 0x6001, 0x8000
1093 };
1094 static const SvxMSDffCalculationData mso_sptLeftUpArrowCalc[] =
1095 {
1096 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0
1097 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },		// 1
1098 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },		// 2
1099 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 3
1100 	{ 0x2001, { 0x0403, 1, 2 } },						// 4
1101 	{ 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },	// 5
1102 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },	// 6
1103 	{ 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },	// 7
1104 	{ 0x8000, { 21600, 0, 0x406 } },					// 8
1105 	{ 0xa000, { 0x408, 0, 0x406 } }					// 9
1106 };
1107 static const sal_Int32 mso_sptLeftUpArrowDefault[] =
1108 {
1109 	3, 9340, 18500, 6200
1110 };
1111 static const SvxMSDffTextRectangles mso_sptLeftUpArrowTextRect[] =
1112 {
1113 	{ { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1114 	{ { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1115 };
1116 static const SvxMSDffHandle mso_sptLeftUpArrowHandle[] =
1117 {
1118 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1119 		0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1120 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1121 		0x100, 0, 10800, 10800, 0x102, 3 + 9, 0x80000000, 0x7fffffff }
1122 };
1123 static const mso_CustomShape msoLeftUpArrow =
1124 {
1125 	(SvxMSDffVertPair*)mso_sptLeftUpArrowVert, sizeof( mso_sptLeftUpArrowVert ) / sizeof( SvxMSDffVertPair ),
1126 	(sal_uInt16*)mso_sptLeftUpArrowSegm, sizeof( mso_sptLeftUpArrowSegm ) >> 1,
1127 	(SvxMSDffCalculationData*)mso_sptLeftUpArrowCalc, sizeof( mso_sptLeftUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1128 	(sal_Int32*)mso_sptLeftUpArrowDefault,
1129 	(SvxMSDffTextRectangles*)mso_sptLeftUpArrowTextRect, sizeof( mso_sptLeftUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1130 	21600, 21600,
1131 	0x80000000, 0x80000000,
1132 	NULL, 0,
1133 	(SvxMSDffHandle*)mso_sptLeftUpArrowHandle, sizeof( mso_sptLeftUpArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
1134 };
1135 
1136 static const SvxMSDffVertPair mso_sptBentUpArrowVert[] =	// adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1137 {															// adjustment3 : y 0 - 21600
1138 	{ 0, 8 MSO_I }, { 7 MSO_I, 8 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },
1139 	{ 5 MSO_I, 0 }, { 21600, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 21600 },
1140 	{ 0, 21600 }
1141 };
1142 static const sal_uInt16 mso_sptBentUpArrowSegm[] =
1143 {
1144 	0x4000, 0x0008, 0x6001, 0x8000
1145 };
1146 static const SvxMSDffCalculationData mso_sptBentUpArrowCalc[] =
1147 {
1148 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0
1149 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },		// 1
1150 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },		// 2
1151 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 3
1152 	{ 0x2001, { 0x0403, 1, 2 } },						// 4
1153 	{ 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },	// 5
1154 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },	// 6
1155 	{ 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },	// 7
1156 	{ 0x6000, { 0x0407, 0x0406, 0 } },					// 8
1157 	{ 0x8000, { 21600, 0, 0x406 } },					// 9
1158 	{ 0xa000, { 0x409, 0, 0x406 } }					// a
1159 };
1160 static const sal_Int32 mso_sptBentUpArrowDefault[] =
1161 {
1162 	3, 9340, 18500, 7200
1163 };
1164 static const SvxMSDffTextRectangles mso_sptBentUpArrowTextRect[] =
1165 {
1166 	{ { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1167 	{ { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1168 };
1169 static const SvxMSDffHandle mso_sptBentUpArrowHandle[] =
1170 {
1171 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1172 		0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1173 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1174 		0x100, 0, 10800, 10800, 0x102, 3 + 10, 0x80000000, 0x7fffffff }
1175 };
1176 static const mso_CustomShape msoBentUpArrow =
1177 {
1178 	(SvxMSDffVertPair*)mso_sptBentUpArrowVert, sizeof( mso_sptBentUpArrowVert ) / sizeof( SvxMSDffVertPair ),
1179 	(sal_uInt16*)mso_sptBentUpArrowSegm, sizeof( mso_sptBentUpArrowSegm ) >> 1,
1180 	(SvxMSDffCalculationData*)mso_sptBentUpArrowCalc, sizeof( mso_sptBentUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1181 	(sal_Int32*)mso_sptBentUpArrowDefault,
1182 	(SvxMSDffTextRectangles*)mso_sptBentUpArrowTextRect, sizeof( mso_sptBentUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1183 	21600, 21600,
1184 	0x80000000, 0x80000000,
1185 	NULL, 0,
1186 	(SvxMSDffHandle*)mso_sptBentUpArrowHandle, sizeof( mso_sptBentUpArrowHandle ) / sizeof( SvxMSDffHandle )
1187 };
1188 
1189 static const SvxMSDffVertPair mso_sptCurvedRightVert[] =
1190 {
1191 	{ 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 0, 7 MSO_I }, { 2 MSO_I, 13 MSO_I },
1192 	{ 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I },
1193 	{ 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I },
1194 	{ 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I },
1195 	{ 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 0, 4 MSO_I }, { 26 MSO_I, 17 MSO_I },
1196 	{ 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I }
1197 };
1198 static const sal_uInt16 mso_sptCurvedRightSegm[] =
1199 {
1200 	0xa408,
1201 	0x0003,
1202 	0xa508,
1203 	0x6000,
1204 	0x8000,
1205 	0xa404,
1206 	0xa304,
1207 	0xa504,
1208 	0x6000,
1209 	0x8000
1210 };
1211 static const SvxMSDffCalculationData mso_sptCurvedRightCalc[] =
1212 {
1213 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1214 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1215 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1216 	{ 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1217 	{ 0x2001, { 0x403, 1, 2 } },
1218 	{ 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1219 	{ 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1220 	{ 0x2001, { 0x406, 1, 2 } },
1221 	{ 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1222 	{ 0x8000, { 21600, 0, DFF_Prop_adjust3Value } },
1223 	{ 0xa00f, { 0x409, 21600, 0x404 } },
1224 	{ 0x6000, { 0x404, 0x40a, 0 } },
1225 	{ 0x6000, { 0x40b, DFF_Prop_adjust2Value, 21600 } },
1226 	{ 0x6000, { 0x407, 0x40a, 0 } },
1227 	{ 0xa000, { 0x40c, 21600, DFF_Prop_adjustValue } },
1228 	{ 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1229 	{ 0x2001, { 0x40f, 1, 2 } },
1230 	{ 0x6002, { 0x404, 0x407, 0 } },
1231 	{ 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1232 	{ 0x2001, { 0x412, 1, 2 } },
1233 	{ 0xa000, { 0x411, 0, 0x413 } },
1234 	{ 0x0000, { 21600, 0, 0 } },
1235 	{ 0x0000, { 21600, 0, 0 } },
1236 	{ 0x0001, { 21600, 2, 1 } },
1237 	{ 0xa000, { 0x411, 0, 0x404 } },
1238 	{ 0x600f, { 0x418, 0x404, 21600 } },
1239 	{ 0x8000, { 21600, 0, 0x419 } },
1240 	{ 0x2000, { 0x408, 128, 0 } },
1241 	{ 0x2001, { 0x405, 1, 2 } },
1242 	{ 0x2000, { 0x405, 0, 128 } },
1243 	{ 0xe000, { DFF_Prop_adjustValue, 0x411, 0x40c } },
1244 	{ 0x600f, { 0x414, 0x404, 21600 } },
1245 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1246 	{ 0x2001, { 0x420, 1, 2 } },
1247 	{ 0x0001, { 21600, 21600, 1 } },
1248 	{ 0x6001, { 0x409, 0x409, 1 } },
1249 	{ 0xa000, { 0x422, 0, 0x423 } },
1250 	{ 0x200d, { 0x424, 0, 0 } },
1251 	{ 0x2000, { 0x425, 21600, 0 } },
1252 	{ 0x8001, { 21600, 21600, 0x426 } },
1253 	{ 0x2000, { 0x427, 64, 0 } },
1254 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1255 	{ 0x600f, { 0x421, 0x429, 21600 } },
1256 	{ 0x8000, { 21600, 0, 0x42a } },
1257 	{ 0x2000, { 0x42b, 64, 0 } },
1258 	{ 0x2001, { 0x404, 1, 2 } },
1259 	{ 0xa000, { DFF_Prop_adjust2Value, 0, 0x42d } },
1260 	{ 0x0001, { 21600, 2195, 16384 } },
1261 	{ 0x0001, { 21600, 14189, 16384 } }
1262 };
1263 static const sal_Int32 mso_sptCurvedRightDefault[] =
1264 {
1265 	3, 12960, 19440, 14400
1266 };
1267 static const SvxMSDffTextRectangles mso_sptCurvedRightTextRect[] =
1268 {
1269 	{ { 47 MSO_I, 45 MSO_I }, { 48 MSO_I, 46 MSO_I } }
1270 };
1271 static const SvxMSDffVertPair mso_sptCurvedRightGluePoints[] =
1272 {
1273 	{ 0, 17 MSO_I }, { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I }, { 22 MSO_I, 16 MSO_I }
1274 };
1275 static const SvxMSDffHandle mso_sptCurvedRightHandles[] =
1276 {
1277 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1278 		21600, 0x100, 10800, 10800, 0, 10800, 3 + 40, 3 + 29 },
1279 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1280 		21600, 0x101, 10800, 10800, 0, 10800, 3 + 27, 3 + 21 },
1281 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1282 		0x102, 21600, 10800, 10800, 3 + 44, 3 + 22, 3375, 21600 }
1283 };
1284 static const mso_CustomShape msoCurvedRightArrow =
1285 {
1286 	(SvxMSDffVertPair*)mso_sptCurvedRightVert, sizeof( mso_sptCurvedRightVert ) / sizeof( SvxMSDffVertPair ),
1287 	(sal_uInt16*)mso_sptCurvedRightSegm, sizeof( mso_sptCurvedRightSegm ) >> 1,
1288 	(SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ),
1289 	(sal_Int32*)mso_sptCurvedRightDefault,
1290 	(SvxMSDffTextRectangles*)mso_sptCurvedRightTextRect, sizeof( mso_sptCurvedRightTextRect ) / sizeof( SvxMSDffTextRectangles ),
1291 	21600, 21600,
1292 	0x80000000, 0x80000000,
1293 	(SvxMSDffVertPair*)mso_sptCurvedRightGluePoints, sizeof( mso_sptCurvedRightGluePoints ) / sizeof( SvxMSDffVertPair ),
1294 	(SvxMSDffHandle*)mso_sptCurvedRightHandles, sizeof( mso_sptCurvedRightHandles ) / sizeof( SvxMSDffHandle )
1295 };
1296 
1297 static const SvxMSDffVertPair mso_sptCurvedDownVert[] =
1298 {
1299 	{ 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1300 	{ 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 7 MSO_I, 0 }, { 13 MSO_I, 2 MSO_I },
1301 	{ 14 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I },
1302 	{ 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 11 MSO_I, 2 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 0 },
1303 	{ 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I },
1304 	{ 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1305 	{ 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 4 MSO_I, 0 }, { 17 MSO_I, 26 MSO_I },
1306 	{ 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I }
1307 };
1308 static const sal_uInt16 mso_sptCurvedDownSegm[] =
1309 {
1310 	0xa608,
1311 	0x0003,
1312 	0xa308,
1313 	0x6000,
1314 	0x8000,
1315 	0xa604,
1316 	0xa504,
1317 	0xa304,
1318 	0x6000,
1319 	0x8000
1320 };
1321 static const SvxMSDffTextRectangles mso_sptCurvedDownTextRect[] =
1322 {
1323 	{ { 45 MSO_I, 47 MSO_I }, { 46 MSO_I, 48 MSO_I } }
1324 };
1325 static const SvxMSDffVertPair mso_sptCurvedDownGluePoints[] =
1326 {
1327 	{ 17 MSO_I, 0 }, { 16 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 14 MSO_I, 2 MSO_I }
1328 };
1329 static const SvxMSDffHandle mso_sptCurvedDownHandles[] =
1330 {
1331 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1332 		0x100, 21600, 10800, 10800, 3 + 40, 3 + 29, 0, 10800 },
1333 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1334 		0x101, 21600, 10800, 10800, 3 + 27, 3 + 21, 0, 10800 },
1335 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1336 		21600, 0x102, 10800, 10800, 3375, 21600, 3 + 44, 3 + 22 }
1337 };
1338 
1339 static const mso_CustomShape msoCurvedDownArrow =
1340 {
1341 	(SvxMSDffVertPair*)mso_sptCurvedDownVert, sizeof( mso_sptCurvedDownVert ) / sizeof( SvxMSDffVertPair ),
1342 	(sal_uInt16*)mso_sptCurvedDownSegm, sizeof( mso_sptCurvedDownSegm ) >> 1,
1343 	(SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ),
1344 	(sal_Int32*)mso_sptCurvedRightDefault,
1345 	(SvxMSDffTextRectangles*)mso_sptCurvedDownTextRect, sizeof( mso_sptCurvedDownTextRect ) / sizeof( SvxMSDffTextRectangles ),
1346 	21600, 21600,
1347 	0x80000000, 0x80000000,
1348 	(SvxMSDffVertPair*)mso_sptCurvedDownGluePoints, sizeof( mso_sptCurvedDownGluePoints ) / sizeof( SvxMSDffVertPair ),
1349 	(SvxMSDffHandle*)mso_sptCurvedDownHandles, sizeof( mso_sptCurvedDownHandles ) / sizeof( SvxMSDffHandle )
1350 };
1351 
1352 static const SvxMSDffVertPair mso_sptCurvedUpVert[] =
1353 {
1354 	{ 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1355 	{ 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I },
1356 	{ 12 MSO_I, 2 MSO_I }, { 13 MSO_I, 2 MSO_I }, { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I },
1357 	{ 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 10 MSO_I, 2 MSO_I }, { 16 MSO_I, 24 MSO_I },
1358 	{ 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 },
1359 	{ 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1360 	{ 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I },
1361 	{ 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 }
1362 };
1363 static const sal_uInt16 mso_sptCurvedUpSegm[] =
1364 {
1365 	0xa408,
1366 	0x0003,
1367 	0xa508,
1368 	0x6000,
1369 	0x8000,
1370 	0xa404,
1371 	0xa508,
1372 	0xa504,
1373 	0x6000,
1374 	0x8000
1375 };
1376 static const SvxMSDffCalculationData mso_sptCurvedUpCalc[] =
1377 {
1378 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1379 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1380 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1381 	{ 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1382 	{ 0x2001, { 0x403, 1, 2 } },
1383 	{ 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1384 	{ 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1385 	{ 0x2001, { 0x406, 1, 2 } },
1386 	{ 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1387 	{ 0xa00f, { DFF_Prop_adjust3Value, 21600, 0x404 } },
1388 	{ 0x6000, { 0x404, 0x409, 0 } },
1389 	{ 0x6000, { 0x40a, DFF_Prop_adjust2Value, 21600 } },
1390 	{ 0x6000, { 0x407, 0x409, 0 } },
1391 	{ 0xa000, { 0x40b, 21600, DFF_Prop_adjustValue } },
1392 	{ 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1393 	{ 0x2001, { 0x40e, 1, 2 } },
1394 	{ 0x6002, { 0x404, 0x407, 0 } },
1395 	{ 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1396 	{ 0x2001, { 0x411, 1, 2 } },
1397 	{ 0xa000, { 0x410, 0, 0x412 } },
1398 	{ 0x0000, { 21600, 0, 0 } },
1399 	{ 0x0000, { 21600, 0, 0 } },
1400 	{ 0x0000, { 0, 0, 21600 } },
1401 	{ 0xa000, { 0x410, 0, 0x404 } },
1402 	{ 0x600f, { 0x417, 0x404, 21600 } },
1403 	{ 0x2000, { 0x408, 128, 0 } },
1404 	{ 0x2001, { 0x405, 1, 2 } },
1405 	{ 0x2000, { 0x405, 0, 128 } },
1406 	{ 0xe000, { DFF_Prop_adjustValue, 0x410, 0x40b } },
1407 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1408 	{ 0x2001, { 0x41d, 1, 2 } },
1409 	{ 0x0001, { 21600, 21600, 1 } },
1410 	{ 0x6001, { DFF_Prop_adjust3Value, DFF_Prop_adjust3Value, 1 } },
1411 	{ 0xa000, { 0x41f, 0, 0x420 } },
1412 	{ 0x200d, { 0x421, 0, 0 } },
1413 	{ 0x2000, { 0x422, 21600, 0 } },
1414 	{ 0x8001, { 21600, 21600, 0x423 } },
1415 	{ 0x2000, { 0x424, 64, 0 } },
1416 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1417 	{ 0x600f, { 0x41e, 0x426, 21600 } },
1418 	{ 0x2000, { 0x427, 0, 64 } },
1419 	{ 0x2001, { 0x404, 1, 2 } },
1420 	{ 0xa000, { DFF_Prop_adjust2Value, 0, 0x429 } },
1421 	{ 0x0001, { 21600, 2195, 16384 } },
1422 	{ 0x0001, { 21600, 14189, 16384 } }
1423 };
1424 static const sal_Int32 mso_sptCurvedUpDefault[] =
1425 {
1426 	3, 12960, 19440, 7200
1427 };
1428 static const SvxMSDffTextRectangles mso_sptCurvedUpTextRect[] =
1429 {
1430 	{ { 41 MSO_I, 43 MSO_I }, { 42 MSO_I, 44 MSO_I } }
1431 };
1432 static const SvxMSDffVertPair mso_sptCurvedUpGluePoints[] =
1433 {
1434 	{ 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I }, { 15 MSO_I, 0 }, { 16 MSO_I, 21 MSO_I }, { 13 MSO_I, 2 MSO_I }
1435 };
1436 static const SvxMSDffHandle mso_sptCurvedUpHandles[] =
1437 {
1438 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1439 		0x100, 0, 10800, 10800, 3 + 37, 3 + 27, 0, 10800 },
1440 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1441 		0x101, 0, 10800, 10800, 3 + 25, 3 + 20, 0, 10800 },
1442 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1443 		21600, 0x102, 10800, 10800, 3375, 21600, 0, 3 + 40 }
1444 };
1445 static const mso_CustomShape msoCurvedUpArrow =
1446 {
1447 	(SvxMSDffVertPair*)mso_sptCurvedUpVert, sizeof( mso_sptCurvedUpVert ) / sizeof( SvxMSDffVertPair ),
1448 	(sal_uInt16*)mso_sptCurvedUpSegm, sizeof( mso_sptCurvedUpSegm ) >> 1,
1449 	(SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ),
1450 	(sal_Int32*)mso_sptCurvedUpDefault,
1451 	(SvxMSDffTextRectangles*)mso_sptCurvedUpTextRect, sizeof( mso_sptCurvedUpTextRect ) / sizeof( SvxMSDffTextRectangles ),
1452 	21600, 21600,
1453 	0x80000000, 0x80000000,
1454 	(SvxMSDffVertPair*)mso_sptCurvedUpGluePoints, sizeof( mso_sptCurvedUpGluePoints ) / sizeof( SvxMSDffVertPair ),
1455 	(SvxMSDffHandle*)mso_sptCurvedUpHandles, sizeof( mso_sptCurvedUpHandles ) / sizeof( SvxMSDffHandle )
1456 };
1457 
1458 static const SvxMSDffVertPair mso_sptCurvedLeftVert[] =
1459 {
1460 	{ 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1461 	{ 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 2 MSO_I, 12 MSO_I },
1462 	{ 2 MSO_I, 13 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 11 MSO_I },
1463 	{ 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 2 MSO_I, 10 MSO_I }, { 24 MSO_I, 16 MSO_I },
1464 	{ 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I },
1465 	{ 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1466 	{ 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 24 MSO_I, 16 MSO_I },
1467 	{ 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I }
1468 };
1469 static const sal_uInt16 mso_sptCurvedLeftSegm[] =
1470 {
1471 	0xa608,
1472 	0x0003,
1473 	0xa308,
1474 	0x6000,
1475 	0x8000,
1476 	0xa604,
1477 	0xa308,
1478 	0x6000,
1479 	0x8000
1480 };
1481 static const SvxMSDffTextRectangles mso_sptCurvedLeftTextRect[] =
1482 {
1483 	{ { 43 MSO_I, 41 MSO_I }, { 44 MSO_I, 42 MSO_I } }
1484 };
1485 static const SvxMSDffVertPair mso_sptCurvedLeftGluePoints[] =
1486 {
1487 	{ 0, 15 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 13 MSO_I }, { 21 MSO_I, 16 MSO_I }
1488 };
1489 static const SvxMSDffHandle mso_sptCurvedLeftHandles[] =
1490 {
1491 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1492 		0, 0x100, 10800, 10800, 0, 10800, 3 + 37, 3 + 27 },
1493 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1494 		0, 0x101, 10800, 10800, 0, 10800, 3 + 25, 3 + 20 },
1495 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1496 		0x102, 21600, 10800, 10800, 0, 3 + 40, 3375, 21600 }
1497 };
1498 static const mso_CustomShape msoCurvedLeftArrow =
1499 {
1500 	(SvxMSDffVertPair*)mso_sptCurvedLeftVert, sizeof( mso_sptCurvedLeftVert ) / sizeof( SvxMSDffVertPair ),
1501 	(sal_uInt16*)mso_sptCurvedLeftSegm, sizeof( mso_sptCurvedLeftSegm ) >> 1,
1502 	(SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ),
1503 	(sal_Int32*)mso_sptCurvedUpDefault,
1504 	(SvxMSDffTextRectangles*)mso_sptCurvedLeftTextRect, sizeof( mso_sptCurvedLeftTextRect ) / sizeof( SvxMSDffTextRectangles ),
1505 	21600, 21600,
1506 	0x80000000, 0x80000000,
1507 	(SvxMSDffVertPair*)mso_sptCurvedLeftGluePoints, sizeof( mso_sptCurvedLeftGluePoints ) / sizeof( SvxMSDffVertPair ),
1508 	(SvxMSDffHandle*)mso_sptCurvedLeftHandles, sizeof( mso_sptCurvedLeftHandles ) / sizeof( SvxMSDffHandle )
1509 };
1510 
1511 static const SvxMSDffVertPair mso_sptStripedRightArrowVert[] =	// adjustment1 : x 3375 - 21600
1512 {																// adjustment2 : y 0 - 10800
1513 	{ 3375,	0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
1514 	{ 1 MSO_I, 21600 },	{ 1 MSO_I, 2 MSO_I }, { 3375, 2 MSO_I }, { 0, 0 MSO_I },
1515 	{ 675, 0 MSO_I }, { 675, 2 MSO_I }, { 0, 2 MSO_I }, { 1350, 0 MSO_I },
1516 	{ 2700, 0 MSO_I }, { 2700, 2 MSO_I }, { 1350, 2 MSO_I }
1517 };
1518 static const sal_uInt16 mso_sptStripedRightArrowSegm[] =
1519 {
1520 	0x4000, 0x0006, 0x6001,	0x8000,
1521 	0x4000, 0x0003, 0x6001, 0x8000,
1522 	0x4000, 0x0003, 0x6001, 0x8000
1523 };
1524 static const SvxMSDffCalculationData mso_sptStripedRightArrowCalc[] =
1525 {
1526 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1527 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1528 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1529 	{ 0x8000, { 21600, 0, 0x401 } },
1530 	{ 0x6001, { 0x403, 0x400, 10800 } },
1531 	{ 0x6000, { 0x401, 0x404, 0 } }
1532 };
1533 static const SvxMSDffTextRectangles mso_sptStripedRightArrowTextRect[] =
1534 {
1535 	{ { 3375, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
1536 };
1537 static const SvxMSDffHandle mso_sptStripedRightArrowHandle[] =
1538 {
1539 	{	MSDFF_HANDLE_FLAGS_RANGE,
1540 		0x100, 0x101, 10800, 10800, 3375, 21600, 0, 10800 }
1541 };
1542 static const mso_CustomShape msoStripedRightArrow =
1543 {
1544 	(SvxMSDffVertPair*)mso_sptStripedRightArrowVert, sizeof( mso_sptStripedRightArrowVert ) / sizeof( SvxMSDffVertPair ),
1545 	(sal_uInt16*)mso_sptStripedRightArrowSegm, sizeof( mso_sptStripedRightArrowSegm ) >> 1,
1546 	(SvxMSDffCalculationData*)mso_sptStripedRightArrowCalc, sizeof( mso_sptStripedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1547 	(sal_Int32*)mso_sptDefault16200and5400,
1548 	(SvxMSDffTextRectangles*)mso_sptStripedRightArrowTextRect, sizeof( mso_sptStripedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1549 	21600, 21600,
1550 	0x80000000, 0x80000000,
1551 	NULL, 0,
1552 	(SvxMSDffHandle*)mso_sptStripedRightArrowHandle, sizeof( mso_sptStripedRightArrowHandle ) / sizeof( SvxMSDffHandle )
1553 };
1554 
1555 static const SvxMSDffVertPair mso_sptNotchedRightArrowVert[] =	// adjustment1 : x 0 - 21600	(default 16200)
1556 {																// adjustment2 : y 0 - 10800	(default 5400)
1557 	{ 0, 1 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 0 }, { 21600, 10800 },
1558 	{ 0 MSO_I, 21600 }, { 0 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }, { 5 MSO_I, 10800 }, { 0, 1 MSO_I }
1559 };
1560 static const SvxMSDffCalculationData mso_sptNotchedRightArrowCalc[] =
1561 {
1562 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1563 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1564 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1565 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1566 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
1567 	{ 0x6001, { 0x403, 0x404, 10800 } }
1568 };
1569 static const SvxMSDffTextRectangles mso_sptNotchedRightArrowTextRect[] =	// todo
1570 {
1571 	{ { 0, 0 }, { 21600, 21600 } }
1572 };
1573 static const SvxMSDffHandle mso_sptNotchedRightArrowHandle[] =
1574 {
1575 	{	MSDFF_HANDLE_FLAGS_RANGE,
1576 		0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
1577 };
1578 static const mso_CustomShape msoNotchedRightArrow =
1579 {
1580 	(SvxMSDffVertPair*)mso_sptNotchedRightArrowVert, sizeof( mso_sptNotchedRightArrowVert ) / sizeof( SvxMSDffVertPair ),
1581 	NULL, 0,
1582 	(SvxMSDffCalculationData*)mso_sptNotchedRightArrowCalc, sizeof( mso_sptNotchedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1583 	(sal_Int32*)mso_sptDefault16200and5400,
1584 	(SvxMSDffTextRectangles*)mso_sptNotchedRightArrowTextRect, sizeof( mso_sptNotchedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1585 	21600, 21600,
1586 	0x80000000, 0x80000000,
1587 	NULL, 0,
1588 	(SvxMSDffHandle*)mso_sptNotchedRightArrowHandle, sizeof( mso_sptNotchedRightArrowHandle ) / sizeof( SvxMSDffHandle )
1589 };
1590 
1591 static const SvxMSDffVertPair mso_sptHomePlateVert[] =	// adjustment1 : x 0 - 21600
1592 {
1593 	{ 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1594 	{ 0, 21600 }
1595 };
1596 static const sal_uInt16 mso_sptHomePlateSegm[] =
1597 {
1598 	0x4000, 0x0004, 0x6001, 0x8000
1599 };
1600 static const SvxMSDffCalculationData mso_sptHomePlateCalc[] =
1601 {
1602 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
1603 };
1604 static const sal_Int32 mso_sptHomePlateDefault[] =
1605 {
1606 	1, 16200
1607 };
1608 static const SvxMSDffTextRectangles mso_sptHomePlateTextRect[] =	// todo
1609 {
1610 	{ { 0, 0 }, { 21600, 21600 } }
1611 };
1612 static const SvxMSDffHandle mso_sptHomePlateHandle[] =
1613 {
1614 	{	MSDFF_HANDLE_FLAGS_RANGE,
1615 		0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
1616 };
1617 static const mso_CustomShape msoHomePlate =
1618 {
1619 	(SvxMSDffVertPair*)mso_sptHomePlateVert, sizeof( mso_sptHomePlateVert ) / sizeof( SvxMSDffVertPair ),
1620 	(sal_uInt16*)mso_sptHomePlateSegm, sizeof( mso_sptHomePlateSegm ) >> 1,
1621 	(SvxMSDffCalculationData*)mso_sptHomePlateCalc, sizeof( mso_sptHomePlateCalc ) / sizeof( SvxMSDffCalculationData ),
1622 	(sal_Int32*)mso_sptHomePlateDefault,
1623 	(SvxMSDffTextRectangles*)mso_sptHomePlateTextRect, sizeof( mso_sptHomePlateTextRect ) / sizeof( SvxMSDffTextRectangles ),
1624 	21600, 21600,
1625 	0x80000000, 0x80000000,
1626 	NULL, 0,
1627 	(SvxMSDffHandle*)mso_sptHomePlateHandle, sizeof( mso_sptHomePlateHandle ) / sizeof( SvxMSDffHandle )
1628 };
1629 
1630 static const SvxMSDffVertPair mso_sptChevronVert[] =	// adjustment1 : x 0 - 21600
1631 {
1632 	{ 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1633 	{ 0, 21600 }, { 1 MSO_I, 10800 }
1634 };
1635 static const sal_uInt16 mso_sptChevronSegm[] =
1636 {
1637 	0x4000, 0x0005, 0x6001, 0x8000
1638 };
1639 static const SvxMSDffCalculationData mso_sptChevronCalc[] =
1640 {
1641 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1642 	{ 0x8000, { 21600, 0, 0x0400 } }
1643 };
1644 static const sal_Int32 mso_sptChevronDefault[] =
1645 {
1646 	1, 16200
1647 };
1648 static const SvxMSDffTextRectangles mso_sptChevronTextRect[] =	// todo
1649 {
1650 	{ { 0, 0 }, { 21600, 21600 } }
1651 };
1652 static const SvxMSDffHandle mso_sptChevronHandle[] =
1653 {
1654 	{	MSDFF_HANDLE_FLAGS_RANGE,
1655 		0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
1656 };
1657 static const mso_CustomShape msoChevron =
1658 {
1659 	(SvxMSDffVertPair*)mso_sptChevronVert, sizeof( mso_sptChevronVert ) / sizeof( SvxMSDffVertPair ),
1660 	(sal_uInt16*)mso_sptChevronSegm, sizeof( mso_sptChevronSegm ) >> 1,
1661 	(SvxMSDffCalculationData*)mso_sptChevronCalc, sizeof( mso_sptChevronCalc ) / sizeof( SvxMSDffCalculationData ),
1662 	(sal_Int32*)mso_sptChevronDefault,
1663 	(SvxMSDffTextRectangles*)mso_sptChevronTextRect, sizeof( mso_sptChevronTextRect ) / sizeof( SvxMSDffTextRectangles ),
1664 	21600, 21600,
1665 	0x80000000, 0x80000000,
1666 	NULL, 0,
1667 	(SvxMSDffHandle*)mso_sptChevronHandle, sizeof( mso_sptChevronHandle ) / sizeof( SvxMSDffHandle )
1668 };
1669 
1670 static const SvxMSDffVertPair mso_sptRightArrowCalloutVert[] =	// adjustment1 : x 0 - 21000
1671 {																// adjustment2 : y 0 - 10800
1672 	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
1673 	{ 2 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 5 MSO_I },
1674 	{ 0 MSO_I, 5 MSO_I }, { 0 MSO_I, 21600 }, { 0, 21600 }
1675 };
1676 static const sal_uInt16 mso_sptRightArrowCalloutSegm[] =
1677 {
1678 	0x4000, 0x000a, 0x6001,	0x8000
1679 };
1680 static const SvxMSDffCalculationData mso_sptRightArrowCalloutCalc[] =
1681 {
1682 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1683 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1684 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1685 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1686 	{ 0x8000, { 21600, 0, 0x0401 } },
1687 	{ 0x8000, { 21600, 0, 0x0403 } }
1688 };
1689 static const sal_Int32 mso_sptRightArrowCalloutDefault[] =
1690 {
1691 	4, 14400, 5400, 18000, 8100
1692 };
1693 static const SvxMSDffTextRectangles mso_sptRightArrowCalloutTextRect[] =
1694 {
1695 	{ { 0, 0 }, { 0 MSO_I, 21600 } }
1696 };
1697 static const SvxMSDffHandle mso_sptRightArrowCalloutHandle[] =
1698 {
1699 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1700 		0x100, 0, 10800, 10800, 0, 0x102, 0x80000000, 0x7fffffff },
1701 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1702 		0x102, 0x103, 10800, 10800, 0x100, 21600, 0x101, 10800 },
1703 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1704 		1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1705 };
1706 static const mso_CustomShape msoRightArrowCallout =
1707 {
1708 	(SvxMSDffVertPair*)mso_sptRightArrowCalloutVert, sizeof( mso_sptRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1709 	(sal_uInt16*)mso_sptRightArrowCalloutSegm, sizeof( mso_sptRightArrowCalloutSegm ) >> 1,
1710 	(SvxMSDffCalculationData*)mso_sptRightArrowCalloutCalc, sizeof( mso_sptRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1711 	(sal_Int32*)mso_sptRightArrowCalloutDefault,
1712 	(SvxMSDffTextRectangles*)mso_sptRightArrowCalloutTextRect, sizeof( mso_sptRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1713 	21600, 21600,
1714 	0x80000000, 0x80000000,
1715 	NULL, 0,
1716 	(SvxMSDffHandle*)mso_sptRightArrowCalloutHandle, sizeof( mso_sptRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1717 };
1718 
1719 static const SvxMSDffVertPair mso_sptLeftArrowCalloutVert[] =	// adjustment1 : x 0 - 21600, adjustment2 : y 0 - 10800
1720 {																// adjustment3 : x 0 - 21600, adjustment4 : y 0 - 10800
1721 	{ 0 MSO_I, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0 MSO_I, 21600 },
1722 	{ 0 MSO_I, 5 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0, 10800 },
1723 	{ 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1724 };
1725 static const sal_uInt16 mso_sptLeftArrowCalloutSegm[] =
1726 {
1727 	0x4000, 0x000a, 0x6001,	0x8000
1728 };
1729 static const SvxMSDffCalculationData mso_sptLeftArrowCalloutCalc[] =
1730 {
1731 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1732 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1733 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1734 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1735 	{ 0x8000, { 21600, 0, 0x0401 } },
1736 	{ 0x8000, { 21600, 0, 0x0403 } }
1737 };
1738 static const sal_Int32 mso_sptLeftArrowCalloutDefault[] =
1739 {
1740 	4, 7200, 5400, 3600, 8100
1741 };
1742 static const SvxMSDffTextRectangles mso_sptLeftArrowCalloutTextRect[] =
1743 {
1744 	{ { 0 MSO_I, 0 }, { 21600, 21600 } }
1745 };
1746 static const SvxMSDffHandle mso_sptLeftArrowCalloutHandle[] =
1747 {
1748 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1749 		0x100, 0, 10800, 10800, 0x102, 21600, 0x80000000, 0x7fffffff },
1750 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1751 		0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1752 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1753 		0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1754 };
1755 static const mso_CustomShape msoLeftArrowCallout =
1756 {
1757 	(SvxMSDffVertPair*)mso_sptLeftArrowCalloutVert, sizeof( mso_sptLeftArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1758 	(sal_uInt16*)mso_sptLeftArrowCalloutSegm, sizeof( mso_sptLeftArrowCalloutSegm ) >> 1,
1759 	(SvxMSDffCalculationData*)mso_sptLeftArrowCalloutCalc, sizeof( mso_sptLeftArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1760 	(sal_Int32*)mso_sptLeftArrowCalloutDefault,
1761 	(SvxMSDffTextRectangles*)mso_sptLeftArrowCalloutTextRect, sizeof( mso_sptLeftArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1762 	21600, 21600,
1763 	0x80000000, 0x80000000,
1764 	NULL, 0,
1765 	(SvxMSDffHandle*)mso_sptLeftArrowCalloutHandle, sizeof( mso_sptLeftArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1766 };
1767 
1768 static const SvxMSDffVertPair mso_sptUpArrowCalloutVert[] =
1769 {
1770 	{ 21600, 0 MSO_I }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 MSO_I },
1771 	{ 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 10800, 0 },
1772 	{ 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 MSO_I }
1773 };
1774 static const sal_uInt16 mso_sptUpArrowCalloutSegm[] =
1775 {
1776 	0x4000, 0x000a, 0x6001,	0x8000
1777 };
1778 static const SvxMSDffCalculationData mso_sptUpArrowCalloutCalc[] =
1779 {
1780 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1781 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1782 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1783 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1784 	{ 0x8000, { 21600, 0, 0x0401 } },
1785 	{ 0x8000, { 21600, 0, 0x0403 } }
1786 };
1787 static const sal_Int32 mso_sptUpArrowCalloutDefault[] =
1788 {
1789 	4, 7200, 5400, 3600, 8100
1790 };
1791 static const SvxMSDffTextRectangles mso_sptUpArrowCalloutTextRect[] =
1792 {
1793 	{ { 0, 0 MSO_I }, { 21600, 21600 } }
1794 };
1795 static const SvxMSDffHandle mso_sptUpArrowCalloutHandle[] =
1796 {
1797 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1798 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 21600 },
1799 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1800 		0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1801 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1802 		0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1803 };
1804 static const mso_CustomShape msoUpArrowCallout =
1805 {
1806 	(SvxMSDffVertPair*)mso_sptUpArrowCalloutVert, sizeof( mso_sptUpArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1807 	(sal_uInt16*)mso_sptUpArrowCalloutSegm, sizeof( mso_sptUpArrowCalloutSegm ) >> 1,
1808 	(SvxMSDffCalculationData*)mso_sptUpArrowCalloutCalc, sizeof( mso_sptUpArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1809 	(sal_Int32*)mso_sptUpArrowCalloutDefault,
1810 	(SvxMSDffTextRectangles*)mso_sptUpArrowCalloutTextRect, sizeof( mso_sptUpArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1811 	21600, 21600,
1812 	0x80000000, 0x80000000,
1813 	NULL, 0,
1814 	(SvxMSDffHandle*)mso_sptUpArrowCalloutHandle, sizeof( mso_sptUpArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1815 };
1816 
1817 static const SvxMSDffVertPair mso_sptDownArrowCalloutVert[] =
1818 {
1819 	{ 0, 0 MSO_I }, { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I },
1820 	{ 5 MSO_I, 0 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 10800, 21600 },
1821 	{ 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1822 };
1823 static const sal_uInt16 mso_sptDownArrowCalloutSegm[] =
1824 {
1825 	0x4000, 0x000a, 0x6001,	0x8000
1826 };
1827 static const SvxMSDffCalculationData mso_sptDownArrowCalloutCalc[] =
1828 {
1829 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1830 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1831 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1832 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1833 	{ 0x8000, { 21600, 0, 0x0401 } },
1834 	{ 0x8000, { 21600, 0, 0x0403 } }
1835 };
1836 static const sal_Int32 mso_sptDownArrowCalloutDefault[] =
1837 {
1838 	4, 14400, 5400, 18000, 8100
1839 };
1840 static const SvxMSDffTextRectangles mso_sptDownArrowCalloutTextRect[] =
1841 {
1842 	{ { 0, 0 }, { 21600, 0 MSO_I } }
1843 };
1844 static const SvxMSDffHandle mso_sptDownArrowCalloutHandle[] =
1845 {
1846 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1847 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x102 },
1848 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1849 		0x103, 0x102, 10800, 10800, 0x101, 10800, 0x100, 21600 },
1850 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1851 		0x101, 1, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1852 };
1853 static const mso_CustomShape msoDownArrowCallout =
1854 {
1855 	(SvxMSDffVertPair*)mso_sptDownArrowCalloutVert, sizeof( mso_sptDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1856 	(sal_uInt16*)mso_sptDownArrowCalloutSegm, sizeof( mso_sptDownArrowCalloutSegm ) >> 1,
1857 	(SvxMSDffCalculationData*)mso_sptDownArrowCalloutCalc, sizeof( mso_sptDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1858 	(sal_Int32*)mso_sptDownArrowCalloutDefault,
1859 	(SvxMSDffTextRectangles*)mso_sptDownArrowCalloutTextRect, sizeof( mso_sptDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1860 	21600, 21600,
1861 	0x80000000, 0x80000000,
1862 	NULL, 0,
1863 	(SvxMSDffHandle*)mso_sptDownArrowCalloutHandle, sizeof( mso_sptDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1864 };
1865 
1866 static const SvxMSDffVertPair mso_sptLeftRightArrowCalloutVert[] =
1867 {
1868 	{ 0 MSO_I, 0 }, { 4 MSO_I, 0 }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I },
1869 	{ 6 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I },
1870 	{ 4 MSO_I, 7 MSO_I }, { 4 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0 MSO_I, 7 MSO_I },
1871 	{ 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 0, 10800 }, { 2 MSO_I, 1 MSO_I },
1872 	{ 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1873 };
1874 static const sal_uInt16 mso_sptLeftRightArrowCalloutSegm[] =
1875 {
1876 	0x4000, 0x0011, 0x6001, 0x8000
1877 };
1878 static const SvxMSDffCalculationData mso_sptLeftRightArrowCalloutCalc[] =
1879 {
1880 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1881 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1882 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1883 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1884 	{ 0x8000, { 21600, 0, 0x0400 } },
1885 	{ 0x8000, { 21600, 0, 0x0401 } },
1886 	{ 0x8000, { 21600, 0, 0x0402 } },
1887 	{ 0x8000, { 21600, 0, 0x0403 } }
1888 };
1889 static const sal_Int32 mso_sptLeftRightArrowCalloutDefault[] =
1890 {
1891 	4, 5400, 5500, 2700, 8100
1892 };
1893 static const SvxMSDffTextRectangles mso_sptLeftRightArrowCalloutTextRect[] =
1894 {
1895 	{ { 0 MSO_I, 0 }, { 4 MSO_I, 21600 } }
1896 };
1897 static const SvxMSDffHandle mso_sptLeftRightArrowCalloutHandle[] =
1898 {
1899 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1900 		0x100, 0, 10800, 10800, 0x102, 10800, 0x80000000, 0x7fffffff },
1901 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1902 		0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1903 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1904 		0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1905 };
1906 static const mso_CustomShape msoLeftRightArrowCallout =
1907 {
1908 	(SvxMSDffVertPair*)mso_sptLeftRightArrowCalloutVert, sizeof( mso_sptLeftRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1909 	(sal_uInt16*)mso_sptLeftRightArrowCalloutSegm, sizeof( mso_sptLeftRightArrowCalloutSegm ) >> 1,
1910 	(SvxMSDffCalculationData*)mso_sptLeftRightArrowCalloutCalc, sizeof( mso_sptLeftRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1911 	(sal_Int32*)mso_sptLeftRightArrowCalloutDefault,
1912 	(SvxMSDffTextRectangles*)mso_sptLeftRightArrowCalloutTextRect, sizeof( mso_sptLeftRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1913 	21600, 21600,
1914 	0x80000000, 0x80000000,
1915 	NULL, 0,
1916 	(SvxMSDffHandle*)mso_sptLeftRightArrowCalloutHandle, sizeof( mso_sptLeftRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1917 };
1918 
1919 static const SvxMSDffVertPair mso_sptUpDownArrowCalloutVert[] =
1920 {
1921 	{ 0, 0 MSO_I }, { 0, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 6 MSO_I },
1922 	{ 1 MSO_I, 6 MSO_I }, { 10800, 21600 }, { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 6 MSO_I },
1923 	{ 7 MSO_I, 4 MSO_I }, { 21600, 4 MSO_I }, { 21600, 0 MSO_I }, { 7 MSO_I, 0 MSO_I },
1924 	{ 7 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 10800, 0 }, { 1 MSO_I, 2 MSO_I },
1925 	{ 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1926 };
1927 static const sal_uInt16 mso_sptUpDownArrowCalloutSegm[] =
1928 {
1929 	0x4000, 0x0011, 0x6001, 0x8000
1930 };
1931 static const SvxMSDffCalculationData mso_sptUpDownArrowCalloutCalc[] =
1932 {
1933 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1934 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1935 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1936 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1937 	{ 0x8000, { 21600, 0, 0x0400 } },
1938 	{ 0x8000, { 21600, 0, 0x0401 } },
1939 	{ 0x8000, { 21600, 0, 0x0402 } },
1940 	{ 0x8000, { 21600, 0, 0x0403 } }
1941 };
1942 static const sal_Int32 mso_sptUpDownArrowCalloutDefault[] =
1943 {
1944 	4, 5400, 5500, 2700, 8100
1945 };
1946 static const SvxMSDffTextRectangles mso_sptUpDownArrowCalloutTextRect[] =
1947 {
1948 	{ { 0, 0 MSO_I }, { 21600, 4 MSO_I } }
1949 };
1950 static const SvxMSDffHandle mso_sptUpDownArrowCalloutHandle[] =
1951 {
1952 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1953 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 10800 },
1954 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1955 		0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1956 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1957 		0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1958 };
1959 static const mso_CustomShape msoUpDownArrowCallout =
1960 {
1961 	(SvxMSDffVertPair*)mso_sptUpDownArrowCalloutVert, sizeof( mso_sptUpDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1962 	(sal_uInt16*)mso_sptUpDownArrowCalloutSegm, sizeof( mso_sptUpDownArrowCalloutSegm ) >> 1,
1963 	(SvxMSDffCalculationData*)mso_sptUpDownArrowCalloutCalc, sizeof( mso_sptUpDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1964 	(sal_Int32*)mso_sptUpDownArrowCalloutDefault,
1965 	(SvxMSDffTextRectangles*)mso_sptUpDownArrowCalloutTextRect, sizeof( mso_sptUpDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1966 	21600, 21600,
1967 	0x80000000, 0x80000000,
1968 	NULL, 0,
1969 	(SvxMSDffHandle*)mso_sptUpDownArrowCalloutHandle, sizeof( mso_sptUpDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1970 };
1971 
1972 static const SvxMSDffVertPair mso_sptQuadArrowCalloutVert[] =
1973 {
1974 	{ 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
1975 	{ 10800, 0 }, { 5 MSO_I, 2 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 7 MSO_I, 0 MSO_I },
1976 	{ 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I }, { 6 MSO_I, 1 MSO_I },
1977 	{ 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 7 MSO_I },
1978 	{ 4 MSO_I, 4 MSO_I }, { 7 MSO_I, 4 MSO_I }, { 7 MSO_I, 6 MSO_I }, { 5 MSO_I, 6 MSO_I },
1979 	{ 10800, 21600 }, { 1 MSO_I, 6 MSO_I }, { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 4 MSO_I },
1980 	{ 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I },
1981 	{ 0, 10800 }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1982 };
1983 static const sal_uInt16 mso_sptQuadArrowCalloutSegm[] =
1984 {
1985 	0x4000, 0x001f, 0x6001, 0x8000
1986 };
1987 static const SvxMSDffCalculationData mso_sptQuadArrowCalloutCalc[] =
1988 {
1989 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1990 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1991 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1992 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1993 	{ 0x8000, { 21600, 0, 0x0400 } },
1994 	{ 0x8000, { 21600, 0, 0x0401 } },
1995 	{ 0x8000, { 21600, 0, 0x0402 } },
1996 	{ 0x8000, { 21600, 0, 0x0403 } }
1997 };
1998 static const sal_Int32 mso_sptQuadArrowCalloutDefault[] =
1999 {
2000 	4, 5400, 8100, 2700, 9400
2001 };
2002 static const SvxMSDffTextRectangles mso_sptQuadArrowCalloutTextRect[] =
2003 {
2004 	{ { 0 MSO_I, 0 MSO_I }, { 4 MSO_I, 4 MSO_I } }
2005 };
2006 static const SvxMSDffHandle mso_sptQuadArrowCalloutHandle[] =
2007 {
2008 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
2009 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 0x101 },
2010 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
2011 		0x101, 0, 10800, 10800, 0x100, 10800, 0x80000000, 0x7fffffff },
2012 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
2013 		0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 }
2014 };
2015 static const mso_CustomShape msoQuadArrowCallout =
2016 {
2017 	(SvxMSDffVertPair*)mso_sptQuadArrowCalloutVert, sizeof( mso_sptQuadArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
2018 	(sal_uInt16*)mso_sptQuadArrowCalloutSegm, sizeof( mso_sptQuadArrowCalloutSegm ) >> 1,
2019 	(SvxMSDffCalculationData*)mso_sptQuadArrowCalloutCalc, sizeof( mso_sptQuadArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
2020 	(sal_Int32*)mso_sptQuadArrowCalloutDefault,
2021 	(SvxMSDffTextRectangles*)mso_sptQuadArrowCalloutTextRect, sizeof( mso_sptQuadArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
2022 	21600, 21600,
2023 	0x80000000, 0x80000000,
2024 	NULL, 0,
2025 	(SvxMSDffHandle*)mso_sptQuadArrowCalloutHandle, sizeof( mso_sptQuadArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
2026 };
2027 
2028 static const SvxMSDffVertPair mso_sptCircularArrowVert[] =
2029 {
2030 	{ 0x03 MSO_I, 0x03 MSO_I },
2031 	{ 0x14 MSO_I, 0x14 MSO_I },
2032 	{ 0x13 MSO_I, 0x12 MSO_I },
2033 	{ 0x11 MSO_I, 0x10 MSO_I },
2034 	{ 0, 0 }, { 21600, 21600 },
2035 	{ 0x09 MSO_I, 0x08 MSO_I },
2036 	{ 0x0B MSO_I, 0x0A MSO_I },
2037 	{ 0x18 MSO_I, 0x17 MSO_I },
2038 	{ 0x2F MSO_I, 0x2E MSO_I },
2039 	{ 0x1D MSO_I, 0x1C MSO_I }
2040 };
2041 static const sal_uInt16 mso_sptCircularArrowSegm[] =
2042 {
2043 	0xa404, 0xa504, 0x0003, 0x6001, 0x8000
2044 };
2045 static const SvxMSDffCalculationData mso_sptCircularArrowCalc[] =
2046 {
2047 	{ 0x2000, { 0x0147, 0x0000, 0x0000 } },
2048 	{ 0x2000, { 0x0148, 0x0000, 0x0000 } },
2049 	{ 0x2000, { 0x0149, 0x0000, 0x0000 } },
2050 	{ 0x4000, { 0x2A30, 0x0149, 0x0000 } },
2051 	{ 0x4009, { 0x2A30, 0x0147, 0x0000 } },
2052 	{ 0x400A, { 0x2A30, 0x0147, 0x0000 } },
2053 	{ 0x4009, { 0x2A30, 0x0148, 0x0000 } },
2054 	{ 0x400A, { 0x2A30, 0x0148, 0x0000 } },
2055 	{ 0x2000, { 0x0404, 0x2A30, 0x0000 } },
2056 	{ 0x2000, { 0x0405, 0x2A30, 0x0000 } },
2057 	{ 0x2000, { 0x0406, 0x2A30, 0x0000 } },
2058 	{ 0x2000, { 0x0407, 0x2A30, 0x0000 } },
2059 	{ 0x6009, { 0x0403, 0x0147, 0x0000 } },
2060 	{ 0x600A, { 0x0403, 0x0147, 0x0000 } },
2061 	{ 0x6009, { 0x0403, 0x0148, 0x0000 } },
2062 	{ 0x600A, { 0x0403, 0x0148, 0x0000 } },
2063 	{ 0x2000, { 0x040C, 0x2A30, 0x0000 } },
2064 	{ 0x2000, { 0x040D, 0x2A30, 0x0000 } },
2065 	{ 0x2000, { 0x040E, 0x2A30, 0x0000 } },
2066 	{ 0x2000, { 0x040F, 0x2A30, 0x0000 } },
2067 	{ 0x8000, { 0x5460, 0x0000, 0x0403 } },
2068 	{ 0x4009, { 0x34BC, 0x0148, 0x0000 } },
2069 	{ 0x400A, { 0x34BC, 0x0148, 0x0000 } },
2070 	{ 0x2000, { 0x0415, 0x2A30, 0x0000 } },
2071 	{ 0x2000, { 0x0416, 0x2A30, 0x0000 } },
2072 	{ 0x2000, { 0x0149, 0x0000, 0x0A8C } },
2073 	{ 0x6009, { 0x0419, 0x0148, 0x0000 } },
2074 	{ 0x600A, { 0x0419, 0x0148, 0x0000 } },
2075 	{ 0x2000, { 0x041A, 0x2A30, 0x0000 } },
2076 	{ 0x2000, { 0x041B, 0x2A30, 0x0000 } },
2077 	{ 0xA000, { 0x041D, 0x0000, 0x0418 } },
2078 	{ 0xA000, { 0x041D, 0x0000, 0x0418 } },
2079 	{ 0x6001, { 0x041E, 0x041F, 0x0001 } },
2080 	{ 0xA000, { 0x041C, 0x0000, 0x0417 } },
2081 	{ 0xA000, { 0x041C, 0x0000, 0x0417 } },
2082 	{ 0x6001, { 0x0421, 0x0422, 0x0001 } },
2083 	{ 0x6000, { 0x0420, 0x0423, 0x0000 } },
2084 	{ 0x200D, { 0x0424, 0x0000, 0x0000 } },
2085 	{ 0x200E, { 0x0148, 0x002D, 0x0000 } },
2086 	{ 0x6009, { 0x0425, 0x0426, 0x0000 } },
2087 	{ 0x200E, { 0x0148, 0x002D, 0x0000 } },
2088 	{ 0x600A, { 0x0425, 0x0428, 0x0000 } },
2089 	{ 0x000E, { 0x0000, 0x002D, 0x0000 } },
2090 	{ 0x6009, { 0x0427, 0x042A, 0x0000 } },
2091 	{ 0x000E, { 0x0000, 0x002D, 0x0000 } },
2092 	{ 0x6009, { 0x0429, 0x042C, 0x0000 } },
2093 	{ 0x6000, { 0x041C, 0x042B, 0x0000 } },
2094 	{ 0x6000, { 0x041D, 0x042D, 0x0000 } }
2095 };
2096 static const sal_Int32 mso_sptCircularArrowDefault[] =
2097 {
2098 	3, 180, 0, 5500
2099 };
2100 static const SvxMSDffTextRectangles mso_sptCircularArrowTextRect[] =	// todo
2101 {
2102 	{ { 0, 0 }, { 21600, 21600 } }
2103 };
2104 static const SvxMSDffHandle mso_sptCircularArrowHandle[] =
2105 {
2106 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
2107 		10800, 0x100, 10800, 10800, 10800, 10800, 0xff4c0000, 0x00b40000 },
2108 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
2109 		0x102, 0x101, 10800, 10800, 0, 10800, 0xff4c0000, 0x00b40000 }
2110 };
2111 static const mso_CustomShape msoCircularArrow =
2112 {
2113 	(SvxMSDffVertPair*)mso_sptCircularArrowVert, sizeof( mso_sptCircularArrowVert ) / sizeof( SvxMSDffVertPair ),
2114 	(sal_uInt16*)mso_sptCircularArrowSegm, sizeof( mso_sptCircularArrowSegm ) >> 1,
2115 	(SvxMSDffCalculationData*)mso_sptCircularArrowCalc, sizeof( mso_sptCircularArrowCalc ) / sizeof( SvxMSDffCalculationData ),
2116 	(sal_Int32*)mso_sptCircularArrowDefault,
2117 	(SvxMSDffTextRectangles*)mso_sptCircularArrowTextRect, sizeof( mso_sptCircularArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
2118 	21600, 21600,
2119 	0x80000000, 0x80000000,
2120 	NULL, 0,
2121 	(SvxMSDffHandle*)mso_sptCircularArrowHandle, sizeof( mso_sptCircularArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
2122 };
2123 
2124 static const SvxMSDffVertPair mso_sptCubeVert[] =
2125 {
2126 	{ 0, 12 MSO_I }, { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }, { 4 MSO_I, 12 MSO_I },
2127 	{ 0, 1 MSO_I }, { 2 MSO_I, 0 },	{ 11 MSO_I, 0 }, { 4 MSO_I, 1 MSO_I },
2128 	{ 4 MSO_I, 12 MSO_I  }, { 4 MSO_I, 1 MSO_I },	{ 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }
2129 };
2130 static const sal_uInt16 mso_sptCubeSegm[] =
2131 {
2132 	0x4000, 0x0005, 0x6001, 0x8000,
2133 	0x4000, 0x0003, 0x6001, 0x8000,
2134 	0x4000, 0x0003, 0x6001, 0x8000
2135 };
2136 static const SvxMSDffCalculationData mso_sptCubeCalc[] =
2137 {
2138 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2139 	{ 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
2140 	{ 0x6000, { DFF_Prop_geoLeft, 0x400, 0 } },
2141 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
2142 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2143 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },	// 5
2144 	{ 0x2001, { 0x405, 1, 2 } },					// 6
2145 	{ 0x6000, { 0x402, 0x406, 0 } },				// 7
2146 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },	// 8
2147 	{ 0x2001, { 0x408, 1, 2 } },					// 9
2148 	{ 0x6000, { 0x401, 0x409, 0 } },				// 10
2149 	{ 0x2000, { DFF_Prop_geoRight, 0, 0 } },		// 11
2150 	{ 0x2000, { DFF_Prop_geoBottom, 0, 0 } }		// 12
2151 };
2152 static const SvxMSDffTextRectangles mso_sptCubeTextRect[] =
2153 {
2154 	{ { 0, 1 MSO_I }, { 4 MSO_I, 12 MSO_I } }
2155 };
2156 static const SvxMSDffHandle mso_sptCubeHandle[] =
2157 {
2158 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2159 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
2160 };
2161 static const SvxMSDffVertPair mso_sptCubeGluePoints[] =
2162 {
2163 	{ 7 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I }, { 0, 10 MSO_I }, { 6 MSO_I, 21600 }, { 4 MSO_I, 10 MSO_I }, { 21600, 9 MSO_I }
2164 };
2165 static const mso_CustomShape msoCube =
2166 {
2167 	(SvxMSDffVertPair*)mso_sptCubeVert, sizeof( mso_sptCubeVert ) / sizeof( SvxMSDffVertPair ),
2168 	(sal_uInt16*)mso_sptCubeSegm, sizeof( mso_sptCubeSegm ) >> 1,
2169 	(SvxMSDffCalculationData*)mso_sptCubeCalc, sizeof( mso_sptCubeCalc ) / sizeof( SvxMSDffCalculationData ),
2170 	(sal_Int32*)mso_sptDefault5400,
2171 	(SvxMSDffTextRectangles*)mso_sptCubeTextRect, sizeof( mso_sptCubeTextRect ) / sizeof( SvxMSDffTextRectangles ),
2172 	21600, 21600,
2173 	10800, 10800,
2174 	(SvxMSDffVertPair*)mso_sptCubeGluePoints, sizeof( mso_sptCubeGluePoints ) / sizeof( SvxMSDffVertPair ),
2175 	(SvxMSDffHandle*)mso_sptCubeHandle, sizeof( mso_sptCubeHandle ) / sizeof( SvxMSDffHandle )
2176 };
2177 
2178 static const SvxMSDffVertPair mso_sptBevelVert[] =
2179 {
2180 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2181 	{ 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2182 	{ 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2183 	{ 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2184 	{ 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2185 };
2186 static const sal_uInt16 mso_sptBevelSegm[] =
2187 {
2188 	0x4000, 0x0003, 0x6001, 0x8000,
2189 	0x4000, 0x0003, 0x6001, 0x8000,
2190 	0x4000, 0x0003, 0x6001, 0x8000,
2191 	0x4000, 0x0003, 0x6001, 0x8000,
2192 	0x4000, 0x0003, 0x6001, 0x8000
2193 };
2194 static const SvxMSDffCalculationData mso_sptBevelCalc[] =
2195 {
2196 	{ 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2197 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2198 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2199 };
2200 
2201 static const SvxMSDffTextRectangles mso_sptBevelTextRect[] =
2202 {
2203 	{ { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2204 };
2205 static const SvxMSDffHandle mso_sptBevelHandle[] =
2206 {
2207 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2208 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
2209 };
2210 static const mso_CustomShape msoBevel =
2211 {
2212 	(SvxMSDffVertPair*)mso_sptBevelVert, sizeof( mso_sptBevelVert ) / sizeof( SvxMSDffVertPair ),
2213 	(sal_uInt16*)mso_sptBevelSegm, sizeof( mso_sptBevelSegm ) >> 1,
2214 	(SvxMSDffCalculationData*)mso_sptBevelCalc, sizeof( mso_sptBevelCalc ) / sizeof( SvxMSDffCalculationData ),
2215 	(sal_Int32*)mso_sptDefault2700,
2216 	(SvxMSDffTextRectangles*)mso_sptBevelTextRect, sizeof( mso_sptBevelTextRect ) / sizeof( SvxMSDffTextRectangles ),
2217 	21600, 21600,
2218 	10800, 10800,
2219 	NULL, 0,
2220 	(SvxMSDffHandle*)mso_sptBevelHandle, sizeof( mso_sptBevelHandle ) / sizeof( SvxMSDffHandle )
2221 };
2222 
2223 static const SvxMSDffVertPair mso_sptFoldedCornerVert[] =	// adjustment1 : x 10800 - 21600
2224 {
2225 	{ 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I }, { 0 MSO_I, 21600 },
2226 	{ 0, 21600 }, { 0 MSO_I, 21600 }, { 3 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I },
2227 	{ 10 MSO_I, 11 MSO_I }, { 21600, 0 MSO_I }
2228 };
2229 static const sal_uInt16 mso_sptFoldedCornerSegm[] =
2230 {
2231 	0x4000, 0x0004, 0x6001, 0x8000,
2232 	0x4000, 0x0001, 0x2001, 0x6001, 0x8000
2233 };
2234 static const SvxMSDffCalculationData mso_sptFoldedCornerCalc[] =
2235 {
2236 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2237 	{ 0x8000, { 21600, 0, 0x400 } },
2238 	{ 0x2001, { 0x0401, 8000, 10800 } },
2239 	{ 0x8000, { 21600, 0, 0x0402 } },
2240 	{ 0x2001, { 0x0401, 1, 2 } },
2241 	{ 0x2001, { 0x0401, 1, 4 } },
2242 	{ 0x2001, { 0x0401, 1, 7 } },
2243 	{ 0x2001, { 0x0401, 1, 16 } },
2244 	{ 0x6000, { 0x0403, 0x405, 0 } },
2245 	{ 0x6000, { 0x0400, 0x406, 0 } },
2246 	{ 0x8000, { 21600, 0, 0x404 } },
2247 	{ 0x6000, { 0x400, 0x407, 0 } }
2248 };
2249 static const sal_Int32 mso_sptFoldedCornerDefault[] =
2250 {
2251 	1, 18900
2252 };
2253 static const SvxMSDffTextRectangles mso_sptFoldedCornerTextRect[] =
2254 {
2255 	{ { 0, 0 }, { 21600, 11 MSO_I } }
2256 };
2257 static const SvxMSDffHandle mso_sptFoldedCornerHandle[] =
2258 {
2259 	{	MSDFF_HANDLE_FLAGS_RANGE,
2260 		0x100, 1, 10800, 10800, 10800, 21600, 0x80000000, 0x7fffffff }
2261 };
2262 static const mso_CustomShape msoFoldedCorner =
2263 {
2264 	(SvxMSDffVertPair*)mso_sptFoldedCornerVert, sizeof( mso_sptFoldedCornerVert ) / sizeof( SvxMSDffVertPair ),
2265 	(sal_uInt16*)mso_sptFoldedCornerSegm, sizeof( mso_sptFoldedCornerSegm ) >> 1,
2266 	(SvxMSDffCalculationData*)mso_sptFoldedCornerCalc, sizeof( mso_sptFoldedCornerCalc ) / sizeof( SvxMSDffCalculationData ),
2267 	(sal_Int32*)mso_sptFoldedCornerDefault,
2268 	(SvxMSDffTextRectangles*)mso_sptFoldedCornerTextRect, sizeof( mso_sptFoldedCornerTextRect ) / sizeof( SvxMSDffTextRectangles ),
2269 	21600, 21600,
2270 	0x80000000, 0x80000000,
2271 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
2272 	(SvxMSDffHandle*)mso_sptFoldedCornerHandle, sizeof( mso_sptFoldedCornerHandle ) / sizeof( SvxMSDffHandle )
2273 };
2274 
2275 static const SvxMSDffVertPair mso_sptActionButtonBlankVert[] =
2276 {
2277 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2278 	{ 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2279 	{ 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2280 	{ 21600, 21600 }, { 0, 21600 },	{ 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2281 	{ 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2282 };
2283 static const sal_uInt16 mso_sptActionButtonBlankSegm[] =
2284 {
2285 	0x4000, 0x0003, 0x6001, 0x8000,
2286 	0x4000, 0x0003, 0x6001, 0x8000,
2287 	0x4000, 0x0003, 0x6001, 0x8000,
2288 	0x4000, 0x0003, 0x6001, 0x8000,
2289 	0x4000, 0x0003, 0x6001, 0x8000
2290 };
2291 static const SvxMSDffCalculationData mso_sptActionButtonBlankCalc[] =
2292 {
2293 	{ 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2294 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2295 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2296 };
2297 static const SvxMSDffTextRectangles mso_sptActionButtonBlankTextRect[] =
2298 {
2299 	{ { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2300 };
2301 static const SvxMSDffHandle mso_sptButtonHandle[] =
2302 {
2303 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2304 		0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff }
2305 };
2306 static const mso_CustomShape msoActionButtonBlank =
2307 {
2308 	(SvxMSDffVertPair*)mso_sptActionButtonBlankVert, sizeof( mso_sptActionButtonBlankVert ) / sizeof( SvxMSDffVertPair ),
2309 	(sal_uInt16*)mso_sptActionButtonBlankSegm, sizeof( mso_sptActionButtonBlankSegm ) >> 1,
2310 	(SvxMSDffCalculationData*)mso_sptActionButtonBlankCalc, sizeof( mso_sptActionButtonBlankCalc ) / sizeof( SvxMSDffCalculationData ),
2311 	(sal_Int32*)mso_sptDefault1400,
2312 	(SvxMSDffTextRectangles*)mso_sptActionButtonBlankTextRect, sizeof( mso_sptActionButtonBlankTextRect ) / sizeof( SvxMSDffTextRectangles ),
2313 	21600, 21600,
2314 	10800, 10800,
2315 	NULL, 0,
2316 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2317 };
2318 
2319 static const SvxMSDffTextRectangles mso_sptActionButtonTextRect[] =
2320 {
2321 	{ { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
2322 };
2323 static const SvxMSDffVertPair mso_sptActionButtonHomeVert[] =
2324 {
2325 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2326 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2327 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2328 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2329 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2330 
2331 	{ 7 MSO_I, 0xa MSO_I }, { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },
2332 	{ 0x12 MSO_I, 0x14 MSO_I }, { 0x16 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2333 	{ 0x1c MSO_I, 0x1a MSO_I },	{ 0x1c MSO_I, 8 MSO_I }, { 0x1e MSO_I, 8 MSO_I },
2334 
2335 	{ 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },{ 0x12 MSO_I, 0x14 MSO_I },
2336 
2337 	{ 0x20 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x1a MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2338 	{ 0x18 MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x20 MSO_I, 0x1a MSO_I }
2339 
2340 };
2341 static const sal_uInt16 mso_sptActionButtonHomeSegm[] =
2342 {
2343 	0x4000, 0x0003, 0x6001, 0x8000,
2344 	0x4000, 0x0003, 0x6001, 0x8000,
2345 	0x4000, 0x0003, 0x6001, 0x8000,
2346 	0x4000, 0x0003, 0x6001, 0x8000,
2347 	0x4000, 0x0003, 0x6001, 0x8000,
2348 	0x4000, 0x000a, 0x6001, 0x8000,
2349 	0x4000, 0x0003, 0x6001, 0x8000,
2350 	0x4000, 0x0007, 0x6001, 0x8000
2351 };
2352 static const SvxMSDffCalculationData mso_sptActionButtonHomeCalc[] =	// adj value 0 - 5400
2353 {
2354 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2355 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2356 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2357 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2358 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2359 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2360 	{ 0x2001, { 0x0405, 1, 10800 } },							// scaling	 6
2361 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2362 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2363 
2364 	{ 0x4001, { -8000, 0x0406, 1 } },	// 9
2365 	{ 0x6000, { 0x0409, 0x0408, 0 } },	// a
2366 	{ 0x4001, { 2960, 0x0406, 1 } },	// b
2367 	{ 0x6000, { 0x040b, 0x0407, 0 } },	// c
2368 	{ 0x4001, { -5000, 0x0406, 1 } },	// d
2369 	{ 0x6000, { 0x040d, 0x0408, 0 } },	// e
2370 	{ 0x4001, { -7000, 0x0406, 1 } },	// f
2371 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2372 	{ 0x4001, { 5000, 0x0406, 1 } },	// 11
2373 	{ 0x6000, { 0x0411, 0x0407, 0 } },	// 12
2374 	{ 0x4001, { -2960, 0x0406, 1 } },	// 13
2375 	{ 0x6000, { 0x0413, 0x0408, 0 } },	// 14
2376 	{ 0x4001, { 8000, 0x0406, 1 } },	// 15
2377 	{ 0x6000, { 0x0415,0x0407, 0 } },	// 16
2378 	{ 0x4001, { 6100, 0x0406, 1 } },	// 17
2379 	{ 0x6000, { 0x0417,0x0407, 0 } },	// 18
2380 	{ 0x4001, { 8260, 0x0406, 1 } },	// 19
2381 	{ 0x6000, { 0x0419, 0x0408, 0 } },	// 1a
2382 	{ 0x4001, { -6100, 0x0406, 1 } },	// 1b
2383 	{ 0x6000, { 0x041b, 0x0407, 0 } },	// 1c
2384 	{ 0x4001, { -8000, 0x0406, 1 } },	// 1d
2385 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
2386 	{ 0x4001, { -1060, 0x0406, 1 } },	// 1f
2387 	{ 0x6000, { 0x041f, 0x0407, 0 } },	// 20
2388 	{ 0x4001, { 1060, 0x0406, 1 } },	// 21
2389 	{ 0x6000, { 0x0421, 0x0407, 0 } },	// 22
2390 	{ 0x4001, { 4020, 0x0406, 1 } },	// 23
2391 	{ 0x6000, { 0x0423, 0x0408, 0 } }	// 24
2392 
2393 };
2394 static const mso_CustomShape msoActionButtonHome =
2395 {
2396 	(SvxMSDffVertPair*)mso_sptActionButtonHomeVert, sizeof( mso_sptActionButtonHomeVert ) / sizeof( SvxMSDffVertPair ),
2397 	(sal_uInt16*)mso_sptActionButtonHomeSegm, sizeof( mso_sptActionButtonHomeSegm ) >> 1,
2398 	(SvxMSDffCalculationData*)mso_sptActionButtonHomeCalc, sizeof( mso_sptActionButtonHomeCalc ) / sizeof( SvxMSDffCalculationData ),
2399 	(sal_Int32*)mso_sptDefault1400,
2400 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2401 	21600, 21600,
2402 	10800, 10800,
2403 	NULL, 0,
2404 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2405 };
2406 
2407 static const SvxMSDffVertPair mso_sptActionButtonHelpVert[] =
2408 {
2409 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2410 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2411 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2412 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2413 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I },
2414 	{ 7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0xc MSO_I },
2415 	{ 0x12 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x16 MSO_I },								// pp
2416 	{ 0x12 MSO_I, 0x18 MSO_I },	{ 0x1a MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I },		// ccp
2417 	{ 0x1e MSO_I, 8 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x20 MSO_I, 0x24 MSO_I },	// ccp
2418 	{ 0x20 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I },	// ccp
2419 	{ 0x2c MSO_I, 0x2a MSO_I }, { 0x2e MSO_I, 0x26 MSO_I }, { 0x2e MSO_I, 0x24 MSO_I },	// ccp
2420 	{ 0x30 MSO_I, 0x24 MSO_I }, { 0x30 MSO_I, 0x32 MSO_I }, { 0x34 MSO_I, 0x36 MSO_I },	// ccp
2421 	{ 7 MSO_I, 0x36 MSO_I },															// p
2422 	{ 0x12 MSO_I, 0x36 MSO_I }, { 0x1c MSO_I, 0x32 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I },	// ccp
2423 	{ 0x1c MSO_I, 0x38 MSO_I }, { 0x3a MSO_I, 0x3c MSO_I }, { 0x12 MSO_I, 0x3c MSO_I },	// ccp
2424 	{ 7 MSO_I, 0x3c MSO_I }, { 0x34 MSO_I, 8 MSO_I }, { 0x34 MSO_I, 0x16 MSO_I },		// ccp
2425 	{ 0x34 MSO_I, 0x14 MSO_I }
2426 };
2427 static const sal_uInt16 mso_sptActionButtonHelpSegm[] =
2428 {
2429 	0x4000, 0x0003, 0x6001, 0x8000,
2430 	0x4000, 0x0003, 0x6001, 0x8000,
2431 	0x4000, 0x0003, 0x6001, 0x8000,
2432 	0x4000, 0x0003, 0x6001, 0x8000,
2433 	0x4000, 0x0003, 0x6001, 0x8000,
2434 	0x4000, 0xa704, 0x6000, 0x8000,
2435 	0x4000, 0x0001, 0x2004, 0x0001, 0x2004, 0x0001, 0x6001, 0x8000
2436 };
2437 static const SvxMSDffCalculationData mso_sptActionButtonHelpCalc[] =	// adj value 0 - 5400
2438 {
2439 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2440 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2441 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2442 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2443 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2444 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2445 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2446 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2447 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2448 
2449 	{ 0x4001, { -1690, 0x0406, 1 } },	// 9
2450 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2451 	{ 0x4001, { 4600, 0x0406, 1 } },	// b
2452 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2453 	{ 0x4001, { 1690, 0x0406, 1 } },	// d
2454 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2455 	{ 0x4001, { 7980, 0x0406, 1 } },	// f
2456 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2457 	{ 0x4001, { 1270, 0x0406, 1 } },	// 11
2458 	{ 0x6000, { 0x0411, 0x0407, 0 } },	// 12
2459 	{ 0x4001, { 4000, 0x0406, 1 } },	// 13
2460 	{ 0x6000, { 0x0413, 0x0408, 0 } },	// 14
2461 	{ 0x4001, { 1750, 0x0406, 1 } },	// 15
2462 	{ 0x6000, { 0x0415, 0x0408, 0 } },	// 16
2463 	{ 0x4001, { 800, 0x0406, 1 } },		// 17
2464 	{ 0x6000, { 0x0417, 0x0408, 0 } },	// 18
2465 	{ 0x4001, { 1650, 0x0406, 1 } },	// 19
2466 	{ 0x6000, { 0x0419, 0x0407, 0 } },	// 1a
2467 	{ 0x4001, { 2340, 0x0406, 1 } },	// 1b
2468 	{ 0x6000, { 0x041b, 0x0407, 0 } },	// 1c
2469 	{ 0x4001, { 3640, 0x0406, 1 } },	// 1d
2470 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
2471 	{ 0x4001, { 4670, 0x0406, 1 } },	// 1f
2472 	{ 0x6000, { 0x041f, 0x0407, 0 } },	// 20
2473 	{ 0x4001, { -1570, 0x0406, 1 } },	// 21
2474 	{ 0x6000, { 0x0421, 0x0408, 0 } },	// 22
2475 	{ 0x4001, { -3390, 0x0406, 1 } },	// 23
2476 	{ 0x6000, { 0x0423, 0x0408, 0 } },	// 24
2477 	{ 0x4001, { -6050, 0x0406, 1 } },	// 25
2478 	{ 0x6000, { 0x0425, 0x0408, 0 } },	// 26
2479 	{ 0x4001, { 2540, 0x0406, 1 } },	// 27
2480 	{ 0x6000, { 0x0427, 0x0407, 0 } },	// 28
2481 	{ 0x4001, { -8050, 0x0406, 1 } },	// 29
2482 	{ 0x6000, { 0x0429, 0x0408, 0 } },	// 2a
2483 	{ 0x4001, { -2540, 0x0406, 1 } },	// 2b
2484 	{ 0x6000, { 0x042b, 0x0407, 0 } },	// 2c
2485 	{ 0x4001, { -4460, 0x0406, 1 } },	// 2d
2486 	{ 0x6000, { 0x042d, 0x0407, 0 } },	// 2e
2487 	{ 0x4001, { -2330, 0x0406, 1 } },	// 2f
2488 	{ 0x6000, { 0x042f, 0x0407, 0 } },	// 30
2489 	{ 0x4001, { -4700, 0x0406, 1 } },	// 31
2490 	{ 0x6000, { 0x0431, 0x0408, 0 } },	// 32
2491 	{ 0x4001, { -1270, 0x0406, 1 } },	// 33
2492 	{ 0x6000, { 0x0433, 0x0407, 0 } },	// 34
2493 	{ 0x4001, { -5720, 0x0406, 1 } },	// 35
2494 	{ 0x6000, { 0x0435, 0x0408, 0 } },	// 36
2495 	{ 0x4001, { -2540, 0x0406, 1 } },	// 37
2496 	{ 0x6000, { 0x0437, 0x0408, 0 } },	// 38
2497 	{ 0x4001, { 1800, 0x0406, 1 } },	// 39
2498 	{ 0x6000, { 0x0439, 0x0407, 0 } },	// 3a
2499 	{ 0x4001, { -1700, 0x0406, 1 } },	// 3b
2500 	{ 0x6000, { 0x043b, 0x0408, 0 } },	// 3c
2501 	{ 0x4001, { 6290, 0x0406, 1 } },	// 3d
2502 	{ 0x6000, { 0x043d, 0x0408, 0 } }	// 3e
2503 };
2504 static const mso_CustomShape msoActionButtonHelp =
2505 {
2506 	(SvxMSDffVertPair*)mso_sptActionButtonHelpVert, sizeof( mso_sptActionButtonHelpVert ) / sizeof( SvxMSDffVertPair ),
2507 	(sal_uInt16*)mso_sptActionButtonHelpSegm, sizeof( mso_sptActionButtonHelpSegm ) >> 1,
2508 	(SvxMSDffCalculationData*)mso_sptActionButtonHelpCalc, sizeof( mso_sptActionButtonHelpCalc ) / sizeof( SvxMSDffCalculationData ),
2509 	(sal_Int32*)mso_sptDefault1400,
2510 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2511 	21600, 21600,
2512 	10800, 10800,
2513 	NULL, 0,
2514 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2515 };
2516 
2517 static const SvxMSDffVertPair mso_sptActionButtonInformationVert[] =
2518 {
2519 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2520 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2521 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2522 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2523 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2524 	{ 0x7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x8 MSO_I }, { 0x7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0x7 MSO_I, 0xc MSO_I },
2525 	{ 0x7 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x14 MSO_I },
2526 	{ 0x1a MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0x20 MSO_I },
2527 	{ 0x22 MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x20 MSO_I }, { 0x26 MSO_I, 0x20 MSO_I },
2528 	{ 0x26 MSO_I, 0x28 MSO_I }, { 0x1a MSO_I, 0x28 MSO_I }
2529 };
2530 static const sal_uInt16 mso_sptActionButtonInformationSegm[] =
2531 {
2532 	0x4000, 0x0003, 0x6001, 0x8000,
2533 	0x4000, 0x0003, 0x6001, 0x8000,
2534 	0x4000, 0x0003, 0x6001, 0x8000,
2535 	0x4000, 0x0003, 0x6001, 0x8000,
2536 	0x4000, 0x0003, 0x6001, 0x8000,
2537 	0x4000, 0xa704, 0x6000, 0x8000,
2538 	0x4000, 0xa704, 0x6000, 0x8000,
2539 	0x4000, 0x0009, 0x6001, 0x8000
2540 };
2541 static const SvxMSDffCalculationData mso_sptActionButtonInformationCalc[] =	// adj value 0 - 5400
2542 {
2543 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2544 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2545 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2546 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2547 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2548 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2549 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2550 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2551 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2552 
2553 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
2554 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2555 	{ 0x4001, { -8050, 0x0406, 1 } },	// b
2556 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2557 	{ 0x4001, { 8050, 0x0406, 1 } },	// d
2558 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2559 	{ 0x4001, { 8050, 0x0406, 1 } },	// f
2560 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2561 
2562 	{ 0x4001, { -2060, 0x0406, 1 } },	// 11
2563 	{ 0x6000, { 0x0411, 0x0407, 0 } },	// 12
2564 	{ 0x4001, { -7620, 0x0406, 1 } },	// 13
2565 	{ 0x6000, { 0x0413, 0x0408, 0 } },	// 14
2566 	{ 0x4001, { 2060, 0x0406, 1 } },	// 15
2567 	{ 0x6000, { 0x0415, 0x0407, 0 } },	// 16
2568 	{ 0x4001, { -3500, 0x0406, 1 } },	// 17
2569 	{ 0x6000, { 0x0417, 0x0408, 0 } },	// 18
2570 
2571 	{ 0x4001, { -2960, 0x0406, 1 } },	// 19
2572 	{ 0x6000, { 0x0419, 0x0407, 0 } },	// 1a
2573 	{ 0x4001, { -2960, 0x0406, 1 } },	// 1b
2574 	{ 0x6000, { 0x041b, 0x0408, 0 } },	// 1c
2575 	{ 0x4001, { 1480, 0x0406, 1 } },	// 1d
2576 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
2577 	{ 0x4001, { 5080, 0x0406, 1 } },	// 1f
2578 	{ 0x6000, { 0x041f, 0x0408, 0 } },	// 20
2579 	{ 0x4001, { 2960, 0x0406, 1 } },	// 21
2580 	{ 0x6000, { 0x0421, 0x0407, 0 } },	// 22
2581 	{ 0x4001, { 6140, 0x0406, 1 } },	// 23
2582 	{ 0x6000, { 0x0423, 0x0408, 0 } },	// 24
2583 	{ 0x4001, { -1480, 0x0406, 1 } },	// 25
2584 	{ 0x6000, { 0x0425, 0x0407, 0 } },	// 26
2585 	{ 0x4001, { -1920, 0x0406, 1 } },	// 27
2586 	{ 0x6000, { 0x0427, 0x0408, 0 } },	// 28
2587 
2588 	{ 0x4001, { -5560, 0x0406, 1 } },	// 29
2589 	{ 0x6000, { 0x0429, 0x0408, 0 } },	// 2a
2590 
2591 };
2592 static const mso_CustomShape msoActionButtonInformation =
2593 {
2594 	(SvxMSDffVertPair*)mso_sptActionButtonInformationVert, sizeof( mso_sptActionButtonInformationVert ) / sizeof( SvxMSDffVertPair ),
2595 	(sal_uInt16*)mso_sptActionButtonInformationSegm, sizeof( mso_sptActionButtonInformationSegm ) >> 1,
2596 	(SvxMSDffCalculationData*)mso_sptActionButtonInformationCalc, sizeof( mso_sptActionButtonInformationCalc ) / sizeof( SvxMSDffCalculationData ),
2597 	(sal_Int32*)mso_sptDefault1400,
2598 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2599 	21600, 21600,
2600 	10800, 10800,
2601 	NULL, 0,
2602 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2603 };
2604 
2605 static const SvxMSDffVertPair mso_sptActionButtonBackPreviousVert[] =
2606 {
2607 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2608 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2609 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2610 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I,4 MSO_I },
2611 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2612 
2613 	{ 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }
2614 };
2615 static const sal_uInt16 mso_sptActionButtonForwardBackSegm[] =
2616 {
2617 	0x4000, 0x0003, 0x6001, 0x8000,
2618 	0x4000, 0x0003, 0x6001, 0x8000,
2619 	0x4000, 0x0003, 0x6001, 0x8000,
2620 	0x4000, 0x0003, 0x6001, 0x8000,
2621 	0x4000, 0x0003, 0x6001, 0x8000,
2622 	0x4000, 0x0002, 0x6001, 0x8000
2623 };
2624 static const SvxMSDffCalculationData mso_sptActionButtonForwardBackCalc[] =	// adj value 0 - 5400
2625 {
2626 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2627 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2628 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2629 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2630 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2631 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2632 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2633 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2634 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2635 
2636 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
2637 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2638 	{ 0x4001, { -8050, 0x0406, 1 } },	// b
2639 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2640 	{ 0x4001, { 8050, 0x0406, 1 } },	// d
2641 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2642 	{ 0x4001, { 8050, 0x0406, 1 } },	// f
2643 	{ 0x6000, { 0x040f, 0x0408, 0 } }	// 10
2644 };
2645 static const mso_CustomShape msoActionButtonBackPrevious =
2646 {
2647 	(SvxMSDffVertPair*)mso_sptActionButtonBackPreviousVert, sizeof( mso_sptActionButtonBackPreviousVert ) / sizeof( SvxMSDffVertPair ),
2648 	(sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2649 	(SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ),
2650 	(sal_Int32*)mso_sptDefault1400,
2651 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2652 	21600, 21600,
2653 	10800, 10800,
2654 	NULL, 0,
2655 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2656 };
2657 
2658 static const SvxMSDffVertPair mso_sptActionButtonForwardNextVert[] =
2659 {
2660 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2661 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2662 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2663 	{ 21600, 21600 }, { 0, 21600 },	{ 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2664 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2665 
2666 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0xa MSO_I, 0x10 MSO_I }
2667 };
2668 static const mso_CustomShape msoActionButtonForwardNext =
2669 {
2670 	(SvxMSDffVertPair*)mso_sptActionButtonForwardNextVert, sizeof( mso_sptActionButtonForwardNextVert ) / sizeof( SvxMSDffVertPair ),
2671 	(sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2672 	(SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ),
2673 	(sal_Int32*)mso_sptDefault1400,
2674 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2675 	21600, 21600,
2676 	10800, 10800,
2677 	NULL, 0,
2678 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2679 };
2680 
2681 static const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] =
2682 {
2683 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2684 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2685 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2686 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2687 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2688 
2689 	{ 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2690 	{ 0x14 MSO_I, 0xc MSO_I }, { 0x14 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }
2691 };
2692 static const sal_uInt16 mso_sptActionButtonBeginningEndSegm[] =
2693 {
2694 	0x4000, 0x0003, 0x6001, 0x8000,
2695 	0x4000, 0x0003, 0x6001, 0x8000,
2696 	0x4000, 0x0003, 0x6001, 0x8000,
2697 	0x4000, 0x0003, 0x6001, 0x8000,
2698 	0x4000, 0x0003, 0x6001, 0x8000,
2699 
2700 	0x4000, 0x0002, 0x6001, 0x8000,
2701 	0x4000, 0x0003, 0x6001, 0x8000
2702 };
2703 static const SvxMSDffCalculationData mso_sptActionButtonBeginningEndCalc[] =	// adj value 0 - 5400
2704 {
2705 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2706 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2707 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2708 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2709 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2710 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2711 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2712 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2713 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2714 
2715 	{ 0x4001, { -4020, 0x0406, 1 } },	// 9
2716 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2717 	{ 0x4001, { -8050, 0x0406, 1 } },	// b
2718 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2719 	{ 0x4001, { 8050, 0x0406, 1 } },	// d
2720 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2721 	{ 0x4001, { 8050, 0x0406, 1 } },	// f
2722 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2723 
2724 	{ 0x4001, { -8050, 0x0406, 1 } },	// 11
2725 	{ 0x6000, { 0x0411, 0x0407, 0 } },	// 12
2726 	{ 0x4001, { -6140, 0x0406, 1 } },	// 13
2727 	{ 0x6000, { 0x0413, 0x0407, 0 } },	// 14
2728 
2729 
2730 	{ 0x4001, { 4020, 0x0406, 1 } },	// 15
2731 	{ 0x6000, { 0x0415, 0x0407, 0 } },	// 16
2732 	{ 0x4001, { 6140, 0x0406, 1 } },	// 17
2733 	{ 0x6000, { 0x0417, 0x0407, 0 } }	// 18
2734 };
2735 static const mso_CustomShape msoActionButtonBeginning =
2736 {
2737 	(SvxMSDffVertPair*)mso_sptActionButtonBeginningVert, sizeof( mso_sptActionButtonBeginningVert ) / sizeof( SvxMSDffVertPair ),
2738 	(sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2739 	(SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
2740 	(sal_Int32*)mso_sptDefault1400,
2741 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2742 	21600, 21600,
2743 	10800, 10800,
2744 	NULL, 0,
2745 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2746 };
2747 
2748 static const SvxMSDffVertPair mso_sptActionButtonEndVert[] =
2749 {
2750 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2751 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2752 	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2753 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2754 	{ 0, 21600 }, { 0, 0 },	{ 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2755 
2756 	{ 0x16 MSO_I, 8 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2757 
2758 	{ 0x18 MSO_I, 0xc MSO_I }, { 0x18 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0xc MSO_I }
2759 };
2760 static const mso_CustomShape msoActionButtonEnd =
2761 {
2762 	(SvxMSDffVertPair*)mso_sptActionButtonEndVert, sizeof( mso_sptActionButtonEndVert ) / sizeof( SvxMSDffVertPair ),
2763 	(sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2764 	(SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
2765 	(sal_Int32*)mso_sptDefault1400,
2766 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2767 	21600, 21600,
2768 	10800, 10800,
2769 	NULL, 0,
2770 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2771 };
2772 
2773 static const SvxMSDffVertPair mso_sptActionButtonReturnVert[] =
2774 {
2775 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2776 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2777 	{ 21600, 0 }, { 21600,	21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2778 	{ 21600, 21600 }, { 0, 21600 },	{ 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2779 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2780 
2781 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I },	{ 0xe MSO_I, 0x10 MSO_I },							// ppp
2782 	{ 0xe MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 0x16 MSO_I },						// ccp
2783 	{ 7 MSO_I, 0x16 MSO_I },																				// p
2784 	{ 0x1a MSO_I, 0x16 MSO_I }, { 0x1c MSO_I, 0x12 MSO_I }, { 0x1c MSO_I, 0x10 MSO_I },						// ccp
2785 	{ 0x1c MSO_I, 0xc MSO_I }, { 7 MSO_I, 0xc MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0xc MSO_I },// pppp
2786 	{ 0x24 MSO_I, 0xc MSO_I }, { 0x24 MSO_I, 0x10 MSO_I },													// pp
2787 	{ 0x24 MSO_I, 0x26 MSO_I },	{ 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I },						// ccp
2788 	{ 0x18 MSO_I, 0x2a MSO_I },																				// p
2789 	{ 0x2c MSO_I, 0x2a MSO_I }, { 0xa MSO_I, 0x26 MSO_I }, { 0xa MSO_I,	0x10 MSO_I }						// ccp
2790 };
2791 static const sal_uInt16 mso_sptActionButtonReturnSegm[] =
2792 {
2793 	0x4000, 0x0003, 0x6001, 0x8000,
2794 	0x4000, 0x0003, 0x6001, 0x8000,
2795 	0x4000, 0x0003, 0x6001, 0x8000,
2796 	0x4000, 0x0003, 0x6001, 0x8000,
2797 	0x4000, 0x0003, 0x6001, 0x8000,
2798 	0x4000, 0x0002, 0x2001, 0x0001, 0x2001, 0x0006,0x2001, 0x0001, 0x2001, 0x6001, 0x8000
2799 };
2800 static const SvxMSDffCalculationData mso_sptActionButtonReturnCalc[] =	// adj value 0 - 5400
2801 {
2802 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2803 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2804 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2805 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2806 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2807 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2808 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2809 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2810 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2811 
2812 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
2813 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2814 	{ 0x4001, { -3800, 0x0406, 1 } },	// b
2815 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2816 	{ 0x4001, { -4020, 0x0406, 1 } },	// d
2817 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2818 	{ 0x4001, { 2330, 0x0406, 1 } },	// f
2819 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2820 	{ 0x4001, { 3390, 0x0406, 1 } },	// 11
2821 	{ 0x6000, { 0x0411, 0x0408, 0 } },	// 12
2822 	{ 0x4001, { -3100, 0x0406, 1 } },	// 13
2823 	{ 0x6000, { 0x0413, 0x0407, 0 } },	// 14
2824 	{ 0x4001, { 4230, 0x0406, 1 } },	// 15
2825 	{ 0x6000, { 0x0415, 0x0408, 0 } },	// 16
2826 	{ 0x4001, { -1910, 0x0406, 1 } },	// 17
2827 	{ 0x6000, { 0x0417, 0x0407, 0 } },	// 18
2828 	{ 0x4001, { 1190, 0x0406, 1 } },	// 19
2829 	{ 0x6000, { 0x0419, 0x0407, 0 } },	// 1a
2830 	{ 0x4001, { 2110, 0x0406, 1 } },	// 1b
2831 	{ 0x6000, { 0x041b, 0x0407, 0 } },	// 1c
2832 	{ 0x4001, { 4030, 0x0406, 1 } },	// 1d
2833 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
2834 	{ 0x4001, { -7830, 0x0406, 1 } },	// 1f
2835 	{ 0x6000, { 0x041f, 0x0408, 0 } },	// 20
2836 	{ 0x4001, { 8250, 0x0406, 1 } },	// 21
2837 	{ 0x6000, { 0x0421, 0x0407, 0 } },	// 22
2838 	{ 0x4001, { 6140, 0x0406, 1 } },	// 23
2839 	{ 0x6000, { 0x0423, 0x0407, 0 } },	// 24
2840 	{ 0x4001, { 5510, 0x0406, 1 } },	// 25
2841 	{ 0x6000, { 0x0425, 0x0408, 0 } },	// 26
2842 	{ 0x4001, { 3180, 0x0406, 1 } },	// 27
2843 	{ 0x6000, { 0x0427, 0x0407, 0 } },	// 28
2844 	{ 0x4001, { 8450, 0x0406, 1 } },	// 29
2845 	{ 0x6000, { 0x0429, 0x0408, 0 } },	// 2a
2846 	{ 0x4001, { -5090, 0x0406, 1 } },	// 2b
2847 	{ 0x6000, { 0x042b, 0x0407, 0 } }	// 2c
2848 };
2849 static const mso_CustomShape msoActionButtonReturn =
2850 {
2851 	(SvxMSDffVertPair*)mso_sptActionButtonReturnVert, sizeof( mso_sptActionButtonReturnVert ) / sizeof( SvxMSDffVertPair ),
2852 	(sal_uInt16*)mso_sptActionButtonReturnSegm, sizeof( mso_sptActionButtonReturnSegm ) >> 1,
2853 	(SvxMSDffCalculationData*)mso_sptActionButtonReturnCalc, sizeof( mso_sptActionButtonReturnCalc ) / sizeof( SvxMSDffCalculationData ),
2854 	(sal_Int32*)mso_sptDefault1400,
2855 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2856 	21600, 21600,
2857 	10800, 10800,
2858 	NULL, 0,
2859 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2860 };
2861 
2862 static const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] =
2863 {
2864 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2865 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2866 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2867 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2868 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2869 
2870 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2871 	{ 0xa MSO_I, 0x14 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0xe MSO_I, 0x12 MSO_I }
2872 };
2873 static const sal_uInt16 mso_sptActionButtonDocumentSegm[] =
2874 {
2875 	0x4000, 0x0003, 0x6001, 0x8000,
2876 	0x4000, 0x0003, 0x6001, 0x8000,
2877 	0x4000, 0x0003, 0x6001, 0x8000,
2878 	0x4000, 0x0003, 0x6001, 0x8000,
2879 	0x4000, 0x0003, 0x6001, 0x8000,
2880 
2881 	0x4000, 0x0004, 0x6001, 0x8000,
2882 	0x4000, 0x0002, 0x6001, 0x8000
2883 };
2884 static const SvxMSDffCalculationData mso_sptActionButtonDocumentCalc[] =	// adj value 0 - 5400
2885 {
2886 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2887 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2888 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2889 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2890 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2891 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2892 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2893 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2894 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2895 
2896 	{ 0x4001, { -6350, 0x0406, 1 } },	// 9
2897 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2898 	{ 0x4001, { -7830, 0x0406, 1 } },	// b
2899 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2900 	{ 0x4001, { 1690, 0x0406, 1 } },	// d
2901 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2902 	{ 0x4001, { 6350, 0x0406, 1 } },	// f
2903 	{ 0x6000, { 0x040f, 0x0407, 0 } },	// 10
2904 	{ 0x4001, { -3810, 0x0406, 1 } },	// 11
2905 	{ 0x6000, { 0x0411, 0x0408, 0 } },	// 12
2906 	{ 0x4001, { 7830, 0x0406, 1 } },	// 13
2907     { 0x6000, { 0x0413, 0x0408, 0 } }	// 14
2908 };
2909 static const mso_CustomShape msoActionButtonDocument =
2910 {
2911 	(SvxMSDffVertPair*)mso_sptActionButtonDocumentVert, sizeof( mso_sptActionButtonDocumentVert ) / sizeof( SvxMSDffVertPair ),
2912 	(sal_uInt16*)mso_sptActionButtonDocumentSegm, sizeof( mso_sptActionButtonDocumentSegm ) >> 1,
2913 	(SvxMSDffCalculationData*)mso_sptActionButtonDocumentCalc, sizeof( mso_sptActionButtonDocumentCalc ) / sizeof( SvxMSDffCalculationData ),
2914 	(sal_Int32*)mso_sptDefault1400,
2915 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2916 	21600, 21600,
2917 	10800, 10800,
2918 	NULL, 0,
2919 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2920 };
2921 
2922 static const SvxMSDffVertPair mso_sptActionButtonSoundVert[] =
2923 {
2924 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2925 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2926 	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2927 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2928 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2929 
2930 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2931 	{ 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x1a MSO_I, 8 MSO_I },
2932 
2933 	{ 0x18 MSO_I, 0xc MSO_I }, { 0x1a MSO_I, 0x1c MSO_I },
2934 
2935 	{ 0x18 MSO_I, 0x16 MSO_I }, { 0x1a MSO_I, 0x1e MSO_I }
2936 };
2937 static const sal_uInt16 mso_sptActionButtonSoundSegm[] =
2938 {
2939 	0x4000, 0x0003, 0x6001, 0x8000,
2940 	0x4000, 0x0003, 0x6001, 0x8000,
2941 	0x4000, 0x0003, 0x6001, 0x8000,
2942 	0x4000, 0x0003, 0x6001, 0x8000,
2943 	0x4000, 0x0003, 0x6001, 0x8000,
2944 
2945 	0x4000, 0x0005, 0x6001, 0x8000,
2946 	0x4000, 0x0001, 0x8000,
2947 	0x4000, 0x0001, 0x8000,
2948 	0x4000, 0x0001, 0x8000
2949 };
2950 static const SvxMSDffCalculationData mso_sptActionButtonSoundCalc[] =	// adj value 0 - 5400
2951 {
2952 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2953 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2954 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2955 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2956 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2957 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2958 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2959 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2960 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2961 
2962 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
2963 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2964 	{ 0x4001, { -2750, 0x0406, 1 } },	// b
2965 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2966 	{ 0x4001, { -2960, 0x0406, 1 } },	// d
2967 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2968 	{ 0x4001, { 2120, 0x0406, 1 } },	// f
2969 	{ 0x6000, { 0x040f, 0x0407, 0 } },	// 10
2970 	{ 0x4001, { -8050, 0x0406, 1 } },	// 11
2971 	{ 0x6000, { 0x0411, 0x0408, 0 } },	// 12
2972 	{ 0x4001, { 8050, 0x0406, 1 } },	// 13
2973 	{ 0x6000, { 0x0413, 0x0408, 0 } },	// 14
2974 	{ 0x4001, { 2750, 0x0406, 1 } },	// 15
2975 	{ 0x6000, { 0x0415, 0x0408, 0 } },	// 16
2976 	{ 0x4001, { 4020, 0x0406, 1 } },	// 17
2977 	{ 0x6000, { 0x0417, 0x0407, 0 } },	// 18
2978 	{ 0x4001, { 8050, 0x0406, 1 } },	// 19
2979 	{ 0x6000, { 0x0419, 0x0407, 0 } },	// 1a
2980 	{ 0x4001, { -5930, 0x0406, 1 } },	// 1b
2981 	{ 0x6000, { 0x041b, 0x0408, 0 } },	// 1c
2982 	{ 0x4001, { 5930, 0x0406, 1 } },	// 1d
2983 	{ 0x6000, { 0x041d, 0x0408, 0 } }	// 1e
2984 };
2985 static const mso_CustomShape msoActionButtonSound =
2986 {
2987 	(SvxMSDffVertPair*)mso_sptActionButtonSoundVert, sizeof( mso_sptActionButtonSoundVert ) / sizeof( SvxMSDffVertPair ),
2988 	(sal_uInt16*)mso_sptActionButtonSoundSegm, sizeof( mso_sptActionButtonSoundSegm ) >> 1,
2989 	(SvxMSDffCalculationData*)mso_sptActionButtonSoundCalc, sizeof( mso_sptActionButtonSoundCalc ) / sizeof( SvxMSDffCalculationData ),
2990 	(sal_Int32*)mso_sptDefault1400,
2991 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2992 	21600, 21600,
2993 	10800, 10800,
2994 	NULL, 0,
2995 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2996 };
2997 
2998 static const SvxMSDffVertPair mso_sptActionButtonMovieVert[] =
2999 {
3000 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
3001 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
3002 	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
3003 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
3004 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
3005 
3006 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I },
3007 	{ 0x16 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x1e MSO_I, 0x18 MSO_I },
3008 	{ 0x20 MSO_I, 0x18 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x1e MSO_I, 0x22 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I },
3009 	{ 0x16 MSO_I, 0x24 MSO_I }, { 0x16 MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x28 MSO_I },
3010 	{ 0x10 MSO_I, 0x28 MSO_I },	{ 0xe MSO_I, 0x2c MSO_I }, { 0xa MSO_I, 0x2c MSO_I }
3011 };
3012 static const sal_uInt16 mso_sptActionButtonMovieSegm[] =
3013 {
3014 	0x4000, 0x0003, 0x6001, 0x8000,
3015 	0x4000, 0x0003, 0x6001, 0x8000,
3016 	0x4000, 0x0003, 0x6001, 0x8000,
3017 	0x4000, 0x0003, 0x6001, 0x8000,
3018 	0x4000, 0x0003, 0x6001, 0x8000,
3019 	0x4000, 0x0012, 0x6001, 0x8000
3020 };
3021 static const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] =	// adj value 0 - 5400
3022 {
3023 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3024 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3025 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3026 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3027 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3028 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
3029 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
3030 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
3031 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
3032 
3033 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
3034 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
3035 	{ 0x4001, { -4020, 0x0406, 1 } },	// b
3036 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
3037 	{ 0x4001, { -7000, 0x0406, 1 } },	// d
3038 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
3039 	{ 0x4001, { -6560, 0x0406, 1 } },	// f
3040 	{ 0x6000, { 0x040f, 0x0407, 0 } },	// 10
3041 	{ 0x4001, { -3600, 0x0406, 1 } },	// 11
3042 	{ 0x6000, { 0x0411, 0x0408, 0 } },	// 12
3043 	{ 0x4001, { 4020, 0x0406, 1 } },	// 13
3044 	{ 0x6000, { 0x0413, 0x0407, 0 } },	// 14
3045 	{ 0x4001, { 4660, 0x0406, 1 } },	// 15
3046 	{ 0x6000, { 0x0415, 0x0407, 0 } },	// 16
3047 	{ 0x4001, { -2960, 0x0406, 1 } },	// 17
3048 	{ 0x6000, { 0x0417, 0x0408, 0 } },	// 18
3049 	{ 0x4001, { -2330, 0x0406, 1 } },	// 19
3050 	{ 0x6000, { 0x0419, 0x0408, 0 } },	// 1a
3051 	{ 0x4001, { 6780, 0x0406, 1 } },	// 1b
3052 	{ 0x6000, { 0x041b, 0x0407, 0 } },	// 1c
3053 	{ 0x4001, { 7200, 0x0406, 1 } },	// 1d
3054 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
3055 	{ 0x4001, { 8050, 0x0406, 1 } },	// 1f
3056 	{ 0x6000, { 0x041f, 0x0407, 0 } },	// 20
3057 	{ 0x4001, { 2960, 0x0406, 1 } },	// 21
3058 	{ 0x6000, { 0x0421, 0x0408, 0 } },	// 22
3059 	{ 0x4001, { 2330, 0x0406, 1 } },	// 23
3060 	{ 0x6000, { 0x0423, 0x0408, 0 } },	// 24
3061 	{ 0x4001, { 3800, 0x0406, 1 } },	// 25
3062 	{ 0x6000, { 0x0425, 0x0408, 0 } },	// 26
3063 	{ 0x4001, { -1060, 0x0406, 1 } },	// 27
3064 	{ 0x6000, { 0x0427, 0x0408, 0 } },	// 28
3065 	{ 0x4001, { -6350, 0x0406, 1 } },	// 29
3066 	{ 0x6000, { 0x0429, 0x0407, 0 } },	// 2a
3067 	{ 0x4001, { -640, 0x0406, 1 } },	// 2b
3068 	{ 0x6000, { 0x042b, 0x0408, 0 } }	// 2c
3069 };
3070 static const mso_CustomShape msoActionButtonMovie =
3071 {
3072 	(SvxMSDffVertPair*)mso_sptActionButtonMovieVert, sizeof( mso_sptActionButtonMovieVert ) / sizeof( SvxMSDffVertPair ),
3073 	(sal_uInt16*)mso_sptActionButtonMovieSegm, sizeof( mso_sptActionButtonMovieSegm ) >> 1,
3074 	(SvxMSDffCalculationData*)mso_sptActionButtonMovieCalc, sizeof( mso_sptActionButtonMovieCalc ) / sizeof( SvxMSDffCalculationData ),
3075 	(sal_Int32*)mso_sptDefault1400,
3076 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
3077 	21600, 21600,
3078 	10800, 10800,
3079 	NULL, 0,
3080 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
3081 };
3082 
3083 static const SvxMSDffVertPair mso_sptSmileyFaceVert[] =	// adj value 15510 - 17520
3084 {
3085 	{ 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3086 	{ 7305,	7515 }, { 1165, 1165 }, { 0, 360 },
3087 	{ 14295, 7515 }, { 1165, 1165 }, { 0, 360 },
3088 	{ 4870, 1 MSO_I }, { 8680, 2 MSO_I }, { 12920, 2 MSO_I }, { 16730, 1 MSO_I }
3089 };
3090 static const sal_uInt16 mso_sptSmileyFaceSegm[] =
3091 {
3092 	0xa203, 0x6000, 0x8000,
3093 	0xa203, 0x6000, 0x8000,
3094 	0xa203, 0x6000, 0x8000,
3095 	0x4000, 0x2001, 0xaa00, 0x8000
3096 };
3097 static const SvxMSDffCalculationData mso_sptSmileyFaceCalc[] =
3098 {
3099 	{ 0x2000, { DFF_Prop_adjustValue, 0, 15510 } },
3100 	{ 0x8000, { 17520, 0, 0x400 } },
3101 	{ 0x4000, { 15510, 0x400, 0 } }
3102 };
3103 
3104 static const SvxMSDffTextRectangles mso_sptSmileyFaceTextRect[] =
3105 {
3106 	{ { 0, 1 MSO_I }, { 4 MSO_I, 21600 } }
3107 };
3108 static const sal_Int32 mso_sptSmileyFaceDefault[] =
3109 {
3110 	1, 17520
3111 };
3112 static const SvxMSDffHandle mso_sptSmileyHandle[] =
3113 {
3114 	{	MSDFF_HANDLE_FLAGS_RANGE,
3115 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 15510, 17520 }
3116 };
3117 static const mso_CustomShape msoSmileyFace =
3118 {
3119 	(SvxMSDffVertPair*)mso_sptSmileyFaceVert, sizeof( mso_sptSmileyFaceVert ) / sizeof( SvxMSDffVertPair ),
3120 	(sal_uInt16*)mso_sptSmileyFaceSegm, sizeof( mso_sptSmileyFaceSegm ) >> 1,
3121 	(SvxMSDffCalculationData*)mso_sptSmileyFaceCalc, sizeof( mso_sptSmileyFaceCalc ) / sizeof( SvxMSDffCalculationData ),
3122 	(sal_Int32*)mso_sptSmileyFaceDefault,
3123 	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3124 	21600, 21600,
3125 	0x80000000, 0x80000000,
3126 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3127 	(SvxMSDffHandle*)mso_sptSmileyHandle, sizeof( mso_sptSmileyHandle ) / sizeof( SvxMSDffHandle )		// handles
3128 };
3129 
3130 static const SvxMSDffVertPair mso_sptDonutVert[] =	// adj value 0 - 10800
3131 {
3132 	{ 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3133 	{ 10800, 10800 }, { 1 MSO_I, 1 MSO_I }, { 0, 360 }
3134 };
3135 static const sal_uInt16 mso_sptDonutSegm[] =
3136 {
3137 	0xa203, 0x6000, 0xa203, 0x8000
3138 };
3139 static const SvxMSDffCalculationData mso_sptDonutCalc[] =
3140 {
3141 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3142 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3143 };
3144 static const SvxMSDffHandle mso_sptDonutHandle[] =
3145 {
3146 	{	MSDFF_HANDLE_FLAGS_RANGE,
3147 		0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3148 };
3149 static const mso_CustomShape msoDonut =
3150 {
3151 	(SvxMSDffVertPair*)mso_sptDonutVert, sizeof( mso_sptDonutVert ) / sizeof( SvxMSDffVertPair ),
3152 	(sal_uInt16*)mso_sptDonutSegm, sizeof( mso_sptDonutSegm ) >> 1,
3153 	(SvxMSDffCalculationData*)mso_sptDonutCalc, sizeof( mso_sptDonutCalc ) / sizeof( SvxMSDffCalculationData ),
3154 	(sal_Int32*)mso_sptDefault5400,
3155 	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3156 	21600, 21600,
3157 	0x80000000, 0x80000000,
3158 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3159 	(SvxMSDffHandle*)mso_sptDonutHandle, sizeof( mso_sptDonutHandle ) / sizeof( SvxMSDffHandle )		// handles
3160 };
3161 
3162 static const SvxMSDffVertPair mso_sptNoSmokingVert[] =	// adj value 0 - 7200
3163 {
3164 	{ 10800, 10800 },  { 10800,	10800 }, { 0, 360 },
3165 	{ 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3166 	{ 9 MSO_I, 0xa MSO_I }, { 0xb MSO_I, 0xc MSO_I }, { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3167 	{ 0xd MSO_I, 0xe MSO_I }, { 0xf MSO_I, 0x10 MSO_I }
3168 };
3169 static const sal_uInt16 mso_sptNoSmokingSegm[] =
3170 {
3171 	0xa203, 0x6000, 0xa404, 0x6000, 0xa404, 0x6000, 0x8000
3172 };
3173 static const SvxMSDffCalculationData mso_sptNoSmokingCalc[] =
3174 {
3175 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },			// 0
3176 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },		// 1
3177 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },		// 2
3178 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },			// 3
3179 	{ 0xa080, { 0x403, 0, 0x402 } },					// 4
3180 	{ 0x8000, { 10800, 0, 0x403 } },					// 5 x1
3181 	{ 0x4000, { 10800, 0x403, 0 } },					// 6 x2
3182 	{ 0x8000, { 10800, 0, 0x404 } },					// 7 y1
3183 	{ 0x4000, { 10800, 0x404, 0 } },					// 8 y2
3184 	{ 0x6081, { 0x405, 0x407, 45 } },					// 9
3185 	{ 0x6082, { 0x405, 0x407, 45 } },					// a
3186 	{ 0x6081, { 0x405, 0x408, 45 } },					// b
3187 	{ 0x6082, { 0x405, 0x408, 45 } },					// c
3188 	{ 0x6081, { 0x406, 0x408, 45 } },					// d
3189 	{ 0x6082, { 0x406, 0x408, 45 } },					// e
3190 	{ 0x6081, { 0x406, 0x407, 45 } },					// f
3191 	{ 0x6082, { 0x406, 0x407, 45 } }					// 10
3192 };
3193 static const SvxMSDffHandle mso_sptNoSmokingHandle[] =
3194 {
3195 	{	MSDFF_HANDLE_FLAGS_RANGE,
3196 		0x100, 10800, 10800, 10800, 0, 7200, 0x80000000, 0x7fffffff }
3197 };
3198 static const mso_CustomShape msoNoSmoking =
3199 {
3200 	(SvxMSDffVertPair*)mso_sptNoSmokingVert, sizeof( mso_sptNoSmokingVert ) / sizeof( SvxMSDffVertPair ),
3201 	(sal_uInt16*)mso_sptNoSmokingSegm, sizeof( mso_sptNoSmokingSegm ) >> 1,
3202 	(SvxMSDffCalculationData*)mso_sptNoSmokingCalc, sizeof( mso_sptNoSmokingCalc ) / sizeof( SvxMSDffCalculationData ),
3203 	(sal_Int32*)mso_sptDefault2700,
3204 	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3205 	21600, 21600,
3206 	0x80000000, 0x80000000,
3207 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3208 	(SvxMSDffHandle*)mso_sptNoSmokingHandle, sizeof( mso_sptNoSmokingHandle ) / sizeof( SvxMSDffHandle )		// handles
3209 };
3210 
3211 static const SvxMSDffVertPair mso_sptBlockArcVert[] =	// adj value 0 (degrees)
3212 {														// adj value 1:	0 -> 10800;
3213 	{ 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
3214 	{ 5 MSO_I, 5 MSO_I }, { 6 MSO_I, 6 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
3215 };
3216 static const sal_uInt16 mso_sptBlockArcSegm[] =
3217 {
3218 	0xA404, 0xa504, 0x6001, 0x8000
3219 };
3220 static const sal_Int32 mso_sptBlockArcDefault[] =
3221 {
3222 	2, 180, 5400
3223 };
3224 static const SvxMSDffCalculationData mso_sptBlockArcCalc[] =
3225 {
3226 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
3227 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
3228 	{ 0x2000, { 0x400, 10800, 0 } },
3229 	{ 0x2000, { 0x401, 10800, 0 } },
3230 	{ 0x8000, { 21600, 0, 0x402 } },
3231 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
3232 	{ 0x4000, { 10800, DFF_Prop_adjust2Value, 0 } },
3233 	{ 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },
3234 	{ 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } }
3235 };
3236 static const SvxMSDffHandle mso_sptBlockArcHandle[] =
3237 {
3238 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
3239 		0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3240 };
3241 static const mso_CustomShape msoBlockArc =
3242 {
3243 	(SvxMSDffVertPair*)mso_sptBlockArcVert, sizeof( mso_sptBlockArcVert ) / sizeof( SvxMSDffVertPair ),
3244 	(sal_uInt16*)mso_sptBlockArcSegm, sizeof( mso_sptBlockArcSegm ) >> 1,
3245 	(SvxMSDffCalculationData*)mso_sptBlockArcCalc, sizeof( mso_sptBlockArcCalc ) / sizeof( SvxMSDffCalculationData ),
3246 	(sal_Int32*)mso_sptBlockArcDefault,
3247 	NULL, 0,
3248 	21600, 21600,
3249 	0x80000000, 0x80000000,
3250 	NULL, 0,
3251 	(SvxMSDffHandle*)mso_sptBlockArcHandle, sizeof( mso_sptBlockArcHandle ) / sizeof( SvxMSDffHandle )		// handles
3252 };
3253 
3254 // aware : control points are always part of the bounding box
3255 static const SvxMSDffVertPair mso_sptHeartVert[] =
3256 {
3257 	{ 10800, 21599 }, { 321, 6886 }, { 70, 6036 },		// ppp
3258 	{ -9, 5766 }, { -1,	5474 }, { 2, 5192 },			// ccp
3259 	{ 6, 4918 }, { 43, 4641 }, { 101, 4370 },			// ccp
3260 	{ 159, 4103 }, { 245, 3837 }, { 353, 3582 },		// ccp
3261 	{ 460, 3326 }, { 591, 3077 }, { 741, 2839 },		// ccp
3262 	{ 892, 2598 }, { 1066, 2369 }, { 1253, 2155 },		// ccp
3263 	{ 1443,	1938 }, { 1651,	1732 }, { 1874,	1543 },		// ccp
3264 	{ 2097,	1351 }, { 2337, 1174 }, { 2587, 1014 },		// ccp
3265 	{ 2839,	854 }, { 3106, 708 }, { 3380, 584 },		// ccp
3266 	{ 3656,	459 }, { 3945, 350 }, { 4237, 264 },		// ccp
3267 	{ 4533,	176 }, { 4838, 108 }, { 5144, 66 },			// ccp
3268 	{ 5454,	22 }, { 5771, 1 }, { 6086, 3 },				// ccp
3269 	{ 6407,	7 }, { 6731, 35 }, { 7048, 89 },			// ccp
3270 	{ 7374,	144 }, { 7700, 226 }, { 8015, 335 },		// ccp
3271 	{ 8344,	447 }, { 8667, 590 }, { 8972, 756 },		// ccp
3272 	{ 9297,	932 }, { 9613, 1135 }, { 9907, 1363 },		// ccp
3273 	{ 10224, 1609 }, { 10504, 1900 }, { 10802, 2169 },	// ccp
3274 	{ 11697, 1363 },									// p
3275 	{ 11971, 1116 }, { 12304, 934 }, { 12630, 756 },	// ccp
3276 	{ 12935, 590 }, { 13528, 450 }, { 13589, 335 },		// ccp
3277 	{ 13901, 226 }, { 14227, 144 }, { 14556, 89 },		// ccp
3278 	{ 14872, 35 }, { 15195, 7 }, { 15517, 3 },			// ccp
3279 	{ 15830, 0 }, { 16147, 22 }, { 16458, 66 },			// ccp
3280 	{ 16764, 109 }, { 17068, 177 }, { 17365, 264 },		// ccp
3281 	{ 17658, 349 }, { 17946, 458 }, { 18222, 584 },		// ccp
3282 	{ 18496, 708 }, { 18762, 854 }, { 19015, 1014 },	// ccp
3283 	{ 19264, 1172 }, { 19504, 1349 }, { 19730, 1543 },	// ccp
3284 	{ 19950, 1731 }, { 20158, 1937 }, { 20350, 2155 },	// ccp
3285 	{ 20536, 2369 }, { 20710, 2598 }, { 20861, 2839 },	// ccp
3286 	{ 21010, 3074 }, { 21143, 3323 }, { 21251, 3582 },	// ccp
3287 	{ 21357, 3835 }, { 21443, 4099 }, { 21502, 4370 },	// ccp
3288 	{ 21561, 4639 }, { 21595, 4916 }, { 21600, 5192 },	// ccp
3289 	{ 21606, 5474 }, { 21584, 5760 }, { 21532, 6036 },	// ccp
3290 	{ 21478, 6326 }, { 21366, 6603 }, { 21282, 6887 },	// ccp
3291 	{ 10802, 21602 }									// p
3292 };
3293 static const sal_uInt16 mso_sptHeartSegm[] =
3294 {
3295 	0x4000, 0x0002, 0x2010, 0x0001, 0x2010, 0x0001, 0x6001, 0x8000
3296 };
3297 static const SvxMSDffTextRectangles mso_sptHeartTextRect[] =
3298 {
3299 	{ { 5080, 2540 }, { 16520, 13550 } }
3300 };
3301 static const SvxMSDffVertPair mso_sptHeartGluePoints[] =
3302 {
3303 	{ 10800, 2180 }, { 3090, 10800 }, { 10800, 21600 }, { 18490, 10800 }
3304 };
3305 static const mso_CustomShape msoHeart =
3306 {
3307 	(SvxMSDffVertPair*)mso_sptHeartVert, sizeof( mso_sptHeartVert ) / sizeof( SvxMSDffVertPair ),
3308 	(sal_uInt16*)mso_sptHeartSegm, sizeof( mso_sptHeartSegm ) >> 1,
3309 	NULL, 0,
3310 	NULL,
3311 	(SvxMSDffTextRectangles*)mso_sptHeartTextRect, sizeof( mso_sptHeartTextRect ) / sizeof( SvxMSDffTextRectangles ),
3312 	21615, 21602,
3313 	0x80000000, 0x80000000,
3314 	(SvxMSDffVertPair*)mso_sptHeartGluePoints, sizeof( mso_sptHeartGluePoints ) / sizeof( SvxMSDffVertPair ),
3315 	NULL, 0		// handles
3316 };
3317 
3318 static const SvxMSDffVertPair mso_sptLightningBoldVert[] =
3319 {
3320 	{ 8458,	0 }, { 0, 3923 }, { 7564, 8416 }, { 4993, 9720 },
3321 	{ 12197, 13904 }, { 9987, 14934 }, { 21600, 21600 }, { 14768, 12911 },
3322 	{ 16558, 12016 }, { 11030, 6840 }, { 12831, 6120 }, { 8458, 0 }
3323 };
3324 static const SvxMSDffTextRectangles mso_sptLightningBoldTextRect[] =
3325 {
3326 	{ { 8680, 7410 }, { 13970, 14190 } }
3327 };
3328 static const SvxMSDffVertPair mso_sptLightningBoldGluePoints[] =
3329 {
3330 	{ 8458, 0 }, { 0, 3923 }, { 4993, 9720 }, { 9987, 14934 }, { 21600, 21600 },
3331 	{ 16558, 12016 }, { 12831, 6120 }
3332 };
3333 static const mso_CustomShape msoLightningBold =
3334 {
3335 	(SvxMSDffVertPair*)mso_sptLightningBoldVert, sizeof( mso_sptLightningBoldVert ) / sizeof( SvxMSDffVertPair ),
3336 	NULL, 0,
3337 	NULL, 0,
3338 	NULL,
3339 	(SvxMSDffTextRectangles*)mso_sptLightningBoldTextRect, sizeof( mso_sptLightningBoldTextRect ) / sizeof( SvxMSDffTextRectangles ),
3340 	21600, 21600,
3341 	0x80000000, 0x80000000,
3342 	(SvxMSDffVertPair*)mso_sptLightningBoldGluePoints, sizeof( mso_sptLightningBoldGluePoints ) / sizeof( SvxMSDffVertPair ),
3343 	NULL, 0		// handles
3344 };
3345 
3346 static const SvxMSDffVertPair mso_sptSunVert[] =	// adj value 2700 -> 10125
3347 {
3348 	{ 0, 10800 },				{ 4 MSO_I, 8 MSO_I },		{ 4 MSO_I, 9 MSO_I },
3349 	{ 0x0a MSO_I, 0x0b MSO_I },	{ 0x0c MSO_I, 0x0d MSO_I }, { 0x0e MSO_I, 0x0f MSO_I },
3350 	{ 0x10 MSO_I, 0x11 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0x14 MSO_I, 0x15 MSO_I },
3351 	{ 0x16 MSO_I, 0x17 MSO_I }, { 0x18 MSO_I, 0x19 MSO_I }, { 0x1a MSO_I, 0x1b MSO_I },
3352 	{ 0x1c MSO_I, 0x1d MSO_I }, { 0x1e MSO_I, 0x1f MSO_I }, { 0x20 MSO_I, 0x21 MSO_I },
3353 	{ 0x22 MSO_I, 0x23 MSO_I }, { 0x24 MSO_I, 0x25 MSO_I }, { 0x26 MSO_I, 0x27 MSO_I },
3354 	{ 0x28 MSO_I, 0x29 MSO_I }, { 0x2a MSO_I, 0x2b MSO_I }, { 0x2c MSO_I, 0x2d MSO_I },
3355 	{ 0x2e MSO_I, 0x2f MSO_I }, { 0x30 MSO_I, 0x31 MSO_I }, { 0x32 MSO_I, 0x33 MSO_I },
3356 	{ 10800, 10800 }, { 0x36 MSO_I, 0x36 MSO_I },	{ 0, 360 }
3357 };
3358 static const sal_uInt16 mso_sptSunSegm[] =
3359 {
3360 	0x4000, 0x0002, 0x6001, 0x8000,
3361 	0x4000, 0x0002, 0x6001, 0x8000,
3362 	0x4000, 0x0002, 0x6001, 0x8000,
3363 	0x4000, 0x0002, 0x6001, 0x8000,
3364 	0x4000, 0x0002, 0x6001, 0x8000,
3365 	0x4000, 0x0002, 0x6001, 0x8000,
3366 	0x4000, 0x0002, 0x6001, 0x8000,
3367 	0x4000, 0x0002, 0x6001, 0x8000,
3368 	0xa203, 0x6000, 0x8000
3369 };
3370 static const SvxMSDffCalculationData mso_sptSunCalc[] =
3371 {
3372 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3373 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3374 	{ 0x2000, { DFF_Prop_adjustValue, 0, 2700 } },
3375 	{ 0x2001, { 0x402, 5080, 7425 } },
3376 	{ 0x2000, { 0x403, 2540, 0 } },
3377 	{ 0x8000, { 10125, 0, DFF_Prop_adjustValue } },
3378 	{ 0x2001, { 0x405, 2120, 7425 } },
3379 	{ 0x2000, { 0x406, 210, 0 } },
3380 	{ 0x4000, { 10800, 0x407, 0 } },	// y1 (0x8)
3381 	{ 0x8000, { 10800, 0, 0x407 } },	// y2 (0x9)
3382 	{ 0x0081, { 0, 10800, 45 } },		// 0xa
3383 	{ 0x0082, { 0, 10800, 45 } },		// 0xb
3384 	{ 0x6081, { 0x404, 0x408, 45 } },	// 0xc
3385 	{ 0x6082, { 0x404, 0x408, 45 } },	// 0xd
3386 	{ 0x6081, { 0x404, 0x409, 45 } },	// 0xe
3387 	{ 0x6082, { 0x404, 0x409, 45 } },	// 0xf
3388 	{ 0x0081, { 0, 10800, 90 } },		// 0x10
3389 	{ 0x0082, { 0, 10800, 90 } },		// 0x11
3390 	{ 0x6081, { 0x404, 0x408, 90 } },	// 0x12
3391 	{ 0x6082, { 0x404, 0x408, 90 } },	// 0x13
3392 	{ 0x6081, { 0x404, 0x409, 90 } },	// 0x14
3393 	{ 0x6082, { 0x404, 0x409, 90 } },	// 0x15
3394 	{ 0x0081, { 0, 10800, 135 } },		// 0x16
3395 	{ 0x0082, { 0, 10800, 135 } },		// 0x17
3396 	{ 0x6081, { 0x404, 0x408, 135 } },	// 0x18
3397 	{ 0x6082, { 0x404, 0x408, 135 } },	// 0x19
3398 	{ 0x6081, { 0x404, 0x409, 135 } },	// 0x1a
3399 	{ 0x6082, { 0x404, 0x409, 135 } },	// 0x1b
3400 	{ 0x0081, { 0, 10800, 180 } },		// 0x1c
3401 	{ 0x0082, { 0, 10800, 180 } },		// 0x1d
3402 	{ 0x6081, { 0x404, 0x408, 180 } },	// 0x1e
3403 	{ 0x6082, { 0x404, 0x408, 180 } },	// 0x1f
3404 	{ 0x6081, { 0x404, 0x409, 180 } },	// 0x20
3405 	{ 0x6082, { 0x404, 0x409, 180 } },	// 0x21
3406 	{ 0x0081, { 0, 10800, 225 } },		// 0x22
3407 	{ 0x0082, { 0, 10800, 225 } },		// 0x23
3408 	{ 0x6081, { 0x404, 0x408, 225 } },	// 0x24
3409 	{ 0x6082, { 0x404, 0x408, 225 } },	// 0x25
3410 	{ 0x6081, { 0x404, 0x409, 225 } },	// 0x26
3411 	{ 0x6082, { 0x404, 0x409, 225 } },	// 0x27
3412 	{ 0x0081, { 0, 10800, 270 } },		// 0x28
3413 	{ 0x0082, { 0, 10800, 270 } },		// 0x29
3414 	{ 0x6081, { 0x404, 0x408, 270 } },	// 0x2a
3415 	{ 0x6082, { 0x404, 0x408, 270 } },	// 0x2b
3416 	{ 0x6081, { 0x404, 0x409, 270 } },	// 0x2c
3417 	{ 0x6082, { 0x404, 0x409, 270 } },	// 0x2d
3418 	{ 0x0081, { 0, 10800, 315 } },		// 0x2e
3419 	{ 0x0082, { 0, 10800, 315 } },		// 0x2f
3420 	{ 0x6081, { 0x404, 0x408, 315 } },	// 0x30
3421 	{ 0x6082, { 0x404, 0x408, 315 } },	// 0x31
3422 	{ 0x6081, { 0x404, 0x409, 315 } },	// 0x32
3423 	{ 0x6082, { 0x404, 0x409, 315 } },	// 0x33
3424 	{ 0x2081, { DFF_Prop_adjustValue, 10800, 45 } },	// 0x34	( textbox )
3425 	{ 0x2081, { DFF_Prop_adjustValue, 10800, 225 } },	// 0x35
3426 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3427 };
3428 static const SvxMSDffTextRectangles mso_sptSunTextRect[] =
3429 {
3430 	{ { 0x34 MSO_I, 0x34 MSO_I }, { 0x35 MSO_I, 0x35 MSO_I } }
3431 };
3432 static const SvxMSDffHandle mso_sptSunHandle[] =
3433 {
3434 	{	MSDFF_HANDLE_FLAGS_RANGE,
3435 		0x100, 10800, 10800, 10800, 2700, 10125, 0x80000000, 0x7fffffff }
3436 };
3437 static const mso_CustomShape msoSun =
3438 {
3439 	(SvxMSDffVertPair*)mso_sptSunVert, sizeof( mso_sptSunVert ) / sizeof( SvxMSDffVertPair ),
3440 	(sal_uInt16*)mso_sptSunSegm, sizeof( mso_sptSunSegm ) >> 1,
3441 	(SvxMSDffCalculationData*)mso_sptSunCalc, sizeof( mso_sptSunCalc ) / sizeof( SvxMSDffCalculationData ),
3442 	(sal_Int32*)mso_sptDefault5400,
3443 	(SvxMSDffTextRectangles*)mso_sptSunTextRect, sizeof( mso_sptSunTextRect ) / sizeof( SvxMSDffTextRectangles ),
3444 	21600, 21600,
3445 	0x80000000, 0x80000000,
3446 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3447 	(SvxMSDffHandle*)mso_sptSunHandle, sizeof( mso_sptSunHandle ) / sizeof( SvxMSDffHandle )		// handles
3448 };
3449 
3450 static const SvxMSDffVertPair mso_sptMoonVert[] =	// adj value 0 -> 18900
3451 {
3452 	{ 21600, 0 },
3453 	{ 3 MSO_I, 4 MSO_I },	{ 0 MSO_I, 5080 },		{ 0 MSO_I, 10800 },	// ccp
3454 	{ 0 MSO_I, 16520 },		{ 3 MSO_I, 5 MSO_I },	{ 21600, 21600 },	// ccp
3455 	{ 9740, 21600 },		{ 0, 16730 },			{ 0, 10800 },		// ccp
3456 	{ 0, 4870 },			{ 9740, 0 },			{ 21600, 0	}		// ccp
3457 };
3458 static const sal_uInt16 mso_sptMoonSegm[] =
3459 {
3460 	0x4000, 0x2004, 0x6000, 0x8000
3461 };
3462 static const SvxMSDffCalculationData mso_sptMoonCalc[] =
3463 {
3464 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3465 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3466 	{ 0x2001, { 0x401, 1, 2 } },
3467 	{ 0x6000, { 0x402, DFF_Prop_adjustValue, 0 } },
3468 	{ 0x2001, { DFF_Prop_adjustValue, 1794, 10000 } },
3469 	{ 0x8000, { 21600, 0, 0x0404 } },
3470 	{ 0x2001, { DFF_Prop_adjustValue, 400, 18900 } },
3471 	{ 0x8081, { 0, 10800, 0x406 } },
3472 	{ 0x8082, { 0, 10800, 0x406 } },
3473 	{ 0x6000, { 0x407, 0x407, 0 } },
3474 	{ 0x8000, { 21600, 0, 0x408 } }
3475 };
3476 static const SvxMSDffTextRectangles mso_sptMoonTextRect[] =
3477 {
3478 	{ { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 0xa MSO_I } }
3479 };
3480 static const SvxMSDffVertPair mso_sptMoonGluePoints[] =
3481 {
3482 	{ 21600, 0 }, { 0, 10800 }, { 21600, 21600 }, { 0 MSO_I, 10800 }
3483 };
3484 static const SvxMSDffHandle mso_sptMoonHandle[] =
3485 {
3486 	{	MSDFF_HANDLE_FLAGS_RANGE,
3487 		0x100, 10800, 10800, 10800, 0, 18900, 0x80000000, 0x7fffffff }
3488 };
3489 static const mso_CustomShape msoMoon =
3490 {
3491 	(SvxMSDffVertPair*)mso_sptMoonVert, sizeof( mso_sptMoonVert ) / sizeof( SvxMSDffVertPair ),
3492 	(sal_uInt16*)mso_sptMoonSegm, sizeof( mso_sptMoonSegm ) >> 1,
3493 	(SvxMSDffCalculationData*)mso_sptMoonCalc, sizeof( mso_sptMoonCalc ) / sizeof( SvxMSDffCalculationData ),
3494 	(sal_Int32*)mso_sptDefault10800,
3495 	(SvxMSDffTextRectangles*)mso_sptMoonTextRect, sizeof( mso_sptMoonTextRect ) / sizeof( SvxMSDffTextRectangles ),
3496 	21600, 21600,
3497 	0x80000000, 0x80000000,
3498 	(SvxMSDffVertPair*)mso_sptMoonGluePoints, sizeof( mso_sptMoonGluePoints ) / sizeof( SvxMSDffVertPair ),
3499 	(SvxMSDffHandle*)mso_sptMoonHandle, sizeof( mso_sptMoonHandle ) / sizeof( SvxMSDffHandle )		// handles
3500 };
3501 
3502 static const SvxMSDffVertPair mso_sptBracketPairVert[] =	// adj value 0 -> 10800
3503 {
3504 	{ 0 MSO_I, 0 },		{ 0, 1 MSO_I },		// left top alignment
3505 	{ 0, 2 MSO_I },		{ 0 MSO_I, 21600 },	// left  bottom "
3506 	{ 3 MSO_I, 21600 },	{ 21600, 2 MSO_I },	// right bottom	"
3507 	{ 21600, 1 MSO_I },	{ 3 MSO_I, 0 }		// right top	"
3508 };
3509 static const sal_uInt16 mso_sptBracketPairSegm[] =
3510 {
3511 	0x4000, 0xa701, 0x0001, 0xa801, 0x8000,
3512 	0x4000, 0xa701, 0x0001, 0xa801, 0x8000
3513 };
3514 static const SvxMSDffCalculationData mso_sptBracketPairCalc[] =
3515 {
3516 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3517 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3518 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3519 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3520 	{ 0x2082, { DFF_Prop_adjustValue, 0, 45 } },
3521 	{ 0x2000, { 0x404, 0, 10800 } },
3522 	{ 0x8000, { 0, 0, DFF_Prop_adjustValue } },
3523 	{ 0xa000, { 0x406, 0, 0x405 } },
3524 	{ 0xa000, { DFF_Prop_geoLeft, 0, 0x407 } },
3525 	{ 0xa000, { DFF_Prop_geoTop, 0, 0x407 } },
3526 	{ 0x6000, { DFF_Prop_geoRight, 0x407, 0 } },
3527 	{ 0x6000, { DFF_Prop_geoBottom, 0x407, 0 } },
3528 	{ 0xa000, { DFF_Prop_geoLeft, 0, 0x405 } },
3529 	{ 0xa000, { DFF_Prop_geoTop, 0, 0x405 } },
3530 	{ 0x6000, { DFF_Prop_geoRight, 0x405, 0 } },
3531 	{ 0x6000, { DFF_Prop_geoBottom, 0x405, 0 } }
3532 };
3533 static const SvxMSDffTextRectangles mso_sptBracketPairTextRect[] =
3534 {
3535 	{ { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 0xb MSO_I } }
3536 };
3537 static const SvxMSDffHandle mso_sptBracketPairHandle[] =
3538 {
3539 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3540 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3541 };
3542 static const mso_CustomShape msoBracketPair =
3543 {
3544 	(SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ),
3545 	(sal_uInt16*)mso_sptBracketPairSegm, sizeof( mso_sptBracketPairSegm ) >> 1,
3546 	(SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ),
3547 	(sal_Int32*)mso_sptDefault3700,
3548 	(SvxMSDffTextRectangles*)mso_sptBracketPairTextRect, sizeof( mso_sptBracketPairTextRect ) / sizeof( SvxMSDffTextRectangles ),
3549 	21600, 21600,
3550 	10800, 0x80000000,
3551 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3552 	(SvxMSDffHandle*)mso_sptBracketPairHandle, sizeof( mso_sptBracketPairHandle ) / sizeof( SvxMSDffHandle )		// handles
3553 };
3554 
3555 static const sal_uInt16 mso_sptPlaqueSegm[] =
3556 {
3557 	0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
3558 };
3559 static const SvxMSDffTextRectangles mso_sptPlaqueTextRect[] =
3560 {
3561 	{ { 0xc MSO_I, 0xd MSO_I }, { 0xe MSO_I, 0xf MSO_I } }
3562 };
3563 static const SvxMSDffHandle mso_sptPlaqueHandle[] =
3564 {
3565 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3566 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3567 };
3568 static const mso_CustomShape msoPlaque =
3569 {
3570 	(SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ),
3571 	(sal_uInt16*)mso_sptPlaqueSegm, sizeof( mso_sptPlaqueSegm ) >> 1,
3572 	(SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ),
3573 	(sal_Int32*)mso_sptDefault3600,
3574 	(SvxMSDffTextRectangles*)mso_sptPlaqueTextRect, sizeof( mso_sptPlaqueTextRect ) / sizeof( SvxMSDffTextRectangles ),
3575 	21600, 21600,
3576 	10800, 10800,
3577 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3578 	(SvxMSDffHandle*)mso_sptPlaqueHandle, sizeof( mso_sptPlaqueHandle ) / sizeof( SvxMSDffHandle )		// handles
3579 };
3580 
3581 static const SvxMSDffVertPair mso_sptBracePairVert[] =	// adj value 0 -> 5400
3582 {
3583 	{ 4 MSO_I, 0 },	{ 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 6 MSO_I }, { 0 ,10800 },			// left bracket
3584 	{ 0 MSO_I, 7 MSO_I }, { 0 MSO_I, 2 MSO_I },	{ 4 MSO_I, 21600 },
3585 	{ 8 MSO_I, 21600 },	{ 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 7 MSO_I }, { 21600, 10800 },	// right bracket
3586 	{ 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 8 MSO_I, 0 }
3587 };
3588 static const sal_uInt16 mso_sptBracePairSegm[] =
3589 {
3590 	0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000,
3591 	0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000
3592 };
3593 static const SvxMSDffCalculationData mso_sptBracePairCalc[] =
3594 {
3595 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3596 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3597 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3598 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3599 	{ 0x2001, { 0x400, 2, 1 } },									//  4
3600 	{ 0x2001, { DFF_Prop_adjustValue, 2, 1 } },						//  5
3601 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },					//  6
3602 	{ 0x8000, { 21600, 0, 0x406 } },								//  7
3603 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x405 } },					//  8
3604 	{ 0x2001, { DFF_Prop_adjustValue, 1, 3 } },						//  9
3605 	{ 0x6000, { 0x409, DFF_Prop_adjustValue, 0 } },					// xa
3606 	{ 0x6000, { DFF_Prop_geoLeft, 0x40a, 0 } },						// xb
3607 	{ 0x6000, { DFF_Prop_geoTop, 0x409, 0 } },						// xc
3608 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x40a } },					// xd
3609 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } }					// xe
3610 };
3611 static const SvxMSDffTextRectangles mso_sptBracePairTextRect[] =
3612 {
3613 	{ { 0xb MSO_I, 0xc MSO_I }, { 0xd MSO_I, 0xe MSO_I } }
3614 };
3615 static const SvxMSDffHandle mso_sptBracePairHandle[] =
3616 {
3617 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3618 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }
3619 };
3620 static const mso_CustomShape msoBracePair =
3621 {
3622 	(SvxMSDffVertPair*)mso_sptBracePairVert, sizeof( mso_sptBracePairVert ) / sizeof( SvxMSDffVertPair ),
3623 	(sal_uInt16*)mso_sptBracePairSegm, sizeof( mso_sptBracePairSegm ) >> 1,
3624 	(SvxMSDffCalculationData*)mso_sptBracePairCalc, sizeof( mso_sptBracePairCalc ) / sizeof( SvxMSDffCalculationData ),
3625 	(sal_Int32*)mso_sptDefault1800,
3626 	(SvxMSDffTextRectangles*)mso_sptBracePairTextRect, sizeof( mso_sptBracePairTextRect ) / sizeof( SvxMSDffTextRectangles ),
3627 	21600, 21600,
3628 	10800, 0x80000000,
3629 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3630 	(SvxMSDffHandle*)mso_sptBracePairHandle, sizeof( mso_sptBracePairHandle ) / sizeof( SvxMSDffHandle )		// handles
3631 };
3632 
3633 static const SvxMSDffCalculationData mso_sptBracketCalc[] =
3634 {
3635 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3636 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3637 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3638 	{ 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
3639 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
3640 };
3641 static const sal_uInt16 mso_sptBracketSegm[] =
3642 {
3643 	0x4000, 0x2001, 0x0001, 0x2001, 0x8000
3644 };
3645 static const SvxMSDffVertPair mso_sptLeftBracketVert[] =	// adj value 0 -> 10800
3646 {
3647 	{ 21600, 0 }, { 10800,	0 }, { 0, 3 MSO_I }, { 0, 1 MSO_I },
3648 	{ 0, 2 MSO_I }, { 0, 4 MSO_I }, { 10800, 21600 }, { 21600, 21600 }
3649 };
3650 static const SvxMSDffTextRectangles mso_sptLeftBracketTextRect[] =
3651 {
3652 	{ { 6350, 3 MSO_I }, { 21600, 4 MSO_I } }
3653 };
3654 static const SvxMSDffVertPair mso_sptLeftBracketGluePoints[] =
3655 {
3656 	{ 21600, 0 }, { 0, 10800 }, { 21600, 21600 }
3657 };
3658 static const SvxMSDffHandle mso_sptLeftBracketHandle[] =
3659 {
3660 	{	MSDFF_HANDLE_FLAGS_RANGE,
3661 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
3662 };
3663 static const mso_CustomShape msoLeftBracket =
3664 {
3665 	(SvxMSDffVertPair*)mso_sptLeftBracketVert, sizeof( mso_sptLeftBracketVert ) / sizeof( SvxMSDffVertPair ),
3666 	(sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1,
3667 	(SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ),
3668 	(sal_Int32*)mso_sptDefault1800,
3669 	(SvxMSDffTextRectangles*)mso_sptLeftBracketTextRect, sizeof( mso_sptLeftBracketTextRect ) / sizeof( SvxMSDffTextRectangles ),
3670 	21600, 21600,
3671 	0x80000000, 0x80000000,
3672 	(SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3673 	(SvxMSDffHandle*)mso_sptLeftBracketHandle, sizeof( mso_sptLeftBracketHandle ) / sizeof( SvxMSDffHandle )		// handles
3674 };
3675 static const SvxMSDffVertPair mso_sptRightBracketVert[] =	// adj value 0 -> 10800
3676 {
3677 	{ 0, 0 }, { 10800, 0 }, { 21600, 3 MSO_I }, { 21600, 1 MSO_I },
3678 	{ 21600, 2 MSO_I }, { 21600, 4 MSO_I }, { 10800, 21600 }, { 0, 21600 }
3679 };
3680 static const SvxMSDffTextRectangles mso_sptRightBracketTextRect[] =
3681 {
3682 	{ { 0, 3 MSO_I }, { 15150, 4 MSO_I } }
3683 };
3684 static const SvxMSDffVertPair mso_sptRightBracketGluePoints[] =
3685 {
3686 	{ 0, 0 }, { 0, 21600 }, { 21600, 10800 }
3687 };
3688 static const SvxMSDffHandle mso_sptRightBracketHandle[] =
3689 {
3690 	{	MSDFF_HANDLE_FLAGS_RANGE,
3691 		1, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
3692 };
3693 static const mso_CustomShape msoRightBracket =
3694 {
3695 	(SvxMSDffVertPair*)mso_sptRightBracketVert, sizeof( mso_sptRightBracketVert ) / sizeof( SvxMSDffVertPair ),
3696 	(sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1,
3697 	(SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ),
3698 	(sal_Int32*)mso_sptDefault1800,
3699 	(SvxMSDffTextRectangles*)mso_sptRightBracketTextRect, sizeof( mso_sptRightBracketTextRect ) / sizeof( SvxMSDffTextRectangles ),
3700 	21600, 21600,
3701 	0x80000000, 0x80000000,
3702 	(SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3703 	(SvxMSDffHandle*)mso_sptRightBracketHandle, sizeof( mso_sptRightBracketHandle ) / sizeof( SvxMSDffHandle )		// handles
3704 };
3705 
3706 static const SvxMSDffCalculationData mso_sptBraceCalc[] =
3707 {
3708 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3709 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3710 	{ 0xa000, { 0x404, 0, DFF_Prop_adjustValue } },
3711 	{ 0xa000, { 0x404, 0, 0x400 } },
3712 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
3713 	{ 0x6000, { 0x404, 0x400, 0 } },
3714 	{ 0x6000, { 0x404, DFF_Prop_adjustValue, 0 } },
3715 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3716 	{ 0x8000, { 21600, 0, 0x400 } },
3717 	{ 0x2001, { DFF_Prop_adjustValue, 10000, 31953 } },
3718 	{ 0x8000, { 21600, 0, 0x409 } }
3719 };
3720 static const sal_uInt16 mso_sptBraceSegm[] =
3721 {
3722 	0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000
3723 };
3724 static const sal_Int32 mso_sptBraceDefault[] =
3725 {
3726 	2, 1800, 10800
3727 };
3728 static const SvxMSDffVertPair mso_sptLeftBraceVert[] =
3729 {
3730 	{ 21600, 0 },												// p
3731 	{ 16200, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },		// ccp
3732 	{ 10800, 2 MSO_I },											// p
3733 	{ 10800, 3 MSO_I }, { 5400, 4 MSO_I }, { 0, 4 MSO_I },		// ccp
3734 	{ 5400, 4 MSO_I }, 	{ 10800, 5 MSO_I }, { 10800, 6 MSO_I },	// ccp
3735 	{ 10800, 7 MSO_I },											// p
3736 	{ 10800, 8 MSO_I }, { 16200, 21600 }, { 21600, 21600 }		// ccp
3737 };
3738 static const SvxMSDffTextRectangles mso_sptLeftBraceTextRect[] =
3739 {
3740 	{ { 13800, 9 MSO_I }, { 21600, 10 MSO_I } }
3741 };
3742 static const SvxMSDffHandle mso_sptLeftBraceHandle[] =
3743 {
3744 	{	MSDFF_HANDLE_FLAGS_RANGE,
3745 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 },
3746 	{	MSDFF_HANDLE_FLAGS_RANGE,
3747 		0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
3748 };
3749 static const mso_CustomShape msoLeftBrace =		// adj value0 0 -> 5400
3750 {												// adj value1 0 -> 21600
3751 	(SvxMSDffVertPair*)mso_sptLeftBraceVert, sizeof( mso_sptLeftBraceVert ) / sizeof( SvxMSDffVertPair ),
3752 	(sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1,
3753 	(SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ),
3754 	(sal_Int32*)mso_sptBraceDefault,
3755 	(SvxMSDffTextRectangles*)mso_sptLeftBraceTextRect, sizeof( mso_sptLeftBraceTextRect ) / sizeof( SvxMSDffTextRectangles ),
3756 	21600, 21600,
3757 	0x80000000, 0x80000000,
3758 	(SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3759 	(SvxMSDffHandle*)mso_sptLeftBraceHandle, sizeof( mso_sptLeftBraceHandle ) / sizeof( SvxMSDffHandle )		// handles
3760 };
3761 static const SvxMSDffVertPair mso_sptRightBraceVert[] =
3762 {
3763 	{ 0, 0 },													// p
3764 	{ 5400, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },		// ccp
3765 	{ 10800, 2 MSO_I },											// p
3766 	{ 10800, 3 MSO_I },	{ 16200, 4 MSO_I }, { 21600, 4 MSO_I },	// ccp
3767 	{ 16200, 4 MSO_I },	{ 10800, 5 MSO_I },	{ 10800, 6 MSO_I },	// ccp
3768 	{ 10800, 7 MSO_I },											// p
3769 	{ 10800, 8 MSO_I }, { 5400,	21600 }, { 0, 21600	}			// ccp
3770 };
3771 static const SvxMSDffTextRectangles mso_sptRightBraceTextRect[] =
3772 {
3773 	{ { 0, 9 MSO_I }, { 7800, 10 MSO_I } }
3774 };
3775 static const SvxMSDffHandle mso_sptRightBraceHandle[] =
3776 {
3777 	{	MSDFF_HANDLE_FLAGS_RANGE,
3778 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 },
3779 	{	MSDFF_HANDLE_FLAGS_RANGE,
3780 		1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
3781 };
3782 static const mso_CustomShape msoRightBrace =		// adj value0 0 -> 5400
3783 {												// adj value1 0 -> 21600
3784 	(SvxMSDffVertPair*)mso_sptRightBraceVert, sizeof( mso_sptRightBraceVert ) / sizeof( SvxMSDffVertPair ),
3785 	(sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1,
3786 	(SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ),
3787 	(sal_Int32*)mso_sptBraceDefault,
3788 	(SvxMSDffTextRectangles*)mso_sptRightBraceTextRect, sizeof( mso_sptRightBraceTextRect ) / sizeof( SvxMSDffTextRectangles ),
3789 	21600, 21600,
3790 	0x80000000, 0x80000000,
3791 	(SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3792 	(SvxMSDffHandle*)mso_sptRightBraceHandle, sizeof( mso_sptRightBraceHandle ) / sizeof( SvxMSDffHandle )		// handles
3793 };
3794 
3795 static const SvxMSDffVertPair mso_sptIrregularSeal1Vert[] =
3796 {
3797 	{ 10901, 5905 }, { 8458, 2399 }, { 7417, 6425 }, { 476, 2399 },
3798 	{ 4732, 7722 }, { 106, 8718 }, { 3828, 11880 }, { 243, 14689 },
3799 	{ 5772, 14041 }, { 4868, 17719 }, { 7819, 15730 }, { 8590, 21600 },
3800 	{ 10637, 15038 }, { 13349, 19840 }, { 14125, 14561 }, { 18248, 18195 },
3801 	{ 16938, 13044 }, { 21600, 13393 }, { 17710, 10579 }, { 21198, 8242 },
3802 	{ 16806, 7417 }, { 18482, 4560 }, { 14257, 5429 }, { 14623, 106 }, { 10901, 5905 }
3803 };
3804 static const SvxMSDffTextRectangles mso_sptIrregularSeal1TextRect[] =
3805 {
3806 	{ { 4680, 6570 }, { 16140, 13280 } }
3807 };
3808 static const SvxMSDffVertPair mso_sptIrregularSeal1GluePoints[] =
3809 {
3810 	{ 14623, 106 }, { 106, 8718 }, { 8590, 21600 }, { 21600, 13393 }
3811 };
3812 static const mso_CustomShape msoIrregularSeal1 =
3813 {
3814 	(SvxMSDffVertPair*)mso_sptIrregularSeal1Vert, sizeof( mso_sptIrregularSeal1Vert ) / sizeof( SvxMSDffVertPair ),
3815 	NULL, 0,
3816 	NULL, 0,
3817 	NULL,
3818 	(SvxMSDffTextRectangles*)mso_sptIrregularSeal1TextRect, sizeof( mso_sptIrregularSeal1TextRect ) / sizeof( SvxMSDffTextRectangles ),
3819 	21600, 21600,
3820 	0x80000000, 0x80000000,
3821 	(SvxMSDffVertPair*)mso_sptIrregularSeal1GluePoints, sizeof( mso_sptIrregularSeal1GluePoints ) / sizeof( SvxMSDffVertPair ),
3822 	NULL, 0		// handles
3823 };
3824 
3825 static const SvxMSDffVertPair mso_sptIrregularSeal2Vert[] =
3826 {
3827 	{ 11464, 4340 }, { 9722, 1887 }, { 8548, 6383 }, { 4503, 3626 },
3828 	{ 5373, 7816 }, { 1174, 8270 }, { 3934, 11592 }, { 0, 12875 },
3829 	{ 3329, 15372 }, { 1283, 17824 }, { 4804, 18239 }, { 4918, 21600 },
3830 	{ 7525, 18125 }, { 8698, 19712 }, { 9871, 17371 }, { 11614, 18844 },
3831 	{ 12178, 15937 }, { 14943, 17371 }, { 14640, 14348 }, { 18878, 15632 },
3832 	{ 16382, 12311 }, { 18270, 11292 }, { 16986, 9404 }, { 21600, 6646 },
3833 	{ 16382, 6533 }, { 18005, 3172 }, { 14524, 5778 }, { 14789, 0 },
3834 	{ 11464, 4340 }
3835 };
3836 static const SvxMSDffTextRectangles mso_sptIrregularSeal2TextRect[] =
3837 {
3838 	{ { 5400, 6570 }, { 14160, 15290 } }
3839 };
3840 static const SvxMSDffVertPair mso_sptIrregularSeal2GluePoints[] =
3841 {
3842 	{ 9722, 1887 }, { 0, 12875 }, { 11614, 18844 }, { 21600, 6646 }
3843 };
3844 static const mso_CustomShape msoIrregularSeal2 =
3845 {
3846 	(SvxMSDffVertPair*)mso_sptIrregularSeal2Vert, sizeof( mso_sptIrregularSeal2Vert ) / sizeof( SvxMSDffVertPair ),
3847 	NULL, 0,
3848 	NULL, 0,
3849 	NULL,
3850 	(SvxMSDffTextRectangles*)mso_sptIrregularSeal2TextRect, sizeof( mso_sptIrregularSeal2TextRect ) / sizeof( SvxMSDffTextRectangles ),
3851 	21600, 21600,
3852 	0x80000000, 0x80000000,
3853 	(SvxMSDffVertPair*)mso_sptIrregularSeal2GluePoints, sizeof( mso_sptIrregularSeal2GluePoints ) / sizeof( SvxMSDffVertPair ),
3854 	NULL, 0		// handles
3855 };
3856 
3857 static const SvxMSDffVertPair mso_sptSeal4Vert[] =		// adjustment1 : 0 - 10800
3858 {
3859 	{ 0, 10800 }, { 4 MSO_I, 4 MSO_I }, { 10800, 0 }, { 3 MSO_I, 4 MSO_I },
3860 	{ 21600, 10800 }, { 3 MSO_I, 3 MSO_I }, { 10800, 21600 }, { 4 MSO_I, 3 MSO_I },
3861 	{ 0, 10800 }
3862 };
3863 static const SvxMSDffCalculationData mso_sptSeal4Calc[] =
3864 {
3865 	{ 0x0000, { 7600, 0, 0 } },
3866 	{ 0x6001, { 0x400, DFF_Prop_adjustValue, 10800 } },
3867 	{ 0xa000, { 0x400, 0, 0x401 } },
3868 	{ 0x4000, { 10800, 0x402, 0 } },
3869 	{ 0x8000, { 10800, 0, 0x402 } }
3870 };
3871 static const SvxMSDffTextRectangles mso_sptSeal4TextRect[] =
3872 {
3873 	{ { 4 MSO_I, 4 MSO_I }, { 3 MSO_I, 3 MSO_I } }
3874 };
3875 static const SvxMSDffHandle mso_sptSealHandle[] =
3876 {
3877 	{	MSDFF_HANDLE_FLAGS_RANGE,
3878 		0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3879 };
3880 static const mso_CustomShape msoSeal4 =
3881 {
3882 	(SvxMSDffVertPair*)mso_sptSeal4Vert, sizeof( mso_sptSeal4Vert ) / sizeof( SvxMSDffVertPair ),
3883 	NULL, 0,
3884 	(SvxMSDffCalculationData*)mso_sptSeal4Calc, sizeof( mso_sptSeal4Calc ) / sizeof( SvxMSDffCalculationData ),
3885 	(sal_Int32*)mso_sptDefault8100,
3886 	(SvxMSDffTextRectangles*)mso_sptSeal4TextRect, sizeof( mso_sptSeal4TextRect ) / sizeof( SvxMSDffTextRectangles ),
3887 	21600, 21600,
3888 	0x80000000, 0x80000000,
3889 	NULL, 0,
3890 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )		// handles
3891 };
3892 
3893 static const SvxMSDffVertPair mso_sptStarVert[] =
3894 {
3895 	{ 10797, 0 }, { 8278, 8256 }, { 0, 8256 }, { 6722, 13405 },
3896 	{ 4198, 21600 }, { 10797, 16580 }, { 17401, 21600 }, { 14878, 13405 },
3897 	{ 21600, 8256 }, { 13321, 8256 }, { 10797, 0 }
3898 };
3899 static const SvxMSDffTextRectangles mso_sptStarTextRect[] =
3900 {
3901 	{ { 6722, 8256 }, { 14878, 15460 } }
3902 };
3903 static const mso_CustomShape msoStar =
3904 {
3905 	(SvxMSDffVertPair*)mso_sptStarVert, sizeof( mso_sptStarVert ) / sizeof( SvxMSDffVertPair ),
3906 	NULL, 0,
3907 	NULL, 0,
3908 	NULL,
3909 	(SvxMSDffTextRectangles*)mso_sptStarTextRect, sizeof( mso_sptStarTextRect ) / sizeof( SvxMSDffTextRectangles ),
3910 	21600, 21600,
3911 	0x80000000, 0x80000000,
3912 	NULL, 0,
3913 	NULL, 0		// handles
3914 };
3915 
3916 static const SvxMSDffCalculationData mso_sptSeal24Calc[] =
3917 {
3918 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0x00
3919 	{ 0x2081, { 0x400, 10800, 315 } },				// 0x01	( textframe )
3920 	{ 0x2082, { 0x400, 10800, 315 } },				// 0x02
3921 	{ 0x2081, { 0x400, 10800, 135 } },				// 0x03
3922 	{ 0x2082, { 0x400, 10800, 135 } },				// 0x04
3923 	{ 0x0081, { 0,	 10800, 0 } },
3924 	{ 0x0082, { 0,	 10800, 0 } },
3925 	{ 0x2081, { 0x400, 10800, 7 } },
3926 	{ 0x2082, { 0x400, 10800, 7 } },
3927 	{ 0x0081, { 0,	 10800, 15 } },
3928 	{ 0x0082, { 0,	 10800, 15 } },
3929 	{ 0x2081, { 0x400, 10800, 22 } },
3930 	{ 0x2082, { 0x400, 10800, 22 } },
3931 	{ 0x0081, { 0,	 10800, 30 } },
3932 	{ 0x0082, { 0,	 10800, 30 } },
3933 	{ 0x2081, { 0x400, 10800, 37 } },
3934 	{ 0x2082, { 0x400, 10800, 37 } },
3935 	{ 0x0081, { 0,	 10800, 45 } },
3936 	{ 0x0082, { 0,	 10800, 45 } },
3937 	{ 0x2081, { 0x400, 10800, 52 } },
3938 	{ 0x2082, { 0x400, 10800, 52 } },
3939 	{ 0x0081, { 0,	 10800, 60 } },
3940 	{ 0x0082, { 0,	 10800, 60 } },
3941 	{ 0x2081, { 0x400, 10800, 67 } },
3942 	{ 0x2082, { 0x400, 10800, 67 } },
3943 	{ 0x0081, { 0,	 10800, 75 } },
3944 	{ 0x0082, { 0,	 10800, 75 } },
3945 	{ 0x2081, { 0x400, 10800, 82 } },
3946 	{ 0x2082, { 0x400, 10800, 82 } },
3947 	{ 0x0081, { 0,	 10800, 90 } },
3948 	{ 0x0082, { 0,	 10800, 90 } },
3949 	{ 0x2081, { 0x400, 10800, 97 } },
3950 	{ 0x2082, { 0x400, 10800, 97 } },
3951 	{ 0x0081, { 0,	 10800, 105 } },
3952 	{ 0x0082, { 0,	 10800, 105 } },
3953 	{ 0x2081, { 0x400, 10800, 112 } },
3954 	{ 0x2082, { 0x400, 10800, 112 } },
3955 	{ 0x0081, { 0,	 10800, 120 } },
3956 	{ 0x0082, { 0,	 10800, 120 } },
3957 	{ 0x2081, { 0x400, 10800, 127 } },
3958 	{ 0x2082, { 0x400, 10800, 127 } },
3959 	{ 0x0081, { 0,	 10800, 135 } },
3960 	{ 0x0082, { 0,	 10800, 135 } },
3961 	{ 0x2081, { 0x400, 10800, 142 } },
3962 	{ 0x2082, { 0x400, 10800, 142 } },
3963 	{ 0x0081, { 0,	 10800, 150 } },
3964 	{ 0x0082, { 0,	 10800, 150 } },
3965 	{ 0x2081, { 0x400, 10800, 157 } },
3966 	{ 0x2082, { 0x400, 10800, 157 } },
3967 	{ 0x0081, { 0,	 10800, 165 } },
3968 	{ 0x0082, { 0,	 10800, 165 } },
3969 	{ 0x2081, { 0x400, 10800, 172 } },
3970 	{ 0x2082, { 0x400, 10800, 172 } },
3971 	{ 0x0081, { 0,	 10800, 180 } },
3972 	{ 0x0082, { 0,	 10800, 180 } },
3973 	{ 0x2081, { 0x400, 10800, 187 } },
3974 	{ 0x2082, { 0x400, 10800, 187 } },
3975 	{ 0x0081, { 0,	 10800, 195 } },
3976 	{ 0x0082, { 0,	 10800, 195 } },
3977 	{ 0x2081, { 0x400, 10800, 202 } },
3978 	{ 0x2082, { 0x400, 10800, 202 } },
3979 	{ 0x0081, { 0,	 10800, 210 } },
3980 	{ 0x0082, { 0,	 10800, 210 } },
3981 	{ 0x2081, { 0x400, 10800, 217 } },
3982 	{ 0x2082, { 0x400, 10800, 217 } },
3983 	{ 0x0081, { 0,	 10800, 225 } },
3984 	{ 0x0082, { 0,	 10800, 225 } },
3985 	{ 0x2081, { 0x400, 10800, 232 } },
3986 	{ 0x2082, { 0x400, 10800, 232 } },
3987 	{ 0x0081, { 0,	 10800, 240 } },
3988 	{ 0x0082, { 0,	 10800, 240 } },
3989 	{ 0x2081, { 0x400, 10800, 247 } },
3990 	{ 0x2082, { 0x400, 10800, 247 } },
3991 	{ 0x0081, { 0,	 10800, 255 } },
3992 	{ 0x0082, { 0,	 10800, 255 } },
3993 	{ 0x2081, { 0x400, 10800, 262 } },
3994 	{ 0x2082, { 0x400, 10800, 262 } },
3995 	{ 0x0081, { 0,	 10800, 270 } },
3996 	{ 0x0082, { 0,	 10800, 270 } },
3997 	{ 0x2081, { 0x400, 10800, 277 } },
3998 	{ 0x2082, { 0x400, 10800, 277 } },
3999 	{ 0x0081, { 0,	 10800, 285 } },
4000 	{ 0x0082, { 0,	 10800, 285 } },
4001 	{ 0x2081, { 0x400, 10800, 292 } },
4002 	{ 0x2082, { 0x400, 10800, 292 } },
4003 	{ 0x0081, { 0,	 10800, 300 } },
4004 	{ 0x0082, { 0,	 10800, 300 } },
4005 	{ 0x2081, { 0x400, 10800, 307 } },
4006 	{ 0x2082, { 0x400, 10800, 307 } },
4007 	{ 0x0081, { 0,	 10800, 315 } },
4008 	{ 0x0082, { 0,	 10800, 315 } },
4009 	{ 0x2081, { 0x400, 10800, 322 } },
4010 	{ 0x2082, { 0x400, 10800, 322 } },
4011 	{ 0x0081, { 0,	 10800, 330 } },
4012 	{ 0x0082, { 0,	 10800, 330 } },
4013 	{ 0x2081, { 0x400, 10800, 337 } },
4014 	{ 0x2082, { 0x400, 10800, 337 } },
4015 	{ 0x0081, { 0,	 10800, 345 } },
4016 	{ 0x0082, { 0,	 10800, 345 } },
4017 	{ 0x2081, { 0x400, 10800, 352 } },
4018 	{ 0x2082, { 0x400, 10800, 352 } }
4019 };
4020 static const SvxMSDffVertPair mso_sptSeal8Vert[] =	// adj value 0 -> 10800
4021 {
4022 	{ 5 MSO_I, 6 MSO_I }, { 11 MSO_I, 12 MSO_I }, { 17 MSO_I, 18 MSO_I }, { 23 MSO_I, 24 MSO_I },
4023 	{ 29 MSO_I, 30 MSO_I }, { 35 MSO_I, 36 MSO_I }, { 41 MSO_I, 42 MSO_I }, { 47 MSO_I, 48 MSO_I },
4024 	{ 53 MSO_I, 54 MSO_I }, { 59 MSO_I, 60 MSO_I }, { 65 MSO_I, 66 MSO_I }, { 71 MSO_I, 72 MSO_I },
4025 	{ 77 MSO_I, 78 MSO_I }, { 83 MSO_I, 84 MSO_I }, { 89 MSO_I, 90 MSO_I }, { 95 MSO_I, 96 MSO_I },
4026 	{ 5 MSO_I, 6 MSO_I }
4027 };
4028 static const SvxMSDffTextRectangles mso_sptSealTextRect[] =
4029 {
4030 	{ { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
4031 };
4032 static const mso_CustomShape msoSeal8 =
4033 {
4034 	(SvxMSDffVertPair*)mso_sptSeal8Vert, sizeof( mso_sptSeal8Vert ) / sizeof( SvxMSDffVertPair ),
4035 	NULL, 0,
4036 	(SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
4037 	(sal_Int32*)mso_sptDefault2500,
4038 	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4039 	21600, 21600,
4040 	0x80000000, 0x80000000,
4041 	NULL, 0,
4042 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )		// handles
4043 };
4044 static const SvxMSDffVertPair mso_sptSeal16Vert[] =	// adj value 0 -> 10800
4045 {
4046 	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4047 	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4048 	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4049 	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4050 	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4051 	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4052 	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4053 	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4054 	{ 0x05 MSO_I, 0x06 MSO_I }
4055 };
4056 static const SvxMSDffCalculationData mso_sptSeal16Calc[] =
4057 {
4058 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0x00
4059 	{ 0x2081, { 0x400, 10800, 315 } },				// 0x01	( textframe )
4060 	{ 0x2082, { 0x400, 10800, 315 } },				// 0x02
4061 	{ 0x2081, { 0x400, 10800, 135 } },				// 0x03
4062 	{ 0x2082, { 0x400, 10800, 135 } },				// 0x04
4063 	{ 0x0081, { 0,	 10800, 0 } },
4064 	{ 0x0082, { 0,	 10800, 0 } },
4065 	{ 0x2081, { 0x400, 10800, 11 } },
4066 	{ 0x2082, { 0x400, 10800, 11 } },
4067 	{ 0x0081, { 0,	 10800, 22 } },
4068 	{ 0x0082, { 0,	 10800, 22 } },
4069 	{ 0x2081, { 0x400, 10800, 33 } },
4070 	{ 0x2082, { 0x400, 10800, 33 } },
4071 	{ 0x0081, { 0,	 10800, 45 } },
4072 	{ 0x0082, { 0,	 10800, 45 } },
4073 	{ 0x2081, { 0x400, 10800, 56 } },
4074 	{ 0x2082, { 0x400, 10800, 56 } },
4075 	{ 0x0081, { 0,	 10800, 67 } },
4076 	{ 0x0082, { 0,	 10800, 67 } },
4077 	{ 0x2081, { 0x400, 10800, 78 } },
4078 	{ 0x2082, { 0x400, 10800, 78 } },
4079 	{ 0x0081, { 0,	 10800, 90 } },
4080 	{ 0x0082, { 0,	 10800, 90 } },
4081 	{ 0x2081, { 0x400, 10800, 101 } },
4082 	{ 0x2082, { 0x400, 10800, 101 } },
4083 	{ 0x0081, { 0,	 10800, 112 } },
4084 	{ 0x0082, { 0,	 10800, 112 } },
4085 	{ 0x2081, { 0x400, 10800, 123 } },
4086 	{ 0x2082, { 0x400, 10800, 123 } },
4087 	{ 0x0081, { 0,	 10800, 135 } },
4088 	{ 0x0082, { 0,	 10800, 135 } },
4089 	{ 0x2081, { 0x400, 10800, 146 } },
4090 	{ 0x2082, { 0x400, 10800, 146 } },
4091 	{ 0x0081, { 0,	 10800, 157 } },
4092 	{ 0x0082, { 0,	 10800, 157 } },
4093 	{ 0x2081, { 0x400, 10800, 168 } },
4094 	{ 0x2082, { 0x400, 10800, 168 } },
4095 	{ 0x0081, { 0,	 10800, 180 } },
4096 	{ 0x0082, { 0,	 10800, 180 } },
4097 	{ 0x2081, { 0x400, 10800, 191 } },
4098 	{ 0x2082, { 0x400, 10800, 191 } },
4099 	{ 0x0081, { 0,	 10800, 202 } },
4100 	{ 0x0082, { 0,	 10800, 202 } },
4101 	{ 0x2081, { 0x400, 10800, 213 } },
4102 	{ 0x2082, { 0x400, 10800, 213 } },
4103 	{ 0x0081, { 0,	 10800, 225 } },
4104 	{ 0x0082, { 0,	 10800, 225 } },
4105 	{ 0x2081, { 0x400, 10800, 236 } },
4106 	{ 0x2082, { 0x400, 10800, 236 } },
4107 	{ 0x0081, { 0,	 10800, 247 } },
4108 	{ 0x0082, { 0,	 10800, 247 } },
4109 	{ 0x2081, { 0x400, 10800, 258 } },
4110 	{ 0x2082, { 0x400, 10800, 258 } },
4111 	{ 0x0081, { 0,	 10800, 270 } },
4112 	{ 0x0082, { 0,	 10800, 270 } },
4113 	{ 0x2081, { 0x400, 10800, 281 } },
4114 	{ 0x2082, { 0x400, 10800, 281 } },
4115 	{ 0x0081, { 0,	 10800, 292 } },
4116 	{ 0x0082, { 0,	 10800, 292 } },
4117 	{ 0x2081, { 0x400, 10800, 303 } },
4118 	{ 0x2082, { 0x400, 10800, 303 } },
4119 	{ 0x0081, { 0,	 10800, 315 } },
4120 	{ 0x0082, { 0,	 10800, 315 } },
4121 	{ 0x2081, { 0x400, 10800, 326 } },
4122 	{ 0x2082, { 0x400, 10800, 326 } },
4123 	{ 0x0081, { 0,	 10800, 337 } },
4124 	{ 0x0082, { 0,	 10800, 337 } },
4125 	{ 0x2081, { 0x400, 10800, 348 } },
4126 	{ 0x2082, { 0x400, 10800, 348 } }
4127 };
4128 static const mso_CustomShape msoSeal16 =
4129 {
4130 	(SvxMSDffVertPair*)mso_sptSeal16Vert, sizeof( mso_sptSeal16Vert ) / sizeof( SvxMSDffVertPair ),
4131 	NULL, 0,
4132 	(SvxMSDffCalculationData*)mso_sptSeal16Calc, sizeof( mso_sptSeal16Calc ) / sizeof( SvxMSDffCalculationData ),
4133 	(sal_Int32*)mso_sptDefault2500,
4134 	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4135 	21600, 21600,
4136 	0x80000000, 0x80000000,
4137 	NULL, 0,
4138 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )		// handles
4139 };
4140 static const SvxMSDffVertPair mso_sptSeal24Vert[] =
4141 {
4142 	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4143 	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4144 	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4145 	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4146 	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4147 	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4148 	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4149 	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4150 	{ 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4151 	{ 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4152 	{ 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4153 	{ 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4154 	{ 0x05 MSO_I, 0x06 MSO_I }
4155 };
4156 static const mso_CustomShape msoSeal24 =
4157 {
4158 	(SvxMSDffVertPair*)mso_sptSeal24Vert, sizeof( mso_sptSeal24Vert ) / sizeof( SvxMSDffVertPair ),
4159 	NULL, 0,
4160 	(SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
4161 	(sal_Int32*)mso_sptDefault2500,
4162 	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4163 	21600, 21600,
4164 	0x80000000, 0x80000000,
4165 	NULL, 0,
4166 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )		// handles
4167 };
4168 static const SvxMSDffCalculationData mso_sptSeal32Calc[] =
4169 {
4170 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0x00
4171 	{ 0x2081, { 0x400, 10800, 315 } },				// 0x01	( textframe )
4172 	{ 0x2082, { 0x400, 10800, 315 } },				// 0x02
4173 	{ 0x2081, { 0x400, 10800, 135 } },				// 0x03
4174 	{ 0x2082, { 0x400, 10800, 135 } },				// 0x04
4175 	{ 0x0081, { 0,	 10800, 0 } },
4176 	{ 0x0082, { 0,	 10800, 0 } },
4177 	{ 0x2081, { 0x400, 10800, 5 } },
4178 	{ 0x2082, { 0x400, 10800, 5 } },
4179 	{ 0x0081, { 0,	 10800, 11 } },
4180 	{ 0x0082, { 0,	 10800, 11 } },
4181 	{ 0x2081, { 0x400, 10800, 16 } },
4182 	{ 0x2082, { 0x400, 10800, 16 } },
4183 	{ 0x0081, { 0,	 10800, 22 } },
4184 	{ 0x0082, { 0,	 10800, 22 } },
4185 	{ 0x2081, { 0x400, 10800, 28 } },
4186 	{ 0x2082, { 0x400, 10800, 28 } },
4187 	{ 0x0081, { 0,	 10800, 33 } },
4188 	{ 0x0082, { 0,	 10800, 33 } },
4189 	{ 0x2081, { 0x400, 10800, 39 } },
4190 	{ 0x2082, { 0x400, 10800, 39 } },
4191 	{ 0x0081, { 0,	 10800, 45 } },
4192 	{ 0x0082, { 0,	 10800, 45 } },
4193 	{ 0x2081, { 0x400, 10800, 50 } },
4194 	{ 0x2082, { 0x400, 10800, 50 } },
4195 	{ 0x0081, { 0,	 10800, 56 } },
4196 	{ 0x0082, { 0,	 10800, 56 } },
4197 	{ 0x2081, { 0x400, 10800, 61 } },
4198 	{ 0x2082, { 0x400, 10800, 61 } },
4199 	{ 0x0081, { 0,	 10800, 67 } },
4200 	{ 0x0082, { 0,	 10800, 67 } },
4201 	{ 0x2081, { 0x400, 10800, 73 } },
4202 	{ 0x2082, { 0x400, 10800, 73 } },
4203 	{ 0x0081, { 0,	 10800, 78 } },
4204 	{ 0x0082, { 0,	 10800, 78 } },
4205 	{ 0x2081, { 0x400, 10800, 84 } },
4206 	{ 0x2082, { 0x400, 10800, 84 } },
4207 	{ 0x0081, { 0,	 10800, 90 } },
4208 	{ 0x0082, { 0,	 10800, 90 } },
4209 	{ 0x2081, { 0x400, 10800, 95 } },
4210 	{ 0x2082, { 0x400, 10800, 95 } },
4211 	{ 0x0081, { 0,	 10800, 101 } },
4212 	{ 0x0082, { 0,	 10800, 101 } },
4213 	{ 0x2081, { 0x400, 10800, 106 } },
4214 	{ 0x2082, { 0x400, 10800, 106 } },
4215 	{ 0x0081, { 0,	 10800, 112 } },
4216 	{ 0x0082, { 0,	 10800, 112 } },
4217 	{ 0x2081, { 0x400, 10800, 118 } },
4218 	{ 0x2082, { 0x400, 10800, 118 } },
4219 	{ 0x0081, { 0,	 10800, 123 } },
4220 	{ 0x0082, { 0,	 10800, 123 } },
4221 	{ 0x2081, { 0x400, 10800, 129 } },
4222 	{ 0x2082, { 0x400, 10800, 129 } },
4223 	{ 0x0081, { 0,	 10800, 135 } },
4224 	{ 0x0082, { 0,	 10800, 135 } },
4225 	{ 0x2081, { 0x400, 10800, 140 } },
4226 	{ 0x2082, { 0x400, 10800, 140 } },
4227 	{ 0x0081, { 0,	 10800, 146 } },
4228 	{ 0x0082, { 0,	 10800, 146 } },
4229 	{ 0x2081, { 0x400, 10800, 151 } },
4230 	{ 0x2082, { 0x400, 10800, 151 } },
4231 	{ 0x0081, { 0,	 10800, 157 } },
4232 	{ 0x0082, { 0,	 10800, 157 } },
4233 	{ 0x2081, { 0x400, 10800, 163 } },
4234 	{ 0x2082, { 0x400, 10800, 163 } },
4235 	{ 0x0081, { 0,	 10800, 168 } },
4236 	{ 0x0082, { 0,	 10800, 168 } },
4237 	{ 0x2081, { 0x400, 10800, 174 } },
4238 	{ 0x2082, { 0x400, 10800, 174 } },
4239 	{ 0x0081, { 0,	 10800, 180 } },
4240 	{ 0x0082, { 0,	 10800, 180 } },
4241 	{ 0x2081, { 0x400, 10800, 185 } },
4242 	{ 0x2082, { 0x400, 10800, 185 } },
4243 	{ 0x0081, { 0,	 10800, 191 } },
4244 	{ 0x0082, { 0,	 10800, 191 } },
4245 	{ 0x2081, { 0x400, 10800, 196 } },
4246 	{ 0x2082, { 0x400, 10800, 196 } },
4247 	{ 0x0081, { 0,	 10800, 202 } },
4248 	{ 0x0082, { 0,	 10800, 202 } },
4249 	{ 0x2081, { 0x400, 10800, 208 } },
4250 	{ 0x2082, { 0x400, 10800, 208 } },
4251 	{ 0x0081, { 0,	 10800, 213 } },
4252 	{ 0x0082, { 0,	 10800, 213 } },
4253 	{ 0x2081, { 0x400, 10800, 219 } },
4254 	{ 0x2082, { 0x400, 10800, 219 } },
4255 	{ 0x0081, { 0,	 10800, 225 } },
4256 	{ 0x0082, { 0,	 10800, 225 } },
4257 	{ 0x2081, { 0x400, 10800, 230 } },
4258 	{ 0x2082, { 0x400, 10800, 230 } },
4259 	{ 0x0081, { 0,	 10800, 236 } },
4260 	{ 0x0082, { 0,	 10800, 236 } },
4261 	{ 0x2081, { 0x400, 10800, 241 } },
4262 	{ 0x2082, { 0x400, 10800, 241 } },
4263 	{ 0x0081, { 0,	 10800, 247 } },
4264 	{ 0x0082, { 0,	 10800, 247 } },
4265 	{ 0x2081, { 0x400, 10800, 253 } },
4266 	{ 0x2082, { 0x400, 10800, 253 } },
4267 	{ 0x0081, { 0,	 10800, 258 } },
4268 	{ 0x0082, { 0,	 10800, 258 } },
4269 	{ 0x2081, { 0x400, 10800, 264 } },
4270 	{ 0x2082, { 0x400, 10800, 264 } },
4271 	{ 0x0081, { 0,	 10800, 270 } },
4272 	{ 0x0082, { 0,	 10800, 270 } },
4273 	{ 0x2081, { 0x400, 10800, 275 } },
4274 	{ 0x2082, { 0x400, 10800, 275 } },
4275 	{ 0x0081, { 0,	 10800, 281 } },
4276 	{ 0x0082, { 0,	 10800, 281 } },
4277 	{ 0x2081, { 0x400, 10800, 286 } },
4278 	{ 0x2082, { 0x400, 10800, 286 } },
4279 	{ 0x0081, { 0,	 10800, 292 } },
4280 	{ 0x0082, { 0,	 10800, 292 } },
4281 	{ 0x2081, { 0x400, 10800, 298 } },
4282 	{ 0x2082, { 0x400, 10800, 298 } },
4283 	{ 0x0081, { 0,	 10800, 303 } },
4284 	{ 0x0082, { 0,	 10800, 303 } },
4285 	{ 0x2081, { 0x400, 10800, 309 } },
4286 	{ 0x2082, { 0x400, 10800, 309 } },
4287 	{ 0x0081, { 0,	 10800, 315 } },
4288 	{ 0x0082, { 0,	 10800, 315 } },
4289 	{ 0x2081, { 0x400, 10800, 320 } },
4290 	{ 0x2082, { 0x400, 10800, 320 } },
4291 	{ 0x0081, { 0,	 10800, 326 } },
4292 	{ 0x0082, { 0,	 10800, 326 } },
4293 	{ 0x2081, { 0x400, 10800, 331 } },
4294 	{ 0x2082, { 0x400, 10800, 331 } },
4295 	{ 0x0081, { 0,	 10800, 337 } },
4296 	{ 0x0082, { 0,	 10800, 337 } },
4297 	{ 0x2081, { 0x400, 10800, 343 } },
4298 	{ 0x2082, { 0x400, 10800, 343 } },
4299 	{ 0x0081, { 0,	 10800, 348 } },
4300 	{ 0x0082, { 0,	 10800, 348 } },
4301 	{ 0x2081, { 0x400, 10800, 354 } },
4302 	{ 0x2082, { 0x400, 10800, 354 } }
4303 };
4304 static const SvxMSDffVertPair mso_sptSeal32Vert[] =
4305 {
4306 	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4307 	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4308 	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4309 	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4310 	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4311 	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4312 	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4313 	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4314 	{ 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4315 	{ 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4316 	{ 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4317 	{ 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4318 	{ 0x65 MSO_I, 0x66 MSO_I }, { 0x67 MSO_I, 0x68 MSO_I }, { 0x69 MSO_I, 0x6a MSO_I }, { 0x6b MSO_I, 0x6c MSO_I },
4319 	{ 0x6d MSO_I, 0x6e MSO_I }, { 0x6f MSO_I, 0x70 MSO_I }, { 0x71 MSO_I, 0x72 MSO_I }, { 0x73 MSO_I, 0x74 MSO_I },
4320 	{ 0x75 MSO_I, 0x76 MSO_I }, { 0x77 MSO_I, 0x78 MSO_I }, { 0x79 MSO_I, 0x7a MSO_I }, { 0x7b MSO_I, 0x7c MSO_I },
4321 	{ 0x7d MSO_I, 0x7e MSO_I }, { 0x7f MSO_I, 0x80 MSO_I }, { 0x81 MSO_I, 0x82 MSO_I }, { 0x83 MSO_I, 0x84 MSO_I },
4322 	{ 0x05 MSO_I, 0x06 MSO_I }
4323 };
4324 static const mso_CustomShape msoSeal32 =
4325 {
4326 	(SvxMSDffVertPair*)mso_sptSeal32Vert, sizeof( mso_sptSeal32Vert ) / sizeof( SvxMSDffVertPair ),
4327 	NULL, 0,
4328 	(SvxMSDffCalculationData*)mso_sptSeal32Calc, sizeof( mso_sptSeal32Calc ) / sizeof( SvxMSDffCalculationData ),
4329 	(sal_Int32*)mso_sptDefault2500,
4330 	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4331 	21600, 21600,
4332 	0x80000000, 0x80000000,
4333 	NULL, 0,
4334 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )
4335 };
4336 
4337 static const SvxMSDffVertPair mso_sptRibbon2Vert[] =	// adjustment1 : x 2700	 - 8100		def 5400
4338 {														// adjustment2 : y 14400 - 21600	def 18900
4339 	{ 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },										// pp
4340 	{ 12 MSO_I, 14 MSO_I }, { 15 MSO_I, 21600 }, { 16 MSO_I, 21600 },					// ccp
4341 	{ 0, 21600 }, { 2750, 7 MSO_I }, { 0, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },				// pppp
4342 	{ 0 MSO_I, 4 MSO_I },																// p
4343 	{ 0 MSO_I, 5 MSO_I }, { 10 MSO_I, 0 }, { 11 MSO_I, 0 },								// ccp
4344 	{ 17 MSO_I, 0 },																	// p
4345 	{ 18 MSO_I, 0 }, { 19 MSO_I, 5 MSO_I }, { 19 MSO_I, 4 MSO_I },						// ccp
4346 	{ 19 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }, { 18850, 7 MSO_I }, { 21600, 21600 },	// pppp
4347 	{ 20 MSO_I, 21600 },																// p
4348 	{ 21 MSO_I, 21600 }, { 22 MSO_I, 14 MSO_I }, { 22 MSO_I, 13 MSO_I },				// ccp
4349 	{ 22 MSO_I, 1 MSO_I }, { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },				// ppp
4350 	{ 12 MSO_I, 23 MSO_I }, { 15 MSO_I, 24 MSO_I }, { 16 MSO_I, 24 MSO_I },				// ccp
4351 	{ 11 MSO_I, 24 MSO_I },																// p
4352 	{ 10 MSO_I, 24 MSO_I }, { 0 MSO_I, 26 MSO_I }, { 0 MSO_I, 25 MSO_I },				// ccp
4353 	{ 0 MSO_I, 27 MSO_I }, { 10 MSO_I, 1 MSO_I }, { 11 MSO_I, 1 MSO_I },				// ccp
4354 
4355 	{ 22 MSO_I, 1 MSO_I }, { 22 MSO_I, 13 MSO_I },										// pp
4356 	{ 22 MSO_I, 23 MSO_I }, { 21 MSO_I, 24 MSO_I }, { 20 MSO_I, 24 MSO_I },				// ccp
4357 	{ 17 MSO_I, 24 MSO_I },																// p
4358 	{ 18 MSO_I, 24 MSO_I }, { 19 MSO_I, 26 MSO_I }, { 19 MSO_I, 25 MSO_I },				// ccp
4359 	{ 19 MSO_I, 27 MSO_I }, { 18 MSO_I, 1 MSO_I }, { 17 MSO_I, 1 MSO_I },				// ccp
4360 
4361 	{ 0 MSO_I, 25 MSO_I }, { 0 MSO_I, 2 MSO_I },										// pp
4362 
4363 	{ 19 MSO_I, 25 MSO_I }, { 19 MSO_I, 2 MSO_I }										// pp
4364 };
4365 static const sal_uInt16 mso_sptRibbon2Segm[] =
4366 {
4367 	0x4000, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x6001, 0x8000,
4368 	0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4369 	0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4370 	0x4000, 0x0001, 0x8000,
4371 	0x4000, 0x0001, 0x8000
4372 };
4373 static const SvxMSDffCalculationData mso_sptRibbon2Calc[] =
4374 {
4375 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },				// 00
4376 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },			// 01
4377 	{ 0x8000, { 21600, 0, 0x401 } },						// 02
4378 	{ 0x2001, { 0x402, 1, 2 } },							// 03
4379 	{ 0x2001, { 0x403, 1, 2 } },							// 04
4380 	{ 0x2001, { 0x404, 1, 2 } },							// 05
4381 	{ 0x2001, { 0x401, 1, 2 } },							// 06
4382 	{ 0x8000, { 21600, 0, 0x406 } },						// 07
4383 	{ 0x0000, { 420, 0, 0 } },								// 08
4384 	{ 0x2001, { 0x408, 2, 1 } },							// 09
4385 	{ 0x6000, { 0x400, 0x408, 0 } },						// 10
4386 	{ 0x6000, { 0x400, 0x409, 0 } },						// 11
4387 	{ 0x2000, { 0x400, 2700, 0 } },							// 12
4388 	{ 0x8000, { 21600, 0, 0x404 } },						// 13
4389 	{ 0x8000, { 21600, 0, 0x405 } },						// 14
4390 	{ 0xa000, { 0x40c, 0, 0x408 } },						// 15
4391 	{ 0xa000, { 0x40c, 0, 0x409 } },						// 16
4392 
4393 	{ 0x8000, { 21600, 0, 0x40b } },						// 17
4394 	{ 0x8000, { 21600, 0, 0x40a } },						// 18
4395 	{ 0x8000, { 21600, 0, 0x400 } },						// 19
4396 	{ 0x8000, { 21600, 0, 0x410 } },						// 20
4397 	{ 0x8000, { 21600, 0, 0x40f } },						// 21
4398 	{ 0x8000, { 21600, 0, 0x40c } },						// 22
4399 
4400 	{ 0xa000, { 0x40d, 0, 0x405 } },						// 23
4401 	{ 0x6000, { 0x401, 0x403, 0 } },						// 24
4402 	{ 0x6000, { 0x401, 0x404, 0 } },						// 25
4403 	{ 0x6000, { 0x419, 0x405, 0 } },						// 26
4404 	{ 0xa000, { 0x419, 0, 0x405 } }							// 27
4405 };
4406 static const sal_Int32 mso_sptRibbon2Default[] =
4407 {
4408 	2, 5400, 18900
4409 };
4410 static const SvxMSDffTextRectangles mso_sptRibbon2TextRect[] =
4411 {
4412 	{ { 0 MSO_I, 0 }, { 19 MSO_I, 1 MSO_I } }
4413 };
4414 static const SvxMSDffHandle mso_sptRibbon2Handle[] =
4415 {
4416 	{	MSDFF_HANDLE_FLAGS_RANGE,
4417 		0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff },
4418 	{	MSDFF_HANDLE_FLAGS_RANGE,
4419 		10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 }
4420 };
4421 static const mso_CustomShape msoRibbon2 =
4422 {
4423 	(SvxMSDffVertPair*)mso_sptRibbon2Vert, sizeof( mso_sptRibbon2Vert ) / sizeof( SvxMSDffVertPair ),
4424 	(sal_uInt16*)mso_sptRibbon2Segm, sizeof( mso_sptRibbon2Segm ) >> 1,
4425 	(SvxMSDffCalculationData*)mso_sptRibbon2Calc, sizeof( mso_sptRibbon2Calc ) / sizeof( SvxMSDffCalculationData ),
4426 	(sal_Int32*)mso_sptRibbon2Default,
4427 	(SvxMSDffTextRectangles*)mso_sptRibbon2TextRect, sizeof( mso_sptRibbon2TextRect ) / sizeof( SvxMSDffTextRectangles ),
4428 	21600, 21600,
4429 	0x80000000, 0x80000000,
4430 	NULL, 0,
4431 	(SvxMSDffHandle*)mso_sptRibbon2Handle, sizeof( mso_sptRibbon2Handle ) / sizeof( SvxMSDffHandle )
4432 };
4433 
4434 static const SvxMSDffVertPair mso_sptRibbonVert[] =
4435 {
4436 	{ 0, 0 }, { 3 MSO_I, 0 },
4437 	{ 4 MSO_I, 11 MSO_I }, { 4 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I }, { 5 MSO_I, 11 MSO_I },
4438 	{ 6 MSO_I, 0 }, { 21600, 0 }, { 18 MSO_I, 14 MSO_I }, { 21600, 15 MSO_I }, { 9 MSO_I, 15 MSO_I }, { 9 MSO_I, 16 MSO_I }, { 8 MSO_I, 21600 }, { 1 MSO_I, 21600 },
4439 	{ 0 MSO_I, 16 MSO_I }, { 0 MSO_I, 15 MSO_I }, { 0, 15 MSO_I }, { 2700, 14 MSO_I },
4440 
4441 	{ 4 MSO_I, 11 MSO_I },
4442 	{ 3 MSO_I, 12 MSO_I }, { 1 MSO_I, 12 MSO_I },
4443 	{ 0 MSO_I, 13 MSO_I }, { 1 MSO_I, 10 MSO_I }, { 4 MSO_I, 10 MSO_I },
4444 	{ 5 MSO_I, 11 MSO_I },
4445 	{ 6 MSO_I, 12 MSO_I }, { 8 MSO_I, 12 MSO_I },
4446 	{ 9 MSO_I, 13 MSO_I }, { 8 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I },
4447 	{ 0 MSO_I, 13 MSO_I },
4448 	{ 0 MSO_I, 15 MSO_I },
4449 	{ 9 MSO_I, 13 MSO_I },
4450 	{ 9 MSO_I, 15 MSO_I }
4451 };
4452 static const sal_uInt16 mso_sptRibbonSegm[] =
4453 {
4454 	0x4000, 0x0001, 0xa701, 0x0003, 0xa801, 0x0005, 0xa801, 0x0001, 0xa701, 0x0003, 0x6000, 0x8000,
4455 	0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4456 	0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4457 	0x4000, 0xaa00, 0x0001, 0x8000,
4458 	0x4000, 0xaa00, 0x0001, 0x8000
4459 };
4460 static const SvxMSDffCalculationData mso_sptRibbonCalc[] =
4461 {
4462 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },				// 00
4463 	{ 0x2000, { 0x400, 675, 0 } },							// 01
4464 	{ 0x2000, { 0x401, 675, 0 } },							// 02
4465 	{ 0x2000, { 0x402, 675, 0 } },							// 03
4466 	{ 0x2000, { 0x403, 675, 0 } },							// 04
4467 	{ 0x8000, { 21600, 0, 0x404 } },						// 05
4468 	{ 0x8000, { 21600, 0, 0x403 } },						// 06
4469 	{ 0x8000, { 21600, 0, 0x402 } },						// 07
4470 	{ 0x8000, { 21600, 0, 0x401 } },						// 08
4471 	{ 0x8000, { 21600, 0, 0x400 } },						// 09
4472 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },			// 10
4473 	{ 0x2001, { 0x40a, 1, 4 } },							// 11
4474 	{ 0x2001, { 0x40b, 2, 1 } },							// 12
4475 	{ 0x2001, { 0x40b, 3, 1 } },							// 13
4476 	{ 0x8000, { 10800, 0, 0x40c } },						// 14
4477 	{ 0x8000, { 21600, 0, 0x40a } },						// 15
4478 	{ 0x8000, { 21600, 0, 0x40b } },						// 16
4479 	{ 0x0001, { 21600, 1, 2 } },							// 17
4480 	{ 0x0000, { 21600, 0, 2700 } },							// 18
4481 	{ 0x2000, { 0x411, 0, 2700 } }							// 19
4482 };
4483 static const sal_Int32 mso_sptRibbonDefault[] =
4484 {
4485 	2, 5400, 2700
4486 };
4487 static const SvxMSDffTextRectangles mso_sptRibbonTextRect[] =
4488 {
4489 	{ { 0 MSO_I, 10 MSO_I }, { 9 MSO_I, 21600 } }
4490 };
4491 static const SvxMSDffVertPair mso_sptRibbonGluePoints[] =
4492 {
4493 	{ 17 MSO_I, 10 MSO_I }, { 2700, 14 MSO_I }, { 17 MSO_I, 21600 }, { 18 MSO_I, 14 MSO_I }
4494 };
4495 static const SvxMSDffHandle mso_sptRibbonHandle[] =
4496 {
4497 	{	MSDFF_HANDLE_FLAGS_RANGE,
4498 		0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff },
4499 	{	MSDFF_HANDLE_FLAGS_RANGE,
4500 		10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 }
4501 };
4502 static const mso_CustomShape msoRibbon =
4503 {
4504 	(SvxMSDffVertPair*)mso_sptRibbonVert, sizeof( mso_sptRibbonVert ) / sizeof( SvxMSDffVertPair ),
4505 	(sal_uInt16*)mso_sptRibbonSegm, sizeof( mso_sptRibbonSegm ) >> 1,
4506 	(SvxMSDffCalculationData*)mso_sptRibbonCalc, sizeof( mso_sptRibbonCalc ) / sizeof( SvxMSDffCalculationData ),
4507 	(sal_Int32*)mso_sptRibbonDefault,
4508 	(SvxMSDffTextRectangles*)mso_sptRibbonTextRect, sizeof( mso_sptRibbonTextRect ) / sizeof( SvxMSDffTextRectangles ),
4509 	21600, 21600,
4510 	0x80000000, 0x80000000,
4511 	(SvxMSDffVertPair*)mso_sptRibbonGluePoints, sizeof( mso_sptRibbonGluePoints ) / sizeof( SvxMSDffVertPair ),
4512 	(SvxMSDffHandle*)mso_sptRibbonHandle, sizeof( mso_sptRibbonHandle ) / sizeof( SvxMSDffHandle )
4513 };
4514 
4515 static const SvxMSDffVertPair mso_sptVerticalScrollVert[] =	// adjustment1 : 0 - 5400
4516 {
4517 	{ 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I }, { 0 MSO_I, 12 MSO_I },
4518 	{ 0 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I },
4519 	{ 2 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 11 MSO_I }, { 5 MSO_I, 21600 },
4520 
4521 	{ 6 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 4 MSO_I, 1 MSO_I },
4522 
4523 	{ 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I },
4524 	{ 9 MSO_I, 10 MSO_I }, { 1 MSO_I, 11 MSO_I },
4525 
4526 	{ 4 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I },
4527 
4528 	{ 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
4529 
4530 	{ 4 MSO_I, 0 MSO_I },
4531 	{ 2 MSO_I, 0 MSO_I }
4532 };
4533 static const sal_uInt16 mso_sptVerticalScrollSegm[] =
4534 {
4535 	0x4000, 0xa702,	0x0002,	0xa801, 0x0001, 0xa702, 0x0002, 0xa801, 0x6001, 0x8000,
4536 	0x4000, 0xa801, 0xa702, 0x6000, 0x8000,
4537 	0x4000, 0xa803, 0xa702, 0x6001, 0x8000,
4538 	0x4000, 0xa701, 0x8000,
4539 	0x4000, 0x0001, 0x8000,
4540 	0x4000, 0x0001, 0x8000
4541 };
4542 static const SvxMSDffCalculationData mso_sptScrollCalc[] =
4543 {
4544 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
4545 	{ 0x2001, { 0x400, 1, 2 } },
4546 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x401 } },
4547 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
4548 	{ 0x6000, { 0x400, 0x401, 0 } },
4549 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
4550 	{ 0x2001, { 0x400, 2, 1 } },
4551 	{ 0x2001, { 0x401, 1, 2 } },
4552 	{ 0x6000, { 0x400, 0x407, 0 } },
4553 	{ 0x6000, { 0x401, 0x407, 0 } },
4554 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } },
4555 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },
4556 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
4557 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
4558 };
4559 static const SvxMSDffTextRectangles mso_sptScrollTextRect[] =
4560 {
4561 	{ { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 12 MSO_I } }
4562 };
4563 static const SvxMSDffHandle mso_sptVerticalScrollHandle[] =
4564 {
4565 	{	MSDFF_HANDLE_FLAGS_RANGE,
4566 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }
4567 };
4568 static const mso_CustomShape msoVerticalScroll =
4569 {
4570 	(SvxMSDffVertPair*)mso_sptVerticalScrollVert, sizeof( mso_sptVerticalScrollVert ) / sizeof( SvxMSDffVertPair ),
4571 	(sal_uInt16*)mso_sptVerticalScrollSegm, sizeof( mso_sptVerticalScrollSegm ) >> 1,
4572 	(SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ),
4573 	(sal_Int32*)mso_sptDefault2700,
4574 	(SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ),
4575 	21600, 21600,
4576 	11000, 10800,
4577 	NULL, 0,
4578 	(SvxMSDffHandle*)mso_sptVerticalScrollHandle, sizeof( mso_sptVerticalScrollHandle ) / sizeof( SvxMSDffHandle )
4579 };
4580 static const SvxMSDffVertPair mso_sptHorizontalScrollVert[] =	// adjustment1 : 0 - 5400
4581 {
4582 	{ 0, 4 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 1 MSO_I },
4583 	{ 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 13 MSO_I }, { 2 MSO_I, 12 MSO_I },
4584 	{ 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I },
4585 
4586 	{ 1 MSO_I, 4 MSO_I }, { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 6 MSO_I },
4587 
4588 	{ 2 MSO_I, 1 MSO_I }, { 3 MSO_I, 9 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 },
4589 	{ 21600, 1 MSO_I }, { 2 MSO_I, 0 MSO_I },
4590 
4591 	{ 1 MSO_I, 6 MSO_I },
4592 	{ 0, 4 MSO_I },
4593 
4594 	{ 2 MSO_I, 0 MSO_I },
4595 	{ 3 MSO_I, 0 MSO_I },
4596 
4597 	{ 0 MSO_I, 4 MSO_I },
4598 	{ 0 MSO_I, 11 MSO_I }
4599 };
4600 static const sal_uInt16 mso_sptHorizontalScrollSegm[] =
4601 {
4602 	0x4000, 0xa801, 0x0002, 0xa802, 0x0001, 0xa801, 0x0002, 0xa802, 0x6001, 0x8000,
4603 	0x4000, 0xa803, 0x6000, 0x8000,
4604 	0x4000, 0xa803, 0xa702, 0x6000, 0x8000,
4605 	0x4000, 0xa701, 0x8000,
4606 	0x4000, 0x0001, 0x8000,
4607 	0x4000, 0x0001, 0x8000
4608 };
4609 static const SvxMSDffHandle mso_sptHorizontalScrollHandle[] =
4610 {
4611 	{	MSDFF_HANDLE_FLAGS_RANGE,
4612 		0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff }
4613 };
4614 static const mso_CustomShape msoHorizontalScroll =
4615 {
4616 	(SvxMSDffVertPair*)mso_sptHorizontalScrollVert, sizeof( mso_sptHorizontalScrollVert ) / sizeof( SvxMSDffVertPair ),
4617 	(sal_uInt16*)mso_sptHorizontalScrollSegm, sizeof( mso_sptHorizontalScrollSegm ) >> 1,
4618 	(SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ),
4619 	(sal_Int32*)mso_sptDefault2700,
4620 	(SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ),
4621 	21600, 21600,
4622 	10800, 11000,
4623 	NULL, 0,
4624 	(SvxMSDffHandle*)mso_sptHorizontalScrollHandle, sizeof( mso_sptHorizontalScrollHandle ) / sizeof( SvxMSDffHandle )
4625 };
4626 
4627 static const SvxMSDffVertPair mso_sptFlowChartProcessVert[] =
4628 {
4629 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
4630 };
4631 static const mso_CustomShape msoFlowChartProcess =
4632 {
4633 	(SvxMSDffVertPair*)mso_sptFlowChartProcessVert, sizeof( mso_sptFlowChartProcessVert ) / sizeof( SvxMSDffVertPair ),
4634 	NULL, 0,
4635 	NULL, 0,
4636 	NULL,
4637 	NULL, 0,
4638 	21600, 21600,
4639 	0x80000000, 0x80000000,
4640 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4641 	NULL, 0		// handles
4642 };
4643 
4644 static const SvxMSDffVertPair mso_sptFlowChartAlternateProcessVert[] =
4645 {
4646 	{ 0, 2 MSO_I }, { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 2 MSO_I },
4647 	{ 21600, 3 MSO_I }, { 1 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }
4648 };
4649 static const sal_uInt16 mso_sptFlowChartAlternateProcessSegm[] =
4650 {
4651 	0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
4652 };
4653 static const SvxMSDffCalculationData mso_sptFlowChartAlternateProcessCalc[] =
4654 {
4655 	{ 0x2000, { DFF_Prop_geoLeft, 2540, 0 } },
4656 	{ 0x2000, { DFF_Prop_geoRight, 0, 2540 } },
4657 	{ 0x2000, { DFF_Prop_geoTop, 2540, 0 } },
4658 	{ 0x2000, { DFF_Prop_geoBottom, 0, 2540 } },
4659 	{ 0x2000, { DFF_Prop_geoLeft, 800, 0 } },
4660 	{ 0x2000, { DFF_Prop_geoRight, 0, 800 } },
4661 	{ 0x2000, { DFF_Prop_geoTop, 800, 0 } },
4662 	{ 0x2000, { DFF_Prop_geoBottom,0, 800 } }
4663 };
4664 static const SvxMSDffTextRectangles mso_sptFlowChartAlternateProcessTextRect[] =
4665 {
4666 	{ { 4 MSO_I, 6 MSO_I }, { 5 MSO_I, 7 MSO_I } }
4667 };
4668 static const mso_CustomShape msoFlowChartAlternateProcess =
4669 {
4670 	(SvxMSDffVertPair*)mso_sptFlowChartAlternateProcessVert, sizeof( mso_sptFlowChartAlternateProcessVert ) / sizeof( SvxMSDffVertPair ),
4671 	(sal_uInt16*)mso_sptFlowChartAlternateProcessSegm, sizeof( mso_sptFlowChartAlternateProcessSegm ) >> 1,
4672 	(SvxMSDffCalculationData*)mso_sptFlowChartAlternateProcessCalc, sizeof( mso_sptFlowChartAlternateProcessCalc ) / sizeof( SvxMSDffCalculationData ),
4673 	NULL,
4674 	(SvxMSDffTextRectangles*)mso_sptFlowChartAlternateProcessTextRect, sizeof( mso_sptFlowChartAlternateProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
4675 	21600, 21600,
4676 	0x80000000, 0x80000000,
4677 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4678 	NULL, 0		// handles
4679 };
4680 
4681 static const SvxMSDffVertPair mso_sptFlowChartDecisionVert[] =
4682 {
4683 	{ 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }
4684 };
4685 static const SvxMSDffTextRectangles mso_sptFlowChartDecisionTextRect[] =
4686 {
4687 	{ { 5400, 5400 }, { 16200, 16200 } }
4688 };
4689 static const mso_CustomShape msoFlowChartDecision =
4690 {
4691 	(SvxMSDffVertPair*)mso_sptFlowChartDecisionVert, sizeof( mso_sptFlowChartDecisionVert ) / sizeof( SvxMSDffVertPair ),
4692 	NULL, 0,
4693 	NULL, 0,
4694 	NULL,
4695 	(SvxMSDffTextRectangles*)mso_sptFlowChartDecisionTextRect, sizeof( mso_sptFlowChartDecisionTextRect ) / sizeof( SvxMSDffTextRectangles ),
4696 	21600, 21600,
4697 	0x80000000, 0x80000000,
4698 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4699 	NULL, 0		// handles
4700 };
4701 
4702 static const SvxMSDffVertPair mso_sptFlowChartInputOutputVert[] =
4703 {
4704 	{ 4230, 0 }, { 21600, 0 }, { 17370, 21600 }, { 0, 21600 }, { 4230, 0 }
4705 };
4706 static const SvxMSDffTextRectangles mso_sptFlowChartInputOutputTextRect[] =
4707 {
4708 	{ { 4230, 0 }, { 17370, 21600 } }
4709 };
4710 static const SvxMSDffVertPair mso_sptFlowChartInputOutputGluePoints[] =
4711 {
4712 	{ 12960, 0 }, { 10800, 0 }, { 2160, 10800 }, { 8600, 21600 }, { 10800, 21600 }, { 19400, 10800 }
4713 };
4714 static const mso_CustomShape msoFlowChartInputOutput =
4715 {
4716 	(SvxMSDffVertPair*)mso_sptFlowChartInputOutputVert, sizeof( mso_sptFlowChartInputOutputVert ) / sizeof( SvxMSDffVertPair ),
4717 	NULL, 0,
4718 	NULL, 0,
4719 	NULL,
4720 	(SvxMSDffTextRectangles*)mso_sptFlowChartInputOutputTextRect, sizeof( mso_sptFlowChartInputOutputTextRect ) / sizeof( SvxMSDffTextRectangles ),
4721 	21600, 21600,
4722 	0x80000000, 0x80000000,
4723 	(SvxMSDffVertPair*)mso_sptFlowChartInputOutputGluePoints, sizeof( mso_sptFlowChartInputOutputGluePoints ) / sizeof( SvxMSDffVertPair ),
4724 	NULL, 0		// handles
4725 };
4726 
4727 static const SvxMSDffVertPair mso_sptFlowChartPredefinedProcessVert[] =
4728 {
4729 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
4730 
4731 	{ 2540, 0 }, { 2540, 21600 },
4732 
4733 	{ 21600 - 2540, 0 }, { 21600 - 2540, 21600 }
4734 };
4735 static const sal_uInt16 mso_sptFlowChartPredefinedProcessSegm[] =
4736 {
4737 	0x4000, 0x0003, 0x6000, 0x8000,
4738 	0x4000, 0x0001, 0x8000,
4739 	0x4000, 0x0001, 0x8000
4740 };
4741 static const SvxMSDffTextRectangles mso_sptFlowChartPredefinedProcessTextRect[] =
4742 {
4743 	{ { 2540, 0 }, { 21600 - 2540, 21600 } }
4744 };
4745 static const mso_CustomShape msoFlowChartPredefinedProcess =
4746 {
4747 	(SvxMSDffVertPair*)mso_sptFlowChartPredefinedProcessVert, sizeof( mso_sptFlowChartPredefinedProcessVert ) / sizeof( SvxMSDffVertPair ),
4748 	(sal_uInt16*)mso_sptFlowChartPredefinedProcessSegm, sizeof( mso_sptFlowChartPredefinedProcessSegm ) >> 1,
4749 	NULL, 0,
4750 	NULL,
4751 	(SvxMSDffTextRectangles*)mso_sptFlowChartPredefinedProcessTextRect, sizeof( mso_sptFlowChartPredefinedProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
4752 	21600, 21600,
4753 	0x80000000, 0x80000000,
4754 	NULL, 0,
4755 	NULL, 0		// handles
4756 };
4757 
4758 static const SvxMSDffVertPair mso_sptFlowChartInternalStorageVert[] =
4759 {
4760 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
4761 
4762 	{ 4230, 0 }, { 4230, 21600 },
4763 
4764 	{ 0, 4230 }, { 21600, 4230 }
4765 };
4766 static const sal_uInt16 mso_sptFlowChartInternalStorageSegm[] =
4767 {
4768 	0x4000, 0x0003, 0x6000, 0x8000,
4769 	0x4000, 0x0001, 0x8000,
4770 	0x4000, 0x0001, 0x8000
4771 };
4772 static const SvxMSDffTextRectangles mso_sptFlowChartInternalStorageTextRect[] =
4773 {
4774 	{ { 4230, 4230 }, { 21600, 21600 } }
4775 };
4776 static const mso_CustomShape msoFlowChartInternalStorage =
4777 {
4778 	(SvxMSDffVertPair*)mso_sptFlowChartInternalStorageVert, sizeof( mso_sptFlowChartInternalStorageVert ) / sizeof( SvxMSDffVertPair ),
4779 	(sal_uInt16*)mso_sptFlowChartInternalStorageSegm, sizeof( mso_sptFlowChartInternalStorageSegm ) >> 1,
4780 	NULL, 0,
4781 	NULL,
4782 	(SvxMSDffTextRectangles*)mso_sptFlowChartInternalStorageTextRect, sizeof( mso_sptFlowChartInternalStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
4783 	21600, 21600,
4784 	0x80000000, 0x80000000,
4785 	NULL, 0,
4786 	NULL, 0		// handles
4787 };
4788 
4789 static const SvxMSDffVertPair mso_sptFlowChartDocumentVert[] =
4790 {
4791 	{ 0, 0 }, { 21600, 0 }, { 21600, 17360 },
4792 	{ 13050, 17220 }, {	13340, 20770 }, { 5620, 21600 },	// ccp
4793 	{ 2860, 21100 }, { 1850, 20700 }, { 0,	20120 }			// ccp
4794 };
4795 static const sal_uInt16 mso_sptFlowChartDocumentSegm[] =
4796 {
4797 	0x4000, 0x0002, 0x2002, 0x6000, 0x8000
4798 };
4799 static const SvxMSDffTextRectangles mso_sptFlowChartDocumentTextRect[] =
4800 {
4801 	{ { 0, 0 }, { 21600, 17360 } }
4802 };
4803 static const SvxMSDffVertPair mso_sptFlowChartDocumentGluePoints[] =
4804 {
4805 	{ 10800, 0 }, { 0, 10800 }, { 10800, 20320 }, { 21600, 10800 }
4806 };
4807 static const mso_CustomShape msoFlowChartDocument =
4808 {
4809 	(SvxMSDffVertPair*)mso_sptFlowChartDocumentVert, sizeof( mso_sptFlowChartDocumentVert ) / sizeof( SvxMSDffVertPair ),
4810 	(sal_uInt16*)mso_sptFlowChartDocumentSegm, sizeof( mso_sptFlowChartDocumentSegm ) >> 1,
4811 	NULL, 0,
4812 	NULL,
4813 	(SvxMSDffTextRectangles*)mso_sptFlowChartDocumentTextRect, sizeof( mso_sptFlowChartDocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
4814 	21600, 21600,
4815 	0x80000000, 0x80000000,
4816 	(SvxMSDffVertPair*)mso_sptFlowChartDocumentGluePoints, sizeof( mso_sptFlowChartDocumentGluePoints ) / sizeof( SvxMSDffVertPair ),
4817 	NULL, 0		// handles
4818 };
4819 
4820 static const SvxMSDffVertPair mso_sptFlowChartMultidocumentVert[] =
4821 {
4822 	{ 0, 3600 }, { 1500, 3600 }, { 1500, 1800 }, { 3000, 1800 },
4823 	{ 3000, 0 }, { 21600, 0 }, { 21600, 14409 }, { 21600 - 1500, 14409 },
4824 	{ 21600 - 1500, 14409 + 1800 }, { 21600 - 3000, 14409 + 1800 }, { 21600 - 3000, 14409 + 3600 },
4825 	{ 11610, 14293 + 3600 }, { 11472, 17239 + 3600 }, { 4833, 17928 + 3600 },						// ccp
4826 	{ 2450, 17513 + 3600 }, { 1591, 17181 + 3600 }, { 0, 16700 + 3600 },							// ccp
4827 
4828 	{ 1500, 3600 }, { 21600 - 3000, 3600 }, { 21600 - 3000, 14409 + 1800 },
4829 
4830 	{ 3000, 1800 }, { 21600 - 1500, 1800 }, { 21600 - 1500, 14409 }
4831 };
4832 static const sal_uInt16 mso_sptFlowChartMultidocumentSegm[] =
4833 {
4834 	0x4000, 0x000a, 0x2002, 0x6000, 0x8000,
4835 	0x4000, 0xaa00, 0x0002, 0x8000,			// NO FILL
4836 	0x4000, 0xaa00, 0x0002, 0x8000			// NO FILL
4837 };
4838 static const SvxMSDffTextRectangles mso_sptFlowChartMultidocumentTextRect[] =
4839 {
4840 	{ { 0, 3600 }, { 21600 - 3000, 14409 + 3600 } }
4841 };
4842 static const SvxMSDffVertPair mso_sptFlowChartMultidocumentGluePoints[] =
4843 {
4844 	{ 10800, 0 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
4845 };
4846 static const mso_CustomShape msoFlowChartMultidocument =
4847 {
4848 	(SvxMSDffVertPair*)mso_sptFlowChartMultidocumentVert, sizeof( mso_sptFlowChartMultidocumentVert ) / sizeof( SvxMSDffVertPair ),
4849 	(sal_uInt16*)mso_sptFlowChartMultidocumentSegm, sizeof( mso_sptFlowChartMultidocumentSegm ) >> 1,
4850 	NULL, 0,
4851 	NULL,
4852 	(SvxMSDffTextRectangles*)mso_sptFlowChartMultidocumentTextRect, sizeof( mso_sptFlowChartMultidocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
4853 	21600, 21600,
4854 	0x80000000, 0x80000000,
4855 	(SvxMSDffVertPair*)mso_sptFlowChartMultidocumentGluePoints, sizeof( mso_sptFlowChartMultidocumentGluePoints ) / sizeof( SvxMSDffVertPair ),
4856 	NULL, 0		// handles
4857 };
4858 
4859 static const SvxMSDffVertPair mso_sptFlowChartTerminatorVert[] =
4860 {
4861 	{ 3470, 21600 }, { 0, 10800 }, { 3470, 0 }, { 18130, 0 },
4862 	{ 21600, 10800 }, { 18130, 21600 }
4863 };
4864 static const sal_uInt16 mso_sptFlowChartTerminatorSegm[] =
4865 {
4866 	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
4867 };
4868 static const SvxMSDffTextRectangles mso_sptFlowChartTerminatorTextRect[] =
4869 {
4870 	{ { 1060, 3180 }, { 20540, 18420 } }
4871 };
4872 static const mso_CustomShape msoFlowChartTerminator =
4873 {
4874 	(SvxMSDffVertPair*)mso_sptFlowChartTerminatorVert, sizeof( mso_sptFlowChartTerminatorVert ) / sizeof( SvxMSDffVertPair ),
4875 	(sal_uInt16*)mso_sptFlowChartTerminatorSegm, sizeof( mso_sptFlowChartTerminatorSegm ) >> 1,
4876 	NULL, 0,
4877 	NULL,
4878 	(SvxMSDffTextRectangles*)mso_sptFlowChartTerminatorTextRect, sizeof( mso_sptFlowChartTerminatorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4879 	21600, 21600,
4880 	0x80000000, 0x80000000,
4881 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4882 	NULL, 0		// handles
4883 };
4884 
4885 static const SvxMSDffVertPair mso_sptFlowChartPreparationVert[] =
4886 {
4887 	{ 4350, 0 }, { 17250, 0 }, { 21600, 10800 }, { 17250, 21600 },
4888 	{ 4350, 21600 }, { 0, 10800 }, { 4350, 0 }
4889 };
4890 static const SvxMSDffTextRectangles mso_sptFlowChartPreparationTextRect[] =
4891 {
4892 	{ { 4350, 0 }, { 17250, 21600 } }
4893 };
4894 static const mso_CustomShape msoFlowChartPreparation =
4895 {
4896 	(SvxMSDffVertPair*)mso_sptFlowChartPreparationVert, sizeof( mso_sptFlowChartPreparationVert ) / sizeof( SvxMSDffVertPair ),
4897 	NULL, 0,
4898 	NULL, 0,
4899 	NULL,
4900 	(SvxMSDffTextRectangles*)mso_sptFlowChartPreparationTextRect, sizeof( mso_sptFlowChartPreparationTextRect ) / sizeof( SvxMSDffTextRectangles ),
4901 	21600, 21600,
4902 	0x80000000, 0x80000000,
4903 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4904 	NULL, 0		// handles
4905 };
4906 
4907 static const SvxMSDffVertPair mso_sptFlowChartManualInputVert[] =
4908 {
4909 	{ 0, 4300 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 4300 }
4910 };
4911 static const SvxMSDffTextRectangles mso_sptFlowChartManualInputTextRect[] =
4912 {
4913 	{ { 0, 4300 }, { 21600, 21600 } }
4914 };
4915 static const SvxMSDffVertPair mso_sptFlowChartManualInputGluePoints[] =
4916 {
4917 	{ 10800, 2150 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
4918 };
4919 static const mso_CustomShape msoFlowChartManualInput =
4920 {
4921 	(SvxMSDffVertPair*)mso_sptFlowChartManualInputVert, sizeof( mso_sptFlowChartManualInputVert ) / sizeof( SvxMSDffVertPair ),
4922 	NULL, 0,
4923 	NULL, 0,
4924 	NULL,
4925 	(SvxMSDffTextRectangles*)mso_sptFlowChartManualInputTextRect, sizeof( mso_sptFlowChartManualInputTextRect ) / sizeof( SvxMSDffTextRectangles ),
4926 	21600, 21600,
4927 	0x80000000, 0x80000000,
4928 	(SvxMSDffVertPair*)mso_sptFlowChartManualInputGluePoints, sizeof( mso_sptFlowChartManualInputGluePoints ) / sizeof( SvxMSDffVertPair ),
4929 	NULL, 0		// handles
4930 };
4931 
4932 static const SvxMSDffVertPair mso_sptFlowChartManualOperationVert[] =
4933 {
4934 	{ 0, 0 }, { 21600, 0 }, { 17250, 21600 }, { 4350, 21600 }, { 0, 0 }
4935 };
4936 static const SvxMSDffTextRectangles mso_sptFlowChartManualOperationTextRect[] =
4937 {
4938 	{ { 4350, 0 }, { 17250, 21600 } }
4939 };
4940 static const SvxMSDffVertPair mso_sptFlowChartManualOperationGluePoints[] =
4941 {
4942 	{ 10800, 0 }, { 2160, 10800 }, { 10800, 21600 }, { 19440, 10800 }
4943 };
4944 static const mso_CustomShape msoFlowChartManualOperation =
4945 {
4946 	(SvxMSDffVertPair*)mso_sptFlowChartManualOperationVert, sizeof( mso_sptFlowChartManualOperationVert ) / sizeof( SvxMSDffVertPair ),
4947 	NULL, 0,
4948 	NULL, 0,
4949 	NULL,
4950 	(SvxMSDffTextRectangles*)mso_sptFlowChartManualOperationTextRect, sizeof( mso_sptFlowChartManualOperationTextRect ) / sizeof( SvxMSDffTextRectangles ),
4951 	21600, 21600,
4952 	0x80000000, 0x80000000,
4953 	(SvxMSDffVertPair*)mso_sptFlowChartManualOperationGluePoints, sizeof( mso_sptFlowChartManualOperationGluePoints ) / sizeof( SvxMSDffVertPair ),
4954 	NULL, 0		// handles
4955 };
4956 
4957 static const SvxMSDffVertPair mso_sptFlowChartConnectorVert[] =
4958 {
4959 	{ 10800, 10800 }, { 10800, 10800 },  { 0, 360 }
4960 };
4961 static const sal_uInt16 mso_sptFlowChartConnectorSegm[] =
4962 {
4963 	0xa203, 0x6000, 0x8000
4964 };
4965 static const SvxMSDffTextRectangles mso_sptFlowChartConnectorTextRect[] =
4966 {
4967 	{ { 3180, 3180 }, { 18420, 18420 } }
4968 };
4969 static const mso_CustomShape msoFlowChartConnector =
4970 {
4971 	(SvxMSDffVertPair*)mso_sptFlowChartConnectorVert, sizeof( mso_sptFlowChartConnectorVert ) / sizeof( SvxMSDffVertPair ),
4972 	(sal_uInt16*)mso_sptFlowChartConnectorSegm, sizeof( mso_sptFlowChartConnectorSegm ) >> 1,
4973 	NULL, 0,
4974 	NULL,
4975 	(SvxMSDffTextRectangles*)mso_sptFlowChartConnectorTextRect, sizeof( mso_sptFlowChartConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4976 	21600, 21600,
4977 	0x80000000, 0x80000000,
4978 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
4979 	NULL, 0		// handles
4980 };
4981 
4982 static const SvxMSDffVertPair mso_sptFlowChartOffpageConnectorVert[] =
4983 {
4984 	{ 0, 0 }, { 21600, 0 }, { 21600, 17150 }, { 10800, 21600 },
4985 	{ 0, 17150 }, { 0, 0 }
4986 };
4987 static const SvxMSDffTextRectangles mso_sptFlowChartOffpageConnectorTextRect[] =
4988 {
4989 	{ { 0, 0 }, { 21600, 17150 } }
4990 };
4991 static const mso_CustomShape msoFlowChartOffpageConnector =
4992 {
4993 	(SvxMSDffVertPair*)mso_sptFlowChartOffpageConnectorVert, sizeof( mso_sptFlowChartOffpageConnectorVert ) / sizeof( SvxMSDffVertPair ),
4994 	NULL, 0,
4995 	NULL, 0,
4996 	NULL,
4997 	(SvxMSDffTextRectangles*)mso_sptFlowChartOffpageConnectorTextRect, sizeof( mso_sptFlowChartOffpageConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4998 	21600, 21600,
4999 	0x80000000, 0x80000000,
5000 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5001 	NULL, 0		// handles
5002 };
5003 
5004 static const SvxMSDffVertPair mso_sptFlowChartPunchedCardVert[] =
5005 {
5006 	{ 4300, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5007 	{ 0, 4300 }, { 4300, 0 }
5008 };
5009 static const SvxMSDffTextRectangles mso_sptFlowChartPunchedCardTextRect[] =
5010 {
5011 	{ { 0, 4300 }, { 21600, 21600 } }
5012 };
5013 static const mso_CustomShape msoFlowChartPunchedCard =
5014 {
5015 	(SvxMSDffVertPair*)mso_sptFlowChartPunchedCardVert, sizeof( mso_sptFlowChartPunchedCardVert ) / sizeof( SvxMSDffVertPair ),
5016 	NULL, 0,
5017 	NULL, 0,
5018 	NULL,
5019 	(SvxMSDffTextRectangles*)mso_sptFlowChartPunchedCardTextRect, sizeof( mso_sptFlowChartPunchedCardTextRect ) / sizeof( SvxMSDffTextRectangles ),
5020 	21600, 21600,
5021 	0x80000000, 0x80000000,
5022 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5023 	NULL, 0		// handles
5024 };
5025 
5026 static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeVert[] =
5027 {
5028 	{ 0, 2230 },											// p
5029 	{ 820, 3990 }, { 3410, 3980 }, { 5370, 4360 },			// ccp
5030 	{ 7430, 4030 },	{ 10110, 3890 }, { 10690, 2270 },		// ccp
5031 	{ 11440, 300 }, { 14200, 160 }, { 16150, 0 },			// ccp
5032 	{ 18670, 170 }, {  20690, 390 }, { 21600, 2230 },		// ccp
5033 	{ 21600, 19420 },										// p
5034 	{ 20640, 17510 }, { 18320, 17490 }, { 16140, 17240 },	// ccp
5035 	{ 14710, 17370 }, {	11310, 17510 }, { 10770, 19430 },	// ccp
5036 	{ 10150, 21150 }, { 7380, 21290 }, { 5290, 21600 },		// ccp
5037 	{ 3220, 21250 }, { 610, 21130 }, { 0, 19420	}			// ccp
5038 };
5039 static const sal_uInt16 mso_sptFlowChartPunchedTapeSegm[] =
5040 {
5041 	0x4000, 0x2004, 0x0001, 0x2004, 0x6000, 0x8000
5042 };
5043 static const SvxMSDffTextRectangles mso_sptFlowChartPunchedTapeTextRect[] =
5044 {
5045 	{ { 0, 4360 }, { 21600, 17240 } }
5046 };
5047 static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeGluePoints[] =
5048 {
5049 	{ 10800, 2020 }, { 0, 10800 }, { 10800, 19320 }, { 21600, 10800 }
5050 };
5051 static const mso_CustomShape msoFlowChartPunchedTape =
5052 {
5053 	(SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeVert, sizeof( mso_sptFlowChartPunchedTapeVert ) / sizeof( SvxMSDffVertPair ),
5054 	(sal_uInt16*)mso_sptFlowChartPunchedTapeSegm, sizeof( mso_sptFlowChartPunchedTapeSegm ) >> 1,
5055 	NULL, 0,
5056 	NULL,
5057 	(SvxMSDffTextRectangles*)mso_sptFlowChartPunchedTapeTextRect, sizeof( mso_sptFlowChartPunchedTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5058 	21600, 21600,
5059 	0x80000000, 0x80000000,
5060 	(SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeGluePoints, sizeof( mso_sptFlowChartPunchedTapeGluePoints ) / sizeof( SvxMSDffVertPair ),
5061 	NULL, 0		// handles
5062 };
5063 
5064 static const SvxMSDffVertPair mso_sptFlowChartSummingJunctionVert[] =
5065 {
5066 	{ 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5067 
5068 	{ 3100, 3100 },
5069 	{ 18500, 18500 },
5070 
5071 	{ 3100, 18500 },
5072 	{ 18500, 3100 }
5073 };
5074 static const sal_uInt16 mso_sptFlowChartSummingJunctionSegm[] =
5075 {
5076 	0xa203, 0x6000, 0x8000,
5077 	0x4000, 0x0001, 0x8000,
5078 	0x4000, 0x0001, 0x8000
5079 };
5080 static const SvxMSDffTextRectangles mso_sptFlowChartSummingJunctionTextRect[] =
5081 {
5082 	{ { 3100, 3100 }, { 18500, 18500 } }
5083 };
5084 static const mso_CustomShape msoFlowChartSummingJunction =
5085 {
5086 	(SvxMSDffVertPair*)mso_sptFlowChartSummingJunctionVert, sizeof( mso_sptFlowChartSummingJunctionVert ) / sizeof( SvxMSDffVertPair ),
5087 	(sal_uInt16*)mso_sptFlowChartSummingJunctionSegm, sizeof( mso_sptFlowChartSummingJunctionSegm ) >> 1,
5088 	NULL, 0,
5089 	NULL,
5090 	(SvxMSDffTextRectangles*)mso_sptFlowChartSummingJunctionTextRect, sizeof( mso_sptFlowChartSummingJunctionTextRect ) / sizeof( SvxMSDffTextRectangles ),
5091 	21600, 21600,
5092 	0x80000000, 0x80000000,
5093 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5094 	NULL, 0		// handles
5095 };
5096 
5097 static const SvxMSDffVertPair mso_sptFlowChartOrVert[] =
5098 {
5099 	{ 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5100 
5101 	{ 0, 10800 }, { 21600, 10800 },
5102 
5103 	{ 10800, 0 }, { 10800, 21600 }
5104 };
5105 static const sal_uInt16 mso_sptFlowChartOrSegm[] =
5106 {
5107 	0xa203, 0x6000, 0x8000,
5108 	0x4000, 0x0001, 0x8000,
5109 	0x4000, 0x0001, 0x8000
5110 };
5111 static const SvxMSDffTextRectangles mso_sptFlowChartOrTextRect[] =
5112 {
5113 	{ { 3100, 3100 }, { 18500, 18500 } }
5114 };
5115 static const mso_CustomShape msoFlowChartOr =
5116 {
5117 	(SvxMSDffVertPair*)mso_sptFlowChartOrVert, sizeof( mso_sptFlowChartOrVert ) / sizeof( SvxMSDffVertPair ),
5118 	(sal_uInt16*)mso_sptFlowChartOrSegm, sizeof( mso_sptFlowChartOrSegm ) >> 1,
5119 	NULL, 0,
5120 	NULL,
5121 	(SvxMSDffTextRectangles*)mso_sptFlowChartOrTextRect, sizeof( mso_sptFlowChartOrTextRect ) / sizeof( SvxMSDffTextRectangles ),
5122 	21600, 21600,
5123 	0x80000000, 0x80000000,
5124 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5125 	NULL, 0		// handles
5126 };
5127 
5128 static const SvxMSDffVertPair mso_sptFlowChartCollateVert[] =
5129 {
5130 	{ 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 21600, 0 }, { 0, 0 }
5131 };
5132 static const SvxMSDffTextRectangles mso_sptFlowChartCollateTextRect[] =
5133 {
5134 	{ { 5400, 5400 }, { 16200, 16200 } }
5135 };
5136 static const SvxMSDffVertPair mso_sptFlowChartCollateGluePoints[] =
5137 {
5138 	{ 10800, 0 }, { 10800, 10800 }, { 10800, 21600 }
5139 };
5140 static const mso_CustomShape msoFlowChartCollate =
5141 {
5142 	(SvxMSDffVertPair*)mso_sptFlowChartCollateVert, sizeof( mso_sptFlowChartCollateVert ) / sizeof( SvxMSDffVertPair ),
5143 	NULL, 0,
5144 	NULL, 0,
5145 	NULL,
5146 	(SvxMSDffTextRectangles*)mso_sptFlowChartCollateTextRect, sizeof( mso_sptFlowChartCollateTextRect ) / sizeof( SvxMSDffTextRectangles ),
5147 	21600, 21600,
5148 	0x80000000, 0x80000000,
5149 	(SvxMSDffVertPair*)mso_sptFlowChartCollateGluePoints, sizeof( mso_sptFlowChartCollateGluePoints ) / sizeof( SvxMSDffVertPair ),
5150 	NULL, 0		// handles
5151 };
5152 
5153 static const SvxMSDffVertPair mso_sptFlowChartSortVert[] =
5154 {
5155 	{ 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 },
5156 
5157 	{ 0, 10800 }, { 21600, 10800 }
5158 };
5159 static const sal_uInt16 mso_sptFlowChartSortSegm[] =
5160 {
5161 	0x4000, 0x0003, 0x6000, 0x8000,
5162 	0x4000, 0x0001, 0x8000
5163 };
5164 static const SvxMSDffTextRectangles mso_sptFlowChartSortTextRect[] =
5165 {
5166 	{ { 5400, 5400 }, { 16200, 16200 } }
5167 };
5168 static const mso_CustomShape msoFlowChartSort =
5169 {
5170 	(SvxMSDffVertPair*)mso_sptFlowChartSortVert, sizeof( mso_sptFlowChartSortVert ) / sizeof( SvxMSDffVertPair ),
5171 	(sal_uInt16*)mso_sptFlowChartSortSegm, sizeof( mso_sptFlowChartSortSegm ) >> 1,
5172 	NULL, 0,
5173 	NULL,
5174 	(SvxMSDffTextRectangles*)mso_sptFlowChartSortTextRect, sizeof( mso_sptFlowChartSortTextRect ) / sizeof( SvxMSDffTextRectangles ),
5175 	21600, 21600,
5176 	0x80000000, 0x80000000,
5177 	NULL, 0,
5178 	NULL, 0		// handles
5179 };
5180 
5181 static const SvxMSDffVertPair mso_sptFlowChartExtractVert[] =
5182 {
5183 	{ 10800, 0 }, { 21600, 21600 }, { 0, 21600 }, { 10800, 0 }
5184 };
5185 static const SvxMSDffTextRectangles mso_sptFlowChartExtractTextRect[] =
5186 {
5187 	{ { 5400, 10800 }, { 16200, 21600 } }
5188 };
5189 static const SvxMSDffVertPair mso_sptFlowChartExtractGluePoints[] =
5190 {
5191 	{ 10800, 0 }, { 5400, 10800 }, { 10800, 21600 }, { 16200, 10800 }
5192 };
5193 static const mso_CustomShape msoFlowChartExtract =
5194 {
5195 	(SvxMSDffVertPair*)mso_sptFlowChartExtractVert, sizeof( mso_sptFlowChartExtractVert ) / sizeof( SvxMSDffVertPair ),
5196 	NULL, 0,
5197 	NULL, 0,
5198 	NULL,
5199 	(SvxMSDffTextRectangles*)mso_sptFlowChartExtractTextRect, sizeof( mso_sptFlowChartExtractTextRect ) / sizeof( SvxMSDffTextRectangles ),
5200 	21600, 21600,
5201 	0x80000000, 0x80000000,
5202 	(SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ),
5203 	NULL, 0		// handles
5204 };
5205 
5206 static const SvxMSDffVertPair mso_sptFlowChartMergeVert[] =
5207 {
5208 	{ 0, 0 }, { 21600, 0 }, { 10800, 21600 }, { 0, 0 }
5209 };
5210 static const SvxMSDffTextRectangles mso_sptFlowChartMergeTextRect[] =
5211 {
5212 	{ { 5400, 0 }, { 16200, 10800 } }
5213 };
5214 static const mso_CustomShape msoFlowChartMerge =
5215 {
5216 	(SvxMSDffVertPair*)mso_sptFlowChartMergeVert, sizeof( mso_sptFlowChartMergeVert ) / sizeof( SvxMSDffVertPair ),
5217 	NULL, 0,
5218 	NULL, 0,
5219 	NULL,
5220 	(SvxMSDffTextRectangles*)mso_sptFlowChartMergeTextRect, sizeof( mso_sptFlowChartMergeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5221 	21600, 21600,
5222 	0x80000000, 0x80000000,
5223 	(SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ),
5224 	NULL, 0		// handles
5225 };
5226 
5227 static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageVert[] =
5228 {
5229 	{ 3600, 21600 }, { 0, 10800 }, { 3600, 0 }, { 21600, 0 },
5230 	{ 18000, 10800 }, { 21600, 21600 }
5231 };
5232 static const sal_uInt16 mso_sptFlowChartOnlineStorageSegm[] =
5233 {
5234 	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
5235 };
5236 static const SvxMSDffTextRectangles mso_sptFlowChartOnlineStorageTextRect[] =
5237 {
5238 	{ { 3600, 0 }, { 18000, 21600 } }
5239 };
5240 static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageGluePoints[] =
5241 {
5242 	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 18000, 10800 }
5243 };
5244 static const mso_CustomShape msoFlowChartOnlineStorage =
5245 {
5246 	(SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageVert, sizeof( mso_sptFlowChartOnlineStorageVert ) / sizeof( SvxMSDffVertPair ),
5247 	(sal_uInt16*)mso_sptFlowChartOnlineStorageSegm, sizeof( mso_sptFlowChartOnlineStorageSegm ) >> 1,
5248 	NULL, 0,
5249 	NULL,
5250 	(SvxMSDffTextRectangles*)mso_sptFlowChartOnlineStorageTextRect, sizeof( mso_sptFlowChartOnlineStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
5251 	21600, 21600,
5252 	0x80000000, 0x80000000,
5253 	(SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageGluePoints, sizeof( mso_sptFlowChartOnlineStorageGluePoints ) / sizeof( SvxMSDffVertPair ),
5254 	NULL, 0		// handles
5255 };
5256 
5257 static const SvxMSDffVertPair mso_sptFlowChartDelayVert[] =
5258 {
5259 	{ 10800, 0 }, {	21600, 10800 }, { 10800, 21600 }, {	0, 21600 },
5260 	{ 0, 0 }
5261 };
5262 static const sal_uInt16 mso_sptFlowChartDelaySegm[] =
5263 {
5264 	0x4000, 0xa702, 0x0002, 0x6000, 0x8000
5265 };
5266 static const SvxMSDffTextRectangles mso_sptFlowChartDelayTextRect[] =
5267 {
5268 	{ { 0, 3100 }, { 18500, 18500 } }
5269 };
5270 static const mso_CustomShape msoFlowChartDelay =
5271 {
5272 	(SvxMSDffVertPair*)mso_sptFlowChartDelayVert, sizeof( mso_sptFlowChartDelayVert ) / sizeof( SvxMSDffVertPair ),
5273 	(sal_uInt16*)mso_sptFlowChartDelaySegm, sizeof( mso_sptFlowChartDelaySegm ) >> 1,
5274 	NULL, 0,
5275 	NULL,
5276 	(SvxMSDffTextRectangles*)mso_sptFlowChartDelayTextRect, sizeof( mso_sptFlowChartDelayTextRect ) / sizeof( SvxMSDffTextRectangles ),
5277 	21600, 21600,
5278 	0x80000000, 0x80000000,
5279 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5280 	NULL, 0		// handles
5281 };
5282 
5283 static const SvxMSDffVertPair mso_sptFlowChartMagneticTapeVert[] =
5284 {
5285 	{ 20980, 18150 }, {	20980, 21600 }, { 10670, 21600 },
5286 	{ 4770, 21540 }, { 0, 16720 }, { 0, 10800 },			// ccp
5287 	{ 0, 4840 }, { 4840, 0 }, { 10800, 0 },					// ccp
5288 	{ 16740, 0 }, { 21600, 4840 }, { 21600, 10800 },		// ccp
5289 	{ 21600, 13520 }, {	20550, 16160 }, { 18670, 18170 }	// ccp
5290 };
5291 static const sal_uInt16 mso_sptFlowChartMagneticTapeSegm[] =
5292 {
5293 	0x4000, 0x0002, 0x2004, 0x6000, 0x8000
5294 };
5295 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticTapeTextRect[] =
5296 {
5297 	{ { 3100, 3100 }, { 18500, 18500 } }
5298 };
5299 static const mso_CustomShape msoFlowChartMagneticTape =
5300 {
5301 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticTapeVert, sizeof( mso_sptFlowChartMagneticTapeVert ) / sizeof( SvxMSDffVertPair ),
5302 	(sal_uInt16*)mso_sptFlowChartMagneticTapeSegm, sizeof( mso_sptFlowChartMagneticTapeSegm ) >> 1,
5303 	NULL, 0,
5304 	NULL,
5305 	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticTapeTextRect, sizeof( mso_sptFlowChartMagneticTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5306 	21600, 21600,
5307 	0x80000000, 0x80000000,
5308 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5309 	NULL, 0		// handles
5310 };
5311 
5312 static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskVert[] =
5313 {
5314 	{ 0, 3400 }, { 10800, 0 }, { 21600, 3400 }, { 21600, 18200 },
5315 	{ 10800, 21600 }, { 0, 18200 },
5316 
5317 	{ 0, 3400 }, { 10800, 6800 }, { 21600, 3400 }
5318 };
5319 static const sal_uInt16 mso_sptFlowChartMagneticDiskSegm[] =
5320 {
5321 	0x4000, 0xa802, 0x0001, 0xa802, 0x6000, 0x8000,
5322 	0x4000, 0xa802, 0x8000
5323 };
5324 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDiskTextRect[] =
5325 {
5326 	{ { 0, 6800 }, { 21600, 18200 } }
5327 };
5328 static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskGluePoints[] =
5329 {
5330 	{ 10800, 6800 }, { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
5331 };
5332 static const mso_CustomShape msoFlowChartMagneticDisk =
5333 {
5334 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskVert, sizeof( mso_sptFlowChartMagneticDiskVert ) / sizeof( SvxMSDffVertPair ),
5335 	(sal_uInt16*)mso_sptFlowChartMagneticDiskSegm, sizeof( mso_sptFlowChartMagneticDiskSegm ) >> 1,
5336 	NULL, 0,
5337 	NULL,
5338 	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDiskTextRect, sizeof( mso_sptFlowChartMagneticDiskTextRect ) / sizeof( SvxMSDffTextRectangles ),
5339 	21600, 21600,
5340 	0x80000000, 0x80000000,
5341 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskGluePoints, sizeof( mso_sptFlowChartMagneticDiskGluePoints ) / sizeof( SvxMSDffVertPair ),
5342 	NULL, 0		// handles
5343 };
5344 
5345 static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumVert[] =
5346 {
5347 	{ 18200, 0 }, { 21600, 10800 }, { 18200, 21600 }, { 3400, 21600 },
5348 	{ 0, 10800 }, { 3400, 0 },
5349 
5350 	{ 18200, 0 }, { 14800, 10800 }, { 18200, 21600 }
5351 };
5352 static const sal_uInt16 mso_sptFlowChartMagneticDrumSegm[] =
5353 {
5354 	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000,
5355 	0x4000, 0xa702, 0x8000
5356 };
5357 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDrumTextRect[] =
5358 {
5359 	{ { 3400, 0 }, { 14800, 21600 } }
5360 };
5361 static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumGluePoints[] =
5362 {
5363 	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 14800, 10800 }, { 21600, 10800 }
5364 };
5365 static const mso_CustomShape msoFlowChartMagneticDrum =
5366 {
5367 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumVert, sizeof( mso_sptFlowChartMagneticDrumVert ) / sizeof( SvxMSDffVertPair ),
5368 	(sal_uInt16*)mso_sptFlowChartMagneticDrumSegm, sizeof( mso_sptFlowChartMagneticDrumSegm ) >> 1,
5369 	NULL, 0,
5370 	NULL,
5371 	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDrumTextRect, sizeof( mso_sptFlowChartMagneticDrumTextRect ) / sizeof( SvxMSDffTextRectangles ),
5372 	21600, 21600,
5373 	0x80000000, 0x80000000,
5374 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumGluePoints, sizeof( mso_sptFlowChartMagneticDrumGluePoints ) / sizeof( SvxMSDffVertPair ),
5375 	NULL, 0		// handles
5376 };
5377 
5378 static const SvxMSDffVertPair mso_sptFlowChartDisplayVert[] =
5379 {
5380 	{ 3600, 0 }, { 17800, 0 }, { 21600, 10800 }, { 17800, 21600 },
5381 	{ 3600, 21600 }, { 0, 10800 }
5382 };
5383 static const sal_uInt16 mso_sptFlowChartDisplaySegm[] =
5384 {
5385 	0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000
5386 };
5387 static const SvxMSDffTextRectangles mso_sptFlowChartDisplayTextRect[] =
5388 {
5389 	{ { 3600, 0 }, { 17800, 21600 } }
5390 };
5391 static const mso_CustomShape msoFlowChartDisplay =
5392 {
5393 	(SvxMSDffVertPair*)mso_sptFlowChartDisplayVert, sizeof( mso_sptFlowChartDisplayVert ) / sizeof( SvxMSDffVertPair ),
5394 	(sal_uInt16*)mso_sptFlowChartDisplaySegm, sizeof( mso_sptFlowChartDisplaySegm ) >> 1,
5395 	NULL, 0,
5396 	NULL,
5397 	(SvxMSDffTextRectangles*)mso_sptFlowChartDisplayTextRect, sizeof( mso_sptFlowChartDisplayTextRect ) / sizeof( SvxMSDffTextRectangles ),
5398 	21600, 21600,
5399 	0x80000000, 0x80000000,
5400 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5401 	NULL, 0		// handles
5402 };
5403 
5404 static const SvxMSDffVertPair mso_sptWedgeRectCalloutVert[] =
5405 {
5406 	{ 0, 0 },
5407 	{ 0, 3590 }, { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5408 	{ 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5409 	{ 0, 21600 },
5410 	{ 3590, 21600 }, { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5411 	{ 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
5412 	{ 21600, 21600 },
5413 	{ 21600, 18010 }, { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5414 	{ 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5415 	{ 21600, 0 },
5416 	{ 18010, 0 }, { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5417 	{ 8970, 0 }, { 16 MSO_I, 17 MSO_I }, { 3590, 0 },
5418 	{ 0, 0 }
5419 };
5420 static const SvxMSDffCalculationData mso_sptWedgeRectCalloutCalc[] =
5421 {
5422 	{ 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },		//0x400
5423 	{ 0x2000, { DFF_Prop_adjust2Value, 0,10800 } },
5424 	{ 0x6006, { 0x412, DFF_Prop_adjustValue, 0 } },		//0x402
5425 	{ 0x6006, { 0x412, DFF_Prop_adjust2Value, 6280 } },
5426 	{ 0x6006, { 0x417, DFF_Prop_adjustValue, 0 } },		//0x404
5427 	{ 0x6006, { 0x417, DFF_Prop_adjust2Value, 15320 } },
5428 	{ 0x6006, { 0x41a, DFF_Prop_adjustValue, 6280 } },	//0x406
5429 	{ 0x6006, { 0x41a, DFF_Prop_adjust2Value, 21600 } },
5430 	{ 0x6006, { 0x41d, DFF_Prop_adjustValue, 15320 } },	//0x408
5431 	{ 0x6006, { 0x41d, DFF_Prop_adjust2Value, 21600 } },
5432 	{ 0x6006, { 0x420, DFF_Prop_adjustValue, 21600 } },	//0x40a
5433 	{ 0x6006, { 0x420, DFF_Prop_adjust2Value, 15320 } },
5434 	{ 0x6006, { 0x422, DFF_Prop_adjustValue, 21600 } },	//0x40c
5435 	{ 0x6006, { 0x422, DFF_Prop_adjust2Value, 6280 } },
5436 	{ 0x6006, { 0x424, DFF_Prop_adjustValue, 15320 } },	//0x40e
5437 	{ 0x6006, { 0x424, DFF_Prop_adjust2Value, 0 } },
5438 	{ 0x6006, { 0x426, DFF_Prop_adjustValue, 6280 } },	//0x410
5439 	{ 0x6006, { 0x426, DFF_Prop_adjust2Value, 0 } },
5440 	{ 0xa006, { DFF_Prop_adjustValue, -1, 0x413 } },	//0x412
5441 	{ 0xa006, { 0x401, -1, 0x416 } },
5442 	{ 0x2003, { 0x400, 0, 0 } },						//0x414
5443 	{ 0x2003, { 0x401, 0, 0 } },
5444 	{ 0xa000, { 0x414, 0, 0x415 } },					//0x416
5445 	{ 0xa006, { DFF_Prop_adjustValue, -1, 0x418 } },
5446 	{ 0x6006, { 0x401, 0x416, -1 } },					//0x418
5447 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 21600 } },
5448 	{ 0x6006, { 0x419, 0x41b, -1 } },					//0x41a
5449 	{ 0xa006, { 0x400, -1, 0x41c } },
5450 	{ 0xa000, { 0x415, 0, 0x414 } },					//0x41c
5451 	{ 0x6006, { 0x419, 0x41e, -1 } },
5452 	{ 0x6006, { 0x400, 0x41c, -1 } },					//0x41e
5453 	{ 0x2000, { DFF_Prop_adjustValue, 0, 21600 } },
5454 	{ 0x6006, { 0x41f, 0x421, -1 } },					//0x420
5455 	{ 0x6006, { 0x401, 0x416, -1 } },
5456 	{ 0x6006, { 0x41f, 0x423, -1 } },					//0x422
5457 	{ 0xa006, { 0x401, -1, 0x416 } },
5458 	{ 0xa006, { DFF_Prop_adjust2Value, -1, 0x425 } },	//0x424
5459 	{ 0x6006, { 0x400, 0x41c, -1 } },
5460 	{ 0xa006, { DFF_Prop_adjust2Value, -1, 0x427 } },	//0x426
5461 	{ 0xa006, { 0x400, -1, 0x41c } },
5462 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },			//0x428
5463 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }
5464 };
5465 static const sal_Int32 mso_sptWedgeRectCalloutDefault[] =
5466 {
5467 	2, 1400, 25920
5468 };
5469 static const SvxMSDffTextRectangles mso_sptWedgeRectCalloutTextRect[] =
5470 {
5471 	{ { 0, 0 }, { 21600, 21600 } }
5472 };
5473 static const SvxMSDffVertPair mso_sptWedgeRectCalloutGluePoints[] =
5474 {
5475 	{ 10800, 0 }, { 0, 10800 },  { 10800, 21600 }, { 21600, 10800 }, { 40 MSO_I, 41 MSO_I }
5476 };
5477 static const SvxMSDffHandle mso_sptCalloutHandle[] =
5478 {
5479 	{
5480 		0,
5481 		0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff
5482 	}
5483 };
5484 static const mso_CustomShape msoWedgeRectCallout =
5485 {
5486 	(SvxMSDffVertPair*)mso_sptWedgeRectCalloutVert, sizeof( mso_sptWedgeRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
5487 	NULL, 0,
5488 	(SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5489 	(sal_Int32*)mso_sptWedgeRectCalloutDefault,
5490 	(SvxMSDffTextRectangles*)mso_sptWedgeRectCalloutTextRect, sizeof( mso_sptWedgeRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5491 	21600, 21600,
5492 	0x80000000, 0x80000000,
5493 	(SvxMSDffVertPair*)mso_sptWedgeRectCalloutGluePoints, sizeof( mso_sptWedgeRectCalloutGluePoints ) / sizeof( SvxMSDffVertPair ),
5494 	(SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )		// handles
5495 };
5496 static const SvxMSDffVertPair mso_sptWedgeRRectCalloutVert[] =
5497 {
5498 	{ 3590, 0 },
5499 	{ 0, 3590 },
5500 	{ 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5501 	{ 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5502 	{ 3590, 21600 },
5503 	{ 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5504 	{ 12630, 21600 }, { 8 MSO_I, 9 MSO_I },	{ 18010, 21600 },
5505 	{ 21600, 18010 },
5506 	{ 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5507 	{ 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5508 	{ 18010, 0 },
5509 	{ 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5510 	{ 8970, 0 }, { 16 MSO_I, 17 MSO_I }
5511 };
5512 static const sal_uInt16 mso_sptWedgeRRectCalloutSegm[] =
5513 {
5514 	0x4000, 0xa701, 0x0005, 0xa801, 0x0005, 0xa701, 0x0005, 0xa801, 0x0004, 0x6001, 0x8000
5515 };
5516 static const SvxMSDffTextRectangles mso_sptWedgeRRectCalloutTextRect[] =
5517 {
5518 	{ { 800, 800 }, { 20800, 20800 } }
5519 };
5520 static const mso_CustomShape msoWedgeRRectCallout =
5521 {
5522 	(SvxMSDffVertPair*)mso_sptWedgeRRectCalloutVert, sizeof( mso_sptWedgeRRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
5523 	(sal_uInt16*)mso_sptWedgeRRectCalloutSegm, sizeof( mso_sptWedgeRRectCalloutSegm ) >> 1,
5524 	(SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5525 	(sal_Int32*)mso_sptWedgeRectCalloutDefault,
5526 	(SvxMSDffTextRectangles*)mso_sptWedgeRRectCalloutTextRect, sizeof( mso_sptWedgeRRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5527 	21600, 21600,
5528 	0x80000000, 0x80000000,
5529 	NULL, 0,
5530 	(SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )		// handles
5531 };
5532 static const SvxMSDffVertPair mso_sptBalloonVert[] =
5533 {
5534 	{ 3590, 0 },
5535 	{ 0, 3590 },
5536 	{ 0, 14460 },
5537 	{ 3590, 18050 },
5538 	{ 40 MSO_I, 21600 }, { 5420, 18050 },
5539 	{ 18010, 18050 },
5540 	{ 21600, 14460 },
5541 	{ 21600, 3590 },
5542 	{ 18010, 0 }
5543 };
5544 static const sal_uInt16 mso_sptBalloonSegm[] =
5545 {
5546 	0x4000, 0xa701, 0x0001, 0xa801, 0x0003, 0xa701, 0x0001, 0xa801, 0x6001, 0x8000
5547 };
5548 static const SvxMSDffHandle mso_sptBalloonHandle[] =
5549 {
5550 	{
5551 		MSDFF_HANDLE_FLAGS_RANGE,
5552 		0x100, 1, 10800, 10800, 0, 8990, 0x80000000, 0x7fffffff
5553 	}
5554 };
5555 static const SvxMSDffTextRectangles mso_sptBalloonTextRect[] =
5556 {
5557 	{ { 800, 800 }, { 20800, 17250 } }
5558 };
5559 static const mso_CustomShape msoBalloon =
5560 {
5561 	(SvxMSDffVertPair*)mso_sptBalloonVert, sizeof( mso_sptBalloonVert ) / sizeof( SvxMSDffVertPair ),
5562 	(sal_uInt16*)mso_sptBalloonSegm, sizeof( mso_sptBalloonSegm ) >> 1,
5563 	(SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5564 	(sal_Int32*)mso_sptWedgeRectCalloutDefault,
5565 	(SvxMSDffTextRectangles*)mso_sptBalloonTextRect, sizeof( mso_sptBalloonTextRect ) / sizeof( SvxMSDffTextRectangles ),
5566 	21600, 21600,
5567 	0x80000000, 0x80000000,
5568 	NULL, 0,
5569 	(SvxMSDffHandle*)mso_sptBalloonHandle, sizeof( mso_sptBalloonHandle ) / sizeof( SvxMSDffHandle )		// handles
5570 };
5571 static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutVert[] =
5572 {
5573 	{ 0, 0 }, { 21600, 21600 }, { 0x16 MSO_I, 0x17 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0xe MSO_I, 0xf MSO_I }
5574 };
5575 static const sal_uInt16 mso_sptWedgeEllipseCalloutSegm[] =
5576 {
5577 	0xa504, 0x0001, 0x6001, 0x8000
5578 };
5579 static const SvxMSDffCalculationData mso_sptWedgeEllipseCalloutCalc[] =
5580 {
5581 	{ 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },		// 00 rad x
5582 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },	// 01 rad y
5583 	{ 0x6001, { 0x400, 0x400, 1 } },					// 02 rad x^2
5584 	{ 0x6001, { 0x401, 0x401, 1 } },					// 03 rad y^2
5585 	{ 0x6000, { 0x402, 0x403, 0 } },					// 04
5586 	{ 0x200d, { 0x404, 0, 0 } },						// 05
5587 	{ 0x2000, { 0x405, 0, 10800 } },					// 06 > 0 ? spur needs to be drawn : 10800
5588 	{ 0x6008, { 0x400, 0x401, 0 } },					// 07 atan2 -> angle
5589 	{ 0x2000, { 0x407, 0, 10 } },						// 08
5590 	{ 0x2000, { 0x407, 10, 0 } },						// 09
5591 	{ 0x400a, { 10800, 0x407, 0 } },					// 0a
5592 	{ 0x4009, { 10800, 0x407, 0 } },					// 0b
5593 	{ 0x2000, { 0x40a, 10800, 0 } },					// 0c
5594 	{ 0x2000, { 0x40b, 10800, 0 } },					// 0d
5595 	{ 0xe006, { 0x406, DFF_Prop_adjustValue, 0x40c } },	// 0e
5596 	{ 0xe006, { 0x406, DFF_Prop_adjust2Value, 0x40d } },// 0f
5597 	{ 0x400a, { 10800, 0x408, 0 } },					// 10
5598 	{ 0x4009, { 10800, 0x408, 0 } },					// 11
5599 	{ 0x2000, { 0x410, 10800, 0 } },					// 12
5600 	{ 0x2000, { 0x411, 10800, 0 } },					// 13
5601 	{ 0x400a, { 10800, 0x409, 0 } },					// 14
5602 	{ 0x4009, { 10800, 0x409, 0 } },					// 15
5603 	{ 0x2000, { 0x414, 10800, 0 } },					// 16
5604 	{ 0x2000, { 0x415, 10800, 0 } }					    // 17
5605 };
5606 static const sal_Int32 mso_sptWedgeEllipseCalloutDefault[] =
5607 {
5608 	2, 1350, 25920
5609 };
5610 static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutGluePoints[] =
5611 {
5612 	{ 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }, { 0xe MSO_I, 0xf MSO_I }
5613 };
5614 static const SvxMSDffTextRectangles mso_sptWedgeEllipseCalloutTextRect[] =
5615 {
5616 	{ { 3200, 3200 }, { 18400, 18400 } }
5617 };
5618 static const mso_CustomShape msoWedgeEllipseCallout =
5619 {
5620 	(SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutVert, sizeof( mso_sptWedgeEllipseCalloutVert ) / sizeof( SvxMSDffVertPair ),
5621 	(sal_uInt16*)mso_sptWedgeEllipseCalloutSegm, sizeof( mso_sptWedgeEllipseCalloutSegm ) >> 1,
5622 	(SvxMSDffCalculationData*)mso_sptWedgeEllipseCalloutCalc, sizeof( mso_sptWedgeEllipseCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5623 	(sal_Int32*)mso_sptWedgeEllipseCalloutDefault,
5624 	(SvxMSDffTextRectangles*)mso_sptWedgeEllipseCalloutTextRect, sizeof( mso_sptWedgeEllipseCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5625 	21600, 21600,
5626 	0x80000000, 0x80000000,
5627 	(SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutGluePoints, sizeof( mso_sptWedgeEllipseCalloutGluePoints ) / sizeof( SvxMSDffVertPair ),
5628 	(SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )		// handles
5629 };
5630 
5631 static const SvxMSDffVertPair mso_sptCloudCalloutVert[] =
5632 {
5633 	{ 1930,7160 },										// p
5634 	{ 1530,4490	}, { 3400,1970 }, { 5270,1970 },		// ccp
5635 	{ 5860,1950	}, { 6470,2210 }, { 6970,2600 },		// ccp
5636 	{ 7450,1390	}, { 8340,650 }, { 9340,650	},			// ccp
5637 	{ 10004,690	}, { 10710,1050	}, { 11210,1700	},		// ccp
5638 	{ 11570,630	}, { 12330,0 }, { 13150,0 },			// ccp
5639 	{ 13840,0 }, { 14470,460 }, { 14870,1160 },			// ccp
5640 	{ 15330,440 }, { 16020,0 }, { 16740,0 },			// ccp
5641 	{ 17910,0 }, { 18900,1130 }, { 19110,2710 },		// ccp
5642 	{ 20240,3150 }, { 21060,4580 }, { 21060,6220 },		// ccp
5643 	{ 21060,6720 }, { 21000,7200 }, { 20830,7660 },		// ccp
5644 	{ 21310,8460 }, { 21600,9450 }, { 21600,10460 },	// ccp
5645 	{ 21600,12750 }, { 20310,14680 }, { 18650,15010	},	// ccp
5646 	{ 18650,17200 }, { 17370,18920 }, { 15770,18920 },	// ccp
5647 	{ 15220,18920 }, { 14700,18710 }, { 14240,18310	},	// ccp
5648 	{ 13820,20240 }, { 12490,21600 }, { 11000,21600 },	// ccp
5649 	{ 9890,21600 }, { 8840,20790 }, { 8210,19510 },		// ccp
5650 	{ 7620,20000 }, { 7930,20290 }, { 6240,20290 },		// ccp
5651 	{ 4850,20290 }, { 3570,19280 }, { 2900,17640 },		// ccp
5652 	{ 1300,17600 }, { 480,16300 }, { 480,14660 },		// ccp
5653 	{ 480,13900	}, { 690,13210 }, { 1070,12640 },		// ccp
5654 	{ 380,12160	}, { 0,11210 }, { 0,10120 },			// ccp
5655 	{ 0,8590 },	{ 840,7330 }, { 1930,7160 },			// ccp
5656 
5657 	{ 1930, 7160 }, { 1950, 7410 }, { 2040, 7690 }, { 2090, 7920 },			// pccp
5658 	{ 6970, 2600 }, { 7200, 2790 }, { 7480, 3050 }, { 7670, 3310 },			// pccp
5659 	{ 11210, 1700 }, { 11130, 1910 }, { 11080, 2160 }, { 11030, 2400 },		// pccp
5660 	{ 14870, 1160 }, { 14720, 1400 }, { 14640, 1720 }, { 14540, 2010 },		// pccp
5661 	{ 19110, 2710 }, { 19130, 2890 }, { 19230, 3290 }, { 19190, 3380 },		// pccp
5662 	{ 20830, 7660 }, { 20660, 8170 }, { 20430, 8620 }, { 20110, 8990 },		// pccp
5663 	{ 18660, 15010 }, { 18740, 14200 }, { 18280, 12200 }, { 17000, 11450 },	// pccp
5664 	{ 14240, 18310 }, { 14320, 17980 }, { 14350, 17680 }, { 14370, 17360 },	// pccp
5665 	{ 8220, 19510 }, { 8060, 19250 }, { 7960, 18950 }, { 7860, 18640 },		// pccp
5666 	{ 2900, 17640 }, { 3090, 17600 }, { 3280, 17540 }, { 3460, 17450 },		// pccp
5667 	{ 1070, 12640 }, { 1400, 12900 }, { 1780, 13130 }, { 2330, 13040 },		// pccp
5668 
5669 	{ 0x11 MSO_I, 0x12 MSO_I }, { 1800, 1800 }, { 0, 360 },					// circ1
5670 	{ 0x13 MSO_I, 0x14 MSO_I }, { 1200, 1200 }, { 0, 360 },					// circ2
5671 	{ 0xd MSO_I, 0xe MSO_I }, { 700, 700 }, { 0, 360 }						// circ3
5672 };
5673 static const sal_uInt16 mso_sptCloudCalloutSegm[] =
5674 {
5675 	0x4000, 0x2016, 0x6001, 0x8000,
5676 	0x4000, 0x2001, 0xaa00, 0x8000,
5677 	0x4000, 0x2001, 0xaa00, 0x8000,
5678 	0x4000, 0x2001, 0xaa00, 0x8000,
5679 	0x4000, 0x2001, 0xaa00, 0x8000,
5680 	0x4000, 0x2001, 0xaa00, 0x8000,
5681 	0x4000, 0x2001, 0xaa00, 0x8000,
5682 	0x4000, 0x2001, 0xaa00, 0x8000,
5683 	0x4000, 0x2001, 0xaa00, 0x8000,
5684 	0x4000, 0x2001, 0xaa00, 0x8000,
5685 	0x4000, 0x2001, 0xaa00, 0x8000,
5686 	0x4000, 0x2001, 0xaa00, 0x8000,
5687 	0xa203, 0x6001, 0x8000,
5688 	0xa203, 0x6001, 0x8000,
5689 	0xa203, 0x6001, 0x8000
5690 };
5691 static const SvxMSDffCalculationData mso_sptCloudCalloutCalc[] =
5692 {
5693 	{ 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
5694 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },
5695 	{ 0x6008, { 0x400, 0x401, 0 } },
5696 	{ 0x400a, { 10800, 0x402, 0 } },					// 3
5697 	{ 0x4009, { 10800, 0x402, 0 } },					// 4
5698 	{ 0x2000, { 0x403, 10800, 0 } },					// 5
5699 	{ 0x2000, { 0x404, 10800, 0 } },					// 6
5700 	{ 0xa000, { DFF_Prop_adjustValue, 0, 0x405 } },		// 7
5701 	{ 0xa000, { DFF_Prop_adjust2Value,0, 0x406 } },		// 8
5702 	{ 0x2001, { 0x407, 1, 3 } },						// 9
5703 	{ 0x2001, { 0x408, 1, 3 } },						// 0xa
5704 	{ 0x2001, { 0x407, 2, 3 } },						// 0xb
5705 	{ 0x2001, { 0x408, 2, 3 } },						// 0xc
5706 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },			// 0xd
5707 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },		// 0xe
5708 	{ 0x2001, { 0x403, 1, 10800 / 900 } },				// 0xf	taking half x distance of the radius from the first bobble
5709 	{ 0x2001, { 0x404, 1, 10800 / 900 } },				// 0x10
5710 	{ 0xe000, { 0x409, 0x405, 0x40f } },				// 0x11
5711 	{ 0xe000, { 0x40a, 0x406, 0x410 } },				// 0x12
5712 	{ 0x6000, { 0x40b, 0x405, 0 } },					// 0x13
5713 	{ 0x6000, { 0x40c, 0x406, 0 } }						// 0x14
5714 };
5715 static const sal_Int32 mso_sptCloudCalloutDefault[] =
5716 {
5717 	2, 1350, 25920
5718 };
5719 static const SvxMSDffTextRectangles mso_sptCloudCalloutTextRect[] =
5720 {
5721 	{ { 3000, 3320 }, { 17110, 17330 } }
5722 };
5723 static const mso_CustomShape msoCloudCallout =
5724 {
5725 	(SvxMSDffVertPair*)mso_sptCloudCalloutVert, sizeof( mso_sptCloudCalloutVert ) / sizeof( SvxMSDffVertPair ),
5726 	(sal_uInt16*)mso_sptCloudCalloutSegm, sizeof( mso_sptCloudCalloutSegm ) >> 1,
5727 	(SvxMSDffCalculationData*)mso_sptCloudCalloutCalc, sizeof( mso_sptCloudCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5728 	(sal_Int32*)mso_sptCloudCalloutDefault,
5729 	(SvxMSDffTextRectangles*)mso_sptCloudCalloutTextRect, sizeof( mso_sptCloudCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5730 	21600, 21600,
5731 	0x80000000, 0x80000000,
5732 	NULL, 0,
5733 	(SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )		// handles
5734 };
5735 
5736 static const SvxMSDffVertPair mso_sptWaveVert[] =	// adjustment1 : 0 - 4460
5737 {													// adjustment2 : 8640 - 12960
5738 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
5739 	{ 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
5740 };
5741 static const SvxMSDffCalculationData mso_sptWaveCalc[] =
5742 {
5743 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	//400 (vert.adj)
5744 	{ 0x8000, { 21600, 0, 0x400 } },			//401
5745 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
5746 	{ 0x2000, { 0x402, 0, 10800 } },			//403 -2160 -> 2160 (horz.adj)
5747 	{ 0x2001, { 0x403, 2, 1 } },				//404 -4320 -> 4320 (horz.adj)
5748 	{ 0x2003, { 0x404, 0, 0 } },				//405 abs( 0x404 )	(horz.adj)
5749 	{ 0x8000, { 4320, 0, 0x405 } },				//406
5750 	{ 0xa006, { 0x403, 0, 0x405 } },			//407
5751 	{ 0x4001, { 15800, 0x400, 4460 } },			//408 0 -> 15800	(vert.adj)
5752 	{ 0xa000, { 0x400, 0, 0x408 } },			//409
5753 	{ 0x6000, { 0x400, 0x408, 0 } },			//40a
5754 	{ 0x8000, { 21600, 0, 0x404 } },			//40b
5755 	{ 0x6006, { 0x403, 0x40b, 21600 } },		//40c
5756 	{ 0xa000, { 0x40c, 0, 0x407 } },			//40d width between p0 and p1
5757 	{ 0x2001, { 0x405, 1, 2 } },				//40e
5758 	{ 0xa000, { 0x407, 7200, 0x40e } },			//40f
5759 	{ 0x6000, { 0x40c, 0x40e, 7200 } },			//410
5760 	{ 0x2001, { 0x40d, 1, 2 } },				//411 1/2 width
5761 	{ 0x6000, { 0x407, 0x411, 0 } },			//412 top center glue xpos
5762 	{ 0x8000, { 21600, 0, 0x412 } },			//413 bottom center glue xpos
5763 	{ 0x2001, { 0x405, 1, 2 } },				//414 left glue x pos
5764 	{ 0x8000, { 21600, 0, 0x414 } },			//415 right glue x pos
5765 	{ 0x2001, { 0x400, 2, 1 } },				//416 y1 (textbox)
5766 	{ 0x8000, { 21600, 0, 0x416 } },			//417 y2 (textbox)
5767 
5768 	{ 0x8000, { 21600, 0, 0x407 } },			//418 p2
5769 
5770 	{ 0x8000, { 21600, 0, 0x40f } },			//419 c
5771 	{ 0x6000, { 0x401, 0x408, 0 } },			//41a
5772 
5773 	{ 0x8000, { 21600, 0, 0x410 } },			//41b c
5774 	{ 0xa000, { 0x401, 0, 0x408 } },			//41c
5775 
5776 	{ 0x8000, { 21600, 0, 0x40c } } 			//41d p3
5777 };
5778 static const SvxMSDffVertPair mso_sptWaveGluePoints[] =
5779 {
5780 	{ 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
5781 };
5782 static const sal_uInt16 mso_sptWaveSegm[] =
5783 {
5784 	0x4000, 0x2001, 0x0001, 0x2001, 0x6000, 0x8000
5785 };
5786 static const SvxMSDffHandle mso_sptWaveHandle[] =
5787 {
5788 	{	MSDFF_HANDLE_FLAGS_RANGE,
5789 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4460 },
5790 	{	MSDFF_HANDLE_FLAGS_RANGE,
5791 		0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff }
5792 };
5793 static const sal_Int32 mso_sptWaveDefault[] =
5794 {
5795 	2, 1400, 10800
5796 };
5797 static const SvxMSDffTextRectangles mso_sptWaveTextRect[] =
5798 {
5799 	{ { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
5800 };
5801 static const mso_CustomShape msoWave =
5802 {
5803 	(SvxMSDffVertPair*)mso_sptWaveVert, sizeof( mso_sptWaveVert ) / sizeof( SvxMSDffVertPair ),
5804 	(sal_uInt16*)mso_sptWaveSegm, sizeof( mso_sptWaveSegm ) >> 1,
5805 	(SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
5806 	(sal_Int32*)mso_sptWaveDefault,
5807 	(SvxMSDffTextRectangles*)mso_sptWaveTextRect, sizeof( mso_sptWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
5808 	21600, 21600,
5809 	0x80000000, 0x80000000,
5810 	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
5811 	(SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
5812 };
5813 
5814 static const SvxMSDffVertPair mso_sptDoubleWaveVert[] =	// adjustment1 : 0 - 2230
5815 {														// adjustment2 : 8640 - 12960
5816 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
5817 	{ 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
5818 };
5819 static const SvxMSDffCalculationData mso_sptDoubleWaveCalc[] =
5820 {
5821 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	//400 (vert.adj)
5822 	{ 0x8000, { 21600, 0, 0x400 } },			//401
5823 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
5824 	{ 0x2000, { 0x402, 0, 10800 } },			//403 -2160 -> 2160 (horz.adj)
5825 	{ 0x2001, { 0x403, 2, 1 } },				//404 -4320 -> 4320 (horz.adj)
5826 	{ 0x2003, { 0x404, 0, 0 } },				//405 abs( 0x404 )	(horz.adj)
5827 	{ 0x8000, { 4320, 0, 0x405 } },				//406 -> not used
5828 	{ 0xa006, { 0x403, 0, 0x405 } },			//407
5829 	{ 0x4001, { 7900, 0x400, 2230 } },			//408 0 -> 7900	(vert.adj)
5830 	{ 0xa000, { 0x400, 0, 0x408 } },			//409
5831 	{ 0x6000, { 0x400, 0x408, 0 } },			//40a
5832 	{ 0x8000, { 21600, 0, 0x404 } },			//40b
5833 	{ 0x6006, { 0x403, 0x40b, 21600 } },		//40c
5834 	{ 0xa000, { 0x40c, 0, 0x407 } },			//40d width between p0 and p1
5835 	{ 0x2001, { 0x405, 1, 2 } },				//40e
5836 	{ 0xa000, { 0x407, 3600, 0x40e } },			//40f
5837 	{ 0x6000, { 0x40c, 0x40e, 3600 } },			//410
5838 	{ 0x2001, { 0x40d, 1, 2 } },				//411 1/2 width
5839 	{ 0x6000, { 0x407, 0x411, 0 } },			//412 top center glue xpos
5840 	{ 0x8000, { 21600, 0, 0x412 } },			//413 bottom center glue xpos
5841 	{ 0x2001, { 0x405, 1, 2 } },				//414 left glue x pos
5842 	{ 0x8000, { 21600, 0, 0x414 } },			//415 right glue x pos
5843 	{ 0x2001, { 0x400, 2, 1 } },				//416 y1 (textbox)
5844 	{ 0x8000, { 21600, 0, 0x416 } },			//417 y2 (textbox)
5845 
5846 	{ 0x8000, { 21600, 0, 0x407 } },			//418 p2
5847 
5848 	{ 0x8000, { 21600, 0, 0x40f } },			//419 c
5849 	{ 0x6000, { 0x401, 0x408, 0 } },			//41a
5850 
5851 	{ 0x8000, { 21600, 0, 0x410 } },			//41b c
5852 	{ 0xa000, { 0x401, 0, 0x408 } },			//41c
5853 
5854 	{ 0x8000, { 21600, 0, 0x40c } }, 			//41d p3
5855 	{ 0xa000, { 0x412, 0, 0x40e } },			//41e
5856 	{ 0x6000, { 0x412, 0x40e, 0 } },			//41f
5857 	{ 0xa000, { 0x413, 0, 0x40e } },			//420
5858 	{ 0x6000, { 0x413, 0x40e, 0 } }				//421
5859 };
5860 static const SvxMSDffVertPair mso_sptDoubleWaveGluePoints[] =
5861 {
5862 	{ 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
5863 };
5864 static const sal_uInt16 mso_sptDoubleWaveSegm[] =
5865 {
5866 	0x4000, 0x2002, 0x0001, 0x2002, 0x6000, 0x8000
5867 };
5868 static const SvxMSDffHandle mso_sptDoubleWaveHandle[] =
5869 {
5870 	{	MSDFF_HANDLE_FLAGS_RANGE,
5871 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 2230 },
5872 	{	MSDFF_HANDLE_FLAGS_RANGE,
5873 		0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff }
5874 };
5875 static const sal_Int32 mso_sptDoubleWaveDefault[] =
5876 {
5877 	2, 1400, 10800
5878 };
5879 static const SvxMSDffTextRectangles mso_sptDoubleWaveTextRect[] =
5880 {
5881 	{ { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
5882 };
5883 static const mso_CustomShape msoDoubleWave =
5884 {
5885 	(SvxMSDffVertPair*)mso_sptDoubleWaveVert, sizeof( mso_sptDoubleWaveVert ) / sizeof( SvxMSDffVertPair ),
5886 	(sal_uInt16*)mso_sptDoubleWaveSegm, sizeof( mso_sptDoubleWaveSegm ) >> 1,
5887 	(SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
5888 	(sal_Int32*)mso_sptDoubleWaveDefault,
5889 	(SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
5890 	21600, 21600,
5891 	0x80000000, 0x80000000,
5892 	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
5893 	(SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
5894 };
5895 
5896 // for each shapetype a bit of 1 is indicating that the shape is NOT filled by default
5897 static const sal_uInt16 mso_DefaultFillingTable[] =
5898 {
5899 	0x0000, 0x0018, 0x01ff, 0x0000, 0x0c00, 0x01e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000
5900 };
5901 sal_Bool IsCustomShapeFilledByDefault( MSO_SPT eSpType )
5902 {
5903 	sal_Bool bIsFilledByDefault = sal_True;
5904 	sal_uInt32 i = (sal_uInt32)eSpType;
5905 	if ( i < 0x100 )
5906 		bIsFilledByDefault = ( mso_DefaultFillingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
5907 	return bIsFilledByDefault;
5908 }
5909 sal_Int16 GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType )
5910 {
5911 	sal_Int16 nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::SEGMENTS;
5912 	const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eSpType );
5913 	if ( pDefCustomShape && pDefCustomShape->nGluePoints )
5914 		nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::CUSTOM;
5915 	else
5916 	{
5917 		switch( eSpType )
5918 		{
5919 			case mso_sptRectangle :
5920 			case mso_sptRoundRectangle :
5921 			case mso_sptPictureFrame :
5922 			case mso_sptFlowChartProcess :
5923 			case mso_sptFlowChartPredefinedProcess :
5924 			case mso_sptFlowChartInternalStorage :
5925 			case mso_sptTextPlainText :
5926 			case mso_sptTextBox :
5927 			case mso_sptVerticalScroll :
5928 			case mso_sptHorizontalScroll :
5929 				nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::RECT;
5930 			default: break;
5931 		}
5932 	}
5933 	return nGluePointType;
5934 }
5935 
5936 // for each shapetype a bit of 1 is indicating that the shape is NOT stroked by default
5937 // #i28269#
5938 static const sal_uInt16 mso_DefaultStrokingTable[] =
5939 {
5940 	0x0000, 0x0000, 0x0000, 0x0000,
5941 	0x0800, 0x0000, 0x0000, 0x0000, // #i28269# Added shape 75 (mso_sptPictureFrame)
5942 	0x0000, 0x0000, 0x0000, 0x0000,
5943 	0x0000, 0x0000, 0x0000, 0x0000
5944 };
5945 // #i28269#
5946 sal_Bool IsCustomShapeStrokedByDefault( MSO_SPT eSpType )
5947 {
5948 	sal_Bool bIsStrokedByDefault = sal_True;
5949 	sal_uInt32 i = (sal_uInt32)eSpType;
5950 	if ( i < 0x100 )
5951 		bIsStrokedByDefault = ( mso_DefaultStrokingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
5952 	return bIsStrokedByDefault;
5953 }
5954 
5955 static const sal_uInt16 msoSortFilledObjectsToBackTable[] =
5956 {
5957 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
5958 };
5959 sal_Bool SortFilledObjectsToBackByDefault( MSO_SPT eSpType )
5960 {
5961 	sal_Bool bSortFilledObjectsToBackByDefault = sal_True;
5962 	sal_uInt32 i = (sal_uInt32)eSpType;
5963 	if ( i < 0x100 )
5964 		bSortFilledObjectsToBackByDefault = ( msoSortFilledObjectsToBackTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) != 0;
5965 	return bSortFilledObjectsToBackByDefault;
5966 }
5967 
5968 static const SvxMSDffVertPair mso_sptFontWorkVert[] =
5969 {
5970 	{ 0, 0 }, { 21600, 0 }, { 0, 21600 }, { 21600, 21600 }
5971 };
5972 static const sal_uInt16 mso_sptFontWorkSegm[] =
5973 {
5974 	0x4000, 0x0001, 0x8000,
5975 	0x4000, 0x0001, 0x8000
5976 };
5977 static const SvxMSDffTextRectangles mso_sptFontWorkTextRect[] =
5978 {
5979 	{ { 0, 0 }, { 21600, 21600 } }
5980 };
5981 static const mso_CustomShape msoFontWork =
5982 {
5983 	(SvxMSDffVertPair*)mso_sptFontWorkVert, sizeof( mso_sptFontWorkVert ) / sizeof( SvxMSDffVertPair ),
5984 	(sal_uInt16*)mso_sptFontWorkSegm, sizeof( mso_sptFontWorkSegm ) >> 1,
5985 	NULL, 0,
5986 	NULL,
5987 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
5988 	21600, 21600,
5989 	0x80000000, 0x80000000,
5990 	NULL, 0,
5991 	NULL, 0	// Handles
5992 };
5993 
5994 static const SvxMSDffVertPair mso_sptTextPlainTextVert[] =
5995 {
5996 	{ 3 MSO_I, 0 }, { 5 MSO_I, 0 }, { 6 MSO_I, 21600 }, { 7 MSO_I, 21600 }
5997 };
5998 static const SvxMSDffCalculationData mso_sptTextPlainTextCalc[] =	// adjustment1 : 6629 - 14971
5999 {
6000 	{ 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
6001 	{ 0x2001, { 0x400, 2, 1 } },
6002 	{ 0x2003, { 0x401, 0, 0 } },
6003 	{ 0xa006, { 0x401, 0, 0x402 } },		// x1(3)
6004 	{ 0x8000, { 21600, 0, 0x402 } },
6005 	{ 0x6006, { 0x401, 0x404, 21600 } },	// x2(5)
6006 	{ 0x6006, { 0x401, 0x402, 0 } },		// x2
6007 	{ 0xa006, { 0x401, 21600, 0x404 } }		// x3(7)
6008 };
6009 static const sal_uInt16 mso_sptTextPlainTextSegm[] =
6010 {
6011 	0x4000, 0x0001, 0x8000,
6012 	0x4000, 0x0001, 0x8000
6013 };
6014 static const SvxMSDffHandle mso_sptTextPlainTextHandle[] =
6015 {
6016 	{	MSDFF_HANDLE_FLAGS_RANGE,
6017 		0x100, 21600, 10800, 10800, 6629, 14971, 0x80000000, 0x7fffffff }
6018 };
6019 static const mso_CustomShape msoTextPlainText =
6020 {
6021 	(SvxMSDffVertPair*)mso_sptTextPlainTextVert, sizeof( mso_sptTextPlainTextVert ) / sizeof( SvxMSDffVertPair ),
6022 	(sal_uInt16*)mso_sptTextPlainTextSegm, sizeof( mso_sptTextPlainTextSegm ) >> 1,
6023 	(SvxMSDffCalculationData*)mso_sptTextPlainTextCalc, sizeof( mso_sptTextPlainTextCalc ) / sizeof( SvxMSDffCalculationData ),
6024 	(sal_Int32*)mso_sptDefault10800,
6025 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6026 	21600, 21600,
6027 	0x80000000, 0x80000000,
6028 	NULL, 0,
6029 	(SvxMSDffHandle*)mso_sptTextPlainTextHandle, sizeof( mso_sptTextPlainTextHandle ) / sizeof( SvxMSDffHandle )
6030 };
6031 
6032 static const SvxMSDffVertPair mso_sptTextStopVert[] =
6033 {
6034 	{ 0, 0 MSO_I }, { 7200, 0 }, { 14400, 0 }, { 21600, 0 MSO_I },
6035 	{ 0, 1 MSO_I }, { 7200, 21600 }, { 14400, 21600 }, { 21600, 1 MSO_I }
6036 };
6037 static const SvxMSDffCalculationData mso_sptTextStopCalc[] =	// adjustment1 : 3080 - 10800
6038 {
6039 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6040 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6041 };
6042 static const sal_uInt16 mso_sptTextStopSegm[] =
6043 {
6044 	0x4000, 0x0003, 0x8000,
6045 	0x4000, 0x0003, 0x8000
6046 };
6047 static const sal_Int32 mso_sptTextStopDefault[] =
6048 {
6049 	1, 2700
6050 };
6051 static const SvxMSDffHandle mso_sptTextStopHandle[] =
6052 {
6053 	{	MSDFF_HANDLE_FLAGS_RANGE,
6054 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 3080, 10800 }
6055 };
6056 static const mso_CustomShape msoTextStop =
6057 {
6058 	(SvxMSDffVertPair*)mso_sptTextStopVert, sizeof( mso_sptTextStopVert ) / sizeof( SvxMSDffVertPair ),
6059 	(sal_uInt16*)mso_sptTextStopSegm, sizeof( mso_sptTextStopSegm ) >> 1,
6060 	(SvxMSDffCalculationData*)mso_sptTextStopCalc, sizeof( mso_sptTextStopCalc ) / sizeof( SvxMSDffCalculationData ),
6061 	(sal_Int32*)mso_sptTextStopDefault,
6062 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6063 	21600, 21600,
6064 	0x80000000, 0x80000000,
6065 	NULL, 0,
6066 	(SvxMSDffHandle*)mso_sptTextStopHandle, sizeof( mso_sptTextStopHandle ) / sizeof( SvxMSDffHandle )
6067 };
6068 
6069 static const SvxMSDffVertPair mso_sptTextTriangleVert[] =
6070 {
6071 	{ 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 21600 }
6072 };
6073 static const SvxMSDffCalculationData mso_sptTextTriangleCalc[] =	// adjustment1 : 6629 - 14971
6074 {
6075 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
6076 };
6077 static const sal_uInt16 mso_sptTextTriangleSegm[] =
6078 {
6079 	0x4000, 0x0002, 0x8000,
6080 	0x4000, 0x0001, 0x8000
6081 };
6082 static const SvxMSDffHandle mso_sptTextTriangleHandle[] =
6083 {
6084 	{	MSDFF_HANDLE_FLAGS_RANGE,
6085 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
6086 };
6087 static const mso_CustomShape msoTextTriangle =
6088 {
6089 	(SvxMSDffVertPair*)mso_sptTextTriangleVert, sizeof( mso_sptTextTriangleVert ) / sizeof( SvxMSDffVertPair ),
6090 	(sal_uInt16*)mso_sptTextTriangleSegm, sizeof( mso_sptTextTriangleSegm ) >> 1,
6091 	(SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
6092 	(sal_Int32*)mso_sptDefault10800,
6093 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6094 	21600, 21600,
6095 	0x80000000, 0x80000000,
6096 	NULL, 0,
6097 	(SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle )
6098 };
6099 static const SvxMSDffVertPair mso_sptTextTriangleInvertedVert[] =
6100 {
6101 	{ 0, 0 }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6102 };
6103 static const sal_uInt16 mso_sptTextTriangleInvertedSegm[] =
6104 {
6105 	0x4000, 0x0001, 0x8000,
6106 	0x4000, 0x0002, 0x8000
6107 };
6108 static const mso_CustomShape msoTextTriangleInverted =
6109 {
6110 	(SvxMSDffVertPair*)mso_sptTextTriangleInvertedVert, sizeof( mso_sptTextTriangleInvertedVert ) / sizeof( SvxMSDffVertPair ),
6111 	(sal_uInt16*)mso_sptTextTriangleInvertedSegm, sizeof( mso_sptTextTriangleInvertedSegm ) >> 1,
6112 	(SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
6113 	(sal_Int32*)mso_sptDefault10800,
6114 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6115 	21600, 21600,
6116 	0x80000000, 0x80000000,
6117 	NULL, 0,
6118 	(SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle )
6119 };
6120 
6121 static const SvxMSDffVertPair mso_sptTextChevronVert[] =
6122 {
6123 	{ 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 10800, 1 MSO_I }, { 21600, 21600 }
6124 };
6125 static const SvxMSDffCalculationData mso_sptTextChevronCalc[] =	// adjustment1 : 6629 - 14971
6126 {
6127 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6128 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6129 };
6130 static const sal_uInt16 mso_sptTextChevronSegm[] =
6131 {
6132 	0x4000, 0x0002, 0x8000,
6133 	0x4000, 0x0002, 0x8000
6134 };
6135 static const SvxMSDffHandle mso_sptTextChevronHandle[] =
6136 {
6137 	{	MSDFF_HANDLE_FLAGS_RANGE,
6138 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6139 };
6140 static const mso_CustomShape msoTextChevron =
6141 {
6142 	(SvxMSDffVertPair*)mso_sptTextChevronVert, sizeof( mso_sptTextChevronVert ) / sizeof( SvxMSDffVertPair ),
6143 	(sal_uInt16*)mso_sptTextChevronSegm, sizeof( mso_sptTextChevronSegm ) >> 1,
6144 	(SvxMSDffCalculationData*)mso_sptTextChevronCalc, sizeof( mso_sptTextChevronCalc ) / sizeof( SvxMSDffCalculationData ),
6145 	(sal_Int32*)mso_sptDefault5400,
6146 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6147 	21600, 21600,
6148 	0x80000000, 0x80000000,
6149 	NULL, 0,
6150 	(SvxMSDffHandle*)mso_sptTextChevronHandle, sizeof( mso_sptTextChevronHandle ) / sizeof( SvxMSDffHandle )
6151 };
6152 
6153 static const SvxMSDffVertPair mso_sptTextChevronInvertedVert[] =
6154 {
6155 	{ 0, 0 }, { 10800, 1 MSO_I }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6156 };
6157 static const SvxMSDffCalculationData mso_sptTextChevronInvertedCalc[] =	// adjustment1 : 6629 - 14971
6158 {
6159 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6160 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6161 };
6162 static const sal_uInt16 mso_sptTextChevronInvertedSegm[] =
6163 {
6164 	0x4000, 0x0002, 0x8000,
6165 	0x4000, 0x0002, 0x8000
6166 };
6167 static const SvxMSDffHandle mso_sptTextChevronInvertedHandle[] =
6168 {
6169 	{	MSDFF_HANDLE_FLAGS_RANGE,
6170 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
6171 };
6172 static const mso_CustomShape msoTextChevronInverted =
6173 {
6174 	(SvxMSDffVertPair*)mso_sptTextChevronInvertedVert, sizeof( mso_sptTextChevronInvertedVert ) / sizeof( SvxMSDffVertPair ),
6175 	(sal_uInt16*)mso_sptTextChevronInvertedSegm, sizeof( mso_sptTextChevronInvertedSegm ) >> 1,
6176 	(SvxMSDffCalculationData*)mso_sptTextChevronInvertedCalc, sizeof( mso_sptTextChevronInvertedCalc ) / sizeof( SvxMSDffCalculationData ),
6177 	(sal_Int32*)mso_sptDefault16200,
6178 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6179 	21600, 21600,
6180 	0x80000000, 0x80000000,
6181 	NULL, 0,
6182 	(SvxMSDffHandle*)mso_sptTextChevronInvertedHandle, sizeof( mso_sptTextChevronInvertedHandle ) / sizeof( SvxMSDffHandle )
6183 };
6184 
6185 static const SvxMSDffVertPair mso_sptTextRingOutsideVert[] =
6186 {
6187 	{ 10800, 0 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 },
6188 	{ 10800, 1 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 }
6189 };
6190 static const SvxMSDffCalculationData mso_sptTextRingOutsideCalc[] =	// adjustment1 : 6629 - 14971
6191 {
6192 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
6193 	{ 0x8000, { 21600, 0, 0x400 } }
6194 };
6195 static const sal_uInt16 mso_sptTextRingOutsideSegm[] =
6196 {
6197 	0xA203, 0x8000,
6198 	0xA203, 0x8000
6199 };
6200 static const SvxMSDffHandle mso_sptTextRingOutsideHandle[] =
6201 {
6202 	{	MSDFF_HANDLE_FLAGS_RANGE,
6203 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
6204 };
6205 static const mso_CustomShape msoTextRingOutside =
6206 {
6207 	(SvxMSDffVertPair*)mso_sptTextRingOutsideVert, sizeof( mso_sptTextRingOutsideVert ) / sizeof( SvxMSDffVertPair ),
6208 	(sal_uInt16*)mso_sptTextRingOutsideSegm, sizeof( mso_sptTextRingOutsideSegm ) >> 1,
6209 	(SvxMSDffCalculationData*)mso_sptTextRingOutsideCalc, sizeof( mso_sptTextRingOutsideCalc ) / sizeof( SvxMSDffCalculationData ),
6210 	(sal_Int32*)mso_sptDefault16200,
6211 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6212 	21600, 21600,
6213 	0x80000000, 0x80000000,
6214 	NULL, 0,
6215 	(SvxMSDffHandle*)mso_sptTextRingOutsideHandle, sizeof( mso_sptTextRingOutsideHandle ) / sizeof( SvxMSDffHandle )
6216 };
6217 
6218 static const SvxMSDffVertPair mso_sptTextFadeRightVert[] =
6219 {
6220 	{ 0, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 1 MSO_I }
6221 };
6222 static const SvxMSDffCalculationData mso_sptTextFadeCalc[] =
6223 {
6224 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6225 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6226 };
6227 static const sal_uInt16 mso_sptTextFadeSegm[] =
6228 {
6229 	0x4000, 0x0001, 0x8000,
6230 	0x4000, 0x0001, 0x8000
6231 };
6232 static const SvxMSDffHandle mso_sptTextFadeRightHandle[] =
6233 {
6234 	{	MSDFF_HANDLE_FLAGS_RANGE,
6235 		21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6236 };
6237 static const mso_CustomShape msoTextFadeRight =
6238 {
6239 	(SvxMSDffVertPair*)mso_sptTextFadeRightVert, sizeof( mso_sptTextFadeRightVert ) / sizeof( SvxMSDffVertPair ),
6240 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6241 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6242 	(sal_Int32*)mso_sptDefault7200,
6243 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6244 	21600, 21600,
6245 	0x80000000, 0x80000000,
6246 	NULL, 0,
6247 	(SvxMSDffHandle*)mso_sptTextFadeRightHandle, sizeof( mso_sptTextFadeRightHandle ) / sizeof( SvxMSDffHandle )
6248 };
6249 
6250 static const SvxMSDffVertPair mso_sptTextFadeLeftVert[] =
6251 {
6252 	{ 0, 0 MSO_I }, { 21600, 0 }, { 0, 1 MSO_I }, { 21600, 21600 }
6253 };
6254 static const SvxMSDffHandle mso_sptTextFadeLeftHandle[] =
6255 {
6256 	{	MSDFF_HANDLE_FLAGS_RANGE,
6257 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6258 };
6259 static const mso_CustomShape msoTextFadeLeft =
6260 {
6261 	(SvxMSDffVertPair*)mso_sptTextFadeLeftVert, sizeof( mso_sptTextFadeLeftVert ) / sizeof( SvxMSDffVertPair ),
6262 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6263 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6264 	(sal_Int32*)mso_sptDefault7200,
6265 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6266 	21600, 21600,
6267 	0x80000000, 0x80000000,
6268 	NULL, 0,
6269 	(SvxMSDffHandle*)mso_sptTextFadeLeftHandle, sizeof( mso_sptTextFadeLeftHandle ) / sizeof( SvxMSDffHandle )
6270 };
6271 
6272 static const SvxMSDffVertPair mso_sptTextFadeUpVert[] =
6273 {
6274 	{ 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 0, 21600 }, { 21600, 21600 }
6275 };
6276 static const SvxMSDffHandle mso_sptTextFadeUpHandle[] =
6277 {
6278 	{	MSDFF_HANDLE_FLAGS_RANGE,
6279 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6280 };
6281 static const mso_CustomShape msoTextFadeUp =
6282 {
6283 	(SvxMSDffVertPair*)mso_sptTextFadeUpVert, sizeof( mso_sptTextFadeUpVert ) / sizeof( SvxMSDffVertPair ),
6284 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6285 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6286 	(sal_Int32*)mso_sptDefault7200,
6287 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6288 	21600, 21600,
6289 	0x80000000, 0x80000000,
6290 	NULL, 0,
6291 	(SvxMSDffHandle*)mso_sptTextFadeUpHandle, sizeof( mso_sptTextFadeUpHandle ) / sizeof( SvxMSDffHandle )
6292 };
6293 
6294 static const SvxMSDffVertPair mso_sptTextFadeDownVert[] =
6295 {
6296 	{ 0, 0 }, { 21600, 0 }, { 0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
6297 };
6298 static const SvxMSDffHandle mso_sptTextFadeDownHandle[] =
6299 {
6300 	{	MSDFF_HANDLE_FLAGS_RANGE,
6301 		0x100, 21600, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6302 };
6303 static const mso_CustomShape msoTextFadeDown =
6304 {
6305 	(SvxMSDffVertPair*)mso_sptTextFadeDownVert, sizeof( mso_sptTextFadeDownVert ) / sizeof( SvxMSDffVertPair ),
6306 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6307 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6308 	(sal_Int32*)mso_sptDefault7200,
6309 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6310 	21600, 21600,
6311 	0x80000000, 0x80000000,
6312 	NULL, 0,
6313 	(SvxMSDffHandle*)mso_sptTextFadeDownHandle, sizeof( mso_sptTextFadeDownHandle ) / sizeof( SvxMSDffHandle )
6314 };
6315 
6316 static const SvxMSDffVertPair mso_sptTextSlantUpVert[] =
6317 {
6318 	{ 0, 0 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 1 MSO_I }
6319 };
6320 static const SvxMSDffHandle mso_sptTextSlantUpHandle[] =
6321 {
6322 	{	MSDFF_HANDLE_FLAGS_RANGE,
6323 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 15400 }
6324 };
6325 static const mso_CustomShape msoTextSlantUp =
6326 {
6327 	(SvxMSDffVertPair*)mso_sptTextSlantUpVert, sizeof( mso_sptTextSlantUpVert ) / sizeof( SvxMSDffVertPair ),
6328 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6329 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6330 	(sal_Int32*)mso_sptDefault12000,
6331 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6332 	21600, 21600,
6333 	0x80000000, 0x80000000,
6334 	NULL, 0,
6335 	(SvxMSDffHandle*)mso_sptTextSlantUpHandle, sizeof( mso_sptTextSlantUpHandle ) / sizeof( SvxMSDffHandle )
6336 };
6337 
6338 static const SvxMSDffVertPair mso_sptTextSlantDownVert[] =
6339 {
6340 	{ 0, 0 }, { 21600, 1 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6341 };
6342 static const SvxMSDffHandle mso_sptTextSlantDownHandle[] =
6343 {
6344 	{	MSDFF_HANDLE_FLAGS_RANGE,
6345 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6346 };
6347 static const mso_CustomShape msoTextSlantDown =
6348 {
6349 	(SvxMSDffVertPair*)mso_sptTextSlantDownVert, sizeof( mso_sptTextSlantDownVert ) / sizeof( SvxMSDffVertPair ),
6350 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6351 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6352 	(sal_Int32*)mso_sptDefault12000,
6353 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6354 	21600, 21600,
6355 	0x80000000, 0x80000000,
6356 	NULL, 0,
6357 	(SvxMSDffHandle*)mso_sptTextSlantDownHandle, sizeof( mso_sptTextSlantDownHandle ) / sizeof( SvxMSDffHandle )
6358 };
6359 
6360 static const SvxMSDffVertPair mso_sptTextCascadeUpVert[] =
6361 {
6362 	{ 0, 2 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 0 MSO_I }
6363 };
6364 static const SvxMSDffCalculationData mso_sptTextCascadeCalc[] =
6365 {
6366 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6367 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
6368 	{ 0x2001, { 0x401, 1, 4 } }
6369 };
6370 static const SvxMSDffHandle mso_sptTextCascadeUpHandle[] =
6371 {
6372 	{	MSDFF_HANDLE_FLAGS_RANGE,
6373 		21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6374 };
6375 static const mso_CustomShape msoTextCascadeUp =
6376 {
6377 	(SvxMSDffVertPair*)mso_sptTextCascadeUpVert, sizeof( mso_sptTextCascadeUpVert ) / sizeof( SvxMSDffVertPair ),
6378 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6379 	(SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ),
6380 	(sal_Int32*)mso_sptDefault9600,
6381 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6382 	21600, 21600,
6383 	0x80000000, 0x80000000,
6384 	NULL, 0,
6385 	(SvxMSDffHandle*)mso_sptTextCascadeUpHandle, sizeof( mso_sptTextCascadeUpHandle ) / sizeof( SvxMSDffHandle )
6386 };
6387 
6388 static const SvxMSDffVertPair mso_sptTextCascadeDownVert[] =
6389 {
6390 	{ 0, 0 }, { 21600, 2 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6391 };
6392 static const SvxMSDffHandle mso_sptTextCascadeDownHandle[] =
6393 {
6394 	{	MSDFF_HANDLE_FLAGS_RANGE,
6395 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6396 };
6397 static const mso_CustomShape msoTextCascadeDown =
6398 {
6399 	(SvxMSDffVertPair*)mso_sptTextCascadeDownVert, sizeof( mso_sptTextCascadeDownVert ) / sizeof( SvxMSDffVertPair ),
6400 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6401 	(SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ),
6402 	(sal_Int32*)mso_sptDefault9600,
6403 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6404 	21600, 21600,
6405 	0x80000000, 0x80000000,
6406 	NULL, 0,
6407 	(SvxMSDffHandle*)mso_sptTextCascadeDownHandle, sizeof( mso_sptTextCascadeDownHandle ) / sizeof( SvxMSDffHandle )
6408 };
6409 
6410 static const SvxMSDffVertPair mso_sptTextArchUpCurveVert[] =
6411 {
6412 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
6413 };
6414 static const SvxMSDffCalculationData mso_sptTextArchCurveCalc[] =
6415 {
6416 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6417 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6418 	{ 0x2000, { 0x400, 10800, 0 } },
6419 	{ 0x2000, { 0x401, 10800, 0 } },
6420 	{ 0x8000, { 21600, 0, 0x402 } }
6421 };
6422 static const sal_uInt16 mso_sptTextArchUpCurveSegm[] =
6423 {
6424 	0xA504, 0x8000		// clockw�se arc
6425 };
6426 static const SvxMSDffHandle mso_sptTextArchUpCurveHandle[] =
6427 {
6428 	{	MSDFF_HANDLE_FLAGS_POLAR,
6429 		10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6430 };
6431 static const sal_Int32 mso_sptTextArchUpCurveDefault[] =
6432 {
6433 	1, 180
6434 };
6435 static const mso_CustomShape msoTextArchUpCurve =
6436 {
6437 	(SvxMSDffVertPair*)mso_sptTextArchUpCurveVert, sizeof( mso_sptTextArchUpCurveVert ) / sizeof( SvxMSDffVertPair ),
6438 	(sal_uInt16*)mso_sptTextArchUpCurveSegm, sizeof( mso_sptTextArchUpCurveSegm ) >> 1,
6439 	(SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6440 	(sal_Int32*)mso_sptTextArchUpCurveDefault,
6441 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6442 	21600, 21600,
6443 	0x80000000, 0x80000000,
6444 	NULL, 0,
6445 	(SvxMSDffHandle*)mso_sptTextArchUpCurveHandle, sizeof( mso_sptTextArchUpCurveHandle ) / sizeof( SvxMSDffHandle )
6446 };
6447 
6448 static const SvxMSDffVertPair mso_sptTextArchDownCurveVert[] =
6449 {
6450 	{ 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6451 };
6452 static const sal_uInt16 mso_sptTextArchDownCurveSegm[] =
6453 {
6454 	0xA304, 0x8000		// counter clockwise arc to
6455 };
6456 static const SvxMSDffHandle mso_sptTextArchDownCurveHandle[] =
6457 {
6458 	{	MSDFF_HANDLE_FLAGS_POLAR,
6459 		10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6460 };
6461 static const sal_Int32 mso_sptTextArchDownCurveDefault[] =
6462 {
6463 	1, 0
6464 };
6465 static const mso_CustomShape msoTextArchDownCurve =
6466 {
6467 	(SvxMSDffVertPair*)mso_sptTextArchDownCurveVert, sizeof( mso_sptTextArchDownCurveVert ) / sizeof( SvxMSDffVertPair ),
6468 	(sal_uInt16*)mso_sptTextArchDownCurveSegm, sizeof( mso_sptTextArchDownCurveSegm ) >> 1,
6469 	(SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6470 	(sal_Int32*)mso_sptTextArchDownCurveDefault,
6471 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6472 	21600, 21600,
6473 	0x80000000, 0x80000000,
6474 	NULL, 0,
6475 	(SvxMSDffHandle*)mso_sptTextArchDownCurveHandle, sizeof( mso_sptTextArchDownCurveHandle ) / sizeof( SvxMSDffHandle )
6476 };
6477 
6478 static const SvxMSDffVertPair mso_sptTextCircleCurveVert[] =
6479 {
6480 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I }
6481 };
6482 static const SvxMSDffCalculationData mso_sptTextCircleCurveCalc[] =
6483 {
6484 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6485 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6486 	{ 0x2000, { 0x400, 10800, 0 } },
6487 	{ 0x2000, { 0x401, 10800, 0 } },
6488 	{ 0x8000, { 21600, 0, 0x403 } }
6489 };
6490 static const sal_uInt16 mso_sptTextCircleCurveSegm[] =
6491 {
6492 	0xA504, 0x8000		// clockwise arc to
6493 };
6494 static const SvxMSDffHandle mso_sptTextCircleCurveHandle[] =
6495 {
6496 	{	MSDFF_HANDLE_FLAGS_POLAR,
6497 		10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6498 };
6499 static const sal_Int32 mso_sptTextCircleCurveDefault[] =
6500 {
6501 	1, -179
6502 };
6503 static const mso_CustomShape msoTextCircleCurve =
6504 {
6505 	(SvxMSDffVertPair*)mso_sptTextCircleCurveVert, sizeof( mso_sptTextCircleCurveVert ) / sizeof( SvxMSDffVertPair ),
6506 	(sal_uInt16*)mso_sptTextCircleCurveSegm, sizeof( mso_sptTextCircleCurveSegm ) >> 1,
6507 	(SvxMSDffCalculationData*)mso_sptTextCircleCurveCalc, sizeof( mso_sptTextCircleCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6508 	(sal_Int32*)mso_sptTextCircleCurveDefault,
6509 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6510 	21600, 21600,
6511 	0x80000000, 0x80000000,
6512 	NULL, 0,
6513 	(SvxMSDffHandle*)mso_sptTextCircleCurveHandle, sizeof( mso_sptTextCircleCurveHandle ) / sizeof( SvxMSDffHandle )
6514 };
6515 
6516 static const SvxMSDffVertPair mso_sptTextButtonCurveVert[] =
6517 {
6518 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6519 	{ 0, 10800 }, { 21600, 10800 },
6520 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6521 };
6522 static const SvxMSDffCalculationData mso_sptTextButtonCurveCalc[] =
6523 {
6524 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6525 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6526 	{ 0x2000, { 0x400, 10800, 0 } },
6527 	{ 0x2000, { 0x401, 10800, 0 } },
6528 	{ 0x8000, { 21600, 0, 0x402 } },
6529 	{ 0x8000, { 21600, 0, 0x403 } }
6530 };
6531 static const sal_uInt16 mso_sptTextButtonCurveSegm[] =
6532 {
6533 	0xA504, 0x8000,		// clockwise arc
6534 	0x4000, 0x0001, 0x8000,
6535 	0xA304, 0x8000		// counter clockwise
6536 };
6537 static const SvxMSDffHandle mso_sptTextButtonCurveHandle[] =
6538 {
6539 	{	MSDFF_HANDLE_FLAGS_POLAR,
6540 		10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6541 };
6542 static const sal_Int32 mso_sptTextButtonCurveDefault[] =
6543 {
6544 	1, 180
6545 };
6546 static const mso_CustomShape msoTextButtonCurve =
6547 {
6548 	(SvxMSDffVertPair*)mso_sptTextButtonCurveVert, sizeof( mso_sptTextButtonCurveVert ) / sizeof( SvxMSDffVertPair ),
6549 	(sal_uInt16*)mso_sptTextButtonCurveSegm, sizeof( mso_sptTextButtonCurveSegm ) >> 1,
6550 	(SvxMSDffCalculationData*)mso_sptTextButtonCurveCalc, sizeof( mso_sptTextButtonCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6551 	(sal_Int32*)mso_sptTextButtonCurveDefault,
6552 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6553 	21600, 21600,
6554 	0x80000000, 0x80000000,
6555 	NULL, 0,
6556 	(SvxMSDffHandle*)mso_sptTextButtonCurveHandle, sizeof( mso_sptTextButtonCurveHandle ) / sizeof( SvxMSDffHandle )
6557 };
6558 
6559 static const SvxMSDffVertPair mso_sptTextArchUpPourVert[] =
6560 {
6561 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6562 	{ 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 9 MSO_I }
6563 };
6564 static const SvxMSDffCalculationData mso_sptTextArchPourCalc[] =
6565 {
6566 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6567 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6568 	{ 0x2000, { 0x400, 10800, 0 } },
6569 	{ 0x2000, { 0x401, 10800, 0 } },
6570 	{ 0x8000, { 21600, 0, 0x402 } },
6571 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6572 	{ 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },	// 6
6573 	{ 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6574 	{ 0x2000, { 0x406, 10800, 0 } },				// 8
6575 	{ 0x2000, { 0x407, 10800, 0 } },
6576 	{ 0x8000, { 21600, 0, 0x408 } },				// 10
6577 	{ 0x8000, { 21600, 0, 0x405 } }
6578 };
6579 static const sal_uInt16 mso_sptTextArchUpPourSegm[] =
6580 {
6581 	0xA504, 0x8000,	0xA504, 0x8000
6582 };
6583 static const SvxMSDffHandle mso_sptTextArchPourHandle[] =
6584 {
6585 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6586 		0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6587 };
6588 static const sal_Int32 mso_sptTextArchUpPourDefault[] =
6589 {
6590 	2, 180, 5400
6591 };
6592 static const mso_CustomShape msoTextArchUpPour =
6593 {
6594 	(SvxMSDffVertPair*)mso_sptTextArchUpPourVert, sizeof( mso_sptTextArchUpPourVert ) / sizeof( SvxMSDffVertPair ),
6595 	(sal_uInt16*)mso_sptTextArchUpPourSegm, sizeof( mso_sptTextArchUpPourSegm ) >> 1,
6596 	(SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ),
6597 	(sal_Int32*)mso_sptTextArchUpPourDefault,
6598 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6599 	21600, 21600,
6600 	0x80000000, 0x80000000,
6601 	NULL, 0,
6602 	(SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle )
6603 };
6604 
6605 static const SvxMSDffVertPair mso_sptTextArchDownPourVert[] =
6606 {
6607 	{ 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 0xa MSO_I, 9 MSO_I }, { 8 MSO_I, 9 MSO_I },
6608 	{ 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6609 };
6610 static const sal_uInt16 mso_sptTextArchDownPourSegm[] =
6611 {
6612 	0xA304, 0x8000,	0xA304, 0x8000
6613 };
6614 static const sal_Int32 mso_sptTextArchDownPourDefault[] =
6615 {
6616 	2, 0, 5400
6617 };
6618 static const mso_CustomShape msoTextArchDownPour =
6619 {
6620 	(SvxMSDffVertPair*)mso_sptTextArchDownPourVert, sizeof( mso_sptTextArchDownPourVert ) / sizeof( SvxMSDffVertPair ),
6621 	(sal_uInt16*)mso_sptTextArchDownPourSegm, sizeof( mso_sptTextArchDownPourSegm ) >> 1,
6622 	(SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ),
6623 	(sal_Int32*)mso_sptTextArchDownPourDefault,
6624 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6625 	21600, 21600,
6626 	0x80000000, 0x80000000,
6627 	NULL, 0,
6628 	(SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle )
6629 };
6630 
6631 static const SvxMSDffVertPair mso_sptTextCirclePourVert[] =
6632 {
6633 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I },
6634 	{ 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 8 MSO_I, 0xa MSO_I }
6635 };
6636 static const SvxMSDffCalculationData mso_sptTextCirclePourCalc[] =
6637 {
6638 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6639 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6640 	{ 0x2000, { 0x400, 10800, 0 } },
6641 	{ 0x2000, { 0x401, 10800, 0 } },
6642 	{ 0x8000, { 21600, 0, 0x403 } },
6643 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6644 	{ 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },	// 6
6645 	{ 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6646 	{ 0x2000, { 0x406, 10800, 0 } },				// 8
6647 	{ 0x2000, { 0x407, 10800, 0 } },
6648 	{ 0x8000, { 21600, 0, 0x409 } },				// 10
6649 	{ 0x8000, { 21600, 0, 0x405 } },
6650 	{ 0x000, { 21600, 0, 0 } }
6651 };
6652 static const sal_uInt16 mso_sptTextCirclePourSegm[] =
6653 {
6654 	0xA504, 0x8000, 0xA504, 0x8000
6655 };
6656 static const SvxMSDffHandle mso_sptTextCirclePourHandle[] =
6657 {
6658 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6659 		0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6660 };
6661 static const sal_Int32 mso_sptTextCirclePourDefault[] =
6662 {
6663 	2,  -179, 5400
6664 };
6665 static const mso_CustomShape msoTextCirclePour =
6666 {
6667 	(SvxMSDffVertPair*)mso_sptTextCirclePourVert, sizeof( mso_sptTextCirclePourVert ) / sizeof( SvxMSDffVertPair ),
6668 	(sal_uInt16*)mso_sptTextCirclePourSegm, sizeof( mso_sptTextCirclePourSegm ) >> 1,
6669 	(SvxMSDffCalculationData*)mso_sptTextCirclePourCalc, sizeof( mso_sptTextCirclePourCalc ) / sizeof( SvxMSDffCalculationData ),
6670 	(sal_Int32*)mso_sptTextCirclePourDefault,
6671 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6672 	21600, 21600,
6673 	0x80000000, 0x80000000,
6674 	NULL, 0,
6675 	(SvxMSDffHandle*)mso_sptTextCirclePourHandle, sizeof( mso_sptTextCirclePourHandle ) / sizeof( SvxMSDffHandle )
6676 };
6677 
6678 static const SvxMSDffVertPair mso_sptTextButtonPourVert[] =
6679 {
6680 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6681 	{ 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 11 MSO_I }, { 12 MSO_I, 11 MSO_I },
6682 	{ 0x16 MSO_I, 16 MSO_I }, { 0x15 MSO_I, 16 MSO_I },
6683 	{ 0x16 MSO_I, 15 MSO_I }, { 0x15 MSO_I, 15 MSO_I },
6684 	{ 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 13 MSO_I }, { 12 MSO_I, 13 MSO_I },
6685 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6686 };
6687 static const SvxMSDffCalculationData mso_sptTextButtonPourCalc[] =
6688 {
6689 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },					// 0x00
6690 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },					// 0x01
6691 	{ 0x2000, { 0x400, 10800, 0 } },								// 0x02
6692 	{ 0x2000, { 0x401, 10800, 0 } },								// 0x03
6693 	{ 0x8000, { 21600, 0, 0x402 } },								// 0x04
6694 	{ 0x8000, { 21600, 0, 0x403 } },								// 0x05
6695 
6696 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },				// 0x06
6697 	{ 0x8000, { 21600, 0, 0x406 } },								// 0x07
6698 
6699 	{ 0x600a, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } },	// 0x08
6700 	{ 0x6009, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } },	// 0x09
6701 	{ 0x2000, { 0x408, 10800, 0 } },	// 0x0a
6702 	{ 0x2000, { 0x409, 10800, 0 } },	// 0x0b
6703 	{ 0x8000, { 21600, 0, 0x40a } },	// 0x0c
6704 	{ 0x8000, { 21600, 0, 0x40b } },	// 0x0d
6705 	{ 0x2001, { 0x406, 1, 2 } },		// 0x0e
6706 	{ 0x4000, { 10800, 0x40e, 0 } },	// 0x0f
6707 	{ 0x8000, { 10800, 0, 0x40e } },	// 0x10
6708 	{ 0x6001, { 0x40e, 0x40e, 1 } },	// 0x11
6709 	{ 0x6001, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 1 } },	// 0x12
6710 	{ 0xA000, { 0x412, 0, 0x411 } },	// 0x13
6711 	{ 0x200d, { 0x413, 0, 0 } },		// 0x14
6712 	{ 0x4000, { 10800, 0x414, 0 } },	// 0x15
6713 	{ 0x8000, { 10800, 0, 0x414 } }		// 0x16
6714 };
6715 static const sal_uInt16 mso_sptTextButtonPourSegm[] =
6716 {
6717 	0xA504, 0x8000,		// clockwise arc
6718 	0xA504, 0x8000,		// clockwise arc
6719 	0x4000, 0x0001, 0x8000,
6720 	0x4000, 0x0001, 0x8000,
6721 	0xA304, 0x8000,		// counter clockwise
6722 	0xA304, 0x8000		// counter clockwise
6723 };
6724 static const SvxMSDffHandle mso_sptTextButtonPourHandle[] =
6725 {
6726 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6727 		0x101, 0x100, 10800, 10800, 4320, 10800, 0x80000000, 0x7fffffff }
6728 };
6729 static const sal_Int32 mso_sptTextButtonPourDefault[] =
6730 {
6731 	2, 180, 5400
6732 };
6733 static const mso_CustomShape msoTextButtonPour =
6734 {
6735 	(SvxMSDffVertPair*)mso_sptTextButtonPourVert, sizeof( mso_sptTextButtonPourVert ) / sizeof( SvxMSDffVertPair ),
6736 	(sal_uInt16*)mso_sptTextButtonPourSegm, sizeof( mso_sptTextButtonPourSegm ) >> 1,
6737 	(SvxMSDffCalculationData*)mso_sptTextButtonPourCalc, sizeof( mso_sptTextButtonPourCalc ) / sizeof( SvxMSDffCalculationData ),
6738 	(sal_Int32*)mso_sptTextButtonPourDefault,
6739 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6740 	21600, 21600,
6741 	0x80000000, 0x80000000,
6742 	NULL, 0,
6743 	(SvxMSDffHandle*)mso_sptTextButtonPourHandle, sizeof( mso_sptTextButtonPourHandle ) / sizeof( SvxMSDffHandle )
6744 };
6745 
6746 static const SvxMSDffVertPair mso_sptTextCurveUpVert[] =
6747 {
6748 	{ 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
6749 	{ 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
6750 };
6751 static const SvxMSDffCalculationData mso_sptTextCurveUpCalc[] =
6752 {
6753 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
6754 	{ 0x4001, { 14250, 0x400, 12170 } },		// 401
6755 	{ 0x4001, { 12800, 0x400, 12170 } },		// 402
6756 	{ 0x4001, { 6380, 0x400, 12170 } },			// 403
6757 	{ 0x8000, { 21600, 0, 0x403 } }				// 404
6758 };
6759 static const sal_uInt16 mso_sptTextCurveUpSegm[] =
6760 {
6761 	0x4000, 0x2001, 0x8000,
6762 	0x4000, 0x2002, 0x8000
6763 };
6764 static const SvxMSDffHandle mso_sptTextCurveUpHandle[] =
6765 {
6766 	{	MSDFF_HANDLE_FLAGS_RANGE,
6767 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 }
6768 };
6769 static const sal_Int32 mso_sptTextCurveUpDefault[] =
6770 {
6771 	1, 9900
6772 };
6773 static const mso_CustomShape msoTextCurveUp =
6774 {
6775 	(SvxMSDffVertPair*)mso_sptTextCurveUpVert, sizeof( mso_sptTextCurveUpVert ) / sizeof( SvxMSDffVertPair ),
6776 	(sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1,
6777 	(SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ),
6778 	(sal_Int32*)mso_sptTextCurveUpDefault,
6779 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6780 	21600, 21600,
6781 	0x80000000, 0x80000000,
6782 	NULL, 0,
6783 	(SvxMSDffHandle*)mso_sptTextCurveUpHandle, sizeof( mso_sptTextCurveUpHandle ) / sizeof( SvxMSDffHandle )
6784 };
6785 
6786 static const SvxMSDffVertPair mso_sptTextCurveDownVert[] =
6787 {
6788 //	{ 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
6789 	{ 0, 0 }, { 9960, 2 MSO_I }, { 16700, 1 MSO_I }, { 21600, 0 MSO_I },
6790 
6791 //	{ 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
6792 	{ 0, 4 MSO_I }, { 5690, 21600 }, { 7490, 21600 }, { 11500, 21600 }, { 13100, 21600 }, { 17900, 21600 }, { 21600, 4 MSO_I }
6793 };
6794 static const SvxMSDffHandle mso_sptTextCurveDownHandle[] =
6795 {
6796 	{	MSDFF_HANDLE_FLAGS_RANGE,
6797 		21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 }
6798 };
6799 static const mso_CustomShape msoTextCurveDown =
6800 {
6801 	(SvxMSDffVertPair*)mso_sptTextCurveDownVert, sizeof( mso_sptTextCurveDownVert ) / sizeof( SvxMSDffVertPair ),
6802 	(sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1,
6803 	(SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ),
6804 	(sal_Int32*)mso_sptTextCurveUpDefault,
6805 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6806 	21600, 21600,
6807 	0x80000000, 0x80000000,
6808 	NULL, 0,
6809 	(SvxMSDffHandle*)mso_sptTextCurveDownHandle, sizeof( mso_sptTextCurveDownHandle ) / sizeof( SvxMSDffHandle )
6810 };
6811 
6812 static const SvxMSDffVertPair mso_sptTextCanUpVert[] =
6813 {
6814 	{ 0, 1 MSO_I }, { 900, 0 }, { 7100, 0 }, { 10800, 0 }, { 14500, 0 }, { 20700, 0 }, { 21600, 1 MSO_I },
6815 	{ 0, 21600 }, { 900, 4 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 4 MSO_I }, { 21600, 21600 }
6816 };
6817 static const SvxMSDffCalculationData mso_sptTextCanUpCalc[] =
6818 {
6819 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 400
6820 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 401
6821 	{ 0x2000, { DFF_Prop_adjustValue, 0, 14400 } }, // 402
6822 	{ 0x4001, { 5470, 0x402, 7200 } },				// 403
6823 	{ 0x4000, { 16130, 0x403, 0 } }					// 404
6824 };
6825 static const sal_uInt16 mso_sptTextCanUpSegm[] =
6826 {
6827 	0x4000, 0x2002, 0x8000,
6828 	0x4000, 0x2002, 0x8000
6829 };
6830 static const SvxMSDffHandle mso_sptTextCanUpHandle[] =
6831 {
6832 	{	MSDFF_HANDLE_FLAGS_RANGE,
6833 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 }
6834 };
6835 static const sal_Int32 mso_sptTextCanUpDefault[] =
6836 {
6837 	1, 18500
6838 };
6839 static const mso_CustomShape msoTextCanUp =
6840 {
6841 	(SvxMSDffVertPair*)mso_sptTextCanUpVert, sizeof( mso_sptTextCanUpVert ) / sizeof( SvxMSDffVertPair ),
6842 	(sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6843 	(SvxMSDffCalculationData*)mso_sptTextCanUpCalc, sizeof( mso_sptTextCanUpCalc ) / sizeof( SvxMSDffCalculationData ),
6844 	(sal_Int32*)mso_sptTextCanUpDefault,
6845 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6846 	21600, 21600,
6847 	0x80000000, 0x80000000,
6848 	NULL, 0,
6849 	(SvxMSDffHandle*)mso_sptTextCanUpHandle, sizeof( mso_sptTextCanUpHandle ) / sizeof( SvxMSDffHandle )
6850 };
6851 
6852 static const SvxMSDffVertPair mso_sptTextCanDownVert[] =
6853 {
6854 	{ 0, 0 }, { 900, 2 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 2 MSO_I }, { 21600, 0 },
6855 	{ 0, 1 MSO_I }, { 900, 21600 }, { 7100, 21600 }, { 10800, 21600 }, { 14500, 21600 }, { 20700, 21600 }, { 21600, 1 MSO_I }
6856 };
6857 static const SvxMSDffCalculationData mso_sptTextCanDownCalc[] =
6858 {
6859 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 400
6860 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 401
6861 	{ 0x4001, { 5470, 0x400, 7200 } }				// 402
6862 };
6863 static const SvxMSDffHandle mso_sptTextCanDownHandle[] =
6864 {
6865 	{	MSDFF_HANDLE_FLAGS_RANGE,
6866 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 }
6867 };
6868 static const sal_Int32 mso_sptTextCanDownDefault[] =
6869 {
6870 	1, 3100
6871 };
6872 static const mso_CustomShape msoTextCanDown =
6873 {
6874 	(SvxMSDffVertPair*)mso_sptTextCanDownVert, sizeof( mso_sptTextCanDownVert ) / sizeof( SvxMSDffVertPair ),
6875 	(sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6876 	(SvxMSDffCalculationData*)mso_sptTextCanDownCalc, sizeof( mso_sptTextCanDownCalc ) / sizeof( SvxMSDffCalculationData ),
6877 	(sal_Int32*)mso_sptTextCanDownDefault,
6878 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6879 	21600, 21600,
6880 	0x80000000, 0x80000000,
6881 	NULL, 0,
6882 	(SvxMSDffHandle*)mso_sptTextCanDownHandle, sizeof( mso_sptTextCanDownHandle ) / sizeof( SvxMSDffHandle )
6883 };
6884 
6885 static const SvxMSDffVertPair mso_sptTextInflateVert[] =
6886 {
6887 	{ 0, 0 MSO_I }, { 4100, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 17500, 1 MSO_I }, { 21600, 0 MSO_I },
6888 	{ 0, 2 MSO_I }, { 4100, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 17500, 3 MSO_I }, { 21600, 2 MSO_I }
6889 };
6890 static const SvxMSDffCalculationData mso_sptTextInflateCalc[] =
6891 {
6892 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
6893 	{ 0x4001, { 1530, 0x400, 4650 } },			// 401
6894 	{ 0x8000, { 21600, 0, 0x400 } },			// 402
6895 	{ 0x8000, { 21600, 0, 0x401 } }				// 403
6896 };
6897 static const SvxMSDffHandle mso_sptTextInflateHandle[] =
6898 {
6899 	{	MSDFF_HANDLE_FLAGS_RANGE,
6900 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4650 }
6901 };
6902 static const sal_Int32 mso_sptTextInflateDefault[] =
6903 {
6904 	1, 2950
6905 };
6906 static const mso_CustomShape msoTextInflate =
6907 {
6908 	(SvxMSDffVertPair*)mso_sptTextInflateVert, sizeof( mso_sptTextInflateVert ) / sizeof( SvxMSDffVertPair ),
6909 	(sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6910 	(SvxMSDffCalculationData*)mso_sptTextInflateCalc, sizeof( mso_sptTextInflateCalc ) / sizeof( SvxMSDffCalculationData ),
6911 	(sal_Int32*)mso_sptTextInflateDefault,
6912 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6913 	21600, 21600,
6914 	0x80000000, 0x80000000,
6915 	NULL, 0,
6916 	(SvxMSDffHandle*)mso_sptTextInflateHandle, sizeof( mso_sptTextInflateHandle ) / sizeof( SvxMSDffHandle )
6917 };
6918 
6919 static const SvxMSDffVertPair mso_sptTextDeflateVert[] =
6920 {
6921 	{ 0, 0 }, { 3500, 1 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 18100, 1 MSO_I }, { 21600, 0 },
6922 	{ 0, 21600 }, { 3500, 3 MSO_I }, { 7100, 2 MSO_I }, { 10800, 2 MSO_I }, { 14500, 2 MSO_I }, { 18100, 3 MSO_I }, { 21600, 21600 }
6923 };
6924 static const SvxMSDffCalculationData mso_sptTextDeflateCalc[] =
6925 {
6926 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
6927 	{ 0x2001, { 0x400, 5320, 7100 } },			// 401
6928 	{ 0x8000, { 21600, 0, 0x400 } },			// 402
6929 	{ 0x8000, { 21600, 0, 0x401 } }				// 403
6930 };
6931 static const SvxMSDffHandle mso_sptTextDeflateHandle[] =
6932 {
6933 	{	MSDFF_HANDLE_FLAGS_RANGE,
6934 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 8100 }
6935 };
6936 static const mso_CustomShape msoTextDeflate =
6937 {
6938 	(SvxMSDffVertPair*)mso_sptTextDeflateVert, sizeof( mso_sptTextDeflateVert ) / sizeof( SvxMSDffVertPair ),
6939 	(sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6940 	(SvxMSDffCalculationData*)mso_sptTextDeflateCalc, sizeof( mso_sptTextDeflateCalc ) / sizeof( SvxMSDffCalculationData ),
6941 	(sal_Int32*)mso_sptDefault8100,
6942 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6943 	21600, 21600,
6944 	0x80000000, 0x80000000,
6945 	NULL, 0,
6946 	(SvxMSDffHandle*)mso_sptTextDeflateHandle, sizeof( mso_sptTextDeflateHandle ) / sizeof( SvxMSDffHandle )
6947 };
6948 
6949 static const SvxMSDffVertPair mso_sptTextInflateBottomVert[] =
6950 {
6951 	{ 0, 0 }, { 21600, 0 },
6952 	{ 0, 0 MSO_I }, { 3500, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 18100, 3 MSO_I }, { 21600, 0 MSO_I }
6953 };
6954 static const SvxMSDffCalculationData mso_sptTextInflateBottomCalc[] =
6955 {
6956 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
6957 	{ 0x2000, { 0x400, 0, 11150 } },			// 401 0->10450
6958 	{ 0x2001, { 0x401, 3900, 10450 } },			// 402
6959 	{ 0x2000, { 0x402, 17700, 0 } }				// 403
6960 };
6961 static const sal_uInt16 mso_sptTextInflateBottomSegm[] =
6962 {
6963 	0x4000, 0x0001, 0x8000,
6964 	0x4000, 0x2002, 0x8000
6965 };
6966 static const SvxMSDffHandle mso_sptTextInflateBottomHandle[] =
6967 {
6968 	{	MSDFF_HANDLE_FLAGS_RANGE,
6969 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 11150, 21600 }
6970 };
6971 static const sal_Int32 mso_sptTextInflateBottomDefault[] =
6972 {
6973 	1, 14700
6974 };
6975 static const mso_CustomShape msoTextInflateBottom =
6976 {
6977 	(SvxMSDffVertPair*)mso_sptTextInflateBottomVert, sizeof( mso_sptTextInflateBottomVert ) / sizeof( SvxMSDffVertPair ),
6978 	(sal_uInt16*)mso_sptTextInflateBottomSegm, sizeof( mso_sptTextInflateBottomSegm ) >> 1,
6979 	(SvxMSDffCalculationData*)mso_sptTextInflateBottomCalc, sizeof( mso_sptTextInflateBottomCalc ) / sizeof( SvxMSDffCalculationData ),
6980 	(sal_Int32*)mso_sptTextInflateBottomDefault,
6981 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6982 	21600, 21600,
6983 	0x80000000, 0x80000000,
6984 	NULL, 0,
6985 	(SvxMSDffHandle*)mso_sptTextInflateBottomHandle, sizeof( mso_sptTextInflateBottomHandle ) / sizeof( SvxMSDffHandle )
6986 };
6987 
6988 static const SvxMSDffVertPair mso_sptTextDeflateBottomVert[] =
6989 {
6990 	{ 0, 0 }, { 21600, 0 },
6991 	{ 0, 21600 }, { 2900, 3 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 3 MSO_I }, { 21600, 21600 }
6992 };
6993 static const SvxMSDffCalculationData mso_sptTextDeflateBottomCalc[] =
6994 {
6995 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
6996 	{ 0x2000, { 0x400, 0, 1350 } },				// 401 0->20250
6997 	{ 0x2001, { 0x401, 12070, 20250 } },		// 402
6998 	{ 0x2000, { 0x402, 9530, 0 } }				// 403
6999 };
7000 static const sal_uInt16 mso_sptTextDeflateBottomSegm[] =
7001 {
7002 	0x4000, 0x0001, 0x8000,
7003 	0x4000, 0x2002, 0x8000
7004 };
7005 static const SvxMSDffHandle mso_sptTextDeflateBottomHandle[] =
7006 {
7007 	{	MSDFF_HANDLE_FLAGS_RANGE,
7008 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1350, 21600 }
7009 };
7010 static const sal_Int32 mso_sptTextDeflateBottomDefault[] =
7011 {
7012 	1, 11500
7013 };
7014 static const mso_CustomShape msoTextDeflateBottom =
7015 {
7016 	(SvxMSDffVertPair*)mso_sptTextDeflateBottomVert, sizeof( mso_sptTextDeflateBottomVert ) / sizeof( SvxMSDffVertPair ),
7017 	(sal_uInt16*)mso_sptTextDeflateBottomSegm, sizeof( mso_sptTextDeflateBottomSegm ) >> 1,
7018 	(SvxMSDffCalculationData*)mso_sptTextDeflateBottomCalc, sizeof( mso_sptTextDeflateBottomCalc ) / sizeof( SvxMSDffCalculationData ),
7019 	(sal_Int32*)mso_sptTextDeflateBottomDefault,
7020 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7021 	21600, 21600,
7022 	0x80000000, 0x80000000,
7023 	NULL, 0,
7024 	(SvxMSDffHandle*)mso_sptTextDeflateBottomHandle, sizeof( mso_sptTextDeflateBottomHandle ) / sizeof( SvxMSDffHandle )
7025 };
7026 
7027 static const SvxMSDffVertPair mso_sptTextInflateTopVert[] =
7028 {
7029 	{ 0, 0 MSO_I }, { 3500, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 18100, 1 MSO_I }, { 21600, 0 MSO_I },
7030 	{ 0, 21600 }, { 21600, 21600 }
7031 };
7032 static const SvxMSDffCalculationData mso_sptTextInflateTopCalc[] =
7033 {
7034 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7035 	{ 0x2001, { 0x400, 3900, 10450 } }			// 401
7036 };
7037 static const sal_uInt16 mso_sptTextInflateTopSegm[] =
7038 {
7039 	0x4000, 0x2002, 0x8000,
7040 	0x4000, 0x0001, 0x8000
7041 };
7042 static const SvxMSDffHandle mso_sptTextInflateTopHandle[] =
7043 {
7044 	{	MSDFF_HANDLE_FLAGS_RANGE,
7045 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10450 }
7046 };
7047 static const sal_Int32 mso_sptTextInflateTopDefault[] =
7048 {
7049 	1, 6900
7050 };
7051 static const mso_CustomShape msoTextInflateTop =
7052 {
7053 	(SvxMSDffVertPair*)mso_sptTextInflateTopVert, sizeof( mso_sptTextInflateTopVert ) / sizeof( SvxMSDffVertPair ),
7054 	(sal_uInt16*)mso_sptTextInflateTopSegm, sizeof( mso_sptTextInflateTopSegm ) >> 1,
7055 	(SvxMSDffCalculationData*)mso_sptTextInflateTopCalc, sizeof( mso_sptTextInflateTopCalc ) / sizeof( SvxMSDffCalculationData ),
7056 	(sal_Int32*)mso_sptTextInflateTopDefault,
7057 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7058 	21600, 21600,
7059 	0x80000000, 0x80000000,
7060 	NULL, 0,
7061 	(SvxMSDffHandle*)mso_sptTextInflateTopHandle, sizeof( mso_sptTextInflateTopHandle ) / sizeof( SvxMSDffHandle )
7062 };
7063 
7064 static const SvxMSDffVertPair mso_sptTextDeflateTopVert[] =
7065 {
7066 	{ 0, 0 }, { 2900, 1 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 1 MSO_I }, { 21600, 0 },
7067 	{ 0, 21600 }, { 21600, 21600 }
7068 };
7069 static const SvxMSDffCalculationData mso_sptTextDeflateTopCalc[] =
7070 {
7071 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7072 	{ 0x2001, { 0x400, 12070, 20250 } }         // 402
7073 };
7074 static const sal_uInt16 mso_sptTextDeflateTopSegm[] =
7075 {
7076 	0x4000, 0x2002, 0x8000,
7077 	0x4000, 0x0001, 0x8000
7078 };
7079 static const SvxMSDffHandle mso_sptTextDeflateTopHandle[] =
7080 {
7081 	{	MSDFF_HANDLE_FLAGS_RANGE,
7082 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 20250 }
7083 };
7084 static const sal_Int32 mso_sptTextDeflateTopDefault[] =
7085 {
7086 	1, 10100
7087 };
7088 static const mso_CustomShape msoTextDeflateTop =
7089 {
7090 	(SvxMSDffVertPair*)mso_sptTextDeflateTopVert, sizeof( mso_sptTextDeflateTopVert ) / sizeof( SvxMSDffVertPair ),
7091 	(sal_uInt16*)mso_sptTextDeflateTopSegm, sizeof( mso_sptTextDeflateTopSegm ) >> 1,
7092 	(SvxMSDffCalculationData*)mso_sptTextDeflateTopCalc, sizeof( mso_sptTextDeflateTopCalc ) / sizeof( SvxMSDffCalculationData ),
7093 	(sal_Int32*)mso_sptTextDeflateTopDefault,
7094 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7095 	21600, 21600,
7096 	0x80000000, 0x80000000,
7097 	NULL, 0,
7098 	(SvxMSDffHandle*)mso_sptTextDeflateTopHandle, sizeof( mso_sptTextDeflateTopHandle ) / sizeof( SvxMSDffHandle )
7099 };
7100 
7101 static const SvxMSDffVertPair mso_sptTextDeflateInflateVert[] =
7102 {
7103 	{ 0, 0 }, { 21600, 0 },
7104 	{ 0, 10100 }, { 3300, 3 MSO_I }, { 7100, 5 MSO_I }, { 10800, 5 MSO_I }, { 14500, 5 MSO_I }, { 18300, 3 MSO_I }, { 21600, 10100 },
7105 	{ 0, 11500 }, { 3300, 4 MSO_I }, { 7100, 6 MSO_I }, { 10800, 6 MSO_I }, { 14500, 6 MSO_I }, { 18300, 4 MSO_I }, { 21600, 11500 },
7106 	{ 0, 21600 }, { 21600, 21600 }
7107 };
7108 static const SvxMSDffCalculationData mso_sptTextDeflateInflateCalc[] =
7109 {
7110 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7111 	{ 0x8000, { 10800, 0, 0x400 } },			// 401
7112 	{ 0x2001, { 0x401, 5770, 9500 } },			// 402
7113 	{ 0x8000, { 10100, 0, 0x402 } },			// 403
7114 	{ 0x8000, { 11500, 0, 0x402 } },			// 404
7115 	{ 0x2000, { 0x400, 0, 700 } },				// 405
7116 	{ 0x2000, { 0x400, 700, 0 }	}  		    	// 406
7117 };
7118 static const sal_uInt16 mso_sptTextDeflateInflateSegm[] =
7119 {
7120 	0x4000, 0x0001, 0x8000,
7121 	0x4000, 0x2002, 0x8000,
7122 	0x4000, 0x2002, 0x8000,
7123 	0x4000, 0x0001, 0x8000
7124 };
7125 static const SvxMSDffHandle mso_sptTextDeflateInflateHandle[] =
7126 {
7127 	{	MSDFF_HANDLE_FLAGS_RANGE,
7128 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1300, 20300 }
7129 };
7130 static const sal_Int32 mso_sptTextDeflateInflateDefault[] =
7131 {
7132 	1, 6500
7133 };
7134 static const mso_CustomShape msoTextDeflateInflate =
7135 {
7136 	(SvxMSDffVertPair*)mso_sptTextDeflateInflateVert, sizeof( mso_sptTextDeflateInflateVert ) / sizeof( SvxMSDffVertPair ),
7137 	(sal_uInt16*)mso_sptTextDeflateInflateSegm, sizeof( mso_sptTextDeflateInflateSegm ) >> 1,
7138 	(SvxMSDffCalculationData*)mso_sptTextDeflateInflateCalc, sizeof( mso_sptTextDeflateInflateCalc ) / sizeof( SvxMSDffCalculationData ),
7139 	(sal_Int32*)mso_sptTextDeflateInflateDefault,
7140 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7141 	21600, 21600,
7142 	0x80000000, 0x80000000,
7143 	NULL, 0,
7144 	(SvxMSDffHandle*)mso_sptTextDeflateInflateHandle, sizeof( mso_sptTextDeflateInflateHandle ) / sizeof( SvxMSDffHandle )
7145 };
7146 
7147 static const SvxMSDffVertPair mso_sptTextDeflateInflateDeflateVert[] =
7148 {
7149 	{ 0, 0 }, { 21600, 0 },
7150 	{ 0, 6600 }, { 3600, 3 MSO_I }, { 7250, 4 MSO_I }, { 10800, 4 MSO_I }, { 14350, 4 MSO_I }, { 18000, 3 MSO_I }, { 21600, 6600 },
7151 	{ 0, 7500 }, { 3600, 5 MSO_I }, { 7250, 6 MSO_I }, { 10800, 6 MSO_I }, { 14350, 6 MSO_I }, { 18000, 5 MSO_I }, { 21600, 7500 },
7152 	{ 0, 14100 }, { 3600, 9 MSO_I }, { 7250, 10 MSO_I }, { 10800, 10 MSO_I }, { 14350, 10 MSO_I }, { 18000, 9 MSO_I }, { 21600, 14100 },
7153 	{ 0, 15000 }, { 3600, 7 MSO_I }, { 7250, 8 MSO_I }, { 10800, 8 MSO_I }, { 14350, 8 MSO_I }, { 18000, 7 MSO_I }, { 21600, 15000 },
7154 	{ 0, 21600 }, { 21600, 21600 }
7155 };
7156 static const SvxMSDffCalculationData mso_sptTextDeflateInflateDeflateCalc[] =
7157 {
7158 	{ 0x2000, { DFF_Prop_adjustValue, 0, 850 } },		// 400
7159 	{ 0x2001, { 0x400, 6120, 8700 } },
7160 	{ 0x2000, { 0x401, 0, 4280 } },
7161 	{ 0x4000, { 6600, 0x402, 0 } },
7162 	{ 0x2000, { DFF_Prop_adjustValue, 0, 450 } },		// 404
7163 	{ 0x2000, { 0x403, 900, 0 } },						// 405
7164 	{ 0x2000, { 0x404, 900, 0 } },						// 406
7165 	{ 0x8000, { 21600, 0, 0x403 } },					// 407
7166 	{ 0x8000, { 21600, 0, 0x404 } },					// 408
7167 	{ 0x8000, { 21600, 0, 0x405 } },					// 409
7168 	{ 0x8000, { 21600, 0, 0x406 } }						// 410
7169 };
7170 static const sal_uInt16 mso_sptTextDeflateInflateDeflateSegm[] =
7171 {
7172 	0x4000, 0x0001, 0x8000,
7173 	0x4000, 0x2002, 0x8000,
7174 	0x4000, 0x2002, 0x8000,
7175 	0x4000, 0x2002, 0x8000,
7176 	0x4000, 0x2002, 0x8000,
7177 	0x4000, 0x0001, 0x8000
7178 };
7179 static const SvxMSDffHandle mso_sptTextDeflateInflateDeflateHandle[] =
7180 {
7181 	{	MSDFF_HANDLE_FLAGS_RANGE,
7182 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 850, 9550 }
7183 };
7184 static const sal_Int32 mso_sptTextDeflateInflateDeflateDefault[] =
7185 {
7186 	1, 6050
7187 };
7188 static const mso_CustomShape msoTextDeflateInflateDeflate =
7189 {
7190 	(SvxMSDffVertPair*)mso_sptTextDeflateInflateDeflateVert, sizeof( mso_sptTextDeflateInflateDeflateVert ) / sizeof( SvxMSDffVertPair ),
7191 	(sal_uInt16*)mso_sptTextDeflateInflateDeflateSegm, sizeof( mso_sptTextDeflateInflateDeflateSegm ) >> 1,
7192 	(SvxMSDffCalculationData*)mso_sptTextDeflateInflateDeflateCalc, sizeof( mso_sptTextDeflateInflateDeflateCalc ) / sizeof( SvxMSDffCalculationData ),
7193 	(sal_Int32*)mso_sptTextDeflateInflateDeflateDefault,
7194 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7195 	21600, 21600,
7196 	0x80000000, 0x80000000,
7197 	NULL, 0,
7198 	(SvxMSDffHandle*)mso_sptTextDeflateInflateDeflateHandle, sizeof( mso_sptTextDeflateInflateDeflateHandle ) / sizeof( SvxMSDffHandle )
7199 };
7200 
7201 static const SvxMSDffVertPair mso_sptTextWave1Vert[] =	// adjustment1 : 0 - 4459
7202 {													// adjustment2 : 8640 - 12960
7203 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7204 	{ 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7205 };
7206 static const sal_uInt16 mso_sptTextWave1Segm[] =
7207 {
7208 	0x4000, 0x2001, 0x8000,
7209 	0x4000, 0x2001, 0x8000
7210 };
7211 static const mso_CustomShape msoTextWave1 =
7212 {
7213 	(SvxMSDffVertPair*)mso_sptTextWave1Vert, sizeof( mso_sptTextWave1Vert ) / sizeof( SvxMSDffVertPair ),
7214 	(sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
7215 	(SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7216 	(sal_Int32*)mso_sptWaveDefault,
7217 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7218 	21600, 21600,
7219 	0x80000000, 0x80000000,
7220 	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7221 	(SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
7222 };
7223 
7224 static const SvxMSDffVertPair mso_sptTextWave2Vert[] =	// adjustment1 : 0 - 4459
7225 {													// adjustment2 : 8640 - 12960
7226 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7227 	{ 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7228 };
7229 static const mso_CustomShape msoTextWave2 =
7230 {
7231 	(SvxMSDffVertPair*)mso_sptTextWave2Vert, sizeof( mso_sptTextWave2Vert ) / sizeof( SvxMSDffVertPair ),
7232 	(sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
7233 	(SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7234 	(sal_Int32*)mso_sptWaveDefault,
7235 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7236 	21600, 21600,
7237 	0x80000000, 0x80000000,
7238 	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7239 	(SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
7240 };
7241 
7242 static const SvxMSDffVertPair mso_sptTextWave3Vert[] =	// adjustment1 : 0 - 2230
7243 {														// adjustment2 : 8640 - 12960
7244 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7245 	{ 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7246 };
7247 static const sal_uInt16 mso_sptTextWave3Segm[] =
7248 {
7249 	0x4000, 0x2002, 0x8000,
7250 	0x4000, 0x2002, 0x8000
7251 };
7252 static const mso_CustomShape msoTextWave3 =
7253 {
7254 	(SvxMSDffVertPair*)mso_sptTextWave3Vert, sizeof( mso_sptTextWave3Vert ) / sizeof( SvxMSDffVertPair ),
7255 	(sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
7256 	(SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7257 	(sal_Int32*)mso_sptDoubleWaveDefault,
7258 	(SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
7259 	21600, 21600,
7260 	0x80000000, 0x80000000,
7261 	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7262 	(SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
7263 };
7264 
7265 static const SvxMSDffVertPair mso_sptTextWave4Vert[] =	// adjustment1 : 0 - 2230
7266 {														// adjustment2 : 8640 - 12960
7267 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 0x1e MSO_I, 9 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7268 	{ 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 0x20 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7269 };
7270 static const mso_CustomShape msoTextWave4 =
7271 {
7272 	(SvxMSDffVertPair*)mso_sptTextWave4Vert, sizeof( mso_sptTextWave4Vert ) / sizeof( SvxMSDffVertPair ),
7273 	(sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
7274 	(SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7275 	(sal_Int32*)mso_sptDoubleWaveDefault,
7276 	(SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
7277 	21600, 21600,
7278 	0x80000000, 0x80000000,
7279 	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7280 	(SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
7281 };
7282 
7283 static const sal_Int32 mso_sptCalloutDefault1[] =
7284 {
7285 	4, -1800, 24500, -1800, 4000
7286 };
7287 static const sal_Int32 mso_sptCalloutDefault2[] =
7288 {
7289 	4, -8300, 24500, -1800, 4000
7290 };
7291 static const sal_Int32 mso_sptCalloutDefault3[] =
7292 {
7293 	6, -10000, 24500, -3600, 4000, -1800, 4000
7294 };
7295 static const sal_Int32 mso_sptCalloutDefault4[] =
7296 {
7297 	8, 23400, 24500, 25200, 21600, 25200, 4000, 23400, 4000
7298 };
7299 static const SvxMSDffVertPair mso_sptCalloutVert1[] =
7300 {
7301 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }
7302 };
7303 static const SvxMSDffHandle mso_sptCalloutHandle1[] =
7304 {
7305 	{	0,
7306 		0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7307 	{	0,
7308 		0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7309 };
7310 static const sal_uInt16 mso_sptCalloutSegm1a[] =
7311 {
7312 	0x4000, 0x0003, 0x6000, 0x8000,
7313 	0x4000, 0x0001, 0x8000
7314 };
7315 static const sal_uInt16 mso_sptCalloutSegm1b[] =
7316 {
7317 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7318 	0x4000, 0x0001, 0x8000
7319 };
7320 static const SvxMSDffVertPair mso_sptCallout1Vert[] =
7321 {
7322 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 0 }, { 2 MSO_I, 21600 }
7323 };
7324 static const sal_uInt16 mso_sptCallout1Segm1a[] =
7325 {
7326 	0x4000, 0x0003, 0x6000, 0x8000,
7327 	0x4000, 0x0001, 0x8000,
7328 	0x4000, 0x0001, 0x8000
7329 };
7330 static const sal_uInt16 mso_sptCallout1Segm1b[] =
7331 {
7332 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7333 	0x4000, 0x0001, 0x8000,
7334 	0x4000, 0x0001, 0x8000
7335 };
7336 static const SvxMSDffVertPair mso_sptCallout2Verta[] =
7337 {
7338 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }
7339 };
7340 static const SvxMSDffVertPair mso_sptCallout2Vertb[] =
7341 {
7342 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 4 MSO_I, 0 }, { 4 MSO_I, 21600 }
7343 };
7344 static const SvxMSDffHandle mso_sptCalloutHandle2[] =
7345 {
7346 	{	0,
7347 		0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7348 	{	0,
7349 		0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7350 	{	0,
7351 		0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7352 };
7353 static const sal_uInt16 mso_sptCallout2Segm1a[] =
7354 {
7355 	0x4000, 0x0003, 0x6000, 0x8000,
7356 	0x4000, 0x0001, 0x8000,
7357 	0x4000, 0x0001, 0x8000,
7358 	0x4000, 0x0001, 0x8000
7359 };
7360 static const sal_uInt16 mso_sptCallout2Segm1b[] =
7361 {
7362 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7363 	0x4000, 0x0001, 0x8000,
7364 	0x4000, 0x0001, 0x8000,
7365 	0x4000, 0x0001, 0x8000
7366 };
7367 static const sal_uInt16 mso_sptCallout2Segm1c[] =
7368 {
7369 	0x4000, 0x0003, 0x6000, 0x8000,
7370 	0x4000, 0x0001, 0x8000,
7371 	0x4000, 0x0001, 0x8000,
7372 	0x4000, 0x0001, 0x8000,
7373 	0x4000, 0x0001, 0x8000
7374 };
7375 static const sal_uInt16 mso_sptCallout2Segm1d[] =
7376 {
7377 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7378 	0x4000, 0x0001, 0x8000,
7379 	0x4000, 0x0001, 0x8000,
7380 	0x4000, 0x0001, 0x8000,
7381 	0x4000, 0x0001, 0x8000
7382 };
7383 static const SvxMSDffVertPair mso_sptCallout3Verta[] =
7384 {
7385 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
7386 };
7387 static const SvxMSDffVertPair mso_sptCallout3Vertb[] =
7388 {
7389 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 6 MSO_I, 0 }, { 6 MSO_I, 21600 }
7390 };
7391 static const SvxMSDffHandle mso_sptCalloutHandle3[] =
7392 {
7393 	{	0,
7394 		0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7395 	{	0,
7396 		0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7397 	{	0,
7398 		0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7399 	{	0,
7400 		0x106, 0x107, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7401 };
7402 static const sal_uInt16 mso_sptCallout3Segm1a[] =
7403 {
7404 	0x4000, 0x0003, 0x6000, 0x8000,
7405 	0x4000, 0xaa00, 0x0003, 0x8000			// NO_FILL
7406 };
7407 static const sal_uInt16 mso_sptCallout3Segm1b[] =
7408 {
7409 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7410 	0x4000, 0xaa00, 0x0003, 0x8000			// NO FILL
7411 };
7412 static const sal_uInt16 mso_sptCallout3Segm1c[] =
7413 {
7414 	0x4000, 0x0003, 0x6000, 0x8000,
7415 	0x4000, 0xaa00, 0x0003, 0x8000,			// NO FILL
7416 	0x4000, 0x0001, 0x8000
7417 };
7418 static const sal_uInt16 mso_sptCallout3Segm1d[] =
7419 {
7420 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7421 	0x4000, 0xaa00, 0x0003, 0x8000,			// NO FILL
7422 	0x4000, 0x0001, 0x8000
7423 };
7424 
7425 static const SvxMSDffCalculationData mso_sptCalloutCalc[] =
7426 {
7427 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7428 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7429 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7430 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
7431 	{ 0x2000, { DFF_Prop_adjust5Value, 0, 0 } },
7432 	{ 0x2000, { DFF_Prop_adjust6Value, 0, 0 } },
7433 	{ 0x2000, { DFF_Prop_adjust7Value, 0, 0 } },
7434 	{ 0x2000, { DFF_Prop_adjust8Value, 0, 0 } }
7435 };
7436 
7437 static const mso_CustomShape msoCallout90 =
7438 {
7439 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7440 	(sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7441 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7442 	(sal_Int32*)mso_sptCalloutDefault1,
7443 	NULL, 0,
7444 	21600, 21600,
7445 	0x80000000, 0x80000000,
7446 	NULL, 0,
7447 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7448 };
7449 static const mso_CustomShape msoCallout1 =
7450 {
7451 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7452 	(sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7453 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7454 	(sal_Int32*)mso_sptCalloutDefault2,
7455 	NULL, 0,
7456 	21600, 21600,
7457 	0x80000000, 0x80000000,
7458 	NULL, 0,
7459 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7460 };
7461 static const mso_CustomShape msoCallout2 =
7462 {
7463 	(SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ),
7464 	(sal_uInt16*)mso_sptCallout2Segm1b, sizeof( mso_sptCallout2Segm1b ) >> 1,
7465 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7466 	(sal_Int32*)mso_sptCalloutDefault3,
7467 	NULL, 0,
7468 	21600, 21600,
7469 	0x80000000, 0x80000000,
7470 	NULL, 0,
7471 	(SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7472 };
7473 static const mso_CustomShape msoCallout3 =
7474 {
7475 	(SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ),
7476 	(sal_uInt16*)mso_sptCallout3Segm1b, sizeof( mso_sptCallout3Segm1b ) >> 1,
7477 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7478 	(sal_Int32*)mso_sptCalloutDefault4,
7479 	NULL, 0,
7480 	21600, 21600,
7481 	0x80000000, 0x80000000,
7482 	NULL, 0,
7483 	(SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7484 };
7485 static const mso_CustomShape msoAccentCallout90 =
7486 {
7487 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7488 	(sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7489 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7490 	(sal_Int32*)mso_sptCalloutDefault1,
7491 	NULL, 0,
7492 	21600, 21600,
7493 	0x80000000, 0x80000000,
7494 	NULL, 0,
7495 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7496 };
7497 static const mso_CustomShape msoAccentCallout1 =
7498 {
7499 	(SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ),
7500 	(sal_uInt16*)mso_sptCallout1Segm1b, sizeof( mso_sptCallout1Segm1b ) >> 1,
7501 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7502 	(sal_Int32*)mso_sptCalloutDefault2,
7503 	NULL, 0,
7504 	21600, 21600,
7505 	0x80000000, 0x80000000,
7506 	NULL, 0,
7507 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7508 };
7509 static const mso_CustomShape msoAccentCallout2 =
7510 {
7511 	(SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ),
7512 	(sal_uInt16*)mso_sptCallout2Segm1d, sizeof( mso_sptCallout2Segm1d ) >> 1,
7513 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7514 	(sal_Int32*)mso_sptCalloutDefault3,
7515 	NULL, 0,
7516 	21600, 21600,
7517 	0x80000000, 0x80000000,
7518 	NULL, 0,
7519 	(SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7520 };
7521 static const mso_CustomShape msoAccentCallout3 =
7522 {
7523 	(SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ),
7524 	(sal_uInt16*)mso_sptCallout3Segm1d, sizeof( mso_sptCallout3Segm1d ) >> 1,
7525 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7526 	(sal_Int32*)mso_sptCalloutDefault4,
7527 	NULL, 0,
7528 	21600, 21600,
7529 	0x80000000, 0x80000000,
7530 	NULL, 0,
7531 	(SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7532 };
7533 static const mso_CustomShape msoBorderCallout90 =
7534 {
7535 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7536 	(sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7537 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7538 	(sal_Int32*)mso_sptCalloutDefault1,
7539 	NULL, 0,
7540 	21600, 21600,
7541 	0x80000000, 0x80000000,
7542 	NULL, 0,
7543 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7544 };
7545 static const mso_CustomShape msoBorderCallout1 =
7546 {
7547 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7548 	(sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7549 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7550 	(sal_Int32*)mso_sptCalloutDefault2,
7551 	NULL, 0,
7552 	21600, 21600,
7553 	0x80000000, 0x80000000,
7554 	NULL, 0,
7555 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7556 };
7557 static const mso_CustomShape msoBorderCallout2 =
7558 {
7559 	(SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ),
7560 	(sal_uInt16*)mso_sptCallout2Segm1a, sizeof( mso_sptCallout2Segm1a ) >> 1,
7561 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7562 	(sal_Int32*)mso_sptCalloutDefault3,
7563 	NULL, 0,
7564 	21600, 21600,
7565 	0x80000000, 0x80000000,
7566 	NULL, 0,
7567 	(SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7568 };
7569 static const mso_CustomShape msoBorderCallout3 =
7570 {
7571 	(SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ),
7572 	(sal_uInt16*)mso_sptCallout3Segm1a, sizeof( mso_sptCallout3Segm1a ) >> 1,
7573 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7574 	(sal_Int32*)mso_sptCalloutDefault4,
7575 	NULL, 0,
7576 	21600, 21600,
7577 	0x80000000, 0x80000000,
7578 	NULL, 0,
7579 	(SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7580 };
7581 static const mso_CustomShape msoAccentBorderCallout90 =
7582 {
7583 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7584 	(sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7585 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7586 	(sal_Int32*)mso_sptCalloutDefault1,
7587 	NULL, 0,
7588 	21600, 21600,
7589 	0x80000000, 0x80000000,
7590 	NULL, 0,
7591 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7592 };
7593 static const mso_CustomShape msoAccentBorderCallout1 =
7594 {
7595 	(SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ),
7596 	(sal_uInt16*)mso_sptCallout1Segm1a, sizeof( mso_sptCallout1Segm1a ) >> 1,
7597 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7598 	(sal_Int32*)mso_sptCalloutDefault2,
7599 	NULL, 0,
7600 	21600, 21600,
7601 	0x80000000, 0x80000000,
7602 	NULL, 0,
7603 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7604 };
7605 static const mso_CustomShape msoAccentBorderCallout2 =
7606 {
7607 	(SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ),
7608 	(sal_uInt16*)mso_sptCallout2Segm1c, sizeof( mso_sptCallout2Segm1c ) >> 1,
7609 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7610 	(sal_Int32*)mso_sptCalloutDefault3,
7611 	NULL, 0,
7612 	21600, 21600,
7613 	0x80000000, 0x80000000,
7614 	NULL, 0,
7615 	(SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7616 };
7617 static const mso_CustomShape msoAccentBorderCallout3 =
7618 {
7619 	(SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ),
7620 	(sal_uInt16*)mso_sptCallout3Segm1c, sizeof( mso_sptCallout3Segm1c ) >> 1,
7621 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7622 	(sal_Int32*)mso_sptCalloutDefault4,
7623 	NULL, 0,
7624 	21600, 21600,
7625 	0x80000000, 0x80000000,
7626 	NULL, 0,
7627 	(SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7628 };
7629 
7630 static const SvxMSDffVertPair mso_sptStraightConnector1Vert[] =
7631 {
7632 	{ 0, 0 }, { 21600, 21600 }
7633 };
7634 static const sal_uInt16 mso_sptStraightConnector1Segm[] =
7635 {
7636 	0x4000, 0x0001, 0x8000
7637 };
7638 static const mso_CustomShape msoStraightConnector1 =
7639 {
7640 	(SvxMSDffVertPair*)mso_sptStraightConnector1Vert, sizeof( mso_sptStraightConnector1Vert ) / sizeof( SvxMSDffVertPair ),
7641 	(sal_uInt16*)mso_sptStraightConnector1Segm, sizeof( mso_sptStraightConnector1Segm ) >> 1,
7642 	(SvxMSDffCalculationData*)NULL, 0,
7643 	(sal_Int32*)NULL,
7644 	NULL, 0,
7645 	21600, 21600,
7646 	0x80000000, 0x80000000,
7647 	NULL, 0,
7648 	(SvxMSDffHandle*)NULL, 0
7649 };
7650 
7651 static const SvxMSDffVertPair mso_sptBentConnector2Vert[] =
7652 {
7653 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }
7654 };
7655 static const sal_uInt16 mso_sptBentConnector2Segm[] =
7656 {
7657 	0x4000, 0x0002, 0x8000
7658 };
7659 static const mso_CustomShape msoBentConnector2 =
7660 {
7661 	(SvxMSDffVertPair*)mso_sptBentConnector2Vert, sizeof( mso_sptBentConnector2Vert ) / sizeof( SvxMSDffVertPair ),
7662 	(sal_uInt16*)mso_sptBentConnector2Segm, sizeof( mso_sptBentConnector2Segm ) >> 1,
7663 	(SvxMSDffCalculationData*)NULL, 0,
7664 	(sal_Int32*)NULL,
7665 	NULL, 0,
7666 	21600, 21600,
7667 	0x80000000, 0x80000000,
7668 	NULL, 0,
7669 	(SvxMSDffHandle*)NULL, 0
7670 };
7671 
7672 static const SvxMSDffVertPair mso_sptBentConnector3Vert[] =
7673 {
7674 	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 21600 }, { 21600, 21600 }
7675 };
7676 static const sal_uInt16 mso_sptBentConnector3Segm[] =
7677 {
7678 	0x4000, 0x0003, 0x8000
7679 };
7680 static const SvxMSDffCalculationData mso_sptBentConnector3Calc[] =
7681 {
7682 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
7683 };
7684 static const sal_Int32 mso_sptBentConnector3Default[] =
7685 {
7686 	1, 10800
7687 };
7688 static const SvxMSDffHandle mso_sptBentConnector3Handle[] =
7689 {
7690 	{	MSDFF_HANDLE_FLAGS_RANGE,
7691 		0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7692 };
7693 static const mso_CustomShape msoBentConnector3 =
7694 {
7695 	(SvxMSDffVertPair*)mso_sptBentConnector3Vert, sizeof( mso_sptBentConnector3Vert ) / sizeof( SvxMSDffVertPair ),
7696 	(sal_uInt16*)mso_sptBentConnector3Segm, sizeof( mso_sptBentConnector3Segm ) >> 1,
7697 	(SvxMSDffCalculationData*)mso_sptBentConnector3Calc, sizeof( mso_sptBentConnector3Calc ) / sizeof( SvxMSDffCalculationData ),
7698 	(sal_Int32*)mso_sptBentConnector3Default,
7699 	NULL, 0,
7700 	21600, 21600,
7701 	0x80000000, 0x80000000,
7702 	NULL, 0,
7703 	(SvxMSDffHandle*)mso_sptBentConnector3Handle, sizeof( mso_sptBentConnector3Handle ) / sizeof( SvxMSDffHandle )
7704 };
7705 
7706 static const SvxMSDffVertPair mso_sptBentConnector4Vert[] =
7707 {
7708 	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I }, { 21600, 21600 }
7709 };
7710 static const sal_uInt16 mso_sptBentConnector4Segm[] =
7711 {
7712 	0x4000, 0x0004, 0x8000
7713 };
7714 static const SvxMSDffCalculationData mso_sptBentConnector4Calc[] =
7715 {
7716 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7717 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7718 	{ 0x2000, { 0x400, 21600, 0 } },
7719 	{ 0x2001, { 0x402, 1, 2 } },
7720 	{ 0x2001, { 0x401, 1, 2 } }
7721 };
7722 static const sal_Int32 mso_sptBentConnector4Default[] =
7723 {
7724 	2, 10800, 10800
7725 };
7726 static const SvxMSDffHandle mso_sptBentConnector4Handle[] =
7727 {
7728 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7729 		0x100, 4 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 4 + 3, 4 + 3 },
7730 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7731 		3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }
7732 };
7733 static const mso_CustomShape msoBentConnector4 =
7734 {
7735 	(SvxMSDffVertPair*)mso_sptBentConnector4Vert, sizeof( mso_sptBentConnector4Vert ) / sizeof( SvxMSDffVertPair ),
7736 	(sal_uInt16*)mso_sptBentConnector4Segm, sizeof( mso_sptBentConnector4Segm ) >> 1,
7737 	(SvxMSDffCalculationData*)mso_sptBentConnector4Calc, sizeof( mso_sptBentConnector4Calc ) / sizeof( SvxMSDffCalculationData ),
7738 	(sal_Int32*)mso_sptBentConnector4Default,
7739 	NULL, 0,
7740 	21600, 21600,
7741 	0x80000000, 0x80000000,
7742 	NULL, 0,
7743 	(SvxMSDffHandle*)mso_sptBentConnector4Handle, sizeof( mso_sptBentConnector4Handle ) / sizeof( SvxMSDffHandle )
7744 };
7745 
7746 static const SvxMSDffVertPair mso_sptBentConnector5Vert[] =
7747 {
7748 	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 4 MSO_I }, { 1 MSO_I, 21600 }, { 21600, 21600 }
7749 };
7750 static const sal_uInt16 mso_sptBentConnector5Segm[] =
7751 {
7752 	0x4000, 0x0005, 0x8000
7753 };
7754 static const SvxMSDffCalculationData mso_sptBentConnector5Calc[] =
7755 {
7756 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7757 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7758 	{ 0x6000, { 0x400, 0x401, 0 } },
7759 	{ 0x2001, { 0x402, 1, 2 } },
7760 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7761 	{ 0x2001, { 0x404, 1, 2 } },
7762 	{ 0x4000, { 21600, 0x404, 0 } },
7763 	{ 0x2001, { 0x406, 1, 2 } }
7764 };
7765 static const sal_Int32 mso_sptBentConnector5Default[] =
7766 {
7767 	3, 10800, 10800, 10800
7768 };
7769 static const SvxMSDffHandle mso_sptBentConnector5Handle[] =
7770 {
7771 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7772 		0x100, 5 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 5 + 3, 5 + 3 },
7773 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7774 		3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff },
7775 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7776 		0x102, 7 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 7 + 3, 7 + 3 }
7777 };
7778 static const mso_CustomShape msoBentConnector5 =
7779 {
7780 	(SvxMSDffVertPair*)mso_sptBentConnector5Vert, sizeof( mso_sptBentConnector5Vert ) / sizeof( SvxMSDffVertPair ),
7781 	(sal_uInt16*)mso_sptBentConnector5Segm, sizeof( mso_sptBentConnector5Segm ) >> 1,
7782 	(SvxMSDffCalculationData*)mso_sptBentConnector5Calc, sizeof( mso_sptBentConnector5Calc ) / sizeof( SvxMSDffCalculationData ),
7783 	(sal_Int32*)mso_sptBentConnector5Default,
7784 	NULL, 0,
7785 	21600, 21600,
7786 	0x80000000, 0x80000000,
7787 	NULL, 0,
7788 	(SvxMSDffHandle*)mso_sptBentConnector5Handle, sizeof( mso_sptBentConnector5Handle ) / sizeof( SvxMSDffHandle )
7789 };
7790 
7791 static const SvxMSDffVertPair mso_sptCurvedConnector2Vert[] =
7792 {
7793 	{ 0, 0 }, { 10800, 0 }, { 21600, 10800 }, { 21600, 21600 }
7794 };
7795 static const sal_uInt16 mso_sptCurvedConnector2Segm[] =
7796 {
7797 	0x4000, 0x2001, 0x8000
7798 };
7799 static const mso_CustomShape msoCurvedConnector2 =
7800 {
7801 	(SvxMSDffVertPair*)mso_sptCurvedConnector2Vert, sizeof( mso_sptCurvedConnector2Vert ) / sizeof( SvxMSDffVertPair ),
7802 	(sal_uInt16*)mso_sptCurvedConnector2Segm, sizeof( mso_sptCurvedConnector2Segm ) >> 1,
7803 	(SvxMSDffCalculationData*)NULL, 0,
7804 	(sal_Int32*)NULL,
7805 	NULL, 0,
7806 	21600, 21600,
7807 	0x80000000, 0x80000000,
7808 	NULL, 0,
7809 	(SvxMSDffHandle*)NULL, 0
7810 };
7811 
7812 static const SvxMSDffVertPair mso_sptCurvedConnector3Vert[] =
7813 {
7814 	{ 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 5400 }, { 0 MSO_I, 10800 }, { 0 MSO_I, 16200 }, { 3 MSO_I, 21600 }, { 21600, 21600 }
7815 };
7816 static const sal_uInt16 mso_sptCurvedConnector3Segm[] =
7817 {
7818 	0x4000, 0x2002, 0x8000
7819 };
7820 static const SvxMSDffCalculationData mso_sptCurvedConnector3Calc[] =
7821 {
7822 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7823 	{ 0x2001, { 0x400, 1, 2 } },
7824 	{ 0x2000, { 0x400, 21600, 0 } },
7825 	{ 0x2001, { 0x402, 1, 2 } }
7826 };
7827 static const sal_Int32 mso_sptCurvedConnector3Default[] =
7828 {
7829 	1, 10800
7830 };
7831 static const SvxMSDffHandle mso_sptCurvedConnector3Handle[] =
7832 {
7833 	{	MSDFF_HANDLE_FLAGS_RANGE,
7834 		0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7835 };
7836 static const mso_CustomShape msoCurvedConnector3 =
7837 {
7838 	(SvxMSDffVertPair*)mso_sptCurvedConnector3Vert, sizeof( mso_sptCurvedConnector3Vert ) / sizeof( SvxMSDffVertPair ),
7839 	(sal_uInt16*)mso_sptCurvedConnector3Segm, sizeof( mso_sptCurvedConnector3Segm ) >> 1,
7840 	(SvxMSDffCalculationData*)mso_sptCurvedConnector3Calc, sizeof( mso_sptCurvedConnector3Calc ) / sizeof( SvxMSDffCalculationData ),
7841 	(sal_Int32*)mso_sptCurvedConnector3Default,
7842 	NULL, 0,
7843 	21600, 21600,
7844 	0x80000000, 0x80000000,
7845 	NULL, 0,
7846 	(SvxMSDffHandle*)mso_sptCurvedConnector3Handle, sizeof( mso_sptCurvedConnector3Handle ) / sizeof( SvxMSDffHandle )
7847 };
7848 
7849 static const SvxMSDffVertPair mso_sptCurvedConnector4Vert[] =
7850 {
7851 	{ 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 10 MSO_I }, { 0 MSO_I, 9 MSO_I },
7852 	{ 0 MSO_I, 12 MSO_I }, { 5 MSO_I, 8 MSO_I }, { 3 MSO_I, 8 MSO_I },
7853 	{ 7 MSO_I, 8 MSO_I }, { 21600, 14 MSO_I }, { 21600, 21600 }
7854 
7855 };
7856 static const sal_uInt16 mso_sptCurvedConnector4Segm[] =
7857 {
7858 	0x4000, 0x2003, 0x8000
7859 };
7860 static const SvxMSDffCalculationData mso_sptCurvedConnector4Calc[] =
7861 {
7862 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7863 	{ 0x2001, { 0x400, 1, 2 } },
7864 	{ 0x4000, { 21600, 0x400, 0 } },
7865 	{ 0x2001, { 0x402, 1, 2 } },
7866 	{ 0x6000, { 0x400, 0x403, 0 } },
7867 	{ 0x2001, { 0x404, 1, 2 } },
7868 	{ 0x2000, { 0x403, 21600, 0 } },
7869 	{ 0x2001, { 0x406, 1, 2 } },
7870 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7871 	{ 0x2001, { DFF_Prop_adjust2Value, 1, 2 } },
7872 	{ 0x2001, { DFF_Prop_adjust2Value, 1, 4 } },
7873 	{ 0x6000, { 0x408, 0x409, 0 } },
7874 	{ 0x2001, { 0x40b, 1, 2 } },
7875 	{ 0x2000, { 0x408, 21600, 0 } },
7876 	{ 0x2001, { 0x40d, 1, 2 } }
7877 };
7878 static const sal_Int32 mso_sptCurvedConnector4Default[] =
7879 {
7880 	2, 10800, 10800
7881 };
7882 static const SvxMSDffHandle mso_sptCurvedConnector4Handle[] =
7883 {
7884 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7885 		0x100, 9 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 9 + 3, 9 + 3 },
7886 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7887 		3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }
7888 };
7889 static const mso_CustomShape msoCurvedConnector4 =
7890 {
7891 	(SvxMSDffVertPair*)mso_sptCurvedConnector4Vert, sizeof( mso_sptCurvedConnector4Vert ) / sizeof( SvxMSDffVertPair ),
7892 	(sal_uInt16*)mso_sptCurvedConnector4Segm, sizeof( mso_sptCurvedConnector4Segm ) >> 1,
7893 	(SvxMSDffCalculationData*)mso_sptCurvedConnector4Calc, sizeof( mso_sptCurvedConnector4Calc ) / sizeof( SvxMSDffCalculationData ),
7894 	(sal_Int32*)mso_sptCurvedConnector4Default,
7895 	NULL, 0,
7896 	21600, 21600,
7897 	0x80000000, 0x80000000,
7898 	NULL, 0,
7899 	(SvxMSDffHandle*)mso_sptCurvedConnector4Handle, sizeof( mso_sptCurvedConnector4Handle ) / sizeof( SvxMSDffHandle )
7900 };
7901 
7902 static const SvxMSDffVertPair mso_sptCurvedConnector5Vert[] =
7903 {
7904 	{ 0, 0 },
7905 	{ 21 MSO_I, 0 }, { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
7906 	{ 0 MSO_I, 14 MSO_I }, { 6 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
7907 	{ 8 MSO_I, 4 MSO_I }, { 1 MSO_I, 18 MSO_I }, { 1 MSO_I, 16 MSO_I },
7908 	{ 1 MSO_I, 20 MSO_I }, { 10 MSO_I, 21600 }, { 21600, 21600 }
7909 };
7910 static const sal_uInt16 mso_sptCurvedConnector5Segm[] =
7911 {
7912 	0x4000, 0x2004, 0x8000
7913 };
7914 static const SvxMSDffCalculationData mso_sptCurvedConnector5Calc[] =
7915 {
7916 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7917 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7918 	{ 0x6000, { 0x400, 0x401, 0 } },
7919 	{ 0x2001, { 0x402, 1, 2 } },
7920 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7921 	{ 0x6000, { 0x400, 0x403, 0 } },
7922 	{ 0x2001, { 0x405, 1, 2 } },
7923 	{ 0x6000, { 0x401, 0x403, 0 } },
7924 	{ 0x2001, { 0x407, 1, 2 } },
7925 	{ 0x2000, { 0x401, 21600, 0 } },
7926 	{ 0x2001, { 0x409, 1, 2 } },
7927 	{ 0x2001, { 0x404, 1, 2 } },
7928 	{ 0x2001, { 0x40b, 1, 2 } },
7929 	{ 0x6000, { 0x404, 0x40b, 0 } },
7930 	{ 0x2001, { 0x40d, 1, 2 } },
7931 	{ 0x2000, { 0x404, 21600, 0 } },
7932 	{ 0x2001, { 0x40f, 1, 2 } },
7933 	{ 0x6000, { 0x404, 0x410, 0 } },
7934 	{ 0x2001, { 0x411, 1, 2 } },
7935 	{ 0x2000, { 0x410, 21600, 0 } },
7936 	{ 0x2001, { 0x413, 1, 2 } },
7937 	{ 0x2001, { 0x400, 1, 2 } }
7938 };
7939 static const sal_Int32 mso_sptCurvedConnector5Default[] =
7940 {
7941 	3, 10800, 10800, 10800
7942 };
7943 static const SvxMSDffHandle mso_sptCurvedConnector5Handle[] =
7944 {
7945 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7946 		0x100, 11 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 11 + 3, 11 + 3 },
7947 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7948 		3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff },
7949 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7950 		0x102, 16 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 16 + 3, 16 + 3 }
7951 };
7952 static const mso_CustomShape msoCurvedConnector5 =
7953 {
7954 	(SvxMSDffVertPair*)mso_sptCurvedConnector5Vert, sizeof( mso_sptCurvedConnector5Vert ) / sizeof( SvxMSDffVertPair ),
7955 	(sal_uInt16*)mso_sptCurvedConnector5Segm, sizeof( mso_sptCurvedConnector5Segm ) >> 1,
7956 	(SvxMSDffCalculationData*)mso_sptCurvedConnector5Calc, sizeof( mso_sptCurvedConnector5Calc ) / sizeof( SvxMSDffCalculationData ),
7957 	(sal_Int32*)mso_sptCurvedConnector5Default,
7958 	NULL, 0,
7959 	21600, 21600,
7960 	0x80000000, 0x80000000,
7961 	NULL, 0,
7962 	(SvxMSDffHandle*)mso_sptCurvedConnector5Handle, sizeof( mso_sptCurvedConnector5Handle ) / sizeof( SvxMSDffHandle )
7963 };
7964 
7965 const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType )
7966 {
7967 	const mso_CustomShape* pCustomShape = NULL;
7968 	switch( eSpType )
7969 	{
7970 		case mso_sptArc :						pCustomShape = &msoArc; break;
7971 		case mso_sptRectangle :					pCustomShape = &msoRectangle; break;
7972 		case mso_sptParallelogram :				pCustomShape = &msoParallelogram; break;
7973 		case mso_sptTrapezoid :					pCustomShape = &msoTrapezoid; break;
7974 		case mso_sptDiamond :					pCustomShape = &msoDiamond; break;
7975 		case mso_sptRoundRectangle :			pCustomShape = &msoRoundRectangle; break;
7976 		case mso_sptOctagon :					pCustomShape = &msoOctagon; break;
7977 		case mso_sptIsocelesTriangle :			pCustomShape = &msoIsocelesTriangle; break;
7978 		case mso_sptRightTriangle :				pCustomShape = &msoRightTriangle; break;
7979 		case mso_sptEllipse :					pCustomShape = &msoEllipse; break;
7980 		case mso_sptHexagon :					pCustomShape = &msoHexagon; break;
7981 		case mso_sptPlus :						pCustomShape = &msoPlus; break;
7982 		case mso_sptPentagon :					pCustomShape = &msoPentagon; break;
7983 		case mso_sptCan :						pCustomShape = &msoCan; break;
7984 		case mso_sptCube :						pCustomShape = &msoCube; break;
7985 		case mso_sptBalloon :					pCustomShape = &msoBalloon; break;
7986 		case mso_sptActionButtonBlank :			pCustomShape = &msoActionButtonBlank; break;
7987 		case mso_sptActionButtonHome :			pCustomShape = &msoActionButtonHome; break;
7988 		case mso_sptActionButtonHelp :			pCustomShape = &msoActionButtonHelp; break;
7989 		case mso_sptActionButtonInformation :	pCustomShape = &msoActionButtonInformation; break;
7990 		case mso_sptActionButtonBackPrevious :	pCustomShape = &msoActionButtonBackPrevious; break;
7991 		case mso_sptActionButtonForwardNext :	pCustomShape = &msoActionButtonForwardNext; break;
7992 		case mso_sptActionButtonBeginning :		pCustomShape = &msoActionButtonBeginning; break;
7993 		case mso_sptActionButtonEnd :			pCustomShape = &msoActionButtonEnd; break;
7994 		case mso_sptActionButtonReturn :		pCustomShape = &msoActionButtonReturn;	break;
7995 		case mso_sptActionButtonDocument :		pCustomShape = &msoActionButtonDocument; break;
7996 		case mso_sptActionButtonSound :			pCustomShape = &msoActionButtonSound; break;
7997 		case mso_sptActionButtonMovie :			pCustomShape = &msoActionButtonMovie; break;
7998 		case mso_sptBevel :						pCustomShape = &msoBevel; break;
7999 		case mso_sptFoldedCorner :				pCustomShape = &msoFoldedCorner; break;
8000 		case mso_sptSmileyFace :				pCustomShape = &msoSmileyFace;	break;
8001 		case mso_sptDonut :						pCustomShape = &msoDonut; break;
8002 		case mso_sptNoSmoking :					pCustomShape = &msoNoSmoking; break;
8003 		case mso_sptBlockArc :					pCustomShape = &msoBlockArc; break;
8004 		case mso_sptHeart :						pCustomShape = &msoHeart; break;
8005 		case mso_sptLightningBolt :				pCustomShape = &msoLightningBold; break;
8006 		case mso_sptSun	:						pCustomShape = &msoSun; break;
8007 		case mso_sptMoon :						pCustomShape = &msoMoon; break;
8008 		case mso_sptBracketPair :				pCustomShape = &msoBracketPair; break;
8009 		case mso_sptBracePair :					pCustomShape = &msoBracePair; break;
8010 		case mso_sptPlaque :					pCustomShape = &msoPlaque; break;
8011 		case mso_sptLeftBracket :				pCustomShape = &msoLeftBracket; break;
8012 		case mso_sptRightBracket :				pCustomShape = &msoRightBracket; break;
8013 		case mso_sptLeftBrace :					pCustomShape = &msoLeftBrace; break;
8014 		case mso_sptRightBrace :				pCustomShape = &msoRightBrace; break;
8015 		case mso_sptArrow :						pCustomShape = &msoArrow; break;
8016 		case mso_sptUpArrow :					pCustomShape = &msoUpArrow; break;
8017 		case mso_sptDownArrow :					pCustomShape = &msoDownArrow; break;
8018 		case mso_sptLeftArrow :					pCustomShape = &msoLeftArrow; break;
8019 		case mso_sptLeftRightArrow :			pCustomShape = &msoLeftRightArrow; break;
8020 		case mso_sptUpDownArrow :				pCustomShape = &msoUpDownArrow; break;
8021 		case mso_sptQuadArrow :					pCustomShape = &msoQuadArrow; break;
8022 		case mso_sptLeftRightUpArrow :			pCustomShape = &msoLeftRightUpArrow; break;
8023 		case mso_sptBentArrow :					pCustomShape = &msoBentArrow; break;
8024 		case mso_sptUturnArrow :				pCustomShape = &msoUturnArrow; break;
8025 		case mso_sptLeftUpArrow :				pCustomShape = &msoLeftUpArrow; break;
8026 		case mso_sptBentUpArrow :				pCustomShape = &msoBentUpArrow; break;
8027 		case mso_sptCurvedRightArrow :			pCustomShape = &msoCurvedRightArrow; break;
8028 		case mso_sptCurvedLeftArrow :			pCustomShape = &msoCurvedLeftArrow; break;
8029 		case mso_sptCurvedUpArrow :				pCustomShape = &msoCurvedUpArrow; break;
8030 		case mso_sptCurvedDownArrow :			pCustomShape = &msoCurvedDownArrow; break;
8031 		case mso_sptStripedRightArrow :			pCustomShape = &msoStripedRightArrow; break;
8032 		case mso_sptNotchedRightArrow :			pCustomShape = &msoNotchedRightArrow; break;
8033 		case mso_sptHomePlate :					pCustomShape = &msoHomePlate; break;
8034 		case mso_sptChevron :					pCustomShape = &msoChevron; break;
8035 		case mso_sptRightArrowCallout :			pCustomShape = &msoRightArrowCallout; break;
8036 		case mso_sptLeftArrowCallout :			pCustomShape = &msoLeftArrowCallout; break;
8037 		case mso_sptUpArrowCallout :			pCustomShape = &msoUpArrowCallout; break;
8038 		case mso_sptDownArrowCallout :			pCustomShape = &msoDownArrowCallout; break;
8039 		case mso_sptLeftRightArrowCallout :		pCustomShape = &msoLeftRightArrowCallout; break;
8040 		case mso_sptUpDownArrowCallout :		pCustomShape = &msoUpDownArrowCallout; break;
8041 		case mso_sptQuadArrowCallout :			pCustomShape = &msoQuadArrowCallout; break;
8042 		case mso_sptCircularArrow :				pCustomShape = &msoCircularArrow; break;
8043 		case mso_sptIrregularSeal1 :			pCustomShape = &msoIrregularSeal1; break;
8044 		case mso_sptIrregularSeal2 :			pCustomShape = &msoIrregularSeal2; break;
8045 		case mso_sptSeal4 :						pCustomShape = &msoSeal4; break;
8046 		case mso_sptStar :						pCustomShape = &msoStar; break;
8047 		case mso_sptSeal8 :						pCustomShape = &msoSeal8; break;
8048 		case mso_sptSeal :
8049 		case mso_sptSeal16 :					pCustomShape = &msoSeal16; break;
8050 		case mso_sptSeal24 :					pCustomShape = &msoSeal24; break;
8051 		case mso_sptSeal32 :					pCustomShape = &msoSeal32; break;
8052 		case mso_sptRibbon2 :					pCustomShape = &msoRibbon2; break;
8053 		case mso_sptRibbon :					pCustomShape = &msoRibbon; break;
8054 		case mso_sptEllipseRibbon2 :			pCustomShape = &msoRibbon2; break;	// SJ: TODO
8055 		case mso_sptEllipseRibbon :				pCustomShape = &msoRibbon; break;	// SJ: TODO
8056 		case mso_sptVerticalScroll :			pCustomShape = &msoVerticalScroll;	break;
8057 		case mso_sptHorizontalScroll :			pCustomShape = &msoHorizontalScroll; break;
8058 		case mso_sptFlowChartProcess :			pCustomShape = &msoFlowChartProcess; break;
8059 		case mso_sptFlowChartAlternateProcess :	pCustomShape = &msoFlowChartAlternateProcess; break;
8060 		case mso_sptFlowChartDecision :			pCustomShape = &msoFlowChartDecision; break;
8061 		case mso_sptFlowChartInputOutput :		pCustomShape = &msoFlowChartInputOutput; break;
8062 		case mso_sptFlowChartPredefinedProcess :pCustomShape = &msoFlowChartPredefinedProcess; break;
8063 		case mso_sptFlowChartInternalStorage :	pCustomShape = &msoFlowChartInternalStorage; break;
8064 		case mso_sptFlowChartDocument :			pCustomShape = &msoFlowChartDocument; break;
8065 		case mso_sptFlowChartMultidocument :	pCustomShape = &msoFlowChartMultidocument; break;
8066 		case mso_sptFlowChartTerminator :		pCustomShape = &msoFlowChartTerminator; break;
8067 		case mso_sptFlowChartPreparation :		pCustomShape = &msoFlowChartPreparation; break;
8068 		case mso_sptFlowChartManualInput :		pCustomShape = &msoFlowChartManualInput; break;
8069 		case mso_sptFlowChartManualOperation :	pCustomShape = &msoFlowChartManualOperation; break;
8070 		case mso_sptFlowChartConnector :		pCustomShape = &msoFlowChartConnector; break;
8071 		case mso_sptFlowChartOffpageConnector : pCustomShape = &msoFlowChartOffpageConnector; break;
8072 		case mso_sptFlowChartPunchedCard :		pCustomShape = &msoFlowChartPunchedCard; break;
8073 		case mso_sptFlowChartPunchedTape :		pCustomShape = &msoFlowChartPunchedTape; break;
8074 		case mso_sptFlowChartSummingJunction :	pCustomShape = &msoFlowChartSummingJunction; break;
8075 		case mso_sptFlowChartOr :				pCustomShape = &msoFlowChartOr; break;
8076 		case mso_sptFlowChartCollate :			pCustomShape = &msoFlowChartCollate; break;
8077 		case mso_sptFlowChartSort :				pCustomShape = &msoFlowChartSort; break;
8078 		case mso_sptFlowChartExtract :			pCustomShape = &msoFlowChartExtract; break;
8079 		case mso_sptFlowChartMerge :			pCustomShape = &msoFlowChartMerge; break;
8080 		case mso_sptFlowChartOnlineStorage :	pCustomShape = &msoFlowChartOnlineStorage; break;
8081 		case mso_sptFlowChartDelay :			pCustomShape = &msoFlowChartDelay; break;
8082 		case mso_sptFlowChartMagneticTape :		pCustomShape = &msoFlowChartMagneticTape; break;
8083 		case mso_sptFlowChartMagneticDisk :		pCustomShape = &msoFlowChartMagneticDisk; break;
8084 		case mso_sptFlowChartMagneticDrum :		pCustomShape = &msoFlowChartMagneticDrum; break;
8085 		case mso_sptFlowChartDisplay :			pCustomShape = &msoFlowChartDisplay; break;
8086 		case mso_sptWedgeRectCallout :			pCustomShape = &msoWedgeRectCallout; break;
8087 		case mso_sptWedgeRRectCallout :			pCustomShape = &msoWedgeRRectCallout; break;
8088 		case mso_sptWedgeEllipseCallout :		pCustomShape = &msoWedgeEllipseCallout; break;
8089 		case mso_sptCloudCallout :				pCustomShape = &msoCloudCallout; break;
8090 		case mso_sptWave :						pCustomShape = &msoWave; break;
8091 		case mso_sptDoubleWave :				pCustomShape = &msoDoubleWave; break;
8092 
8093 		// callout
8094 		case mso_sptCallout1 :					pCustomShape = &msoCallout1; break;
8095 		case mso_sptCallout2 :					pCustomShape = &msoCallout2; break;
8096 		case mso_sptCallout3 :					pCustomShape = &msoCallout3; break;
8097 		case mso_sptAccentCallout1 :			pCustomShape = &msoAccentCallout1; break;
8098 		case mso_sptAccentCallout2 :			pCustomShape = &msoAccentCallout2; break;
8099 		case mso_sptAccentCallout3 :			pCustomShape = &msoAccentCallout3; break;
8100 		case mso_sptBorderCallout1 :			pCustomShape = &msoBorderCallout1; break;
8101 		case mso_sptBorderCallout2 :			pCustomShape = &msoBorderCallout2; break;
8102 		case mso_sptBorderCallout3 :			pCustomShape = &msoBorderCallout3; break;
8103 		case mso_sptAccentBorderCallout1 :		pCustomShape = &msoAccentBorderCallout1; break;
8104 		case mso_sptAccentBorderCallout2 :		pCustomShape = &msoAccentBorderCallout2; break;
8105 		case mso_sptAccentBorderCallout3 :		pCustomShape = &msoAccentBorderCallout3; break;
8106 		case mso_sptCallout90 :					pCustomShape = &msoCallout90; break;
8107 		case mso_sptAccentCallout90 :			pCustomShape = &msoAccentCallout90; break;
8108 		case mso_sptBorderCallout90 :			pCustomShape = &msoBorderCallout90; break;
8109 		case mso_sptAccentBorderCallout90 :		pCustomShape = &msoAccentBorderCallout90; break;
8110 
8111 		// connectors
8112 		case mso_sptStraightConnector1 :		pCustomShape = &msoStraightConnector1; break;
8113 		case mso_sptBentConnector2 :			pCustomShape = &msoBentConnector2; break;
8114 		case mso_sptBentConnector3 :			pCustomShape = &msoBentConnector3; break;
8115 		case mso_sptBentConnector4 :			pCustomShape = &msoBentConnector4; break;
8116 		case mso_sptBentConnector5 :			pCustomShape = &msoBentConnector5; break;
8117 		case mso_sptCurvedConnector2 :			pCustomShape = &msoCurvedConnector2; break;
8118 		case mso_sptCurvedConnector3 :			pCustomShape = &msoCurvedConnector3; break;
8119 		case mso_sptCurvedConnector4 :			pCustomShape = &msoCurvedConnector4; break;
8120 		case mso_sptCurvedConnector5 :			pCustomShape = &msoCurvedConnector5; break;
8121 
8122 		// Dont know, simply mapping to TextSimple
8123 		case mso_sptTextOnRing :
8124 		case mso_sptTextOnCurve :
8125 		case mso_sptTextRing :
8126 		case mso_sptTextWave :
8127 		case mso_sptTextCurve :
8128 		case mso_sptTextHexagon :
8129 		case mso_sptTextOctagon :
8130 		case mso_sptTextBox	:					pCustomShape = &msoTextSimple; break;
8131 
8132 		// FontWork
8133 		case mso_sptTextSimple :
8134 		case mso_sptTextPlainText :				pCustomShape = &msoTextPlainText; break;
8135 		case mso_sptTextStop :					pCustomShape = &msoTextStop; break;
8136 		case mso_sptTextTriangle :				pCustomShape = &msoTextTriangle; break;
8137 		case mso_sptTextTriangleInverted :		pCustomShape = &msoTextTriangleInverted; break;
8138 		case mso_sptTextChevron :				pCustomShape = &msoTextChevron; break;
8139 		case mso_sptTextChevronInverted :		pCustomShape = &msoTextChevronInverted; break;
8140 		case mso_sptTextRingInside :			pCustomShape = &msoTextRingOutside; break;	// SJ: TODO->the orientation of the ellipse needs to be changed
8141 		case mso_sptTextRingOutside :			pCustomShape = &msoTextRingOutside; break;
8142 		case mso_sptTextFadeRight :				pCustomShape = &msoTextFadeRight; break;
8143 		case mso_sptTextFadeLeft :				pCustomShape = &msoTextFadeLeft; break;
8144 		case mso_sptTextFadeUp :				pCustomShape = &msoTextFadeUp; break;
8145 		case mso_sptTextFadeDown :				pCustomShape = &msoTextFadeDown; break;
8146 		case mso_sptTextSlantUp :				pCustomShape = &msoTextSlantUp; break;
8147 		case mso_sptTextSlantDown :				pCustomShape = &msoTextSlantDown; break;
8148 		case mso_sptTextCascadeUp :				pCustomShape = &msoTextCascadeUp; break;
8149 		case mso_sptTextCascadeDown :			pCustomShape = &msoTextCascadeDown; break;
8150 		case mso_sptTextArchUpCurve :			pCustomShape = &msoTextArchUpCurve; break;
8151 		case mso_sptTextArchDownCurve :			pCustomShape = &msoTextArchDownCurve; break;
8152 		case mso_sptTextCircleCurve :			pCustomShape = &msoTextCircleCurve; break;
8153 		case mso_sptTextButtonCurve :			pCustomShape = &msoTextButtonCurve; break;
8154 		case mso_sptTextArchUpPour :			pCustomShape = &msoTextArchUpPour; break;
8155 		case mso_sptTextArchDownPour :			pCustomShape = &msoTextArchDownPour; break;
8156 		case mso_sptTextCirclePour :			pCustomShape = &msoTextCirclePour; break;
8157 		case mso_sptTextButtonPour :			pCustomShape = &msoTextButtonPour; break;
8158 		case mso_sptTextCurveUp :				pCustomShape = &msoTextCurveUp; break;
8159 		case mso_sptTextCurveDown :				pCustomShape = &msoTextCurveDown; break;
8160 		case mso_sptTextCanUp :					pCustomShape = &msoTextCanUp; break;
8161 		case mso_sptTextCanDown :				pCustomShape = &msoTextCanDown; break;
8162 		case mso_sptTextInflate :				pCustomShape = &msoTextInflate; break;
8163 		case mso_sptTextDeflate :				pCustomShape = &msoTextDeflate; break;
8164 		case mso_sptTextInflateBottom :			pCustomShape = &msoTextInflateBottom; break;
8165 		case mso_sptTextDeflateBottom :			pCustomShape = &msoTextDeflateBottom; break;
8166 		case mso_sptTextInflateTop :			pCustomShape = &msoTextInflateTop; break;
8167 		case mso_sptTextDeflateTop :			pCustomShape = &msoTextDeflateTop; break;
8168 		case mso_sptTextDeflateInflate :		pCustomShape = &msoTextDeflateInflate; break;
8169 		case mso_sptTextDeflateInflateDeflate :	pCustomShape = &msoTextDeflateInflateDeflate; break;
8170 		case mso_sptTextWave1 :					pCustomShape = &msoTextWave1; break;
8171 		case mso_sptTextWave2 :					pCustomShape = &msoTextWave2; break;
8172 		case mso_sptTextWave3 :					pCustomShape = &msoTextWave3; break;
8173 		case mso_sptTextWave4 :					pCustomShape = &msoTextWave4; break;
8174 		default :
8175 		break;
8176 	}
8177 	return pCustomShape;
8178 }
8179