/ bin / app / src / shape / netlogo3.rs
netlogo3.rs
  1  /* This file is part of DarkFi (https://dark.fi)
  2   *
  3   * Copyright (C) 2020-2025 Dyne.org foundation
  4   *
  5   * This program is free software: you can redistribute it and/or modify
  6   * it under the terms of the GNU Affero General Public License as
  7   * published by the Free Software Foundation, either version 3 of the
  8   * License, or (at your option) any later version.
  9   *
 10   * This program is distributed in the hope that it will be useful,
 11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
 12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 13   * GNU Affero General Public License for more details.
 14   *
 15   * You should have received a copy of the GNU Affero General Public License
 16   * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 17   */
 18  
 19  use crate::{
 20      mesh::Color,
 21      ui::{ShapeVertex, VectorShape},
 22  };
 23  pub fn create_netlogo3(color: Color) -> VectorShape {
 24      VectorShape {
 25          verts: vec![
 26              ShapeVertex::from_xy(-0.142341, 0.515982, color),
 27              ShapeVertex::from_xy(-0.101938, 0.504233, color),
 28              ShapeVertex::from_xy(-0.144884, 0.490086, color),
 29              ShapeVertex::from_xy(-0.105618, 0.478168, color),
 30              ShapeVertex::from_xy(-0.155439, 0.451718, color),
 31              ShapeVertex::from_xy(-0.116172, 0.4398, color),
 32              ShapeVertex::from_xy(-0.177259, 0.404146, color),
 33              ShapeVertex::from_xy(-0.141135, 0.384678, color),
 34              ShapeVertex::from_xy(-0.208986, 0.360096, color),
 35              ShapeVertex::from_xy(-0.1773, 0.334021, color),
 36              ShapeVertex::from_xy(-0.237192, 0.33329, color),
 37              ShapeVertex::from_xy(-0.209285, 0.303205, color),
 38              ShapeVertex::from_xy(-0.265118, 0.316591, color),
 39              ShapeVertex::from_xy(-0.226287, 0.29038, color),
 40              ShapeVertex::from_xy(-0.283232, 0.190078, color),
 41              ShapeVertex::from_xy(-0.238696, 0.205942, color),
 42              ShapeVertex::from_xy(-0.231742, 0.14301, color),
 43              ShapeVertex::from_xy(-0.181929, 0.154453, color),
 44              ShapeVertex::from_xy(-0.292931, 0.002946, color),
 45              ShapeVertex::from_xy(-0.2541, -0.012425, color),
 46              ShapeVertex::from_xy(-0.316607, -0.0397, color),
 47              ShapeVertex::from_xy(-0.281057, -0.061062, color),
 48              ShapeVertex::from_xy(-0.410458, -0.166927, color),
 49              ShapeVertex::from_xy(-0.394163, -0.21496, color),
 50              ShapeVertex::from_xy(-0.476211, -0.144676, color),
 51              ShapeVertex::from_xy(-0.467903, -0.190143, color),
 52              ShapeVertex::from_xy(-0.57591, -0.22241, color),
 53              ShapeVertex::from_xy(-0.534797, -0.241918, color),
 54              ShapeVertex::from_xy(-0.579048, -0.261776, color),
 55              ShapeVertex::from_xy(-0.539932, -0.281284, color),
 56              ShapeVertex::from_xy(-0.585323, -0.289732, color),
 57              ShapeVertex::from_xy(-0.549773, -0.314374, color),
 58              ShapeVertex::from_xy(-0.606005, -0.334803, color),
 59              ShapeVertex::from_xy(-0.570455, -0.359445, color),
 60              ShapeVertex::from_xy(-0.617701, -0.354771, color),
 61              ShapeVertex::from_xy(-0.583434, -0.379413, color),
 62              ShapeVertex::from_xy(-0.637769, -0.382085, color),
 63              ShapeVertex::from_xy(-0.605869, -0.409722, color),
 64              ShapeVertex::from_xy(-0.661018, -0.407045, color),
 65              ShapeVertex::from_xy(-0.629118, -0.434682, color),
 66              ShapeVertex::from_xy(-0.689374, -0.430227, color),
 67              ShapeVertex::from_xy(-0.658099, -0.458569, color),
 68              ShapeVertex::from_xy(-0.712908, -0.463317, color),
 69              ShapeVertex::from_xy(-0.681633, -0.49166, color),
 70              ShapeVertex::from_xy(-0.73958, -0.492841, color),
 71              ShapeVertex::from_xy(-0.708305, -0.521184, color),
 72              ShapeVertex::from_xy(-0.754271, -0.507104, color),
 73              ShapeVertex::from_xy(-0.722996, -0.535447, color),
 74              ShapeVertex::from_xy(-0.770816, -0.519656, color),
 75              ShapeVertex::from_xy(-0.739541, -0.547999, color),
 76              ShapeVertex::from_xy(-0.792639, -0.552603, color),
 77              ShapeVertex::from_xy(-0.761364, -0.580946, color),
 78              ShapeVertex::from_xy(-0.806759, -0.571146, color),
 79              ShapeVertex::from_xy(-0.775484, -0.599488, color),
 80              ShapeVertex::from_xy(-0.827298, -0.594537, color),
 81              ShapeVertex::from_xy(-0.796023, -0.62288, color),
 82              ShapeVertex::from_xy(-0.848122, -0.612651, color),
 83              ShapeVertex::from_xy(-0.816847, -0.640994, color),
 84              ShapeVertex::from_xy(-0.860531, -0.622778, color),
 85              ShapeVertex::from_xy(-0.827402, -0.64998, color),
 86              ShapeVertex::from_xy(-0.873938, -0.648451, color),
 87              ShapeVertex::from_xy(-0.840809, -0.673371, color),
 88              ShapeVertex::from_xy(-0.899327, -0.683396, color),
 89              ShapeVertex::from_xy(-0.888772, -0.719339, color),
 90              ShapeVertex::from_xy(-0.919865, -0.707215, color),
 91              ShapeVertex::from_xy(-0.786324, -0.663957, color),
 92              ShapeVertex::from_xy(-0.960943, -0.743586, color),
 93              ShapeVertex::from_xy(-0.858962, -0.715916, color),
 94              ShapeVertex::from_xy(-0.808043, -0.71777, color),
 95              ShapeVertex::from_xy(-0.82687, -0.715488, color),
 96              ShapeVertex::from_xy(-0.813852, -0.675225, color),
 97              ShapeVertex::from_xy(-0.825547, -0.673799, color),
 98              ShapeVertex::from_xy(-0.780515, -0.706502, color),
 99              ShapeVertex::from_xy(-0.759087, -0.655938, color),
100              ShapeVertex::from_xy(-0.755264, -0.697691, color),
101              ShapeVertex::from_xy(-0.732577, -0.651144, color),
102              ShapeVertex::from_xy(-0.73271, -0.693072, color),
103              ShapeVertex::from_xy(-0.704193, -0.649147, color),
104              ShapeVertex::from_xy(-0.703756, -0.691503, color),
105              ShapeVertex::from_xy(-0.679233, -0.649147, color),
106              ShapeVertex::from_xy(-0.682361, -0.691217, color),
107              ShapeVertex::from_xy(-0.649993, -0.636881, color),
108              ShapeVertex::from_xy(-0.673518, -0.692073, color),
109              ShapeVertex::from_xy(-0.644279, -0.679807, color),
110              ShapeVertex::from_xy(-0.625517, -0.629259, color),
111              ShapeVertex::from_xy(-0.619405, -0.671454, color),
112              ShapeVertex::from_xy(-0.599415, -0.625123, color),
113              ShapeVertex::from_xy(-0.592305, -0.66746, color),
114              ShapeVertex::from_xy(-0.576737, -0.623982, color),
115              ShapeVertex::from_xy(-0.568486, -0.665891, color),
116              ShapeVertex::from_xy(-0.561904, -0.623839, color),
117              ShapeVertex::from_xy(-0.551941, -0.665606, color),
118              ShapeVertex::from_xy(-0.538512, -0.612428, color),
119              ShapeVertex::from_xy(-0.528549, -0.654196, color),
120              ShapeVertex::from_xy(-0.505399, -0.603011, color),
121              ShapeVertex::from_xy(-0.499476, -0.644215, color),
122              ShapeVertex::from_xy(-0.465581, -0.598019, color),
123              ShapeVertex::from_xy(-0.459658, -0.639223, color),
124              ShapeVertex::from_xy(-0.41257, -0.598376, color),
125              ShapeVertex::from_xy(-0.414611, -0.639817, color),
126              ShapeVertex::from_xy(-0.366096, -0.605032, color),
127              ShapeVertex::from_xy(-0.376457, -0.64576, color),
128              ShapeVertex::from_xy(-0.333172, -0.61561, color),
129              ShapeVertex::from_xy(-0.343652, -0.655745, color),
130              ShapeVertex::from_xy(-0.310114, -0.625238, color),
131              ShapeVertex::from_xy(-0.315958, -0.66977, color),
132              ShapeVertex::from_xy(-0.292879, -0.618582, color),
133              ShapeVertex::from_xy(-0.289809, -0.664659, color),
134              ShapeVertex::from_xy(-0.28135, -0.612639, color),
135              ShapeVertex::from_xy(-0.277329, -0.657171, color),
136              ShapeVertex::from_xy(-0.262332, -0.606101, color),
137              ShapeVertex::from_xy(-0.256885, -0.648494, color),
138              ShapeVertex::from_xy(-0.249971, -0.602892, color),
139              ShapeVertex::from_xy(-0.23454, -0.642195, color),
140              ShapeVertex::from_xy(-0.233925, -0.593383, color),
141              ShapeVertex::from_xy(-0.21469, -0.630665, color),
142              ShapeVertex::from_xy(-0.217523, -0.516933, color),
143              ShapeVertex::from_xy(-0.197574, -0.623653, color),
144              ShapeVertex::from_xy(-0.183454, -0.555903, color),
145              ShapeVertex::from_xy(-0.033272, -0.496651, color),
146              ShapeVertex::from_xy(-0.03121, -0.538188, color),
147              ShapeVertex::from_xy(0.022525, -0.495796, color),
148              ShapeVertex::from_xy(0.024587, -0.537333, color),
149              ShapeVertex::from_xy(0.209086, -0.516677, color),
150              ShapeVertex::from_xy(0.174349, -0.555133, color),
151              ShapeVertex::from_xy(0.224832, -0.593526, color),
152              ShapeVertex::from_xy(0.188726, -0.623082, color),
153              ShapeVertex::from_xy(0.241948, -0.602255, color),
154              ShapeVertex::from_xy(0.21149, -0.632667, color),
155              ShapeVertex::from_xy(0.245884, -0.603624, color),
156              ShapeVertex::from_xy(0.223985, -0.641225, color),
157              ShapeVertex::from_xy(0.265567, -0.609957, color),
158              ShapeVertex::from_xy(0.244523, -0.647215, color),
159              ShapeVertex::from_xy(0.283368, -0.617317, color),
160              ShapeVertex::from_xy(0.262324, -0.654575, color),
161              ShapeVertex::from_xy(0.294835, -0.623136, color),
162              ShapeVertex::from_xy(0.273791, -0.660394, color),
163              ShapeVertex::from_xy(0.298258, -0.62519, color),
164              ShapeVertex::from_xy(0.279953, -0.664331, color),
165              ShapeVertex::from_xy(0.303051, -0.625532, color),
166              ShapeVertex::from_xy(0.293816, -0.666214, color),
167              ShapeVertex::from_xy(0.324328, -0.615024, color),
168              ShapeVertex::from_xy(0.306996, -0.67015, color),
169              ShapeVertex::from_xy(0.328164, -0.658408, color),
170              ShapeVertex::from_xy(0.346646, -0.608593, color),
171              ShapeVertex::from_xy(0.350348, -0.650462, color),
172              ShapeVertex::from_xy(0.376769, -0.601918, color),
173              ShapeVertex::from_xy(0.380471, -0.643787, color),
174              ShapeVertex::from_xy(0.40768, -0.598094, color),
175              ShapeVertex::from_xy(0.4057, -0.64008, color),
176              ShapeVertex::from_xy(0.460225, -0.598436, color),
177              ShapeVertex::from_xy(0.458246, -0.640422, color),
178              ShapeVertex::from_xy(0.497033, -0.602991, color),
179              ShapeVertex::from_xy(0.488189, -0.644083, color),
180              ShapeVertex::from_xy(0.532546, -0.613971, color),
181              ShapeVertex::from_xy(0.517715, -0.6533, color),
182              ShapeVertex::from_xy(0.553256, -0.623726, color),
183              ShapeVertex::from_xy(0.544244, -0.665794, color),
184              ShapeVertex::from_xy(0.581077, -0.624775, color),
185              ShapeVertex::from_xy(0.572221, -0.666115, color),
186              ShapeVertex::from_xy(0.608119, -0.627855, color),
187              ShapeVertex::from_xy(0.599263, -0.669196, color),
188              ShapeVertex::from_xy(0.632081, -0.633504, color),
189              ShapeVertex::from_xy(0.623225, -0.674845, color),
190              ShapeVertex::from_xy(0.65553, -0.642575, color),
191              ShapeVertex::from_xy(0.646674, -0.683916, color),
192              ShapeVertex::from_xy(0.671276, -0.649079, color),
193              ShapeVertex::from_xy(0.663961, -0.691276, color),
194              ShapeVertex::from_xy(0.691131, -0.648737, color),
195              ShapeVertex::from_xy(0.683815, -0.690933, color),
196              ShapeVertex::from_xy(0.708931, -0.64925, color),
197              ShapeVertex::from_xy(0.701615, -0.691447, color),
198              ShapeVertex::from_xy(0.737172, -0.652502, color),
199              ShapeVertex::from_xy(0.729856, -0.694699, color),
200              ShapeVertex::from_xy(0.760791, -0.657466, color),
201              ShapeVertex::from_xy(0.753476, -0.699662, color),
202              ShapeVertex::from_xy(0.785267, -0.666708, color),
203              ShapeVertex::from_xy(0.777951, -0.708905, color),
204              ShapeVertex::from_xy(0.805121, -0.674924, color),
205              ShapeVertex::from_xy(0.797805, -0.71712, color),
206              ShapeVertex::from_xy(0.819669, -0.673383, color),
207              ShapeVertex::from_xy(0.812354, -0.71558, color),
208              ShapeVertex::from_xy(0.831137, -0.673041, color),
209              ShapeVertex::from_xy(0.834604, -0.715409, color),
210              ShapeVertex::from_xy(0.84881, -0.62093, color),
211              ShapeVertex::from_xy(0.859251, -0.716778, color),
212              ShapeVertex::from_xy(0.885266, -0.679979, color),
213              ShapeVertex::from_xy(0.88869, -0.72157, color),
214              ShapeVertex::from_xy(0.917786, -0.714553, color),
215              ShapeVertex::from_xy(0.920525, -0.733551, color),
216              ShapeVertex::from_xy(0.858395, -0.639586, color),
217              ShapeVertex::from_xy(0.951333, -0.743649, color),
218              ShapeVertex::from_xy(0.816931, -0.649079, color),
219              ShapeVertex::from_xy(0.874484, -0.664917, color),
220              ShapeVertex::from_xy(0.803923, -0.637782, color),
221              ShapeVertex::from_xy(0.820056, -0.597824, color),
222              ShapeVertex::from_xy(0.775169, -0.614676, color),
223              ShapeVertex::from_xy(0.816054, -0.594019, color),
224              ShapeVertex::from_xy(0.773693, -0.609923, color),
225              ShapeVertex::from_xy(0.793306, -0.56819, color),
226              ShapeVertex::from_xy(0.75194, -0.583721, color),
227              ShapeVertex::from_xy(0.775677, -0.543543, color),
228              ShapeVertex::from_xy(0.734311, -0.559074, color),
229              ShapeVertex::from_xy(0.766606, -0.529851, color),
230              ShapeVertex::from_xy(0.727122, -0.545039, color),
231              ShapeVertex::from_xy(0.760787, -0.518383, color),
232              ShapeVertex::from_xy(0.709322, -0.53186, color),
233              ShapeVertex::from_xy(0.742986, -0.505204, color),
234              ShapeVertex::from_xy(0.692891, -0.517141, color),
235              ShapeVertex::from_xy(0.726555, -0.490485, color),
236              ShapeVertex::from_xy(0.677658, -0.500538, color),
237              ShapeVertex::from_xy(0.711322, -0.473883, color),
238              ShapeVertex::from_xy(0.66465, -0.484792, color),
239              ShapeVertex::from_xy(0.698314, -0.458136, color),
240              ShapeVertex::from_xy(0.654723, -0.470415, color),
241              ShapeVertex::from_xy(0.687531, -0.44393, color),
242              ShapeVertex::from_xy(0.649075, -0.461857, color),
243              ShapeVertex::from_xy(0.681712, -0.43503, color),
244              ShapeVertex::from_xy(0.645481, -0.455182, color),
245              ShapeVertex::from_xy(0.67846, -0.428184, color),
246              ShapeVertex::from_xy(0.633329, -0.446966, color),
247              ShapeVertex::from_xy(0.666308, -0.419968, color),
248              ShapeVertex::from_xy(0.619294, -0.435328, color),
249              ShapeVertex::from_xy(0.652273, -0.40833, color),
250              ShapeVertex::from_xy(0.605088, -0.421293, color),
251              ShapeVertex::from_xy(0.638067, -0.394295, color),
252              ShapeVertex::from_xy(0.592351, -0.406009, color),
253              ShapeVertex::from_xy(0.624788, -0.379456, color),
254              ShapeVertex::from_xy(0.575236, -0.384101, color),
255              ShapeVertex::from_xy(0.607672, -0.357547, color),
256              ShapeVertex::from_xy(0.558341, -0.357, color),
257              ShapeVertex::from_xy(0.594443, -0.335697, color),
258              ShapeVertex::from_xy(0.539389, -0.317094, color),
259              ShapeVertex::from_xy(0.578308, -0.300294, color),
260              ShapeVertex::from_xy(0.526631, -0.274203, color),
261              ShapeVertex::from_xy(0.567959, -0.267192, color),
262              ShapeVertex::from_xy(0.523722, -0.252466, color),
263              ShapeVertex::from_xy(0.56505, -0.245455, color),
264              ShapeVertex::from_xy(0.522523, -0.239458, color),
265              ShapeVertex::from_xy(0.56505, -0.220808, color),
266              ShapeVertex::from_xy(0.456471, -0.188193, color),
267              ShapeVertex::from_xy(0.463999, -0.142432, color),
268              ShapeVertex::from_xy(0.382284, -0.2121, color),
269              ShapeVertex::from_xy(0.399425, -0.163628, color),
270              ShapeVertex::from_xy(0.312042, -0.117457, color),
271              ShapeVertex::from_xy(0.342738, -0.087717, color),
272              ShapeVertex::from_xy(0.259342, -0.042536, color),
273              ShapeVertex::from_xy(0.296358, -0.021167, color),
274              ShapeVertex::from_xy(0.245294, -0.018382, color),
275              ShapeVertex::from_xy(0.282309, 0.002986, color),
276              ShapeVertex::from_xy(0.168397, 0.156116, color),
277              ShapeVertex::from_xy(0.219214, 0.144704, color),
278              ShapeVertex::from_xy(0.227056, 0.208366, color),
279              ShapeVertex::from_xy(0.272204, 0.19104, color),
280              ShapeVertex::from_xy(0.215472, 0.292904, color),
281              ShapeVertex::from_xy(0.253966, 0.31723, color),
282              ShapeVertex::from_xy(0.199205, 0.303502, color),
283              ShapeVertex::from_xy(0.233263, 0.330046, color),
284              ShapeVertex::from_xy(0.174378, 0.325519, color),
285              ShapeVertex::from_xy(0.206578, 0.3519, color),
286              ShapeVertex::from_xy(0.14776, 0.357313, color),
287              ShapeVertex::from_xy(0.178974, 0.384927, color),
288              ShapeVertex::from_xy(0.119909, 0.403648, color),
289              ShapeVertex::from_xy(0.155806, 0.426333, color),
290              ShapeVertex::from_xy(0.098236, 0.461047, color),
291              ShapeVertex::from_xy(0.139524, 0.470971, color),
292              ShapeVertex::from_xy(0.09051, 0.497913, color),
293              ShapeVertex::from_xy(0.132955, 0.499172, color),
294              ShapeVertex::from_xy(0.090263, 0.508265, color),
295              ShapeVertex::from_xy(0.131476, 0.519136, color),
296              ShapeVertex::from_xy(0.080651, 0.52601, color),
297              ShapeVertex::from_xy(0.121864, 0.536881, color),
298              ShapeVertex::from_xy(0.067095, 0.558544, color),
299              ShapeVertex::from_xy(0.108308, 0.569415, color),
300              ShapeVertex::from_xy(0.05773, 0.590338, color),
301              ShapeVertex::from_xy(0.097957, 0.600469, color),
302              ShapeVertex::from_xy(0.053786, 0.610548, color),
303              ShapeVertex::from_xy(0.094999, 0.621419, color),
304              ShapeVertex::from_xy(0.052308, 0.623118, color),
305              ShapeVertex::from_xy(0.09352, 0.633989, color),
306              ShapeVertex::from_xy(0.039984, 0.645546, color),
307              ShapeVertex::from_xy(0.081197, 0.656417, color),
308              ShapeVertex::from_xy(0.029879, 0.66896, color),
309              ShapeVertex::from_xy(0.071092, 0.679831, color),
310              ShapeVertex::from_xy(0.02076, 0.693607, color),
311              ShapeVertex::from_xy(0.061973, 0.704478, color),
312              ShapeVertex::from_xy(0.01312, 0.719979, color),
313              ShapeVertex::from_xy(0.054332, 0.73085, color),
314              ShapeVertex::from_xy(0.008683, 0.748815, color),
315              ShapeVertex::from_xy(0.049896, 0.759686, color),
316              ShapeVertex::from_xy(-0.005365, 0.772476, color),
317              ShapeVertex::from_xy(0.030672, 0.792466, color),
318              ShapeVertex::from_xy(-0.00482, 0.911509, color),
319              ShapeVertex::from_xy(0.019088, 0.818345, color),
320              ShapeVertex::from_xy(-0.016177, 0.855078, color),
321              ShapeVertex::from_xy(0.007257, 0.851125, color),
322              ShapeVertex::from_xy(0.001536, 0.759167, color),
323              ShapeVertex::from_xy(-0.045989, 0.783031, color),
324              ShapeVertex::from_xy(-0.035342, 0.803971, color),
325              ShapeVertex::from_xy(-0.020627, 0.745858, color),
326              ShapeVertex::from_xy(-0.06054, 0.761027, color),
327              ShapeVertex::from_xy(-0.023466, 0.727757, color),
328              ShapeVertex::from_xy(-0.06338, 0.742927, color),
329              ShapeVertex::from_xy(-0.02737, 0.705753, color),
330              ShapeVertex::from_xy(-0.067284, 0.720922, color),
331              ShapeVertex::from_xy(-0.034113, 0.685523, color),
332              ShapeVertex::from_xy(-0.074027, 0.700692, color),
333              ShapeVertex::from_xy(-0.042631, 0.662808, color),
334              ShapeVertex::from_xy(-0.082545, 0.677978, color),
335              ShapeVertex::from_xy(-0.052569, 0.640804, color),
336              ShapeVertex::from_xy(-0.092482, 0.655973, color),
337              ShapeVertex::from_xy(-0.060377, 0.625898, color),
338              ShapeVertex::from_xy(-0.10029, 0.641067, color),
339              ShapeVertex::from_xy(-0.065345, 0.619155, color),
340              ShapeVertex::from_xy(-0.105259, 0.634324, color),
341              ShapeVertex::from_xy(-0.066765, 0.604248, color),
342              ShapeVertex::from_xy(-0.106679, 0.619418, color),
343              ShapeVertex::from_xy(-0.069249, 0.586858, color),
344              ShapeVertex::from_xy(-0.109163, 0.602027, color),
345              ShapeVertex::from_xy(-0.075993, 0.563079, color),
346              ShapeVertex::from_xy(-0.115907, 0.578248, color),
347              ShapeVertex::from_xy(-0.082381, 0.544268, color),
348              ShapeVertex::from_xy(-0.122295, 0.559438, color),
349              ShapeVertex::from_xy(-0.092673, 0.521909, color),
350              ShapeVertex::from_xy(-0.132587, 0.537078, color),
351          ],
352          indices: vec![
353              1, 2, 0, 3, 4, 2, 4, 7, 6, 6, 9, 8, 8, 11, 10, 10, 13, 12, 12, 15, 14, 15, 16, 14, 16,
354              19, 18, 18, 21, 20, 21, 22, 20, 22, 25, 24, 25, 26, 24, 27, 28, 26, 29, 30, 28, 31, 32,
355              30, 33, 34, 32, 35, 36, 34, 36, 39, 38, 38, 41, 40, 41, 42, 40, 43, 44, 42, 44, 47, 46,
356              46, 49, 48, 49, 50, 48, 51, 52, 50, 53, 54, 52, 54, 57, 56, 56, 59, 58, 59, 60, 58, 60,
357              61, 62, 62, 61, 64, 64, 61, 66, 66, 61, 63, 63, 61, 67, 67, 61, 69, 69, 71, 68, 68, 71,
358              70, 70, 72, 68, 65, 74, 72, 73, 76, 74, 75, 78, 76, 77, 80, 78, 80, 79, 82, 79, 83, 82,
359              81, 85, 83, 85, 86, 87, 87, 88, 89, 89, 90, 91, 90, 93, 91, 92, 95, 93, 95, 96, 97, 97,
360              98, 99, 98, 101, 99, 101, 102, 103, 103, 104, 105, 104, 107, 105, 106, 109, 107, 108,
361              111, 109, 110, 113, 111, 112, 115, 113, 115, 114, 117, 114, 118, 117, 118, 119, 120,
362              120, 121, 122, 121, 124, 122, 124, 125, 126, 125, 128, 126, 127, 130, 128, 129, 132,
363              130, 131, 134, 132, 133, 136, 134, 136, 137, 138, 137, 140, 138, 140, 139, 142, 139,
364              143, 142, 141, 145, 143, 144, 147, 145, 146, 149, 147, 148, 151, 149, 150, 153, 151,
365              153, 154, 155, 155, 156, 157, 156, 159, 157, 158, 161, 159, 161, 162, 163, 163, 164,
366              165, 165, 166, 167, 166, 169, 167, 168, 171, 169, 170, 173, 171, 173, 174, 175, 175,
367              176, 177, 177, 178, 179, 178, 181, 179, 180, 183, 181, 183, 182, 185, 185, 182, 187,
368              187, 182, 189, 189, 182, 191, 191, 182, 188, 188, 182, 186, 186, 182, 193, 182, 190,
369              193, 192, 184, 190, 194, 195, 184, 196, 197, 195, 198, 199, 197, 200, 201, 199, 202,
370              203, 201, 203, 204, 205, 204, 207, 205, 206, 209, 207, 208, 211, 209, 210, 213, 211,
371              213, 214, 215, 215, 216, 217, 217, 218, 219, 218, 221, 219, 220, 223, 221, 222, 225,
372              223, 224, 227, 225, 227, 228, 229, 229, 230, 231, 231, 232, 233, 232, 235, 233, 235,
373              236, 237, 237, 238, 239, 238, 241, 239, 240, 243, 241, 243, 244, 245, 245, 246, 247,
374              246, 249, 247, 248, 251, 249, 251, 252, 253, 252, 255, 253, 254, 257, 255, 256, 259,
375              257, 259, 260, 261, 261, 262, 263, 263, 264, 265, 264, 267, 265, 267, 268, 269, 268,
376              271, 269, 270, 273, 271, 272, 275, 273, 275, 276, 277, 277, 278, 279, 278, 281, 279,
377              280, 283, 281, 282, 285, 283, 284, 287, 285, 287, 288, 289, 289, 288, 291, 291, 288,
378              293, 293, 288, 295, 295, 288, 292, 292, 288, 296, 292, 296, 290, 292, 290, 294, 294,
379              290, 298, 290, 297, 298, 297, 299, 300, 299, 302, 300, 301, 304, 302, 303, 306, 304,
380              305, 308, 306, 308, 309, 310, 310, 311, 312, 312, 313, 314, 313, 316, 314, 315, 318,
381              316, 317, 320, 318, 319, 322, 320, 322, 323, 324, 324, 1, 0, 1, 3, 2, 3, 5, 4, 4, 5, 7,
382              6, 7, 9, 8, 9, 11, 10, 11, 13, 12, 13, 15, 15, 17, 16, 16, 17, 19, 18, 19, 21, 21, 23,
383              22, 22, 23, 25, 25, 27, 26, 27, 29, 28, 29, 31, 30, 31, 33, 32, 33, 35, 34, 35, 37, 36,
384              36, 37, 39, 38, 39, 41, 41, 43, 42, 43, 45, 44, 44, 45, 47, 46, 47, 49, 49, 51, 50, 51,
385              53, 52, 53, 55, 54, 54, 55, 57, 56, 57, 59, 59, 61, 60, 69, 61, 71, 70, 65, 72, 65, 73,
386              74, 73, 75, 76, 75, 77, 78, 77, 79, 80, 79, 81, 83, 81, 84, 85, 85, 84, 86, 87, 86, 88,
387              89, 88, 90, 90, 92, 93, 92, 94, 95, 95, 94, 96, 97, 96, 98, 98, 100, 101, 101, 100,
388              102, 103, 102, 104, 104, 106, 107, 106, 108, 109, 108, 110, 111, 110, 112, 113, 112,
389              114, 115, 114, 116, 118, 118, 116, 119, 120, 119, 121, 121, 123, 124, 124, 123, 125,
390              125, 127, 128, 127, 129, 130, 129, 131, 132, 131, 133, 134, 133, 135, 136, 136, 135,
391              137, 137, 139, 140, 139, 141, 143, 141, 144, 145, 144, 146, 147, 146, 148, 149, 148,
392              150, 151, 150, 152, 153, 153, 152, 154, 155, 154, 156, 156, 158, 159, 158, 160, 161,
393              161, 160, 162, 163, 162, 164, 165, 164, 166, 166, 168, 169, 168, 170, 171, 170, 172,
394              173, 173, 172, 174, 175, 174, 176, 177, 176, 178, 178, 180, 181, 180, 182, 183, 182,
395              192, 190, 192, 194, 184, 194, 196, 195, 196, 198, 197, 198, 200, 199, 200, 202, 201,
396              202, 204, 203, 204, 206, 207, 206, 208, 209, 208, 210, 211, 210, 212, 213, 213, 212,
397              214, 215, 214, 216, 217, 216, 218, 218, 220, 221, 220, 222, 223, 222, 224, 225, 224,
398              226, 227, 227, 226, 228, 229, 228, 230, 231, 230, 232, 232, 234, 235, 235, 234, 236,
399              237, 236, 238, 238, 240, 241, 240, 242, 243, 243, 242, 244, 245, 244, 246, 246, 248,
400              249, 248, 250, 251, 251, 250, 252, 252, 254, 255, 254, 256, 257, 256, 258, 259, 259,
401              258, 260, 261, 260, 262, 263, 262, 264, 264, 266, 267, 267, 266, 268, 268, 270, 271,
402              270, 272, 273, 272, 274, 275, 275, 274, 276, 277, 276, 278, 278, 280, 281, 280, 282,
403              283, 282, 284, 285, 284, 286, 287, 287, 286, 288, 290, 299, 297, 299, 301, 302, 301,
404              303, 304, 303, 305, 306, 305, 307, 308, 308, 307, 309, 310, 309, 311, 312, 311, 313,
405              313, 315, 316, 315, 317, 318, 317, 319, 320, 319, 321, 322, 322, 321, 323, 324, 323, 1,
406          ],
407      }
408  }