dioxus-icons-game 0.2.2

Game icons for dioxus framework
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
// Auto Generated! DO NOT EDIT!

use dioxus::prelude::*;

use crate::IconShape;

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Acid;

impl IconShape for Acid {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256.875 16A30 30 0 0 0 226 46a30 30 0 0 0 60 0 30 30 0 0 0-29.125-30zm-45 75A30 30 0 0 0 181 121a30 30 0 0 0 60 0 30 30 0 0 0-29.125-30zm74.563 30A15 15 0 0 0 271 136a15 15 0 0 0 30 0 15 15 0 0 0-14.563-15zm-30 45A15 15 0 0 0 241 181a15 15 0 0 0 30 0 15 15 0 0 0-14.563-15zM196 196c-45 0-15 30 0 45 0 150-120 225-120 255h360c0-30-120-105-120-255 15-15 45-45 0-45-15 0-30 15-60 15s-45-15-60-15z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct AcidTube;

impl IconShape for AcidTube {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256.938 48A32 32 0 0 0 224 80a32 32 0 0 0 64 0 32 32 0 0 0-31.063-32zm-208 112A32 32 0 0 0 16 192a32 32 0 0 0 64 0 32 32 0 0 0-31.063-32zm207.53 0A16 16 0 0 0 240 176a16 16 0 0 0 32 0 16 16 0 0 0-15.53-16zm208.47 0A32 32 0 0 0 432 192a32 32 0 0 0 64 0 32 32 0 0 0-31.063-32zM192 208c-48 0-16 32 0 48 0 11.41-.386 21.89-1 32 19.59-9.974 41.51-16 65-16 23.49 0 45.41 6.026 65 16-.614-10.11-1-20.59-1-32 16-16 48-48 0-48-16 0-32 16-64 16s-48-16-64-16zm-66 31c-5.066.26-10.97 5.32-18 17.5-8 13.856-2.5 35.786-18.5 63.5S52 353.642 44 367.5c-24 41.57 19.642 29.856 41.5 24 9.648 5.57 18.66 11.062 27 16.5 2.637-47.1 27.794-88.193 65-112.5-8.915-4.568-18.138-9.306-28-15-4.027-15.026-10.87-40.626-22.5-41.5-.33-.025-.662-.017-1 0zm259 0c-11.632.872-18.474 26.473-22.5 41.5-9.862 5.694-19.085 10.432-28 15 37.206 24.307 62.363 65.4 65 112.5 8.34-5.438 17.352-10.93 27-16.5 21.856 5.856 65.5 17.57 41.5-24-8-13.856-29.5-19.786-45.5-47.5S412 270.358 404 256.5c-7.5-12.99-13.714-17.895-19-17.5zM48.47 256A16 16 0 0 0 32 272a16 16 0 0 0 32 0 16 16 0 0 0-15.53-16zm416 0A16 16 0 0 0 448 272a16 16 0 0 0 32 0 16 16 0 0 0-15.53-16zM256 304c-64 0-112 48-112 112v48h224v-48c0-64-48-112-112-112z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct AmmoBox;

impl IconShape for AmmoBox {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M166 16c-7.844 0-15 7.353-15 15v30h15v30h-60c-68.24 0-75.004 53.136-75 75v270c.002 11.74-15 30-15 30v30h480v-30s-15.002-18.26-15-30V166c.004-21.864-6.76-75-75-75h-60V61h15V31c0-7.647-7.156-15-15-15H166zm72.03 45c1.045-.007 2.032 0 2.97 0h30c15 0 45 0 45 30H196c0-28.125 26.376-29.89 42.03-30zM121 151h270c19.21 0 30 10.98 30 30v240c0 8.467-7.733 15-15 15H106c-7.267 0-15-6.533-15-15V181c0-19.02 10.79-30 30-30zm30 30s-30 21.842-30 60v105h60V241c0-38.158-30-60-30-60zm105 0s-30 21.842-30 60v105h60V241c0-38.158-30-60-30-60zm105 0s-30 21.842-30 60v105h60V241c0-38.158-30-60-30-60zM121 361v30h60v-30h-60zm105 0v30h60v-30h-60zm105 0v30h60v-30h-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Arena;

impl IconShape for Arena {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M76 16C36 36 31 46 31 46c40 160 5 275-15 375 0 0 10 25 90 45V256c0-80-30-240-30-240zm360 0s-30 160-30 240v210c80-20 90-45 90-45-20-100-55-215-15-375 0 0-5-10-45-30zM226 196c-40 0-90 15-90 15v270s50 15 90 15h60c40 0 90-15 90-15V211s-50-15-90-15h-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct BatteryPack;

impl IconShape for BatteryPack {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M230.218 16c-14.245 0-51.563 11.946-51.563 26.718v26.718h-51.093C99.072 69.436 76 93.326 76 122.874V442.56C76 472.11 99.072 496 127.563 496h256.875c28.49-.002 51.562-23.892 51.562-53.44V122.874c0-29.547-23.072-53.437-51.563-53.437h-51.093V42.718c0-14.774-37.317-26.718-51.562-26.718H230.22zM256 122.875V256h102.657L256 442.563V309.438H153.343L256 122.875z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct BatteryPackAlt;

impl IconShape for BatteryPackAlt {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M226 16c-24.93 0-45 13.38-45 30v15h-45c-29.547 0-60 30.453-60 60v315c0 29.547 30.453 60 60 60h240c29.547 0 60-30.453 60-60V121c0-29.547-30.453-60-60-60h-45V46c0-16.62-20.07-30-45-30h-60zm-90 105h240v315H136V121zm120 30v105h-75l75 150V301h75l-75-150z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct BigEgg;

impl IconShape for BigEgg {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C166 16 76 196 76 316c0 90 60 180 180 180s180-90 180-180c0-120-90-300-180-300z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Blast;

impl IconShape for Blast {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-72 0-120 48.094-120 96.093 0 48.416 24.277 66.635 51.563 112.5-3.476 47.475-3.75 111.834-3.75 199.218 15.588-51.96 28.137-91.943 38.437-121.406C236.71 347.18 249.23 407.97 256 495.997c6.77-88.027 19.288-148.818 33.75-193.593 10.3 29.462 22.85 69.444 38.438 121.407 0-87.915-.21-152.607-3.75-200.156C351.563 178.276 376 160.274 376 112.09 376 64.09 328 16 256 16zm0 47.813c39.765 0 72.188 26.863 72.188 60 0 13.097-5.516 25.29-14.063 35.156-10.095-33.71-27.39-46.876-58.125-46.876s-48.03 13.167-58.125 46.875c-8.547-9.866-14.063-22.06-14.063-35.158 0-33.136 32.423-60 72.188-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Blaster;

impl IconShape for Blaster {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 136c60 75-45 45-165 45 51.292 17.097 90.22 30.17 118.125 41.25C164.385 236.653 103.75 249.25 16 256c87.75 6.75 148.386 19.347 193.125 33.75C181.22 300.83 142.293 313.903 91 331c120 0 225-30 165 45 19.66-9.83 42.34-19.584 64.218-30.468C345.538 362.998 364.79 376 399.906 376c48 0 96.093-48 96.093-120s-48.096-120-96.094-120c-35.35 0-54.58 12.824-80.157 30.468-21.765-10.81-44.206-20.695-63.75-30.468zm132.188 47.813c33.136 0 60 32.422 60 72.187s-26.864 72.188-60 72.188c-9.062 0-17.61-2.715-25.313-7.032C388.008 303.676 406 282.742 406 256c0-26.743-17.992-47.68-43.125-65.158 7.702-4.316 16.25-7.032 25.313-7.032z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Burn;

impl IconShape for Burn {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C121 16 16 76 16 136c0 30 15 45 30 60-15 15-30 54.417-30 75v165c0 30 30 60 60 60h360c30 0 60-15 60-60V256c0-18.957-15-45-30-60 15-15 30-30 30-60 0-60-105-120-240-120zm0 60c105 0 180 15 180 60 0 15-15 45-30 60 15 15 30 60 30 75v165H76V271c0-15 15-60 30-75-15-15-30-45-30-60 0-45 75-60 180-60zm-10.375 27.125a15 15 0 0 0-10.844 4.375L107.5 234.78a15 15 0 0 0 0 21.22l10.625 10.594a15 15 0 0 0 21.22 0l127.28-127.28a15 15 0 0 0 0-21.19L256 107.5a15 15 0 0 0-10.375-4.375zm100.75 37.125a15 15 0 0 0-10.813 4.375L144.625 335.563a15 15 0 0 0 0 21.187l10.625 10.625a15 15 0 0 0 21.22 0l190.905-190.938a15 15 0 0 0 0-21.187l-10.594-10.625a15 15 0 0 0-10.405-4.375zM383.5 241a15 15 0 0 0-10.813 4.406l-127.28 127.28a15 15 0 0 0 0 21.19L256 404.5a15 15 0 0 0 21.22 0L404.5 277.22a15 15 0 0 0 0-21.22l-10.594-10.594A15 15 0 0 0 383.5 241z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Cancel;

impl IconShape for Cancel {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C123.45 16 16 123.45 16 256s107.45 240 240 240 240-107.45 240-240S388.55 16 256 16zm0 60c99.41 0 180 80.59 180 180s-80.59 180-180 180S76 355.41 76 256 156.59 76 256 76zm-80.625 60c-.97-.005-2.006.112-3.063.313v-.032c-18.297 3.436-45.264 34.743-33.375 46.626l73.157 73.125-73.156 73.126c-14.63 14.625 29.275 58.534 43.906 43.906L256 299.906l73.156 73.156c14.63 14.628 58.537-29.28 43.906-43.906l-73.156-73.125 73.156-73.124c14.63-14.625-29.275-58.5-43.906-43.875L256 212.157l-73.156-73.125c-2.06-2.046-4.56-3.015-7.47-3.03z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Chaingun;

impl IconShape for Chaingun {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-39.764 0-72 32.236-72 72s32.236 72 72 72 72-32.236 72-72-32.236-72-72-72zm0 48c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm-147.03 36c-24.314.545-47.766 13.4-60.814 36-19.882 34.437-8.093 78.462 26.344 98.344 34.437 19.882 78.493 8.093 98.375-26.344 19.882-34.437 8.062-78.462-26.375-98.344-11.838-6.834-24.796-9.94-37.53-9.656zm290.592 0c-11.606.3-23.3 3.443-34.062 9.656-34.437 19.882-46.257 63.907-26.375 98.344 19.882 34.437 63.938 46.226 98.375 26.344 34.437-19.882 46.226-63.907 26.344-98.344-13.67-23.675-38.748-36.663-64.28-36zM110 148c4.245-.095 8.554.94 12.5 3.22 11.48 6.626 15.41 21.3 8.78 32.78-6.626 11.48-21.3 15.41-32.78 8.78-11.48-6.626-15.41-21.3-8.78-32.78 4.348-7.533 12.176-11.818 20.28-12zm290.844 0c8.51-.22 16.88 4.108 21.437 12 6.63 11.48 2.7 26.154-8.78 32.78-11.48 6.63-26.154 2.7-32.78-8.78-6.63-11.48-2.7-26.154 8.78-32.78 3.587-2.072 7.475-3.12 11.344-3.22zm-143.438 60.03A48 48 0 0 0 208 256a48 48 0 0 0 96 0 48 48 0 0 0-46.594-47.97zM108.562 268c-11.606.3-23.3 3.443-34.062 9.656C40.063 297.538 28.274 341.563 48.156 376c19.882 34.437 63.907 46.226 98.344 26.344 34.437-19.882 46.257-63.907 26.375-98.344-13.67-23.675-38.78-36.663-64.313-36zm291.375 0c-24.312.545-47.764 13.4-60.812 36-19.882 34.437-8.062 78.462 26.375 98.344 34.437 19.882 78.462 8.093 98.344-26.344 19.882-34.437 8.093-78.462-26.344-98.344-11.838-6.834-24.827-9.94-37.563-9.656zm-290.062 48c8.51-.22 16.85 4.108 21.406 12 6.63 11.48 2.7 26.154-8.78 32.78-11.48 6.63-26.154 2.7-32.78-8.78-6.63-11.48-2.7-26.154 8.78-32.78 3.587-2.072 7.506-3.12 11.375-3.22zm291.094 0c4.244-.095 8.584.94 12.53 3.22 11.48 6.626 15.41 21.3 8.78 32.78-6.626 11.48-21.3 15.41-32.78 8.78-11.48-6.626-15.41-21.3-8.78-32.78 4.348-7.533 12.145-11.818 20.25-12zM256 352c-39.764 0-72 32.236-72 72s32.236 72 72 72 72-32.236 72-72-32.236-72-72-72zm0 48c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct CircularSaw;

impl IconShape for CircularSaw {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16v72H88l48 48L16 256h72v168l48-48 120 120v-72h168l-48-48 120-120h-72V88l-48 48L256 16zm0 120c66.274 0 120 53.726 120 120s-53.726 120-120 120-120-53.726-120-120 53.726-120 120-120zm1.406 72.03A48 48 0 0 0 208 256a48 48 0 0 0 96 0 48 48 0 0 0-46.594-47.97z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Claw;

impl IconShape for Claw {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C106 76 46 226 46 226c0 45 60 90 90 90 90 0 180-195 135-285l-15-15zm45 15c30 60 0 135 0 135 120 30 120 180 75 330 75-75 90-150 90-210 0-90-15-225-165-255z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Clover;

impl IconShape for Clover {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-24 0-72 24-72 48s48 24 72 96c24-72 72-72 72-96s-48-48-72-48zM64 184c-24 0-48 48-48 72s24 72 48 72 24-48 96-72c-72-24-72-72-96-72zm384 0c-24 0-24 48-96 72 72 24 72 72 96 72s48-48 48-72-24-72-48-72zm-189.906.03A72 72 0 0 0 184 256a72 72 0 0 0 144 0 72 72 0 0 0-69.906-71.97zM256 352c-24 72-72 72-72 96s48 48 72 48 72-24 72-48-48-24-72-96z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct CloverSpiked;

impl IconShape for CloverSpiked {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-24 72-72 72-72 96s48 48 72 48 72-24 72-48-48-24-72-96zM112 184c-24 0-24 48-96 72 72 24 72 72 96 72s48-48 48-72-24-72-48-72zm288 0c-24 0-48 48-48 72s24 72 48 72 24-48 96-72c-72-24-72-72-96-72zm-141.906.03A72 72 0 0 0 184 256a72 72 0 0 0 144 0 72 72 0 0 0-69.906-71.97zM256 352c-24 0-72 24-72 48s48 24 72 96c24-72 72-72 72-96s-48-48-72-48z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Crush;

impl IconShape for Crush {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M46 16c-15 0-30 15-30 30v240h60l60 60 60-60 60 60 60-60 60 60 60-60h60V46c0-15-15-30-30-30H46zm211.75 360.03A60 60 0 0 0 196 436a60 60 0 0 0 120 0 60 60 0 0 0-58.25-59.97z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct DeathSkull;

impl IconShape for DeathSkull {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M255.997 16.004c-120 0-239.997 60-239.997 149.998C16 226.002 61 256 61 316c0 45-15 45-15 75 0 14.998 48.01 32.002 89.998 44.998v60h239.997v-60s90.567-27.957 90-45c-.933-27.947-15-30-15-74.998 0-30 45.642-91.42 44.998-149.998 0-90-119.998-149.998-239.996-149.998zm-90 179.997c33.137 0 60 26.864 60 60 0 33.136-26.863 60-60 60C132.863 316 106 289.136 106 256c0-33.136 26.862-60 59.998-60zm179.998 0c33.136 0 60 26.864 60 60 0 33.136-26.864 60-60 60-33.136 0-60-26.864-60-60 0-33.136 26.864-60 60-60zm-89.998 105c15 0 45 60 45 75 0 29.998 0 29.998-15 29.998h-60c-15 0-15 0-15-30 0-15 30-74.998 45-74.998z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Doubled;

impl IconShape for Doubled {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M304.833 16c-261.69 0-320.71 387.657-62.343 387.657 86.284 0 86.955-129.375 0-129.375-139.947 0-99.134-202.896 62.343-258.282zm-30.938 92.343c-86.283 0-86.955 129.375 0 129.375 139.95 0 88.353 202.896-73.125 258.282 261.69 0 331.49-387.657 73.125-387.657z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Duel;

impl IconShape for Duel {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M76 16v110.625s21.708-11.927 32.343-9.843c15.5 1.78 28.554 14.896 30.468 24.375-12.995 2.602-22.967 16.39-22.967 32.812 0 18.283 12.508 33.28 27.657 33.28 1.462 0 4.692.73 6.093.47l37.968 158.906V496h51.094V108.345l-25.313 18.282s-8.972-27.62-34.686-55.312C152.94 43.624 75.997 16.002 75.997 16.002zm197.343 0v387.657l25.312-18.282s8.973 27.62 34.688 55.313C359.057 468.38 436 496 436 496V385.375s-21.708 11.927-32.343 9.843c-15.5-1.78-28.554-14.896-30.468-24.375 12.995-2.603 22.967-16.39 22.967-32.813 0-18.283-12.508-33.28-27.657-33.28-1.462 0-4.692-.73-6.093-.47L324.44 145.375V16h-51.094z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct EggPod;

impl IconShape for EggPod {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-67.5 0-105 120-105 210 0 45 45 90 105 90s105-45 105-90c0-90-37.5-210-105-210zM136 271c0 90 45 75 45 135 0 90-75 60-75 90h300c0-30-75 0-75-90 0-60 45-45 45-135-90 105-150 105-240 0z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Electric;

impl IconShape for Electric {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M376 211H256V16L136 301h120v195z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct EvilWings;

impl IconShape for EvilWings {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M17.63 16.006a1.638 1.638 0 0 0-.458 3.21C67.085 36.2 103.825 46.242 128.215 53.68c12.195 3.718 21.318 6.8 27.34 9.687 3.01 1.442 5.25 2.862 6.69 4.185 1.442 1.323 2.06 2.463 2.2 3.636.134 1.174-.194 2.553-1.285 4.28-1.09 1.726-2.934 3.73-5.467 6.02-5.07 4.574-12.948 10.22-23.492 17.385-21.087 14.33-52.77 34.77-94.057 65.573a1.638 1.638 0 0 0 1.772 2.75c42.71-23.665 75.725-43.042 99.098-55.46 11.686-6.207 20.992-10.673 27.768-13.046 3.39-1.186 6.155-1.86 8.188-1.986 2.03-.12 3.178.26 3.82.855.64.595 1.056 1.63.977 3.607-.075 1.98-.716 4.766-1.955 8.25-2.48 6.97-7.344 16.806-14.57 29.7C150.78 164.905 126.922 203 93.755 255.963a1.638 1.638 0 0 0 2.688 1.864c36.023-46.894 60.25-82.6 76.768-105.234 8.26-11.317 14.63-19.377 19.398-23.833 2.385-2.23 4.386-3.515 5.805-3.942 1.42-.428 2.142-.252 3.115.672 1.947 1.848 3.942 7.85 5.316 17.875 1.373 10.025 2.373 24.045 3.513 42.198 2.278 36.306 5.1 89.202 12.554 160.386a1.64 1.64 0 0 0 3.27-.245c-4.848-154.91 4.55-249.915 4.55-249.915a1.638 1.638 0 0 0-1.07-1.712s-7.132-2.425-15.702-10.846c-8.57-8.423-18.46-22.76-23.49-46.536a1.638 1.638 0 0 0-1.773-1.284c-53.747 6.25-103.183-.908-170.583-19.34a1.638 1.638 0 0 0-.49-.06zm476.675 0a1.638 1.638 0 0 0-.428.06c-67.4 18.435-116.835 25.592-170.58 19.34a1.638 1.638 0 0 0-1.773 1.285c-5.032 23.778-14.922 38.115-23.49 46.537-8.57 8.423-15.703 10.847-15.703 10.847a1.638 1.638 0 0 0-1.07 1.71s9.4 95.007 4.552 249.916a1.64 1.64 0 0 0 3.27.245c7.452-71.186 10.275-124.08 12.554-160.386 1.14-18.154 2.14-32.175 3.513-42.2 1.37-10.024 3.368-16.025 5.315-17.875.973-.924 1.698-1.1 3.115-.672 1.42.428 3.42 1.713 5.805 3.942 4.77 4.457 11.138 12.516 19.398 23.834 16.52 22.632 40.746 58.338 76.767 105.233a1.638 1.638 0 0 0 2.688-1.865c-33.166-52.963-57.027-91.057-71.482-116.845-7.23-12.894-12.09-22.73-14.57-29.7-1.242-3.485-1.876-6.272-1.956-8.25-.075-1.98.338-3.012.978-3.606.64-.594 1.787-.983 3.82-.855 2.03.12 4.798.8 8.186 1.986 6.776 2.373 16.082 6.838 27.768 13.047 23.373 12.418 56.39 31.794 99.098 55.458a1.638 1.638 0 0 0 1.77-2.75c-41.286-30.802-72.968-51.243-94.056-65.572-10.544-7.163-18.423-12.81-23.492-17.386-2.535-2.287-4.378-4.293-5.47-6.02-1.09-1.726-1.42-3.104-1.283-4.277.134-1.173.757-2.313 2.198-3.636 1.442-1.322 3.68-2.743 6.69-4.186 6.023-2.886 15.146-5.967 27.34-9.687 24.39-7.437 61.13-17.48 111.043-34.467a1.638 1.638 0 0 0-.518-3.208zM257.342 66.943c-2.55 0-5.02.23-7.18 1.712-2.157 1.48-3.74 4.054-4.856 8.128-2.232 8.145-2.988 22.776-2.75 50.295.478 55.038 5.225 161.43 12.587 367.28a1.65 1.65 0 0 0 3.3 0c6.815-205.847 11.85-312.252 12.738-367.28.447-27.513-.104-42.126-2.138-50.263-1.017-4.07-2.472-6.663-4.582-8.16-2.11-1.494-4.566-1.71-7.118-1.71z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Expander;

impl IconShape for Expander {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M20.625 16c-1.74.052-2.956.394-3.594 1.03-10.2 10.203 58.65 170.85 76.5 178.5 5.02 2.152 15.865-3.563 28.72-13.28h.03L196 256l-73.72 73.75c-12.863-9.726-23.728-15.433-28.75-13.28-17.85 7.65-86.7 168.297-76.5 178.5 10.203 10.2 170.85-58.65 178.5-76.5 2.153-5.022-3.554-15.887-13.28-28.75L256 316l73.75 73.75c-9.717 12.855-15.432 23.7-13.28 28.72 7.65 17.85 168.297 86.7 178.5 76.5 10.2-10.203-58.65-170.85-76.5-178.5-5.02-2.152-15.865 3.563-28.72 13.28L316 256l73.75-73.75c12.855 9.717 23.7 15.432 28.72 13.28 17.85-7.65 86.7-168.297 76.5-178.5-10.203-10.2-170.85 58.65-178.5 76.5-2.153 5.022 3.554 15.887 13.28 28.75L256 196l-73.75-73.72c.005-.006-.005-.023 0-.03 9.717-12.855 15.432-23.7 13.28-28.72C188.36 76.796 46.71 15.225 20.626 16z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct FallDown;

impl IconShape for FallDown {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M257.75 16.03A60 60 0 0 0 196 76a60 60 0 0 0 120 0 60 60 0 0 0-58.25-59.97zM250.72 166c-24.72.11-24.72 1.875-24.72 30v210h-60l90 90 90-90h-60V196c0-30 0-30-30-30-1.875 0-3.633-.007-5.28 0z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Falling;

impl IconShape for Falling {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M221.313 16a23.682 23.695 0 0 0-23.688 23.688v106.406a23.682 23.695 0 0 0 2.156 9.72 23.682 23.695 0 0 0 3.157 13.81l41.75 71.626-79 55.438 6.094-48.625a23.682 23.695 0 0 0-8.186-20.97l-66.28-81.937a23.682 23.695 0 0 0-33.314-3.5l-9.188 7.438a23.682 23.695 0 0 0-3.53 33.344l59.78 73.906-11.25 89.937a23.682 23.695 0 0 0 12.47 23.876l37.468 53.47a23.695 23.682 1.57 0 0 2.344 2.812 23.682 23.695 0 0 0 13.594 20.062L262 491.53a23.682 23.695 0 0 0 9.97 2.22 23.682 23.695 0 0 0 23.53-2.063l87.156-60.937a23.682 23.695 0 0 0 5.844-33l-6.78-9.688a23.682 23.695 0 0 0-32.97-5.875l-72.406 50.657-59.063-27.625 120.595-84.626a23.695 23.682 1.57 0 0 5.53-5.5 23.682 23.695 0 0 0 14.626-13.594l37.22-91.53 87.813-44.845a23.694 23.682 1.18 0 0 10.312-31.875L488 122.687a23.694 23.682 1.18 0 0-31.875-10.343l-94.688 48.375a23.694 23.682 1.18 0 0-9.843 9.436 23.682 23.695 0 0 0-8.344 10.47l-27.375 67.31-5.22-7.436a23.682 23.695 0 0 0-3-8.844l-50.81-87.094V39.688A23.682 23.695 0 0 0 233.154 16h-11.843zM77.75 376A59.994 60 0 0 0 16 436a59.994 60 0 1 0 120 0 59.994 60 0 0 0-58.25-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Fire;

impl IconShape for Fire {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-52.5 252.632-210 277.845 0 454.688C466 293.845 308.5 268.63 256 16zM124.75 167.407C98.5 243.197 46 294.117 46 369.907S151 496 229.75 496c-157.5-126.317-105-202.278-105-328.593zm262.5 0c0 126.317 52.5 202.278-105 328.593C361 496 466 445.696 466 369.907c0-75.79-52.5-126.71-78.75-202.5z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Fireflake;

impl IconShape for Fireflake {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M253.938 16s-.116 5.61 0 14.47c.116-8.86 0-14.47 0-14.47zm0 14.47c-.465 35.427-4.82 125.15-36.594 138.31-31.437 13.024-95.04-50.706-120.28-77.905 24.6 27.913 82.115 97.995 69.092 129.438-13.138 31.722-100.9 35.99-135.78 36.437 34.88.446 122.638 4.747 135.78 36.47 13.2 31.863-46.11 97.757-70.125 122.624 24.537-24.197 89.464-83.88 121.314-70.688 31.777 13.162 36.13 101.667 36.594 136.594.453-34.932 4.746-123.502 36.562-136.594 32.305-13.293 106.245 48.2 132.844 71.72-26.05-24.104-94.274-91.384-80.906-123.657 13.058-31.53 101.93-35.98 138.125-36.47-36.192-.488-125.06-4.9-138.125-36.438-13.227-31.924 53.26-103.695 79.937-130.718-27.322 26.44-99.95 92.406-131.875 79.187-31.777-13.156-36.1-102.882-36.563-138.31zm168.437 59.124c6.673-6.457 10.72-10.656 10.72-10.656s-4.193 4.044-10.72 10.656zm58.188 167.156c9.406.127 15.437 0 15.437 0s-6.03-.128-15.438 0zm-57.22 160.125c6.012 5.562 9.75 8.844 9.75 8.844s-3.61-3.417-9.75-8.845zM253.938 481.75c-.113 8.723 0 14.25 0 14.25s.116-5.518 0-14.25zM96.03 415.844c-6.063 5.98-9.78 9.875-9.78 9.875s3.86-3.744 9.78-9.876zM30.376 256.75c-8.796-.113-14.375 0-14.375 0s5.58.113 14.375 0zM97.063 90.875c-6.478-7.35-10.813-11.938-10.813-11.938s4.162 4.772 10.813 11.938zM333.719 68.28s-.176-.063-27.314 29.376c-8.554 9.28-13.223 35.225-1.47 40.094 11.756 4.868 27.006-16.758 27.377-29.375 1.173-40.035 1.406-40.094 1.406-40.094zm-155.5.032s-.196.077 1.436 40.094c.515 12.61 15.59 34.212 27.344 29.344 11.754-4.87 7.253-30.91-1.406-40.094-27.48-29.137-27.375-29.344-27.375-29.344zm265.5 109.938s-.032.263-40.064 1.438c-3.154.09-6.9 1.12-10.625 2.78-11.17 4.987-22.43 15.748-18.78 24.563 4.87 11.755 30.844 7.117 40.125-1.436 29.445-27.14 29.344-27.344 29.344-27.344zm-375.44.03s-.075.206 29.376 27.345c9.28 8.553 35.226 13.16 40.094 1.406 3.804-9.182-8.583-20.478-20.188-25.155-3.248-1.31-6.396-2.075-9.156-2.156-40.033-1.173-40.125-1.44-40.125-1.44zm187.22 3.22c9.68-.074 19.532 1.752 29.03 5.688 38 15.74 56.024 59.345 40.283 97.343-15.74 38-59.315 56.056-97.313 40.314-37.998-15.74-56.086-59.346-40.344-97.344 11.806-28.5 39.307-45.78 68.344-46zm.5 15.72c-32.468 0-58.78 26.314-58.78 58.78 0 32.467 26.314 58.78 58.78 58.78 32.467 0 58.78-26.314 58.78-58.78 0-32.468-26.314-58.78-58.78-58.78zM122.312 297.905c-5.516.075-11.556 1.42-16.593 3.563-3.225 1.37-6.024 3.073-8.032 4.967C68.55 333.918 68.31 333.75 68.31 333.75s.113.224 40.126-1.406c12.61-.515 34.18-15.59 29.312-27.344-2.14-5.165-8.345-7.19-15.438-7.094zm266.125 0c-3.208.077-6.177.622-8.625 1.72-2.554 1.144-4.535 2.895-5.562 5.374-4.868 11.754 16.764 26.83 29.375 27.344 40.01 1.63 40.094 1.406 40.094 1.406s-.237.166-29.376-27.313c-2.295-2.164-5.63-4.104-9.438-5.562-5.133-1.965-11.12-3.097-16.47-2.97zM203.03 373.562c-1.343.054-2.71.358-4.06.907-9.645 3.92-18.913 19.3-19.314 29.155-1.63 40.01-1.437 40.063-1.437 40.063s-.11-.205 27.374-29.344c8.66-9.183 13.16-35.226 1.406-40.094-1.286-.533-2.625-.74-3.97-.688zm105.314 0c-1.148.02-2.273.263-3.375.72-11.755 4.868-7.118 30.78 1.436 40.062 27.14 29.445 27.313 29.344 27.313 29.344s-.235-.034-1.408-40.063c-.335-11.434-12.873-30.26-23.968-30.063z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Flake;

impl IconShape for Flake {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M463.788 376c-22.562 39.09-132.242-79.382-171.32-56.815C253.394 341.752 301.123 496 256 496c-45.121 0 2.607-154.248-36.47-176.815C180.454 296.617 70.774 415.087 48.213 376 25.65 336.91 183.06 301.135 183.06 256c0-45.135-157.407-80.91-134.847-120 22.56-39.088 132.24 79.38 171.317 56.814C258.607 170.247 210.88 16 256 16c45.121 0-2.607 154.246 36.47 176.814C331.546 215.38 441.226 96.91 463.786 136c22.562 39.089-134.846 74.865-134.846 120 0 45.135 157.41 80.912 134.848 120z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Flamer;

impl IconShape for Flamer {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M166 121c0 90 90 105 90 180 0 30-30 75-75 75s-75-45-45-120c-45 30-60 60-60 90 0 75 75 150 180 150s180-45 180-135c.67-133.125-153.4-177.596-195-240-30-45-15-75 15-105-60 15-90 57-90 105z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Grenade;

impl IconShape for Grenade {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-96 0-120 48.188-120 72.188v71.718c0 13.296 10.61 23.907 23.907 23.907h23.907v144.375h-23.907c-13.296 0-23.907 10.61-23.907 23.907v71.717c0 24 24 72.188 120 72.188s120-48.188 120-72.188v-71.718c0-13.296-10.61-23.907-23.907-23.907h-23.907V183.813h23.907c13.296 0 23.907-10.61 23.907-23.907V88.187C376 64.188 352 16 256 16zm-23.907 167.813h47.813v144.375h-47.813V183.813z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Hand;

impl IconShape for Hand {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M496 136s-40.486 85.32-51.442 128.988c-14.33 57.118 2.078 100.297-18.747 155.68-35.998 64.97-38.435 75.466-169.81 75.33-48.132-.044-186.02-36.76-186.02-36.76C50.97 454.35 16 457.23 16 435.997c0-21.232 24.88-36.736 46.97-36.787l87.03 7.642c21.14-1.326 43.286-13.71 43.96-41.36-.353-40.927-4.4-72.357-25.175-105.6l-80.67-125.864c-4.818-10.02-5.964-27.105 7.983-34.732 13.947-7.628 29.793 3.71 35.205 13.582l90.11 122.57c9.618 8.955 26.738 10.68 25.278-8.38L206.903 44.652c-2.478-12.96 4.1-28.654 19.1-28.654 19.687 0 31.795 7.515 31.413 19.413l43.75 179.984c3.42 8.76 15.545 7.59 18.807-.49l12.462-175.022c.64-5.583 7.922-15.314 21.9-13.286 13.976 2.027 22.035 17 20.555 22.793l-4.044 172.936c2.838 15.327 14.888 17.565 24.266 9.008l61.22-109.487c3.72-9.183 18.288-11.096 26.715-7.455 7.84 5.107 12.954 11.96 12.954 21.603z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct HeadShot;

impl IconShape for HeadShot {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-30.6 0-59.243 9.113-82.97 24.844l44.064 44.062c24.486-11.704 53.326-11.704 77.812 0l44.063-44.062C315.242 25.114 286.597 16 256 16zM130.844 83.03C115.114 106.758 106 135.402 106 166c0 30.6 9.113 59.245 24.844 82.97l44.062-44.064c-11.704-24.484-11.704-53.326 0-77.812L130.844 83.03zm250.312 0l-44.062 44.064c11.704 24.486 11.704 53.328 0 77.812l44.062 44.063C396.886 225.242 406 196.598 406 166c0-30.6-9.113-59.245-24.844-82.97zm-123.844 38a45 45 0 0 0-46.312 45 45 45 0 0 0 90 0 45 45 0 0 0-43.688-45zm-40.218 126.064l-44.063 44.062C196.758 306.886 225.402 316 256 316c30.6 0 59.243-9.113 82.97-24.844l-44.064-44.062c-24.486 11.704-53.326 11.704-77.812 0zM256 316H46c-15 0-30 15-30 30v60c0 30 45 30 60 90h360c15-60 60-60 60-90v-60c0-15-15-30-30-30H256z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct HealthDecrease;

impl IconShape for HealthDecrease {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M196 16c-16.62 0-30 13.38-30 30v120H46c-16.62 0-30 13.38-30 30v120c0 16.62 13.38 30 30 30h120v120c0 16.62 13.38 30 30 30h120c16.62 0 30-13.38 30-30V346h120c16.62 0 30-13.38 30-30V196c0-16.62-13.38-30-30-30H346V46c0-16.62-13.38-30-30-30zm0 135h120l-60 60zm0 75h120l-60 60zm0 75h120l-60 60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct HealthIncrease;

impl IconShape for HealthIncrease {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M196 496c-16.62 0-30-13.38-30-30V346H46c-16.62 0-30-13.38-30-30V196c0-16.62 13.38-30 30-30h120V46c0-16.62 13.38-30 30-30h120c16.62 0 30 13.38 30 30v120h120c16.62 0 30 13.38 30 30v120c0 16.62-13.38 30-30 30H346v120c0 16.62-13.38 30-30 30zm0-135h120l-60-60zm0-75h120l-60-60zm0-75h120l-60-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct HealthNormal;

impl IconShape for HealthNormal {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M196 16a30 30 0 0 0-30 30v120H46a30 30 0 0 0-30 30v120a30 30 0 0 0 30 30h120v120a30 30 0 0 0 30 30h120a30 30 0 0 0 30-30V346h120a30 30 0 0 0 30-30V196a30 30 0 0 0-30-30H346V46a30 30 0 0 0-30-30H196z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Helmet;

impl IconShape for Helmet {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 76C123.45 76 16 183.452 16 316c0 43.716 11.453 84.698 31.875 120H196l31.875-64.688C191.868 359.546 166 325.938 166 286c0-49.706 40.294-90 90-90s90 40.294 90 90v30h150c0-132.548-107.45-240-240-240zm-4.218 150A60 60 0 0 0 196 286a60 60 0 0 0 120 0 60 60 0 0 0-64.218-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Help;

impl IconShape for Help {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C123.45 16 16 123.45 16 256s107.45 240 240 240 240-107.45 240-240S388.55 16 256 16zm0 60c99.41 0 180 80.59 180 180s-80.59 180-180 180S76 355.41 76 256 156.59 76 256 76zm0 30c-66.274 0-120 40.294-120 90 0 30 60 30 60 0 0-16.57 26.862-30 60-30 33.138 0 60 13.43 60 30s-30 15-60 30c-1.875.938-3.478 2.126-4.688 3.28C226.53 244.986 226 271.926 226 286v15c0 16.62 13.38 30 30 30 16.62 0 30-13.38 30-30v-15c0-45 90-40.294 90-90s-53.726-90-120-90zm0 240a30 30 0 0 0-30 30 30 30 0 0 0 30 30 30 30 0 0 0 30-30 30 30 0 0 0-30-30z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Hive;

impl IconShape for Hive {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M196 16s-60 20.07-60 45h-15c-33.24 0-60 20.07-60 45 0 11.496 5.61 22.062 15 30-33.24 0-60 30.915-60 60s26.76 45 60 45h30.47C111.154 160.246 153.625 93.326 211 69.906V16h-15zm105 0v53.906c57.372 23.42 99.844 90.34 104.53 171.094H436c33.24 0 60-15.915 60-45s-26.76-60-60-60c9.392-7.938 15-18.504 15-30 0-24.93-26.76-45-60-45h-15c0-24.93-60-45-60-45h-15zm-44.156 105a30 30 0 0 0-30.875 29.97 30 30 0 0 0 60 0A30 30 0 0 0 256.843 121zm.5 90.063a45 45 0 0 0-46.313 44.968 45 45 0 0 0 90 0 45 45 0 0 0-43.686-44.967zM151.844 226a30 30 0 0 0-30.875 29.97 30 30 0 0 0 60 0A30 30 0 0 0 151.843 226zm210 0a30 30 0 0 0-30.875 29.97 30 30 0 0 0 60 0A30 30 0 0 0 361.843 226zM76 271c-33.24 0-60 15.915-60 45s26.76 60 60 60c-9.39 7.938-15 18.504-15 30 0 24.93 26.76 45 60 45h15c0 24.93 60 45 60 45h15v-53.906c-57.372-23.42-99.844-90.34-104.53-171.094H76zm329.53 0c-4.685 80.754-47.156 147.674-104.53 171.094V496h15s60-20.07 60-45h15c33.24 0 60-20.07 60-45 0-11.496-5.608-22.062-15-30 33.24 0 60-30.915 60-60s-26.76-45-60-45h-30.47zm-148.686 60a30 30 0 0 0-30.875 29.97 30 30 0 0 0 60 0A30 30 0 0 0 256.843 331z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct HotSurface;

impl IconShape for HotSurface {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M106 53.5c45 150-45 150 0 300h60c-45-150 45-150 0-300h-60zm120 0c45 150-45 150 0 300h60c-45-150 45-150 0-300h-60zm120 0c45 150-45 150 0 300h60c-45-150 45-150 0-300h-60zm-270 315c-15 0-30 30-30 30-30 0-30 0-30 30v30h480v-30c0-30 0-30-30-30 0 0-15-30-30-30-30 0-30 45-60 45s-30-45-60-45-30 45-60 45-30-45-60-45-30 45-60 45-30-45-60-45z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct JetPack;

impl IconShape for JetPack {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C178.857 16 76 192.867 76 268.657c0 25.263 103.128 25.223 180 25.313 76.874.09 180-.046 180-25.313C436 192.867 333.144 16 256 16zm-90 303.282c-29.772 0-59.312 4.894-63.282 15C94.778 354.492 150.12 496 166 496c15.88 0 71.22-141.51 63.282-161.718-3.97-10.105-33.51-15-63.282-15zm180 0c-29.772 0-59.312 4.894-63.282 15C274.778 354.492 330.12 496 346 496c15.88 0 71.22-141.51 63.282-161.718-3.97-10.105-33.508-15-63.282-15z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Kevlar;

impl IconShape for Kevlar {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M436 439.525V298.348c-30-28.235-60-56.47-60-84.706 0-56.47 30-141.176 120-169.41 0 0-30-28.237-60-28.237h-90c0 56.47-60 84.706-90 84.706s-90-28.234-90-84.705H76c-30 0-60 28.236-60 28.236 90 28.236 120 112.942 120 169.412 0 28.236-30 56.47-60 84.706v141.177c60 28.235 120 56.47 180 56.47s120-28.235 180-56.47z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Key;

impl IconShape for Key {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M226.878 16v243.274a120.023 120.023 0 0 0 30 236.71 119.996 119.996 0 0 0 29.998-236.242v-93.747h59.998v-44.998h-59.998v-45h89.997V16H226.878zm25.312 299.99a60.01 60.01 0 0 1 2.343 0 59.998 59.998 0 0 1 2.343 0 59.998 59.998 0 0 1 0 119.996 60.044 60.044 0 0 1-4.688-119.996z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct LaserGun;

impl IconShape for LaserGun {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M238 16a12 12 0 0 0-12 12v50.5C140.87 92.783 76 166.81 76 256s64.87 163.217 150 177.5V484a12 12 0 0 0 12 12h36a12 12 0 0 0 12-12v-50.5c85.13-14.283 150-88.31 150-177.5S371.13 92.783 286 78.5V28a12 12 0 0 0-12-12h-36zm-12 155.125V199a12 12 0 0 0 12 12h36a12 12 0 0 0 12-12v-27.875c34.955 12.356 60 45.69 60 84.875 0 39.186-25.045 72.52-60 84.875V313a12 12 0 0 0-12-12h-36a12 12 0 0 0-12 12v27.875c-34.955-12.356-60-45.69-60-84.875 0-39.186 25.045-72.52 60-84.875z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Lava;

impl IconShape for Lava {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M257.188 45.875A44.867 44.867 0 0 0 211.28 91 44.867 44.867 0 1 0 301 91a44.867 44.867 0 0 0-43.813-45.125zM91.905 90.625A44.867 44.867 0 0 0 46 135.72a44.867 44.867 0 1 0 89.72 0 44.867 44.867 0 0 0-43.814-45.095zm330.281 0a44.867 44.867 0 0 0-45.906 45.094 44.867 44.867 0 1 0 89.72 0 44.867 44.867 0 0 0-43.813-45.095zM256.845 210.97A29.866 29.866 0 0 0 226.28 241a29.866 29.866 0 1 0 59.72 0 29.866 29.866 0 0 0-29.156-30.03zm-135 30A29.866 29.866 0 0 0 91.28 271a29.866 29.866 0 1 0 59.72 0 29.866 29.866 0 0 0-29.156-30.03zm270 0A29.866 29.866 0 0 0 361.28 271a29.866 29.866 0 1 0 59.72 0 29.866 29.866 0 0 0-29.156-30.03zm-135.5 89.81A15 15 0 0 0 241 345.876a15 15 0 1 0 30 0 15 15 0 0 0-14.656-15.094zm-120 15A15 15 0 0 0 121 360.876a15 15 0 1 0 30 0 15 15 0 0 0-14.656-15.094zm240 0A15 15 0 0 0 361 360.876a15 15 0 1 0 30 0 15 15 0 0 0-14.656-15.094zM76 375.876c-15 0-30 30-30 30-30 0-30 0-30 30v30h480v-30c0-30 0-30-30-30 0 0-15-30-30-30-30 0-30 45-60 45s-30-45-60-45-30 45-60 45-30-45-60-45-30 45-60 45-30-45-60-45z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct LevelFour;

impl IconShape for LevelFour {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M16 16c48 96 24 120 72 168 0 0 44.864 0 69.53-21.688A135.765 135.765 0 0 0 120.25 256a135.765 135.765 0 0 0 271.5 0 135.765 135.765 0 0 0-36.375-92.906C380.22 183.997 424 184 424 184c48-48 24-72 72-168-96 48-120 24-168 72 0 0 .004 44.6 21.5 69.313a135.765 135.765 0 0 0-186.72-.344C183.987 132.19 184 88 184 88c-48-48-72-24-168-72zm72 312c-48 48-24 72-72 168 96-48 120-24 168-72 0 0 0-48-24-72s-72-24-72-24zm336 0s-48 0-72 24-24 72-24 72c48 48 72 24 168 72-48-96-24-120-72-168z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct LevelFourAdvanced;

impl IconShape for LevelFourAdvanced {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M16 16c48 96 24 120 72 168 0 0 48 0 72-24s24-72 24-72c-48-48-72-24-168-72zm144 144c-24.57 24.57-39.75 58.51-39.75 96s15.18 71.43 39.75 96c24.57 24.57 58.51 39.75 96 39.75s71.43-15.18 96-39.75c24.57-24.57 39.78-58.51 39.78-96s-15.21-71.43-39.78-96c-24.57-24.57-58.51-39.75-96-39.75s-71.43 15.18-96 39.75zm192 0c24 24 72 24 72 24 48-48 24-72 72-168-96 48-120 24-168 72 0 0 0 48 24 72zm0 192c-24 24-24 72-24 72 48 48 72 24 168 72-48-96-24-120-72-168 0 0-48 0-72 24zm-192 0c-24-24-72-24-72-24-48 48-24 72-72 168 96-48 120-24 168-72 0 0 0-48-24-72zm62.063-197.813h67.875v67.875h67.875v67.875h-67.875v67.875h-67.875v-67.875h-67.875v-67.875h67.875v-67.875z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct LevelThree;

impl IconShape for LevelThree {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 46c-27.713 84-55.438 84-55.438 140 0 0 27.725 28 55.438 28 27.712 0 55.438-28 55.438-28 0-56-27.726-56-55.438-140zm3.25 168.063A110.852 112 0 0 0 145.156 326a110.852 112 0 0 0 221.688 0A110.852 112 0 0 0 259.25 214.062zM108.28 347.5c-48 28-34.137 52.25-92.28 118.5 85.856-17.75 99.72 6.5 147.72-21.5 0 0 10.137-38.25-3.72-62.5-13.856-24.25-51.72-34.5-51.72-34.5zm295.44 0S365.856 357.75 352 382c-13.856 24.25-3.72 62.5-3.72 62.5 48 28 61.863 3.75 147.72 21.5-58.144-66.25-44.28-90.5-92.28-118.5z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct LevelThreeAdvanced;

impl IconShape for LevelThreeAdvanced {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 46c-27.713 84-55.438 84-55.438 140 0 0 27.725 28 55.438 28 27.712 0 55.438-28 55.438-28 0-56-27.726-56-55.438-140zm0 168c-61.22 0-110.844 50.143-110.844 112 0 20.287 5.353 39.307 14.688 55.72-13.986-24.05-51.563-34.22-51.563-34.22-48 28-34.137 52.25-92.28 118.5 85.856-17.75 99.72 6.5 147.72-21.5 0 0 10.076-38.055-3.626-62.313C179.287 415.56 215.047 438 256 438s76.713-22.44 95.906-55.813c-13.7 24.258-3.625 62.313-3.625 62.313 48 28 61.863 3.75 147.72 21.5-58.144-66.25-44.28-90.5-92.28-118.5 0 0-37.577 10.17-51.564 34.22 9.335-16.413 14.688-35.433 14.688-55.72 0-61.856-49.623-112-110.844-112zm-27.72 28h55.44v56h55.405v56H283.72v56h-55.44v-56h-55.405v-56h55.406v-56z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct LevelTwo;

impl IconShape for LevelTwo {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-22.5 72-45 72-45 120 0 0 22.5 24 45 24s45-24 45-24c0-48-22.5-48-45-120zm2.625 144.03A90 96 0 0 0 166 256a90 96 0 0 0 180 0 90 96 0 0 0-87.375-95.97zM256 352c-22.5 0-45 24-45 24 0 48 22.5 48 45 120 22.5-72 45-72 45-120 0 0-22.5-24-45-24z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct LevelTwoAdvanced;

impl IconShape for LevelTwoAdvanced {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-22.5 72-45 72-45 120 0 0 22.5 24 45 24s45-24 45-24c0-48-22.5-48-45-120zm0 144c-49.706 0-90 42.98-90 96s40.294 96 90 96c49.705 0 90-42.98 90-96s-40.295-96-90-96zm0 192c-22.5 0-45 24-45 24 0 48 22.5 48 45 120 22.5-72 45-72 45-120 0 0-22.5-24-45-24zm-22.5-168h45v48h45v48h-45v48h-45v-48h-45v-48h45v-48z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct LuciferCannon;

impl IconShape for LuciferCannon {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M376 76c30 60-120 30-210 75 150 0 270 15 270 105S316 361 166 361c90 45 240 15 210 75 90-15 120-120 120-180S466 91 376 76zm-95.625 105.938C216.005 182.577 127.562 203.5 16 256c255 120 390 75 390 0 0-42.188-42.865-74.886-125.625-74.063z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct MassDriver;

impl IconShape for MassDriver {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M123.72 35.22c-30.363 19.964-56.875 46.728-76.282 80.343C28.03 149.178 18.108 185.502 16 221.78l149.72 8.782c.82-13.526 4.825-27.215 12.06-39.75 7.238-12.532 17.072-22.838 28.376-30.312L123.72 35.22zm264.56 0L305.845 160.5c11.304 7.474 21.138 17.778 28.375 30.313 7.235 12.532 11.24 26.222 12.06 39.75L496 221.78c-2.11-36.276-12.03-72.603-31.438-106.218-19.407-33.614-45.92-60.378-76.28-80.343zM256 175.75c-33.25 0-60.188 26.97-60.188 60.22 0 33.247 26.94 60.186 60.188 60.186 33.25 0 60.22-26.94 60.22-60.187 0-33.25-26.97-60.22-60.22-60.22zm-40.438 141.125l-67.28 134.03c32.47 16.315 68.904 25.876 107.718 25.876 38.814 0 75.248-9.562 107.72-25.874l-67.283-134.03c-12.124 6.05-25.964 9.405-40.437 9.405-14.473 0-28.313-3.353-40.438-9.405z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct MedicalPack;

impl IconShape for MedicalPack {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M76 46c-33.24 0-60 26.76-60 60v300c0 33.24 26.76 60 60 60h360c33.24 0 60-26.76 60-60V106c0-33.24-26.76-60-60-60zm120 60h120v90h90v120h-90v90H196v-90h-90V196h90z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct MedicalPackAlt;

impl IconShape for MedicalPackAlt {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M76 46c-33.24 0-60 26.76-60 60v300c0 33.24 26.76 60 60 60h360c33.24 0 60-26.76 60-60V106c0-33.24-26.76-60-60-60H76zm0 60h360v300H76V106zm150 60v60h-60v60h60v60h60v-60h60v-60h-60v-60h-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Nodular;

impl IconShape for Nodular {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16a90 90 0 0 0-15 178.593v48.75a60 60 0 0 0 0 115.782v49.688A45 45 0 0 0 256 496a45 45 0 0 0 15-87.188v-50.157a60 60 0 0 0 0-115.78V194.59a90 90 0 0 0-15-178.594zm-2.813 30A60 60 0 0 1 256 46a60 60 0 0 1 0 120 60.017 60.017 0 0 1-2.813-120z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Nuclear;

impl IconShape for Nuclear {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 31c-26.498 0-79.5 26.92-79.5 53.844S203.003 165.62 256 219.47c52.997-53.85 79.5-107.702 79.5-134.626C335.5 57.92 282.498 31 256 31zm1.53 215.406A52.997 53.847 0 0 0 203 300.25a52.997 53.847 0 0 0 106 0 52.997 53.847 0 0 0-51.47-53.844zm-166.155 80.47c-26.704.12-47.245 4.393-58.72 11.124-22.947 13.462-19.373 73.558-6.124 96.875 13.25 23.317 62.678 56.493 85.626 43.03 22.95-13.46 55.602-63.722 75-137.28-36.197-9.855-69.077-13.87-95.78-13.75zm329.25 0c-26.704-.122-59.584 3.894-95.78 13.75 19.397 73.557 52.05 123.818 75 137.28 22.947 13.462 72.375-19.714 85.624-43.03 13.248-23.318 16.822-83.414-6.126-96.876-11.474-6.73-32.015-11.004-58.72-11.125z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Overkill;

impl IconShape for Overkill {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C123.45 16 16 123.45 16 256s107.45 240 240 240 240-107.45 240-240S388.55 16 256 16zm0 60c99.41 0 180 80.59 180 180s-80.59 180-180 180S76 355.41 76 256 156.59 76 256 76zM121.937 182.375A67.5 62.31 0 0 0 106 222.688a67.5 62.309 0 0 0 131.72 20.156 135 69.23 0 0 1-115.782-60.47zm268.125 0a135 69.23 0 0 1-115.78 60.47A67.5 62.31 0 0 0 406 222.687a67.5 62.309 0 0 0-15.938-40.313z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Overmind;

impl IconShape for Overmind {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 25.063c-61.584 61.583-76.97 107.77-76.97 138.562 0 30.792 46.18 46.188 76.97 46.188 30.792 0 76.97-15.396 76.97-46.188S317.583 86.647 256 25.062zM132.72 204.125c-9.21-.108-20.947 1.46-36.72 5.688 11.27 42.062 24.604 49.77 37.938 57.468C147.27 274.98 168.3 269.335 176 256c7.698-13.333 2.053-34.365-11.28-42.063-8.334-4.81-16.654-9.632-32-9.812zm246.56 0c-15.346.18-23.666 5-32 9.813-13.332 7.697-18.978 28.73-11.28 42.062 7.698 13.333 28.73 18.98 42.063 11.28 13.333-7.697 26.667-15.405 37.937-57.467-15.774-4.227-27.51-5.796-36.72-5.688zM256 240.595c-34.01 0-61.594 27.58-61.594 61.593 0 34.01 27.583 61.593 61.594 61.593 34.01 0 61.594-27.58 61.594-61.592S290.01 240.594 256 240.594zm-144.03 60.218c-5.005.098-9.887 1.353-14.47 4C70.833 320.21 38.542 356.625 16 440.75c84.125 22.54 131.833 12.77 158.5-2.625 26.667-15.396 16.896-63.083 1.5-89.75-12.75-22.084-39.923-48.04-64.03-47.563zm286.686 0c-23.76.5-50.147 25.895-62.656 47.562-15.396 26.667-25.167 74.354 1.5 89.75s74.375 25.166 158.5 2.625c-22.54-84.126-54.833-120.54-81.5-135.938-5-2.886-10.36-4.115-15.844-4zM256 394.563c-15.396 0-30.78 15.385-30.78 30.78 0 15.397-.012 30.803 30.78 61.594 30.792-30.792 30.78-46.198 30.78-61.593 0-15.396-15.384-30.78-30.78-30.78z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Poison;

impl IconShape for Poison {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M181 181c15 0 60-60 30-105 15-15 15-30 45-30s60 45 60 75-30 60-75 90-120 90-120 165c0 60 45 120 120 120s150-30 150-120c0-60-60-90-90-90-45 0-75 30-90 75 45-60 135-60 135 15 0 45-45 75-105 75-30 0-60-30-60-75s45-90 90-120 90-75 90-120c0-60-45-120-105-120-30 0-60 30-75 45s-45 15-45 60c0 15 30 60 45 60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct PoisonCloud;

impl IconShape for PoisonCloud {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 106c-33.81 0-61.887 22.69-71.25 53.438C174.532 154.22 163.258 151 151 151c-41.42 0-75 33.58-75 75 0 1.784.346 3.405.468 5.157C41.284 243.387 16 276.65 16 316c0 49.706 40.294 90 90 90h300c49.706 0 90-40.294 90-90 0-39.35-25.284-72.614-60.468-84.843.123-1.752.468-3.374.468-5.157 0-41.42-33.58-75-75-75-12.258 0-23.532 3.222-33.75 8.437C317.887 128.69 289.81 106 256 106zm-60 90l60 60 60-60 30 30-60 60 60 60-30 30-60-60-60 60-30-30 60-60-60-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Pounce;

impl IconShape for Pounce {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M196 16l60 60 60-60H196zm-30 90l90 90 90-90H166zm-30 120l120 120 120-120H136zm121.75 150.03A60 60 0 0 0 196 436a60 60 0 0 0 120 0 60 60 0 0 0-58.25-59.97z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Pulse;

impl IconShape for Pulse {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-120 0-135 105-60 195 0-165 135-45 135-135 0-30-45-60-75-60zm146.25 134.532C370.61 152.554 334.75 167.875 301 196c165 0 45 135 135 135 30 0 60-45 60-75 0-75-41.016-108.838-93.75-105.468zM76 181c-30 0-60 45-60 75 0 120 105 135 195 60-165 0-45-135-135-135zm175.782 15A60 60 0 0 0 196 256a60 60 0 0 0 120 0 60 60 0 0 0-64.218-60zM316 301c0 165-135 45-135 135 0 30 45 60 75 60 120 0 135-105 60-195z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Reactor;

impl IconShape for Reactor {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 41.875c-60.562 0-60.547 15.14-75.688 60.563l-30.28 90.843 41.624 41.626c16.44-16.44 39.26-26.47 64.344-26.47 25.085 0 47.904 10.03 64.344 26.47l41.625-41.625-30.283-90.843c-15.14-45.42-15.125-60.562-75.687-60.562zm0 196.844c-33.447 0-60.563 27.083-60.563 60.53s27.116 60.563 60.563 60.563 60.563-27.116 60.563-60.563-27.116-60.53-60.563-60.53zm-144.78 21.75l-63.532 71.655C15.92 367.947 2.813 375.52 33.093 427.97c30.28 52.447 43.406 44.88 90.312 35.28l93.813-19.22 15.218-56.874c-22.457-6.017-42.552-20.744-55.094-42.47-12.544-21.723-15.267-46.51-9.25-68.967l-56.875-15.25zm289.56 0l-56.874 15.25c6.017 22.455 3.293 47.243-9.25 68.967-12.542 21.725-32.637 36.452-55.094 42.47l15.22 56.874 93.812 19.22c46.906 9.6 60.03 17.167 90.312-35.28 30.28-52.45 17.173-60.023-14.594-95.845l-63.53-71.656z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Regeneration;

impl IconShape for Regeneration {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M229.594 16c-73.58 4.91-128.97 66.775-128.97 142.344 0 18.565 3.507 36.337 9.907 52.594 6.526 16.573 14.974 35.78 81.72 99.062l19.47-11.375c-1.224-3.453-1.876-7.155-1.876-11.03 0-15.672 10.893-28.772 25.437-32.033v-22.75c-56.316-3.484-101.03-50.67-101.03-108.437 0-56.834 40.318-103.563 95.344-108.375zm12.75 137.313c-29.654 0-57.053 9.766-79.22 26.28 6.817 9.665 15.288 18.155 24.907 24.938 15.6-10.34 34.262-16.374 54.314-16.374 21.142 0 40.753 6.698 56.844 18.094 14.128-3.45 28.403-6.214 42.875-7.75-24.47-27.71-60.07-45.188-99.72-45.188zM355 209.093c-17.672.308-46.292 5.044-106.53 23.438v22.69c3.57.656 7.083 1.967 10.405 3.905 13.433 7.834 19.226 23.895 14.75 38.25l19.5 11.375c31.146-47.53 93.95-63.04 143.47-34.156 48.717 28.416 68.605 87.043 45.217 137.594 32.582-66.832 7.25-146.247-57.53-184.032-15.916-9.282-32.896-15.096-50.032-17.625-5.46-.805-11.217-1.576-19.25-1.436zm-239.47 36.813c-11.52 35.264-8.7 75.154 11.126 109.844 14.828 25.944 36.886 45.05 62.125 56.188 4.878-10.796 7.934-22.474 8.94-34.282-16.666-8.476-31.163-21.767-41.19-39.312-10.57-18.498-14.63-39.005-12.905-58.78-10.022-10.637-19.54-21.764-28.094-33.658zM375.19 273.5c-11.693 1.13-23.22 4.29-33.844 9.313 1.066 18.82-3.1 38.174-13.125 55.718-10.573 18.5-26.094 32.307-43.908 40.69-4.105 14.085-8.893 27.944-14.812 41.374 35.99-7.553 68.768-29.967 88.594-64.656 14.827-25.946 20.167-54.788 17.094-82.438zM267.25 308.844c-2.35 2.796-5.24 5.218-8.563 7.156-13.432 7.834-30.12 4.875-40.187-6.22l-19.47 11.345c25.173 51.015 7.052 113.74-42.468 142.625C107.844 492.166 47.638 480.238 16 434.5c40.998 61.92 121.75 79.472 186.53 41.688 15.916-9.282 29.36-21.24 40.095-34.97 10.946-13.994 23.187-30.992 44.063-121.03l-19.438-11.344z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Revolt;

impl IconShape for Revolt {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M106 145.23c0-36.923 37.5-36.923 37.5-36.923s-18.75-23.163-18.75-36.922c0-13.76 0-18.462 18.75-36.922C162.25 16 162.25 16 181 16h150c18.75 0 42.22 19.56 56.25 36.923C398.26 66.556 406 89.845 406 101.813c0 61.88-50.018 178.424-50.018 178.424l6.137 215.197-203.352.566L181 274.46l-37.5-36.922c-18.75-18.462-37.5-36.924-37.5-55.384z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Rifle;

impl IconShape for Rifle {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16S136 76 136 226v120c0 30 0 30 30 30h180c30 0 30 0 30-30V226C376 76 256 16 256 16zm0 75s60 30 60 135v60H196v-60c0-105 60-135 60-135zM148.63 420.998A12.632 12.632 0 0 0 136 433.63v49.737a12.632 12.632 0 0 0 12.63 12.63h214.74a12.632 12.632 0 0 0 12.63-12.63V433.63A12.632 12.632 0 0 0 363.37 421H148.63z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Select;

impl IconShape for Select {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M138.563 16.063C83.49 42.974 41.459 86.794 16.124 138.53l59.938 29.407c18.988-38.845 50.47-71.807 91.812-92l-29.313-59.874zm234.843.156L344 76.124c38.846 18.99 71.807 50.47 92 91.813l59.875-29.313c-26.913-55.073-70.732-97.073-122.47-122.406zm62.53 327.717c-18.982 38.865-50.53 71.673-91.873 91.875l29.437 60.125c55.116-26.925 97.085-70.76 122.375-122.562l-59.938-29.438zm-359.936.125l-60 29.375c26.928 55.097 70.776 97.082 122.563 122.375l29.406-59.937C129.122 416.885 96.192 385.4 76 344.062z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Shield;

impl IconShape for Shield {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c25 24 100 72 150 72v96c0 96-75 240-150 312-75-72-150-216-150-312V88c50 0 125-48 150-72z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Shotgun;

impl IconShape for Shotgun {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M160.72 16C136 16.11 136 17.875 136 46v300c0 30 0 30 30 30h180c30 0 30 0 30-30V46c0-30 0-30-30-30H166c-1.875 0-3.633-.007-5.28 0zM196 76h120v210H196V76zm-46.656 345A13.333 13.333 0 0 0 136 434.344v48.312A13.333 13.333 0 0 0 149.344 496h213.312A13.333 13.333 0 0 0 376 482.656v-48.312A13.333 13.333 0 0 0 362.656 421H149.344z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct SlowBlob;

impl IconShape for SlowBlob {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-30 0-50 20-50 40 0 20.478 10.487 33.113 22.063 52.625-20.646 3.89-39.81 11.992-56.532 23.406-5.608-21.973-7.116-38.335-21.593-52.81-14.14-14.143-42.443-14.152-63.656 7.06-21.212 21.214-21.204 49.515-7.06 63.657 14.476 14.478 30.837 15.985 52.81 21.594-11.413 16.724-19.516 35.887-23.405 56.532C89.113 216.488 76.478 206 56 206c-20 0-40 20-40 50s20 50 40 50c20.478 0 33.113-10.487 52.625-22.063 3.89 20.646 11.992 39.81 23.406 56.532-21.973 5.608-38.335 7.116-52.81 21.592-14.143 14.142-14.152 42.444 7.06 63.657 21.214 21.212 49.515 21.204 63.657 7.06 14.478-14.476 15.985-30.837 21.594-52.81 16.724 11.413 35.887 19.516 56.532 23.405C216.488 422.887 206 435.522 206 456c0 20 20 40 50 40s50-20 50-40c0-20.478-10.487-33.113-22.063-52.625 20.646-3.89 39.81-11.992 56.532-23.406 5.608 21.973 7.116 38.335 21.592 52.81 14.142 14.143 42.444 14.152 63.657-7.06 21.212-21.214 21.204-49.515 7.06-63.658-14.476-14.477-30.837-15.984-52.81-21.593 11.413-16.724 19.516-35.887 23.405-56.533C422.887 295.512 435.522 306 456 306c20 0 40-20 40-50s-20-50-40-50c-20.478 0-33.113 10.487-52.625 22.063-3.89-20.646-11.992-39.81-23.406-56.532 21.973-5.608 38.335-7.116 52.81-21.593 14.143-14.14 14.152-42.443-7.06-63.656-21.214-21.212-49.515-21.204-63.658-7.06-14.477 14.476-15.984 30.837-21.593 52.81-16.724-11.413-35.887-19.516-56.533-23.405C295.512 89.113 306 76.478 306 56c0-20-20-40-50-40zm0 180c16.568 0 31.58 6.705 42.438 17.563C309.294 224.42 316 239.433 316 256c0 16.568-6.705 31.58-17.563 42.438C287.58 309.294 272.567 316 256 316c-16.568 0-31.58-6.705-42.438-17.563C202.706 287.58 196 272.567 196 256c0-16.568 6.705-31.58 17.563-42.438C224.42 202.706 239.433 196 256 196z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Snorkel;

impl IconShape for Snorkel {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M353.5 16c-15 0-15 15-15 30v60a15 15 0 0 0-15 15v30a15 15 0 0 0 15 15v210c0 33.137-26.863 60-60 60s-60-26.863-60-60c0 0 15-15 15-30s45-30 45-45-15-15-15-15-8.565 8.59-20.72 18.25A15 15 0 0 0 218.5 316a15 15 0 0 0 .72 4.53C208.733 326.586 197.885 331 188.5 331c-9.375 0-20.214-4.395-30.688-10.438A15 15 0 0 0 158.5 316a15 15 0 0 0-24.28-11.78C122.072 294.562 113.5 286 113.5 286s-15 0-15 15 45 30 45 45 15 30 15 30c0 66.274 53.726 120 120 120s120-53.726 120-120V166a15 15 0 0 0 15-15v-30a15 15 0 0 0-15-15V46c0-15 0-30-15-30h-30z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct SpawnNode;

impl IconShape for SpawnNode {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M136 16v30h240V16H136zm0 60v60h240V76H136zm0 90v90h240v-90H136zm0 120v120h240V286H136zm-30 150c-15 0-30 15-30 30v30h360v-30c0-15-15-30-30-30H106z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Spikeball;

impl IconShape for Spikeball {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-7.395 0-15.073 25.16-22.5 56.971a184.615 184.615 0 0 0-90.865 37.79C114.86 93.495 91.472 81.006 86.24 86.24c-5.225 5.227 7.288 28.52 24.52 56.25a184.615 184.615 0 0 0-37.933 91.01C41.08 240.917 16 248.615 16 256c0 7.395 25.16 15.073 56.971 22.5a184.615 184.615 0 0 0 37.79 90.865c-17.266 27.776-29.753 51.162-24.52 56.394 5.228 5.226 28.52-7.287 56.25-24.52a184.615 184.615 0 0 0 91.01 37.934c7.418 31.75 15.116 56.828 22.5 56.828 7.395 0 15.073-25.16 22.5-56.972a184.615 184.615 0 0 0 90.865-37.788c27.776 17.263 51.162 29.752 56.394 24.52 5.226-5.227-7.287-28.52-24.52-56.25a184.615 184.615 0 0 0 37.932-91.01C470.923 271.083 496 263.385 496 256c0-7.395-25.16-15.074-56.971-22.5a184.615 184.615 0 0 0-37.79-90.866c17.265-27.775 29.753-51.162 24.52-56.394-5.228-5.226-28.52 7.287-56.25 24.52a184.615 184.615 0 0 0-91.01-37.933C271.082 41.08 263.385 16 256 16zm3.172 129.23A110.77 110.77 0 0 1 366.77 256a110.77 110.77 0 0 1-221.54 0 110.77 110.77 0 0 1 113.944-110.77z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Spikes;

impl IconShape for Spikes {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-5.718 51.466-24.204 93.997-32.813 124.687-8.896 2.525-17.386 5.918-25.312 10.313-27.803-15.645-71.13-32.34-111.563-64.688 32.348 40.434 49.043 83.76 64.688 111.563-4.395 7.926-7.788 16.416-10.313 25.312C109.997 231.797 67.467 250.282 16 256c51.466 5.718 93.997 24.204 124.687 32.812 2.525 8.897 5.918 17.387 10.313 25.313-15.645 27.802-32.34 71.128-64.688 111.562 40.434-32.347 83.76-49.042 111.563-64.687 7.926 4.395 16.416 7.788 25.312 10.312 8.61 30.69 27.095 73.22 32.813 124.688 5.718-51.467 24.204-93.998 32.812-124.688 8.897-2.524 17.387-5.917 25.313-10.312 27.802 15.645 71.128 32.34 111.562 64.687-32.347-40.434-49.042-83.76-64.687-111.562 4.395-7.926 7.788-16.416 10.312-25.313 30.69-8.608 73.22-27.094 124.688-32.812-51.467-5.718-93.998-24.204-124.688-32.813-2.524-8.896-5.917-17.386-10.312-25.312 15.645-27.803 32.34-71.13 64.687-111.563-40.434 32.348-83.76 49.043-111.562 64.688-7.926-4.395-16.416-7.788-25.313-10.313C280.204 109.997 261.718 67.467 256 16zm0 180c16.57 0 31.798 6.486 42.657 17.343C309.515 224.2 316 239.43 316 256c0 16.57-6.486 31.798-17.343 42.657C287.797 309.515 272.57 316 256 316c-16.57 0-31.8-6.486-42.657-17.343C202.483 287.797 196 272.57 196 256c0-16.57 6.486-31.8 17.343-42.657C224.2 202.483 239.43 196 256 196z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct SpikesFull;

impl IconShape for SpikesFull {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-7.5 67.5-37.5 150-37.5 180 0 15 15 30 37.5 30s37.5-15 37.5-30c0-30-30-112.5-37.5-180zM143.5 61.156c27.255 62.207 24.5 72.447 32 85.438 7.5 12.99 15.01 25.97 28 18.47s5.5-20.48-2-33.47c-7.5-12.99-17.755-15.73-58-70.438zm225 0c-40.245 54.707-50.5 57.447-58 70.438-7.5 12.99-14.99 25.97-2 33.47s20.5-5.48 28-18.47c7.5-12.99 4.745-23.23 32-85.438zM61.156 143.5c54.707 40.245 57.447 50.5 70.438 58 12.99 7.5 25.97 14.99 33.47 2s-5.48-20.5-18.47-28c-12.99-7.5-23.23-4.745-85.438-32zm389.688 0c-62.207 27.255-72.447 24.5-85.438 32-12.99 7.5-25.97 15.01-18.47 28 7.502 12.99 20.48 5.5 33.47-2 12.99-7.5 15.73-17.755 70.438-58zM196 218.5c-30 0-112.5 30-180 37.5 67.5 7.5 150 37.5 180 37.5 15 0 30-15 30-37.5s-15-37.5-30-37.5zm120 0c-15 0-30 15-30 37.5s15 37.5 30 37.5c30 0 112.5-30 180-37.5-67.5-7.5-150-37.5-180-37.5zM256 286c-22.5 0-37.5 15-37.5 30 0 30 30 112.5 37.5 180 7.5-67.5 37.5-150 37.5-180 0-15-15-30-37.5-30zm-102.438 15.438c-6.563.164-14.255 4.61-21.968 9.062-12.99 7.5-15.73 17.755-70.438 58 62.207-27.255 72.447-24.5 85.438-32 12.99-7.5 25.97-15.01 18.47-28-3.048-5.277-7.01-7.175-11.5-7.063zm203.844 0c-4.067.19-7.656 2.19-10.47 7.062-7.498 12.99 5.48 20.5 18.47 28 12.99 7.5 23.23 4.745 85.438 32-54.707-40.245-57.447-50.5-70.438-58-8.12-4.688-16.22-9.378-23-9.063zM195.72 344.75c-8.48.378-14.36 10.508-20.22 20.656-7.5 12.99-4.745 23.23-32 85.438 40.245-54.707 50.5-57.447 58-70.438 7.5-12.99 14.99-25.97 2-33.47-2.842-1.64-5.408-2.292-7.78-2.186zm119.53 0c-2.086.1-4.314.78-6.75 2.188-12.99 7.5-5.5 20.478 2 33.468 7.5 12.99 17.755 15.73 58 70.438-27.255-62.207-24.5-72.447-32-85.438-6.094-10.554-12.21-21.092-21.25-20.656z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct SpikesHalf;

impl IconShape for SpikesHalf {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-7.5 67.5-37.5 150-37.5 180 0 15 15 30 37.5 30s37.5-15 37.5-30c0-30-30-112.5-37.5-180zM96.906 96.906c63.64 84.853 63.644 84.862 74.25 95.47 10.607 10.606 21.206 21.2 31.813 10.593 10.605-10.608.01-21.207-10.595-31.814-10.607-10.606-10.616-10.61-95.47-74.25zm318.188 0c-84.853 63.64-84.863 63.644-95.47 74.25-10.606 10.607-21.2 21.206-10.593 31.813 10.608 10.605 21.207.012 31.814-10.595 10.606-10.606 10.61-10.616 74.25-95.47zM196 218.5c-30 0-112.5 30-180 37.5 67.5 7.5 150 37.5 180 37.5 15 0 30-15 30-37.5s-15-37.5-30-37.5zm120 0c-15 0-30 15-30 37.5s15 37.5 30 37.5c30 0 112.5-30 180-37.5-67.5-7.5-150-37.5-180-37.5zM256 286c-22.5 0-37.5 15-37.5 30 0 30 30 112.5 37.5 180 7.5-67.5 37.5-150 37.5-180 0-15-15-30-37.5-30zm-62.97 18.656c-7.29.4-14.582 7.677-21.874 14.97-10.606 10.606-10.61 10.615-74.25 95.468 84.853-63.64 84.862-63.644 95.47-74.25 10.606-10.607 21.2-21.206 10.593-31.813-3.316-3.313-6.624-4.555-9.94-4.374zm124.94 0c-2.984.1-5.956 1.392-8.94 4.375-10.605 10.608-.01 21.207 10.595 31.814 10.606 10.606 10.616 10.61 95.47 74.25-63.64-84.853-63.645-84.862-74.25-95.47-7.625-7.622-15.253-15.22-22.876-14.968z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct SpikesInit;

impl IconShape for SpikesInit {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-7.5 67.5-37.5 150-37.5 180 0 15 15 30 37.5 30s37.5-15 37.5-30c0-30-30-112.5-37.5-180zm-60 202.5c-30 0-112.5 30-180 37.5 67.5 7.5 150 37.5 180 37.5 15 0 30-15 30-37.5s-15-37.5-30-37.5zm120 0c-15 0-30 15-30 37.5s15 37.5 30 37.5c30 0 112.5-30 180-37.5-67.5-7.5-150-37.5-180-37.5zM256 286c-22.5 0-37.5 15-37.5 30 0 30 30 112.5 37.5 180 7.5-67.5 37.5-150 37.5-180 0-15-15-30-37.5-30z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Splash;

impl IconShape for Splash {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M135.563 17.5c-16.394-.215-25.532 15.656-25.532 15.656L63 144.562l26 15 72.97-96.406s15.012-26-10.97-41c-5.683-3.28-10.847-4.596-15.438-4.656zm219.656 13.22c-9.124.072-16.47 4.31-16.47 4.31L112.437 183l15 26L368.75 86.97S394.72 71.98 379.72 46c-7.033-12.18-16.452-15.346-24.5-15.28zM16 166v180a90 90 0 0 0 0-180zm435 45l-315 30v30l315 30s45 0 45-45-45-45-45-45zm-323.563 92l-15 26L338.75 476.97s25.97 15.012 40.97-10.97-10.97-40.97-10.97-40.97L127.437 303zM89 352.438l-26 15 47.03 111.406s14.99 25.97 40.97 10.97c25.982-15.002 10.97-40.97 10.97-40.97L89 352.438z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Suicide;

impl IconShape for Suicide {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M241 16a15 15 0 0 0-15 15v60h-15a15 15 0 0 0-15 15v90a15 15 0 0 0 13.844 14.938C158.366 301.06 106 326.67 106 361c0 90 72.837 135 150 135s150-45 150-135c0-34.326-52.37-59.927-103.844-150.03A15 15 0 0 0 316 196v-90a15 15 0 0 0-15-15h-15V31a15 15 0 0 0-15-15h-30zm15 210c15 45 90 120 90 135 0 45-45.033 90-90 90-45.033 0-90-45-90-90 0-15 75-90 90-135z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Syringe;

impl IconShape for Syringe {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M289.023 237.916v-39.868c0-3.275-1.524-8.118-12.27-8.118-10.746 0-12.27 4.843-12.27 8.118v39.868c0 3.275 2.134 7.016 12.27 7.016 10.135 0 12.27-3.74 12.27-7.016zM249.62 493.794l-3.026-116.778c-14.207-.53-22.388-.734-29.972-2.646-5.254-1.326-7.842-5.115-7.842-10.97V195.893c0-3.857-.343-6.153-6.504-6.107-10.438.075-51.274.59-51.274.59l7.572-13.055c1.407-2.425 2.695-4.23 6.36-4.23 2.626 0 23.332 2.56 37.485 1.18 7.208-.7 10.415-1.528 13.65-6.43 5.726-8.68 4.578-29.61-5.782-44.143-2.51-3.52.2-6.637 4.597-5.202 9.624 3.14 25.745 2.658 25.745 2.658V39.162c0-2.786-1.66-4.413-5.02-4.413h-58.385s7.98-15.586 19.53-17.212c12.615-1.776 39.49-1.526 59.245-1.526 19.757 0 46.63-.25 59.246 1.526 11.55 1.626 19.53 17.21 19.53 17.21H276.39c-3.36 0-5.02 1.628-5.02 4.414v81.994s16.12.483 25.745-2.658c4.397-1.435 7.106 1.682 4.598 5.2-10.36 14.533-11.508 35.464-5.78 44.144 3.233 4.902 6.44 5.73 13.65 6.43 14.15 1.38 34.857-1.18 37.482-1.18 3.668 0 4.956 1.805 6.362 4.23L361 190.378s-40.837-.513-51.276-.59c-6.16-.046-6.504 2.25-6.504 6.106V363.4c0 5.855-2.587 9.644-7.842 10.97-7.582 1.912-15.763 2.116-29.97 2.646l-3.027 116.778c-.048 1.918-2.997 2.206-6.38 2.206-3.384 0-6.334-.288-6.384-2.206zm-14.37-248.862c10.135 0 12.27-3.74 12.27-7.016v-39.868c0-3.275-1.525-8.118-12.27-8.118-10.747 0-12.27 4.843-12.27 8.118v39.868c0 3.275 2.134 7.016 12.27 7.016z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct TargetLaser;

impl IconShape for TargetLaser {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M61 16L16 61l195 180 195 165-165-195L61 16zm314.97 240c-21.068.066-42.135 5.635-60.876 16.656l45.406 45.406c10.03-2.64 20.587-2.446 30.594.157l45.75-45.75v-.064c-18.757-11.03-39.81-16.472-60.875-16.406zm-103.314 59.156c-22.027 37.48-22.31 84.238-.25 121.75l45.75-45.75c-2.56-10.002-2.73-20.594-.094-30.625l-45.406-45.374zm206.938 0l-45.75 45.75c2.556 10.007 2.73 20.565.094 30.594l45.406 45.406c22.03-37.48 22.312-84.24.25-121.75zM360.906 433.844l-45.75 45.75c37.514 22.06 84.27 21.788 121.75-.25L391.5 433.938V434c-10.03 2.64-20.592 2.45-30.594-.156z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Targeted;

impl IconShape for Targeted {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C123.45 16 16 123.45 16 256s107.45 240 240 240 240-107.45 240-240S388.55 16 256 16zm0 60c99.41 0 180 80.59 180 180s-80.59 180-180 180S76 355.41 76 256 156.59 76 256 76zm-15 30a15 15 0 0 0-15 15v30a15 15 0 0 0 15 15h30a15 15 0 0 0 15-15v-30a15 15 0 0 0-15-15h-30zm16.75 90.03A60 60 0 0 0 196 256a60 60 0 0 0 120 0 60 60 0 0 0-58.25-59.97zM121 226a15 15 0 0 0-15 15v30a15 15 0 0 0 15 15h30a15 15 0 0 0 15-15v-30a15 15 0 0 0-15-15h-30zm240 0a15 15 0 0 0-15 15v30a15 15 0 0 0 15 15h30a15 15 0 0 0 15-15v-30a15 15 0 0 0-15-15h-30zM241 346a15 15 0 0 0-15 15v30a15 15 0 0 0 15 15h30a15 15 0 0 0 15-15v-30a15 15 0 0 0-15-15h-30z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Telefrag;

impl IconShape for Telefrag {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-59.998 0-120 30-120 75 0 30 22.5 45 22.5 75 0 22.5-7.5 22.5-7.5 37.5 0 7.5 24.006 16.002 45 22.5v30h120v-30s45.283-13.978 45-22.5c-.465-13.974-7.5-15-7.5-37.5 0-15 22.82-45.71 22.5-75 0-45-60.002-75-120-75zm-45 90c16.57 0 30 13.433 30 30 0 16.568-13.43 30-30 30s-30-13.432-30-30c0-16.567 13.43-30 30-30zm90 0c16.567 0 30 13.433 30 30 0 16.568-13.432 30-30 30-16.57 0-30-13.432-30-30 0-16.567 13.43-30 30-30zm-45 52.5c7.5 0 22.5 30 22.5 37.5 0 15 0 15-7.5 15h-30c-7.5 0-7.5 0-7.5-15 0-7.5 15-37.5 22.5-37.5zM136 286v45h240v-45H136zm0 75v45h240v-45H136zm-30 75c-15 0-30 15-30 30v30h360v-30c0-15-15-30-30-30H106z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Tesla;

impl IconShape for Tesla {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M136 16v210l45 30v60h60V166l-45-30V76l45-30V16H136zm135 0v30l45 30v60l-45 30v150h60v-60l45-30V16H271zm-13.688 45.03A45 45 0 0 0 211 106a45 45 0 0 0 90 0 45 45 0 0 0-43.688-44.97zM181 346c-30 0-45 15-45 30h240c0-15-15-30-45-30H181zm-75 60c-15 0-30 15-30 30v60h360v-60c0-15-15-30-30-30H106z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Tombstone;

impl IconShape for Tombstone {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 46c-81.822 0-150 63.366-150 150v150c0 6.668-.757 23.558 0 30h300c.757-6.442 0-23.332 0-30V196c0-86.634-68.178-150-150-150zM16 406v60h480v-60H16z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Trample;

impl IconShape for Trample {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M136 16h15l15 15 15-15h150l15 15 15-15h15v120h-15l-15-15-15 15h-45v345c0 15-15 15-15 15h-30s-15 0-15-15V136h-45l-15-15-15 15h-15z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct TriggerHurt;

impl IconShape for TriggerHurt {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M254.25 121.03A60 60 0 0 0 196 181a60 60 0 0 0 120 0 60 60 0 0 0-61.75-59.97zM136 271l-60 60H46c-15 0-30 15-30 30v30h480v-30c0-15-15-30-30-30h-30l-60-60-60 60-60-60-60 60-60-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Turret;

impl IconShape for Turret {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M130.72 61C106 61.11 106 62.875 106 91H76l-15 30v60l15 30h30c0 30 0 30 30 30h120c30 0 30 0 30-30h15l15-30h180v-60H316l-15-30h-15c0-30 0-30-30-30H136c-1.875 0-3.633-.007-5.28 0zM166 271a15 15 0 0 0-15 15v45a15 15 0 0 0 15 15h60a15 15 0 0 0 15-15v-45a15 15 0 0 0-15-15h-60zm-15 105c-30 0-45 30-45 30-15 0-30 0-30 15l-60 15v15h360v-15l-60-15c0-15-15-15-30-15 0 0-15-30-45-30h-90z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Unplugged;

impl IconShape for Unplugged {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M196 136c-61.174 0-111.656 45.834-119.063 105H16v30h60.938C84.344 330.166 134.825 376 196 376h15c8.31 0 15-6.69 15-15v-30h45v-30h-45v-90h45v-30h-45v-30c0-8.31-6.69-15-15-15h-15zm210 0c-8.31 0-15 6.69-15 15v30h30v30h-30v90h30v30h-30v30c0 8.31 6.69 15 15 15h90V136h-90z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Usable;

impl IconShape for Usable {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16C123.45 16 16 123.453 16 256c0 132.548 107.45 240 240 240 132.548 0 240-107.452 240-240S388.548 16 256 16zm0 60c99.41 0 180 80.59 180 180s-80.59 180-180 180S76 355.41 76 256 156.59 76 256 76zm-15 45c-7.5 0-10.802 7.833-9.563 14.313l19.907 91.218c.73 9.53-7.815 8.665-12.625 4.19l-45.064-61.282c-2.706-4.937-10.62-10.596-17.594-6.782-6.973 3.815-6.41 12.334-4 17.344l40.344 62.938c10.388 16.62 12.386 32.35 12.563 52.812-.34 13.825-11.4 20.024-21.97 20.688l-43.53-3.844c-11.047.024-23.47 7.79-23.47 18.406 0 10.617 17.494 9.182 27 11.625 0 0 62.778 18.345 86.844 18.375 16.422.017 16.003 21.326 25.687 21.28 9.16-.04 41.118-11.973 46.5-14.655 5.385-2.682 29.853-15.973 30.126-22.22.323-7.4-13.844-20.096-9.344-28.217 10.413-27.692.305-43.128 7.47-71.688C355.758 223.666 376 181 376 181c0-4.82-2.55-8.258-6.47-10.813-4.212-1.82-11.514-.874-13.374 3.72l-30.594 54.75c-4.69 4.277-10.706 3.163-12.125-4.5l2-86.47c.74-2.896-3.292-10.392-10.28-11.406-6.99-1.01-10.62 3.866-10.938 6.657l-6.22 87.5c-1.63 4.043-7.696 4.632-9.406.25L256.72 130.72c.19-5.952-5.877-9.72-15.72-9.72z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Vial;

impl IconShape for Vial {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M241.406 16a21.837 20.757 0 0 0-22.47 20.75 21.844 20.763 0 0 0 43.69 0A21.837 20.757 0 0 0 241.405 16zM286 52.594a13.866 13.18 0 0 0-14.125 13.312 13.875 13.188 0 0 0 27.75 0A13.866 13.18 0 0 0 286 52.594zM166 92.72l15.125 24.624v307.5C181.125 464.27 214.523 496 256 496s74.875-31.73 74.875-71.156v-307.5L346 92.72H166zM197.906 125h116.188v108H197.906V125zm85.594 71.375a13.866 13.18 0 0 0-14.125 13.313 13.866 13.18 0 1 0 27.72 0 13.866 13.18 0 0 0-13.595-13.313zm-52.47 64.47c7.66 0 13.845 5.908 13.845 13.186 0 7.28-6.186 13.19-13.844 13.19-7.656 0-13.874-5.91-13.874-13.19 0-7.278 6.218-13.186 13.875-13.186zM276 282.436c12.06 0 21.844 9.286 21.844 20.75 0 11.463-9.784 20.75-21.844 20.75s-21.844-9.285-21.844-20.75c0-11.464 9.784-20.75 21.844-20.75z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct WaterDrop;

impl IconShape for WaterDrop {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M406.043 316c24.11 96.443-50.59 180-150 180s-174.405-82.38-150-180c15-60 90-150 150-300 60 150 135 240 150 300z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct WeightCrush;

impl IconShape for WeightCrush {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M256 16c-41.42 0-75 33.58-75 75 0 17.06 5.874 32.398 15.468 45H136L46 346h420l-90-210h-60.468C325.127 123.398 331 108.06 331 91c0-41.42-33.58-75-75-75zm0 30c24.854 0 45 20.146 45 45 0 24.853-20.146 45-45 45s-45-20.147-45-45c0-24.854 20.146-45 45-45zm-4.218 330A60 60 0 0 0 196 436a60 60 0 0 0 120 0 60 60 0 0 0-64.218-60z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}

#[derive(Default, Copy, Clone, PartialEq, Eq)]
pub struct Wrench;

impl IconShape for Wrench {
    fn child_elements(&self) -> Element {
        rsx!(path {
        d: "M0 0h512v512H0z",
            }
path {
        d: "M151 16c-14.774 0-30 15.226-30 30v105c0 14.774 11.946 26.718 26.718 26.718H181V334.28h-33.282c-14.773 0-26.718 11.946-26.718 26.718v105c0 14.774 15.227 30 30 30h30v-90l75-45 75 45v90h30c14.774 0 30-15.226 30-30v-105c0-14.773-11.946-26.718-26.718-26.718H331V177.718h33.282C379.056 177.718 391 165.772 391 151V46c0-14.773-15.226-30-30-30h-30v90l-75 45-75-45V16h-30z",
        fill: "#fff",
            })
    }

    const VIEW_BOX: Option<&'static str> = Some("0 0 512 512");

}