Files
tar1090/html/markers.js
iain MacDonnell 27ea92c402 Add labels to iconTest
Also adds a LightGrey background to the canvas (for contrast when saving
the resulting image, changes the (default) number of columns to 9, and
adds a USP, "iconTestCols", to override that.
2024-09-01 16:25:52 +02:00

1476 lines
104 KiB
JavaScript

// -*- mode: javascript; indent-tabs-mode: nil; c-basic-offset: 8 -*-
"use strict";
let shapes = {
'airliner': {
id: 0,
w: 32,
h: 32,
viewBox: '-1 -2 34 34',
strokeScale: 1.2,
path: 'M16 1c-.17 0-.67.58-.9 1.03-.6 1.21-.6 1.15-.65 5.2-.04 2.97-.08 3.77-.18 3.9-.15.17-1.82 1.1-1.98 1.1-.08 0-.1-.25-.05-.83.03-.5.01-.92-.05-1.08-.1-.25-.13-.26-.71-.26-.82 0-.86.07-.78 1.5.03.6.08 1.17.11 1.25.05.12-.02.2-.25.33l-8 4.2c-.2.2-.18.1-.19 1.29 3.9-1.2 3.71-1.21 3.93-1.21.06 0 .1 0 .13.14.08.3.28.3.28-.04 0-.25.03-.27 1.16-.6.65-.2 1.22-.35 1.28-.35.05 0 .12.04.15.17.07.3.27.27.27-.08 0-.25.01-.27.7-.47.68-.1.98-.09 1.47-.1.18 0 .22 0 .26.18.06.34.22.35.27-.01.04-.2.1-.17 1.06-.14l1.07.02.05 4.2c.05 3.84.07 4.28.26 5.09.11.49.2.99.2 1.11 0 .19-.31.43-1.93 1.5l-1.93 1.26v1.02l4.13-.95.63 1.54c.05.07.12.09.19.09s.14-.02.19-.09l.63-1.54 4.13.95V29.3l-1.93-1.27c-1.62-1.06-1.93-1.3-1.93-1.49 0-.12.09-.62.2-1.11.19-.81.2-1.25.26-5.09l.05-4.2 1.07-.02c.96-.03 1.02-.05 1.06.14.05.36.21.35.27 0 .04-.17.08-.16.26-.16.49 0 .8-.02 1.48.1.68.2.69.21.69.46 0 .35.2.38.27.08.03-.13.1-.17.15-.17.06 0 .63.15 1.28.34 1.13.34 1.16.36 1.16.61 0 .35.2.34.28.04.03-.13.07-.14.13-.14.22 0 .03 0 3.93 1.2-.01-1.18.02-1.07-.19-1.27l-8-4.21c-.23-.12-.3-.21-.25-.33.03-.08.08-.65.11-1.25.08-1.43.04-1.5-.78-1.5-.58 0-.61.01-.71.26-.06.16-.08.58-.05 1.08.04.58.03.83-.05.83-.16 0-1.83-.93-1.98-1.1-.1-.13-.14-.93-.18-3.9-.05-4.05-.05-3.99-.65-5.2C16.67 1.58 16.17 1 16 1z',
},
'blimp': {
id: 1,
w: 32,
h: 32,
viewBox: '-3.7 -3 32 32',
path: 'M12.4 26.77v-.81s.71-.24 1.42-1.7c0 0 .1.14.15.17.07.02 2.02.08 2.02.08s.18 0 .17-.3v-1.45s.14-.47-1.3-1.22c0 0 5.25-19.33-2.56-21.8-7.81 2.47-2.57 21.8-2.57 21.8-1.43.75-1.3 1.22-1.3 1.22s.02 1.16 0 1.46c0 .3.18.29.18.29s1.95-.06 2.01-.08c.06-.03.15-.17.15-.17.71 1.46 1.42 1.7 1.42 1.7v.81c0 .17.11.17.11.17s.1 0 .1-.17z',
accent: 'm12.48-.52-.18.25c-4.72 7.7-.1 26.23-.1 26.23l-.18.13m.03-26.57.25.21c4.72 7.7.1 26.23.1 26.23l.18.12',
accentMult: 0.8,
},
'balloon': {
id: 2,
w: 13,
h: 17,
noRotate: true,
viewBox: '-2 -2 13 17',
path: 'M3.56,12.75a.49.49,0,0,1-.46-.34L2.63,11a.51.51,0,0,1,.07-.44l.1-.1-2-3.68a.48.48,0,0,1-.05-.17,4.39,4.39,0,0,1-.48-2A4.29,4.29,0,0,1,4.5.25,4.29,4.29,0,0,1,8.75,4.58a4.39,4.39,0,0,1-.48,2,.45.45,0,0,1-.05.17l-2,3.68a.44.44,0,0,1,.1.1.51.51,0,0,1,.07.45L5.9,12.41a.49.49,0,0,1-.46.34Zm1.6-2.43L6.1,8.59A4.22,4.22,0,0,1,5,8.88v1.44ZM4,10.32V8.88A4.22,4.22,0,0,1,2.9,8.59l.94,1.73Z',
},
'cessna': {
id: 3,
w: 26,
h: 26,
viewBox: '0 -1 32 31',
strokeScale: 1.2,
path: 'M16.36 20.96l2.57.27s.44.05.4.54l-.02.63s-.03.47-.45.54l-2.31.34-.44-.74-.22 1.63-.25-1.62-.38.73-2.35-.35s-.44-.1-.43-.6l-.02-.6s0-.5.48-.5l2.5-.27-.56-5.4-3.64-.1-5.83-1.02h-.45v-2.06s-.07-.37.46-.34l5.8-.17 3.55.12s-.1-2.52.52-2.82l-1.68-.04s-.1-.06 0-.14l1.94-.03s.35-1.18.7 0l1.91.04s.11.05 0 .14l-1.7.02s.62-.09.56 2.82l3.54-.1 5.81.17s.51-.04.48.35l-.01 2.06h-.47l-5.8 1-3.67.11z',
},
'heavy_2e': {
id: 4,
w: 34,
h: 34,
viewBox: '0 -3.2 64.2 64.2',
strokeScale: 1.8,
path: "m 31.414,2.728 c -0.314,0.712 -1.296,2.377 -1.534,6.133 l -0.086,13.379 c 0.006,0.400 -0.380,0.888 -0.945,1.252 l -2.631,1.729 c 0.157,-0.904 0.237,-3.403 -0.162,-3.850 l -2.686,0.006 c -0.336,1.065 -0.358,2.518 -0.109,4.088 h 0.434 L 24.057,26.689 8.611,36.852 7.418,38.432 7.381,39.027 8.875,38.166 l 8.295,-2.771 0.072,0.730 0.156,-0.004 0.150,-0.859 3.799,-1.234 0.074,0.727 0.119,0.004 0.117,-0.832 2.182,-0.730 h 1.670 l 0.061,0.822 h 0.176 l 0.062,-0.822 4.018,-0.002 v 13.602 c 0.051,1.559 0.465,3.272 0.826,4.963 l -6.836,5.426 c -0.097,0.802 -0.003,1.372 0.049,1.885 l 7.734,-2.795 0.477,1.973 h 0.232 l 0.477,-1.973 7.736,2.795 c 0.052,-0.513 0.146,-1.083 0.049,-1.885 l -6.836,-5.426 c 0.361,-1.691 0.775,-3.404 0.826,-4.963 V 33.193 l 4.016,0.002 0.062,0.822 h 0.178 L 38.875,33.195 h 1.672 l 2.182,0.730 0.117,0.832 0.119,-0.004 0.072,-0.727 3.799,1.234 0.152,0.859 0.154,0.004 0.072,-0.730 8.297,2.771 1.492,0.861 -0.037,-0.596 -1.191,-1.580 -15.447,-10.162 0.363,-1.225 H 41.125 c 0.248,-1.569 0.225,-3.023 -0.111,-4.088 l -2.686,-0.006 c -0.399,0.447 -0.317,2.945 -0.160,3.850 L 35.535,23.492 C 34.970,23.128 34.584,22.640 34.590,22.240 L 34.504,8.910 C 34.193,4.926 33.369,3.602 32.934,2.722 32.442,1.732 31.894,1.828 31.414,2.728 Z",
},
//MD Series
//MD11 - Standard Scale 63px, 3in4 Non-linear Scale 53px
'md11': {
id: 5,
w: 38,
h: 32,
noAspect: true,
strokeScale: 1.8,
viewBox: '-4 -4 72 72',
path: 'm 32,0.7 0.3,0.1 0.4,0.4 0.5,0.8 0.6,1.4 0.4,1.7 0.7,4.2 0.2,4.1 0,11.8 4.1,3.2 -0.2,-1.1 0,-1.2 0.1,-1.1 0.2,-0.4 2.5,0 0.2,0.4 0.1,1.1 0,1.2 -0.3,1.3 -0.3,0 -0.3,1.5 16.6,13.4 0,0.6 0.4,2.2 0,1.2 -0.4,-0.9 0,0.3 -9.6,-4.6 -0.1,0.6 -0.1,0.3 -0.1,0 -0.1,-0.3 -0.1,-0.8 -4.5,-2.3 -0.1,0.7 -0.1,0.4 -0.1,0 -0.1,-0.4 -0.1,-0.9 -1.1,-0.6 -6.5,-1.4 0,4.4 -0.1,4.2 -0.5,3.7 -0.6,3.3 6.6,5.5 0,3.2 -7,-2.6 -0.1,0.8 -0.2,0.7 -0.3,0 -0.5,2.1 -0.2,0 -0.2,0.6 -0.2,-0.6 -0.2,0 -0.5,-2.1 -0.3,0 -0.2,-0.7 -0.1,-0.8 -7,2.5 0,-3.1 6.6,-5.5 -0.6,-3.3 -0.5,-3.7 -0.1,-4.2 0,-4.4 -6.5,1.4 -1.1,0.6 -0.1,0.9 -0.1,0.3 -0.1,0 -0.1,-0.3 -0.1,-0.7 -4.5,2.3 -0.1,0.8 -0.1,0.3 -0.1,0 -0.1,-0.3 -0.1,-0.6 -9.6,4.6 0,-0.3 -0.4,0.9 0,-1.2 0.4,-2.2 0,-0.6 16.6,-13.4 -0.3,-1.5 -0.3,0 -0.3,-1.3 0,-1.2 0.1,-1.1 0.2,-0.4 2.5,0 0.2,0.4 0.1,1.1 0,1.2 -0.2,1.1 4.1,-3.3 0,-11.7 0.2,-4.1 0.7,-4.2 0.4,-1.7 0.6,-1.4 0.5,-0.8 0.4,-0.4 z',
},
// C130 from https://discussions.flightaware.com/ads-b-flight-tracking-f21/some-custom-svg-plane-icons-t37783.html
// by Peter Lowden
// licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
'c130': {
id: 6,
w: 33,
h: 35,
noAspect: true,
strokeScale: 2,
viewBox: '-1 -16 64 64',
path: 'm 31,1 1,0 1,1 1,2 0,8 3,0 0,-3 1,-1 1,1 0,3 6,0 0,-3 1,-1 1,1 0,3 10,1 0,2 -1,1 -17,3 -5,0 0,10 -1,1 8,2 0,1 -1,1 -8,0 -1,1 -1,-1 -8,0 -1,-1 0,-1 8,-2 -1,-1 0,-10 -5,0 -17,-3 -1,-1 0,-2 10,-1 0,-3 1,-1 1,1 0,3 6,0 0,-3 1,-1 1,1 0,3 3,0 0,-8 1,-2 1,-1 z',
},
// f16: thanks to alkissack on github, check out his very nice interface:
// https://github.com/alkissack/Dump1090-OpenLayers3-html
'hi_perf': {
id: 7,
w: 32,
h: 32,
strokeScale: 2.5,
accentMult: 0.8,
viewBox: '-7.8 0 80 80',
path: "M 30.82,61.32 29.19,54.84 29.06,60.19 27.70,60.70 22.27,60.63 21.68,59.60 l -0.01,-2.71 6.26,-5.52 -0.03,-3.99 -13.35,-0.01 -3e-6,1.15 -1.94,0.00 -0.01,-1.31 0.68,-0.65 L 13.30,37.20 c -0.01,-0.71 0.57,-0.77 0.60,0 l 0.05,1.57 0.28,0.23 0.26,4.09 L 19.90,38.48 c 0,0 -0.04,-1.26 0.20,-1.28 0.16,-0.02 0.20,0.98 0.20,0.98 l 4.40,-3.70 c 0,0 0.02,-1.28 0.20,-1.28 0.14,-0.00 0.20,0.98 0.20,0.98 l 1.80,-1.54 C 27.02,28.77 28.82,25.58 29,21.20 c 0.06,-1.41 0.23,-3.34 0.86,-3.85 0.21,-4.40 1.32,-11.03 2.39,-11.03 1.07,0 2.17,6.64 2.39,11.03 0.63,0.51 0.80,2.45 0.86,3.85 0.18,4.38 1.98,7.57 2.10,11.44 l 1.80,1.54 c 0,0 0.06,-0.99 0.20,-0.98 0.18,0.01 0.20,1.28 0.20,1.28 l 4.40,3.70 c 0,0 0.04,-1.00 0.20,-0.98 0.24,0.03 0.20,1.28 0.20,1.28 l 5.41,4.60 0.26,-4.09 0.28,-0.23 L 50.59,37.20 c 0.03,-0.77 0.61,-0.71 0.60,0 l 0.02,9.37 0.68,0.65 -0.01,1.31 -1.94,-0.00 -3e-6,-1.15 -13.35,0.01 -0.03,3.99 6.26,5.52 L 42.81,59.60 42.22,60.63 36.79,60.70 35.43,60.19 35.30,54.84 33.67,61.32 Z",
accent: "m 32.30,49.38 -0.02,13.99",
},
// Mac Donnell-Doulgas F/A-18B Hornet (ICAO F18H)
'f18': {
viewBox:'-4 -3 32 32',
id: 8,
w: 25,
h: 25,
accentMult: 0.8,
path: 'M22.2 19.36h.3v-.23h.1v-.12h.15l-.1-.34h-.17v-.16h.12v-2.28l-.09-.1v-1.79c0-.37-.16-2.3-.3 0v.71s-.27.26-.26.6v.51s-.16.03-.17.2v.41l-7.4-3.5s0-1.36-.3-3c0 0-.3-1.14-.56-2.9 0 0-.21-2.73-.69-2.83l-.08-2.84s-.18-1.95-.8-2.92c-.62.97-.7 2.92-.7 2.92l-.09 2.84c-.48.1-.69 2.83-.69 2.83-.26 1.76-.55 2.9-.55 2.9-.31 1.64-.3 3-.3 3l-7.41 3.5v-.41c0-.17-.16-.2-.16-.2v-.52c0-.33-.27-.59-.27-.59v-.71c-.14-2.3-.29-.37-.3 0v1.8l-.09.09v2.28h.13v.16h-.18l-.1.34h.15v.12h.1v.23h.3m20.4 0l-.35.41-7.44.29.67 1.86v1.06l2.63 2.83v1.14c-.03.6-.83.39-.83.39l-3.35-1.65-.39.81h-.78c-.17 0-.35-1.08-.35-1.08s-.19 1.08-.36 1.08h-.78l-.38-.8-3.36 1.64s-.8.22-.82-.4v-1.13l2.61-2.83v-1.06l.68-1.86-7.43-.29-.36-.41',
accent: 'M15.04 23.81l-1.42-.66s-.22-3.7.2-4.85m-4.84 5.5l1.4-.66s.23-3.69-.19-4.85',
},
'e3awacs': {
id: 9,
w: 36,
h: 36,
viewBox: '48 -2 36 36',
path: 'M 65.811,0.918 C 65.338,1.311 64.907,3.105 64.761,5.285 c -0.042,0.650 -0.070,2.099 -0.056,3.209 l 0.021,2.031 -2.192,1.652 -2.192,1.652 -0.042,-0.508 c -0.077,-0.900 -0.132,-1.131 -0.257,-1.137 -0.223,-0.014 -0.745,0.020 -0.772,0.047 -0.056,0.054 -0.007,1.835 0.063,2.051 0.035,0.129 0.063,0.244 0.049,0.250 -0.007,0.007 -0.654,0.487 -1.441,1.076 -0.786,0.589 -1.461,1.097 -1.503,1.124 -0.056,0.041 -0.070,-0.176 -0.042,-0.772 0.014,-0.508 0,-0.900 -0.049,-1.015 -0.077,-0.183 -0.090,-0.190 -0.543,-0.169 l -0.473,0.020 -0.056,0.372 c -0.063,0.372 -0.021,1.841 0.063,2.173 0.035,0.162 -0.077,0.257 -1.552,1.367 -1.635,1.225 -2.171,1.726 -2.366,2.227 -0.139,0.366 -0.223,2.762 -0.097,2.762 0.049,0 0.077,-0.210 0.077,-0.609 V 22.480 l 0.278,-0.169 c 0.160,-0.095 0.355,-0.203 0.438,-0.230 0.084,-0.034 1.935,-0.907 4.120,-1.936 l 3.967,-1.868 1.649,-0.332 c 1.468,-0.298 1.705,-0.332 2.150,-0.284 l 0.508,0.047 -0.285,0.183 c -0.738,0.474 -1.274,1.516 -1.274,2.478 0,0.393 0.160,1.002 0.355,1.381 0.202,0.379 0.745,0.927 1.169,1.171 0.306,0.183 0.355,0.237 0.383,0.474 0.021,0.149 0.118,0.819 0.209,1.489 0.118,0.812 0.153,1.239 0.104,1.286 -0.035,0.034 -0.870,0.691 -1.858,1.456 -2.074,1.611 -2.074,1.611 -2.053,2.491 0.021,0.677 0.063,0.867 0.188,0.765 0.049,-0.041 0.884,-0.318 1.858,-0.616 0.974,-0.291 1.949,-0.596 2.164,-0.670 0.480,-0.156 0.445,-0.210 0.515,0.826 0.021,0.399 0.070,0.724 0.097,0.724 0.028,0 0.070,-0.359 0.097,-0.792 0.021,-0.440 0.070,-0.819 0.097,-0.839 0.028,-0.027 0.459,0.081 0.953,0.237 0.501,0.162 1.461,0.460 2.136,0.677 0.682,0.210 1.281,0.399 1.343,0.420 0.090,0.034 0.104,-0.061 0.104,-0.691 0,-0.460 -0.035,-0.792 -0.090,-0.887 -0.042,-0.081 -0.912,-0.792 -1.928,-1.577 -1.016,-0.792 -1.865,-1.456 -1.893,-1.483 -0.028,-0.027 0.021,-0.454 0.111,-0.955 0.090,-0.501 0.188,-1.185 0.216,-1.516 0.049,-0.575 0.056,-0.603 0.257,-0.711 0.731,-0.386 1.350,-1.103 1.566,-1.835 0.348,-1.171 -0.132,-2.620 -1.079,-3.249 -0.195,-0.129 -0.355,-0.257 -0.362,-0.291 0,-0.027 0.230,-0.047 0.515,-0.047 0.348,0 1.058,0.108 2.178,0.332 l 1.656,0.338 4.036,1.896 c 2.220,1.043 4.176,1.970 4.350,2.051 l 0.313,0.156 0.021,0.657 c 0.007,0.366 0.042,0.663 0.077,0.663 0.090,0 0.146,-1.956 0.063,-2.336 -0.188,-0.860 -0.494,-1.198 -2.436,-2.647 l -1.601,-1.198 0.042,-0.278 c 0.084,-0.562 0.125,-1.909 0.063,-2.173 l -0.063,-0.271 -0.466,-0.020 c -0.452,-0.020 -0.466,-0.014 -0.515,0.169 -0.028,0.102 -0.056,0.548 -0.056,0.982 0,0.440 -0.014,0.799 -0.035,0.799 -0.035,0 -2.199,-1.604 -2.798,-2.072 l -0.181,-0.135 0.097,-0.426 c 0.063,-0.264 0.097,-0.691 0.084,-1.144 l -0.021,-0.724 -0.445,-0.020 c -0.257,-0.014 -0.480,0.014 -0.522,0.054 -0.042,0.041 -0.090,0.413 -0.111,0.819 l -0.035,0.745 -2.206,-1.645 -2.206,-1.645 -0.007,-2.166 C 67.391,4.730 67.363,4.168 67.085,2.814 66.911,1.981 66.730,1.500 66.417,1.067 66.194,0.756 66.055,0.722 65.811,0.918 Z',
},
'heavy_4e': {
id: 10,
w: 34,
h: 34,
viewBox: '0 0 64 64',
strokeScale: 1.8,
path: "m 30.764,3.957 c -1.030,1.995 -1.438,5.650 -1.600,7.687 -0.248,3.120 -0.114,5.478 -0.156,7.568 -0.016,0.798 -0.737,1.483 -1.435,2.163 l -4.630,4.207 c 0.136,-0.609 0.313,-2.735 0.011,-3.413 l -2.147,-0.067 c -0.337,0.636 -0.227,2.516 -0.102,3.486 l 0.414,0.033 0.179,1.447 -5.794,5.342 c 0.077,-0.914 0.114,-2.161 -0.105,-2.633 l -2.172,-0.078 c -0.367,0.716 -0.185,2.323 -0.053,3.475 h 0.394 l 0.138,0.949 -7.991,6.563 C 5.411,40.937 5.586,41.437 5.564,41.830 l -0.694,2.353 0.005,0.991 0.715,-1.236 10.464,-6.218 c 0.012,0.663 0.110,1.051 0.231,1.010 0.135,-0.045 0.328,-0.852 0.361,-1.290 l 2.274,-1.389 c -0.003,0.493 0.054,1.174 0.196,1.088 0.126,-0.076 0.384,-0.807 0.362,-1.370 l 1.528,-0.943 2.988,-1.018 c 0.073,0.381 0.122,0.929 0.292,0.896 0.159,-0.031 0.257,-0.491 0.355,-1.065 l 1.704,-0.597 c 0.025,0.437 0.163,0.976 0.297,0.914 0.149,-0.070 0.339,-0.647 0.356,-1.118 l 1.935,-0.666 0.054,10.106 c 0.183,3.800 0.173,5.797 0.919,9.127 -0.072,0.573 -0.374,0.766 -0.640,1.020 l -6.724,6.317 -0.007,2.046 8.553,-2.312 c 0.019,0.586 0.061,1.045 0.432,1.368 l 0.146,1.817 0.146,-1.817 c 0.371,-0.323 0.413,-0.782 0.432,-1.368 l 8.553,2.312 -0.007,-2.046 -6.724,-6.317 c -0.266,-0.253 -0.569,-0.446 -0.640,-1.020 0.747,-3.331 0.736,-5.327 0.919,-9.127 l 0.054,-10.106 1.935,0.666 c 0.017,0.470 0.207,1.048 0.356,1.118 0.134,0.062 0.272,-0.477 0.297,-0.914 l 1.704,0.597 c 0.098,0.574 0.196,1.034 0.355,1.065 0.170,0.033 0.219,-0.515 0.292,-0.896 l 2.988,1.018 1.528,0.943 c -0.021,0.563 0.237,1.294 0.362,1.370 0.141,0.086 0.198,-0.595 0.196,-1.088 l 2.274,1.389 c 0.033,0.439 0.227,1.245 0.361,1.290 0.121,0.041 0.219,-0.347 0.231,-1.010 l 10.464,6.218 0.715,1.236 0.005,-0.991 -0.694,-2.353 c -0.021,-0.393 0.153,-0.893 -0.151,-1.143 l -7.991,-6.563 0.138,-0.949 h 0.394 c 0.132,-1.152 0.314,-2.760 -0.053,-3.475 l -2.172,0.078 c -0.218,0.472 -0.182,1.719 -0.105,2.633 l -5.794,-5.342 0.179,-1.447 0.414,-0.033 c 0.125,-0.970 0.236,-2.850 -0.102,-3.486 l -2.147,0.067 c -0.302,0.678 -0.125,2.804 0.011,3.413 l -4.630,-4.207 c -0.698,-0.680 -1.419,-1.365 -1.435,-2.163 -0.042,-2.090 0.092,-4.448 -0.156,-7.568 -0.162,-2.037 -0.600,-5.677 -1.600,-7.687 -0.592,-1.190 -1.211,-1.157 -1.809,0 z",
},
'single_turbo': {
id: 11,
w: 24,
h: 22,
noAspect: true,
viewBox: '-2 -2 23 23',
path: 'M 9.53,0.50 C 9.51,0.54 9.42,0.76 9.38,0.82 9.05,0.53 6.02,0.49 6.02,0.99 c 0.50,0 2.50,0.13 3.33,-0.08 C 8.52,1.63 8.53,3.51 8.23,6.47 L 1.33,7.00 C 0.50,7.07 0.50,7.57 0.50,8.44 L 5.97,9.39 C 6.71,9.58 8.12,10.04 8.12,10.04 c 0,0 0.29,4.81 0.82,6.26 l -2.91,0.67 c 0,0 -0.19,0.63 -0.19,1.20 l 3.54,0.23 0.08,0.11 0.08,-0.11 3.55,-0.20 c -0.00,-0.56 -0.18,-1.20 -0.18,-1.20 L 9.99,16.30 c 0.55,-1.44 0.88,-6.25 0.88,-6.25 0,0 1.41,-0.45 2.15,-0.63 l 5.48,-0.90 c 0.01,-0.87 0.01,-1.38 -0.81,-1.45 L 10.79,6.49 C 10.51,3.52 10.54,1.64 9.71,0.91 10.54,1.13 12.54,1.02 13.04,1.03 13.05,0.52 10.02,0.53 9.68,0.82 9.65,0.76 9.55,0.54 9.53,0.50 Z',
},
'jet_nonswept': {
id: 12,
w: 22,
h: 22,
viewBox: '-2 -2.4 22 22',
path: 'M9,17.09l-3.51.61v-.3c0-.65.11-1,.33-1.09L8.5,15a5.61,5.61,0,0,1-.28-1.32l-.53-.41-.1-.69H7.12l0-.21a7.19,7.19,0,0,1-.15-2.19L.24,9.05V8.84c0-1.1.51-1.15.61-1.15L7.8,7.18V2.88C7.8.64,8.89.3,8.93.28L9,.26l.07,0s1.13.36,1.13,2.6v4.3l7,.51c.09,0,.59.06.59,1.15v.21l-6.69,1.16a7.17,7.17,0,0,1-.15,2.19l0,.21h-.47l-.1.69-.53.41A5.61,5.61,0,0,1,9.5,15l2.74,1.28c.2.07.31.43.31,1.08v.3Z',
},
'jet_swept': {
id: 13,
w: 19,
h: 25,
viewBox: '-1 -1 20 26',
path: 'M9.44,23c-.1.6-.35.6-.44.6s-.34,0-.44-.6l-3,.67V22.6A.54.54,0,0,1,6,22.05l2.38-1.12L8,19.33H6.69l0-.2a8.23,8.23,0,0,1-.14-3.85l.06-.18H7.73V13.19h-2L.26,14.29v-.93c0-.28.07-.46.22-.53l7.25-3.6V3.85A4.47,4.47,0,0,1,8.83.49L9,.34l.17.15a4.47,4.47,0,0,1,1.1,3.36V9.23l7.25,3.6c.14.07.22.25.22.53v.93l-5.51-1.1h-2V15.1h1.17l.06.18a8.24,8.24,0,0,1-.15,3.84l0,.2H10l-.36,1.6,2.43,1.14a.52.52,0,0,1,.35.53v1.08Z',
},
'twin_large': {
id: 14,
w: 25,
h: 25,
strokeScale: 0.9,
viewBox: '-2 -3 25 25',
path: 'M10.1,18.34H7l0-.21c-.08-.54,0-.87.11-1L7.19,17l.2,0,2.35-.33c-.16-.82-.42-2.9-.42-3.14s0-2.71,0-3.51H8c-.12,1.34-.41,1.36-.55,1.37h0c-.19,0-.46,0-.6-1.55L.27,9.52l0-.25c.06-.73.31-.9.45-.93l6-.48a3.65,3.65,0,0,1,.3-2,.45.45,0,0,1,.32-.16h0a.39.39,0,0,1,.3.12A3.67,3.67,0,0,1,8,7.77l1.26-.07c0-.71,0-2.92,0-4.48A3.84,3.84,0,0,1,10.1.4a.4.4,0,0,1,.28-.16h.23A.4.4,0,0,1,10.9.4a3.84,3.84,0,0,1,.87,2.81c0,1.55,0,3.77,0,4.48L13,7.77a3.67,3.67,0,0,1,.29-1.94.38.38,0,0,1,.28-.12.46.46,0,0,1,.34.16,3.66,3.66,0,0,1,.3,2l6,.48c.18,0,.43.21.49.94l0,.25-6.53.3c-.14,1.55-.42,1.55-.59,1.55s-.45,0-.57-1.37H11.74c0,.8,0,3.27,0,3.51s-.26,2.32-.42,3.14l2.38.34h.11l.13.13c.15.18.19.51.11,1l0,.21H10.9l-.4,1Z',
},
'twin_small': {
id: 15,
w: 25,
h: 22,
strokeScale: 1.1,
viewBox: '-3 -4 25 22',
path: 'M9.5,15.75c-.21,0-.34-.17-.41-.51l-2.88.23v-.27c0-.78,0-1.11.28-1.13L9,13.1c-.31-1.86-.55-5-.59-5.55l-.08-.09H6.08L.25,6.54v-1A.43.43,0,0,1,.67,5l3.75-.27L5,4.45V3.53H4.73V2.7a.35.35,0,0,1,.34-.35h.07c.12-.52.26-.83.54-.83s.42.31.53.83h.07a.35.35,0,0,1,.34.35v.83H6.36v1l2-.08C8.42.81,9.09.25,9.49.25s1.09.55,1.12,4.21l2,.08v-1h-.25V2.7a.35.35,0,0,1,.34-.35h.07c.12-.52.26-.83.53-.83s.42.31.54.83h.07a.35.35,0,0,1,.34.35v.83H14v.92l.57.32L18.32,5a.42.42,0,0,1,.43.46v1L13,7.46H10.71l-.08.09c0,.56-.27,3.68-.59,5.55l2.46,1c.28,0,.28.35.28,1.13v.27l-2.88-.23C9.84,15.58,9.71,15.75,9.5,15.75Z',
},
'alpha_jet': {
id: 16,
w: 28,
h: 28,
viewBox: '33.2 9 32 32',
path: 'M49.14 36.015c-.07-.194-.09-.223-.176-.238-.13-.024-.14-.068-.14-.664 0-.277-.012-.504-.027-.504-1.378.334-2.455.604-3.915.961-.014 0-.08-.166-.15-.37-.154-.445-.17-.703-.055-.852 1.33-.883 2.31-1.45 3.795-2.349-.111-.93-.214-1.833-.313-2.697l-.525.021c-.236-.807-.356-1.716-.469-2.41-2.494.435-5.205 1.014-7.794 1.527-.013 0-.024-.115-.024-.256 0-.486.29-1.554.513-1.893.909-.79 2.132-1.51 3.348-2.26.066.04.052.226.08.286l1.15-.515c1.223-.529 1.674-.858 2.698-1.528.127-.555.072-.835.106-1.538l.211-.241.568.036.025-.323c.02-.278.01-.326.01-.326l.184-.027c-.14-9.213 2.22-8.012 1.898.024l.19.02.01.318.01.317h.61l.16.214c.02.515.026.708.068 1.458 1 .74 2.136 1.29 2.77 1.62l1.213.58.036-.308 1.527.962c1.79 1.128 1.827 1.158 1.988 1.636.16.475.298 1.111.313 1.441.008.167.006.303-.006.303-2.779-.55-4.895-.975-7.884-1.572l-.018.127c-.021.777-.206 1.64-.314 2.274-.16.028-.354.03-.548.048-.118.88-.24 1.79-.324 2.673 1.294.783 2.32 1.411 3.686 2.261.062.053.089.126.117.314.033.225.029.27-.06.586a2.575 2.575 0 01-.12.366c-1.355-.264-2.437-.531-3.87-.862l-.186-.042.017.571c-.009.648-.11.572-.11.572-.165.06-.101.15-.162.24l-.032.24-.079-.22z',
},
'a225': {
id: 17,
w: 36,
h: 36,
strokeScale: 2,
viewBox: '75 -4 72 72',
path: ' M123.984 55.377l.768 2.092.09 3.559-.655 1.058-.27 1.78-.43-1.828-10.175-3.944-.655-.072-.36 1.876-2.009.024-.451-1.852h-.564l-10.154 4.233-.316 1.803-.428-1.78-.61-.769-.045-3.92.745-2.044.722 1.275L108.506 51l-.767-17.051-6.882.072-21.12 8.682v-2.309l.79-1.66 11.327-8.176-1.016-1.37.023-3.368.564-.529h1.399l.519.626.113 3.727 3.497-2.573-.587-.986-.09-3.223.339-.697h1.76l.45.577v3.006l3.43-2.405-.654-.77-.022-3.823.586-.457h1.287l.518.601v3.247l3.362-2.886v-8.032l.316-3.512.226-2.212.79-2.67.857-1.515.654-.841.677.048.542.457.654 1.25.587 1.058.541 1.804.316 1.515.271 1.732.113 2.91.225 7.767 3.51 2.97-.091-3.198.429-.59 1.635-.023.395.553.08 3.547-.587.83 3.452 2.429-.09-2.958.406-.746h1.602l.541.577.023 3.391-.61.938 3.633 2.477-.045-3.872.564-.577h1.264l.564.722.045 3.367-.88 1.274 11.192 7.6.79.841.248.842.18.721v1.66l-21.277-7.984-7.04.024-.37 17.152 9.381 5.611z',
},
// A400 Courtesy of bukadako:
// https://discussions.flightaware.com/t/some-custom-svg-plane-icons/18914/195
'a400': {
id: 18,
w: 31,
h: 34,
strokeScale: 3.5,
viewBox: '-9.5 0 140 140',
path: 'm 60.2353,6.87783 L62.5882,9.40724 L63.1312,5.07692 L63.7059,11.3484 L67.1765,19.0543 L67.4706,39.5837 L70.4118,45.2896 L77.2941,47.8778 L77,43.9367 L78.2941,39.6425 L72.7059,38.7149 L77.4118,38.2896 L79.1176,35.8778 L80.7647,38.2308 L87,38.8914 L80.8235,39.9367 L81.2941,43.4661 L80.9412,48.6199 L93.5294,52.9367 L93.5294,48.3484 L94.2941,44.3484 L89.1765,43.819 L94.1176,42.7602 L95.5882,40.4661 L97.1176,42.7602 L102.471,43.5747 L97.1176,44.5249 L98,48.2896 L97.3756,54.0905 L118.683,62.0181 L118.706,68.6425 L100.941,67.2443 L99.4118,70.0543 L98.9412,67.1131 L91.5294,66.267 L90.7647,68.8778 L89.7059,66.2896 L83.8235,65.7738 L82.9412,69.1719 L82.3529,65.6516 L73.4118,64.819 L72.4706,68.9955 L71.5294,64.5837 L70.7059,68.7602 L67.7647,71.2308 L67.5294,91.5131 L63.9882,110.925 L85.3529,127.348 L86.2941,132.878 L61.5882,123.348 L60.3529,127.466 L59.4118,123.231 L33.5882,132.29 L34.8824,126.878 L56.2353,110.819 L53,91.3484 L52.5882,72.1131 L49.7059,68.7602 L49.1765,64.6425 L48.0588,68.5249 L46.8824,64.8869 L38.4706,65.5747 L37.2941,69.3484 L36.3529,65.9955 L30.6471,66.1719 L29.7059,69.2896 L28.5294,66.3394 L21.4118,67.0679 L20.7059,70.1719 L19.5294,67.1719 L1.39819,68.5611 L1.65611,61.7828 L22.8824,54.2896 L22.5294,48.7014 L23.5882,43.819 L17.7059,43.4661 L23.1765,42.4661 L24.5882,40.1719 L25.8235,42.4661 L31.7059,43.4796 L26.1176,44.3484 L26.7647,48.7602 L26.0588,53.0679 L38.9412,48.7964 L39.1765,43.8778 L40.1176,39.4072 L33.2353,39.0543 L39.7647,37.7014 L41.2941,35.1719 L42.1765,38.0543 L48,38.8326 L42.6471,40.0543 L43.2805,44.0543 L42.8824,47.5837 L50,44.9955 L52.5294,40.1131 L53,18.5249 L56.1765,11.2308 z',
},
// V22 Osprey
'v22_slow': {
id: 19,
w: 28,
h: 28,
strokeScale: 0.9,
viewBox: '30.8 -0.5 26 26',
path: 'M46 21.4h-4.4s-.5-2.2-.1-2.4l.2.3h1v-2.5s-1.4-2.8-1-3.8l-3.7-.4 1.5 3.7-.4.2-2-4.2.2-.2s-.3 0-.4-.4c0 0-.6.1-1-.1l-3.8-.5v-.5l4.8.4s0-1.3 1-.5l2.5-3.3.4.3-2 2.9 3.2.4.6-1v-2s.1-1.2.6-1.7v-.3s.1-.5.3 0l.3-.2s1 .2 1.2 2.3v2l.6.9 3.2-.4-2-2.7.5-.3 2.5 3.3s1-.9 1 .5l4.7-.5v.5l-4.7.6s0 .4-.4.4l.1.2-1.9 4.3-.4-.2 1.6-3.9-4 .5s.4 1-.9 3.8v2.4h1s0-.3.2-.3c0 0 .3 0 0 2.4z',
},
'v22_fast': {
id: 20,
w: 28,
h: 28,
strokeScale: 1,
viewBox: '26.7 -3.3 26 26',
path: 'M33.76 6.93l.01.4.2.06.05.07 3.84.45s.18-.36.6-.88c0 0-.26-2.86.6-3.83v-.28l.05-.05s.1-.51.28 0c0 0 .24-.18.3-.15.05.03 1.31.19 1.23 4.3 0 0 .62.84.58.94l3.83-.44.06-.08.23-.08-.01-.4s-.7-.21-4.04-.5l-.12-.13 4.32.01s.43-1.46.88 0l5.11-.07v.06s-4.12.36-4.79.71l-.2-.24.03.52.2.15.06 1.09-.07.14s-.09 1.63-.41 2.37l-.63-.03-.23-1.2-3.91.43s.36.97-.97 3.79l-.1 2.47h1.06s.06-.28.16-.3m0 0s.43-.02-.04 2.41h-4.5s-.46-2.46-.04-2.4c0 0 .12.02.16.29l1.04.01-.08-2.5s-1.2-2.38-.96-3.82l-3.89-.44-.24 1.2-.62.03s-.4-1.1-.43-2.38l-.05-.1.04-1.1.24-.16.01-.5-.2.23s-1.02-.4-4.8-.71v-.07l5.12.05s.42-1.39.86 0h4.34l-.13.14s-3.99.39-4.03.52',
},
't38': {
viewBox:'22.2 -6 36 36',
id: 21,
w: 28,
h: 28,
strokeScale: 1.2,
path: 'M41.3 27h-2l-.2-1.8-3.3-.2v-1l3-2s-.2-1.5-.1-3.2l-6.5-.6v-1.5l6.3-3.8s-.6-2.8.4-2.7l.3-.4V4.6s.2-4.3 1-6v-1.4h.1v1.5s1 2.3 1 6l.1 5.1.3.4s1-.3.4 2.7l6.3 3.9v1.4l-6.5.6s.1 1.6 0 3.2l2.9 2v1l-3.3.2z',
},
'f35': {
id: 22,
w: 32,
h: 32,
viewBox: '-4 -1 40 40',
strokeScale: 1.2,
path: 'm 16.85,2.96 c 0.38,3.4 0.78,5.93 0.78,5.93 l 0.29,0.72 0.77,-0.84 0.38,0.73 0.19,4.5 0.71,1.41 5.85,3.95 v 2.84 l -6.47,1.61 0.5,1.17 2.84,1.92 v 1.6 l -4.85,1.2 -0.63,-4.05 -0.45,0.78 H 15.24 L 14.79,25.65 14.16,29.7 9.31,28.5 v -1.6 l 2.85,-1.92 0.49,-1.17 -6.47,-1.61 v -2.84 l 5.85,-3.95 0.71,-1.4 0.2,-4.51 0.37,-0.73 0.77,0.84 0.3,-0.72 c 0,0 0.4,-2.53 0.77,-5.93 C 15.19,2.27 15.77,1.09 16,1 c 0.209,-0.018 0.78,1.25 0.85,1.96 z',
},
'l159': {
viewBox:'-3.7 0 32 32',
id: 23,
w: 28,
h: 28,
strokeScale: 1,
accentMult: 0.6,
path: "M13.1 3.13l.11 3c.37 4.18.14 6.3.14 6.3.1.7.59.76.59.76l6.32.7.41-.28v-1.02c.37-2.88.69 0 .69 0v3.55c.03.68-.3 1.6-.3 1.6h-.17a4.2 4.2 0 01-.21-1.14l-.1-.1-6.84 1.44a53.86 53.86 0 01-.46 4.51l3.34.97c.2.48.14 1.3.14 1.3l-4.47.52-4.47-.51s-.06-.83.13-1.3l3.35-.98s-.38-2.55-.46-4.5L4 16.5l-.1.1s-.01.52-.21 1.13H3.5s-.33-.92-.3-1.6v-3.55s.32-2.88.7 0v1.02l.4.27 6.33-.69s.49-.05.58-.76c0 0-.23-2.12.14-6.3l.12-3s.08-1.72.8-1.74c.73.02.81 1.74.81 1.74z",
accent: "M10.81 13.65l.75-.07c.45.92.7 2.13.7 2.13l-.01 10.4v-10.4s.24-1.21.68-2.13l.75.07",
},
'mirage': {
viewBox:'-5.8 -3.8 36 36',
id: 24,
w: 28,
h: 28,
strokeScale: 1.2,
path: "m 13.09,26.20 c 0,0 0.30,-1.70 0.30,-2.80 L 13.94,22.81 13.92,22.07 21.19,21.60 c 0,0 0.20,-1 -0.30,-1.60 l -4,-6.50 c 0,0 0.40,-5.30 -0.70,-5.80 0,0 -0.70,-0.20 -0.60,4.10 l -1.10,-2.10 V 9 c 0,0 0,-0.40 -0.30,-0.60 l -0.10,-0.70 h -0.70 l -0.30,-1.20 V 3.10 c 0,0 -0.25,-2.58 -0.85,-4.48 C 11.65,0.52 11.40,3.10 11.40,3.10 V 6.50 L 11.10,7.70 H 10.40 L 10.30,8.40 C 10,8.60 10,9 10,9 V 9.70 L 8.90,11.80 C 9,7.50 8.30,7.70 8.30,7.70 7.20,8.20 7.60,13.50 7.60,13.50 l -4,6.50 c -0.50,0.60 -0.30,1.60 -0.30,1.60 l 7.27,0.47 -0.02,0.74 L 11.10,23.40 c 0,1.10 0.30,2.80 0.30,2.80 z",
accent: "M 9.90,9.57 C 10.50,12.57 10.80,15.90 10.80,15.90 l 0.20,4.50 0.01,3.21 M 14.59,9.57 C 13.99,12.57 13.69,15.90 13.69,15.90 l -0.20,4.50 -0.01,3.21",
},
'sb39': { // Saab JAS-39 Gripen (ICAO SB39)
viewBox:'-4.1 0 32 32',
id: 25,
w: 29,
h: 29,
strokeScale: 1,
accentMult: 0.8,
path: "M12.77 4.94c.15 1.84.06 3.88.06 3.88l.46.17c.22.04.23.03.25.26.03.23.17.4.17.4l2.5 3.86v.85l-2-1.08h-.4l.26.85 1.7 2.28 1.76 1.94v-.38l1.84 2.53.19-.76h.05v-1.48c.14-.66.26-.25.26-.25v-.28c.2-1.26.3 0 .3 0v1.9l.1.1v2.4h-.1v.19h.16l.1.37h-.15v.14h-.08v.23h-.33v.88l-.12.12h-.2v-.82h.08l-.02-.4-5.3.3-.67.41v.46c-.23.1-.3.3-.3.3l-.32 1.42c-.06.17-.18.15-.18.15l-.25 1.64h-1.31l-.25-1.64s-.12.02-.19-.15l-.31-1.41s-.08-.22-.3-.31v-.46l-.67-.4-5.3-.3-.03.4h.1v.81h-.21L4 23.94v-.88h-.33v-.23H3.6v-.14h-.15l.1-.37h.16v-.19H3.6v-2.4l.1-.1v-1.9s.12-1.26.3 0v.28s.13-.41.27.25v1.48h.05l.19.76 1.84-2.53v.38l1.75-1.94 1.7-2.28.26-.85h-.4l-1.99 1.08v-.85l2.5-3.86s.14-.17.17-.4c.02-.23.02-.22.25-.26l.45-.17s-.08-2.04.07-3.88c0 0 .18-1.92.82-3.32.65 1.4.85 3.32.85 3.32z",
accent: "M13.52 24.7s-.16-.4-.14-.5c.01-.08.24-1 .28-2.33 0 0 0-1.33-.08-2.5-.07-1.18 0-2.77.14-4.16.14-1.4.12-4.17-.05-5.26-.16-1.09-.2-1.64-.2-1.64m-3.1 16.4s.16-.41.14-.5c-.02-.1-.24-1.02-.28-2.34 0 0 0-1.33.08-2.5.07-1.18 0-2.77-.14-4.16a29.67 29.67 0 01.24-6.9",
},
// Mac Donnell-Doulgas A4 Skyhawk (ICAO A4)
'md_a4': {
viewBox:'-4.2 -1 32 32',
id: 26,
w: 26,
h: 26,
accentMult: 0.8,
strokeScale: 1.1,
path: 'M11.7 26.5H8v-.7s0-.3.3-.6l2.6-2.4s-.2-1-.3-4H3v-2.4l.3-.6 6.3-5.5.2-1.3s.3-.2.6-.1V7.8s0-.2.2 0c0 0 0-3.5.5-6.2 0 0 .3-1.2.7-1.2.4 0 .7 1.2.7 1.2.5 2.7.5 6.2.5 6.2 0-.2.2 0 .2 0v1l.6.2.2 1.3 6.3 5.5c.3.4.2.6.2.6v2.3h-7.4c-.1 3-.3 4-.3 4l2.6 2.5c.3.3.3.6.3.6v.7H12l-.1.5-.2-.5z',
accent: 'M9.7 20.4l.9-1.7-1-8.4-.9-1.4M14 20.4l-.8-1.7.9-8.4 1-1.4',
},
// Panavia Tornado (ICAO TOR)
'tornado': {
viewBox:'-4 -3 32 32',
id: 27,
w: 25,
h: 25,
strokeScale: 1.1,
accentMult: 0.6,
path: 'M11.54 1.27c-.3.76-.4 1.32-.4 1.32-.15.85-.21 1.62-.21 1.62-.19 1.45-.23 3.91-.23 3.91H9.48l-.09.46a28.8 28.8 0 00.04 2.45l-1.18 1.9-7.05 3.18c-.6.75-.72 2.58-.72 2.58l9.37-2.37.03 1.97-2.61 3.56-1.07 1.74c-.05.84.01 1.6.01 1.6l4.02-1.3.13-.22c.26.17 1.37.06 1.37.06l.36 3.2c.03.11.36-3.2.36-3.2s1.1.1 1.36-.06l.13.23 4.02 1.3s.06-.77.01-1.61l-1.06-1.74-2.61-3.56.02-1.97 9.37 2.37s-.12-1.83-.72-2.58l-7.04-3.18-1.18-1.9s.07-1.09.03-2.45l-.09-.46h-1.22s-.04-2.46-.22-3.9c0 0-.07-.78-.22-1.63 0 0-.1-.56-.4-1.32L12.1.04z',
accent: 'M15.47 10.17l-.72.86s-.35 1.3-.4 2.43c0 0-.1.88-.04 2.09l-.06 4s.01 1.78-.4 4.2l-.52 1.24M8.71 10.17l.72.86s.34 1.3.39 2.43c0 0 .1.88.05 2.09l.06 4s-.02 1.78.39 4.2l.52 1.24',
},
// Default icon for UAV (MQ9,MQ4 etc..)
'uav': {
id: 28,
w: 28,
h: 28,
viewBox: '0 1 32 32',
strokeScale: 0.9,
path: 'M16.8 15.57v-1.08s1.8-5.07-.74-5.58c-2.44.59-.67 5.58-.67 5.58h0v1.08l-2.6.15-10.23.54v1.08l10.26.46 2.55.07v3.86h-3.05v1.38h3.25v.34l-1.81.25v.14h1.98c.15.49.35.47.35.47s.2.02.35-.47h1.99v-.14l-1.81-.25v-.34h3.24v-1.38h-3.05v-3.86l2.55-.07 10.26-.46v-1.08l-10.22-.54z',
},
'typhoon': {
viewBox:'-4.8 -3.5 34 34',
id: 29,
w: 25,
h: 25,
strokeScale: 1.2,
path: 'M 13.86,26.47 12.48,26.44 12.18,26.22 11.88,26.43 H 10.56 L 10.26,24.26 9.76,23.84 9.74,23.06 2.20,22.66 1.94,23.63 c 0,0 -0.42,-0.05 -0.32,-3.58 l 0.30,-1.07 0.21,1.03 1.20,-1.46 -0.02,-1.80 -0.15,-0.08 0.14,-0.18 c 0,0 0.02,-0.57 0.20,-0.66 0,0 0.20,0.02 0.20,0.64 l 0.14,0.16 -0.12,0.12 v 1.30 l 2.60,-3.36 c 0,0 -0.04,-3.68 0.56,-3.97 0,0 0.37,-0.33 0.52,2.57 L 10.01,9.96 10.02,9.61 10.36,9.01 10.50,7.07 10.78,6.86 10.84,5.89 8.50,6.57 V 5.60 l 2.65,-2.70 c 0,0 0.22,-3.13 1.05,-4.58 0,0 0.80,1.18 1.05,4.58 l 2.65,2.70 v 0.96 l -2.32,-0.67 0.05,0.95 0.28,0.22 0.17,2.06 0.28,0.44 0.05,0.40 2.62,3.38 c 0,0 0.10,-2.63 0.50,-2.60 0,0 0.55,-0.17 0.55,3.96 l 2.63,3.35 0.01,-1.29 -0.15,-0.10 0.14,-0.12 c 0,0 0.02,-0.70 0.17,-0.70 0,0 0.21,-0.12 0.20,0.66 l 0.15,0.12 -0.14,0.14 v 1.80 l 1.21,1.49 0.15,-1.10 0.30,1.10 c 0,0 0.20,3.19 -0.25,3.53 l -0.26,-0.90 -7.60,0.36 0.02,0.83 -0.50,0.36 z',
accent: 'M 13.69,6.55 13.86,12.79 l 0.32,5.97 c 0,0 0.12,4.31 -0.01,6.05 m -1.99,-1.64 v 7.07 M 10.21,24.81 C 10.02,23.09 10.18,18.68 10.18,18.68 l 0.34,-5.94 0.18,-6.15',
},
'rafale': {
id: 30,
w: 25,
h: 25,
viewBox: '-0.3 -1 32 32',
strokeScale: 1.2,
path: 'M17.1 9.2s.5 1.3.6 2h.3v.3l1.8 1.6s.2.2.2.5v.6l-1.7-.5.5 1.9 5.4 5.5V20s0-.2.1-.1c0 0 0-.3.3-.3v-1.4s.2-1.3.3 0v2h.1V23h.1l.1.4h-.1v.1H25v.3h-.4v.4s-.5.2-.5-.5l-6 .4v1.3h-.5l-.1.8H16s0 .5-.2.4v1.3h-.3v-1.3l-.1-.4h-1.5l-.2-.9h-.5V24l-6-.4s.2.6-.4.5v-.4h-.3v-.3h-.2v-.1h-.1v-.4h.2v-4.7s.2-1.3.4 0v1.4s.3 0 .3.3v1.2l5.5-5.5.4-1.9-1.6.5v-.6s0-.3.2-.5l1.8-1.6v-.3h.2s.1-.8.6-2c0 0 .4-.9.6-2 0 0 .2-2.3.9-4.3 0 0 .7 2.2.9 4.2 0 0 .2 1.4.5 2.1z',
},
// Hawker Hunter (ICAO HUNT)
'hunter': {
viewBox:'-5.2 -4 34 34',
id: 31,
w: 26,
h: 26,
accentMult: 0.8,
path: 'M12.42 27.46l.17-.64 2.35 1.3h.32s.17-1.51-.23-2.22L13 23.52s.22-3.83.17-6.81l.7-.96 8.27 3.92s.45-3.2-.47-4.48l-7.12-6.96-.09.07-1.25-.93s-.01-1.97-.16-3.8c0 0-.34-4-1.2-4.37-.87.37-1.21 4.38-1.21 4.38-.15 1.82-.16 3.79-.16 3.79l-1.25.93-.1-.07-7.11 6.96c-.92 1.29-.47 4.48-.47 4.48l8.28-3.92.69.96c-.05 2.98.17 6.81.17 6.81L8.64 25.9c-.4.7-.23 2.22-.23 2.22h.32l2.35-1.3.17.64h.58z',
accent: 'M14.36 6.6l-1.16.77s-.37.02-.44 2.33c0 0 .06 2.16.3 3.47 0 0 .14 1.68.1 3.54l1.32 1.36M9.3 6.6l1.16.78s.37.02.43 2.33c0 0-.05 2.16-.3 3.47 0 0-.13 1.68-.09 3.54l-1.32 1.36',
},
// Avro Lancaster (ICAO LANC)
'lancaster': {
id: 32,
w: 28,
h: 28,
viewBox: '0.2 0 32 32',
strokeScale: 0.8,
path: 'M15.74 9.17c-.34.55-.34 1.44-.34 1.44v3.34h-2.06c.3-1.34-.1-1.73-.1-1.73v-.3c.63.11 1.2-.1 1.2-.1-.74-.13-1.22-.05-1.22-.05-.37-.84-.7 0-.7 0-.52-.09-1.23.11-1.23.11.84.16 1.19.04 1.19.04v.3c-.38.56-.09 1.72-.09 1.72h-.41l-2.62.35c.26-.93-.1-1.52-.1-1.52v-.3c1 .07 1.19-.1 1.19-.1-.42-.14-1.2-.06-1.2-.06-.36-.82-.7 0-.7 0-.12-.07-1.48.02-1.24.12.24.1 1.2.06 1.2.06v.32c-.43.9-.05 1.56-.05 1.56l-5.92.77c-.13.03-.99.21-.97 1.08.02.87.99 1.12.99 1.12l9.3.98 3.5.01.14 6.62-4 .15c-.24.8 0 1.58 0 1.58l.06-.33c.03.42.37.41.37.41l3.56.4c0 .7.29.87.29.87h.79s.28-.18.28-.86l3.57-.4s.33 0 .37-.42l.06.33s.24-.79 0-1.58l-4-.15.13-6.62 3.5-.01 9.3-.98s.98-.25 1-1.12c.01-.87-.85-1.05-.97-1.08l-5.93-.77s.38-.66-.04-1.56v-.32s.95.04 1.2-.06c.24-.1-1.13-.2-1.24-.12 0 0-.35-.82-.7 0 0 0-.78-.08-1.2.07 0 0 .18.16 1.18.09v.3s-.36.6-.1 1.52l-2.62-.35h-.41s.3-1.16-.08-1.72v-.3s.34.12 1.18-.04c0 0-.7-.2-1.23-.1 0 0-.33-.85-.7 0 0 0-.48-.09-1.2.04 0 0 .55.21 1.19.1v.3s-.4.39-.1 1.73h-2.06V10.6s0-.9-.35-1.44c0 0 .01-.36-.43-.36s-.43.36-.43.36z',
},
// Airbus A300-600ST "Beluga" (ICAO A3ST)
'beluga': {
id: 33,
w: 29,
h: 29,
viewBox: '-1 -1 34 34',
strokeScale: 0.8,
path: 'M17.45 3.79c.58 1.14.5 2.68.5 2.68v5.74l1.91 1.08v-.34h-.26c-.22-1.21 0-2.62 0-2.62H21c.23 1.43 0 2.61 0 2.61h-.25l-.07.84 7.25 4.26c.28.14.25.5.25.5v1.27l-2.25-.83c-.14.95-.2-.08-.2-.08l-1.2-.44c-.13.97-.18-.06-.18-.06l-.97-.36c-.13.89-.18-.06-.18-.06l-1.43-.54c-.15.94-.22-.07-.22-.07l-.62-.24h-1.75c-.12 1.06-.2 0-.2 0h-1.03v4.13l-1.12 6.15 3.37 2.5.05-.61h.1v2.06l-3.98-1.47-.27 1.44H15.81l-.27-1.44-3.98 1.47V29.3h.1l.05.61 3.37-2.5-1.12-6.15v-4.13h-1.03s-.08 1.06-.2 0h-1.75l-.62.24s-.07 1.01-.21.07l-1.43.54s-.06.95-.18.06l-.98.36s-.05 1.03-.17.06l-1.2.44s-.07 1.03-.2.08l-2.25.83-.01-1.26s-.03-.37.25-.5l7.25-4.27-.07-.84h-.25s-.23-1.18 0-2.61h1.4s.22 1.4 0 2.62h-.26v.34l1.9-1.08V6.47s-.07-1.54.51-2.68c0 0 .91-3.34 1.5-3.23.58-.1 1.49 3.23 1.49 3.23z',
},
// McDonnell Douglas C-17 Globemaster III (ICAO C17)
'c17': {
id: 34,
w: 32,
h: 32,
strokeScale: 0.8,
viewBox: '0 0 32 32',
path: 'M16.21 5.17l.19.19.26.56.34.83.19.48.22.83.11.82v1.16l.19.3.11.3.08.45v.45l1.16.67-.08-.52h-.11l-.04-.04-.07-.38v-.78l.04-.38h-.15v-.1l.07-.2.11-.1.04-.08h.9l.02.07.13.11.07.2v.1h-.15l.04.38v.78l-.07.38-.04.04h-.11l-.12.74 2.36 1.39-.07-.67h-.12l-.03-.04-.08-.38v-.78l.04-.38h-.15v-.1l.08-.2.1-.1.04-.08h.9l.04.07.11.11.08.2v.1h-.15l.04.38v.78l-.08.38-.04.04h-.1l-.16.93 4.57 2.62.11.08.07.15v.22l.34.79v.33l-.52-.4-3.86-.83-.07.19-.11.03V17l-1.35-.3-.11.23-.12.03v-.33l-.9-.19-.03.22-.11.2-.12.03v-.52l-1.42-.3-.04.22-.1.19-.12.03V16l-.56-.15-.08.49-.11.4-.19.38v2.92l-.07 1.46-.3 1.43-.34 1.16-.22.56L20.22 27l.15.15.03.15v.74l-4.26-1-.11.82-.12-.83-4.26 1.01v-.74l.03-.15.15-.15 3.63-2.36-.22-.56-.34-1.16-.3-1.43-.07-1.46v-2.92l-.19-.37-.11-.41-.08-.49-.56.15v.52l-.11-.03-.11-.19-.04-.22-1.42.3v.52l-.11-.04-.12-.19-.03-.22-.9.19v.33l-.11-.03-.12-.23-1.34.3v.26l-.12-.03-.07-.2-3.86.83-.52.41v-.33l.34-.79v-.22l.07-.15.11-.08 4.57-2.62-.15-.93h-.11l-.04-.04-.07-.38v-.78l.03-.38h-.15v-.1l.08-.2.11-.1.04-.08h.9l.03.07.12.11.07.2v.1h-.15l.04.38v.78l-.08.38-.03.04h-.12l-.07.67 2.36-1.39-.12-.74h-.1l-.05-.04-.07-.38v-.78l.04-.38h-.15v-.1l.07-.2.11-.1.04-.08h.9l.04.07.11.11.08.2v.1h-.15l.03.38v.78l-.07.38-.04.04h-.11l-.08.52 1.16-.67v-.45l.08-.45.11-.3.19-.3V8.88l.11-.82.22-.83.2-.48.33-.83.26-.56.19-.19.19-.07z',
},
// Lockheed C-5 Galaxy (ICAO C5M)
'c5': {
id: 35,
w: 32,
h: 32,
viewBox: '0 0 32 32',
strokeScale: 0.7,
path: 'M14.61 4.6v5.82l-2.92 1.56v-.4h.14c.16-.47.09-.96.09-.96 0-.23-.23-.23-.23-.23h-.62c-.21 0-.2.24-.2.24v.93h.15v.76l-2.03 1.07v-.41h.14c.18-.42.09-.98.09-.98 0-.26-.24-.23-.24-.23h-.6c-.2-.02-.2.17-.2.17v1h.16v.78L3.6 16.17c-1.07.54-.97 2.25-.97 2.25l3.62-1.1c.14 1.75.17-.01.17-.06l.94-.26c.16 1.67.17-.07.17-.07l.92-.3c.12 1.97.18-.05.18-.05l1.14-.36c.07 1.95.14.1.14-.04l1.23-.27c.09 2.04.14.01.13-.02l1.43-.28c.14 2.23.18.02.17-.03l1.45-.26a6.8 6.8 0 00.29 2.38v1.94c-.06 1.93.05 3.43.05 3.43.19 2.82.7 4.74.7 4.74l-3.1 1.73c-.53.32-.4 1.13-.4 1.13l3.75-.63c-.07 1.24.4 1.19.4 1.19s.47.05.4-1.2l3.75.64s.13-.8-.4-1.13l-3.09-1.73s.5-1.92.7-4.74c0 0 .1-1.5.05-3.43V17.7s.3-.7.28-2.38l1.45.26c0 .2.04 2.16.18.03l1.42.28c0 .06.01 1.95.13.02l1.23.27c0 .26 0 1.84.15.04l1.14.36c0 .11.02 2.02.18.04l.92.3c0 .07.01 1.98.16.08l.95.26c0 .1.06 1.84.17.06l3.61 1.1s.1-1.7-.96-2.25l-4.74-2.45v-.78h.16v-1s0-.2-.2-.17h-.6s-.25-.03-.24.23c0 0-.1.56.08.98h.14v.41l-2.02-1.07v-.76h.14v-.93s.02-.24-.19-.24h-.62s-.24 0-.23.23c0 0-.07.49.09.96h.14v.4l-2.92-1.56V4.6s-.38-2.66-1.4-3c-1.04.34-1.41 3-1.41 3z',
},
// Aero Spacelines Super Guppy (ICAO C97)
'super_guppy': {
id: 36,
w: 28,
h: 28,
viewBox: '-1 -1 34 34',
strokeScale: 1.0,
path: 'M15.16 3.9c-2 2.63-1.98 3.52-1.98 3.52l-.01.71-.06 3.61-.9.06c.02-.97-.15-2.08-.15-2.08h.89V9.6h-.92c-.2-.66-.39 0-.39 0h-1.23v.1h1.22c-.2 1.13-.2 2.17-.2 2.17L9.48 12c.03-1.13-.15-2.13-.15-2.13h1.21v-.1H9.3c-.22-.74-.4 0-.4 0H7.65v.1h1.22c-.18.73-.18 2.19-.18 2.19l-6.82.5c-.65.22-.44 1.1-.44 1.1.25.56.84.53.84.53l4.65.02c.16.2.49.2.49.2l5.67-.02c-.12.9.24 2.77.24 2.77l1.96 10.43-4 .43c-.2.01-.26.2-.26.2s-.04.26.01.48c.05.22.27.22.27.22l4.33.6c.12.85.3.78.3.78s.2.07.3-.78l4.34-.6s.22 0 .27-.22c.05-.22 0-.49 0-.49s-.06-.18-.25-.19l-4-.43 1.96-10.43s.35-1.87.24-2.77l5.67.02s.33 0 .5-.2l4.64-.02s.6.03.84-.53c0 0 .21-.88-.44-1.1l-6.82-.5s0-1.46-.18-2.19h1.22v-.1H23s-.2-.74-.42 0h-1.22v.1h1.21s-.18 1-.15 2.13l-1.97-.14s.02-1.04-.19-2.18h1.22V9.6h-1.23s-.19-.66-.4 0h-.9v.12h.88s-.17 1.11-.15 2.08l-.9-.06-.06-3.61v-.7s.01-.9-1.99-3.53c0 0 .16-.84-.79-.97-.94.13-.78.97-.78.97z',
},
// Nasa WB-57 (ICAO WB57)
'wb57': {
id: 37,
w: 28,
h: 28,
viewBox: '0 0 32 32',
strokeScale: 0.8,
path: 'M16.2 25.02h.98v-.08l1.78-.01s.24-.02.22-.43c0 0 .02-.53-.36-.74l-2.37-1.07.28-3.22h1.48v.09h.07l.12.92h.19l.28-1.02 1.21-.13 10.16-1.34s.06-1.86-1.38-2.25l-9.74-1.54v-1.53s.06-.41-.33-.42h-.43s-.34-.04-.35.35v1.55h-1.32v-1.6L16.26 9s-.1-.33-.33-.33-.34.33-.34.33l-.42 3.54v1.61h-1.32V12.6c-.01-.39-.36-.35-.36-.35h-.42c-.4 0-.34.42-.34.42v1.53L3 15.74c-1.44.39-1.38 2.25-1.38 2.25l10.16 1.34 1.21.13.28 1.06.2-.01.11-.95h.07v-.1h1.48l.29 3.23-2.38 1.07c-.38.2-.36.74-.36.74-.02.4.22.43.22.43h1.78v.1h.99c.01.37.27.35.27.35s.25.02.26-.36z',
},
'a380': {
id: 38,
w: 42,
h: 42,
viewBox: '-7 -6 40 40',
strokeScale: 1.15,
path: "m 11.60,21.60 c 0,0 0.50,-0.30 0.30,-1 0,0 -0.30,-0.70 -0.30,-3.60 v -2 c 0,0 -0.20,-0.90 -0.20,-2.10 l -1.70,0.50 c 0,0 -0.07,0.39 -0.15,0.41 C 9.47,13.83 9.40,13.40 9.40,13.40 l -1.34,0.60 c 0,0 -0.04,0.46 -0.15,0.45 -0.10,-0.01 -0.15,-0.35 -0.15,-0.35 L 6.50,14.60 c 0,0 0.03,0.66 -0.12,0.66 -0.13,0.00 -0.13,-0.59 -0.13,-0.59 l -1.42,0.65 c 0,0 -0.02,0.65 -0.14,0.67 C 4.59,16.00 4.60,15.40 4.60,15.40 l -1.20,0.50 c 0,0 -0.02,0.66 -0.14,0.67 C 3.14,16.58 3.15,15.99 3.15,15.99 L -2.20,18.30 c 0,0 -0.09,0.62 -0.20,0.60 -0.13,-0.02 0,-2 0.60,-2.40 L 3,12.90 C 2.78,12.08 2.69,11.33 2.80,10.70 c 0,0 0,-0.30 0.20,-0.30 H 4.19 C 4.48,10.52 4.30,11.27 4.30,12 L 7,9.90 c 0,0 -0.30,-0.60 -0.20,-2 0,0 0,-0.30 0.20,-0.50 H 8.09 C 8.29,7.56 8.27,8.39 8.20,9 8.20,9 11.60,6.50 11.60,6 V 3.20 c 0,0 0,-4 1.30,-4.20 0,0 1,-0.30 1.30,4 v 3 c 0,0 -0.20,0.30 3.40,3 V 8 c 0,0 0,-0.40 0.30,-0.50 h 0.80 c 0,0 0.30,0 0.30,0.40 0,0 0,1.70 -0.20,2.20 l 2.90,2 c -0.12,-0.50 -0.17,-1.59 0.17,-1.60 h 1.09 c 0.37,-0.01 0.29,1.77 -0.06,2.50 l 4.60,3.40 c 0.53,0.36 0.88,2.51 0.80,2.50 C 28.25,18.90 28,18.30 28,18.30 l -5.27,-2.34 c 0,0 0.01,0.62 -0.13,0.60 C 22.47,16.54 22.50,15.90 22.50,15.90 l -1.35,-0.53 c 0,0 0.02,0.70 -0.12,0.66 C 20.91,15.99 20.90,15.30 20.90,15.30 l -1.30,-0.60 c 0,0 -0.02,0.73 -0.13,0.70 C 19.33,15.37 19.30,14.60 19.30,14.60 l -1.20,-0.50 c 0,0 -0.08,0.31 -0.20,0.30 C 17.75,14.39 17.70,14 17.70,14 l -1.20,-0.50 c 0,0 -0.05,0.40 -0.20,0.40 -0.15,0 -0.20,-0.40 -0.20,-0.40 L 14.40,13 c 0,0 0,1.40 -0.20,2 v 2 c 0,0 0,2.70 -0.30,3.80 0,0 -0.20,0.40 0.10,0.60 l 4.30,3.50 c 0,0 0.50,0.20 0.70,2 l -5.70,-2.30 v 0.50 c -0.24,2.90 -0.53,2.90 -0.70,0 v -0.40 l -5.80,2.20 c 0,0 0.30,-1.70 0.50,-2 z",
},
'il_62': {
id: 39,
w: 30,
h: 30,
viewBox: '-1 -2 30 31',
path: 'M16.92 26.41s.25.63.01 1.22l-2.8-.87-.16.92-.16-.91-2.83.85s-.19-.67.01-1.18l2.58-2.18s-.09-1.38-.64-1.8l-.15.08-.18-.34h-.32s-.3.06-.3.52h-.18s.04-.35-.16-.53h-.33s-.47-3.31-.12-3.67h.59l.06.17h.24l.07-.17h.58l.09.2h.21l-.01-1.77-.25-.2-1.75-.02L3.57 20l-.18.3s-.46-1.4.02-2.01l.16.13 6.69-5.51.11.13L13.01 11l.03-8.03s.1-2.5.91-2.74c0 0 .8 0 .96 2.77l.01 8 2.6 2.06.14-.15 6.73 5.53.12-.14s.53.56.03 1.98l-.16-.25-7.47-3.28h-1.75l-.22.17-.02 1.8h.23l.03-.19h.6l.05.18h.27l.05-.17h.59s.43.96-.15 3.68h-.27s-.24.04-.2.53h-.17s.02-.42-.27-.55h-.31l-.2.32-.16-.06s-.4.21-.67 1.85z',
},
'u2': {
id: 40,
w: 32,
h: 32,
viewBox:'-3.8 -4 34 34',
path: 'M16.9 21s.2 0 .2.3v.7s0 .3-.2.2l-3.7.5s0 1-.2.8c0 0-.2.2-.2-.8l-3.6-.5s-.2 0-.2-.4v-.6s0-.2.3-.3l3-.5V16l-2.4-.2s-.1.8-.5.8c0 0-.5 0-.5-1l-4.3-.3s-.1.5-.2 0l-7-.6v-1.2L9 12.1s-.2-2.5.4-2.5c0 0 .6-.2.5 2.3l2.3-.3s-.4-1.6-.1-2h.5V6.4s0-2.4.6-2.5c0 0 .5 0 .6 2.5v3.2h.5s.3.3 0 2l2.2.4v-1.5s0-.8.4-1c0 0 .6 0 .5 1v1.6l11.5 1.5v1.2l-7 .6s0 .6-.2 0l-4.4.5s0 1-.4.9c0 0-.3 0-.4-.9l-2.6.3v4.2z',
},
'glider': {
id: 41,
w: 22,
h: 33,
viewBox: '-5.8 -10 76 76',
noAspect: true,
strokeScale: 2.4,
path: 'm 32.000,45.932 -0.215,0.314 c -0.118,0.173 -0.196,0.239 -0.378,0.401 -0.226,0.145 -0.850,-0.045 -1.196,-0.137 -0.658,-0.204 -1.909,-0.478 -2.984,-0.718 -0.065,-0.021 -0.186,-0.136 -0.406,-0.344 -0.342,-0.323 -0.409,-0.463 -0.459,-0.961 -0.074,-0.730 0.183,-1.127 0.795,-1.228 0.218,-0.036 0.732,-0.130 1.143,-0.210 0.411,-0.080 1.132,-0.201 1.602,-0.271 1.252,-0.185 1.635,-0.299 1.701,-0.507 0.059,-0.186 -0.006,-2.549 -0.101,-3.654 -0.110,-2.092 -0.181,-3.601 -0.281,-5.738 0.039,-0.214 -0.274,-0.732 -0.553,-0.915 l -5.180,-0.560 c -0.611,-0.069 -3.989,-0.350 -5.732,-0.476 -1.476,-0.108 -2.940,-0.246 -4.432,-0.362 l -3.097,-0.439 C 7.935,29.593 4.497,29.014 2.499e-5,28.410 l 0.019,-2.401 5.562,-0.286 c 2.699,-0.023 6.207,-0.092 9.264,-0.183 0.646,-0.019 4.548,-0.040 8.671,-0.047 l 7.496,-0.012 -0.017,-2.376 c -0.007,-1.423 -0.104,-3.049 0.253,-4.827 0.028,-0.088 0.121,-0.396 0.344,-0.722 0.071,-0.090 0.213,-0.175 0.408,-0.255 0.195,0.080 0.337,0.165 0.408,0.255 0.223,0.325 0.316,0.633 0.343,0.722 0.357,1.778 0.261,3.405 0.253,4.827 l -0.016,2.376 7.496,0.012 c 4.123,0.007 8.025,0.028 8.671,0.047 3.057,0.091 6.564,0.160 9.264,0.183 l 5.562,0.286 0.019,2.401 c -4.497,0.605 -7.935,1.183 -12.228,1.717 l -3.097,0.439 c -1.492,0.116 -2.956,0.254 -4.432,0.362 -1.743,0.127 -5.121,0.408 -5.732,0.476 l -5.180,0.560 c -0.278,0.182 -0.592,0.701 -0.553,0.915 -0.100,2.136 -0.171,3.646 -0.281,5.738 -0.095,1.105 -0.160,3.468 -0.101,3.654 0.066,0.208 0.449,0.322 1.701,0.507 0.470,0.069 1.191,0.191 1.602,0.271 0.411,0.080 0.926,0.174 1.143,0.210 0.612,0.101 0.870,0.498 0.795,1.228 -0.051,0.499 -0.118,0.638 -0.460,0.961 -0.220,0.208 -0.341,0.323 -0.406,0.344 -1.075,0.240 -2.326,0.513 -2.984,0.718 -0.346,0.091 -0.970,0.282 -1.196,0.137 -0.182,-0.162 -0.260,-0.228 -0.378,-0.401 z',
},
'p3_orion': {
id: 42,
w: 28,
h: 28,
strokeScale: 40,
viewBox: '-35 -35 1250 1460',
path: 'M580 1349 c0 -22 -5 -70 -11 -107 -11 -67 -12 -68 -50 -80 -21 -7 -56 -13 -76 -13 -74 -3 -98 -12 -98 -39 0 -22 9 -28 90 -56 l90 -31 -4 -189 c-1 -104 -4 -190 -5 -191 -3 -3 -175 -39 -331 -69 -163 -31 -185 -41 -185 -87 0 -51 13 -57 121 -57 l97 0 4 -35 c4 -34 3 -35 -32 -37 l-35 -1 34 -4 c19 -3 40 -12 47 -20 10 -15 12 -15 20 -1 5 9 23 18 39 21 l30 4 -30 2 c-29 1 -31 3 -27 36 l4 35 53 0 c51 0 53 -1 59 -31 9 -47 8 -49 -26 -50 l-33 -2 30 -4 c17 -2 36 -12 43 -21 11 -15 13 -15 25 0 6 9 23 19 37 21 24 4 23 4 -4 6 -21 1 -27 5 -22 17 3 9 6 24 6 35 0 15 7 19 39 19 l39 0 4 -157 c3 -145 5 -162 28 -208 14 -27 32 -50 40 -50 8 0 26 23 40 50 23 46 25 63 28 208 l4 157 39 0 c32 0 39 -4 39 -19 0 -11 3 -26 6 -35 5 -12 -1 -16 -22 -17 -27 -2 -28 -2 -4 -6 14 -2 31 -12 38 -21 11 -15 13 -15 25 0 6 9 26 19 42 21 30 4 30 4 -4 6 -32 1 -33 2 -27 32 3 17 6 35 6 40 0 5 24 9 54 9 l54 0 4 -35 c4 -33 2 -35 -27 -36 l-30 -2 30 -4 c16 -3 34 -12 41 -21 10 -14 12 -14 20 1 5 8 25 17 44 20 l35 4 -35 1 c-35 2 -36 3 -32 37 l4 35 97 0 c108 0 121 6 121 57 0 46 -22 56 -185 87 -156 30 -328 66 -331 69 -1 1 -4 87 -5 191 l-4 189 90 31 c81 28 90 34 90 56 0 27 -24 36 -98 39 -20 0 -55 6 -76 13 -38 12 -39 13 -50 80 -6 37 -11 85 -11 107 0 23 -4 41 -10 41 -5 0 -10 -18 -10 -41z',
},
'cirrus_sr22': {
id: 43,
w: 23,
h: 25,
strokeScale: 2.5,
noAspect: true,
viewBox: '0 0 64 64',
path: "m 32.529,48.297 9.466,-0.384 C 41.957,46.705 41.877,45.583 41.357,45.379 L 32.729,44.318 c -0.171,0.039 0.467,-4.770 1.102,-7.068 0.302,-1.092 0.624,-2.364 0.914,-3.624 0.194,-0.845 0.447,-2.245 1.227,-2.293 l 21.325,-2.424 1.775,0.206 c -0.165,-2.018 -0.034,-4.383 -1.794,-4.523 L 35.400,23.942 35.189,18.157 c -0.172,-1.993 -0.488,-3.164 -0.953,-3.403 l -1.219,-0.439 -0.055,-0.257 c 0,0 5.143,0.347 6.198,-0.023 0.088,-0.031 0.079,-0.231 0,-0.281 -0.363,-0.227 -6.243,0.030 -6.243,0.030 0,0 -0.356,-1.317 -0.700,-1.707 -0.263,0.374 -0.700,1.707 -0.700,1.707 0,0 -5.889,-0.280 -6.440,-0.030 -0.135,0.061 -0.084,0.239 0,0.281 0.787,0.400 6.390,-0.024 6.395,0.023 l -0.055,0.257 -1.219,0.439 c -0.464,0.240 -0.781,1.410 -0.953,3.403 L 29.036,23.942 7.158,24.591 c -1.761,0.140 -1.630,2.505 -1.794,4.523 l 1.775,-0.206 21.325,2.424 c 0.780,0.048 1.033,1.448 1.227,2.293 0.290,1.261 0.612,2.533 0.914,3.624 0.636,2.298 1.273,7.107 1.102,7.068 l -8.628,1.061 c -0.520,0.204 -0.600,1.325 -0.638,2.533 l 9.466,0.384 0.307,3.297 z",
},
// Verhees Engineering Verhees Delta (ICAO DLTA)
'verhees': {
viewBox:'-3.7 0 32 32',
id: 44,
w: 28,
h: 28,
strokeScale: 1.2,
accentMult: 0.8,
path: "M7.99 22.96l-3.37-.58-5.02-2.5v-4.46L9.74 6.04l.67-1.34.93-.17s.56-.77.84-.74c.28-.03.84.74.84.74l.94.17.66 1.34 10.14 9.38v4.45l-5.02 2.5-3.36.59-4.2-1.06z",
accent: "M-.63 19.22h9.1l3.84 2.68 3.85-2.68h8.82M15.35 5.44l-1.07 1.22m-5-1.22l1.06 1.22.79 8.33 1.18 6.9.36 1.35m-.72 0l.36-1.34 1.19-6.91.78-8.33h-3.94",
},
// Gyrocopter Generic Icon (ICAO GYRO)
'gyrocopter': {
viewBox:'-3.5 -3 32 32',
id: 45,
w: 27,
h: 27,
strokeScale: 1.0,
path: [
'M12.13 18.58l-.27-.43-.66.81-2.51.23s-.07 1.23-.24.03c0 0-.13-1-.1-1.97 0 0 .23-.33.33-.11v.16l3.3-1.9s-.15-.29-.24-.64c0 0-1.56.02-2.53-.14v-.13s1.35-.02 2.47-.1l.41-.04v-.12h-1.24s-.1.05-.1-.11v-.2s-.28.07-.27-.19V12.7l-1.73-.26s.05.49-.28.48c0 0-.25 0-.26-.24v-.92s.02-.25.25-.26c0 0 .25 0 .26.24v.36h.1l1.93.1v-.11c.05-.5.03-.97.03-.97s-.14-1.68.02-3.11c0 0 .39-3.42 1.44-4.1 1.04.68 1.43 4.1 1.43 4.1.16 1.43.02 3.11.02 3.11s-.02.47.03.97v.11l1.93-.1h.1v-.36c.01-.25.26-.24.26-.24.23.01.25.26.25.26v.92c-.01.24-.25.24-.25.24-.34 0-.28-.48-.28-.48l-1.74.26v1.03c.01.26-.26.18-.26.18v.2c0 .17-.1.12-.1.12h-1.25v.12l.42.04c1.11.08 2.47.1 2.47.1v.13c-.98.16-2.54.14-2.54.14-.08.35-.24.63-.24.63l3.3 1.9v-.15c.1-.22.33.11.33.11.04.98-.1 1.97-.1 1.97-.17 1.2-.24-.03-.24-.03l-2.51-.23-.65-.8-.28.42-.1 1.57z',
'M25.68 21.87l-12.47-7.8-.37-.76-.42-.26s-.54.3-.6-.35l-.3-.23s-.13.04-.5-.21l-12.7-7.94s.06-.52.45-.7l12.41 7.77.42.76.38.24s.6-.26.64.4l.33.21s.32.09.56.27l12.61 7.89s.02.43-.44.7z'
],
},
// liberally modeled after ec145
'helicopter': {
id: 46,
w:29,
h:29,
viewBox:'-13 -13 90 90',
strokeScale: 3.0,
path: "m 24.698,60.712 c 0,0 -0.450,2.134 -0.861,2.142 -0.561,0.011 -0.480,-3.836 -0.593,-5.761 -0.064,-1.098 1.381,-1.192 1.481,-0.042 l 5.464,0.007 -0.068,-9.482 -0.104,-1.108 c -2.410,-2.131 -3.028,-3.449 -3.152,-7.083 l -12.460,13.179 c -0.773,0.813 -2.977,0.599 -3.483,-0.428 L 26.920,35.416 26.866,29.159 11.471,14.513 c -0.813,-0.773 -0.599,-2.977 0.428,-3.483 l 14.971,14.428 0.150,-5.614 c -0.042,-1.324 1.075,-4.784 3.391,-5.633 0.686,-0.251 2.131,-0.293 3.033,0.008 2.349,0.783 3.433,4.309 3.391,5.633 l 0.073,4.400 12.573,-12.763 c 0.779,-0.807 2.977,-0.599 3.483,0.428 L 37.054,28.325 37.027,35.027 52.411,49.365 c 0.813,0.773 0.599,2.977 -0.428,3.483 L 36.992,38.359 c -0.124,3.634 -0.742,5.987 -3.152,8.118 l -0.104,1.108 -0.068,9.482 5.321,-0.068 c 0.101,-1.150 1.546,-1.057 1.481,0.042 -0.113,1.925 -0.032,5.772 -0.593,5.761 -0.412,-0.008 -0.861,-2.142 -0.861,-2.142 l -5.387,-0.011 0.085,9.377 -1.094,2.059 -1.386,-0.018 -1.093,-2.049 0.085,-9.377 z",
},
'pa24': {
viewBox:'-3 -3 30 30',
id: 47,
w: 30,
h: 30,
noAspect: true,
path: 'M12.17 17.81l2.77.46.01.98-3.03.14-3.14-.18.02-.97 2.77-.43-.61-4.52-7.18-1.23s-.4-1.27.02-1.88l5.72-.25 1.39-.9.43-2.7-1.41-.01s-.15-.1 0-.16l1.73-.03s.34-1.08.67 0l1.72.04s.15.07 0 .15h-1.42l.36 2.72 1.37.95 5.82.27s.4.16.02 1.9l-7.33 1.14z',
},
'bae_hawk': {
viewBox:'-2 0 29 29',
id: 48,
w: 33,
h: 33,
path: 'M15.9 21.7l-3-.7h-.7l-2.9.7s-.2-.5.2-1l2.4-1.6-.1-3.4-.1-.2-6.1.7s-.3-1.1.6-1.6l4.3-2.2.8-.5s-.3-1 .2-1.3h.4V7.2s.1-2.1.8-2.4c0 0 .6 0 .7 2.1v3.7h.5s.4.1.1 1.3l.8.6 4.3 2.1s.8.3.5 1.7l-6-.8-.1.2s0 1.8-.2 3.4l2.3 1.7s.4.2.3 1z',
},
'a10': {
viewBox:'0 0 32 32',
id: 49,
w: 24,
h: 24,
strokeScale: 1.2,
path: ['M 16.001,1.860 C 15.777,1.878 15.396,2.202 15.194,2.828 14.910,3.706 14.879,4.322 14.879,9.139 l -4.250e-4,4.609 H 13.460 12.041 L 11.998,13.133 c -0.024,-0.338 -0.092,-0.707 -0.150,-0.820 -0.218,-0.421 -0.633,-0.407 -0.811,0.028 -0.049,0.119 -0.110,0.483 -0.136,0.809 l -0.048,0.593 -0.216,0.035 c -0.118,0.019 -1.118,0.112 -2.222,0.206 -3.270,0.280 -2.267,0.212 -4.830,0.428 -1.988,0.174 -2.134,0.220 -2.390,0.744 -0.146,0.301 -0.161,0.429 -0.185,1.703 -0.015,0.758 -0.014,1.378 0.001,1.378 0.015,0 2.147,0.168 4.738,0.374 2.591,0.206 4.798,0.374 4.904,0.374 h 1.639 l 0.003,1.412 c 0.006,2.535 0.069,3.271 0.329,3.859 0.208,0.539 0.568,0.639 0.987,0.648 0.411,-0.021 0.645,-0.166 0.872,-0.646 0.136,-0.279 0.170,-0.306 0.395,-0.306 h 0.246 l 0.084,0.833 c 0.046,0.458 0.102,0.948 0.123,1.088 l 0.039,0.255 h -2.073 -2.073 c -0.306,0.004 -0.339,-0.003 -0.369,0.046 -0.133,0.249 0.002,3.492 0.145,3.492 h 0.417 2.036 c 1.371,0 1.963,8.440e-4 2.036,0.071 0.028,0.027 0.075,0.146 0.167,0.238 0.096,0.096 0.219,0.153 0.340,0.163 0.122,-0.009 0.247,-0.067 0.344,-0.163 0.092,-0.092 0.139,-0.211 0.167,-0.238 0.073,-0.071 0.665,-0.071 2.036,-0.071 h 2.036 0.417 c 0.143,0 0.278,-3.243 0.145,-3.492 -0.031,-0.048 -0.063,-0.041 -0.369,-0.046 H 18.701 16.628 l 0.039,-0.255 C 16.688,25.734 16.743,25.244 16.790,24.786 l 0.084,-0.833 h 0.246 c 0.225,0 0.259,0.027 0.395,0.306 0.227,0.480 0.461,0.625 0.872,0.647 0.419,-0.009 0.779,-0.110 0.987,-0.649 0.260,-0.587 0.323,-1.324 0.329,-3.859 l 0.003,-1.412 h 1.639 c 0.107,0 2.314,-0.168 4.904,-0.374 2.591,-0.206 4.723,-0.374 4.738,-0.374 0.015,0 0.015,-0.620 9.370e-4,-1.378 -0.025,-1.274 -0.039,-1.402 -0.185,-1.703 -0.255,-0.524 -0.402,-0.570 -2.390,-0.744 -2.563,-0.216 -1.560,-0.148 -4.830,-0.428 -1.104,-0.094 -2.104,-0.187 -2.222,-0.206 l -0.216,-0.035 -0.048,-0.593 c -0.026,-0.326 -0.088,-0.690 -0.136,-0.809 -0.178,-0.435 -0.593,-0.449 -0.811,-0.027 -0.058,0.113 -0.125,0.481 -0.149,0.819 l -0.044,0.615 h -1.419 -1.418 l -4.260e-4,-4.609 C 17.121,4.321 17.090,3.706 16.806,2.828 16.605,2.204 16.226,1.880 16.001,1.860 Z',
"m 12.293031,18.986197 0.0039,1.41211 c 0.0062,2.53506 0.06826,3.269951 0.328125,3.857421 0.207911,0.538692 0.566942,0.639573 0.986328,0.648438 0.419386,-0.0089 0.78037,-0.109746 0.988281,-0.648438 0.25987,-0.58747 0.321925,-1.322361 0.328125,-3.857421 l 0.0039,-1.41211 c -2.638672,0 0,0 -2.638672,0 z",
"m 17.06817,18.98577 0.0039,1.41211 c 0.0062,2.53506 0.06826,3.269951 0.328125,3.857421 0.207911,0.538692 0.566942,0.639573 0.986328,0.648438 0.419386,-0.0089 0.78037,-0.109746 0.988281,-0.648438 0.25987,-0.58747 0.321925,-1.322361 0.328125,-3.857421 l 0.0039,-1.41211 c -2.638672,0 0,0 -2.638672,0 z"],
},
'chinook': {
viewBox:'-4.5 -3 32 32',
id: 50,
w: 32,
h: 32,
path: [
'M9.9 8.23s-.08-3.57 1.17-3.46c0 0 1-.12 1.2.5 0 0 .4.83.47 2.9m0 0s.56.08.53.85l-.01 8.41s-.02.34-.23.44c0 0 .06.26-.16.48l.03.22h-.19s.06 2.07-1.12 2.06c0 0-.73.12-1.06-.24 0 0-.65-.65-.58-1.81h-.18l.07-.26s-.19-.12-.14-.4c0 0-.23-.02-.28-.45v-8.7s.07-.52.49-.54',
'M17.76 13.38l-.58.56-4.63-5.05-.12-.84-.48-.62h-.16l-.2-.24s-.54.27-.76-.35l-.34.04-1.07.38-6.98 1.53-.15-.74L8.9 6.6l.8.24.74-.07.12-.14.23-.03s.1-.65.75-.51l.3-1.33L13.99-2l.7.21-2.01 6.48-.66.53-.26.64.09.15-.13.25s.4.36.06.76l.3.35.92.86z',
'M20.33 16.18l.2.78-6.69 1.52-.79-.31-.77.12-.08.13-.3.06s-.04.6-.69.48l-.13.32-.2 1.12-2.12 6.82-.72-.24 2-6.46.61-.56.3-.68-.06-.18.09-.2s-.51-.41-.07-.91l-1.02-.92-4.8-5.22.53-.5 4.63 4.94.14.84.43.54H11l.15.24s.51-.17.7.32l.45-.09 1.2-.38z'
],
},
'apache': {
id: 51,
w: 31,
h: 31,
viewBox: '-3 -3 32 32',
strokeScale: 1.2,
path: 'M13.96 12.12l5.06 5.08.16.57-.52.47-.35-.76-4.25-4.22-.1 1.26-.1.12-.98.22-.3 7.76 1.96.07.18.21-.04.39-.1.5-1.97.25-.21.01v.2h-.06l-.03.02-.02.04-.03.07h-.05l-.03-.03-.03-.06v-.27l-.78-.09v.74h-.06l-.04-.13v-.62l-.1-.02v.57l-.04.04-.07-.1v-.5l-.98-.12-.15-.4-.02-.48.16-.22.98-.04.02-1.3.1-.09v1.4h.1l-.02-1.5.1-.07v1.56l.26-.02.19-.02.14-.11-.33-7.7-1.02-.24-.13-1.79-4.65 4.6-.62.2-.45-.5.73-.33 4.55-4.54.26-.13-1.53-.23.01-2.26h.57v1l.5-.02-.01-.45h-.1l.01-.2.1-.08v-.24l.06-.07h.1l.06.07v.2l.08-.08.1-.01v-.1l.06-.08h.1l.05.06.02.27.1.08v.2h-.1v.41h.62V9.7L5.55 4.15l-.17-.6.5-.46.34.67.11.14 4.46 4.47.31.66v-.59l-.04-.06v-.74l-.05-.09-.01-.8.1-.26.03-.35.1-.3.1-.2.17-.13.09-.46.2-.4-.06-.04v-.42l.13-.1.78-.02.11.1.06.07.01.18-.03.3.14.22.11.57.18.17.17.26.06.34.01.26.07.25.01.75-.06.12.01.76-.04.04v.85L18.79 4l.62-.18.46.52-.75.36-4.53 4.5-1.12.62-.01.72h.63v-.43h-.1v-.2l.1-.1v-.22l.06-.07h.08l.05.06v.12h.07l.08.04.07.06v-.21l.05-.06h.07l.06.06.01.22.1.06v.25h-.1v.45l.5.01v-1h.56v2.3l-1.24.16h-.53z',
},
'blackhawk': {
id: 52,
w: 28,
h: 28,
viewBox: '0 0 32 32',
strokeScale: 1.2,
path: 'M19.7 27.47s.12.61-.38.56l-2.38.18.34.6-.2.65-.38-.66-.05 1.8-.13.22.04-2.28h-.3s.02 1.3-.25 1.6c0 0-.24-.03-.35-1.22 0 0-.32.12-.32-.69l-2.79-.2s-.4.07-.34-.48l.01-.46s.03-.42.36-.4l3.05-.31-.31-8.77s-.08-.4-.51-.52l-.01-.32-.77-.03v-.85l-.18-.1.2-.88s-.16-.2-.14-1.7l-7.6 5.18-.82.27-.43-.63.83-.26 7.4-5.1h.63l.03-2.26-.1-.11s-.27.42-.5-.02l.02-.9s.22-.43.45 0v.44l.21-.24.02-.44-4.83-7.09-.25-.8.62-.42.27.82 4.19 6.1s-.27-3.85 1.77-3.9c0 0 2.19-.52 2.03 3.65v2.07l.2.19-.01-.44s.18-.34.4 0l.02.48 7.08-4.83.82-.26.42.62-.81.26-7.47 5.13h-.48l-.05 3.8 4.62 6.8.25.83-.62.42-.27-.83-4.06-5.93.01.93-.74.01v.3s-.58.17-.58.86l-.31 8.5h.27v-.38l.15-.3v.71l2.45.24s.52-.05.53.33z',
},
's61':{
id: 53,
w:28,
h:28,
strokeScale: 1.1,
viewBox:'0 0 32 32',
path:'M11.16.91l-.9.54 4.9 10.19v.24h-.72v-.15c-.02-.53-.82-.74-1 0-.22.8-.16 1.42-.04 2L2.9 14.96 3.14 16l10.48-1.3.02.07c.06.3.15.45.24.62.11.11.24.16.38-.05.04-.14.07-.3.1-.49h.8l-.03 4.42c.04.33.09.6.14.84l-1.5 6.95.92.14 1.05-5.62.18.4.46 8.84c-.01.2.18.18.24.05v-.13l2.75-.24c.2-.01.2-.12.26-.18l-.03-.99-2.84-.2.48-7.09c.33-.73.67-1.64.92-2.69V14.9l10.38 5.95L29 20l-9.34-5.28.01-.04c.18-.9.54-1.76.2-3.05a.8.8 0 00-.1-.24l7.36-6.96-.75-.64-8.24 7.77V8.82l-.05-.36-.19-.63c-.1-.27-.44-.6-.82-.77h-.92c-.4.17-.7.44-.8.71-.18.31-.13.5-.2.74v.95L11.16.91z',
},
'f5_tiger': {
viewBox:'-3.5 -3 32 32',
id: 54,
w: 28,
h: 28,
path: 'M9.77 14.6s-.03-.78.16-1.74l.59-.98.05-.65.8-.72V7.17s-.05-1.28.15-3c0 0 .03-1.33.7-3.36v-1.2h.1V.83s.48 1.15.7 3.37c0 0 .17 1.15.14 3.02l.01 3.32.77.7.08.67.6 1s.14.69.14 1.7l2.47 1.35 2.24 1.22.03-1.82h-.1v-.14h.1l.01-.3s.01-.13.17-.14v-.4s.1-.28.23 0v.68l.1.16h.16v.14h-.26v3.18l.2.23v.68h-.63v-.75l-5.77.57s.06 1.08-.08 2.6l2.5 1.57-.02.94-2.75.17-.2 1.68h-1.8l-.2-1.68-2.77-.17v-.94l2.5-1.58s-.12-1.1-.09-2.62l-5.74-.55v.76H4.4v-.67l.23-.25v-3.15h-.27v-.17h.13l.13-.14v-.73s.1-.17.22 0v.46h.1s.07.02.07.12v.3h.13v.15h-.1v1.82l2.32-1.27z',
},
// c2 = Grumman C2 Greyhound
'c2': {
id: 55,
w: 32,
h: 32,
viewBox: '-31.5 -7 34 34',
transform: 'scale(-0.01,0.01)',
strokeScale: 100,
path: 'M1169 1932 l-207 -2 -11 -45 c-12 -49 -13 -108 -2 -175 l7 -45 14 28 c13 27 15 27 74 22 34 -4 68 -9 76 -12 8 -4 39 -8 69 -9 29 -2 56 -5 58 -8 3 -3 0 -42 -6 -87 -6 -45 -11 -173 -11 -284 l0 -202 -77 -6 c-43 -4 -166 -14 -273 -22 -107 -8 -278 -21 -380 -30 -346 -28 -440 -35 -455 -35 -23 0 -48 -58 -41 -95 12 -62 19 -64 379 -116 182 -27 373 -53 422 -59 165 -19 155 -15 155 -74 1 -28 5 -70 9 -93 l8 -43 -46 0 c-25 0 -53 -4 -60 -9 -16 -10 -8 -13 71 -26 24 -4 44 -15 57 -33 l20 -27 23 28 c16 19 36 29 63 33 22 3 51 8 64 10 39 8 5 24 -53 24 l-48 0 6 33 c4 17 10 54 13 81 l6 48 64 -5 c35 -2 66 -7 68 -9 3 -2 11 -101 19 -219 20 -304 49 -412 121 -446 33 -16 37 -16 70 0 72 34 101 142 121 446 8 118 16 217 19 219 2 2 33 7 68 9 l64 5 6 -48 c3 -27 9 -64 13 -81 l7 -33 -49 0 c-58 0 -92 -16 -53 -24 13 -2 42 -7 64 -10 27 -4 47 -14 63 -33 l23 -28 20 27 c13 18 33 29 57 33 79 13 87 16 71 26 -7 5 -35 9 -60 9 l-46 0 8 43 c4 23 8 65 9 93 0 59 -10 55 155 74 50 6 240 32 422 59 360 52 367 54 379 116 7 37 -18 95 -41 95 -15 0 -109 7 -455 35 -102 9 -273 22 -380 30 -107 8 -230 18 -272 22 l-78 6 0 128 0 127 34 12 c31 10 46 26 46 51 0 14 -20 11 -36 -6 -31 -30 -44 -18 -44 38 0 30 -5 91 -11 136 -6 45 -9 84 -6 87 2 3 29 6 58 8 30 1 61 5 69 9 8 3 42 8 76 12 59 5 61 5 74 -22 14 -27 14 -26 24 47 6 52 6 91 -2 129 -6 29 -13 55 -14 56 -5 5 -464 10 -669 7z',
},
'b52': {
viewBox:'-7.5 -7 40 40',
id: 56,
w: 40,
h: 40,
path: 'M12.48 25.75l-.16-.67c-.1-.46-.11-.46-2.2-.1l-1.72.28c-.18 0-.12-1.2.07-1.43.1-.12.95-.86 1.9-1.65a18.3 18.3 0 001.72-1.54l-.15-1.43a79.1 79.1 0 01-.25-4.68l-.09-3.34-4.22 2.25c-1.45.8-2.92 1.55-4.42 2.25-.11 0-1.47.67-3.01 1.49-2.16 1.14-2.84 1.44-2.93 1.3-.18-.29-.15-1.59.05-1.83.1-.12.6-.52 1.13-.9l.95-.68v-.8c0-.9.14-1.38.31-1.42.14-.03.27.03.33.69.04.4 0 1.01.04 1.01.03 0 .69-.51 1.31-.99.95-.73 1.09-.88.9-1.02-.26-.19-.44-1.4-.3-2.1.09-.48.11-.5.7-.5.7 0 .78.13.79 1.28 0 .37.03.67.08.67.12 0 3.16-2.27 3.16-2.35 0-.05-.1-.15-.22-.24-.25-.18-.42-1.4-.3-2.1.1-.48.12-.5.73-.5.6 0 .62.02.71.5.05.26.06.76.02 1.1-.04.45-.02.6.1.53L9.6 7.35l1.93-1.39V4.71c0-2.41.5-4.64 1.06-4.64.55 0 1.05 2.23 1.05 4.64v1.25l1.94 1.39c1.06.76 2 1.43 2.1 1.48.1.07.13-.08.08-.52-.04-.35-.03-.85.02-1.12.09-.47.12-.48.72-.48s.63.01.71.49c.14.7-.03 1.92-.29 2.1-.12.09-.21.2-.21.24 0 .08 3.04 2.35 3.16 2.35.04 0 .08-.3.08-.67 0-1.15.08-1.28.78-1.28.6 0 .62.02.7.5.14.7-.03 1.91-.3 2.1-.18.14-.05.3.9 1.02.63.48 1.3 1.03 1.33 1.03.03 0 0-.64.04-1.03.06-.63.15-.76.28-.76.18.01.35.55.35 1.46v.81l.95.68c.52.38 1.02.78 1.12.9.2.24.24 1.54.06 1.83-.1.14-.78-.16-2.93-1.3a34.2 34.2 0 00-3.01-1.5c-.11 0-2.1-1-4.43-2.24l-4.22-2.25-.1 3.34a79.1 79.1 0 01-.39 6.11c0 .06.78.75 1.72 1.54.95.79 1.8 1.53 1.9 1.65.2.23.25 1.43.07 1.43l-1.72-.28c-2.09-.36-2.09-.36-2.19.1-.04.21-.13.52-.2.67-.1.28-.1.28-.18 0z',
},
'b707': {
id: 57,
w: 32,
h: 32,
viewBox: '-2 -2 36 36',
strokeScale: 1.2,
path: 'M21 28.3V30l-5-1.5-5 1.5v-1.5l4.4-3.3s-.8-4.6-.4-8.4c0 0 0-2-2.6-.5L1.3 21v-2l4.3-3-.3-.1v-2.4s0-.4.3-.4h.8s.4 0 .4.4v1.8l3.3-2.4-.3-.2v-2s0-.5.4-.5h.6s.4 0 .4.3v1.7L15 9.4s-.2-7.2 1.4-8.3c0 0 1.4 0 1.3 8.2l4.1 3v-2s0-.3.4-.3h.6s.4 0 .4.4v2.3l-.3.3 3.2 2.2v-1.9s0-.4.2-.4h.7s.4 0 .4.4v2.3l-.2.4 3.8 2.6v2.1L20 15.9s-1.8-.7-2.3 1c0 0 .3 4.9-.7 8.3z',
},
'rutan_veze': {
viewBox:'-2.8 -1 30 30',
id: 58,
w: 27,
h: 27,
path: 'M14.4 15.66l-1.16 1.13-.63.07-.01.18 1.87.1-1.87.08s-.09.53-.34.62c0 0-.25-.1-.35-.6l-1.85-.03 1.83-.17v-.2l-.58-.07-1.26-1.06-6.55 1.9L3 19s-.1-.61.21-1.9l-.32-.12v-.18l7.12-3.62 1.42-2.88s0-1.9.08-2.5l-4.02.03s-.18-.97.3-1l3.9-.03s.25-.9.5-1c0 0 .12-.13.58.98l3.79-.05s.4.05.26.98l-3.8.04s.1 1.18.03 2.59l1.4 2.74 7.32 3.43v.22l-.22.07s.35 1.69.14 1.8l-.4-1.25z',
},
// Flying Pumpkin
'pumpkin': {
viewBox:'-4 -3 32 32',
id: 59,
w: 32,
h: 32,
accentMult: 0.6,
path: 'M12.33 20.61s.43.02.65-.28c0 0 .68.5 1.72-.31 0 0 .94.37 2-1.32 1.04-1.7.58-3.44.58-3.44s.99-.8 2.1.33c0 0 .81-1.95 3.02-.29 0 0 .36-2.2 2.93-.62 0 0-.89-2.47-4.12-2.7-3.23-.23-4.3 2.32-4.3 2.32s-.12-.47-.64-1.12c0 0 1.54-.16.84-.64 0 0-1.04-.97-2.24-1.37 0 0 .06-1.01-.73-2.52 0 0 .5-.38.93-1.64 0 0 .83-.05 1.67-.47 0 0-1.67-1.06-3.27-.58-1.6.48-2.27 1.18-2.76 2.68 0 0-1.33.83-1.8 2.76 0 0-2.8 1.45-1.67 1.63 0 0 1.09.17.94.35 0 0-.42.46-.6.85 0 0-1.36-1.94-3.06-2.1 0 0-3.88-.71-5.4 2.64 0 0 2.64-1.6 2.95.6 0 0 1.97-1.85 3 .34 0 0 1.37-1.4 2.16-.36 0 0-.57 1.47.21 3.02.78 1.55 1.95 2.1 2.36 1.83 0 0 1.16.67 1.7.17 0 0 .3.25.83.24z',
accent: 'M10.7 17.63c-.04 0-.53 1.11-.53 1.11l-.76-1.39m2.1 2.35l-.37-.98-.45.76m3.07-.14l-.49-.7-.38.97m-.1-1.93l-.56 1.26-.73-1.23m3.4-.5l-.5 1.37-.64-1.05m-5.72-.74s3.81 2.29 8.36-.27c0 0-.38 2.54-4.03 3.2 0 0-2.94.38-4.33-2.93zm3.11-.28s1-2.46 1.98 0c0 0 .52.75-.23.82-.76.07-1.26.06-1.26.06s-1.08.14-.49-.88zm2.4-1.12s-1.4-1.13-.33-1.2c1.08-.07 1.69 0 1.69 0s.91.05.43.77c-.49.72-.52.8-.52.8s-.27.48-1.28-.37zm-2.6-.12s-1.18 1.04-1.58.34c-.4-.7-.43-.86-.43-.86s-.32-.62.67-.62h.97-.18s1.67.17 1.08.69l-.52.45zm6.26-2.29s-4.12-1.34-10.3 0',
},
// Witch on broom Mirrored
'witchr': {
id: 60,
w: 32,
h: 32,
viewBox: '0 0 32 32',
strokeScale: 1.2,
transform: 'rotate(95,16,16)',
path: 'M8.55 15.85s.54-.33.86-.37a5.06 5.06 0 011.53.07c.1.1.52.1.27.5-.24.4-1.35 1.12-1.34 1.81l.11.43-.12.3s-.03.16-.3-.04c-.28-.2-.6 0-.6 0s-.02.13.14.38c.16.24.14.2-.1.72-.25.53-.42.2-.77-.02-.35-.21-.23.9.34 1.21 0 0 1.02.08-.01.36 0 0-.9.16-2.1.2 0 0-.8 0-.83.36l3.3-.08s.3-.04.3.13c0 0-.08.45.45 1.42 0 0 .13.13.61 1.08 0 0 .3.6 1.36.14l1.33-.59s.65-.39.9-1.16c0 0-2.3 1.21-2.24.04l.1-1s-.03-.52 1.23-.6c0 0 .43-.12 2.37-.3 0 0-1.55-.14-3.49 0 0 0 2.56-.3 3.28-.24.72.05 1.61-.02 2.08-.37 0 0 1.29-1.15 2.13-1.23 0 0-.13-.4-.72-.23-.6.18-1.6.99-1.6.99s-.54.4-2.3.38c0 0 1.27-.04 1.76-.37.48-.33.7-.72 1.48-1.16.8-.44 1.47-.13 1.67.16.21.3.87 1.51 1.2 1.45 0 0-.73-1.6-1.2-2.03-.46-.44-.99-.68-1.65-.28-.65.4-1.15.97-2.42 1.2-1.27.24-1.45.17-1.45.17s.44-.13.87-.46c.43-.32 1-.74 1.18-.93.18-.18 1.4-1.05 2.14-1 .75.04.99-.05 1.84 1.3.85 1.36.96 1.7 2.1 1.6 1.14-.1 2.77-.68 3.58-.73.81-.05 1.59-.26 2.57 1.27 0 0 .33-1-.8-1.63-1.14-.62-3.6-.06-4.6-.2-.98-.13-1.34-.34-2.17-1.5-.82-1.16-1.79-1.42-3.33-1.5 0 0 .9-.52 1-1.02.1-.5-.16-1.05-.16-1.05s-.26-.4.29-.44c.55-.05.63-.07.63-.07l.5.26.73-.04s1.44.95 3.24.3c1.8-.63 1-1.25 4-.98 0 0 .02-.37-1.79-.39 0 0 .63-.36 2.75.3 0 0 .03-1.27-3.54-1.44 0 0 1.3-.7 3.08.52 0 0-.06-.98-1.2-1.28-1.15-.3-2.34-.86-4.9-.04 0 0 .9-.86 3.39-.51 0 0-1.1-.92-3.4-.48-2.3.43-2.7 2.32-2.7 2.32s-.2.19-.42.23c-.21.05-.21.5-.21.5s.18.24-.44.31c-.62.08-.4-.37-.5-.42 0 0-.65-2.14 4.42-3.67 0 0-3.31-.72-6.31 2.92 0 0-.37-.77.43-1.18.8-.41 1.44-.72 1.37-3.12 0 0-.86 1.75-2.41 2.14 0 0-.68.14-1.63 1.17 0 0-.74-1.04 1.24-2.96 0 0-2.73.65-3.8 3 0 0-.53 1.11-.78 2.85 0 0-.03.92-.37.97 0 0-.56.12-.64-.71 0 0-.4-1.07.61-3.3 0 0-.74.48-1.57 1.92 0 0-.58 1.05-.45 1.86 0 0 .27.5.1.6 0 0-.26-.19-.66.1l-.48.27-5.23 1.18s-.63.42.15.47l4.7-1.12.46-.04.28.27.47.04-.03.22s-.13.5.84-.11z',
},
// Witch on broom Normal
'witchl': {
id: 61,
w: 32,
h: 32,
viewBox: '0 0 32 32',
strokeScale: 1.2,
transform: 'rotate(85,16,16)',
path: 'M9.06 15.51s.55.33.86.37c.32.04 1.43.03 1.53-.07.1-.1.53-.1.28-.5s-1.35-1.12-1.34-1.81l.1-.43-.11-.3s-.04-.16-.31.04c-.28.2-.59 0-.59 0s-.03-.13.14-.38c.16-.24.14-.2-.1-.73-.25-.52-.43-.19-.78.02-.34.22-.22-.9.34-1.2 0 0 1.03-.08 0-.36 0 0-.91-.16-2.11-.21 0 0-.79.01-.82-.35l3.3.08s.3.03.3-.13c0 0-.08-.45.44-1.43 0 0 .13-.12.62-1.07 0 0 .3-.6 1.36-.14l1.32.59s.66.39.9 1.16c0 0-2.3-1.21-2.23-.04l.1 1s-.04.52 1.22.6c0 0 .43.12 2.37.3 0 0-1.55.14-3.48 0 0 0 2.56.3 3.28.24.72-.05 1.6.02 2.08.37 0 0 1.28 1.15 2.12 1.23 0 0-.12.4-.71.23-.6-.18-1.6-.99-1.6-.99s-.55-.4-2.3-.38c0 0 1.27.04 1.75.37s.7.72 1.49 1.16c.79.44 1.47.13 1.67-.16.2-.3.86-1.51 1.2-1.45 0 0-.74 1.59-1.2 2.03-.46.44-1 .68-1.65.28-.66-.4-1.15-.97-2.42-1.2-1.27-.24-1.46-.17-1.46-.17s.44.13.87.46c.43.32 1 .74 1.18.93.19.18 1.4 1.04 2.15 1 .75-.04.98.04 1.83-1.3.85-1.36.97-1.7 2.1-1.6 1.14.1 2.78.68 3.59.73.8.05 1.59.26 2.57-1.27 0 0 .33 1-.81 1.63-1.14.62-3.6.06-4.58.2-.99.13-1.36.34-2.18 1.5-.82 1.16-1.8 1.42-3.33 1.5 0 0 .89.52 1 1.02.1.5-.16 1.05-.16 1.05s-.27.39.29.44c.55.05.62.07.62.07l.51-.26.72.04s1.45-.95 3.24-.31c1.8.64 1 1.26 4 .98 0 0 .02.38-1.78.4 0 0 .62.36 2.75-.3 0 0 .03 1.27-3.54 1.44 0 0 1.3.69 3.08-.52 0 0-.06.98-1.2 1.28-1.16.3-2.34.86-4.91.04 0 0 .9.86 3.4.51 0 0-1.1.92-3.4.48-2.3-.43-2.7-2.32-2.7-2.32s-.2-.19-.42-.23c-.22-.05-.22-.5-.22-.5s.19-.24-.43-.31c-.63-.08-.4.37-.5.42 0 0-.65 2.14 4.41 3.67 0 0-3.3.72-6.3-2.92 0 0-.37.77.43 1.18.8.41 1.44.72 1.36 3.12 0 0-.86-1.75-2.4-2.14 0 0-.68-.14-1.64-1.17 0 0-.74 1.04 1.24 2.96 0 0-2.73-.65-3.8-3 0 0-.53-1.11-.77-2.85 0 0-.03-.92-.37-.97 0 0-.56-.12-.65.7 0 0-.39 1.08.62 3.31 0 0-.74-.48-1.57-1.92 0 0-.59-1.05-.45-1.86 0 0 .27-.5.09-.6 0 0-.26.19-.66-.1l-.48-.27-5.22-1.18s-.64-.42.14-.47l4.71 1.12.45.04.3-.27.45-.04-.03-.22s-.12-.5.84.11z',
},
// EMBRAER EMB-326 Xavante (ICAO M326) and AERMACCHI MB-339 (ICAO M339)
'm326': {
viewBox:'-4 -3 32 32',
id: 62,
w: 25,
h: 25,
accentMult: 0.8,
path: 'M12.39 26.43s.42-.35.6-.88h4s.26.07.28-.4l.04-1.26s.05-.57-.38-.66l-3.71-.7s.24-3.58.3-6.71c0 0-.02-.55.26-.56l10.9.02s.5.02.51.42c0 0 .25 4.06.54 0 0 0 .33-3.39.17-4.98 0 0-.4-4-.84 0l-.04.54-.01.2s.02.31-.35.22l-9.63-1.96s-.33.03-.37-.38c-.04-.4-.03-.65-.47-.65-.44 0-.5-.01-.62.12 0 0 .02-4.06-.47-6.9 0 0-.46-2.46-.96-2.38-.49-.08-.95 2.39-.95 2.39-.49 2.83-.47 6.89-.47 6.89-.11-.13-.18-.12-.62-.12s-.43.25-.47.65c-.04.4-.37.38-.37.38l-9.63 1.96c-.37.1-.35-.22-.35-.22l-.01-.2-.04-.54c-.44-4-.84 0-.84 0-.16 1.6.17 4.98.17 4.98.3 4.06.54 0 .54 0 .02-.4.5-.42.5-.42l10.91-.02c.28 0 .27.56.27.56.05 3.13.3 6.71.3 6.71l-3.72.7c-.43.09-.38.66-.38.66l.04 1.25c.02.48.27.41.27.41h4c.2.53.61.88.61.88h.24z',
accent: 'M14.45 6.98l-.88 1.83v.57s-1.06 4.84.7 8.03m-2.07 1.55V26M9.95 7.28l.89 1.83v.57s1.05 4.84-.7 8.03',
},
// Dassault Mirage F1 (ICAO MRF1)
'miragef1': {
viewBox:'-4 -2 32 32',
id: 63,
w: 35,
h: 35,
accentMult: 0.8,
path: 'M11.98.32c-.93 3.65-.5 8.62-.5 8.62h0l-.32.74c-.2-.03-.5.02-.5.02-.33 1.62-.21 3.21-.21 3.21l-6 6.47v2.56l6.35-1.84c-.04 1.33.01 2.38.01 2.38l-3.08 3.56c-.33.35-.26.6-.26.6l.37 1.2 3.5-.78v.28h1.74v-.28l3.49.79.37-1.22s.07-.24-.27-.59l-3.07-3.56s.05-1.05 0-2.38l6.35 1.84v-2.56l-5.99-6.47s.11-1.6-.2-3.2c0 0-.32-.06-.51-.03l-.33-.74s.4-4.98-.53-8.63c-.22-.97-.4.01-.4.01z',
accent: 'M13.38 8.55l.37 1.15s.37 1.64.21 3.21c-.15 1.58-.56 6.47-.36 7.19 0 0 .2 2.83-.52 6.96l-.1 1.2M11.01 8.55l-.36 1.15s-.37 1.64-.21 3.21c.15 1.58.55 6.47.35 7.19 0 0-.18 2.83.53 6.96l.1 1.2',
},
'unknown': {
id: 64,
w: 22,
h: 22,
viewBox: "-2.5 -2.5 22 22",
path: 'M 4.256,15.496 C 3.979,14.340 7.280,13.606 7.280,13.606 V 8.650 l -6,2 c -0.680,0 -1,-0.350 -1,-0.660 C 0.242,9.595 0.496,9.231 0.880,9.130 1.140,9 4.800,7 7.280,5.630 V 3 C 7.280,1.890 7.720,0.290 8.510,0.290 9.300,0.290 9.770,1.840 9.770,3 v 2.630 c 2.450,1.370 6.100,3.370 6.370,3.500 0.390,0.093 0.651,0.461 0.610,0.860 -0.050,0.310 -0.360,0.670 -1.050,0.670 l -5.930,-2 v 4.946 c 0,0 3.300,0.734 3.024,1.890 -0.331,1.384 -2.830,0.378 -4.254,0.378 -1.434,4.520e-4 -3.950,1.016 -4.284,-0.378 z',
size: [22,22]
},
'ground_square': {
id: 65,
w: 11,
h: 11,
noRotate: true,
strokeScale: 1.4,
viewBox: "0 0 16 16",
path: 'M 4,4 H 12 V 12 H 4 Z',
},
// ground stuff:
'ground_emergency': {
id: 66,
w: 7.2,
h: 18,
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.6 -1.5 7.2 18" SIZE><defs><style>.cls-1{fill:#5a5a5a;stroke:strokeColor;stroke-width:strokeWidth;}.cls-2{fill:#fff;stroke:none;}</style></defs><title>emergency_dark</title><g id="Layer_2" data-name="Layer 2"><g id="Emergency"><path class="cls-1" d="M1.77,0a3.32,3.32,0,0,0-.63.07L1,.11.86.16h0L.7.23.59.3l0,0L.49.38l0,.06a.15.15,0,0,0,0,0h0v0h0V.9l0,0,0,0h0l0,.07V4c0,.13.06.16.1.23v.3H.09c0,1.32,0,3.38,0,4.8l0,.44C.07,9.82,0,9.88,0,10v2.82c0,.09-.05.14.07.18v1.9a50.76,50.76,0,0,0,5.78,0V13.06C6,13,6,12.93,6,12.84V10c0-.15-.05-.2-.11-.22V9.37c0-1.41,0-3.51,0-4.8H5.55v-.3c0-.08.11-.1.09-.23v-3L5.6,1h0l0,0,0,0V.51h0v0h0a.15.15,0,0,0,0,0,.16.16,0,0,0,0-.06L5.41.32l0,0L5.26.23,5.12.17h0L5,.11l-.16,0A3.45,3.45,0,0,0,4,0H1.77Z"/><path class="cls-2" d="M.77,2.77A4.31,4.31,0,0,1,3,2.33a4.31,4.31,0,0,1,2.26.44l-.38.92A7.51,7.51,0,0,0,3,3.41a7.9,7.9,0,0,0-1.91.27Z"/><path class="cls-2" d="M4.35,8.27a1.05,1.05,0,0,1-.59.93A3.5,3.5,0,0,0,2.62,6.63a1.71,1.71,0,0,1-.56,1.26l-.41.38a1.71,1.71,0,0,0-.56,1.26A1.79,1.79,0,0,0,2.4,11.21H3.6A1.79,1.79,0,0,0,4.92,9.52,1.71,1.71,0,0,0,4.35,8.27Z"/></g></g></svg>',
},
'ground_service': {
id: 67,
w: 7.2,
h: 18,
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.6 -1.5 7.2 18" SIZE><defs><style>.cls-1{fill:#5a5a5a;stroke:strokeColor;stroke-width:strokeWidth;}.cls-2{fill:#fff;stroke:none;}</style></defs><title>service_dark</title><g id="Layer_2" data-name="Layer 2"><g id="Service"><path class="cls-1" d="M1.77,0a3.32,3.32,0,0,0-.63.07L1,.11.86.16h0L.7.23.59.3l0,0L.49.38l0,.06a.15.15,0,0,0,0,0h0v0h0V.9l0,0,0,0h0l0,.07V4c0,.13.06.16.1.23v.3H.09c0,1.32,0,3.38,0,4.8l0,.44C.07,9.82,0,9.88,0,10v2.82c0,.09-.05.14.07.18v1.9a50.76,50.76,0,0,0,5.78,0V13.06C6,13,6,12.93,6,12.84V10c0-.15-.05-.2-.11-.22V9.37c0-1.41,0-3.51,0-4.8H5.55v-.3c0-.08.11-.1.09-.23v-3L5.6,1h0l0,0,0,0V.51h0v0h0a.15.15,0,0,0,0,0,.16.16,0,0,0,0-.06L5.41.32l0,0L5.26.23,5.12.17h0L5,.11l-.16,0A3.45,3.45,0,0,0,4,0H1.77Z"/><path class="cls-2" d="M.77,2.77A4.31,4.31,0,0,1,3,2.33a4.31,4.31,0,0,1,2.26.44l-.38.92A7.51,7.51,0,0,0,3,3.41a7.9,7.9,0,0,0-1.91.27Z"/><path class="cls-2" d="M4.85,8a1.67,1.67,0,0,0-.65-1.3A.12.12,0,0,0,4,6.74v.95a.12.12,0,0,1,0,.09l-.9.65a.12.12,0,0,1-.13,0L2,7.77a.12.12,0,0,1,0-.09V6.73a.11.11,0,0,0-.18-.08A1.72,1.72,0,0,0,1.15,8,1.66,1.66,0,0,0,2,9.4a.19.19,0,0,1,.1.17l0,1.54a.1.1,0,0,0,.11.1H3.78c.07,0,.12,0,.11-.1V9.57A.22.22,0,0,1,4,9.4,1.7,1.7,0,0,0,4.85,8Z"/></g></g></svg>',
},
'ground_unknown': {
id: 68,
w: 7.2,
h: 18,
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.6 -1.5 7.2 18" SIZE><defs><style>.cls-1{fill:#5a5a5a;stroke:strokeColor;stroke-width:strokeWidth;}.cls-2{fill:#fff;stroke:none;}</style></defs><title>unknown_dark</title><g id="Layer_2" data-name="Layer 2"><g id="Unknown"><path class="cls-1" d="M1.77,0a3.32,3.32,0,0,0-.63.07L1,.11.86.16h0L.7.23.59.3l0,0L.49.38l0,.06a.15.15,0,0,0,0,0h0v0h0V.9l0,0,0,0h0l0,.07V4c0,.13.06.16.1.23v.3H.09c0,1.32,0,3.38,0,4.8l0,.44C.07,9.82,0,9.88,0,10v2.82c0,.09-.05.14.07.18v1.9a50.76,50.76,0,0,0,5.78,0V13.06C6,13,6,12.93,6,12.84V10c0-.15-.05-.2-.11-.22V9.37c0-1.41,0-3.51,0-4.8H5.55v-.3c0-.08.11-.1.09-.23v-3L5.6,1h0l0,0,0,0V.51h0v0h0a.15.15,0,0,0,0,0,.16.16,0,0,0,0-.06L5.41.32l0,0L5.26.23,5.12.17h0L5,.11l-.16,0A3.45,3.45,0,0,0,4,0H1.77Z"/><path class="cls-2" d="M.77,2.77A4.31,4.31,0,0,1,3,2.33a4.31,4.31,0,0,1,2.26.44l-.38.92A7.51,7.51,0,0,0,3,3.41a7.9,7.9,0,0,0-1.91.27Z"/><path class="cls-2" d="M4.31,7.51A1.1,1.1,0,0,0,4,7.12a1.55,1.55,0,0,0-.5-.3,2.18,2.18,0,0,0-.77-.12,1.81,1.81,0,0,0-.65.11,1.48,1.48,0,0,0-.5.32,1.43,1.43,0,0,0-.32.48,1.62,1.62,0,0,0-.12.6v.12H2.31V8.2a1,1,0,0,1,0-.25.54.54,0,0,1,.09-.19.42.42,0,0,1,.15-.12.49.49,0,0,1,.22,0,.41.41,0,0,1,.29.09.39.39,0,0,1,.1.3.33.33,0,0,1,0,.19A.65.65,0,0,1,3,8.33l-.22.16a1.61,1.61,0,0,0-.25.22A1.28,1.28,0,0,0,2.33,9a1.2,1.2,0,0,0-.11.45v.37H3.29V9.52a.44.44,0,0,1,.09-.22,1,1,0,0,1,.19-.18l.25-.17a1.35,1.35,0,0,0,.27-.23,1.19,1.19,0,0,0,.21-.33,1.23,1.23,0,0,0,.09-.49A1.06,1.06,0,0,0,4.31,7.51Z"/><rect class="cls-2" x="2.18" y="10.26" width="1.12" height="1.02"/></g></g></svg>',
},
'ground_fixed': {
id: 69,
w: 12,
h: 12,
noRotate: true,
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1 -1 14 14" SIZE><defs><style>.cls-1{fill:#5a5a5a;stroke:strokeColor;stroke-width:strokeWidth;}.cls-2{fill:#fff;stroke:none;}</style></defs><title>fixed_dark</title><g id="Layer_2" data-name="Layer 2"><g id="Fixed"><polygon class="cls-1" points="0 0 0 0.43 0 12 12 12 12 0 0 0"/><path class="cls-2" d="M3.24,2.73,1.36.86h9.29L8.77,2.73A4.29,4.29,0,0,0,3.24,2.73Z"/><circle class="cls-2" cx="6" cy="6" r="3.58" transform="translate(-2.49 6) rotate(-45)"/><path class="cls-2" d="M2.73,3.23a4.29,4.29,0,0,0,0,5.54L.86,10.62V1.37Z"/><path class="cls-2" d="M3.24,9.28a4.29,4.29,0,0,0,5.54,0l1.87,1.87H1.35Z"/><path class="cls-2" d="M9.28,8.77a4.29,4.29,0,0,0,0-5.54l1.86-1.86v9.26Z"/><circle class="cls-1" cx="6" cy="6" r="2" transform="translate(-2.49 6) rotate(-45)"/></g></g></svg>',
},
'ground_tower': {
id: 70,
w: 22,
h: 18,
strokeScale: 20,
noRotate: true,
viewBox: "-45 -50 730 587",
path: 'M168.67 192c11 0 18.61-10.83 14.85-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C187.29 74.83 179.68 64 168.67 64h-17.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24h17.73zm-120.8-64c0-37.81 9.46-73.41 26.05-104.66C79.56 12.72 71.97 0 59.97 0H40.61c-6.27 0-12.13 3.59-14.73 9.31C8.22 48.13-1.31 91.41.15 137.12c1.24 38.89 10.78 75.94 26.53 109.73 2.62 5.63 8.41 9.14 14.61 9.14h18.87c12.02 0 19.6-12.74 13.94-23.37C57.43 201.39 47.87 165.84 47.87 128zM614.07 9.29C611.46 3.58 605.61 0 599.34 0h-19.43c-11.98 0-19.66 12.66-14.02 23.25 23.26 43.67 32.56 95.83 21.53 150.66-4.16 20.72-11.49 40.35-21.26 58.57-5.72 10.68 1.8 23.52 13.91 23.52h19.24c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.93-118.71zM489.06 64h-17.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h17.73c7.01 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zM372.7 187.76C389.31 173.1 400 151.89 400 128c0-44.18-35.82-80-80.01-80-5.52 0-10.92.56-16.12 1.62a79.525 79.525 0 0 0-28.61 12.04c-21.28 14.38-35.27 38.72-35.27 66.34 0 23.86 10.83 44.86 27.4 59.52L143.98 483.68c-3.4 8.16.46 17.52 8.62 20.92l14.78 6.16c8.16 3.4 17.53-.46 20.93-8.62L245.26 368h149.47l56.96 134.15c3.4 8.16 12.77 12.02 20.93 8.62l14.78-6.16c8.16-3.4 12.01-12.77 8.62-20.92L372.7 187.76zM320 96c17.65 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.35-32 32-32zm-54.35 224l47.84-112.66c2.19.18 4.28.66 6.51.66 2.23 0 4.33-.48 6.52-.66L374.35 320h-108.7z',
},
// Puma, Super Puma, Oryx, Cougar (ICAO'S AS32 & AS3B & PUMA)
'puma': {
id: 71,
w: 28,
h: 28,
viewBox: '0 0 32 32',
strokeScale: 1.0,
path: 'M15.9 28.57l-.17.02-.16-.35-3.9-.49v-1.27l3.79.06-.48-7.98-.58-2.42s-.06-.14-.42-.15c-.36 0-1 .05-1.05-.64v-.56L7.46 20.2s-.88-.2-.5-.6l5.96-5.78-.02-.65s0-.24.25-.2l.65-.01.28-.28v-2.41L6.85 2.89s.22-.87.6-.5l6.62 6.9.02-1.95s.25-1.72.85-2.65c0 0 .95-1.4 2.05 0 0 0 .65 1 .63 2.64V8.9l6.56-6.5s.93.18.48.6l-7.08 6.88-.04 2.65.1.1.9.02s.23 0 .24.28l-.01.85 5.87 6.04s-.26.81-.58.48l-5.32-5.57v.6s-.06.65-.7.64h-.63l-.26.18-.56 2.44-.4 8.12s.16.25.14.55l.16-.01.14-.4v-2.03h.33v2.21h.3v.64h-.3v2.32h-.33v-2.23l-.15-.36h-.17s-.01.37-.4 1.17z',
},
// EC665 TIGER (ICAO TIGR)
'tiger': {
id: 72,
w: 28,
h: 28,
viewBox: '-1 -2 34 34',
strokeScale: 0.9,
path: 'M13.09 29.05l-.34.02-.7-3.13.3-.01.09.34 3.13-.03-.46-7.45-.09-.16s-.27.1-.3-.66c-.05-.77.01-.84.01-.84s-.24-1.91-.18-2.26c0 0-.03-.1.16-.16 0 0-.4-.3-.44-1.4 0 0-.08 0-.1-.26l-.72.31s-.12.23-.12.45L4.8 17.6s-.56.2-.93.61c0 0-.7-.97.51-1.62l8.46-3.77s.38-.14.83-.18l.48-.26H13.1s-.13.53-.24 0h-.92s-.2.67-.39 0h-.17l.03-1.85h.13s.17-.75.41-.06l2.64-.37-.4-.87-.34-.12v.23s-.3.22-.56 0v-1.3L9.75.3s-.18-.4-.49-.65c0 0 .95-.64 1.68.58L14 7s.04-.3.3-.3h.42V5.62s-.6-.2 0-.44c0 0-.11-1.94.4-3.02v-.63l.42-.44s.37-.38.81 0l.4.44v.63s.56.65.44 4.56c0 0 .82-.23.78.75v.36h-.39l.41.72h.11v-.37s.24-.25.53 0v1.13s-.25.28-.53 0v-.3l-.13-.13h-.1l-.52-1.05h-.17v.63s.6.22 0 .46v1.18l.69.1s.11-.01.35-.2h.14s.12-.3.12-.43l8.92-4.04s.25-.04.64-.48c0 0 .7 1.03-.67 1.72L19.3 10.4l.68.1s.24-.7.4.07h.13v1.8h-.17s-.1.75-.39 0h-.87s-.1.61-.28 0h-1.05v.72s.03.14-.11.24c0 0 .01.43-.08.6l.1.21s.13.1.37.1L22.02 23s.22.5.52.66c0 0-1.03.78-1.77-.7l-3.42-7.55s.05 1.16-.17 1.69c0 0 .09 1.74-.3 1.56l-.1.18-.43 7.4h.68l.05-.9.15.02-.06.87h2.36l-.09-.29h.36l.83 3.11-.36.02-.43-1.7h-2.76s.12.39-.1.94l-.19 1.86-.14-.03.17-1.85-.03-.42h-.13l-.04.84h-.54v.88h-.14s-.23-.54-.3-1.18l-.68-.25v-.8l-2.26-.02z',
},
// Mil Mi 24 (ICAO MI24)
'mil24': {
id: 73,
w: 32,
h: 32,
viewBox: '-1 -2 34 34',
strokeScale: 0.8,
path: 'M16.41 30.41s-.11-.27-.2-.7l-.72-.2V29h-.15s.02.16-.09.18v1.28h-.1v-1.32s-.75-.34 0-.8V27.2h.08l.02 1.13s.11.14.12.32h.1l.56-.17-.24-1.43-1.94-.23s-.35-.54-.02-.84l1.85-.15-.28-7.1-.05-.04-1.46 6.71s-.92.21-.75-.16l1.8-8.3-.16-.96s-.2-.14-.14-.53l-1.02-.1s-.13 1.15-.28-.04l-.6-.05s-.16 1.3-.33-.03l-.76-.12v.38l.07.15v.15l-.07.11h-.17l-.08-.1v-.17l.04-.14v-.39l-.4-.03-.07-.14-.3-.08v.92s-.13.25-.28 0l.03-1.97-7 .68s-.46-.76-.07-.77l10.6-1.03v-.27l.07-.07v-.12l-.04-.03s.04-.99.29-1.07l.38.02v-.54L10.5 1.2s.68-.65.74-.3l3.45 7.8s-.03-4.6 1.12-4.67V2.44h.2v1.59s1.1-.35 1.14 4.96c0 0 .13.41.04 2.13l8.14-7.4s.81.35.52.56l-7.87 7.18s.14.38.1.72l-.02.06v.11l.04.04s.1.49-.04.88l.64.38.48.05s.08-.7.26.04l.52.07-.04-.83h.22l.03.86.52.05h.23l-.04-.96h.24l.06 1.08.07.06.03.2.05.03.01.27-.06.01.05.64 6.15 3.62s-.13.8-.4.68l-6.72-3.98v.33h-.3v-.48l-.38-.22-.22.03s-.1 1.4-.3.03l-.56.06s-.18 1.16-.31.05l-1.02.12s.07.27-.15.57c0 0-.12 1.17-.54 2.79l-.1 6.98 1.85.1s.45.33-.01.85l-1.85.3-.01 1.6s.33.17 0 .41z',
},
// Sud-Aviation SA365 Dauphin (ICAO AS65)
'dauphin': {
id: 74,
w: 28,
h: 28,
viewBox: '-1 -2 34 34',
strokeScale: 1.25,
path: 'M15.71 30.45v-.37s-.34 0-.37-.51l-.08-4.33-.05-.39h-2.77l.12 1.07-.28-.2-.32-2.98.3.18.02.3h2.83l-1.18-8.96-7.2 7.16-.45.07-.36-.39.11-.5 7.78-7.56s-.26-1.6-.29-3.71L5.9 1.6l-.04-.4.36-.34.49.08 6.88 7.04s-.11-2.01 1.05-4.8c0 0 .19-.47.38-1.14 0 0 .08-1 .99-1.05 0 0 .91-.12 1.07 1.03 0 0 .09.44.38 1.18 0 0 .82 1.33 1.12 4.96l7.25-7.2.4-.02.37.38-.1.48-7.94 7.72s0 2.02-.26 3.2c0 0 .2.1.39.04l7.96 8.03.02.42-.35.32-.47-.07-7.7-7.9-1.53 9.66h2.62l-.01-.46.25.17.33 2.96-.29-.2-.08-.87-3.03.02s-.06.23-.06.56l-.2 4.03s.04.46-.31.64v.36z',
},
// Sud-Aviation SA340/341/342 Gazelle - AS350 Ecureuil - AS 550/555 Fennec (ICAO GAZL, AS55, AS50)
'gazelle': {
id: 75,
w: 28,
h: 28,
viewBox: '-1 -2 34 34',
strokeScale: 1.0,
path: 'M15.87 29s-.66-.15-.43-2.73l-.02-.43h-1.86v.68h-.19v-1.78h2l-.41-8.6-.57-2.79h-.9v1.09s-.15.4-.25 0v-2.08s-.34.09-.58.2l-10.34-.41-.01-.7 10.93.4v-4.6s.11-.28.24 0v2.38h.55V8.31s.27-2.84 1.95-2.99c0 0 1.62-.27 2.04 2.71L23.04.48l.6.36-4.81 7.33v6.24s-.14.32-.26 0v-1.04h-.88l-.18 1.02s.29.38.56.52l4.67 9.28-.6.24-4.77-9.3-.38 1.1-.5 8.53h1.98v1.73h-.19v-.65h-1.8l-.09.5s.05 2.78-.52 2.66z',
},
// Mac Donnell-Doulgas F-15 Eagle (ICAO F15)
'md_f15': {
viewBox:'-4 -3 32 32',
id: 76,
w: 28,
h: 28,
accentMult: 0.8,
path: 'M12.37 22.55s-.04.25.35 1.02v.32h.94v-.31s.28-.44.35-.95v1.08l.65 1.66 3.05.7s.95-1.14.49-1.48l-2.13-2.5-.01.59-1.02-1.2s.1-.64.09-1.6h2.72l2.6.53.92-1.54s.21-.68-.3-1L15.1 12s-.24-1.97-.78-3.5c0 0 .04-.76-.11-1.91h-1.12s.17-5.5-.82-7.72c-1 2.22-.83 7.72-.83 7.72h-1.11c-.16 1.15-.12 1.9-.12 1.9-.54 1.54-.77 3.5-.77 3.5l-6 5.88c-.5.32-.29 1-.29 1l.93 1.54 2.59-.54h2.73c-.03.97.09 1.61.09 1.61l-1.02 1.2-.01-.59-2.14 2.5c-.46.34.49 1.47.49 1.47l3.05-.69.65-1.66v-1.08c.07.5.35.95.35.95v.3h.95v-.31c.38-.77.35-1.02.35-1.02h.1z',
accent: 'm 9.43,12 c 0,0 -0.27,1.44 0.64,3.56 M 15.09,12 c 0,0 0.26,1.44 -0.65,3.56 M 13.08,6.59 c 0,0 0.05,2.46 -0.42,5.98 h -0.8 C 11.39,9.05 11.43,6.59 11.43,6.59 m 0.72,15.96 c -0.42775,-12.368057 -1.851788,-4.842979 -1.64,0.08 m 11.43693,6.59 c 0,0 -0.05,2.46 0.42,5.98 h 0.8 c 0.47,-3.52 0.43,-5.98 0.43,-5.98 M 12.37,22.55 c 0.42775,-12.368057 1.851788,-4.842979 1.64,0.08',
},
'strato': {
id: 77,
w: 40,
h: 40,
viewBox: '0 0 32 32',
strokeScale: 0.8,
path: 'M19.5 16.71l.21 6.3-1.83.28s-.2.01-.2.2l-.01.8 2.1.15.02.62s.11.35.25 0l.02-.62 2.1-.15-.02-.81s.03-.18-.17-.2c-.2 0-1.85-.27-1.85-.27l.22-6.3h4.49l5.4-.61-.04-.74s-.02-.3-.34-.3-4.66-.55-4.66-.55h-1.1s.12-.66-.01-1.02h-.6s-.12.44-.02 1.02h-.72s.1-.68 0-1.02h-.6s-.12.52 0 1.04h-.73s.13-.62 0-1.04h-.6s-.15.47 0 1.02l-.47-.23V9.95s-.4-2.32-.85 0v4.33l-.49.24h-5.93l-.5-.24V9.95c-.44-2.32-.84 0-.84 0v4.33l-.47.23c.14-.55 0-1.02 0-1.02h-.6c-.13.42 0 1.04 0 1.04h-.73c.12-.52 0-1.04 0-1.04h-.6c-.1.34 0 1.02 0 1.02H8.6c.1-.58-.02-1.02-.02-1.02H8c-.14.36-.02 1.03-.02 1.03l-1.1-.01s-4.34.56-4.65.56c-.32 0-.35.3-.35.3l-.04.73 5.41.6h4.49l.22 6.31s-1.65.26-1.85.28c-.2.01-.18.19-.18.19l-.02.8 2.1.16.02.62c.14.35.26 0 .26 0l.01-.62 2.1-.16v-.79c0-.19-.2-.2-.2-.2L12.35 23l.2-6.29h3.47z',
},
'asterisk': {
id: 78,
w: 11,
h: 11,
noRotate: true,
strokeScale: 1.4,
viewBox: "0 0 16 16",
path: 'M 7 1 L 7 6 L 5 4 L 4 5 L 6 7 L 2 7 L 2 9 L 6 9 L 4 11 L 5 12 L 7 10 L 7 14 L 9 14 L 9 10 L 11 12 L 12 11 L 10 9 L 14 9 L 14 7 L 10 7 L 12 5 L 11 4 L 9 6 L 9 2 L 7 2',
},
'b1b_lancer': {
id: 79,
w: 32,
h: 32,
viewBox: '0 0 64 64',
strokeScale: 2.2,
path: 'm 31.62,56.29 c -0.23,-0.11 -0.55,-0.86 -0.54,-1.56 l -7.58,2.71 c -0.17,-0.82 -0.12,-1.31 -0.01,-2.03 l 6.90,-6.31 c -0.23,-2.30 -0.51,-3.72 -1.19,-6.08 l -0.28,0.96 -1.13,0.01 -0.42,-1.31 -0.41,1.30 -1.23,-0.00 -0.50,-1.32 -0.21,-6.56 -18.70,1.18 c -0.24,-0.19 -0.38,-2.09 0.48,-3.21 L 26.26,28.95 C 28.75,24.52 29.87,18.91 30.59,9.77 L 29.53,10.42 30.71,8.40 c 0.30,-2.49 0.56,-4.45 1.29,-5.84 0.72,1.39 0.99,3.35 1.29,5.84 l 1.17,2.01 -1.05,-0.65 c 0.72,9.14 1.84,14.76 4.33,19.18 l 19.46,5.12 c 0.86,1.12 0.72,3.02 0.48,3.21 l -18.70,-1.18 -0.21,6.56 -0.50,1.32 -1.23,0.00 -0.41,-1.30 -0.42,1.31 -1.13,-0.01 -0.28,-0.96 c -0.68,2.36 -0.96,3.78 -1.19,6.08 l 6.90,6.31 c 0.10,0.72 0.15,1.22 -0.01,2.03 l -7.58,-2.71 c 0.01,0.70 -0.31,1.45 -0.54,1.56 l -0.37,0.63 z',
},
'para': {
id: 80,
w: 25,
h: 25,
viewBox: '-4 -4 72 72',
strokeScale: 4,
accentMult: 0.8,
path: 'M 2.7004841,35.4 C 2.3957197,34.805237 2.3346108,34.071291 2.3487212,33.492639 2.3628316,32.913987 2.4133442,32.511354 2.7,32 9.5741879,27.222774 18.4208,24.315376 32,24.357064 45.579201,24.281104 54.425812,27.222774 61.3,32 c 0.276334,0.514345 0.356292,0.854368 0.375811,1.434709 C 61.69533,34.01505 61.609571,34.773946 61.3,35.4 51.576472,38.439657 40.678687,39.277517 32,39.189844 21.874148,39.356757 12.026431,38.677104 2.7004841,35.4 Z',
accent: 'm 25.330646,24.634523 c -0.449188,4.692891 -0.341936,9.773843 0.03756,14.466734 M 17.376491,25.852595 c -0.815196,4.431676 -0.563898,8.706157 -0.01788,12.689083 M 10.149939,28.044695 c -0.6932861,3.230546 -0.7067571,6.748219 0.03192,9.585637 M 39.107311,24.631007 c 0.449188,4.692891 0.396257,9.757568 0.01676,14.450459 M 47.08978,25.710067 c 0.815196,4.431676 0.618698,8.91815 0.07268,12.901076 M 54.371132,28.11416 c 0.693286,3.230546 0.706757,6.559392 -0.03192,9.39681',
},
}
{
let kv = Object.entries(shapes);
for (let i in kv) {
let key = kv[i][0];
let shape = kv[i][1];
shape.name = key;
}
}
const _ulac = ["cessna", 0.92];
let TypeDesignatorIcons = {
'SHIP': ['blimp', 0.94], // Blimp
'BALL': ['balloon', 1], // Balloon
'A318': ['airliner', 0.90], // shortened a320 68t
'A319': ['airliner', 0.92], // shortened a320 75t
'A19N': ['airliner', 0.92], // shortened a320
'A320': ['airliner', 0.94], // 78t
'A20N': ['airliner', 0.94],
'A321': ['airliner', 0.97], // stretched a320 93t
'A21N': ['airliner', 0.97], // stretched a320
'A306': ['heavy_2e', 0.93],
'A330': ['heavy_2e', 0.96],
'A332': ['heavy_2e', 0.96],
'A333': ['heavy_2e', 0.96],
'A338': ['heavy_2e', 0.96], // 800 neo
'A339': ['heavy_2e', 0.96], // 900 neo
'DC10': ['md11', 0.92],
'MD11': ['md11', 0.96],
'A359': ['heavy_2e', 1.00],
'A35K': ['heavy_2e', 1.02],
'A388': ['a380', 1],
// dubious since these are old-generation 737s
// but the shape is similar
'B731': ['airliner', 0.86],
'B732': ['airliner', 0.86],
'B733': ['airliner', 0.87],
'B734': ['airliner', 0.91],
'B735': ['airliner', 0.93],
// these probably need reworking
// since they vary in length
'B736': ['airliner', 0.89],
'B737': ['airliner', 0.90],
'B738': ['airliner', 0.93],
'B739': ['airliner', 0.95],
'B37M': ['airliner', 0.92],
'B38M': ['airliner', 0.94],
'B39M': ['airliner', 0.96],
'P8': ['airliner', 0.98],
'P8 ?': ['airliner', 0.98],
'J328': ['airliner', 0.78], // 15t
'E170': ['airliner', 0.82], // 38t
'E75S/L': ['airliner', 0.82],
'E75L': ['airliner', 0.82],
'E75S': ['airliner', 0.82], // 40t
'A148': ['airliner', 0.83], // 43t
'RJ70': ['b707', 0.68], // 38t
'RJ85': ['b707', 0.68], // 42t
'RJ1H': ['b707', 0.68], // 44t
'B461': ['b707', 0.68], // 44t
'B462': ['b707', 0.68], // 44t
'B463': ['b707', 0.68], // 44t
'E190': ['airliner', 0.84], // 52t
'E195': ['airliner', 0.84], // 52t
'E290': ['airliner', 0.84], // 56t
'E295': ['airliner', 0.86], // 62t
'BCS1': ['airliner', 0.86], // 64t
'BCS3': ['airliner', 0.88], // 70t
'B741': ['heavy_4e', 0.96],
'B742': ['heavy_4e', 0.96],
'B743': ['heavy_4e', 0.96],
'B744': ['heavy_4e', 0.96],
'B74D': ['heavy_4e', 0.96],
'B74S': ['heavy_4e', 0.96],
'B74R': ['heavy_4e', 0.96],
'BLCF': ['heavy_4e', 0.96],
'BSCA': ['heavy_4e', 0.96], // hah!
'B748': ['heavy_4e', 0.98],
'B752': ['heavy_2e', 0.9],
'B753': ['heavy_2e', 0.9],
'B772': ['heavy_2e', 1.00], // all pretty similar except for length
'B773': ['heavy_2e', 1.02],
'B77L': ['heavy_2e', 1.02],
'B77W': ['heavy_2e', 1.04],
'B701': ['b707', 1],
'B703': ['b707', 1],
'K35R': ['b707', 1],
'K35E': ['b707', 1],
'FA20': ['jet_swept', 0.92], // 13t
'C680': ['jet_swept', 0.92], // 14t
'C68A': ['jet_swept', 0.92], // 14t
'YK40': ['jet_swept', 0.94], // 16t
'C750': ['jet_swept', 0.94], // 17t
'F2TH': ['jet_swept', 0.94], // 16t
'FA50': ['jet_swept', 0.94], // 18t
'CL30': ['jet_swept', 0.92], // 14t
'CL35': ['jet_swept', 0.92],
'F900': ['jet_swept', 0.96], // 21t
'CL60': ['jet_swept', 0.96], // 22t
'G200': ['jet_swept', 0.92], // 16t
'G280': ['jet_swept', 0.92], // 18t
'HA4T': ['jet_swept', 0.92], // 18t
'FA7X': ['jet_swept', 0.96], // 29t
'FA8X': ['jet_swept', 0.96], // 33t
'GLF2': ['jet_swept', 0.96], // 29t
'GLF3': ['jet_swept', 0.96], // 31t
'GLF4': ['jet_swept', 0.96], // 34t
'GA5C': ['jet_swept', 0.96], // 34t
'GL5T': ['jet_swept', 0.98], // 40t
'GLF5': ['jet_swept', 0.98], // 41t
'GA6C': ['jet_swept', 0.98], // 41t
'GLEX': ['jet_swept', 1], // 45t
'GL6T': ['jet_swept', 1], // 45t
'GLF6': ['jet_swept', 1], // 48t
'GA7C': ['jet_swept', 1], // 48t
'GA8C': ['jet_swept', 1], // 48t (fantasy type but in the database)
'GL7T': ['jet_swept', 1], // 52t
'E135': ['jet_swept', 0.92], // 20t
'E35L': ['jet_swept', 0.92], // 24t
'E145': ['jet_swept', 0.92], // 22t
'E45X': ['jet_swept', 0.92], // 24t
'CRJ1': ['jet_swept', 0.92], // 24t
'CRJ2': ['jet_swept', 0.92], // 24t
'F28': ['jet_swept', 0.93], // 32t
'CRJ7': ['jet_swept', 0.94], // 34t
'CRJ9': ['jet_swept', 0.96], // 38t
'F70': ['jet_swept', 0.97], // 40
'CRJX': ['jet_swept', 0.98], // 41t
'F100': ['jet_swept', 1], // 45t
'DC91': ['jet_swept', 1],
'DC92': ['jet_swept', 1],
'DC93': ['jet_swept', 1],
'DC94': ['jet_swept', 1],
'DC95': ['jet_swept', 1],
'MD80': ['jet_swept', 1.06], // 60t
'MD81': ['jet_swept', 1.06],
'MD82': ['jet_swept', 1.06],
'MD83': ['jet_swept', 1.06],
'MD87': ['jet_swept', 1.06],
'MD88': ['jet_swept', 1.06], // 72t
'MD90': ['jet_swept', 1.06],
'B712': ['jet_swept', 1.06], // 54t
'B721': ['jet_swept', 1.10], // 80t
'B722': ['jet_swept', 1.10], // 80t
'T154': ['jet_swept', 1.12], // 100t
'BE40': ['jet_nonswept', 1], // 7.3t
'FA10': ['jet_nonswept', 1], // 8t
'C501': ['jet_nonswept', 1],
'C510': ['jet_nonswept', 1],
'C25A': ['jet_nonswept', 1],
'C25B': ['jet_nonswept', 1],
'C25C': ['jet_nonswept', 1],
'C525': ['jet_nonswept', 1],
'C550': ['jet_nonswept', 1],
'C560': ['jet_nonswept', 1],
'C56X': ['jet_nonswept', 1], // 9t
'LJ23': ['jet_nonswept', 1],
'LJ24': ['jet_nonswept', 1],
'LJ25': ['jet_nonswept', 1],
'LJ28': ['jet_nonswept', 1],
'LJ31': ['jet_nonswept', 1],
'LJ35': ['jet_nonswept', 1], // 8t
'LR35': ['jet_nonswept', 1], // wrong but in DB
'LJ40': ['jet_nonswept', 1],
'LJ45': ['jet_nonswept', 1],
'LR45': ['jet_nonswept', 1], // wrong but in DB
'LJ55': ['jet_nonswept', 1],
'LJ60': ['jet_nonswept', 1], // 10t
'LJ70': ['jet_nonswept', 1],
'LJ75': ['jet_nonswept', 1],
'LJ85': ['jet_nonswept', 1],
'C650': ['jet_nonswept', 1.03], // 11t
'ASTR': ['jet_nonswept', 1.03], // 11t
'G150': ['jet_nonswept', 1.03], // 11t
'H25A': ['jet_nonswept', 1.03], // 12t
'H25B': ['jet_nonswept', 1.03], // 12t
'H25C': ['jet_nonswept', 1.03], // 12t
'PRM1': ['jet_nonswept', 0.96],
'E55P': ['jet_nonswept', 0.96],
'E50P': ['jet_nonswept', 0.96],
'EA50': ['jet_nonswept', 0.96],
'HDJT': ['jet_nonswept', 0.96],
'SF50': ['jet_nonswept', 0.94],
'C97': ['super_guppy', 1],
'SGUP': ['super_guppy', 1],
'A3ST': ['beluga', 1],
'A337': ['beluga', 1.06],
'WB57': ['wb57', 1],
'A37': ['hi_perf', 1],
'A700': ['hi_perf', 1],
'LEOP': ['hi_perf', 1],
'ME62': ['hi_perf', 1],
'T2': ['hi_perf', 1],
'T37': ['hi_perf', 1],
'T38': ['t38', 1],
'A10': ['a10', 1],
'A3': ['hi_perf', 1],
'A6': ['hi_perf', 1],
'AJET': ['alpha_jet', 1],
'AT3': ['hi_perf', 1],
'CKUO': ['hi_perf', 1],
'EUFI': ['typhoon', 1],
'SB39': ['sb39', 1],
'MIR2': ['mirage', 1],
'KFIR': ['mirage', 1],
'F1': ['hi_perf', 1],
'F111': ['hi_perf', 1],
'F117': ['hi_perf', 1],
'F14': ['hi_perf', 1],
'F15': ['md_f15', 1],
'F16': ['hi_perf', 1],
'F18': ['f18', 1],
'F18H': ['f18', 1],
'F18S': ['f18', 1],
'F22': ['f35', 1],
'F22A': ['f35', 1],
'F35': ['f35', 1],
'VF35': ['f35', 1],
'L159': ['l159', 1],
'L39': ['l159', 1],
'F4': ['hi_perf', 1],
'F5': ['f5_tiger', 1],
'HUNT': ['hunter', 1],
'LANC': ['lancaster', 1],
'B17': ['lancaster', 1],
'B29': ['lancaster', 1],
'J8A': ['hi_perf', 1],
'J8B': ['hi_perf', 1],
'JH7': ['hi_perf', 1],
'LTNG': ['hi_perf', 1],
'M346': ['hi_perf', 1],
'METR': ['hi_perf', 1],
'MG19': ['hi_perf', 1],
'MG25': ['hi_perf', 1],
'MG29': ['hi_perf', 1],
'MG31': ['hi_perf', 1],
'MG44': ['hi_perf', 1],
'MIR4': ['hi_perf', 1],
'MT2': ['hi_perf', 1],
'Q5': ['hi_perf', 1],
'RFAL': ['rafale', 1],
'S3': ['hi_perf', 1],
'S37': ['hi_perf', 1],
'SR71': ['hi_perf', 1],
'SU15': ['hi_perf', 1],
'SU24': ['hi_perf', 1],
'SU25': ['hi_perf', 1],
'SU27': ['hi_perf', 1],
'T22M': ['hi_perf', 1],
'T4': ['hi_perf', 1],
'TOR': ['tornado', 1],
'A4': ['md_a4', 1],
'TU22': ['hi_perf', 1],
'VAUT': ['hi_perf', 1],
'Y130': ['hi_perf', 1],
'YK28': ['hi_perf', 1],
'BE20': ['twin_large', 0.92],
'IL62': ['il_62', 1],
'MRF1': ['miragef1', 0.75],
'M326': ['m326', 1],
'M339': ['m326', 1],
'FOUG': ['m326', 1],
'T33': ['m326', 1],
'A225': ['a225', 1],
'A124': ['b707', 1.18],
'SLCH': ['strato', 1],
'WHK2': ['strato', 0.9],
'C130': ['c130', 1.07],
'C30J': ['c130', 1.07],
'P3': ['p3_orion', 1],
'PARA': ['para', 1],
'DRON': ['uav', 1],
'Q1': ['uav', 1],
'Q4': ['uav', 1],
'Q9': ['uav', 1],
'Q25': ['uav', 1],
'HRON': ['uav', 1],
'A400': ['a400', 1],
'V22F': ['v22_fast', 1],
'V22': ['v22_slow', 1],
'B609F': ['v22_fast', 0.86],
'B609': ['v22_slow', 0.86],
'H64': ['apache', 1],
// 4 bladed heavy helicopters
'H60': ['blackhawk', 1], // 11t
'S92': ['blackhawk', 1], // 12t
'NH90': ['blackhawk', 1], // 11t
// Puma, Super Puma, Oryx, Cougar (ICAO'S AS32 & AS3B & PUMA)
'AS32': ['puma', 1.03], // 9t
'AS3B': ['puma', 1.03], // 9t
'PUMA': ['puma', 1.03], // 9t
'TIGR': ['tiger', 1.00],
'MI24': ['mil24', 1.00],
'AS65': ['dauphin', 0.85],
'S76': ['dauphin', 0.86],
'GAZL': ['gazelle', 1.00],
'AS50': ['gazelle', 1.00],
'AS55': ['gazelle', 1.00],
'ALO2': ['gazelle', 1.00],
'ALO3': ['gazelle', 1.00],
'R22': ['helicopter', 0.92],
'R44': ['helicopter', 0.94],
'R66': ['helicopter', 0.98],
// 5 bladed
'EC55': ['s61', 0.94], // 5t
'A169': ['s61', 0.94], // 5t
'H160': ['s61', 0.95], // 6t
'A139': ['s61', 0.96], // 7t
'EC75': ['s61', 0.97], // 8t
'A189': ['s61', 0.98], // 8.3t
'A149': ['s61', 0.98], // 8.6t
'S61': ['s61', 0.98], // 8.6t
'S61R': ['s61', 1], // 10t
'EC25': ['s61', 1.01], // 11t
'EH10': ['s61', 1.04], // 14.5t (AW101)
'H53': ['s61', 1.1], // 19t
'H53S': ['s61', 1.1], // 19t
'U2': ['u2', 1],
'C2': ['c2', 1],
'E2': ['c2', 1],
'H47': ['chinook', 1],
'HAWK': ['bae_hawk', 1],
'GYRO': ['gyrocopter', 1],
'DLTA': ['verhees', 1],
'B1': ['b1b_lancer', 1.0],
'B52': ['b52', 1],
'C17': ['c17', 1.25],
'C5M': ['c5', 1.18],
'E3TF': ['e3awacs', 0.88],
'E3CF': ['e3awacs', 0.88],
//
'GLID': ['glider', 1],
//Stemme
'S6': ['glider', 1],
'S10S': ['glider', 1],
'S12': ['glider', 1],
'S12S': ['glider', 1],
//Schempp-Hirth
'ARCE': ['glider', 1],
'ARCP': ['glider', 1],
'DISC': ['glider', 1],
'DUOD': ['glider', 1],
'JANU': ['glider', 1],
'NIMB': ['glider', 1],
'QINT': ['glider', 1],
'VENT': ['glider', 1],
'VNTE': ['glider', 1],
//Schleicher
'A20J': ['glider', 1],
'A32E': ['glider', 1],
'A32P': ['glider', 1],
'A33E': ['glider', 1],
'A33P': ['glider', 1],
'A34E': ['glider', 1],
'AS14': ['glider', 1],
'AS16': ['glider', 1],
'AS20': ['glider', 1],
'AS21': ['glider', 1],
'AS22': ['glider', 1],
'AS24': ['glider', 1],
'AS25': ['glider', 1],
'AS26': ['glider', 1],
'AS28': ['glider', 1],
'AS29': ['glider', 1],
'AS30': ['glider', 1],
'AS31': ['glider', 1],
//DG
'DG80': ['glider', 1],
'DG1T': ['glider', 1],
'LS10': ['glider', 1],
'LS9': ['glider', 1],
'LS8': ['glider', 1],
//Jonker
'TS1J': ['glider', 1],
//PIK
'PK20': ['glider', 1],
//LAK
'LK17': ['glider', 1],
'LK19': ['glider', 1],
'LK20': ['glider', 1],
'ULAC': _ulac,
'EV97': _ulac,
'FDCT': _ulac,
'WT9': _ulac,
'PIVI': _ulac,
'FK9': _ulac,
'AVID': _ulac,
'NG5': _ulac,
'PNR3': _ulac,
'TL20': _ulac,
'SR20': ['cirrus_sr22', 1],
'SR22': ['cirrus_sr22', 1],
'S22T': ['cirrus_sr22', 1],
'VEZE': ['rutan_veze', 1],
'VELO': ['rutan_veze', 1.04],
'PRTS': ['rutan_veze', 1.3], // approximation for canard configuration
'PA24': ['pa24', 1],
'GND': ['ground_unknown', 1],
'GRND': ['ground_unknown', 1],
'SERV': ['ground_service', 1],
'EMER': ['ground_emergency', 1],
'TWR': ['ground_tower', 1],
};
// Maps ICAO aircraft type description codes (e.g. "L2J") to aircraft icons. This is used if the ICAO type designator (e.g. "B731")
// cannot be found in the TypeDesignatorIcons mappings. The key can be one of the following:
// - Single character: The basic aircraft type letter code (e.g. "H" for helicopter).
// - Three characters: The ICAO type description code (e.g. "L2J" for landplanes with 2 jet engines).
// - Five characters: The ICAO type description code concatenated with the wake turbulence category code, separated by
// a dash (e.g. "L2J-M").
let TypeDescriptionIcons = {
'H': ['helicopter', 1],
'G': ['gyrocopter', 1],
'L1P': ['cessna', 1],
'A1P': ['cessna', 1],
'L1T': ['single_turbo', 1],
'L1J': ['hi_perf', 0.92],
'L2P': ['twin_small', 1],
'A2P': ['twin_large', 0.96],
'A2P-M': ['twin_large', 1.12],
'L2T': ['twin_large', 0.96],
'L2T-M': ['twin_large', 1.12],
'A2T': ['twin_large', 0.96],
'A2T-M': ['twin_large', 1.06],
'L1J-L': ['jet_nonswept', 1], // < 7t
'L2J-L': ['jet_nonswept', 1], // < 7t
'L2J-M': ['airliner', 1], // < 136t
'L2J-H': ['heavy_2e', 0.96], // > 136t
'L3J-H': ['md11', 1], // > 136t
'L4T-M': ['c130', 1],
'L4T-H': ['c130', 1.07],
'L4T': ['c130', 0.96],
'L4J-H': ['b707' , 1],
'L4J-M': ['b707' , 0.8],
'L4J': ['b707' , 0.8],
};
let CategoryIcons = {
"A1" : ['cessna', 1],// < 7t
"A2" : ['jet_swept', 0.94], // < 34t
"A3" : ['airliner', 0.96], // < 136t
"A4" : ['airliner', 1], // < 136t
"A5" : ['heavy_2e', 0.92], // > 136t
"A6" : ['hi_perf', 0.94],
"A7" : ['helicopter', 1],
'B1': ['glider', 1],
"B2" : ['balloon', 1],
'B4': _ulac,
'B6': ['uav', 1],
'C0' : ['ground_unknown', 1],
'C1' : ['ground_emergency', 1],
'C2' : ['ground_service', 1],
'C3' : ['ground_tower', 1],
};
function getBaseMarker(category, typeDesignator, typeDescription, wtc, addrtype, altitude, eastbound) {
//return ['f5_tiger', 1];
if (addrtype == 'ais') {
return ['ground_square', 0.7];
}
if (halloween) {
if ((typeDescription && typeDescription[0] == 'H') || typeDesignator == 'C172')
return ['pumpkin', 1];
if (wtc == 'L') {
if (eastbound)
return ['witchr', 1];
else
return ['witchl', 1];
}
}
if (uk_advisory) {
return ['asterisk', 1.2];
}
if (squareMania) {
return ['ground_square', 1.2];
}
// if type description (from type DB) and broadcasted category disagree, use icon for category
if (false && typeDescription != null && typeDescription.length === 3 && category in CategoryIcons) {
if (typeDescription[0] == 'L' && (category[0] != 'A' || category[1] == '7'))
return CategoryIcons[category];
if (typeDescription[0] == 'H' && category != 'A7')
return CategoryIcons[category];
if (category == 'B6')
return CategoryIcons[category];
if (category[0] == 'C')
return CategoryIcons[category];
}
if (typeDesignator in TypeDesignatorIcons) {
let shape = TypeDesignatorIcons[typeDesignator][0];
let scaling = TypeDesignatorIcons[typeDesignator][1];
return [shape, scaling];
}
if (typeDescription != null && typeDescription.length === 3) {
if (typeDescription === "L1P" && category === "B4") {
return _ulac;
}
if (wtc !== null && wtc.length === 1) {
let typeDescriptionWithWtc = typeDescription + "-" + wtc;
if (typeDescriptionWithWtc === "L2J-M" && category === "A2") {
return ["jet_swept", 1];
}
if (typeDescriptionWithWtc in TypeDescriptionIcons) {
let shape = TypeDescriptionIcons[typeDescriptionWithWtc][0];
let scaling = TypeDescriptionIcons[typeDescriptionWithWtc][1];
return [shape, scaling];
}
}
if (typeDescription in TypeDescriptionIcons) {
let shape = TypeDescriptionIcons[typeDescription][0];
let scaling = TypeDescriptionIcons[typeDescription][1];
return [shape, scaling];
}
let basicType = typeDescription.charAt(0);
if (basicType in TypeDescriptionIcons) {
return [TypeDescriptionIcons[basicType][0], 1];
}
}
if (category in CategoryIcons) {
return CategoryIcons[category];
}
if (altitude == 'ground' && (addrtype == 'adsb_icao_nt' || addrtype == 'tisb_other' || addrtype == 'tisb_trackfile'))
return ['ground_square', 1];
if (halloween)
return ['pumpkin', 1];
return ['unknown', 1];
}
function svgShapeToSVG(shape, fillColor, strokeColor, strokeWidth, scale) {
scale = scale ? scale : 1;
strokeWidth *= (shape.strokeScale ? shape.strokeScale : 1);
let wi = shape.w * scale;
let he = shape.h * scale;
if (!shape.path) {
let svg = shape.svg.replace('fillColor', fillColor).replace('strokeColor', strokeColor).replace('strokeWidth', strokeWidth);
svg = svg.replace('SIZE', 'width="' + wi + 'px" height="' + he + 'px"');
return svg;
}
let svg = '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="' + shape.viewBox + '" '
+ (shape.noAspect ? 'preserveAspectRatio="none" ' : '')
+ 'width="' + wi + '" height="' + he + '">'
+ '<g' + (shape.transform ? (' transform="' + shape.transform + '"') : '') + '>';
let path = shape.path;
if (! Array.isArray(path))
path = [path];
for (let i = 0; i < path.length; i++) {
svg += '<path paint-order="stroke" fill="' + fillColor + '" stroke="' + strokeColor + '" stroke-width="' + (2 * strokeWidth) + '" '
+ 'd="' + path[i] + '"/>';
}
let accentWidth = 0.6 * (shape.accentMult ? shape.accentMult * strokeWidth : strokeWidth);
let accent = shape.accent;
if (! Array.isArray(accent))
accent = [accent];
for (let i = 0; i < accent.length; i++) {
svg += '<path fill="none" stroke="' + strokeColor + '" stroke-width="' + accentWidth + '" '
+ 'd="' + accent[i] + '"/>';
}
svg += '</g></svg>';
return svg;
}
function svgShapeToURI(shape, fillColor, strokeColor, strokeWidth, scale){
let svg = svgShapeToSVG(shape, fillColor, strokeColor, strokeWidth, scale);
return "data:image/svg+xml;base64," + btoa(svg);
}
let glIconSize = 72;
let glImapCols = 8;
if (usp.has('iconTestCols')) {
glImapCols = usp.getInt('iconTestCols');
}
let glImapRows = Math.ceil(Object.keys(shapes).length / glImapCols);
let refCross = {
w: glIconSize,
h: glIconSize,
viewBox: '0 0 64 64',
strokeScale: 0.2,
path: 'M 32,64 32,0 M 64,32 0,32 M 0,64 0,0 M 0,0 64,0 M 64,0 64,64 M 64,64 0,64',
};
function getSpriteX(shape) {
return (shape.id % glImapCols);
}
function getSpriteY(shape) {
return Math.floor(shape.id / glImapCols);
}
function iconTest() {
let labels = false;
if (usp.has('iconTestLabels')) {
labels = true;
}
jQuery('#large_mode_control').hide();
jQuery('#header_top').hide();
jQuery('#header_side').hide();
jQuery('#splitter').hide();
jQuery('#tabs').hide();
jQuery('#filterButton').hide();
jQuery('.ol-control').hide();
jQuery('.ol-attribution').show();
jQuery("#loader").addClass("hidden");
let mapdiv = document.getElementById('iconTestCanvas');
console.log(mapdiv);
let iconSize = glIconSize;
let cols = glImapCols;
let rows = glImapRows;
let font = '10px sans-serif'
// labels shall not be used when generating sprites.png
let labelHeight = 12;
if (!labels) {
labelHeight = 0;
}
mapdiv.innerHTML = '<div style="overflow: scroll; max-height: 100%; max-width: 100%"><canvas width="' + iconSize * cols + '" height="' + (iconSize + labelHeight) * rows + '" id="can"></canvas></div>';
let can = document.getElementById('can');
let con = can.getContext('2d');
if (labels) {
con.font = font;
con.textAlign = 'center';
con.textBaseline = 'bottom';
con.fillStyle = 'LightGrey';
con.fillRect(0, 0, can.clientWidth, can.height);
con.fillStyle = 'Black';
}
let svgJson = {};
for (let shapeName in shapes) {
let shape = shapes[shapeName];
if (getSpriteY(shape) / iconSize >= rows) {
console.log("make the canvas BIGGER!");
mapdiv.innerHTML = '';
break;
}
let max = Math.max(shape.w, shape.h);
let scale = iconSize / max; // blow it up to the full iconSize
let diff = scale * Math.abs(shape.w - shape.h);
let offX = 0;
let offY = 0;
if (shape.w >= shape.h)
offY = diff / 2;
else
offX = diff / 2;
let img = document.createElement('img');
img.onload = function () {
con.drawImage(this, getSpriteX(shape) * glIconSize + offX, getSpriteY(shape) * (glIconSize + labelHeight) + offY);
};
let svgURI = svgShapeToURI(shape, '#FFFFFF', '#000000', outlineWidth * 0.75, scale);
img.src = svgURI;
if (labels) {
con.fillText(shapeName, getSpriteX(shape) * glIconSize + glIconSize/2, (1 + getSpriteY(shape)) * (glIconSize + labelHeight));
}
let svg = svgShapeToSVG(shape, '#FFFFFF', '#000000', outlineWidth * 0.75, 1.4);
svgJson[shapeName] = svg;
if (usp.has('grid')) {
let img = document.createElement('img');
img.onload = function () {
con.drawImage(this, getSpriteX(shape) * glIconSize, getSpriteY(shape) * (glIconSize + labelHeight));
};
let svgURI = svgShapeToURI(refCross, '#FFFFFF', '#000000', 0.75, 1);
img.src = svgURI;
}
}
console.log(svgJson);
return can;
}