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