1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 #include <QImage>
8 #include <QLayout>
9 #include <QBitmap>
10 #include <QPixmap>
11 // #include <QDebug>
12 
13 #include "autoformbuttongroup.h"
14 #include "fpointarray.h"
15 #include "scpainter.h"
16 #include "iconmanager.h"
17 
AutoformButtonGroup(QWidget * parent)18 AutoformButtonGroup::AutoformButtonGroup( QWidget* parent ) : QMenu( parent )
19 {
20 	signalMapper = new QSignalMapper(this);
21 	menu1 = new QMenu( tr("Default Shapes"));
22 	addShape(menu1, 0);
23 	addShape(menu1, 1);
24 	addShape(menu1, 2);
25 	addShape(menu1, 3);
26 	addShape(menu1, 8);
27 	addShape(menu1, 9);
28 	addShape(menu1, 10);
29 	addShape(menu1, 11);
30 	addShape(menu1, 12);
31 	addShape(menu1, 13);
32 	addShape(menu1, 14);
33 	addShape(menu1, 15);
34 	addShape(menu1, 16);
35 	addShape(menu1, 17);
36 	menu2 = new QMenu( tr("Arrows"));
37 	addShape(menu2, 4);
38 	addShape(menu2, 5);
39 	addShape(menu2, 6);
40 	addShape(menu2, 7);
41 	addShape(menu2, 20);
42 	addShape(menu2, 21);
43 	addShape(menu2, 22);
44 	menu3 = new QMenu( tr("Flow Chart"));
45 	addShape(menu3, 24);
46 	addShape(menu3, 25);
47 	addShape(menu3, 26);
48 	addShape(menu3, 27);
49 	addShape(menu3, 28);
50 	addShape(menu3, 29);
51 	addShape(menu3, 30);
52 	addShape(menu3, 31);
53 	menu4 = new QMenu( tr("Jigsaw"));
54 	addShape(menu4, 32);
55 	addShape(menu4, 33);
56 	addShape(menu4, 34);
57 	addShape(menu4, 35);
58 	addShape(menu4, 36);
59 	addShape(menu4, 37);
60 	addShape(menu4, 38);
61 	addShape(menu4, 39);
62 	addShape(menu4, 40);
63 	addShape(menu4, 41);
64 	addShape(menu4, 42);
65 	addShape(menu4, 43);
66 	menu5 = new QMenu( tr("Specials"));
67 	addShape(menu5, 18);
68 	addShape(menu5, 19);
69 	addShape(menu5, 23);
70 	addShape(menu5, 44);
71 	addMenu(menu1);
72 	addMenu(menu2);
73 	addMenu(menu3);
74 	addMenu(menu4);
75 	addMenu(menu5);
76 	connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(selForm(int)));
77 }
78 
addShape(QMenu * menu,int shapenum)79 void AutoformButtonGroup::addShape(QMenu* menu, int shapenum)
80 {
81 	QAction *action = menu->addAction(QIcon(getIconPixmap(shapenum, 16)), "");
82 	action->setIconVisibleInMenu(true);
83 	connect(action, SIGNAL(triggered()), signalMapper, SLOT(map()));
84 	signalMapper->setMapping(action, shapenum);
85 }
86 
getShapeData(int a,int * n)87 qreal* AutoformButtonGroup::getShapeData(int a, int *n)
88 {
89 	qreal *vals = nullptr;
90 	static qreal AutoShapes0[] = {0.0, 0.0, 0.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
91 									0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 0.0, 0.0, 0.0};
92 	static qreal AutoShapes1[] = {100.0, 50.0, 100.0, 77.615235, 50.0, 100.0, 77.615235, 100.0, 50.0, 100.0, 22.385765, 100.0,
93 									0.0, 50.0, 0.0, 77.615235, 0.0, 50.0, 0.0, 22.385765, 50.0, 0.0, 22.385765, 0.0,
94 									50.0, 0.0, 77.615235, 0.0, 100.0, 50.0, 100.0, 22.385765};
95 	static qreal AutoShapes2[] = {0.0, 0.0, 0.0, 0.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
96 								 	0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 0.0, 0.0, 0.0};
97 	static qreal AutoShapes3[] = {0.0, 25.0, 0.0, 25.0, 25.0, 25.0, 25.0, 25.0, 25.0, 25.0, 25.0, 25.0,
98 								 	25.0, 0.0, 25.0, 0.0, 25.0, 0.0, 25.0, 0.0, 75.0, 0.0, 75.0, 0.0,
99 								 	75.0, 0.0, 75.0, 0.0, 75.0, 25.0, 75.0, 25.0, 75.0, 25.0, 75.0, 25.0,
100 								 	100.0, 25.0, 100.0, 25.0, 100.0, 25.0, 100.0, 25.0,	100.0, 75.0, 100.0, 75.0,
101 								 	100.0, 75.0, 100.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.0,
102 								 	75.0, 100.0, 75.0, 100.0, 75.0, 100.0, 75.0, 100.0, 25.0, 100.0, 25.0, 100.0,
103 								 	25.0, 100.0, 25.0, 100.0, 25.0, 75.0, 25.0, 75.0, 25.0, 75.0, 25.0, 75.0,
104 								 	0.0, 75.0, 0.0, 75.0, 0.0, 75.0, 0.0, 75.0,	0.0, 25.0, 0.0, 25.0};
105 	static qreal AutoShapes4[] = {0.0, 50.0, 0.0, 50.0, 50.0, 0.0, 50.0, 0.0, 50.0, 0.0, 50.0, 0.0,
106 									50.0, 25.0, 50.0, 25.0, 50.0, 25.0, 50.0, 25.0,	100.0, 25.0, 100.0, 25.0,
107 									100.0, 25.0, 100.0,  25.0, 100.0, 75.0, 100.0, 75.0, 100.0, 75.0, 100.0, 75.0,
108 									50.0, 75.0, 50.0, 75.0, 50.0, 75.0, 50.0, 75.0, 50.0, 100.0, 50.0, 100.0,
109 									50.0, 100.0, 50.0, 100.0,	0.0, 50.0, 0.0, 50.0};
110 	static qreal AutoShapes5[] = {0.0, 25.0, 0.0, 25.0, 50.0, 25.0, 50.0, 25.0, 50.0, 25.0, 50.0, 25.0,
111 									50.0, 0.0, 50.0, 0.0, 50.0, 0.0, 50.0, 0.0,	100.0, 50.0, 100.0, 50.0,
112 									100.0, 50.0, 100.0, 50.0, 50.0, 100.0, 50.0, 100.0, 50.0, 100.0, 50.0, 100.0,
113 									50.0, 75.0, 50.0, 75.0, 50.0, 75.0, 50.0, 75.0, 0.0, 75.0, 0.0, 75.0,
114 									0.0, 75.0, 0.0, 75.0,	0.0, 25.0, 0.0, 25.0};
115 	static qreal AutoShapes6[] = {0.0, 50.0, 0.0, 50.0, 50.0, 0.0, 50.0, 0.0, 50.0, 0.0, 50.0, 0.0,
116 									100.0, 50.0, 100.0, 50.0,	100.0, 50.0, 100.0, 50.0, 75.0, 50.0, 75.0, 50.0,
117 									75.0, 50.0, 75.0, 50.0, 75.0, 100.0, 75.0, 100.0, 75.0, 100.0, 75.0, 100.0,
118 									25.0, 100.0, 25.0, 100.0, 25.0, 100.0, 25.0, 100.0, 25.0, 50.0, 25.0, 50.0,
119 									25.0, 50.0, 25.0, 50.0,	0.0, 50.0, 0.0, 50.0};
120 	static qreal AutoShapes7[] = {0.0, 50.0, 0.0, 50.0, 25.0, 50.0, 25.0, 50.0, 25.0, 50.0, 25.0, 50.0,
121 									25.0, 0.0, 25.0, 0.0, 25.0, 0.0, 25.0, 0.0, 75.0, 0.0, 75.0, 0.0,
122 									75.0, 0.0, 75.0, 0.0, 75.0, 50.0, 75.0, 50.0, 75.0, 50.0, 75.0, 50.0,
123 									100.0, 50.0, 100.0, 50.0,	100.0, 50.0, 100.0, 50.0, 50.0, 100.0, 50.0, 100.0,
124 									50.0, 100.0, 50.0, 100.0,	0.0, 50.0, 0.0, 50.0};
125 	static qreal AutoShapes8[] = {0.0, 50.0, 0.0, 22.385765, 100.0, 0.0, 44.77716, 0.0,	100.0, 0.0, 100.0, 0.0,
126 									100.0, 100.0, 100.0, 100.0,	100.0, 100.0, 44.77716, 100.0, 0.0, 50.0,
127 									0.0, 77.615235};
128 	static qreal AutoShapes9[] = {100.0, 50.0, 100.0, 77.615235, 0.0, 100.0, 55.22284, 100.0, 0.0, 100.0, 0.0, 100.0,
129 									0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 55.22281, 0.0, 100.0, 50.0, 100.0, 22.385765};
130 	static qreal AutoShapes10[] = {100.0, 100.0, 100.0, 100.0, 0.0, 100.0, 0.0,
131 									100.0, 0.0, 100.0, 0.0, 44.7715,
132 									 50.0, 0.0, 22.3858, 0.0, 50.0, 0.0, 77.6152, 0.0, 100.0, 100.0, 100.0, 44.7715};
133 	static qreal AutoShapes11[] = {100.0, 0.0, 100.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 55.2285, 50.0, 100.0,
134 									 22.3858, 100.0, 50.0, 100.0, 77.6152, 100.0, 100.0, 0.0, 100.0, 55.2285};
135 	static qreal AutoShapes12[] = {0.0, 50.0, 0.0, 50.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0,
136 									 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 50.0, 0.0, 50.0};
137 	static qreal AutoShapes13[] = {0.0, 0.0, 0.0, 0.0, 100.0, 50.0, 100.0, 50.0, 100.0, 50.0, 100.0, 50.0,
138 									 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 0.0, 0.0, 0.0};
139 	static qreal AutoShapes14[] = {0.0, 100.0, 0.0, 100.0, 50.0, 0.0, 50.0, 0.0, 50.0, 0.0, 50.0, 0.0,
140 									 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 100.0, 0.0, 100.0};
141 	static qreal AutoShapes15[] = {0.0, 0.0, 0.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0,
142 									 50.0, 100.0, 50.0, 100.0, 50.0, 100.0, 50.0, 100.0, 0.0, 0.0, 0.0, 0.0};
143 	static qreal AutoShapes16[] = {25.0, 0.0, 25.0, 0.0, 75.0, 0.0, 75.0, 0.0, 75.0, 0.0, 75.0, 13.8071,
144 									 100.0, 25.0, 86.1929, 25.0, 100.0, 25.0, 100.0, 25.0, 100.0, 75.0, 100.0, 75.0,
145 									 100.0, 75.0, 86.1929, 75.0, 75.0, 100.0, 75.0, 86.1929, 75.0, 100.0, 75.0, 100.0,
146 									 25.0, 100.0, 25.0, 100.0, 25.0, 100.0, 25.0, 86.1929, 0.0, 75.0, 13.8071, 75.0,
147 									 0.0, 75.0, 0.0, 75.0, 0.0, 25.0, 0.0, 25.0, 0.0, 25.0, 13.8071, 25.0,
148 									 25.0, 0.0, 25.0, 13.8071};
149 	static qreal AutoShapes17[] = {100.0, 50.0, 100.0, 77.6152, 50.0, 100.0, 77.6152, 100.0, 50.0, 100.0, 22.3858, 100.0,
150 									 0.0, 50.0, 0.0, 77.6152, 0.0,  50.0, 0.0, 22.3858, 50.0, 0.0, 22.3858, 0.0,
151 									 50.0, 0.0, 77.6152, 0.0, 100.0, 50.0, 100.0, 22.3858, -1.0, -1.0, -1.0, -1.0,
152 									 75.0, 50.0, 75.0, 63.8076, 50.0, 75.0, 63.8076, 75.0, 50.0, 75.0, 36.1929, 75.0,
153 									 25.0, 50.0, 25.0, 63.8076, 25.0, 50.0, 25.0, 36.1929, 50.0, 25.0, 36.1929, 25.0,
154 									 50.0, 25.0, 63.8076, 25.0, 75.0, 50.0, 75.0, 36.1929};
155 	static qreal AutoShapes18[] = {50.185, 100, 50.185, 100, 42.0645, 82.3504, 47.3401, 90.5964, 42.0645, 82.3504, 42.0645, 82.3504, 21.6517, 56.7327, 36.7888,
156 									74.1044, 21.6517, 56.7327, 21.6517, 56.7327, 7.9825, 40.5569, 10.5513, 43.9838, 7.9825, 40.5569, 7.9825, 40.5569, 1.87893,
157 									30.3195, 3.76079, 34.9805, 1.87893, 30.3195, 1.87893, 30.3195, 0, 20.8776, 0, 25.6585, 0, 20.8776, 0, 20.8776, 6.78762, 6.05574,
158 									0, 12.0324, 6.78762, 6.05574, 6.78762, 6.05574, 23.5776, 0.0790433, 13.5782, 0.0790433, 23.5776, 0.0790433, 23.5776, 0.0790433,
159 									41.1015, 6.29542, 33.671, 0.0790433, 41.1015, 6.29542, 41.1015, 6.29542, 50.185, 20.0796, 46.6972, 10.9156, 50.185, 20.0796,
160 									50.185, 20.0796, 58.7165, 6.37446, 53.2118, 11.0763, 58.7165, 6.37446, 58.7165, 6.37446, 76.3314, 0, 66.332, 0, 76.3314, 0,
161 									76.3314, 0, 93.1184, 5.9359, 86.2398, 0, 93.1184, 5.9359, 93.1184, 5.9359, 100, 20.0796, 100, 11.8718, 100, 20.0796, 100,
162 									20.0796, 95.9632, 35.0213, 100, 27.2521, 95.9632, 35.0213, 95.9632, 35.0213, 80.3682, 55.3788, 91.9265, 42.7879, 80.3682,
163 									55.3788, 80.3682, 55.3788, 58.4405, 82.4702, 65.3221, 71.8733, 58.4405, 82.4702, 58.4405, 82.4702, 50.185, 100, 53.0268, 90.8361};
164 	static qreal AutoShapes19[] = {50.5178, 88.7331, 50.5178, 88.7331, 33.2052, 100, 44.7028, 100, 33.2052, 100, 33.2052, 100, 17.7654, 93.5724, 24.0951, 100,
165 									17.7654, 93.5724, 17.7654, 93.5724, 11.3695, 77.865, 11.3695, 87.1427, 11.3695, 77.865, 11.3695, 77.865, 16.9261, 64.2803,
166 									11.3695, 71.0408, 16.9261, 64.2803, 16.9261, 64.2803, 4.58708, 57.2568, 9.30233, 62.6898, 4.58708, 57.2568, 4.58708, 57.2568,
167 									0, 43.935, 0, 51.7559, 0, 43.935, 0, 43.935, 5.81292, 28.4948, 0, 35.1875, 5.81292, 28.4948, 5.81292, 28.4948, 20.2191, 21.8021,
168 									11.6279, 21.8021, 20.2191, 21.8021, 20.2191, 21.8021, 29.0708, 23.857, 24.1612, 21.8021, 29.0708, 23.857, 29.0708, 23.857,
169 									28.8124, 17.23, 28.8124, 18.0253, 28.8124, 17.23, 28.8124, 17.23, 35.8532, 4.57206, 28.8124, 9.60853, 35.8532, 4.57206, 35.8532,
170 									4.57206, 49.8708, 0, 42.1189, 0, 49.8708, 0, 49.8708, 0, 65.2465, 6.62694, 59.5618, 0, 65.2465, 6.62694, 65.2465, 6.62694,
171 									70.4145, 21.0726, 70.4145, 12.5244, 70.4145, 21.0726, 70.4145, 21.0726, 70.3483, 23.1932, 70.4145, 22.1329, 70.3483, 23.1932,
172 									70.3483, 23.1932, 79.3282, 20.8733, 75.1938, 20.8733, 79.3282, 20.8733, 79.3282, 20.8733, 94.0568, 27.3687, 88.0496, 20.8733,
173 									94.0568, 27.3687, 94.0568, 27.3687, 100, 43.0083, 100, 33.9957, 100, 43.0083, 100, 43.0083, 95.4129, 55.9314, 100, 50.4305,
174 									95.4129, 55.9314, 95.4129, 55.9314, 83.5928, 63.3535, 90.892, 61.4301, 83.5928, 63.3535, 83.5928, 63.3535, 89.5359, 77.5999,
175 									89.5359, 69.9805, 89.5359, 77.5999, 89.5359, 77.5999, 83.076, 93.3073, 89.5359, 86.6125, 83.076, 93.3073, 83.076, 93.3073,
176 									67.9587, 100, 76.5499, 100, 67.9587, 100, 67.9587, 100, 50.5178, 88.7331, 56.9116, 100,  -1, -1, -1, -1, -1, -1, -1, -1,
177 									49.7426, 40.0267, 49.7426, 40.0267, 41.6661, 43.5385, 45.0915, 40.0267, 41.6661, 43.5385, 41.6661, 43.5385, 38.2429, 51.8216,
178 									38.2429, 47.0502, 38.2429, 51.8216, 38.2429, 51.8216, 41.6661, 59.9733, 38.2429, 56.4615, 41.6661, 59.9733, 41.6661, 59.9733,
179 									49.7426, 63.485, 45.0915, 63.485, 49.7426, 63.485, 49.7426, 63.485, 57.8171, 60.039, 54.3938, 63.485, 57.8171, 60.039, 57.8171,
180 									60.039, 61.2403, 51.8216, 61.2403, 56.5273, 61.2403, 51.8216, 61.2403, 51.8216, 57.8171, 43.5385, 61.2403, 47.1838, 57.8171,
181 									43.5385, 57.8171, 43.5385, 49.7426, 40.0267, 54.2636, 40.0267};
182 	static qreal AutoShapes20[] = {50, 0, 50, 0, 100, 33.3333, 100, 33.3333, 100, 33.3333, 100, 33.3333, 75, 33.3333, 75, 33.3333, 75, 33.3333, 75, 33.3333, 75,
183 									66.6667, 75, 66.6667, 75, 66.6667, 75, 66.6667, 100, 66.6667, 100, 66.6667, 100, 66.6667, 100, 66.6667, 50, 100, 50, 100, 50,
184 									100, 50, 100, 0, 66.6667, 0, 66.6667, 0, 66.6667, 0, 66.6667, 25, 66.6667, 25, 66.6667, 25, 66.6667, 25, 66.6667, 25, 33.3333,
185 									25, 33.3333, 25, 33.3333, 25, 33.3333, 0, 33.3333, 0, 33.3333, 0, 33.3333, 0, 33.3333, 50, 0, 50, 0};
186 	static qreal AutoShapes21[] = {0, 49.9858, 0, 49.9858, 19.8923, 30.0652, 19.8923, 30.0652, 19.8923, 30.0652, 19.8923, 30.0652, 19.8923, 39.813,
187 									 19.8923, 39.813, 19.8923, 39.813, 19.8923, 39.813, 39.813, 39.813, 39.813, 39.813, 39.813, 39.813, 39.813, 39.813, 39.813,
188 									 19.8923, 39.813, 19.8923, 39.813, 19.8923, 39.813, 19.8923, 30.0652, 19.8923, 30.0652, 19.8923, 30.0652, 19.8923, 30.0652,
189 									 19.8923, 49.9858, 0, 49.9858, 0, 49.9858, 0, 49.9858, 0, 69.9065, 19.8923, 69.9065, 19.8923, 69.9065, 19.8923, 69.9065,
190 									 19.8923, 60.1587, 19.8923, 60.1587, 19.8923, 60.1587, 19.8923, 60.1587, 19.8923, 60.1587, 39.813, 60.1587, 39.813, 60.1587,
191 									 39.813, 60.1587, 39.813, 80.0793, 39.813, 80.0793, 39.813, 80.0793, 39.813, 80.0793, 39.813, 80.0793, 30.0652, 80.0793,
192 									 30.0652, 80.0793, 30.0652, 80.0793, 30.0652, 100, 49.9858, 100, 49.9858, 100, 49.9858, 100, 49.9858, 80.0793, 69.9065,
193 									 80.0793, 69.9065, 80.0793, 69.9065, 80.0793, 69.9065, 80.0793, 60.1587, 80.0793, 60.1587, 80.0793, 60.1587, 80.0793, 60.1587,
194 									 60.1587, 60.1587, 60.1587, 60.1587, 60.1587, 60.1587, 60.1587, 60.1587, 60.1587, 80.0793, 60.1587, 80.0793, 60.1587, 80.0793,
195 									 60.1587, 80.0793, 69.9065, 80.0793, 69.9065, 80.0793, 69.9065, 80.0793, 69.9065, 80.0793, 49.9858, 100, 49.9858, 100, 49.9858,
196 									 100, 49.9858, 100, 30.0652, 80.0793, 30.0652, 80.0793, 30.0652, 80.0793, 30.0652, 80.0793, 39.813, 80.0793, 39.813, 80.0793,
197 									 39.813, 80.0793, 39.813, 80.0793, 39.813, 60.1587, 39.813, 60.1587, 39.813, 60.1587, 39.813, 60.1587, 19.8923, 60.1587, 19.8923,
198 									 60.1587, 19.8923, 60.1587, 19.8923, 60.1587, 19.8923, 69.9065, 19.8923, 69.9065, 19.8923, 69.9065, 19.8923, 69.9065, 0,
199 									 49.9858, 0, 49.9858};
200 	static qreal AutoShapes22[] = {0, 50, 0, 50, 33.3333, 0, 33.3333, 0, 33.3333, 0, 33.3333, 0, 33.3333, 25, 33.3333, 25, 33.3333, 25, 33.3333, 25, 66.6667,
201 									25, 66.6667, 25, 66.6667, 25, 66.6667, 25, 66.6667, 0, 66.6667, 0, 66.6667, 0, 66.6667, 0, 100, 50, 100, 50, 100, 50, 100, 50,
202 									66.6667, 100, 66.6667, 100, 66.6667, 100, 66.6667, 100, 66.6667, 75, 66.6667, 75, 66.6667, 75, 66.6667, 75, 33.3333, 75, 33.3333,
203 									75, 33.3333, 75, 33.3333, 75, 33.3333, 100, 33.3333, 100, 33.3333, 100, 33.3333, 100, 0, 50, 0, 50};
204 	static qreal AutoShapes23[] = {100, 50.0376, 100, 50.0376, 85.373, 85.373, 100, 70.7434, 85.373, 85.373, 85.373, 85.373, 50.0402, 100, 70.7459, 100, 50.0402,
205 									100, 50.0402, 100, 14.6672, 85.373, 29.3344, 100, 14.6672, 85.373, 14.6672, 85.373, 0, 50.0376, 0, 70.7434, 0, 50.0376, 0,
206 									50.0376, 14.6672, 14.627, 0, 29.2541, 14.6672, 14.627, 14.6672, 14.627, 50.0402, 0, 29.3344, 0, 50.0402, 0, 50.0402, 0, 85.373,
207 									14.627, 70.7459, 0, 85.373, 14.627, 85.373, 14.627, 100, 50.0376, 100, 29.2541, 100, 50.0376, 100, 50.0376, 100, 50.0376, 100,
208 									50.0376, -1, -1, -1, -1, -1, -1, -1, -1,
209 									37.1775, 39.6848, 37.1775, 39.6848, 35.3328, 35.1772, 37.1775, 37.0194, 35.3328, 35.1772, 35.3328, 35.1772, 30.8227, 33.3325,
210 									33.4906, 33.3325, 30.8227, 33.3325, 30.8227, 33.3325, 26.3528, 35.1772, 28.2351, 33.3325, 26.3528, 35.1772, 26.3528, 35.1772,
211 									24.4704, 39.6848, 24.4704, 37.0194, 24.4704, 39.6848, 24.4704, 39.6848, 26.3528, 44.1572, 24.4704, 42.2749, 26.3528, 44.1572,
212 									26.3528, 44.1572, 30.8227, 46.0396, 28.2351, 46.0396, 30.8227, 46.0396, 30.8227, 46.0396, 35.3328, 44.1572, 33.4906, 46.0396,
213 									35.3328, 44.1572, 35.3328, 44.1572, 37.1775, 39.6848, 37.1775, 42.2749, 37.1775, 39.6848, 37.1775, 39.6848, 37.1775, 39.6848,
214 									37.1775, 39.6848, -1, -1, -1, -1, -1, -1, -1, -1,
215 									75.5296, 39.6848, 75.5296, 39.6848, 73.6849, 35.1772, 75.5296, 37.0194, 73.6849, 35.1772, 73.6849, 35.1772, 69.1773, 33.3325,
216 									71.8427, 33.3325, 69.1773, 33.3325, 69.1773, 33.3325, 64.7048, 35.1772, 66.5872, 33.3325, 64.7048, 35.1772, 64.7048, 35.1772,
217 									62.8225, 39.6848, 62.8225, 37.0194, 62.8225, 39.6848, 62.8225, 39.6848, 64.7048, 44.1572, 62.8225, 42.2749, 64.7048, 44.1572,
218 									64.7048, 44.1572, 69.1773, 46.0396, 66.5872, 46.0396, 69.1773, 46.0396, 69.1773, 46.0396, 73.6849, 44.1572, 71.8427, 46.0396,
219 									73.6849, 44.1572, 73.6849, 44.1572, 75.5296, 39.6848, 75.5296, 42.2749, 75.5296, 39.6848, 75.5296, 39.6848, 75.5296, 39.6848,
220 									75.5296, 39.6848, -1, -1, -1, -1, -1, -1, -1, -1,
221 									26.9802, 66.1179, 26.9802, 66.1179, 36.6278, 77.4897, 30.903, 73.5669, 36.6278, 77.4897, 36.6278, 77.4897, 50.0402, 81.41,
222 									42.3527, 81.41, 50.0402, 81.41, 50.0402, 81.41, 63.4123, 77.4897, 57.6473, 81.41, 63.4123, 77.4897, 63.4123, 77.4897, 73.0976,
223 									66.1179, 69.1773, 73.5669, 73.0976, 66.1179, 73.0976, 66.1179, 68.1558, 63.2943, 68.1558, 63.2943, 68.1558, 63.2943, 68.1558,
224 									63.2943, 50.0402, 74.5884, 62.0395, 74.5884, 50.0402, 74.5884, 50.0402, 74.5884, 31.8442, 63.2943, 38.0383, 74.5884, 31.8442,
225 									63.2943, 31.8442, 63.2943, 26.9802, 66.1179, 26.9802, 66.1179};
226 	static qreal AutoShapes24[] = {0, 50, 4.81928, 25, 38.5542, 0, 19.2771, 0, 38.5542, 0, 38.5542, 0, 85.5422, 0, 85.5422, 0, 85.5422, 0, 100, 12.5, 85.5422,
227 									100, 100, 87.5, 85.5422, 100, 85.5422, 100, 38.5542, 100, 38.5542, 100, 38.5542, 100, 19.2771, 100, 0, 50, 4.81928, 75};
228 	static qreal AutoShapes25[] = {0, 16.8052, 0, 16.8052, 50, 16.8052, 21.5158, 33.7102, 50, 16.8052, 78.5196, 0, 100, 16.8052, 100, 16.8052, 100, 16.8052,
229 									100, 16.8052, 100, 83.0956, 100, 83.0956, 100, 83.0956, 100, 83.0956, 50, 83.0527, 78.5196, 66.2904, 50, 83.0527, 21.5158,
230 									99.9999, 0, 83.0956, 0, 83.0956, 0, 83.0956, 0, 83.0956, 0, 16.8052, 0, 16.8052};
231 	static qreal AutoShapes26[] = {52.381, 100, 52.381, 100, 19.0476, 100, 19.0476, 100, 19.0476, 100, 0, 66.6667, 19.0476, 0, 0, 33.3333, 19.0476, 0, 19.0476,
232 									0, 100, 0, 100, 0, 100, 0, 80.9524, 33.3333, 100, 100, 80.9524, 66.6667, 100, 100, 100, 100, 52.381, 100, 52.381, 100};
233 	static qreal AutoShapes27[] = {0, 50, 0, 50, 20, 0, 20, 0, 20, 0, 20, 0, 80, 0, 80, 0, 80, 0, 80, 0, 100, 50, 100, 50, 100, 50, 100, 50, 80, 100, 80, 100,
234 									80, 100, 80, 100, 20, 100, 20, 100, 20, 100, 20, 100, 0, 50, 0, 50};
235 	static qreal AutoShapes28[] = {0, 0, 10.9237, 0, 100, 0, 100, 0, 100, 0, 100, 0, 100, 81.2792, 100, 81.2792, 100, 81.2792, 100, 81.2792, 50, 81.2792, 78.4724,
236 									62.5558, 50, 81.2792, 21.5276, 100, 0, 81.2792, 0, 81.2792, 0, 81.2792, 0, 81.2792, 0, 0, 0, 18.0791};
237 	static qreal AutoShapes29[] = {0, 100, 0, 100, 0, 50, 0, 50, 0, 50, 0, 50, 20, 0, 20, 0, 20, 0, 20, 0, 80, 0, 80, 0, 80, 0, 80, 0, 100, 50, 100, 50, 100, 50,
238 									100, 50, 100, 100, 100, 100, 100, 100, 100, 100, 0, 100, 0, 100};
239 	static qreal AutoShapes30[] = {0, 50, 0, 50, 20, 0, 20, 0, 20, 0, 20, 0, 100, 0, 100, 0, 100, 0, 100, 0, 100, 100, 100, 100, 100, 100, 100, 100, 0, 100, 0,
240 									100, 0, 100, 0, 100, 0, 50, 0, 50};
241 	static qreal AutoShapes31[] = {50, 100, 50, 100, 25, 100, 25, 100, 25, 100, 16.6667, 100, 0, 50, 0, 66.6666, 0, 50, 0, 33.3334, 25, 0, 16.6667, 0, 25, 0, 25,
242 									0, 75, 0, 75, 0, 75, 0, 83.3333, 0, 100, 50, 100, 33.3334, 100, 50, 100, 66.6666, 75, 100, 83.3333, 100, 75, 100, 75, 100, 50,
243 									100, 50, 100};
244 	static qreal AutoShapes32[] = {20, 0, 35, 0, 40, 0, 30, 0, 40, 0, 50, 0, 50, 20, 25, 20, 50, 20, 75, 20, 60, 0, 50, 0, 60, 0, 70, 0, 80, 0, 75, 0, 80, 0, 80,
245 									5, 80, 20, 80, 10, 80, 20, 80, 30, 100, 30, 100, 5, 100, 30, 100, 55, 80, 40, 80, 30, 80, 40, 80, 50, 80, 60, 80, 55, 80, 60,
246 									75, 60, 60, 60, 70, 60, 60, 60, 50, 60, 50, 40, 75, 40, 50, 40, 25, 40, 40, 60, 50, 60, 40, 60, 30, 60, 20, 60, 25, 60, 20, 60,
247 									20, 55, 20, 40, 20, 50, 20, 40, 20, 30, 0, 30, 0, 55, 0, 30, 0, 5, 20, 20, 20, 30, 20, 20, 20, 10, 20, 0, 20, 5};
248 	static qreal AutoShapes33[] = {0, 0, 18.75, 0, 25, 0, 12.5, 0, 25, 0, 37.5, 0, 37.5, 25, 6.25, 25, 37.5, 25, 68.75, 25, 50, 0, 37.5, 0, 50, 0, 62.5, 0, 75,
249 									0, 68.75, 0, 75, 0, 75, 6.25, 75, 25, 75, 12.5, 75, 25, 75, 37.5, 100, 37.5, 100, 6.25, 100, 37.5, 100, 68.75, 75, 50, 75,
250 									37.5, 75, 50, 75, 62.5, 75, 75, 75, 68.75, 75, 75, 68.75, 75, 50, 75, 62.5, 75, 50, 75, 37.5, 75, 37.5, 100, 68.75, 100, 37.5,
251 									100, 6.25, 100, 25, 75, 37.5, 75, 25, 75, 12.5, 75, 0, 75, 6.25, 75, 0, 75, 0, 68.75, 0, 50, 0, 62.5, 0, 50, 0, 37.5, 25, 37.5,
252 									25, 68.75, 25, 37.5, 25, 6.25, 0, 25, 0, 37.5, 0, 25, 0, 12.5, 0, 0, 0, 6.25};
253 	static qreal AutoShapes34[] = {0, 0, 18.75, 0, 25, 0, 12.5, 0, 25, 0, 37.5, 0, 37.5, 25, 6.25, 25, 37.5, 25, 68.75, 25, 50, 0, 37.5, 0, 50, 0, 62.5, 0, 75,
254 									0, 68.75, 0, 75, 0, 75, 6.25, 75, 25, 75, 12.5, 75, 25, 75, 37.5, 100, 37.5, 100, 6.25, 100, 37.5, 100, 68.75, 75, 50, 75,
255 									37.5, 75, 50, 75, 62.5, 75, 75, 75, 68.75, 75, 75, 68.75, 75, 50, 75, 62.5, 75, 50, 75, 37.5, 75, 37.5, 50, 68.75, 50, 37.5,
256 									50, 6.25, 50, 25, 75, 37.5, 75, 25, 75, 12.5, 75, 0, 75, 6.25, 75, 0, 75, 0, 68.75, 0, 50, 0, 62.5, 0, 50, 0, 37.5, 25, 37.5,
257 									25, 68.75, 25, 37.5, 25, 6.25, 0, 25, 0, 37.5, 0, 25, 0, 12.5, 0, 0, 0, 6.25};
258 	static qreal AutoShapes35[] = {0, 0, 25, 0, 33.3333, 0, 16.6667, 0, 33.3333, 0, 50, 0, 50, 33.3333, 8.33333, 33.3333, 50, 33.3333, 91.6667, 33.3333, 66.6667,
259 									0, 50, 0, 66.6667, 0, 83.3333, 0, 100, 0, 91.6667, 0, 100, 0, 100, 8.33333, 100, 33.3333, 100, 16.6667, 100, 33.3333, 100, 50,
260 									66.6667, 50, 66.6667, 8.33333, 66.6667, 50, 66.6667, 91.6667, 100, 66.6667, 100, 50, 100, 66.6667, 100, 83.3333, 100, 100, 100,
261 									91.6667, 100, 100, 91.6667, 100, 66.6667, 100, 83.3333, 100, 66.6667, 100, 50, 100, 50, 66.6667, 91.6667, 66.6667, 50, 66.6667,
262 									8.33333, 66.6667, 33.3333, 100, 50, 100, 33.3333, 100, 16.6667, 100, 0, 100, 8.33333, 100, 0, 100, 0, 91.6667, 0, 66.6667, 0,
263 									83.3333, 0, 66.6667, 0, 50, 33.3333, 50, 33.3333, 91.6667, 33.3333, 50, 33.3333, 8.33333, 0, 33.3333, 0, 50, 0, 33.3333, 0,
264 									16.6667, 0, 0, 0, 8.33333};
265 	static qreal AutoShapes36[] = {20, 20, 35, 20, 40, 20, 30, 20, 40, 20, 50, 20, 50, 0, 25, 0, 50, 0, 75, 0, 60, 20, 50, 20, 60, 20, 70, 20, 80, 20, 75, 20, 80,
266 									20, 80, 25, 80, 40, 80, 30, 80, 40, 80, 50, 60, 50, 60, 25, 60, 50, 60, 75, 80, 60, 80, 50, 80, 60, 80, 70, 80, 80, 80, 75, 80,
267 									80, 75, 80, 60, 80, 70, 80, 60, 80, 50, 80, 50, 100, 75, 100, 50, 100, 25, 100, 40, 80, 50, 80, 40, 80, 30, 80, 20, 80, 25, 80,
268 									20, 80, 20, 75, 20, 60, 20, 70, 20, 60, 20, 50, 0, 50, 0, 75, 0, 50, 0, 25, 20, 40, 20, 50, 20, 40, 20, 30, 20, 20, 20, 25};
269 	static qreal AutoShapes37[] = {20, 20, 35, 20, 40, 20, 30, 20, 40, 20, 50, 20, 50, 0, 25, 0, 50, 0, 75, 0, 60, 20, 50, 20, 60, 20, 70, 20, 80, 20, 75, 20, 80,
270 									20, 80, 25, 80, 40, 80, 30, 80, 40, 80, 50, 100, 50, 100, 25, 100, 50, 100, 75, 80, 60, 80, 50, 80, 60, 80, 70, 80, 80, 80, 75,
271 									80, 80, 75, 80, 60, 80, 70, 80, 60, 80, 50, 80, 50, 100, 75, 100, 50, 100, 25, 100, 40, 80, 50, 80, 40, 80, 30, 80, 20, 80, 25,
272 									80, 20, 80, 20, 75, 20, 60, 20, 70, 20, 60, 20, 50, 0, 50, 0, 75, 0, 50, 0, 25, 20, 40, 20, 50, 20, 40, 20, 30, 20, 20, 20, 25};
273 	static qreal AutoShapes38[] = {0, 0, 18.75, 0, 75, 0, 68.75, 0, 75, 0, 75, 6.25, 75, 25, 75, 12.5, 75, 25, 75, 37.5, 100, 37.5, 100, 6.25, 100, 37.5, 100,
274 									68.75, 75, 50, 75, 37.5, 75, 50, 75, 62.5, 75, 75, 75, 68.75, 75, 75, 68.75, 75, 50, 75, 62.5, 75, 50, 75, 37.5, 75, 37.5, 50,
275 									68.75, 50, 37.5, 50, 6.25, 50, 25, 75, 37.5, 75, 25, 75, 12.5, 75, 0, 75, 6.25, 75, 0, 75, 0, 68.75, 0, 0, 0, 6.25};
276 	static qreal AutoShapes39[] = {0, 0, 18.75, 0, 75, 0, 68.75, 0, 75, 0, 75, 6.25, 75, 25, 75, 12.5, 75, 25, 75, 37.5, 100, 37.5, 100, 6.25, 100, 37.5, 100,
277 									68.75, 75, 50, 75, 37.5, 75, 50, 75, 62.5, 75, 75, 75, 68.75, 75, 75, 68.75, 75, 50, 75, 62.5, 75, 50, 75, 37.5, 75, 37.5, 50,
278 									68.75, 50, 37.5, 50, 6.25, 50, 25, 75, 37.5, 75, 25, 75, 12.5, 75, 0, 75, 6.25, 75, 0, 75, 0, 68.75, 0, 50, 0, 62.5, 0, 50, 0,
279 									37.5, 25, 37.5, 25, 68.75, 25, 37.5, 25, 6.25, 0, 25, 0, 37.5, 0, 25, 0, 12.5, 0, 0, 0, 6.25};
280 	static qreal AutoShapes40[] = {0, 0, 25, 0, 100, 0, 91.6667, 0, 100, 0, 100, 8.33333, 100, 33.3333, 100, 16.6667, 100, 33.3333, 100, 50, 66.6667, 50, 66.6667,
281 									8.33333, 66.6667, 50, 66.6667, 91.6667, 100, 66.6667, 100, 50, 100, 66.6667, 100, 83.3333, 100, 100, 100, 91.6667, 100, 100,
282 									91.6667, 100, 66.6667, 100, 83.3333, 100, 66.6667, 100, 50, 100, 50, 66.6667, 91.6667, 66.6667, 50, 66.6667, 8.33333, 66.6667,
283 									33.3333, 100, 50, 100, 33.3333, 100, 16.6667, 100, 0, 100, 8.33333, 100, 0, 100, 0, 91.6667, 0, 0, 0, 8.33333};
284 	static qreal AutoShapes41[] = {0, 0, 25, 0, 100, 0, 91.6667, 0, 100, 0, 100, 8.33333, 100, 33.3333, 100, 16.6667, 100, 33.3333, 100, 50, 66.6667, 50, 66.6667,
285 									8.33333, 66.6667, 50, 66.6667, 91.6667, 100, 66.6667, 100, 50, 100, 66.6667, 100, 83.3333, 100, 100, 100, 91.6667, 100, 100,
286 									91.6667, 100, 66.6667, 100, 83.3333, 100, 66.6667, 100, 50, 100, 50, 66.6667, 91.6667, 66.6667, 50, 66.6667, 8.33333, 66.6667,
287 									33.3333, 100, 50, 100, 33.3333, 100, 16.6667, 100, 0, 100, 8.33333, 100, 0, 100, 0, 91.6667, 0, 66.6667, 0, 83.3333, 0, 66.6667,
288 									0, 50, 33.3333, 50, 33.3333, 91.6667, 33.3333, 50, 33.3333, 8.33333, 0, 33.3333, 0, 50, 0, 33.3333, 0, 16.6667, 0, 0, 0, 8.33333};
289 	static qreal AutoShapes42[] = {0, 0, 18.75, 0, 75, 0, 68.75, 0, 75, 0, 75, 6.25, 75, 25, 75, 12.5, 75, 25, 75, 37.5, 100, 37.5, 100, 6.25, 100, 37.5, 100,
290 									68.75, 75, 50, 75, 37.5, 75, 50, 75, 62.5, 75, 75, 75, 68.75, 75, 75, 68.75, 75, 50, 75, 62.5, 75, 50, 75, 37.5, 75, 37.5, 100,
291 									68.75, 100, 37.5, 100, 6.25, 100, 25, 75, 37.5, 75, 25, 75, 12.5, 75, 0, 75, 6.25, 75, 0, 75, 0, 68.75, 0, 0, 0, 6.25};
292 	static qreal AutoShapes43[] = {20, 0, 35, 0, 80, 0, 75, 0, 80, 0, 80, 5, 80, 20, 80, 10, 80, 20, 80, 30, 100, 30, 100, 5, 100, 30, 100, 55, 80, 40, 80, 30,
293 									80, 40, 80, 50, 80, 60, 80, 55, 80, 60, 75, 60, 60, 60, 70, 60, 60, 60, 50, 60, 50, 40, 75, 40, 50, 40, 25, 40, 40, 60, 50,
294 									60, 40, 60, 30, 60, 20, 60, 25, 60, 20, 60, 20, 55, 20, 40, 20, 50, 20, 40, 20, 30, 0, 30, 0, 55, 0, 30, 0, 5, 20, 20, 20, 30,
295 									20, 20, 20, 10, 20, 0, 20, 5};
296 	static qreal AutoShapes44[] = {40.8712, 24.5328, 40.8712, 24.5328, 40.475, 24.8729, 40.8712, 24.8729, 40.475, 24.8729, 40.475, 24.8729, 40.1368, 24.8168,
297 									40.3629, 24.8729, 40.1368, 24.8168, 40.1368, 24.8168, 39.6266, 24.3917, 39.9106, 24.759, 39.6266, 24.3917, 39.6266, 24.3917,
298 									39.3444, 23.4601, 39.3444, 24.0245, 39.3444, 23.4601, 39.3444, 23.4601, 39.5145, 23.1201, 39.3444, 23.1201, 39.5145, 23.1201,
299 									39.5145, 23.1201, 40.3611, 23.5723, 39.8528, 23.1201, 40.3611, 23.5723, 40.3611, 23.5723, 40.8712, 24.5328, 40.8712, 24.0245,
300 									40.8712, 24.5328, 40.8712, 24.5328, 40.8712, 24.5328, 40.8712, 24.5328,
301 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
302 									35.1043, 21.255, 35.1043, 21.255, 33.4093, 18.7678, 34.7099, 18.7678, 33.4093, 18.7678, 33.4093, 18.7678, 32.901, 18.8799,
303 									33.3532, 18.7678, 32.901, 18.8799, 32.901, 18.8799, 33.1271, 19.6161, 33.1271, 19.4461, 33.1271, 19.6161, 33.1271, 19.6161,
304 									33.8055, 19.6722, 33.2953, 19.4461, 33.8055, 19.6722, 33.8055, 19.6722, 34.3699, 21.3672, 34.1998, 20.3506, 34.3699, 21.3672,
305 									34.3699, 21.3672, 35.1043, 21.255, 35.1043, 21.255, 35.1043, 21.255, 35.1043, 21.255, 35.1043, 21.255, 35.1043, 21.255,
306 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
307 									46.6942, 19.5583, 46.6942, 19.5583, 47.7108, 21.3672, 47.3146, 19.5583, 47.7108, 21.3672, 47.7108, 21.3672, 48.3891, 21.255,
308 									48.3891, 21.255, 48.3891, 21.255, 48.3891, 21.255, 48.2191, 20.3506, 48.277, 20.915, 48.2191, 20.3506, 48.2191, 20.3506,
309 									47.7669, 19.2761, 48.163, 19.7844, 47.7669, 19.2761, 47.7669, 19.2761, 46.7502, 18.7678, 47.3725, 18.7678, 46.7502, 18.7678,
310 									46.7502, 18.7678, 46.2419, 18.8799, 46.6942, 18.7678, 46.2419, 18.8799, 46.2419, 18.8799, 46.4102, 19.4461, 46.3541, 19.2761,
311 									46.4102, 19.4461, 46.4102, 19.4461, 46.468, 19.6161, 46.468, 19.6161, 46.468, 19.6161, 46.468, 19.6161, 46.6942, 19.5583,
312 									46.468, 19.5583, 46.6942, 19.5583, 46.6942, 19.5583, 46.6942, 19.5583, 46.6942, 19.5583,
313 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
314 									36.1227, 24.5328, 36.1227, 24.5328, 36.6871, 23.7134, 36.1227, 24.0245, 36.6871, 23.7134, 36.6871, 23.7134, 37.7055, 23.4023,
315 									37.2533, 23.4023, 37.7055, 23.4023, 37.7055, 23.4023, 37.8177, 23.5723, 37.8177, 23.4023, 37.8177, 23.5723, 37.8177, 23.5723,
316 									37.0833, 24.8729, 37.8177, 24.1385, 37.0833, 24.8729, 37.0833, 24.8729, 36.461, 25.043, 36.8571, 25.043, 36.461, 25.043,
317 									36.461, 25.043, 36.1227, 24.5328, 36.1227, 25.043, 36.1227, 24.5328, 36.1227, 24.5328, 36.1227, 24.5328, 36.1227, 24.5328,
318 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
319 									33.0132, 24.5328, 33.0132, 24.5328, 31.2042, 21.3672, 31.2042, 23.5162, 31.2042, 21.3672, 31.2042, 21.3672, 31.8536, 18.9088,
320 									31.2042, 19.8983, 31.8536, 18.9088, 31.8536, 18.9088, 33.5215, 17.9194, 32.5048, 17.9194, 33.5215, 17.9194, 33.5215, 17.9194,
321 									35.2743, 19.1078, 34.5399, 17.9194, 35.2743, 19.1078, 35.2743, 19.1078, 36.0088, 21.8773, 36.0088, 20.2945, 36.0088, 21.8773,
322 									36.0088, 21.8773, 35.9798, 22.2156, 36.0088, 21.9895, 35.9798, 22.2156, 35.9798, 22.2156, 35.9527, 22.5557, 35.9527, 22.4417,
323 									35.9527, 22.5557, 35.9527, 22.5557, 36.1499, 22.4706, 36.0088, 22.5557, 36.1499, 22.4706, 36.1499, 22.4706, 36.4049, 22.3856,
324 									36.2928, 22.3856, 36.4049, 22.3856, 36.4049, 22.3856, 36.745, 20.1245, 36.745, 22.3856, 36.745, 20.1245, 36.745, 20.1245,
325 									35.9237, 17.2428, 36.745, 18.7117, 35.9237, 17.2428, 35.9237, 17.2428, 33.2953, 15.7721, 35.1043, 15.7721, 33.2953, 15.7721,
326 									33.2953, 15.7721, 30.922, 17.3839, 31.6564, 15.7721, 30.922, 17.3839, 30.922, 17.3839, 30.1876, 21.1411, 30.1876, 18.9939,
327 									30.1876, 21.1411, 30.1876, 21.1411, 31.8826, 25.2112, 30.1876, 23.064, 31.8826, 25.2112, 31.8826, 25.2112, 33.0132, 24.5328,
328 									32.5609, 24.929, 33.0132, 24.5328, 33.0132, 24.5328, 33.0132, 24.5328, 33.0132, 24.5328,
329 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
330 									74.2805, 71.2831, 74.2805, 71.2831, 74.7327, 70.8308, 74.7327, 71.2831, 74.7327, 70.8308, 74.7327, 70.8308, 73.291, 68.2875,
331 									74.7327, 69.7563, 73.291, 68.2875, 73.291, 68.2875, 68.6836, 66.4225, 71.8493, 66.8168, 68.6836, 66.4225, 68.6836, 66.4225,
332 									67.5241, 66.3085, 68.0053, 66.3646, 67.5241, 66.3085, 67.5241, 66.3085, 65.9141, 66.1385, 67.0447, 66.2524, 65.9141, 66.1385,
333 									65.9141, 66.1385, 67.497, 57.9422, 67.497, 61.56, 67.497, 57.9422, 67.497, 57.9422, 65.433, 50.3681, 67.497, 53.1937, 65.433,
334 									50.3681, 65.433, 50.3681, 61.2218, 46.9764, 63.369, 47.5407, 61.2218, 46.9764, 61.2218, 46.9764, 60.9956, 47.1446, 60.9956,
335 									47.1446, 60.9956, 47.1446, 60.9956, 47.1446, 60.6556, 47.7108, 60.7695, 47.3146, 60.6556, 47.7108, 60.6556, 47.7108, 64.9518,
336 									51.8098, 63.369, 48.5013, 64.9518, 51.8098, 64.9518, 51.8098, 66.5346, 58.1683, 66.5346, 55.1166, 66.5346, 58.1683, 66.5346,
337 									58.1683, 64.7836, 66.4225, 66.5346, 61.1639, 64.7836, 66.4225, 64.7836, 66.4225, 60.9396, 70.0964, 62.8046, 67.213, 60.9396,
338 									70.0964, 60.9396, 70.0964, 61.2778, 70.5487, 60.9396, 70.5487, 61.2778, 70.5487, 61.2778, 70.5487, 62.1262, 69.7003, 61.4479,
339 									70.5487, 62.1262, 69.7003, 62.1262, 69.7003, 63.9062, 68.0053, 62.8046, 68.8519, 63.9062, 68.0053, 63.9062, 68.0053, 66.2524,
340 									67.1569, 65.0097, 67.1569, 66.2524, 67.1569, 66.2524, 67.1569, 70.8019, 67.8081, 69.0219, 67.1569, 70.8019, 67.8081, 70.8019,
341 									67.8081, 73.092, 69.2209, 72.5837, 68.4575, 73.092, 69.2209, 73.092, 69.2209, 73.8843, 70.6337, 73.6021, 69.9825, 73.8843,
342 									70.6337, 73.8843, 70.6337, 74.2805, 71.2831, 74.1665, 71.2831, 74.2805, 71.2831, 74.2805, 71.2831, 74.2805, 71.2831, 74.2805,
343 									71.2831,
344 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
345 									43.9229, 23.234, 43.9229, 23.234, 43.4146, 21.6512, 43.5846, 22.5557, 43.4146, 21.6512, 43.4146, 21.6512, 44.234, 18.7678,
346 									43.4146, 19.7844, 44.234, 18.7678, 44.234, 18.7678, 46.184, 17.7493, 45.0535, 17.7493, 46.184, 17.7493, 46.184, 17.7493,
347 									48.3891, 19.0228, 47.4847, 17.7493, 48.3891, 19.0228, 48.3891, 19.0228, 49.2936, 21.5933, 49.2936, 20.2945, 49.2936, 21.5933,
348 									49.2936, 21.5933, 47.0885, 24.5907, 49.2936, 23.8545, 47.0885, 24.5907, 47.0885, 24.5907, 48.0219, 24.9019, 47.4847, 24.759,
349 									48.0219, 24.9019, 48.0219, 24.9019, 49.4636, 25.4373, 48.5592, 25.043, 49.4636, 25.4373, 49.4636, 25.4373, 50.2542, 20.6328,
350 									50.2542, 22.8379, 50.2542, 20.6328, 50.2542, 20.6328, 49.0096, 16.3655, 50.2542, 17.8072, 49.0096, 16.3655, 49.0096, 16.3655,
351 									46.0158, 14.9238, 47.7669, 14.9238, 46.0158, 14.9238, 46.0158, 14.9238, 43.0473, 16.0543, 44.149, 14.9238, 43.0473, 16.0543,
352 									43.0473, 16.0543, 41.9457, 18.7678, 41.9457, 17.1849, 41.9457, 18.7678, 41.9457, 18.7678, 42.8502, 22.7818, 41.9457, 21.085,
353 									42.8502, 22.7818, 42.8502, 22.7818, 43.9229, 23.234, 43.3585, 23.064, 43.9229, 23.234, 43.9229, 23.234, 43.9229, 23.234,
354 									43.9229, 23.234,
355 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
356 									47.8247, 28.4908, 47.8247, 28.4908, 37.6495, 32.9571, 41.5495, 32.9571, 37.6495, 32.9571, 37.6495, 32.9571, 31.0921, 30.0736,
357 									34.0877, 32.9571, 31.0921, 30.0736, 31.0921, 30.0736, 32.1087, 31.8826, 31.6004, 31.3743, 32.1087, 31.8826, 32.1087, 31.8826,
358 									34.0316, 33.7476, 34.0316, 33.7476, 34.0316, 33.7476, 34.0316, 33.7476, 38.6661, 35.8387, 36.1227, 35.8387, 38.6661, 35.8387,
359 									38.6661, 35.8387, 46.8063, 32.2787, 42.0578, 35.8387, 46.8063, 32.2787, 46.8063, 32.2787, 49.6898, 30.0736, 49.6898, 30.0736,
360 									49.6898, 30.0736, 49.6898, 30.0736, 51.1025, 27.7564, 51.1025, 29.2252, 51.1025, 27.7564, 51.1025, 27.7564, 50.9904, 27.078,
361 									51.1025, 27.5303, 50.9904, 27.078, 50.9904, 27.078, 45.5618, 24.4768, 50.2542, 26.3418, 45.5618, 24.4768, 45.5618, 24.4768,
362 									39.0622, 22.6117, 40.8712, 22.6117, 39.0622, 22.6117, 39.0622, 22.6117, 34.0587, 24.5347, 37.3655, 22.6117, 34.0587, 24.5347,
363 									34.0587, 24.5347, 30.752, 28.3768, 30.752, 26.4557, 30.752, 28.3768, 30.752, 28.3768, 31.3743, 29.5074, 30.752, 28.773,
364 									31.3743, 29.5074, 31.3743, 29.5074, 37.4233, 32.2208, 34.0877, 32.2208, 37.4233, 32.2208, 37.4233, 32.2208, 47.4286, 27.6985,
365 									41.2673, 32.2208, 47.4286, 27.6985, 47.4286, 27.6985, 47.6529, 28.0675, 47.5407, 27.7564, 47.6529, 28.0675, 47.6529, 28.0675,
366 									47.8247, 28.4908, 47.7669, 28.3768, 47.8247, 28.4908, 47.8247, 28.4908, 47.8247, 28.4908, 47.8247, 28.4908,
367 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
368 									55.5127, 95.2515, 55.5127, 95.2515, 61.7301, 98.9834, 57.6039, 98.9834, 61.7301, 98.9834, 61.7301, 98.9834, 67.3269, 96.7783,
369 									64.7257, 98.9834, 67.3269, 96.7783, 67.3269, 96.7783, 73.092, 91.9177, 73.092, 91.9177, 73.092, 91.9177, 73.092, 91.9177,
370 									77.2472, 89.1753, 75.071, 90.3348, 77.2472, 89.1753, 77.2472, 89.1753, 80.6389, 87.5635, 79.4233, 88.0158, 80.6389, 87.5635,
371 									80.6389, 87.5635, 82.7301, 86.3479, 81.8545, 87.1113, 82.7301, 86.3479, 82.7301, 86.3479, 83.7195, 84.3979, 83.6074, 85.5864,
372 									83.7195, 84.3979, 83.7195, 84.3979, 82.7301, 82.5039, 83.4373, 83.2112, 82.7301, 82.5039, 82.7301, 82.5039, 81.1472, 81.4312,
373 									82.0246, 81.7984, 81.1472, 81.4312, 81.1472, 81.4312, 79.3672, 80.5828, 80.2717, 81.0622, 79.3672, 80.5828, 79.3672, 80.5828,
374 									77.6144, 78.915, 78.4628, 80.1017, 77.6144, 78.915, 77.6144, 78.915, 76.3156, 75.8054, 76.7678, 77.7283, 76.3156, 75.8054,
375 									76.3156, 75.8054, 75.9755, 73.8843, 75.9755, 73.8843, 75.9755, 73.8843, 75.9755, 73.8843, 75.4111, 71.9614, 75.6372, 72.5276,
376 									75.4111, 71.9614, 75.4111, 71.9614, 75.071, 71.8493, 75.2971, 71.8493, 75.071, 71.8493, 75.071, 71.8493, 73.5443, 72.6687,
377 									74.4487, 71.8493, 73.5443, 72.6687, 73.5443, 72.6687, 71.7914, 74.5066, 72.6398, 73.4882, 71.7914, 74.5066, 71.7914, 74.5066,
378 									69.6152, 76.3716, 70.9448, 75.5232, 69.6152, 76.3716, 69.6152, 76.3716, 66.8747, 77.2182, 68.2875, 77.2182, 66.8747, 77.2182,
379 									66.8747, 77.2182, 62.1823, 75.071, 63.369, 77.2182, 62.1823, 75.071, 62.1823, 75.071, 60.8817, 71.397, 61.2218, 73.4882,
380 									60.8817, 71.397, 60.8817, 71.397, 59.1867, 70.5487, 59.9211, 70.5487, 59.1867, 70.5487, 59.1867, 70.5487, 56.6433, 75.7494,
381 									56.6433, 70.5487, 56.6433, 75.7494, 56.6433, 75.7494, 56.6994, 76.8239, 56.6433, 76.4838, 56.6994, 76.8239, 56.6994, 76.8239,
382 									56.6994, 80.6679, 56.6994, 80.6679, 56.6994, 80.6679, 56.6994, 80.6679, 56.8694, 83.6074, 56.8694, 82.1946, 56.8694, 83.6074,
383 									56.8694, 83.6074, 56.8116, 85.0491, 56.8694, 84.5119, 56.8116, 85.0491, 56.8116, 85.0491, 56.6994, 86.0386, 56.7555, 85.5864,
384 									56.6994, 86.0386, 56.6994, 86.0386, 56.4172, 87.9886, 56.6433, 86.4908, 56.4172, 87.9886, 56.4172, 87.9886, 55.965, 91.5215,
385 									56.1911, 89.4864, 55.965, 91.5215, 55.965, 91.5215, 55.5127, 95.1955, 55.5127, 95.1955, 55.5127, 95.1955, 55.5127, 95.1955,
386 									55.5127, 95.2515, 55.5127, 95.2515, 55.5127, 95.2515, 55.5127, 95.2515, 55.5127, 95.2515, 55.5127, 95.2515,
387 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
388 									7.51795, 93.5005, 7.51795, 93.5005, 14.9798, 95.3366, 11.1358, 94.0649, 14.9798, 95.3366, 14.9798, 95.3366, 21.5083,
389 									97.5977, 18.8238, 96.6082, 21.5083, 97.5977, 21.5083, 97.5977, 25.4952, 98.5872, 24.1946, 98.5872, 25.4952, 98.5872,
390 									25.4952, 98.5872, 31.3182, 95.5916, 28.9991, 98.5872, 31.3182, 95.5916, 31.3182, 95.5916, 31.6564, 93.3304, 31.6564,
391 									94.5171, 31.6564, 93.3304, 31.6564, 93.3304, 26.0035, 81.4584, 31.6564, 88.6941, 26.0035, 81.4584, 26.0035, 81.4584,
392 									23.7423, 78.4628, 23.7423, 78.4628, 23.7423, 78.4628, 23.7423, 78.4628, 21.9895, 75.5811, 23.064, 77.5022, 21.9895,
393 									75.5811, 21.9895, 75.5811, 20.2095, 72.5566, 20.9168, 73.6582, 20.2095, 72.5566, 20.2095, 72.5566, 18.1744, 70.3225,
394 									19.5022, 71.4531, 18.1744, 70.3225, 18.1744, 70.3225, 15.2059, 68.7958, 16.8467, 69.1919, 15.2059, 68.7958, 15.2059,
395 									68.7958, 12.8037, 69.8142, 13.6231, 69.1359, 12.8037, 69.8142, 12.8037, 69.8142, 11.8703, 71.1709, 11.9842, 70.4926,
396 									11.8703, 71.1709, 11.8703, 71.1709, 11.5881, 72.5566, 11.7581, 71.8493, 11.5881, 72.5566, 11.5881, 72.5566, 10.9676,
397 									73.6003, 11.4198, 73.2621, 10.9676, 73.6003, 10.9676, 73.6003, 9.32689, 74.1105, 10.2892, 73.9404, 9.32689, 74.1105,
398 									9.32689, 74.1105, 8.42242, 74.1394, 8.98862, 74.1105, 8.42242, 74.1394, 8.42242, 74.1394, 7.51795, 74.1665, 7.85803,
399 									74.1665, 7.51795, 74.1665, 7.51795, 74.1665, 3.95796, 74.6748, 4.91851, 74.1665, 3.95796, 74.6748, 3.95796, 74.6748,
400 									2.71341, 77.8966, 2.71341, 76.0876, 2.71341, 77.8966, 2.71341, 77.8966, 3.10957, 80.5828, 2.71341, 78.745, 3.10957,
401 									80.5828, 3.10957, 80.5828, 3.50573, 83.4934, 3.50573, 82.4207, 3.50573, 83.4934, 3.50573, 83.4934, 2.88345, 86.3769,
402 									3.50573, 85.0762, 2.88345, 86.3769, 2.88345, 86.3769, 1.6389, 88.7231, 2.26117, 87.6775, 1.6389, 88.7231, 1.6389, 88.7231,
403 									1.01843, 90.7871, 1.01843, 89.7686, 1.01843, 90.7871, 1.01843, 90.7871, 7.51795, 93.5005, 1.58282, 92.6521, 7.51795, 93.5005,
404 									7.51795, 93.5005, 7.51795, 93.5005, 7.51795, 93.5005,
405 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
406 									18.5416, 63.425, 18.5416, 63.425, 20.3506, 55.6538, 18.5416, 60.0333, 20.3506, 55.6538, 20.3506, 55.6538, 23.9124,
407 									49.2375, 22.1595, 51.2726, 23.9124, 49.2375, 23.9124, 49.2375, 23.4041, 48.9535, 23.7984, 49.1236, 23.4041, 48.9535,
408 									23.4041, 48.9535, 23.064, 48.7274, 23.064, 48.7274, 23.064, 48.7274, 23.064, 48.7274, 19.5872, 55.2016, 21.7073, 50.3681,
409 									19.5872, 55.2016, 19.5872, 55.2016, 17.4671, 63.0868, 17.4671, 60.0333, 17.4671, 63.0868, 17.4671, 63.0868, 17.7493,
410 									65.518, 17.4671, 64.6135, 17.7493, 65.518, 17.7493, 65.518, 19.4461, 67.9763, 18.0333, 66.4225, 19.4461, 67.9763,
411 									19.4461, 67.9763, 23.7423, 71.6792, 20.8589, 69.5302, 23.7423, 71.6792, 23.7423, 71.6792, 27.2481, 73.9404, 27.2481,
412 									73.9404, 27.2481, 73.9404, 27.2481, 73.9404, 33.0692, 80.78, 33.0692, 78.801, 33.0692, 80.78, 33.0692, 80.78, 31.7686,
413 									82.9562, 33.0692, 81.7984, 31.7686, 82.9562, 31.7686, 82.9562, 29.3392, 84.1157, 30.4698, 84.1157, 29.3392, 84.1157,
414 									29.3392, 84.1157, 29.2252, 84.3418, 29.2252, 84.1157, 29.2252, 84.3418, 29.2252, 84.3418, 30.2437, 86.3208, 29.2252,
415 									84.3979, 30.2437, 86.3208, 30.2437, 86.3208, 38.6661, 89.1464, 32.5048, 89.1464, 38.6661, 89.1464, 38.6661, 89.1464,
416 									55.681, 80.2156, 49.6337, 89.1464, 55.681, 80.2156, 55.681, 80.2156, 55.6249, 77.0789, 55.681, 77.7283, 55.6249, 77.0789,
417 									55.6249, 77.0789, 55.5688, 75.8615, 55.5688, 76.4277, 55.5688, 75.8615, 55.5688, 75.8615, 56.4443, 71.057, 55.5688,
418 									72.6398, 56.4443, 71.057, 56.4443, 71.057, 58.6784, 69.4741, 57.3217, 69.4741, 58.6784, 69.4741, 58.6784, 69.4741,
419 									60.6556, 70.2086, 59.5829, 69.4741, 60.6556, 70.2086, 60.6556, 70.2086, 61.2218, 63.4829, 61.2218, 66.4225, 61.2218,
420 									63.4829, 61.2218, 63.4829, 60.5434, 55.7389, 61.2218, 58.9606, 60.5434, 55.7389, 60.5434, 55.7389, 58.8756, 50.7643,
421 									59.8651, 52.5153, 58.8756, 50.7643, 58.8756, 50.7643, 56.8966, 47.6837, 57.8861, 49.0114, 56.8966, 47.6837, 56.8966,
422 									47.6837, 55.1727, 44.6862, 55.9071, 46.3541, 55.1727, 44.6862, 55.1727, 44.6862, 54.3822, 40.8712, 54.4382, 43.0184,
423 									54.3822, 40.8712, 54.3822, 40.8712, 51.9781, 35.8116, 53.1376, 38.3839, 51.9781, 35.8116, 51.9781, 35.8116, 49.8019,
424 									31.3164, 50.8204, 33.2393, 49.8019, 31.3164, 49.8019, 31.3164, 46.8063, 33.4654, 46.8063, 33.4654, 46.8063, 33.4654,
425 									46.8063, 33.4654, 38.6661, 36.9693, 42.1139, 36.9693, 38.6661, 36.9693, 38.6661, 36.9693, 33.8055, 35.1604, 35.4444,
426 									36.9693, 33.8055, 35.1604, 33.8055, 35.1604, 32.1087, 33.5215, 32.1087, 33.5215, 32.1087, 33.5215, 32.1087, 33.5215,
427 									30.8659, 37.1393, 31.8265, 35.2182, 30.8659, 37.1393, 30.8659, 37.1393, 28.887, 41.0973, 28.887, 41.0973, 28.887,
428 									41.0973, 28.887, 41.0973, 27.3602, 45.7336, 27.5303, 44.4891, 27.3602, 45.7336, 27.3602, 45.7336, 27.078, 47.1446,
429 									27.1902, 46.9764, 27.078, 47.1446, 27.078, 47.1446, 24.5907, 51.9509, 24.5907, 51.9509, 24.5907, 51.9509, 24.5907,
430 									51.9509, 20.5767, 65.404, 20.5767, 59.695, 20.5767, 65.404, 20.5767, 65.404, 20.7467, 67.7213, 20.5767, 66.5346,
431 									20.7467, 67.7213, 20.7467, 67.7213, 18.5416, 63.425, 18.5416, 66.1963, 18.5416, 63.425, 18.5416, 63.425, 18.5416,
432 									63.425, 18.5416, 63.425,
433 									-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
434 									42.284, 94.7432, 42.284, 94.7432, 32.2787, 96.4961, 35.9527, 94.7432, 32.2787, 96.4961, 32.2787, 96.4961, 32.2226,
435 									96.3821, 32.2226, 96.3821, 32.2226, 96.3821, 32.2226, 96.3821, 26.2296, 99.3795, 30.0736, 99.3795, 26.2296, 99.3795,
436 									26.2296, 99.3795, 18.5977, 97.5417, 23.7984, 99.3795, 18.5977, 97.5417, 18.5977, 97.5417, 9.38478, 94.7993, 13.397,
437 									95.7038, 9.38478, 94.7993, 9.38478, 94.7993, 7.57403, 94.461, 8.98862, 94.6871, 7.57403, 94.461, 7.57403, 94.461,
438 									5.0596, 94.0088, 6.16125, 94.2349, 5.0596, 94.0088, 5.0596, 94.0088, 2.68447, 93.3576, 3.95796, 93.7827, 2.68447,
439 									93.3576, 2.68447, 93.3576, 0.705487, 92.312, 1.41278, 92.9343, 0.705487, 92.312, 0.705487, 92.312, 0, 90.8992, 0,
440 									91.6915, 0, 90.8992, 0, 90.8992, 0.340081, 89.2042, 0, 90.1087, 0.340081, 89.2042, 0.340081, 89.2042, 1.01662, 88.1297,
441 									0.678352, 88.638, 1.01662, 88.1297, 1.01662, 88.1297, 1.60996, 87.1402, 1.3567, 87.6214, 1.60996, 87.1402, 1.60996,
442 									87.1402, 2.06219, 86.2068, 1.86502, 86.6591, 2.06219, 86.2068, 2.06219, 86.2068, 2.37333, 85.2463, 2.26117, 85.7546,
443 									2.37333, 85.2463, 2.37333, 85.2463, 2.48729, 84.2297, 2.48729, 84.738, 2.48729, 84.2297, 2.48729, 84.2297, 2.09113,
444 									81.1762, 2.48729, 83.7774, 2.09113, 81.1762, 2.09113, 81.1762, 1.69679, 77.8966, 1.69679, 78.5749, 1.69679, 77.8966,
445 									1.69679, 77.8966, 2.76949, 74.4505, 1.69679, 75.6933, 2.76949, 74.4505, 2.76949, 74.4505, 4.91851, 73.206, 3.844, 73.206,
446 									4.91851, 73.206, 4.91851, 73.206, 8.70643, 73.206, 8.70643, 73.206, 8.70643, 73.206, 8.70643, 73.206, 10.1753, 72.6398,
447 									9.15866, 73.206, 10.1753, 72.6398, 10.1753, 72.6398, 10.7415, 71.2559, 10.5154, 71.8493, 10.7415, 71.2559, 10.7415,
448 									71.2559, 11.0508, 70.4076, 10.9676, 70.6608, 11.0508, 70.4076, 11.0508, 70.4076, 11.2769, 69.8414, 11.1358, 70.1525,
449 									11.2769, 69.8414, 11.2769, 69.8414, 11.7581, 69.1359, 11.4198, 69.5302, 11.7581, 69.1359, 11.7581, 69.1359, 11.4198,
450 									66.9308, 11.1937, 68.3996, 11.4198, 66.9308, 11.4198, 66.9308, 13.1709, 61.8422, 11.4198, 65.1779, 13.1709, 61.8422,
451 									13.1709, 61.8422, 14.3594, 59.7511, 14.3594, 59.7511, 14.3594, 59.7511, 14.3594, 59.7511, 16.5916, 55.3698, 15.7721,
452 									57.2638, 16.5916, 55.3698, 16.5916, 55.3698, 18.3716, 49.2375, 17.411, 53.4759, 18.3716, 49.2375, 18.3716, 49.2375,
453 									22.1595, 42.5101, 19.1639, 45.8458, 22.1595, 42.5101, 22.1595, 42.5101, 24.6468, 39.5706, 24.6468, 39.5706, 24.6468,
454 									39.5706, 24.6468, 39.5706, 28.1236, 34.4549, 27.1902, 36.461, 28.1236, 34.4549, 28.1236, 34.4549, 29.057, 30.1297,
455 									29.057, 32.447, 29.057, 30.1297, 29.057, 30.1297, 28.5469, 24.2506, 29.057, 29.1692, 28.5469, 24.2506, 28.5469,
456 									24.2506, 28.0386, 14.5276, 28.0386, 19.3321, 28.0386, 14.5276, 28.0386, 14.5276, 28.688, 8.9036, 28.0386, 11.362,
457 									28.688, 8.9036, 28.688, 8.9036, 30.8641, 4.35231, 29.3392, 6.44344, 30.8641, 4.35231, 30.8641, 4.35231, 35.3015,
458 									1.13059, 32.3909, 2.26117, 35.3015, 1.13059, 35.3015, 1.13059, 42.34, 0, 38.2139, 0, 42.34, 0, 42.34, 0, 45.3085,
459 									0.255061, 43.7546, 0, 45.3085, 0.255061, 45.3085, 0.255061, 49.0096, 1.44173, 46.8624, 0.508312, 49.0096, 1.44173,
460 									49.0096, 1.44173, 52.8825, 3.844, 51.1586, 2.37333, 52.8825, 3.844, 52.8825, 3.844, 55.9921, 8.11129, 54.6083,
461 									5.31286, 55.9921, 8.11129, 55.9921, 8.11129, 57.7739, 14.5276, 57.3778, 10.9097, 57.7739, 14.5276, 57.7739, 14.5276,
462 									58.3944, 20.0955, 58.1122, 17.0149, 58.3944, 20.0955, 58.3944, 20.0955, 58.8466, 24.7029, 58.6784, 23.1761, 58.8466,
463 									24.7029, 58.8466, 24.7029, 59.496, 28.4058, 59.0167, 26.2296, 59.496, 28.4058, 59.496, 28.4058, 60.7967, 32.2787,
464 									59.9772, 30.5819, 60.7967, 32.2787, 60.7967, 32.2787, 63.0868, 36.2638, 61.6179, 33.9737, 63.0868, 36.2638, 63.0868,
465 									36.2638, 66.8186, 41.3795, 64.5574, 38.5521, 66.8186, 41.3795, 66.8186, 41.3795, 73.4592, 51.8659, 71.057, 46.6363,
466 									73.4592, 51.8659, 73.4592, 51.8659, 75.8633, 64.2174, 75.8633, 57.0938, 75.8633, 64.2174, 75.8633, 64.2174, 74.8449,
467 									70.8869, 75.8633, 67.6652, 74.8449, 70.8869, 74.8449, 70.8869, 76.3716, 71.5942, 75.8633, 70.8869, 76.3716, 71.5942,
468 									76.3716, 71.5942, 77.22, 74.6188, 76.8799, 72.3015, 77.22, 74.6188, 77.22, 74.6188, 77.7283, 77.05, 77.7283, 77.05,
469 									77.7283, 77.05, 77.7283, 77.05, 79.1411, 79.085, 77.9545, 78.1806, 79.1411, 79.085, 79.1411, 79.085, 81.5434, 80.5268,
470 									80.3278, 79.9895, 81.5434, 80.5268, 81.5434, 80.5268, 83.7756, 81.9956, 82.759, 81.0622, 83.7756, 81.9956, 83.7756,
471 									81.9956, 84.7941, 84.0596, 84.7941, 82.929, 84.7941, 84.0596, 84.7941, 84.0596, 83.9167, 86.6301, 84.7941, 85.6985,
472 									83.9167, 86.6301, 83.9167, 86.6301, 81.6845, 88.0447, 83.0412, 87.5635, 81.6845, 88.0447, 81.6845, 88.0447, 77.7555,
473 									89.9658, 80.3278, 88.5259, 77.7555, 89.9658, 77.7555, 89.9658, 72.6977, 93.5005, 75.185, 91.4075, 72.6977, 93.5005,
474 									72.6977, 93.5005, 69.4741, 96.326, 69.4741, 96.326, 69.4741, 96.326, 69.4741, 96.326, 65.6591, 99.1245, 67.2709,
475 									98.2489, 65.6591, 99.1245, 65.6591, 99.1245, 61.9562, 100, 64.0473, 100, 61.9562, 100, 61.9562, 100, 59.809, 99.7178,
476 									59.809, 99.7178, 59.809, 99.7178, 59.809, 99.7178, 54.5504, 95.7038, 55.681, 98.7012, 54.5504, 95.7038, 54.5504, 95.7038,
477 									42.284, 94.7432, 46.298, 94.7432};
478 	switch (a)
479 		{
480 		case 0:
481 			*n = 32;
482 			vals = AutoShapes0;
483 			break;
484 		case 1:
485 			*n = 32;
486 			vals = AutoShapes1;
487 			break;
488 		case 2:
489 			*n = 24;
490 			vals = AutoShapes2;
491 			break;
492 		case 3:
493 			*n = 96;
494 			vals = AutoShapes3;
495 			break;
496 		case 4:
497 			*n = 56;
498 			vals = AutoShapes4;
499 			break;
500 		case 5:
501 			*n = 56;
502 			vals = AutoShapes5;
503 			break;
504 		case 6:
505 			*n = 56;
506 			vals = AutoShapes6;
507 			break;
508 		case 7:
509 			*n = 56;
510 			vals = AutoShapes7;
511 			break;
512 		case 8:
513 			*n = 24;
514 			vals = AutoShapes8;
515 			break;
516 		case 9:
517 			*n = 24;
518 			vals = AutoShapes9;
519 			break;
520 		case 10:
521 			*n = 24;
522 			vals = AutoShapes10;
523 			break;
524 		case 11:
525 			*n = 24;
526 			vals = AutoShapes11;
527 			break;
528 		case 12:
529 			*n = 24;
530 			vals = AutoShapes12;
531 			break;
532 		case 13:
533 			*n = 24;
534 			vals = AutoShapes13;
535 			break;
536 		case 14:
537 			*n = 24;
538 			vals = AutoShapes14;
539 			break;
540 		case 15:
541 			*n = 24;
542 			vals = AutoShapes15;
543 			break;
544 		case 16:
545 			*n = 64;
546 			vals = AutoShapes16;
547 			break;
548 		case 17:
549 			*n = 68;
550 			vals = AutoShapes17;
551 			break;
552 		case 18:
553 			*n = 136;
554 			vals = AutoShapes18;
555 			break;
556 		case 19:
557 			*n = 264;
558 			vals = AutoShapes19;
559 			break;
560 		case 20:
561 			*n = 80;
562 			vals = AutoShapes20;
563 			break;
564 		case 21:
565 			*n = 192;
566 			vals = AutoShapes21;
567 			break;
568 		case 22:
569 			*n = 80;
570 			vals = AutoShapes22;
571 			break;
572 		case 23:
573 			*n = 304;
574 			vals = AutoShapes23;
575 			break;
576 		case 24:
577 			*n = 40;
578 			vals = AutoShapes24;
579 			break;
580 		case 25:
581 			*n = 48;
582 			vals = AutoShapes25;
583 			break;
584 		case 26:
585 			*n = 40;
586 			vals = AutoShapes26;
587 			break;
588 		case 27:
589 			*n = 48;
590 			vals = AutoShapes27;
591 			break;
592 		case 28:
593 			*n = 40;
594 			vals = AutoShapes28;
595 			break;
596 		case 29:
597 			*n = 48;
598 			vals = AutoShapes29;
599 			break;
600 		case 30:
601 			*n = 40;
602 			vals = AutoShapes30;
603 			break;
604 		case 31:
605 			*n = 56;
606 			vals = AutoShapes31;
607 			break;
608 		case 32:
609 			*n = 128;
610 			vals = AutoShapes32;
611 			break;
612 		case 33:
613 			*n = 128;
614 			vals = AutoShapes33;
615 			break;
616 		case 34:
617 			*n = 128;
618 			vals = AutoShapes34;
619 			break;
620 		case 35:
621 			*n = 128;
622 			vals = AutoShapes35;
623 			break;
624 		case 36:
625 			*n = 128;
626 			vals = AutoShapes36;
627 			break;
628 		case 37:
629 			*n = 128;
630 			vals = AutoShapes37;
631 			break;
632 		case 38:
633 			*n = 80;
634 			vals = AutoShapes38;
635 			break;
636 		case 39:
637 			*n = 104;
638 			vals = AutoShapes39;
639 			break;
640 		case 40:
641 			*n = 80;
642 			vals = AutoShapes40;
643 			break;
644 		case 41:
645 			*n = 104;
646 			vals = AutoShapes41;
647 			break;
648 		case 42:
649 			*n = 80;
650 			vals = AutoShapes42;
651 			break;
652 		case 43:
653 			*n = 104;
654 			vals = AutoShapes43;
655 			break;
656 		case 44:
657 			*n = 2344;
658 			vals = AutoShapes44;
659 			break;
660 		default:
661 			*n = 32;
662 			vals = AutoShapes0;
663 			break;
664 		}
665 	return vals;
666 }
667 
selForm(int a)668 void AutoformButtonGroup::selForm(int a)
669 {
670 	int n;
671 	qreal* AutoShapes;
672 	AutoShapes = getShapeData(a, &n);
673 	emit buttonClicked(a);
674 	emit FormSel(a, n, AutoShapes);
675 }
676 
getIconPixmap(int nr,int pixmapSize)677 QPixmap AutoformButtonGroup::getIconPixmap(int nr, int pixmapSize)
678 {
679 	if ((pixmapSize == 16) || (pixmapSize == 22))
680 	{
681 		if (nr < 18)
682 		{
683 			QString strSize = QString("%1").arg(pixmapSize);
684 			IconManager& im = IconManager::instance();
685 			switch (nr)
686 			{
687 				case 0:
688 					return im.loadPixmap(strSize + "/draw-rectangle.png");
689 				case 1:
690 					return im.loadPixmap(strSize + "/draw-ellipse.png");
691 				case 2:
692 					return im.loadPixmap(strSize + "/draw-triangle.png");
693 				case 3:
694 					return im.loadPixmap(strSize + "/draw-cross.png");
695 				case 4:
696 					return im.loadPixmap(strSize + "/draw-arrow-back.png");
697 				case 5:
698 					return im.loadPixmap(strSize + "/draw-arrow-forward.png");
699 				case 6:
700 					return im.loadPixmap(strSize + "/draw-arrow-up.png");
701 				case 7:
702 					return im.loadPixmap(strSize + "/draw-arrow-down.png");
703 				case 8:
704 					return im.loadPixmap(strSize + "/draw-halfcircle1.png");
705 				case 9:
706 					return im.loadPixmap(strSize + "/draw-halfcircle2.png");
707 				case 10:
708 					return im.loadPixmap(strSize + "/draw-halfcircle3.png");
709 				case 11:
710 					return im.loadPixmap(strSize + "/draw-halfcircle4.png");
711 				case 12:
712 					return im.loadPixmap(strSize + "/draw-triangle1.png");
713 				case 13:
714 					return im.loadPixmap(strSize + "/draw-triangle2.png");
715 				case 14:
716 					return im.loadPixmap(strSize + "/draw-triangle3.png");
717 				case 15:
718 					return im.loadPixmap(strSize + "/draw-triangle4.png");
719 				case 16:
720 					return im.loadPixmap(strSize + "/draw-square-inverted-corners.png");
721 				case 17:
722 					return im.loadPixmap(strSize + "/draw-donut.png");
723 			}
724 		}
725 	}
726 
727 	QImage Ico(32, 32, QImage::Format_ARGB32_Premultiplied);
728 	Ico.fill(0);
729 	int count = 0;
730 	qreal* AutoShapes;
731 	FPointArray Path;
732 	Path.resize(0);
733 	AutoShapes = getShapeData(nr, &count);
734 	for (int i = 0; i < count - 3; i += 4)
735 	{
736 		if (AutoShapes[i] < 0)
737 		{
738 			Path.setMarker();
739 			continue;
740 		}
741 		qreal x1 = 28 * AutoShapes[i] / 100.0;
742 		qreal y1 = 28 * AutoShapes[i + 1] / 100.0;
743 		qreal x2 = 28 * AutoShapes[i + 2] / 100.0;
744 		qreal y2 = 28 * AutoShapes[i + 3] / 100.0;
745 		Path.addPoint(x1, y1);
746 		Path.addPoint(x2, y2);
747 	}
748 
749 	ScPainter *painter = new ScPainter(&Ico, 32, 32);
750 	painter->setBrush(qRgb(238, 238, 236));
751 	painter->setPen(qRgb(137, 139, 134), 2.0, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
752 	painter->setFillMode(ScPainter::Solid);
753 	painter->setStrokeMode(ScPainter::Solid);
754 	painter->translate(2.0, 2.0);
755 	painter->setupPolygon(&Path);
756 	painter->drawPolygon();
757 	painter->drawPolyLine();
758 	painter->end();
759 	delete painter;
760 
761 	return QPixmap::fromImage(Ico.scaled(16, 16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
762 }
763 
changeEvent(QEvent * e)764 void AutoformButtonGroup::changeEvent(QEvent *e)
765 {
766 	if (e->type() == QEvent::LanguageChange)
767 		languageChange();
768 	else
769 		QMenu::changeEvent(e);
770 }
771 
languageChange()772 void AutoformButtonGroup::languageChange()
773 {
774 	menu1->setTitle( tr("Default Shapes"));
775 	menu2->setTitle( tr("Arrows"));
776 	menu3->setTitle( tr("Flow Chart"));
777 	menu4->setTitle( tr("Jigsaw"));
778 	menu5->setTitle( tr("Specials"));
779 }
780