Show VASL counter images in the UI.

master
Pacman Ghost 6 years ago
parent 12fb0b274f
commit 7780574717
  1. 3
      .pylintrc
  2. 6
      conftest.py
  3. 23
      vasl_templates/webapp/__init__.py
  4. 1
      vasl_templates/webapp/config/.gitignore
  5. 4
      vasl_templates/webapp/config/site.cfg.example
  6. 15
      vasl_templates/webapp/data/expected-multiple-images.json
  7. 30
      vasl_templates/webapp/data/ordnance/allied-minor/belgian.json
  8. 42
      vasl_templates/webapp/data/ordnance/allied-minor/common.json
  9. 3
      vasl_templates/webapp/data/ordnance/allied-minor/danish.json
  10. 3
      vasl_templates/webapp/data/ordnance/allied-minor/dutch.json
  11. 9
      vasl_templates/webapp/data/ordnance/allied-minor/greek.json
  12. 15
      vasl_templates/webapp/data/ordnance/allied-minor/polish.json
  13. 9
      vasl_templates/webapp/data/ordnance/allied-minor/yugoslavian.json
  14. 81
      vasl_templates/webapp/data/ordnance/american.json
  15. 24
      vasl_templates/webapp/data/ordnance/axis-minor/bulgarian.json
  16. 99
      vasl_templates/webapp/data/ordnance/axis-minor/common.json
  17. 6
      vasl_templates/webapp/data/ordnance/axis-minor/croatian.json
  18. 15
      vasl_templates/webapp/data/ordnance/axis-minor/hungarian.json
  19. 66
      vasl_templates/webapp/data/ordnance/axis-minor/romanian.json
  20. 21
      vasl_templates/webapp/data/ordnance/axis-minor/slovakian.json
  21. 75
      vasl_templates/webapp/data/ordnance/british.json
  22. 108
      vasl_templates/webapp/data/ordnance/chinese.json
  23. 117
      vasl_templates/webapp/data/ordnance/finnish.json
  24. 63
      vasl_templates/webapp/data/ordnance/french.json
  25. 90
      vasl_templates/webapp/data/ordnance/german.json
  26. 60
      vasl_templates/webapp/data/ordnance/italian.json
  27. 81
      vasl_templates/webapp/data/ordnance/japanese.json
  28. 87
      vasl_templates/webapp/data/ordnance/russian.json
  29. 104
      vasl_templates/webapp/data/vasl-overrides.json
  30. 15
      vasl_templates/webapp/data/vehicles/allied-minor/belgian.json
  31. 42
      vasl_templates/webapp/data/vehicles/allied-minor/common.json
  32. 3
      vasl_templates/webapp/data/vehicles/allied-minor/danish.json
  33. 21
      vasl_templates/webapp/data/vehicles/allied-minor/dutch.json
  34. 51
      vasl_templates/webapp/data/vehicles/allied-minor/polish.json
  35. 18
      vasl_templates/webapp/data/vehicles/allied-minor/yugoslavian.json
  36. 189
      vasl_templates/webapp/data/vehicles/american.json
  37. 3
      vasl_templates/webapp/data/vehicles/axis-minor/bulgarian.json
  38. 99
      vasl_templates/webapp/data/vehicles/axis-minor/common.json
  39. 18
      vasl_templates/webapp/data/vehicles/axis-minor/croatian.json
  40. 33
      vasl_templates/webapp/data/vehicles/axis-minor/hungarian.json
  41. 24
      vasl_templates/webapp/data/vehicles/axis-minor/romanian.json
  42. 21
      vasl_templates/webapp/data/vehicles/axis-minor/slovakian.json
  43. 381
      vasl_templates/webapp/data/vehicles/british.json
  44. 63
      vasl_templates/webapp/data/vehicles/chinese.json
  45. 96
      vasl_templates/webapp/data/vehicles/finnish.json
  46. 150
      vasl_templates/webapp/data/vehicles/french.json
  47. 360
      vasl_templates/webapp/data/vehicles/german.json
  48. 123
      vasl_templates/webapp/data/vehicles/italian.json
  49. 75
      vasl_templates/webapp/data/vehicles/japanese.json
  50. 27
      vasl_templates/webapp/data/vehicles/landing-craft.json
  51. 255
      vasl_templates/webapp/data/vehicles/russian.json
  52. 6
      vasl_templates/webapp/file_server/__init__.py
  53. 26
      vasl_templates/webapp/file_server/utils.py
  54. 200
      vasl_templates/webapp/file_server/vasl_mod.py
  55. 34
      vasl_templates/webapp/files.py
  56. 9
      vasl_templates/webapp/static/css/main.css
  57. 6
      vasl_templates/webapp/static/css/tabs-ob.css
  58. BIN
      vasl_templates/webapp/static/images/missing-image.png
  59. 1
      vasl_templates/webapp/static/select2/select2.min.css
  60. 1
      vasl_templates/webapp/static/select2/select2.min.js
  61. 2
      vasl_templates/webapp/static/utils.js
  62. 61
      vasl_templates/webapp/static/vo.js
  63. 5
      vasl_templates/webapp/templates/index.html
  64. 1207
      vasl_templates/webapp/tests/fixtures/vasl-pieces.txt
  65. 87
      vasl_templates/webapp/tests/test_counters.py
  66. 2
      vasl_templates/webapp/tests/test_dirty_scenario_checks.py
  67. 27
      vasl_templates/webapp/tests/test_vehicles_ordnance.py
  68. 2
      vasl_templates/webapp/tests/utils.py

@ -138,7 +138,8 @@ disable=print-statement,
bad-continuation,
invalid-name,
wrong-import-position,
global-statement
global-statement,
too-few-public-methods
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option

@ -43,6 +43,12 @@ def pytest_addoption( parser ):
"--short-tests", action="store_true", dest="short_tests", default=False,
help="Run a shorter version of the test suite."
)
# NOTE: Some tests require the VASL module file(s). We don't want to put these into source control,
# so we provide this option to allow the caller to specify where they live.
parser.addoption(
"--vasl-mods", action="store", dest="vasl_mods", default=None,
help="Directory containing the VASL .vmod file(s)."
)
# NOTE: It's not good to have the code run differently to how it will normally,
# but using the clipboard to retrieve snippets causes more trouble than it's worth :-/
# since any kind of clipboard activity while the tests are running could cause them to fail

@ -12,10 +12,18 @@ from vasl_templates.webapp.config.constants import APP_NAME, APP_VERSION, BASE_D
# ---------------------------------------------------------------------
def _load_config( fname, section ):
"""Load config settings from a file."""
if not os.path.isfile( fname ):
return
config_parser = configparser.ConfigParser()
config_parser.optionxform = str # preserve case for the keys :-/
config_parser.read( fname )
app.config.update( dict( config_parser.items( section) ) )
def load_debug_config( fname ):
"""Configure the application."""
config_parser.read( fname )
app.config.update( dict( config_parser.items( "Debug" ) ) )
_load_config( fname, "Debug" )
# ---------------------------------------------------------------------
@ -24,10 +32,12 @@ app = Flask( __name__ )
# load the application configuration
config_dir = os.path.join( BASE_DIR, "config" )
config_parser = configparser.ConfigParser()
config_parser.optionxform = str # preserve case for the keys :-/
config_parser.read( os.path.join( config_dir, "app.cfg" ) )
app.config.update( dict( config_parser.items( "System" ) ) )
_fname = os.path.join( config_dir, "app.cfg" )
_load_config( _fname, "System" )
# load any site configuration
_fname = os.path.join( config_dir, "site.cfg" )
_load_config( _fname, "Site Config" )
# load any debug configuration
_fname = os.path.join( config_dir, "debug.cfg" )
@ -47,6 +57,7 @@ else:
import vasl_templates.webapp.main #pylint: disable=cyclic-import
import vasl_templates.webapp.vo #pylint: disable=cyclic-import
import vasl_templates.webapp.snippets #pylint: disable=cyclic-import
import vasl_templates.webapp.files #pylint: disable=cyclic-import
# ---------------------------------------------------------------------

@ -1,2 +1,3 @@
site.cfg
debug.cfg
logging.yaml

@ -0,0 +1,4 @@
[Site Config]
; Enable VASL counter images in the UI by configuring a VASL .vmod file here.
VASL_MOD = ...

@ -0,0 +1,15 @@
{
"1555": {
"name": "2pdr Portee",
"front_images": [ "br/vehicles/portee", "br/vehicles/portee0" ],
"back_images": null
},
"2212": {
"name": "76* INF FRC",
"front_images": [ "al/gun/alINF76", "al/gun/alINF76u" ],
"back_images": "al/gun/alINF76b"
}
}

@ -3,60 +3,70 @@
{ "name": "DBT",
"capabilities_other": [ "3PP", "\u2020" ],
"note_number": "6\u2020",
"notes": [ "A", "B", "D" ]
"notes": [ "A", "B", "D" ],
"_gpid_": 2173
},
{ "name": "M76 A",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "LF": [ ["INF"], "\u2020" ] },
"note_number": "7\u2020",
"notes": [ "A", "B", "D" ]
"notes": [ "A", "B", "D" ],
"_gpid_": 2211
},
{ "name": "M76 A",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "LF": [ ["INF"], "\u2020" ] },
"note_number": "7\u2020",
"notes": [ "A", "B", "D" ]
"notes": [ "A", "B", "D" ],
"_gpid_": 2212
},
{ "name": "7.6cm FRC",
"capabilities": [ "NT", "QSU" ],
"capabilities_other": [ "\u2020" ],
"note_number": "8\u2020",
"notes": [ "A", "B" ]
"notes": [ "A", "B" ],
"_gpid_": 2212
},
{ "name": "C47 FRC M 32",
"capabilities": [ "NT", "QSU" ],
"note_number": "9",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 2213
},
{ "name": "C75 TR",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 5 },
"note_number": "10",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 2214
},
{ "name": "C75 GP",
"capabilities": [ "NT" ],
"capabilities2": { "LF": [ "75*", "B10" ], "s": 5 },
"note_number": "11",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 2215
},
{ "name": "Ob 105 GP",
"capabilities": [ "NT" ],
"capabilities2": { "LF": [ "105*" ], "s": 5 },
"note_number": "12",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 2216
},
{ "name": "C120 M31",
"capabilities": [ "NT" ],
"capabilities2": { "LF": [ "120*" ] },
"note_number": "13",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 2217
},
{ "name": "M27 FRC",
"capabilities": [ "NM" ],
"capabilities_other": [ "ST" ],
"note_number": "14",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 2218
}
]

@ -4,78 +4,92 @@
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "23\u2020",
"notes": [ "A", "B", "Gr", "N", "P", "Y" ]
"notes": [ "A", "B", "Gr", "N", "P", "Y" ],
"_gpid_": 2193
},
{ "name": "37mm Bofors AT",
"capabilities": [ "NT", "QSU" ],
"note_number": "24\u2020",
"notes": [ "A", "De", "P" ]
"notes": [ "A", "De", "P" ],
"_gpid_": 2195
},
{ "name": "3.7cm PaK 35/36",
"capabilities": [ "NT", "QSU" ],
"note_number": "25\u2020",
"notes": [ "Gr", "Ne", "Y" ]
"notes": [ "Gr", "Ne", "Y" ],
"_gpid_": 2196
},
{ "name": "Bohler M35 47mm",
"capabilities": [ "NT", "QSU" ],
"note_number": "26\u2020",
"notes": [ "A", "Gr", "Ne", "Y" ]
"notes": [ "A", "Gr", "Ne", "Y" ],
"_gpid_": 2197
},
{ "name": "65mm wz.06",
"capabilities": [ "NT", "QSU", "no Gunshield", "h-d" ],
"note_number": "27\u2020",
"notes": [ "A", "Gr", "P", "Y" ]
"notes": [ "A", "Gr", "P", "Y" ],
"_gpid_": 2198
},
{ "name": "75mm wz.97",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "28\u2020",
"notes": [ "A", "Gr", "N", "P" ]
"notes": [ "A", "Gr", "N", "P" ],
"_gpid_": 2199
},
{ "name": "Bofors M34",
"capabilities": [ "NT", "QSU" ],
"note_number": "29\u2020",
"notes": [ "A", "B", "Gr", "Ne", "N" ]
"notes": [ "A", "B", "Gr", "Ne", "N" ],
"_gpid_": 2200
},
{ "name": "75M 19S",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 6, "AP": 5 },
"note_number": "30\u2020",
"notes": [ "A", "Gr", "P", "Y" ]
"notes": [ "A", "Gr", "P", "Y" ],
"_gpid_": 2201
},
{ "name": "C105 L 13 S",
"capabilities": [ "NT" ],
"note_number": "31\u2020",
"notes": [ "B", "P", "Y" ]
"notes": [ "B", "P", "Y" ],
"_gpid_": 2202
},
{ "name": "120mm wz. 09/31",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 6 },
"note_number": "32\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 2203
},
{ "name": "155mm 17 S",
"capabilities": [ "NT" ],
"capabilities2": { "s": 8 },
"note_number": "33",
"notes": [ "B", "Gr", "P", "Y" ]
"notes": [ "B", "Gr", "P", "Y" ],
"_gpid_": 2204
},
{ "name": "Mitrailleuse de 13.2 CAJ mle 30",
"capabilities": [ "T", "2 TK DR\u2020", "Towing NA\u2020<sup>1</sup>" ],
"note_number": "34\u2020",
"notes": [ "T\u2020<sup>1</sup>", "B", "Gr", "Y" ]
"notes": [ "T\u2020<sup>1</sup>", "B", "Gr", "Y" ],
"_gpid_": 2205
},
{ "name": "20mm Oerlikon",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020<sup>1</sup>", "2 ROF", "B11" ] },
"note_number": "35\u2020",
"notes": [ "C\u2020<sup>1</sup>", "Gr", "Ne", "Y" ]
"notes": [ "C\u2020<sup>1</sup>", "Gr", "Ne", "Y" ],
"_gpid_": 2206
},
{ "name": "40mm Bofors AA",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "40\u2020<sup>1</sup>", "2 ROF" ] },
"note_number": "36\u2020",
"notes": [ "C\u2020<sup>1</sup>", "B", "N", "Ne", "P" ]
"notes": [ "C\u2020<sup>1</sup>", "B", "N", "Ne", "P" ],
"_gpid_": 2207
}
]

@ -3,7 +3,8 @@
{ "name": "Machinecannon 20mm M-35",
"capabilities": [ "NT", "QSU\u2020<sup>1</sup>", "R2", "IFE=B10" ],
"note_number": "19\u2020",
"notes": [ "De", "T\u2020<sup>1</sup>" ]
"notes": [ "De", "T\u2020<sup>1</sup>" ],
"_gpid_": 2222
}
]

@ -3,7 +3,8 @@
{ "name": "Solothurn s/18-1100",
"capabilities_other": [ "5PP" ],
"note_number": "15",
"notes": [ "A", "Ne" ]
"notes": [ "A", "Ne" ],
"_gpid_": 2179
}
]

@ -4,17 +4,20 @@
"capabilities": [ "NT" ],
"capabilities2": { "s": 5 },
"note_number": "16",
"notes": [ "Gr" ]
"notes": [ "Gr" ],
"_gpid_": 2219
},
{ "name": "OR 105/19",
"capabilities": [ "NT", "h-d" ],
"note_number": "17",
"notes": [ "Gr" ]
"notes": [ "Gr" ],
"_gpid_": 2220
},
{ "name": "3.7cm Bofors AA",
"capabilities": [ "T" ],
"note_number": "18",
"notes": [ "Gr" ]
"notes": [ "Gr" ],
"_gpid_": 2221
}
]

@ -3,28 +3,33 @@
{ "name": "46mm granatnik wz. 36",
"capabilities_other": [ "4PP" ],
"note_number": "1",
"notes": [ "A", "P" ]
"notes": [ "A", "P" ],
"_gpid_": 2172
},
{ "name": "Ur. wz. 35",
"capabilities_other": [ "1PP" ],
"note_number": "2",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 2176
},
{ "name": "75mm wz. 02/26",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 6 },
"note_number": "3",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 2208
},
{ "name": "100mm wz. 14/19",
"capabilities": [ "NT" ],
"note_number": "4",
"notes": [ "A", "P" ]
"notes": [ "A", "P" ],
"_gpid_": 2209
},
{ "name": "75mm wz. 97/25",
"capabilities": [ "T", "NM" ],
"note_number": "5\u2020",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 2210
}
]

@ -3,18 +3,21 @@
{ "name": "3.7cm Infantry Gun",
"capabilities": [ "NT", "QSU", "h-d" ],
"note_number": "20",
"notes": [ "Y" ]
"notes": [ "Y" ],
"_gpid_": 2223
},
{ "name": "80mm M28/M33",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 5 },
"note_number": "21",
"notes": [ "Y" ]
"notes": [ "Y" ],
"_gpid_": 2224
},
{ "name": "100mm M14/19",
"capabilities": [ "NT" ],
"note_number": "22",
"notes": [ "Y" ]
"notes": [ "Y" ],
"_gpid_": 2225
}
]

@ -5,155 +5,182 @@
"capabilities2": { "WP": [ [7,5] ] },
"capabilities_other": [ "5PP", "OBA\u2020" ],
"note_number": "1\u2020",
"notes": [ "F", "N" ]
"notes": [ "F", "N" ],
"_gpid_": 849
},
{ "name": "M19 60mm Mortar",
"capabilities": [ "IR" ],
"capabilities2": { "WP": [ [6,5] ] },
"capabilities_other": [ "4PP" ],
"note_number": "2",
"notes": [ "F" ]
"notes": [ "F" ],
"_gpid_": 850
},
{ "name": "M1 81mm Mortar",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "WP": 8 },
"note_number": "3",
"notes": [ "F", "N" ]
"notes": [ "F", "N" ],
"_gpid_": 879
},
{ "name": "M2 4.2-in. Mortar",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "WP": 10 },
"note_number": "4\u2020"
"note_number": "4\u2020",
"_gpid_": 881
},
{ "name": "T25 155mm Mortar",
"capabilities": [ "NT" ],
"capabilities2": { "WP": 8 },
"note_number": "5\u2020",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 882
},
{ "name": "M3A1 37mm AT Gun",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "C": [ [7,"A2+"], "\u2020<sup>1</sup>" ] },
"note_number": "6\u2020",
"notes": [ "C\u2020<sup>1</sup>", "N" ]
"notes": [ "C\u2020<sup>1</sup>", "N" ],
"_gpid_": 884
},
{ "name": "M1 57mm AT Gun",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "HE": [ [7,"J4E"], [7,5], "\u2020" ], "D": [ [4,"J4+E"], "\u2020" ] },
"note_number": "7\u2020"
"note_number": "7\u2020",
"_gpid_": 885
},
{ "name": "M5 3-in. AT Gun",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,4], [5,5], "\u2020" ], "s": [ [6,5] ] },
"note_number": "8\u2020",
"notes": [ "<s>P</s>" ]
"notes": [ "<s>P</s>" ],
"_gpid_": 886
},
{ "name": "T32 37mm Manpack Gun",
"capabilities": [ "5PP (3PP dm)\u2020", "C5\u2020<sup>1</sup>", "crewed\u2020<sup>2</sup>" ],
"note_number": "9\u2020",
"notes": [ "C\u2020<sup>1</sup>", "D\u2020<sup>2</sup>", "F" ]
"notes": [ "C\u2020<sup>1</sup>", "D\u2020<sup>2</sup>", "F" ],
"_gpid_": null
},
{ "name": "M18 57mm Recoilless Rifle",
"capabilities": [ "3PP", "crewed\u2020<sup>1</sup>" ],
"capabilities2": { "H": 7, "WP": 6 },
"note_number": "10",
"notes": [ "D\u2020<sup>1</sup>", "E\u2020" ]
"notes": [ "D\u2020<sup>1</sup>", "E\u2020" ],
"_gpid_": null
},
{ "name": "M20 75mm Recoilless Rifle",
"capabilities": [ "5PP", "crewed\u2020<sup>1</sup>" ],
"capabilities2": { "H": 7, "WP": 7 },
"note_number": "11",
"notes": [ "D\u2020<sup>1</sup>", "E\u2020" ]
"notes": [ "D\u2020<sup>1</sup>", "E\u2020" ],
"_gpid_": null
},
{ "name": "M1A1 75mm Pack Howitzer",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": 7, "WP": 8, "C": [ [4,"4+"], "\u2020<sup>1</sup>" ] },
"note_number": "12\u2020",
"notes": [ "C\u2020<sup>1</sup>", "F" ]
"notes": [ "C\u2020<sup>1</sup>", "F" ],
"_gpid_": 888
},
{ "name": "M1897A2 75mm Gun",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "WP": 8 },
"note_number": "13",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 890
},
{ "name": "M2A1 105mm Howitzer",
"capabilities": [ "NT" ],
"capabilities2": { "H": 6, "s": 7, "WP": 8, "C": [ [7,"4+P"], "\u2020<sup>1</sup>" ] },
"note_number": "14\u2020",
"notes": [ "C\u2020<sup>1</sup>", "N" ]
"notes": [ "C\u2020<sup>1</sup>", "N" ],
"_gpid_": 891
},
{ "name": "M3 105mm Howitzer",
"capabilities": [ "NT" ],
"capabilities2": { "H": 7, "s": 7, "WP": 8, "C": [ [7,"P"], "\u2020<sup>1</sup>" ] },
"note_number": "15\u2020",
"notes": [ "C\u2020<sup>1</sup>" ]
"notes": [ "C\u2020<sup>1</sup>" ],
"_gpid_": 892
},
{ "name": "M1 4.5-in. Gun",
"capabilities": [ "NT" ],
"note_number": "16\u2020",
"notes": [ "<s>P</s>" ]
"notes": [ "<s>P</s>" ],
"_gpid_": 893
},
{ "name": "M1918 155mm Howitzer",
"capabilities": [ "NT" ],
"capabilities2": { "s": [ [7,"3+"] ], "WP": 8 },
"note_number": "17\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 894
},
{ "name": "M1 155mm Howitzer",
"capabilities": [ "NT" ],
"capabilities2": { "s": 7, "WP": 8 },
"note_number": "18\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 895
},
{ "name": "M1918M1 155mm Gun",
"capabilities": [ "NT", "RFNM", "AP4\u2020<sup>1</sup>", "no IF" ],
"capabilities2": { "WP": 8 },
"note_number": "19\u2020",
"notes": [ "A\u2020<sup>1</sup>", "N" ]
"notes": [ "A\u2020<sup>1</sup>", "N" ],
"_gpid_": 896
},
{ "name": "M1A1 155mm Gun",
"capabilities": [ "NT", "RFNM", "AP4\u2020<sup>1</sup>", "no IF" ],
"capabilities2": { "s": [ [7,5] ], "WP": 8 },
"note_number": "20\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 897
},
{ "name": "M1 8-in. Howitzer",
"capabilities": [ "NT", "RFNM", "no IF" ],
"note_number": "21\u2020"
"note_number": "21\u2020",
"_gpid_": 898
},
{ "name": "M51 Multiple .50-cal MG Carriage",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "2 ROF", "20 IFE", "B11" ] },
"capabilities_other": [ "4 TK DR\u2020" ],
"note_number": "22\u2020"
"note_number": "22\u2020",
"_gpid_": 900
},
{ "name": "M1A2 37mm AA Gun",
"capabilities": [ "T" ],
"note_number": "23\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 901
},
{ "name": "M1 40mm AA Gun",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "40\u2020<sup>1</sup>", "2 ROF" ] },
"note_number": "24\u2020",
"notes": [ "B\u2020<sup>1</sup>" ]
"notes": [ "B\u2020<sup>1</sup>" ],
"_gpid_": 902
},
{ "name": "M3 3-in. AA Gun",
"capabilities": [ "T", "NM" ],
"note_number": "25",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 903
},
{ "name": "M1A1 90mm AA Gun",
"capabilities": [ "T", "NM" ],
"note_number": "26\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 904
},
{ "name": "M2 90mm AA Gun",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "90\u2020", "1 ROF", "B11" ] },
"note_number": "27\u2020<sup>1</sup>",
"notes": [ "B\u2020" ]
"notes": [ "B\u2020" ],
"_gpid_": 905
}
]

@ -3,41 +3,49 @@
{ "name": "LG de 50 mle 37",
"capabilities_other": [ "2PP" ],
"note_number": "37",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3679
},
{ "name": "Madsen M-35",
"capabilities": [ "NT", "QSU", "no Gunshield" ],
"capabilities_other": [ "R2", "IFE=B10\u2020" ],
"note_number": "38\u2020",
"notes": [ "T\u2020<sup>1</sup>" ]
"notes": [ "T\u2020<sup>1</sup>" ],
"_gpid_": 3775
},
{ "name": "Skoda Infantry Gun",
"capabilities": [ "NT", "QSU", "h-d" ],
"note_number": "39\u2020"
"note_number": "39\u2020",
"_gpid_": 3776
},
{ "name": "Skoda Infantry Gun",
"capabilities": [ "NT", "QSU", "h-d" ],
"note_number": "39\u2020"
"note_number": "39\u2020",
"_gpid_": 3777
},
{ "name": "Bofors 75mm M36",
"capabilities": [ "NT", "QSU", "h-d" ],
"note_number": "40\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3778
},
{ "name": "75mm K-S",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 5 },
"note_number": "41\u2020"
"note_number": "41\u2020",
"_gpid_": 3779
},
{ "name": "Ob 105mm GP",
"capabilities": [ "NT" ],
"capabilities2": { "s": 5, "LF": [ "105*\u2020<sup>1</sup>" ] },
"note_number": "42\u2020",
"notes": [ "G\u2020<sup>1</sup>" ]
"notes": [ "G\u2020<sup>1</sup>" ],
"_gpid_": 3780
},
{ "name": "D/30 Krupp",
"capabilities": [ "NT", "RFNM", "no IF" ],
"note_number": "43"
"note_number": "43",
"_gpid_": 3781
}
]

@ -3,189 +3,222 @@
{ "name": "5cm leGrW 36",
"capabilities_other": [ "5PP" ],
"note_number": "44",
"notes": [ "A", "H", "S", "C", "B" ]
"notes": [ "A", "H", "S", "C", "B" ],
"_gpid_": 3680
},
{ "name": "50mm RM obr. 40",
"capabilities_other": [ "4PP" ],
"note_number": "45",
"notes": [ "A", "R", "H", "S", "C" ]
"notes": [ "A", "R", "H", "S", "C" ],
"_gpid_": 3681
},
{ "name": "8cm GrW 34",
"capabilities": [ "NT", "QSU", "IR" ],
"capabilities2": { "s": 7 },
"note_number": "46\u2020",
"notes": [ "A", "C", "B" ]
"notes": [ "A", "C", "B" ],
"_gpid_": 3709
},
{ "name": "Brandt M27/31",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 7 },
"note_number": "47\u2020",
"notes": [ "A", "R", "H", "S" ]
"notes": [ "A", "R", "H", "S" ],
"_gpid_": 3711
},
{ "name": "PM obr. 38",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 8 },
"note_number": "48\u2020",
"notes": [ "R", "H" ]
"notes": [ "R", "H" ],
"_gpid_": 3713
},
{ "name": "Ur wz. 35",
"capabilities_other": [ "1PP" ],
"note_number": "49",
"notes": [ "R", "H", "S", "C", "B" ]
"notes": [ "R", "H", "S", "C", "B" ],
"_gpid_": null
},
{ "name": "s18-1100",
"capabilities_other": [ "5PP" ],
"note_number": "50",
"notes": [ "A", "R", "H" ]
"notes": [ "A", "R", "H" ],
"_gpid_": null
},
{ "name": "Kanon PUV vz. 37(t)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,"1S"] ] },
"note_number": "51\u2020",
"notes": [ "E", "H", "S", "B" ]
"notes": [ "E", "H", "S", "B" ],
"_gpid_": 3714
},
{ "name": "Bohler M35",
"capabilities": [ "NT", "QSU", "no Gunshield" ],
"note_number": "52\u2020",
"notes": [ "A", "R", "H", "S" ]
"notes": [ "A", "R", "H", "S" ],
"_gpid_": 3715
},
{ "name": "5cm PaK 38(g)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,3], [3,4] ] },
"note_number": "53\u2020",
"notes": [ "E", "R", "H", "S", "B" ]
"notes": [ "E", "R", "H", "S", "B" ],
"_gpid_": 3716
},
{ "name": "7.5cm PaK 97/38(g)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": [ [5,"3+"] ], "s": 6 },
"note_number": "54\u2020",
"notes": [ "E", "R", "B" ]
"notes": [ "E", "R", "B" ],
"_gpid_": 3717
},
{ "name": "7.5cm PaK 40(g)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,3], [3,4] ] },
"note_number": "55\u2020",
"notes": [ "E", "R", "H", "S", "B" ]
"notes": [ "E", "R", "H", "S", "B" ],
"_gpid_": 3718
},
{ "name": "Skoda M15",
"capabilities": [ "NT", "QSU" ],
"note_number": "56\u2020",
"notes": [ "A", "R", "H", "S", "C", "B" ]
"notes": [ "A", "R", "H", "S", "C", "B" ],
"_gpid_": 3719
},
{ "name": "Canon de 75 mle 1897",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 7 },
"note_number": "57",
"notes": [ "R", "B" ]
"notes": [ "R", "B" ],
"_gpid_": 3720
},
{ "name": "Skoda M29",
"capabilities": [ "NT" ],
"capabilities2": { "AP": 6 },
"note_number": "58\u2020",
"notes": [ "A", "R", "S" ]
"notes": [ "A", "R", "S" ],
"_gpid_": 3721
},
{ "name": "Skoda M17",
"capabilities": [ "NT", "QSU" ],
"note_number": "59\u2020",
"notes": [ "A", "R", "S", "C" ]
"notes": [ "A", "R", "S", "C" ],
"_gpid_": 3722
},
{ "name": "Skoda M28(80)",
"capabilities": [ "T" ],
"note_number": "60\u2020",
"notes": [ "S", "C" ]
"notes": [ "S", "C" ],
"_gpid_": 3723
},
{ "name": "Skoda M14/19",
"capabilities": [ "NT" ],
"capabilities2": { "s": 8 },
"note_number": "61\u2020",
"notes": [ "A\u2020", "R", "H", "S", "C" ]
"notes": [ "A\u2020", "R", "H", "S", "C" ],
"_gpid_": 3724
},
{ "name": "leFH 18(g)",
"capabilities": [ "NT" ],
"capabilities2": { "H": [ [4,"3+"] ], "s": 5 },
"note_number": "62\u2020",
"notes": [ "E", "H", "S", "B" ]
"notes": [ "E", "H", "S", "B" ],
"_gpid_": 3725
},
{ "name": "Skoda M35",
"capabilities": [ "NT" ],
"capabilities2": { "AP": 7, "C": [ [7,"CS"], "\u2020" ] },
"note_number": "63\u2020",
"notes": [ "R", "S", "C" ]
"notes": [ "R", "S", "C" ],
"_gpid_": 3726
},
{ "name": "G obr. 10/30",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 7 },
"note_number": "64\u2020",
"notes": [ "R", "B" ]
"notes": [ "R", "B" ],
"_gpid_": 3727
},
{ "name": "G obr. 38",
"capabilities": [ "NT" ],
"capabilities2": { "s": [ [5,"1-2R"], "\u2020" ] },
"note_number": "65",
"notes": [ "R", "B" ]
"notes": [ "R", "B" ],
"_gpid_": 3728
},
{ "name": "Skoda M14",
"capabilities": [ "NT" ],
"note_number": "66\u2020",
"notes": [ "R", "H", "S" ]
"notes": [ "R", "H", "S" ],
"_gpid_": 3729
},
{ "name": "Skoda M15/16",
"capabilities": [ "NT", "no IF" ],
"capabilities2": { "s": 6 },
"note_number": "67\u2020",
"notes": [ "S", "C" ]
"notes": [ "S", "C" ],
"_gpid_": 3730
},
{ "name": "C mle 17 S",
"capabilities": [ "NT" ],
"capabilities2": { "s": 7 },
"note_number": "68\u2020",
"notes": [ "R", "B" ]
"notes": [ "R", "B" ],
"_gpid_": 3731
},
{ "name": "Mitrailleuse de 13.2 CAJ mle 30",
"capabilities": [ "T" ],
"capabilities_other": [ "2 TK DR\u2020" ],
"note_number": "69\u2020",
"notes": [ "T\u2020<sup>1</sup>", "R", "B" ]
"notes": [ "T\u2020<sup>1</sup>", "R", "B" ],
"_gpid_": 3732
},
{ "name": "Oerlikon FF",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF", "B11" ] },
"note_number": "70",
"notes": [ "G\u2020", "R", "H", "S", "C", "B" ]
"notes": [ "G\u2020", "R", "H", "S", "C", "B" ],
"_gpid_": 3733
},
{ "name": "2cm FlaK 30(g)",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020<sup>1</sup>", "2 ROF", "B9" ] },
"note_number": "71\u2020",
"notes": [ "E", "G\u2020<sup>1</sup>", "R", "B" ]
"notes": [ "E", "G\u2020<sup>1</sup>", "R", "B" ],
"_gpid_": 3734
},
{ "name": "2cm FlaK 38(g)",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020<sup>1</sup>", "2 ROF", "B10" ] },
"note_number": "72\u2020",
"notes": [ "E", "G\u2020<sup>1</sup>", "R", "B" ]
"notes": [ "E", "G\u2020<sup>1</sup>", "R", "B" ],
"_gpid_": 3735
},
{ "name": "3.7cm FlaK 36(g)",
"capabilities": [ "T" ],
"note_number": "73\u2020",
"notes": [ "E", "R", "B" ]
"notes": [ "E", "R", "B" ],
"_gpid_": 3736
},
{ "name": "Bofors 40mm",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "40\u2020<sup>1</sup>", "2 ROF" ] },
"note_number": "74\u2020",
"notes": [ "G\u2020<sup>1</sup>", "R", "H", "S", "C" ]
"notes": [ "G\u2020<sup>1</sup>", "R", "H", "S", "C" ],
"_gpid_": 3737
},
{ "name": "Skoda M33",
"capabilities": [ "T" ],
"note_number": "75R",
"notes": [ "S" ]
"notes": [ "S" ],
"_gpid_": 3738
},
{ "name": "8.8cm FlaK 18 o. 36(g)",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "88\u2020<sup>1</sup>", "1 ROF", "B11" ] },
"note_number": "76\u2020",
"notes": [ "E", "G\u2020<sup>1</sup>", "R", "S", "B" ]
"notes": [ "E", "G\u2020<sup>1</sup>", "R", "S", "B" ],
"_gpid_": 3739
}
]

@ -3,12 +3,14 @@
{ "name": "Canonne da 65/17",
"capabilities": [ "NT", "no Gunshield" ],
"note_number": "35",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3772
},
{ "name": "Skoda M28(FE)",
"capabilities": [ "NT" ],
"note_number": "36",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3774
}
]

@ -3,27 +3,32 @@
{ "name": "5cm leGrW 39(h)",
"capabilities_other": [ "5PP" ],
"note_number": "23",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3679
},
{ "name": "40mm MAVAG 40 M",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": "7[9]\u2020" },
"note_number": "24\u2020"
"note_number": "24\u2020",
"_gpid_": 3993
},
{ "name": "Skoda M05/08",
"capabilities": [ "NT" ],
"note_number": "25",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3999
},
{ "name": "105mm MAVAG M40",
"capabilities": [ "NT", "h-d" ],
"note_number": "26"
"note_number": "26",
"_gpid_": 4001
},
{ "name": "Bofors 80mm M29/38",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "80\u2020<sup>1</sup>", "1 ROF", "B11" ] },
"note_number": "27\u2020",
"notes": [ "G\u2020<sup>1</sup>" ]
"notes": [ "G\u2020<sup>1</sup>" ],
"_gpid_": 4007
}
]

@ -4,111 +4,133 @@
"capabilities": [ "IR" ],
"capabilities_other": [ "5PP" ],
"note_number": "1",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3682
},
{ "name": "Bofors 37mm",
"capabilities": [ "NT", "QSU" ],
"note_number": "2\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3740
},
{ "name": "45mm PTP obr. 32",
"capabilities": [ "NT", "QSU" ],
"note_number": "3\u2020"
"note_number": "3\u2020",
"_gpid_": 3741
},
{ "name": "Resita M43",
"capabilities": [ "NT", "QSU" ],
"capabilities_other": [ "Blk TH", "AP TK#18\u2020" ],
"note_number": "4\u2020"
"note_number": "4\u2020",
"_gpid_": 3742
},
{ "name": "76.2mm PaK 36(r)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 7 },
"note_number": "5",
"notes": [ "K\u2020" ]
"notes": [ "K\u2020" ],
"_gpid_": 3743
},
{ "name": "Breda 47",
"capabilities": [ "NT", "QSU", "no Gunshield" ],
"note_number": "6\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3744
},
{ "name": "75mm PP obr. 27",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": 6, "s": 8 },
"note_number": "7",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3745
},
{ "name": "75 M mle 28",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "AP": 5, "s": 5 },
"note_number": "8",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3746
},
{ "name": "Skoda M14/34",
"capabilities": [ "NT" ],
"capabilities2": { "AP": 6 },
"note_number": "9\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3747
},
{ "name": "76.2mm P obr. 00/02",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 7 },
"note_number": "10"
"note_number": "10",
"_gpid_": 3748
},
{ "name": "76.2mm P obr. 02/30",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 7 },
"note_number": "11"
"note_number": "11",
"_gpid_": 3749
},
{ "name": "76.2mm P obr. 39(r)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 5 },
"note_number": "12",
"notes": [ "K\u2020" ]
"notes": [ "K\u2020" ],
"_gpid_": 3750
},
{ "name": "s 10cm K 18(g)",
"capabilities": [ "NT", "NM" ],
"capabilities2": { "s": 5 },
"note_number": "13",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3751
},
{ "name": "Skoda M39(D9)",
"capabilities": [ "NT" ],
"note_number": "14"
"note_number": "14",
"_gpid_": 3752
},
{ "name": "Canon de 105L mle 36S",
"capabilities": [ "NT" ],
"note_number": "15"
"note_number": "15",
"_gpid_": 3753
},
{ "name": "Canon mle 10/12",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 4 },
"note_number": "16"
"note_number": "16",
"_gpid_": 3754
},
{ "name": "OQF 4.5in",
"capabilities": [ "NT" ],
"capabilities2": { "s": 4 },
"note_number": "17"
"note_number": "17",
"_gpid_": 3755
},
{ "name": "Skoda M28 NOa",
"capabilities": [ "NM", "no IF" ],
"capabilities_other": [ "ST" ],
"note_number": "18"
"note_number": "18",
"_gpid_": 3756
},
{ "name": "Skoda M33 (K1)",
"capabilities": [ "NT" ],
"note_number": "19"
"note_number": "19",
"_gpid_": 3757
},
{ "name": "CA mle 38",
"capabilities": [ "T" ],
"note_number": "20"
"note_number": "20",
"_gpid_": 3758
},
{ "name": "Vickers/Resita M36/39",
"capabilities": [ "T" ],
"note_number": "21\u2020"
"note_number": "21\u2020",
"_gpid_": 3759
},
{ "name": "Kanon PL vz. 12/20",
"capabilities": [ "T", "NM" ],
"note_number": "22"
"note_number": "22",
"_gpid_": 3760
}
]

@ -3,39 +3,46 @@
{ "name": "Minomet vz. 36",
"capabilities": [ "NT", "QSU" ],
"note_number": "28",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3761
},
{ "name": "Kanon PUV vz. 36(t)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [5,1], [4,2] ] },
"note_number": "29",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3763
},
{ "name": "leIG 18(g)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": [ ["7","3+"] ] },
"note_number": "30",
"notes": [ "A", "E" ]
"notes": [ "A", "E" ],
"_gpid_": 3764
},
{ "name": "Skoda M37(K4)",
"capabilities": [ "NT" ],
"capabilities2": { "s": 6 },
"note_number": "31"
"note_number": "31",
"_gpid_": 3765
},
{ "name": "Skoda 47L40(t)",
"capabilities": [ "T", "QSU" ],
"capabilities_other": [ "AA Fire ROF 2\u2020" ],
"note_number": "32\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3766
},
{ "name": "Skoda PL vz. 37(t)",
"capabilities": [ "T" ],
"note_number": "33",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3767
},
{ "name": "Kanon PL vz. 22/24",
"capabilities_other": [ "ST" ],
"note_number": "34\u2020"
"note_number": "34\u2020",
"_gpid_": 3768
}
]

@ -4,141 +4,166 @@
"capabilities": [ "4PP" ],
"capabilities2": { "s": 7, "IR": [ [null,"2+"], "\u2020" ] },
"note_number": "1",
"notes": [ "A\u2020", "N", "P" ]
"notes": [ "A\u2020", "N", "P" ],
"_gpid_": 1153
},
{ "name": "OML 2-in. Airborne Mortar",
"capabilities": [ "IR" ],
"capabilities2": { "s": 7 },
"capabilities_other": [ "3PP" ],
"note_number": "1"
"note_number": "1",
"_gpid_": 1149
},
{ "name": "OML 3-in. Mortar",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "WP": 7, "s": [ [8,"1+"], "\u2020" ], "IR": [ [null,"2+"], "\u2020<sup>1</sup>" ] },
"note_number": "2\u2020",
"notes": [ "A\u2020<sup>1</sup>", "D", "N", "P" ]
"notes": [ "A\u2020<sup>1</sup>", "D", "N", "P" ],
"_gpid_": [ 1177, 1179 ]
},
{ "name": "OSB 4.2-in. Mortar",
"capabilities": [ "NT" ],
"capabilities2": { "s": 8, "WP": 7 },
"capabilities_other": [ "Towed\u2020" ],
"note_number": "3\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1181
},
{ "name": "OQF 25mm Hotchkiss",
"capabilities": [ "NT", "QSU" ],
"note_number": "4\u2020",
"notes": [ "B", "N" ]
"notes": [ "B", "N" ],
"_gpid_": 1183
},
{ "name": "OQF 2-Pounder",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "40\u2020<sup>1</sup>", "2 ROF", "B11" ] },
"note_number": "5\u2020",
"notes": [ "B", "C\u2020<sup>1</sup>", "N", "P" ]
"notes": [ "B", "C\u2020<sup>1</sup>", "N", "P" ],
"_gpid_": 1184
},
{ "name": "OQF 6-Pounder 7-cwt",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "HE": [ [7,"F3"], [8,"4+"], "\u2020" ], "D": [ [6,"J4E"], [7,5], "\u2020" ] },
"note_number": "6\u2020",
"notes": [ "B", "N", "P" ]
"notes": [ "B", "N", "P" ],
"_gpid_": 1185
},
{ "name": "OQF 17/25-Pounder",
"capabilities": [ "NT" ],
"note_number": "7",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 1186
},
{ "name": "OQF 17-Pounder",
"capabilities": [ "NT" ],
"capabilities2": { "HE": [ [8,"J4+"], "\u2020" ], "D": [ [5,"S4"], [6,5], "\u2020" ] },
"note_number": "8\u2020"
"note_number": "8\u2020",
"_gpid_": 1187
},
{ "name": "OQF M1A1 75mm Pack Howitzer",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": 6, "WP": 7 },
"note_number": "9\u2020",
"notes": [ "D", "P" ]
"notes": [ "D", "P" ],
"_gpid_": 1189
},
{ "name": "Canon de 75 mle 1897",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "10\u2020",
"notes": [ "B", "N" ]
"notes": [ "B", "N" ],
"_gpid_": 1191
},
{ "name": "OQF 18-Pounder",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8, "WP": 7 },
"note_number": "11\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1192
},
{ "name": "OQF 25-Pounder Short",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "12",
"notes": [ "D", "P" ]
"notes": [ "D", "P" ],
"_gpid_": 1193
},
{ "name": "OQF 25-Pounder Gun-Howitzer",
"capabilities2": { "LF": [ "NT", "0 ROF" ], "s": 8 },
"capabilities_other": [ "ST" ],
"note_number": "13\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1194
},
{ "name": "OQF 3.7-in. Howitzer",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8, "WP": 7, "H": [ [6,"3+P"], "\u2020" ] },
"note_number": "14\u2020",
"notes": [ "D", "N", "P" ]
"notes": [ "D", "N", "P" ],
"_gpid_": 1195
},
{ "name": "OQF 4.5-in. Howitzer",
"capabilities": [ "NT" ],
"capabilities2": { "s": 8, "WP": 7 },
"note_number": "15\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1196
},
{ "name": "OBL 4.5-in. Gun",
"capabilities": [ "NT" ],
"note_number": "16\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 1197
},
{ "name": "OBL 5.5-in. Gun-Howitzer",
"capabilities": [ "NT" ],
"note_number": "16\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1198
},
{ "name": "OBL 6-in. Howitzer",
"capabilities": [ "NT" ],
"note_number": "17\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1199
},
{ "name": "OBL 7.2-in. Howitzer Mk I",
"capabilities": [ "NT", "no IF" ],
"capabilities_other": [ "Acq. NA\u2020" ],
"note_number": "18\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1200
},
{ "name": "OBL 7.2-in. Howitzer Mk VI",
"capabilities": [ "NT", "RFNM", "no IF" ],
"note_number": "19\u2020",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 1201
},
{ "name": "OQF 20mm AA",
"capabilities": [ "T" ],
"note_number": "20"
"note_number": "20",
"_gpid_": 1203
},
{ "name": "OQF 40mm AA",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "40\u2020<sup>1</sup>", "2 ROF" ] },
"note_number": "21\u2020",
"notes": [ "C\u2020<sup>1</sup>", "N", "P" ]
"notes": [ "C\u2020<sup>1</sup>", "N", "P" ],
"_gpid_": 1204
},
{ "name": "OQF 3-in. 20-cwt AA",
"capabilities": [ "T" ],
"note_number": "22\u2020",
"notes": [ "E", "P" ]
"notes": [ "E", "P" ],
"_gpid_": 1205
},
{ "name": "OQF 3.7-in. AA",
"capabilities": [ "T" ],
"note_number": "23\u2020",
"notes": [ "E", "N", "P" ]
"notes": [ "E", "N", "P" ],
"_gpid_": 1206
}
]

@ -3,208 +3,244 @@
{ "name": "Type 27 Grenade Launcher",
"capabilities_other": [ "2PP", "Air Bursts NA\u2020" ],
"note_number": "1\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 1982
},
{ "name": "Mortaio da 45 \"Brixia\"",
"capabilities_other": [ "4PP" ],
"note_number": "2",
"notes": [ "A", "D\u2020" ]
"notes": [ "A", "D\u2020" ],
"_gpid_": [ 1983, 1984 ]
},
{ "name": "5cm leGrW 36",
"capabilities_other": [ "5PP" ],
"note_number": "2",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 1985
},
{ "name": "50mm RM obr. 38",
"capabilities_other": [ "5PP" ],
"note_number": "2",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 1986
},
{ "name": "Type 89 Heavy Grenade Launcher",
"capabilities": [ "IR" ],
"capabilities2": { "s": 5, "WP": 5 },
"capabilities_other": [ "4PP" ],
"note_number": "2\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 1987
},
{ "name": "M2 60mm",
"capabilities": [ "IR" ],
"capabilities_other": [ "5PP", "OBA\u2020" ],
"note_number": "3\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 1988
},
{ "name": "Stokes 3-in.",
"capabilities": [ "NT", "QSU" ],
"note_number": "4",
"notes": [ "A", "E\u2020" ]
"notes": [ "A", "E\u2020" ],
"_gpid_": 2016
},
{ "name": "8cm GrW 34",
"capabilities": [ "NT", "QSU", "IR" ],
"capabilities2": { "s": 6 },
"note_number": "4",
"notes": [ "A", "E\u2020" ]
"notes": [ "A", "E\u2020" ],
"_gpid_": 2018
},
{ "name": "82mm BM obr. 37",
"capabilities": [ "NT", "QSU", "IR" ],
"capabilities2": { "s": 6 },
"note_number": "4",
"notes": [ "A", "E\u2020" ]
"notes": [ "A", "E\u2020" ],
"_gpid_": 2020
},
{ "name": "M1 81mm",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "WP": 7 },
"note_number": "5",
"notes": [ "A", "B" ]
"notes": [ "A", "B" ],
"_gpid_": 2022
},
{ "name": "M2 4.2-in.",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "WP": 9 },
"note_number": "5\u2020",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 2024
},
{ "name": "3.7cm PaK 35/36",
"capabilities": [ "NT", "QSU" ],
"note_number": "6",
"notes": [ "E\u2020" ]
"notes": [ "E\u2020" ],
"_gpid_": 2026
},
{ "name": "M3A1 37mm",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "C": "7\u2020<sup>1</sup>" },
"note_number": "6\u2020",
"notes": [ "C\u2020<sup>1</sup>" ]
"notes": [ "C\u2020<sup>1</sup>" ],
"_gpid_": 2027
},
{ "name": "37mm PP obr. 15R",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities_other": [ "Low Ammo\u2020" ],
"note_number": "7\u2020",
"notes": [ "<s>B</s>" ]
"notes": [ "<s>B</s>" ],
"_gpid_": 2029
},
{ "name": "Cannone da 70/15",
"capabilities": [ "NT", "QSU", "Acq. NA\u2020", "Low Ammo\u2020", "h-d" ],
"note_number": "7\u2020",
"notes": [ "A", "<s>B</s>" ]
"notes": [ "A", "<s>B</s>" ],
"_gpid_": 2030
},
{ "name": "7.5cm Krupp M08",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 5, "AP": 5 },
"note_number": "8",
"notes": [ "A", "F\u2020" ]
"notes": [ "A", "F\u2020" ],
"_gpid_": 2031
},
{ "name": "Obice da 75/13",
"capabilities": [ "NT", "QSU", "h-d" ],
"note_number": "8",
"notes": [ "A", "D\u2020", "F\u2020<sup>1</sup>" ]
"notes": [ "A", "D\u2020", "F\u2020<sup>1</sup>" ],
"_gpid_": [ 2032, 2033 ]
},
{ "name": "7.5cm leIG 18",
"capabilities": [ "NT", "QSU", "h-d" ],
"note_number": "9\u2020"
"note_number": "9\u2020",
"_gpid_": 2034
},
{ "name": "76.2mm PP obr. 27",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 6, "AP": 6 },
"note_number": "9\u2020<sup>1</sup>",
"notes": [ "D\u2020" ]
"notes": [ "D\u2020" ],
"_gpid_": [ 2035, 2036 ]
},
{ "name": "M1A1 75mm Pack Howitzer",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "WP": 7, "C": "5\u2020<sup>1</sup>" },
"note_number": "10\u2020",
"notes": [ "A", "C \u2020<sup>1</sup>" ]
"notes": [ "A", "C \u2020<sup>1</sup>" ],
"_gpid_": 2037
},
{ "name": "7.7cm FK 16",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 5, "AP": 6 },
"note_number": "11",
"notes": [ "F\u2020" ]
"notes": [ "F\u2020" ],
"_gpid_": 2039
},
{ "name": "76.2mm P obr. 02/30",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 6, "AP": 6 },
"note_number": "11",
"notes": [ "D\u2020", "F\u2020<sup>1</sup>" ]
"notes": [ "D\u2020", "F\u2020<sup>1</sup>" ],
"_gpid_": [ 2040, 2041 ]
},
{ "name": "OQF 18-Pounder",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 6, "WP": 5, "AP": 6 },
"note_number": "11",
"notes": [ "<s>B</s>" ]
"notes": [ "<s>B</s>" ],
"_gpid_": 2042
},
{ "name": "10.5cm leFH 16",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 6 },
"note_number": "12\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2043
},
{ "name": "Cannone da 105/28",
"capabilities": [ "NT" ],
"capabilities2": { "s": 6, "AP": 5 },
"note_number": "12",
"notes": [ "F\u2020" ]
"notes": [ "F\u2020" ],
"_gpid_": 2044
},
{ "name": "M2A1 105mm Howitzer",
"capabilities": [ "NT" ],
"capabilities2": { "s": 6, "WP": 7, "C": "5\u2020" },
"note_number": "12",
"notes": [ "B", "C\u2020" ]
"notes": [ "B", "C\u2020" ],
"_gpid_": 2045
},
{ "name": "122mm G obr. 10/30",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 6 },
"note_number": "13",
"notes": [ "<s>B</s>", "D\u2020" ]
"notes": [ "<s>B</s>", "D\u2020" ],
"_gpid_": [ 2046, 5852 ]
},
{ "name": "122mm G obr. 38",
"capabilities": [ "NT" ],
"capabilities2": { "s": 6 },
"note_number": "13",
"notes": [ "<s>B</s>", "D\u2020" ]
"notes": [ "<s>B</s>", "D\u2020" ],
"_gpid_": [ 2048, 5853 ]
},
{ "name": "Obice da 149/13",
"capabilities": [ "NT", "h-d<sup>C</sup>\u2020" ],
"capabilities2": { "s": 5, "WP": [ [6,"B"], "\u2020" ] },
"note_number": "14\u2020"
"note_number": "14\u2020",
"_gpid_": 2050
},
{ "name": "Oerlikon FF",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF", "B10" ] },
"note_number": "15\u2020<sup>1</sup>",
"notes": [ "G\u2020" ]
"notes": [ "G\u2020" ],
"_gpid_": 2052
},
{ "name": "Cannone-mitragliera da 20/65",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020<sup>1</sup>", "2 ROF" ] },
"note_number": "15\u2020<sup>2</sup>",
"notes": [ "D\u2020", "G\u2020<sup>1</sup>" ]
"notes": [ "D\u2020", "G\u2020<sup>1</sup>" ],
"_gpid_": [ 2053, 5854 ]
},
{ "name": "2cm FlaK 30",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF", "B10" ] },
"note_number": "15\u2020<sup>1</sup>",
"notes": [ "G\u2020" ]
"notes": [ "G\u2020" ],
"_gpid_": 2055
},
{ "name": "3.7cm FlaK 36 o. 37",
"capabilities": [ "T" ],
"capabilities2": { "AP": 6 },
"note_number": "16",
"notes": [ "<s>B</s>" ]
"notes": [ "<s>B</s>" ],
"_gpid_": 2056
},
{ "name": "Bofors 40mm L/60",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "40\u2020<sup>1</sup>", "2 ROF" ], "AP": 6 },
"note_number": "16\u2020",
"notes": [ "G\u2020<sup>1</sup>" ]
"notes": [ "G\u2020<sup>1</sup>" ],
"_gpid_": 2057
},
{ "name": "Bofors 75mm M29",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "75\u2020<sup>1</sup>", "1 ROF", "B10\u2020" ], "AP": 6 },
"note_number": "17",
"notes": [ "<s>B</s>", "D\u2020", "G\u2020<sup>1</sup>" ]
"notes": [ "<s>B</s>", "D\u2020", "G\u2020<sup>1</sup>" ],
"_gpid_": [ 2058, 5855 ]
},
{ "name": "8.8cm FlaK 18",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "88\u2020<sup>1</sup>", "1 ROF", "B10\u2020" ], "AP": 6 },
"note_number": "17",
"notes": [ "<s>B</s>", "D\u2020", "G\u2020<sup>1</sup>" ]
"notes": [ "<s>B</s>", "D\u2020", "G\u2020<sup>1</sup>" ],
"_gpid_": [ 2060, 5856 ]
}
]

@ -3,224 +3,263 @@
{ "name": "47 Krh/41",
"capabilities_other": [ "2PP" ],
"note_number": "1",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 6730
},
{ "name": "50 Krh/39(r)",
"capabilities": [ "4PP" ],
"capabilities2": { "B": [ [12,"3+"], "\u2020" ] },
"note_number": "2\u2020",
"notes": [ "A", "B" ]
"notes": [ "A", "B" ],
"_gpid_": 3605
},
{ "name": "81 Krh/32",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": [ [8,"N1"], "\u2020" ], "IR": [ [null,"3+"], "\u2020" ] },
"capabilities_other": [ "5PP dm" ],
"note_number": "3\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 6765
},
{ "name": "81 Savunheitin M/42",
"capabilities": [ "NT", "QSU" ],
"capabilities_other": [ "s\u2020", "4PP dm" ],
"note_number": "4\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 6782
},
{ "name": "120 Krh/40",
"capabilities": [ "NT", "QSU" ],
"note_number": "5\u2020"
"note_number": "5\u2020",
"_gpid_": 6806
},
{ "name": "Boys ATR(b)",
"capabilities_other": [ "1PP", "\"British\"\u2020" ],
"note_number": "6\u2020"
"note_number": "6\u2020",
"_gpid_": null
},
{ "name": "Lahti ATR",
"capabilities_other": [ "4PP", "Light AA fire in 44+\u2020", "B30.35\u2020" ],
"note_number": "7\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3608
},
{ "name": "20 PstK/40",
"capabilities": [ "NT", "QSU", "Towing NA\u2020<sup>1</sup>" ],
"capabilities_other": [ "R2", "IFE=B10" ],
"note_number": "8\u2020",
"notes": [ "C\u2020<sup>1</sup>" ]
"notes": [ "C\u2020<sup>1</sup>" ],
"_gpid_": 6808
},
{ "name": "25 PstK/37(f)",
"capabilities": [ "NT", "QSU" ],
"note_number": "9\u2020",
"notes": [ "B", "D" ]
"notes": [ "B", "D" ],
"_gpid_": 6810
},
{ "name": "37 PstK/36(s)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "HE": [ [null,"1+"], "\u2020" ] },
"note_number": "10\u2020",
"notes": [ "A", "B" ]
"notes": [ "A", "B" ],
"_gpid_": 6811
},
{ "name": "37 PstK/37(g)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": [ ["6[9]","3+"], "\u2020" ] },
"note_number": "11\u2020",
"notes": [ "B", "D" ]
"notes": [ "B", "D" ],
"_gpid_": 6812
},
{ "name": "45 PstK/32(r)",
"capabilities": [ "NT", "QSU" ],
"note_number": "12\u2020",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6813
},
{ "name": "50 PstK/38(g)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": 4 },
"note_number": "13",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6814
},
{ "name": "75 PstK/97-38(g)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": 8 },
"capabilities_other": [ "H=B12" ],
"note_number": "14\u2020",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6815
},
{ "name": "75 PstK/40(g)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": 3, "H": 4, "s": 7 },
"note_number": "15",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6816
},
{ "name": "76 RK/27(r)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": [ ["6","J4+"], "\u2020" ], "s": 6 },
"note_number": "16\u2020",
"notes": [ "A", "B" ]
"notes": [ "A", "B" ],
"_gpid_": 6818
},
{ "name": "75 K/02",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 6 },
"note_number": "17\u2020"
"note_number": "17\u2020",
"_gpid_": 6819
},
{ "name": "76 LK/13",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 6 },
"note_number": "18"
"note_number": "18",
"_gpid_": 6820
},
{ "name": "76 K/02(r)",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 6 },
"note_number": "19\u2020",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6821
},
{ "name": "76 K/36(r)",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 6 },
"note_number": "20\u2020",
"notes": [ "B", "E\u2020<sup>1</sup>" ]
"notes": [ "B", "E\u2020<sup>1</sup>" ],
"_gpid_": 6822
},
{ "name": "87 K/95",
"capabilities": [ "NT", "QSU", "no IF", "h-d" ],
"capabilities_other": [ "Acq. NA\u2020" ],
"note_number": "21",
"notes": [ "F\u2020" ]
"notes": [ "F\u2020" ],
"_gpid_": 6823
},
{ "name": "90 K/77",
"capabilities": [ "NT", "QSU", "no IF", "Acq. NA\u2020<sup>1</sup>", "h-d" ],
"note_number": "22\u2020",
"notes": [ "F\u2020<sup>1</sup>" ]
"notes": [ "F\u2020<sup>1</sup>" ],
"_gpid_": 6824
},
{ "name": "105 H/33(g)",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "H": [ [6,"A4+"], "\u2020" ], "s": 8 },
"note_number": "23\u2020",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6826
},
{ "name": "105 H/37",
"capabilities": [ "NT" ],
"capabilities2": { "s": 6 },
"note_number": "24\u2020"
"note_number": "24\u2020",
"_gpid_": 6827
},
{ "name": "105 H/41(t)",
"capabilities": [ "NT" ],
"capabilities2": { "H": [ [6,"A4+"], "\u2020" ], "s": 8 },
"note_number": "25\u2020",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6828
},
{ "name": "107 K 10/13",
"capabilities": [ "NT" ],
"capabilities2": { "s": 5 },
"note_number": "26\u2020"
"note_number": "26\u2020",
"_gpid_": 6829
},
{ "name": "107 K/77(r)",
"capabilities": [ "NT", "no IF", "Acq. NA\u2020<sup>1</sup>", "h-d" ],
"note_number": "27\u2020",
"notes": [ "B", "F\u2020<sup>1</sup>" ]
"notes": [ "B", "F\u2020<sup>1</sup>" ],
"_gpid_": 6830
},
{ "name": "114 H/18(b)",
"capabilities": [ "NT" ],
"capabilities2": { "H": [ [4,"4+"] ], "s": 8, "WP": [ [6,"4+"] ] },
"note_number": "28\u2020"
"note_number": "28\u2020",
"_gpid_": 6831
},
{ "name": "122 H/10(r)",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 6, "WP": [ [6,"4+"] ] },
"note_number": "29\u2020",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6832
},
{ "name": "150 H/40(g)",
"capabilities": [ "NT", "NM" ],
"capabilities2": { "H": 6, "s": 8 },
"note_number": "30",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6833
},
{ "name": "155 H/17(f)",
"capabilities": [ "NT" ],
"capabilities2": { "s": 6 },
"note_number": "31",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": 6834
},
{ "name": "7.62 ItKK/31-40",
"capabilities": [ "T", "QSU", "Towing NA\u2020<sup>1</sup>" ],
"capabilities_other": [ "2 TK DR\u2020" ],
"note_number": "32\u2020",
"notes": [ "C\u2020<sup>1</sup>" ]
"notes": [ "C\u2020<sup>1</sup>" ],
"_gpid_": 6796
},
{ "name": "20 ItK/30 BSW(g)",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF", "B10" ] },
"note_number": "33",
"notes": [ "B", "G\u2020" ]
"notes": [ "B", "G\u2020" ],
"_gpid_": 6797
},
{ "name": "20 ItK/38 BSW(g)",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020<sup>1</sup>", "2 ROF", "B11" ] },
"note_number": "34\u2020",
"notes": [ "B", "G\u2020<sup>1</sup>" ]
"notes": [ "B", "G\u2020<sup>1</sup>" ],
"_gpid_": 6801
},
{ "name": "20 ItK/35 Br",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020<sup>1</sup>", "2 ROF" ] },
"capabilities_other": [ "Road MP = 1\u2020" ],
"note_number": "35\u2020",
"notes": [ "A", "D", "G\u2020<sup>1</sup>" ]
"notes": [ "A", "D", "G\u2020<sup>1</sup>" ],
"_gpid_": 6802
},
{ "name": "20 ItK/40 VKT",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020<sup>1</sup>", "2 ROF", "8 IFE", "B11" ] },
"capabilities_other": [ "2 TK DR\u2020", "Unhooking risk\u2020" ],
"note_number": "36\u2020",
"notes": [ "D", "G\u2020<sup>1</sup>" ]
"notes": [ "D", "G\u2020<sup>1</sup>" ],
"_gpid_": 6803
},
{ "name": "40 ItK/35-39 B(s)",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "40\u2020<sup>1</sup>", "2 ROF" ] },
"note_number": "37\u2020",
"notes": [ "B", "G\u2020<sup>1</sup>" ]
"notes": [ "B", "G\u2020<sup>1</sup>" ],
"_gpid_": 6804
},
{ "name": "76 ItK/28 B(s)",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "76\u2020", "1 ROF" ] },
"note_number": "38",
"notes": [ "B", "G\u2020" ]
"notes": [ "B", "G\u2020" ],
"_gpid_": 7409
},
{ "name": "76 ItK/31(r)",
"capabilities": [ "T" ],
"note_number": "39",
"notes": [ "B", "E\u2020" ]
"notes": [ "B", "E\u2020" ],
"_gpid_": 6805
}
]

@ -3,111 +3,132 @@
{ "name": "LG de 50 mle 37(f)",
"capabilities_other": [ "2PP", "crewed\u2020" ],
"note_number": "1",
"notes": [ "A", "B", "C\u2020", "E" ]
"notes": [ "A", "B", "C\u2020", "E" ],
"_gpid_": 1636
},
{ "name": "Mortier de 60 mle 35",
"capabilities": [ "5PP", "no OBA\u2020" ],
"capabilities2": { "IR": [ [null,"2+"], "\u2020" ] },
"note_number": "2\u2020",
"notes": [ "A", "B", "V" ]
"notes": [ "A", "B", "V" ],
"_gpid_": 1641
},
{ "name": "Mortier de 81 mle 27/31",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "3\u2020",
"notes": [ "A", "B", "D", "V" ]
"notes": [ "A", "B", "D", "V" ],
"_gpid_": 1667
},
{ "name": "Fusil Antichar Boys",
"capabilities_other": [ "1PP" ],
"note_number": "4\u2020",
"notes": [ "B" ]
"notes": [ "B" ],
"_gpid_": null
},
{ "name": "Canon AC de 25 SA-L mle 34",
"capabilities": [ "NT", "QSU" ],
"note_number": "5\u2020",
"notes": [ "B", "P" ]
"notes": [ "B", "P" ],
"_gpid_": 1669
},
{ "name": "Canon AC de 47 SA mle 37 APX",
"capabilities": [ "NT", "QSU", "APCR only\u2020<sup>1</sup>" ],
"note_number": "6\u2020<sup>1</sup>",
"notes": [ "B", "G\u2020", "P", "V" ]
"notes": [ "B", "G\u2020", "P", "V" ],
"_gpid_": [ 1670, 1671, 1672 ]
},
{ "name": "Canon de 75 AC mle 97/35",
"capabilities": [ "h-d" ],
"capabilities2": { "LF": [ "NT" ], "HE": 7, "s": 6 },
"capabilities_other": [ "ST", "no shield" ],
"note_number": "7",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 1673
},
{ "name": "Canon de 37 mle 16 TR",
"capabilities_other": [ "5PP (3PP dm)", "crewed\u2020" ],
"note_number": "8\u2020<sup>1</sup>",
"notes": [ "A", "C\u2020" ]
"notes": [ "A", "C\u2020" ],
"_gpid_": 1632
},
{ "name": "Canon de 65 M mle 06",
"capabilities": [ "NT", "QSU", "no Gunshield", "h-d" ],
"note_number": "9\u2020",
"notes": [ "A", "P" ]
"notes": [ "A", "P" ],
"_gpid_": 1674
},
{ "name": "Canon de 75 M mle 28",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 6, "AP": 5 },
"note_number": "10\u2020",
"notes": [ "A", "P" ]
"notes": [ "A", "P" ],
"_gpid_": 1678
},
{ "name": "Canon de 75 mle 1897",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "11\u2020",
"notes": [ "B", "P" ]
"notes": [ "B", "P" ],
"_gpid_": [ 1679, 1704 ]
},
{ "name": "Canon de 105 M mle 28",
"capabilities": [ "NT", "h-d" ],
"note_number": "12\u2020",
"notes": [ "A", "P" ]
"notes": [ "A", "P" ],
"_gpid_": 1680
},
{ "name": "Canon de 105 C mle 35 B",
"capabilities": [ "NT" ],
"note_number": "13",
"notes": [ "E", "F\u2020" ]
"notes": [ "E", "F\u2020" ],
"_gpid_": 1681
},
{ "name": "Canon de 105 L mle 13 S",
"capabilities": [ "NT" ],
"note_number": "14\u2020",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 1682
},
{ "name": "Canon de 105 L mle 36 S",
"capabilities": [ "NT" ],
"note_number": "15",
"notes": [ "E", "F\u2020" ]
"notes": [ "E", "F\u2020" ],
"_gpid_": 1683
},
{ "name": "Canon de 155 C mle 17 S",
"capabilities": [ "NT" ],
"capabilities2": { "s": 8 },
"note_number": "16\u2020"
"note_number": "16\u2020",
"_gpid_": 1684
},
{ "name": "Canon de 155 GPF",
"capabilities": [ "NT", "RFNM", "no IF" ],
"note_number": "17\u2020"
"note_number": "17\u2020",
"_gpid_": 1685
},
{ "name": "Mitrailleuse de 13.2 CAJ mle 30",
"capabilities": [ "T", "2 TK DR\u2020<sup>1</sup>", "Towing NA\u2020<sup>1</sup>" ],
"note_number": "18\u2020<sup>1</sup>",
"notes": [ "B", "G\u2020", "V" ]
"notes": [ "B", "G\u2020", "V" ],
"_gpid_": [ 1687, 1688, 1689 ]
},
{ "name": "Mitrailleuse de 20 CA mle 39 O",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF", "B11" ] },
"note_number": "19\u2020"
"note_number": "19\u2020",
"_gpid_": 1690
},
{ "name": "Canon Automatique de 25 CA mle 38",
"capabilities": [ "T" ],
"note_number": "20\u2020<sup>1</sup>",
"notes": [ "G\u2020" ]
"notes": [ "G\u2020" ],
"_gpid_": [ 1691, 1692 ]
},
{ "name": "Canon de 75 CA mle 32",
"capabilities": [ "T", "NM" ],
"note_number": "21\u2020"
"note_number": "21\u2020",
"_gpid_": 1693
}
]

@ -3,173 +3,203 @@
{ "name": "5cm leGrW",
"capabilities_other": [ "5PP" ],
"note_number": "1",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2465
},
{ "name": "8cm GrW 34",
"capabilities": [ "NT", "QSU", "IR" ],
"capabilities2": { "s": 8 },
"note_number": "2\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2488
},
{ "name": "10cm NbW 35",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 10 },
"note_number": "3",
"notes": [ "O" ]
"notes": [ "O" ],
"_gpid_": 2490
},
{ "name": "12cm GrW 42",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "4\u2020"
"note_number": "4\u2020",
"_gpid_": 2491
},
{ "name": "2.8cm sPzB 41",
"capabilities": [ "NT", "QSU" ],
"capabilities_other": [ "uses APCR TK Table\u2020" ],
"note_number": "5\u2020",
"notes": [ "A\u2020", "N", "P" ]
"notes": [ "A\u2020", "N", "P" ],
"_gpid_": 2493
},
{ "name": "3.7cm PaK 35/36",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,1], [5,2], [4,3], [3,4] ], "H": "6[9]\u2020" },
"note_number": "6",
"notes": [ "B\u2020", "N", "P" ]
"notes": [ "B\u2020", "N", "P" ],
"_gpid_": 2494
},
{ "name": "4.2cm lePaK 41",
"capabilities": [ "NT", "QSU" ],
"capabilities_other": [ "uses APCR TK Table\u2020" ],
"note_number": "7",
"notes": [ "A\u2020", "N<sup>T</sup>" ]
"notes": [ "A\u2020", "N<sup>T</sup>" ],
"_gpid_": 2495
},
{ "name": "5cm PaK 38",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [5,1], [6,2], [5,3], [4,4] ] },
"note_number": "8\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2496
},
{ "name": "7.5cm PaK 97/38",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": 6, "s": 7 },
"note_number": "9",
"notes": [ "N<sup>T</sup>" ]
"notes": [ "N<sup>T</sup>" ],
"_gpid_": 2497
},
{ "name": "7.5cm PaK 40",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [5,2], [4,3], [3,4] ], "s": 7 },
"note_number": "10\u2020",
"notes": [ "N<sup>T</sup>" ]
"notes": [ "N<sup>T</sup>" ],
"_gpid_": 2498
},
{ "name": "7.62cm PaK 36r",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [5,2], [4,3], [3,4] ], "s": 6 },
"note_number": "11\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2499
},
{ "name": "8.8cm PaK 43",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "88\u2020", "1 ROF", "B11", "<b>M4</b>", "-1" ] },
"note_number": "12",
"notes": [ "C\u2020" ]
"notes": [ "C\u2020" ],
"_gpid_": 2500
},
{ "name": "8.8cm PaK 43/41",
"capabilities": [ "NT" ],
"note_number": "13"
"note_number": "13",
"_gpid_": 2501
},
{ "name": "12.8cm K 81/1",
"capabilities": [ "NT", "NM" ],
"note_number": "14"
"note_number": "14",
"_gpid_": 2502
},
{ "name": "7.5cm leIG 18",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": 7 },
"note_number": "15",
"notes": [ "N", "O" ]
"notes": [ "N", "O" ],
"_gpid_": 2504
},
{ "name": "15cm sIG 33",
"capabilities": [ "NT" ],
"capabilities2": { "H": 7, "s": 8 },
"note_number": "16",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2505
},
{ "name": "7.5cm LG 40",
"capabilities": [ "T", "QSU" ],
"capabilities2": { "H": 6 },
"note_number": "17",
"notes": [ "N<sup>T</sup>" ]
"notes": [ "N<sup>T</sup>" ],
"_gpid_": 2506
},
{ "name": "10.5cm LG 42",
"capabilities": [ "T", "QSU" ],
"capabilities2": { "H": 6, "s": 6 },
"note_number": "18\u2020",
"notes": [ "N<sup>T</sup>" ]
"notes": [ "N<sup>T</sup>" ],
"_gpid_": 2507
},
{ "name": "7.5cm leFK 16nA",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "H": 5, "s": 8 },
"note_number": "19"
"note_number": "19",
"_gpid_": 2509
},
{ "name": "10.5cm leFH 18",
"capabilities": [ "NT" ],
"capabilities2": { "H": 6, "s": 8 },
"note_number": "20",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2510
},
{ "name": "s 10cm K 18",
"capabilities": [ "NT", "NM" ],
"capabilities2": { "H": 6, "s": 8 },
"note_number": "21",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2511
},
{ "name": "15cm sFH 18",
"capabilities": [ "NT", "NM" ],
"capabilities2": { "H": 6, "s": 8 },
"note_number": "22",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2512
},
{ "name": "15cm K 18",
"capabilities": [ "NT", "RFNM" ],
"capabilities2": { "AP": 6 },
"note_number": "23",
"notes": [ "N<sup>T</sup>" ]
"notes": [ "N<sup>T</sup>" ],
"_gpid_": 2513
},
{ "name": "17cm K 18",
"capabilities": [ "NT", "RFNM", "no IF" ],
"capabilities2": { "AP": 6 },
"note_number": "24",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2514
},
{ "name": "2cm FlaK 30",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "20\u2020", "2 ROF", "B10", "NT" ] },
"note_number": "25",
"notes": [ "C\u2020", "N" ]
"notes": [ "C\u2020", "N" ],
"_gpid_": 2516
},
{ "name": "2cm FlaK 38",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "20\u2020", "2 ROF", "B11", "NT" ] },
"note_number": "26",
"notes": [ "C\u2020", "N" ]
"notes": [ "C\u2020", "N" ],
"_gpid_": 2517
},
{ "name": "2cm FlaKvierling 38",
"capabilities": [ "T" ],
"capabilities_other": [ "4TK DR\u2020" ],
"note_number": "27\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2518
},
{ "name": "3.7cm FlaK 36 o. 37",
"capabilities": [ "T" ],
"capabilities2": { "H": "5[9]\u2020" },
"note_number": "28",
"notes": [ "B\u2020", "N" ]
"notes": [ "B\u2020", "N" ],
"_gpid_": 2519
},
{ "name": "3.7cm FlaK 43",
"capabilities": [ "T" ],
"note_number": "29"
"note_number": "29",
"_gpid_": 2520
},
{ "name": "8.8cm FlaK 18 o. 36",
"capabilities": [ "T" ],
"capabilities2": { "A": [ [5,2], [4,3], [3,4] ], "LF": [ "88L\u2020", "1 ROF", "B11" ] },
"note_number": "30",
"notes": [ "C\u2020", "N" ]
"notes": [ "C\u2020", "N" ],
"_gpid_": 2521
}
]

@ -3,112 +3,132 @@
{ "name": "Mortaio da 45 \"Brixia\"",
"capabilities_other": [ "4PP" ],
"note_number": "1",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 3422
},
{ "name": "Mortaio da 81/14",
"capabilities": [ "NT", "QSU", "IR" ],
"capabilities2": { "s": 8 },
"note_number": "2\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 3442
},
{ "name": "Fucile-cc S",
"capabilities_other": [ "5PP" ],
"note_number": "3",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 3428
},
{ "name": "Cannone-cc da 37/45",
"capabilities": [ "NT", "QSU" ],
"note_number": "4\u2020",
"notes": [ "C", "N", "<s>R</s>" ]
"notes": [ "C", "N", "<s>R</s>" ],
"_gpid_": 3444
},
{ "name": "Cannone da 47/32",
"capabilities": [ "NT", "QSU", "no Gunshield" ],
"capabilities2": { "Towed": [ [null,"A1+"], "\u2020" ] },
"note_number": "5\u2020",
"notes": [ "A", "C", "N" ]
"notes": [ "A", "C", "N" ],
"_gpid_": 3445
},
{ "name": "Cannone da 65/17",
"capabilities": [ "NT", "no Gunshield" ],
"capabilities2": { "H": [ [6,"S2+"], "\u2020<sup>1</sup>" ] },
"note_number": "6\u2020",
"notes": [ "A", "C", "H\u2020<sup>1</sup>", "N" ]
"notes": [ "A", "C", "H\u2020<sup>1</sup>", "N" ],
"_gpid_": 3446
},
{ "name": "Cannone da 70/15",
"capabilities": [ "NT", "QSU", "Acq. NA\u2020<sup>1</sup>", "no Gunshield", "h-d" ],
"note_number": "7\u2020",
"notes": [ "A", "B\u2020<sup>1</sup>", "<s>R</s>" ]
"notes": [ "A", "B\u2020<sup>1</sup>", "<s>R</s>" ],
"_gpid_": 3447
},
{ "name": "Obice da 75/13",
"capabilities": [ "NT", "QSU" ],
"note_number": "8\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3451
},
{ "name": "Cannone da 75/27",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": [ [6,"S2+"], "\u2020<sup>1</sup>" ] },
"note_number": "9\u2020",
"notes": [ "A", "C", "H\u2020<sup>1</sup>", "N" ]
"notes": [ "A", "C", "H\u2020<sup>1</sup>", "N" ],
"_gpid_": 3452
},
{ "name": "Obice da 75/18",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": [ [6,"S2+"], "\u2020<sup>1</sup>" ], "s": 8 },
"note_number": "10\u2020",
"notes": [ "A", "H\u2020<sup>1</sup>", "N" ]
"notes": [ "A", "H\u2020<sup>1</sup>", "N" ],
"_gpid_": 3453
},
{ "name": "Cannone da 75/32",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": [ [6,"S2+"], "\u2020<sup>1</sup>" ], "s": 8 },
"note_number": "11\u2020",
"notes": [ "H\u2020<sup>1</sup>" ]
"notes": [ "H\u2020<sup>1</sup>" ],
"_gpid_": 3454
},
{ "name": "Obice da 100/17",
"capabilities": [ "NT" ],
"capabilities2": { "H": [ [6,"S2+"], "\u2020<sup>1</sup>" ] },
"note_number": "12\u2020",
"notes": [ "A", "H\u2020<sup>1</sup>", "N" ]
"notes": [ "A", "H\u2020<sup>1</sup>", "N" ],
"_gpid_": 3455
},
{ "name": "Cannone da 105/28",
"capabilities": [ "NT" ],
"capabilities2": { "s": 8 },
"note_number": "13\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 3456
},
{ "name": "Obice 149/13",
"capabilities": [ "NT" ],
"note_number": "14\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 3457
},
{ "name": "Cannone da 149/35",
"capabilities": [ "NT", "RFNM", "no IF", "Acq. NA\u2020<sup>1</sup>" ],
"capabilities2": { "s": 8 },
"note_number": "15\u2020",
"notes": [ "B\u2020<sup>1</sup>", "N", "<s>R</s>" ]
"notes": [ "B\u2020<sup>1</sup>", "N", "<s>R</s>" ],
"_gpid_": 3458
},
{ "name": "Cannone da 149/40",
"capabilities": [ "NT", "RFNM" ],
"note_number": "16\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 3459
},
{ "name": "Cannone-mitragliera da 20/65",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF" ] },
"note_number": "17\u2020",
"notes": [ "A", "C", "N" ]
"notes": [ "A", "C", "N" ],
"_gpid_": 3461
},
{ "name": "Cannone-aa da 75/39",
"capabilities": [ "T" ],
"capabilities_other": [ "\"16\" AP TK#\u2020" ],
"note_number": "18\u2020"
"note_number": "18\u2020",
"_gpid_": 3462
},
{ "name": "Cannone-aa da 75/46",
"capabilities": [ "T" ],
"note_number": "19\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 3463
},
{ "name": "Cannone-aa da 90/53",
"capabilities": [ "T" ],
"note_number": "20\u2020",
"notes": [ "N", "<s>R</s>" ]
"notes": [ "N", "<s>R</s>" ],
"_gpid_": 3464
}
]

@ -4,147 +4,174 @@
"capabilities": [ "IR" ],
"capabilities2": { "WP": "6\u2020" },
"capabilities_other": [ "4PP", "s7\u2020" ],
"note_number": "1\u2020"
"note_number": "1\u2020",
"_gpid_": 3253
},
{ "name": "Year-11 Type Curved-Fire Infantry Gun",
"capabilities": [ "NT", "QSU", "5PP dm\u2020<sup>1</sup>" ],
"capabilities2": { "WP": 5 },
"note_number": "2\u2020",
"notes": [ "A", "B\u2020<sup>1</sup>" ]
"notes": [ "A", "B\u2020<sup>1</sup>" ],
"_gpid_": 3277
},
{ "name": "Type 97 Curved-Fire Infantry Gun",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "WP": 5 },
"note_number": "3\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3279
},
{ "name": "Type 97 Light Close-Attack Gun",
"capabilities": [ "NT", "QSU", "5PP dm\u2020<sup>1</sup>" ],
"capabilities2": { "WP": 5 },
"note_number": "4\u2020",
"notes": [ "A", "B\u2020<sup>1</sup>" ]
"notes": [ "A", "B\u2020<sup>1</sup>" ],
"_gpid_": 3281
},
{ "name": "Type 97 Medium Close-Attack Gun",
"capabilities": [ "NT", "Towing NA\u2020<sup>1</sup>" ],
"note_number": "5\u2020",
"notes": [ "A", "C\u2020<sup>1</sup>" ]
"notes": [ "A", "C\u2020<sup>1</sup>" ],
"_gpid_": 3283
},
{ "name": "Type 97 Automatic Gun",
"capabilities_other": [ "5PP", "crew\u2020" ],
"note_number": "6\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3263
},
{ "name": "Type 94 Rapid-Fire Gun",
"capabilities": [ "NT", "QSU", "h-d" ],
"note_number": "7\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3285
},
{ "name": "Type 1 Machine-Moved Gun",
"capabilities": [ "NT", "QSU" ],
"note_number": "8\u2020"
"note_number": "8\u2020",
"_gpid_": 3286
},
{ "name": "Year-11 Type Flat-Trajectory Infantry Gun",
"capabilities_other": [ "5PP (3PP dm)", "crewed\u2020" ],
"note_number": "9\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3252
},
{ "name": "Type 92 Infantry Gun",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "AP": 5, "WP": 5, "H": [ [6,5] ] },
"note_number": "10\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3287
},
{ "name": "Year-41 Type Mountain Gun",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "WP": 7, "H": [ [6,"4+"], "\u2020" ] },
"note_number": "11\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3288
},
{ "name": "Year-38 Type Field Gun (Improved)",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "WP": 6 },
"capabilities_other": [ "\"12\" AP TK#\u2020" ],
"note_number": "12\u2020"
"note_number": "12\u2020",
"_gpid_": 3291
},
{ "name": "Type 90 Field Gun",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "WP": 6 },
"note_number": "13\u2020"
"note_number": "13\u2020",
"_gpid_": 3292
},
{ "name": "Type 91 10cm Field Howitzer",
"capabilities": [ "NT" ],
"note_number": "14\u2020"
"note_number": "14\u2020",
"_gpid_": 3293
},
{ "name": "Type 92 10cm Cannon",
"capabilities": [ "NT" ],
"capabilities2": { "AP": 5, "WP": 5 },
"note_number": "15\u2020"
"note_number": "15\u2020",
"_gpid_": 3294
},
{ "name": "Year-38 Type 12cm Howitzer",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "AP": 5 },
"note_number": "16\u2020"
"note_number": "16\u2020",
"_gpid_": 3295
},
{ "name": "Year-3 Type 14cm Naval Seacoast Gun",
"capabilities": [ "T" ],
"capabilities_other": [ "NM\u2020" ],
"note_number": "17\u2020<sup>1</sup>",
"notes": [ "D\u2020", "E" ]
"notes": [ "D\u2020", "E" ],
"_gpid_": 3296
},
{ "name": "Year-4 Type 15cm Howitzer",
"capabilities": [ "NT" ],
"capabilities2": { "AP": 5, "WP": 5 },
"capabilities_other": [ "Towing risk\u2020" ],
"note_number": "18\u2020"
"note_number": "18\u2020",
"_gpid_": 3297
},
{ "name": "Type 96 15cm Howitzer",
"capabilities": [ "NT" ],
"capabilities2": { "AP": 5, "WP": 5 },
"note_number": "19\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3298
},
{ "name": "Type 93 Twin-Mount High-Angle Machine Gun",
"capabilities": [ "T", "2 TK DR\u2020", "Towing NA\u2020<sup>1</sup>" ],
"note_number": "20\u2020",
"notes": [ "A", "C\u2020<sup>1</sup>", "E" ]
"notes": [ "A", "C\u2020<sup>1</sup>", "E" ],
"_gpid_": 3301
},
{ "name": "Type 98 High-Angle Machine Cannon",
"capabilities": [ "T" ],
"capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF" ] },
"note_number": "21\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 3302
},
{ "name": "Type 96 Naval High-Angle Machine Cannon",
"capabilities": [ "T" ],
"capabilities_other": [ "NM\u2020" ],
"note_number": "22\u2020<sup>1</sup>",
"notes": [ "D\u2020", "E" ]
"notes": [ "D\u2020", "E" ],
"_gpid_": 3303
},
{ "name": "Type 96 Twin-Mount Naval High-Angle Machine Cannon",
"capabilities": [ "T", "NM\u2020", "2 TK DR\u2020<sup>1</sup>" ],
"note_number": "22\u2020<sup>1</sup>",
"notes": [ "D\u2020", "E" ]
"notes": [ "D\u2020", "E" ],
"_gpid_": 3304
},
{ "name": "Type 96 Triple-Mount Naval High-Angle Machine Cannon",
"capabilities": [ "T", "NM\u2020", "3 TK DR\u2020<sup>1</sup>" ],
"note_number": "22\u2020<sup>1</sup>",
"notes": [ "D\u2020", "E" ]
"notes": [ "D\u2020", "E" ],
"_gpid_": 3305
},
{ "name": "Type 88 7.5cm Mobile Field High-Angle Gun",
"capabilities": [ "T" ],
"note_number": "23\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3306
},
{ "name": "Year-10 Type 12cm Naval High-Angle Gun",
"capabilities": [ "T" ],
"capabilities_other": [ "NM\u2020" ],
"note_number": "24\u2020<sup>1</sup>",
"notes": [ "D\u2020", "E" ]
"notes": [ "D\u2020", "E" ],
"_gpid_": 3308
},
{ "name": "Type 10 8cm Naval High-Angle Gun",
"capabilities": [ "T", "NM\u2020", "\"13\" AP TK\u2020<sup>1</sup>" ],
"note_number": "25\u2020<sup>1</sup>",
"notes": [ "D\u2020", "E" ]
"notes": [ "D\u2020", "E" ],
"_gpid_": 3307
}
]

@ -2,138 +2,167 @@
{ "name": "50mm RM obr. 40",
"capabilities_other": [ "4PP" ],
"note_number": "1"
"note_number": "1",
"_gpid_": 485
},
{ "name": "37mm PM-39",
"capabilities_other": [ "1PP", "Air Bursts & Acq. NA" ],
"note_number": "1.1",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 6996
},
{ "name": "82mm BM obr. 37",
"capabilities": [ "NT", "QSU", "IR" ],
"capabilities2": { "s": 8 },
"note_number": "2\u2020"
"note_number": "2\u2020",
"_gpid_": 508
},
{ "name": "107mm GVPM obr. 38",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "3",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 510
},
{ "name": "120mm PM obr. 38",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "s": 8 },
"note_number": "4"
"note_number": "4",
"_gpid_": 511
},
{ "name": "160mm PM obr. 43",
"capabilities": [ "NT", "no IF" ],
"note_number": "5"
"note_number": "5",
"_gpid_": 512
},
{ "name": "37mm PTP obr. 30",
"capabilities": [ "NT", "QSU" ],
"note_number": "6"
"note_number": "6",
"_gpid_": 514
},
{ "name": "45mm PTP obr. 32",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,2], [5,3], [6,4], [7,5] ] },
"note_number": "7"
"note_number": "7",
"_gpid_": 515
},
{ "name": "45mm PTP obr. 42",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,2], [5,3], [6,4], [7,5] ] },
"note_number": "8"
"note_number": "8",
"_gpid_": 516
},
{ "name": "57mm PTP obr. 43",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,3], [5,4], [6,5] ] },
"note_number": "9\u2020"
"note_number": "9\u2020",
"_gpid_": 517
},
{ "name": "100mm PTP obr. 44",
"capabilities": [ "NT" ],
"note_number": "10"
"note_number": "10",
"_gpid_": 518
},
{ "name": "37mm PP obr. 15R",
"capabilities": [ "NT", "QSU", "h-d" ],
"note_number": "11"
"note_number": "11",
"_gpid_": 520
},
{ "name": "76.2mm PP obr. 27",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "H": 6, "s": 8 },
"note_number": "12",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 521
},
{ "name": "76.2mm P obr. 00/02P",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 8 },
"note_number": "13"
"note_number": "13",
"_gpid_": 523
},
{ "name": "76.2mm P obr. 02/30",
"capabilities": [ "NT", "QSU", "h-d" ],
"capabilities2": { "s": 8 },
"note_number": "14"
"note_number": "14",
"_gpid_": 524
},
{ "name": "76.2mm P obr. 39",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,2], [5,3], [6,4], [7,5] ], "s": 8 },
"note_number": "15\u2020"
"note_number": "15\u2020",
"_gpid_": 525
},
{ "name": "76.2mm P obr. 36",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [4,2] ], "s": 8 },
"note_number": "16\u2020"
"note_number": "16\u2020",
"_gpid_": 526
},
{ "name": "85mm P obr. 44",
"capabilities": [ "NT", "QSU" ],
"capabilities2": { "A": [ [5,4], [6,5] ], "s": 8 },
"note_number": "17"
"note_number": "17",
"_gpid_": 527
},
{ "name": "107mm P obr. 10/30",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 8 },
"note_number": "18"
"note_number": "18",
"_gpid_": 528
},
{ "name": "122mm G obr. 10/30",
"capabilities": [ "NT", "h-d" ],
"capabilities2": { "s": 8 },
"note_number": "19"
"note_number": "19",
"_gpid_": 529
},
{ "name": "122mm G obr. 38",
"capabilities": [ "NT" ],
"capabilities2": { "H": 6, "s": 8 },
"note_number": "20"
"note_number": "20",
"_gpid_": 530
},
{ "name": "122mm P obr. 31",
"capabilities": [ "NT" ],
"capabilities2": { "s": 8 },
"note_number": "21"
"note_number": "21",
"_gpid_": 531
},
{ "name": "152mm G obr. 38",
"capabilities": [ "NT" ],
"note_number": "22"
"note_number": "22",
"_gpid_": 532
},
{ "name": "152mm GP obr. 37",
"capabilities": [ "NT" ],
"note_number": "23"
"note_number": "23",
"_gpid_": 533
},
{ "name": "203mm B-4 obr. 1931",
"capabilities": [ "NT", "RFNM", "no IF" ],
"note_number": "23.1"
"note_number": "23.1",
"_gpid_": 6995
},
{ "name": "25mm ZP obr. 40",
"capabilities": [ "T" ],
"note_number": "24"
"note_number": "24",
"_gpid_": 536
},
{ "name": "37mm ZP obr. 39",
"capabilities": [ "T" ],
"note_number": "25\u2020"
"note_number": "25\u2020",
"_gpid_": 537
},
{ "name": "76.2mm ZP obr. 38",
"capabilities": [ "T" ],
"note_number": "26\u2020"
"note_number": "26\u2020",
"_gpid_": 538
},
{ "name": "85mm ZP obr. 39",
"capabilities": [ "T" ],
"note_number": "27"
"note_number": "27",
"_gpid_": 539
}
]

@ -0,0 +1,104 @@
{
"2474": {
"expected": {
"name": "Goliath",
"front_images": [ "ge/gegol", "ge/gegolb" ],
"back_images": null
},
"updated": {
"front_images": "ge/gegol"
}
},
"1555": {
"expected": {
"name": "2pdr Portee",
"front_images": "br/vehicles/portee",
"back_images": [ "br/vehicles/portee", "br/vehicles/portee0" ]
},
"updated": {
"front_images": [ "br/vehicles/portee", "br/vehicles/portee0" ],
"back_images": null
}
},
"3463": {
"expected": {
"name": "75L AA 75/46",
"front_images": [ "it/gun/itAA7546", "it/gun/itAA7546b" ],
"back_images": [ "it/gun/itAA7546b", "it/gun/itAA7546lb" ]
},
"updated": {
"front_images": "it/gun/itAA7546",
"back_images": "it/gun/itAA7546b"
}
},
"3776": {
"expected": {
"name": "37* INF Skoda IG",
"front_images": [ "ax/gun/buIN37s", "ax/gun/buIN37s2" ],
"back_images": "ax/gun/buIN37sb"
},
"updated": {
"front_images": "ax/gun/buIN37s"
}
},
"3777": {
"expected": {
"name": "70* INF Skoda IG",
"front_images": [ "ax/gun/buIN37s", "ax/gun/buIN37s2" ],
"back_images": "ax/gun/buIN37sb"
},
"updated": {
"front_images": "ax/gun/buIN37s2"
}
},
"6802": {
"expected": {
"name": "20L (4) AA",
"front_images": [ "fi/gun/fi20L4 _2.png", "fi/gun/fi20L4 _2 LIM.png" ],
"back_images": null
},
"updated": {
"front_images": "fi/gun/fi20L4 _2.png"
}
},
"6803": {
"expected": {
"name": "20L VKT (12) AA",
"front_images": [ "fi/gun/fi20L12.png", "fi/gun/fi20L12L.png" ],
"back_images": null
},
"updated": {
"front_images": "fi/gun/fi20L12.png"
}
},
"6804": {
"expected": {
"name": "40L Bofors AA (s)",
"front_images": [ "fi/gun/fi40L.png", "fi/gun/fi40LL.png" ],
"back_images": null
},
"updated": {
"front_images": "fi/gun/fi40L.png"
}
},
"7409": {
"expected": {
"name": "76 ItK/28 B(s)",
"front_images": "fiAA76L.png",
"back_images": [ "fiAA76L.png", "fiAA76LB.png" ]
},
"updated": {
"back_images": "fiAA76LB.png"
}
}
}

@ -4,31 +4,36 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "14\u2020",
"notes": [ "A", "Q\u2020<sup>1</sup>" ]
"notes": [ "A", "Q\u2020<sup>1</sup>" ],
"_gpid_": 2292
},
{ "name": "T-13 II(b)",
"no_radio": "\u00ae",
"CS#": "4:brewup\u2020",
"note_number": "15\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2294
},
{ "name": "T-13 III(b)",
"no_radio": "\u00ae",
"CS#": "4:brewup",
"note_number": "16",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2296
},
{ "name": "T-15(b)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "17",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2298
},
{ "name": "ACG1(f)",
"no_radio": "\u00ae",
"CS#": "3:brewup",
"note_number": "18\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2300
}
]

@ -4,29 +4,34 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "31",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": [ 2231, 2329 ]
},
{ "name": "L3/35(i)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "31\u2020",
"notes": [ "A", "D" ]
"notes": [ "A", "D" ],
"_gpid_": [ 2233, 2331 ]
},
{ "name": "L6/40(i)",
"CS#": 2,
"note_number": "31\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": [ 2235, 2333 ]
},
{ "name": "M13/40(i)",
"CS#": 4,
"note_number": "31\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": [ 2237, 2335 ]
},
{ "name": "FT-17M(f)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "32\u2020",
"notes": [ "A", "F" ]
"notes": [ "A", "F" ],
"_gpid_": 2239
},
{ "name": "FT-17C(f)",
"no_radio": "\u00ae",
@ -34,46 +39,55 @@
"no_if": true,
"capabilities2": { "AP": 9 },
"note_number": "32\u2020",
"notes": [ "A", "F" ]
"notes": [ "A", "F" ],
"_gpid_": 2241
},
{ "name": "R-35(f)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "33\u2020",
"notes": [ "A", "E\u2020<sup>1</sup>", "F" ]
"notes": [ "A", "E\u2020<sup>1</sup>", "F" ],
"_gpid_": 2243
},
{ "name": "M3A1(a)",
"CS#": 4,
"note_number": "34\u2020",
"notes": [ "A", "V" ]
"notes": [ "A", "V" ],
"_gpid_": 2245
},
{ "name": "C-K P17(f)",
"cs#": 4,
"note_number": "35",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2247
},
{ "name": "C-K P19(f)",
"cs#": 5,
"note_number": "35\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2249
},
{ "name": "VCL Utility B(b)",
"cs#": 2,
"note_number": "36\u2020",
"notes": [ "A", "H\u2020<sup>1</sup>", "V" ]
"notes": [ "A", "H\u2020<sup>1</sup>", "V" ],
"_gpid_": 2251
},
{ "name": "Light Truck",
"cs#": 4,
"note_number": "37"
"note_number": "37",
"_gpid_": 2253
},
{ "name": "Medium Truck",
"cs#": 5,
"note_number": "37"
"note_number": "37",
"_gpid_": 2255
},
{ "name": "Heavy Truck",
"cs#": 7,
"note_number": "37"
"note_number": "37",
"_gpid_": 2257
}
]

@ -3,7 +3,8 @@
{ "name": "Nimbus",
"CS#": [ null, "\u2020" ],
"capabilities": [ "M8\u2020" ],
"note_number": "24\u2020"
"note_number": "24\u2020",
"_gpid_": 2314
}
]

@ -4,45 +4,52 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "25\u2020",
"notes": [ "A", "V" ]
"notes": [ "A", "V" ],
"_gpid_": 2315
},
{ "name": "CTLS-4(a)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "26\u2020",
"notes": [ "A", "V" ]
"notes": [ "A", "V" ],
"_gpid_": 2317
},
{ "name": "M36",
"no_radio": "\u00ae",
"CS#": 5,
"capabilities2": { "HE": 10 },
"note_number": "27",
"notes": [ "<s>V</s>" ]
"notes": [ "<s>V</s>" ],
"_gpid_": 2319
},
{ "name": "M38",
"no_radio": "\u00ae",
"CS#": 5,
"capabilities2": { "HE": 10 },
"note_number": "27",
"notes": [ "<s>V</s>" ]
"notes": [ "<s>V</s>" ],
"_gpid_": 2321
},
{ "name": "M39",
"no_radio": "\u00ae",
"CS#": 6,
"capabilities2": { "HE": 10 },
"note_number": "28",
"notes": [ "<s>V</s>" ]
"notes": [ "<s>V</s>" ],
"_gpid_": 2323
},
{ "name": "Marmon-Herrington III(b)",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "29\u2020",
"notes": [ "A", "V" ]
"notes": [ "A", "V" ],
"_gpid_": 2325
},
{ "name": "Jeep(a)",
"cs#": "2\u2020",
"note_number": "30\u2020",
"notes": [ "A", "V" ]
"notes": [ "A", "V" ],
"_gpid_": [ 2327, 2328 ]
}
]

@ -4,90 +4,107 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 2259
},
{ "name": "TKS(L)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 2261
},
{ "name": "Vickers Edw(b)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "2\u2020",
"notes": [ "A", "K\u2020<sup>1</sup>" ]
"notes": [ "A", "K\u2020<sup>1</sup>" ],
"_gpid_": 2263
},
{ "name": "Vickers Ejw(b)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "2",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2265
},
{ "name": "7TPdw",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "3\u2020",
"notes": [ "K\u2020<sup>1</sup>" ]
"notes": [ "K\u2020<sup>1</sup>" ],
"_gpid_": 2267
},
{ "name": "7TPjw",
"CS#": 3,
"note_number": "3"
"note_number": "3",
"_gpid_": 2269
},
{ "name": "H35(f)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "4",
"notes": [ "A", "E\u2020", "F" ]
"notes": [ "A", "E\u2020", "F" ],
"_gpid_": 2271
},
{ "name": "Peugeot 1918(f)",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "5",
"notes": [ "A", "D", "G\u2020" ]
"notes": [ "A", "D", "G\u2020" ],
"_gpid_": 2273
},
{ "name": "wz.29 \"Ursus\"",
"no_radio": "\u00ae",
"CS#": 5,
"note_number": "6\u2020"
"note_number": "6\u2020",
"_gpid_": 2275
},
{ "name": "wz.34-I",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "7"
"note_number": "7",
"_gpid_": 2277
},
{ "name": "wz.34-II",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "7"
"note_number": "7",
"_gpid_": 2279
},
{ "name": "De Dion-Bouton(f)",
"CS#": 7,
"note_number": "8\u2020",
"notes": [ "A", "Q\u2020<sup>1</sup>", "AA\u2020<sup>2</sup>" ]
"notes": [ "A", "Q\u2020<sup>1</sup>", "AA\u2020<sup>2</sup>" ],
"_gpid_": 2281
},
{ "name": "PF 621L SPAA",
"CS#": 5,
"note_number": "9\u2020",
"notes": [ "G\u2020<sup>1</sup>", "Q\u2020<sup>2</sup>", "AA\u2020<sup>3</sup>" ]
"notes": [ "G\u2020<sup>1</sup>", "Q\u2020<sup>2</sup>", "AA\u2020<sup>3</sup>" ],
"_gpid_": 2283
},
{ "name": "302T",
"CS#": 3,
"note_number": "10\u2020"
"note_number": "10\u2020",
"_gpid_": 2285
},
{ "name": "C2P",
"cs#": 4,
"note_number": "11"
"note_number": "11",
"_gpid_": 2287
},
{ "name": "C4P",
"cs#": 5,
"note_number": "12"
"note_number": "12",
"_gpid_": 2289
},
{ "name": "\"Taczanka\"",
"cs#": 3,
"note_number": "13\u2020",
"notes": [ "Q\u2020<sup>1</sup>" ]
"notes": [ "Q\u2020<sup>1</sup>" ],
"_gpid_": 2291
}
]

@ -4,35 +4,41 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "19",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 2302
},
{ "name": "M3A1(a)",
"CS#": 4,
"capabilities2": { "C": "3\u2020" },
"note_number": "20\u2020",
"notes": [ "A", "B", "C", "L" ]
"notes": [ "A", "B", "C", "L" ],
"_gpid_": 2304
},
{ "name": "M3A3(a)",
"CS#": 4,
"capabilities2": { "C": "3\u2020", "sD": 3 },
"note_number": "20\u2020",
"notes": [ "A", "B", "C", "L" ]
"notes": [ "A", "B", "C", "L" ],
"_gpid_": 2306
},
{ "name": "M3(a) PaK 40",
"CS#": 2,
"note_number": "21\u2020",
"notes": [ "A", "H\u2020<sup>1</sup>", "L" ]
"notes": [ "A", "H\u2020<sup>1</sup>", "L" ],
"_gpid_": 2308
},
{ "name": "M3(a) FlaK 38",
"CS#": 2,
"note_number": "22\u2020",
"notes": [ "A", "H\u2020<sup>1</sup>", "L", "AA\u2020<sup>2</sup>" ]
"notes": [ "A", "H\u2020<sup>1</sup>", "L", "AA\u2020<sup>2</sup>" ],
"_gpid_": 2310
},
{ "name": "AEC II(b)",
"CS#": 4,
"capabilities2": { "HE": 5, "D": 4, "sM": 8 },
"note_number": "23",
"notes": [ "A", "G\u2020", "L" ]
"notes": [ "A", "G\u2020", "L" ],
"_gpid_": 2312
}
]

@ -4,357 +4,420 @@
"CS#": 4,
"capabilities2": { "C": [ [10,"P"], "\u2020<sup>1</sup>" ] },
"note_number": "1",
"notes": [ "B\u2020", "C\u2020<sup>1</sup>", "P" ]
"notes": [ "B\u2020", "C\u2020<sup>1</sup>", "P" ],
"_gpid_": 907
},
{ "name": "M3",
"CS#": 4,
"capabilities2": { "C": [ [7,"A2+"], "\u2020<sup>2</sup>" ] },
"note_number": "2\u2020",
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>", "N" ]
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>", "N" ],
"_gpid_": 909
},
{ "name": "M3A1",
"CS#": 4,
"capabilities": [ "C7\u2020<sup>2</sup>" ],
"note_number": "3\u2020",
"notes": [ "C\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G", "N" ]
"notes": [ "C\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G", "N" ],
"_gpid_": 5723
},
{ "name": "M3A1 Satan",
"CS#": 4,
"note_number": "4",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 913
},
{ "name": "M5A1",
"CS#": 4,
"capabilities": [ "C7\u2020<sup>2</sup>" ],
"note_number": "5\u2020",
"notes": [ "C\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G", "N", "Y" ]
"notes": [ "C\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G", "N", "Y" ],
"_gpid_": 5728
},
{ "name": "M24",
"CS#": 5,
"capabilities2": { "s": 5, "WP": 7, "sM": 8 },
"note_number": "6\u2020",
"notes": [ "G", "<s>P</s>", "R\u2020<sup>1</sup>" ]
"notes": [ "G", "<s>P</s>", "R\u2020<sup>1</sup>" ],
"_gpid_": 917
},
{ "name": "M3",
"CS#": 7,
"capabilities": [ "C5\u2020<sup>2</sup>" ],
"note_number": "7\u2020",
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>", "G", "N" ]
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>", "G", "N" ],
"_gpid_": 919
},
{ "name": "M4",
"CS#": "5:brewup",
"capabilities2": { "s": [ [5,"J4+"] ], "WP": [ [7,"J4+"], "\u2020<sup>3</sup>" ], "sM": [ [5,"4+"] ] },
"note_number": "8\u2020",
"notes": [ "F\u2020<sup>2</sup>", "G", "R\u2020<sup>1</sup>", "Y", "BB\u2020<sup>3</sup>" ]
"notes": [ "F\u2020<sup>2</sup>", "G", "R\u2020<sup>1</sup>", "Y", "BB\u2020<sup>3</sup>" ],
"_gpid_": 5733
},
{ "name": "M4A1",
"CS#": "5:brewup",
"capabilities2": { "s": [ [5,"J4+"] ], "WP": [ [7,"J4+"], "\u2020<sup>3</sup>" ], "sM": [ [5,"4+"] ] },
"note_number": "9\u2020",
"notes": [ "F\u2020<sup>2</sup>", "G", "N", "R\u2020<sup>1</sup>", "Y", "BB\u2020<sup>3</sup>" ]
"notes": [ "F\u2020<sup>2</sup>", "G", "N", "R\u2020<sup>1</sup>", "Y", "BB\u2020<sup>3</sup>" ],
"_gpid_": 5738
},
{ "name": "M4A2",
"CS#": "5:brewup",
"capabilities2": { "s": [ [5,"J4+"] ], "WP": [ [7,"J4+"], "\u2020<sup>2</sup>" ], "sM": [ [5,"4+"] ] },
"note_number": "10",
"notes": [ "F\u2020<sup>1</sup>", "G", "P", "R\u2020", "BB\u2020<sup>2</sup>" ]
"notes": [ "F\u2020<sup>1</sup>", "G", "P", "R\u2020", "BB\u2020<sup>2</sup>" ],
"_gpid_": 5743
},
{ "name": "M4A2 (L)",
"CS#": "6:brewup",
"capabilities2": { "s": 5, "WP": 7, "sM": 8 },
"note_number": "11",
"notes": [ "F\u2020<sup>1</sup>", "G", "P", "R\u2020" ]
"notes": [ "F\u2020<sup>1</sup>", "G", "P", "R\u2020" ],
"_gpid_": 5748
},
{ "name": "M4A3",
"CS#": "5:brewup",
"capabilities2": { "s": [ [5,"J4+"] ], "WP": [ [7,"J4+"], "\u2020<sup>3</sup>" ], "sM": [ [4,"4+"] ] },
"note_number": "12\u2020",
"notes": [ "F\u2020<sup>2</sup>", "G", "R\u2020<sup>1</sup>", "Y", "BB\u2020<sup>3</sup>" ]
"notes": [ "F\u2020<sup>2</sup>", "G", "R\u2020<sup>1</sup>", "Y", "BB\u2020<sup>3</sup>" ],
"_gpid_": 5753
},
{ "name": "M4A3(75)W",
"CS#": 6,
"capabilities2": { "s": 5, "WP": 7, "sM": 8 },
"note_number": "13\u2020",
"notes": [ "F\u2020<sup>2</sup>", "G", "R\u2020<sup>1</sup>", "Y" ]
"notes": [ "F\u2020<sup>2</sup>", "G", "R\u2020<sup>1</sup>", "Y" ],
"_gpid_": 5758
},
{ "name": "M4A3E2",
"CS#": 6,
"capabilities2": { "s": 5, "WP": 7, "sM": 8 },
"note_number": "14",
"notes": [ "F\u2020<sup>1</sup>", "G", "<s>P</s>", "R\u2020" ]
"notes": [ "F\u2020<sup>1</sup>", "G", "<s>P</s>", "R\u2020" ],
"_gpid_": 5763
},
{ "name": "M4A3E2 (L)",
"CS#": 6,
"capabilities2": { "A": [ [4,4], [5,5] ], "s": [ [5,5] ], "sM": 8 },
"note_number": "14\u2020",
"notes": [ "F\u2020<sup>1</sup>", "G", "<s>P</s>" ]
"notes": [ "F\u2020<sup>1</sup>", "G", "<s>P</s>" ],
"_gpid_": 5768
},
{ "name": "M4A1(76)W",
"CS#": 6,
"capabilities2": { "A": [ [4,"A4"], [5,5], "\u2020<sup>2</sup>" ], "s": [ [5,5] ], "sM": 8 },
"note_number": "15\u2020",
"notes": [ "A\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G", "<s>P</s>", "Y" ]
"notes": [ "A\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G", "<s>P</s>", "Y" ],
"_gpid_": 5773
},
{ "name": "M4A3(76)W",
"CS#": 6,
"capabilities2": { "A": [ [4,"A4"], [5,5], "\u2020<sup>2</sup>" ], "s": [ [5,5] ], "sM": 8 },
"note_number": "16\u2020",
"notes": [ "A\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G", "<s>P</s>", "Y" ]
"notes": [ "A\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G", "<s>P</s>", "Y" ],
"_gpid_": 5778
},
{ "name": "M4(105)",
"CS#": 6,
"capabilities2": { "H": 9, "C": [ [7,"P"], "\u2020<sup>1</sup>" ], "s": 7, "WP": 9, "sM": 8 },
"note_number": "17\u2020",
"notes": [ "C\u2020<sup>1</sup>", "Y" ]
"notes": [ "C\u2020<sup>1</sup>", "Y" ],
"_gpid_": 941
},
{ "name": "M4A3(105)",
"CS#": 6,
"capabilities2": { "H": 9, "C": [ [7,"P"], "\u2020<sup>1</sup>" ], "s": 7, "WP": 9, "sM": 8 },
"note_number": "17\u2020",
"notes": [ "C\u2020<sup>1</sup>", "Y" ]
"notes": [ "C\u2020<sup>1</sup>", "Y" ],
"_gpid_": 943
},
{ "name": "M4 Tankdozer",
"CS#": "5:brewup",
"capabilities2": { "s": 5, "WP": 7, "sM": 6 },
"note_number": "18\u2020",
"notes": [ "G", "R\u2020<sup>1</sup>" ]
"notes": [ "G", "R\u2020<sup>1</sup>" ],
"_gpid_": 945
},
{ "name": "T1E3",
"CS#": "5:brewup",
"capabilities2": { "s": 5, "WP": 7, "sM": 6 },
"note_number": "19\u2020",
"notes": [ "G", "<s>P</s>", "R\u2020<sup>1</sup>" ]
"notes": [ "G", "<s>P</s>", "R\u2020<sup>1</sup>" ],
"_gpid_": 947
},
{ "name": "Sherman Crab",
"CS#": "5:brewup",
"capabilities2": { "s": [ [5,"J4+"] ], "WP": [ [7,"J4+"], "\u2020<sup>2</sup>" ], "sM": 4 },
"note_number": "20\u2020",
"notes": [ "G", "R\u2020<sup>1</sup>", "BB\u2020<sup>2</sup>" ]
"notes": [ "G", "R\u2020<sup>1</sup>", "BB\u2020<sup>2</sup>" ],
"_gpid_": 949
},
{ "name": "POA-CWS-H1",
"CS#": 6,
"capabilities2": { "sM": 8 },
"note_number": "21\u2020",
"notes": [ "P" ]
"notes": [ "P" ],
"_gpid_": 951
},
{ "name": "M26",
"CS#": 6,
"capabilities2": { "A": 7 },
"note_number": "22\u2020",
"notes": [ "<s>P</s>" ]
"notes": [ "<s>P</s>" ],
"_gpid_": 955
},
{ "name": "M10 GMC",
"CS#": 7,
"capabilities2": { "A": [ [5,"A4E"], [6,"5E"], "\u2020<sup>1</sup>" ], "s": [ [5,5] ], "sP": 5 },
"note_number": "23\u2020",
"notes": [ "A\u2020<sup>1</sup>", "N", "Y" ]
"notes": [ "A\u2020<sup>1</sup>", "N", "Y" ],
"_gpid_": 957
},
{ "name": "M18 GMC",
"CS#": 6,
"capabilities2": { "A": [ [5,"4E"], [6,"5E"], "\u2020<sup>1</sup>" ], "s": [ [5,5] ], "sP": 5 },
"note_number": "24\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 959
},
{ "name": "M36 GMC",
"CS#": 7,
"capabilities2": { "A": [ [5,5] ], "sP": 5 },
"note_number": "25\u2020",
"notes": [ "<s>P</s>" ]
"notes": [ "<s>P</s>" ],
"_gpid_": 961
},
{ "name": "M36B1 GMC",
"CS#": 7,
"capabilities2": { "A": 5, "sP": 5 },
"note_number": "26",
"notes": [ "<s>P</s>" ]
"notes": [ "<s>P</s>" ],
"_gpid_": 963
},
{ "name": "M2",
"CS#": 4,
"note_number": "27\u2020<sup>1</sup>",
"notes": [ "E\u2020", "H", "I\u2020", "N" ]
"notes": [ "E\u2020", "H", "I\u2020", "N" ],
"_gpid_": 965
},
{ "name": "M3",
"CS#": 5,
"note_number": "28\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 967
},
{ "name": "M3A1",
"CS#": 5,
"note_number": "29\u2020<sup>1</sup>",
"notes": [ "E\u2020", "H", "I\u2020", "Z" ]
"notes": [ "E\u2020", "H", "I\u2020", "Z" ],
"_gpid_": 969
},
{ "name": "M3(MMG)",
"CS#": 5,
"note_number": "30\u2020",
"notes": [ "E\u2020", "H", "N", "<s>P</s>" ]
"notes": [ "E\u2020", "H", "N", "<s>P</s>" ],
"_gpid_": 971
},
{ "name": "M3(HMG)",
"CS#": 5,
"note_number": "30\u2020",
"notes": [ "E\u2020", "H", "N", "<s>P</s>" ]
"notes": [ "E\u2020", "H", "N", "<s>P</s>" ],
"_gpid_": 973
},
{ "name": "M4 MC",
"CS#": "4:brewup",
"capabilities2": { "WP": 8 },
"note_number": "31\u2020",
"notes": [ "J\u2020", "M\u2020<sup>1</sup>", "N", "O\u2020<sup>2</sup>", "<s>P</s>" ]
"notes": [ "J\u2020", "M\u2020<sup>1</sup>", "N", "O\u2020<sup>2</sup>", "<s>P</s>" ],
"_gpid_": 975
},
{ "name": "M4A1 MC",
"CS#": "4:brewup",
"capabilities2": { "WP": 8 },
"note_number": "32\u2020",
"notes": [ "J\u2020<sup>1</sup>", "M\u2020<sup>2</sup>", "O\u2020<sup>3</sup>" ]
"notes": [ "J\u2020<sup>1</sup>", "M\u2020<sup>2</sup>", "O\u2020<sup>3</sup>" ],
"_gpid_": 977
},
{ "name": "M21 MC",
"CS#": "4:brewup",
"capabilities2": { "WP": 8 },
"note_number": "33",
"notes": [ "M", "O\u2020", "<s>P</s>" ]
"notes": [ "M", "O\u2020", "<s>P</s>" ],
"_gpid_": 979
},
{ "name": "M3 GMC",
"CS#": 4,
"note_number": "34\u2020",
"notes": [ "N", "U" ]
"notes": [ "N", "U" ],
"_gpid_": [ 981, 983 ]
},
{ "name": "T30 HMC",
"CS#": 4,
"capabilities2": { "H": 5, "AP": 7, "WP": 9 },
"note_number": "35\u2020<sup>1</sup>",
"notes": [ "K\u2020", "N", "O\u2020", "<s>P</s>", "U" ]
"notes": [ "K\u2020", "N", "O\u2020", "<s>P</s>", "U" ],
"_gpid_": 985
},
{ "name": "T19 HMC",
"CS#": 4,
"capabilities2": { "H": 5, "s": 7, "WP": 8 },
"note_number": "36\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "O\u2020<sup>1</sup>", "<s>P</s>" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "O\u2020<sup>1</sup>", "<s>P</s>" ],
"_gpid_": 987
},
{ "name": "M15A1 MGMC",
"CS#": 4,
"note_number": "37\u2020",
"notes": [ "N", "V\u2020", "AA\u2020<sup>1</sup>" ]
"notes": [ "N", "V\u2020", "AA\u2020<sup>1</sup>" ],
"_gpid_": 990
},
{ "name": "M16 MGMC",
"CS#": 4,
"note_number": "38\u2020",
"notes": [ "V\u2020", "AA\u2020<sup>1</sup>" ]
"notes": [ "V\u2020", "AA\u2020<sup>1</sup>" ],
"_gpid_": 992
},
{ "name": "M3A1",
"CS#": 4,
"note_number": "39\u2020<sup>1</sup>",
"notes": [ "E\u2020", "H", "I\u2020", "N" ]
"notes": [ "E\u2020", "H", "I\u2020", "N" ],
"_gpid_": 996
},
{ "name": "M20",
"CS#": 4,
"capabilities2": { "sP": 5 },
"note_number": "40\u2020",
"notes": [ "D\u2020<sup>3</sup>", "O\u2020<sup>2</sup>", "W\u2020<sup>1</sup>", "Z" ]
"notes": [ "D\u2020<sup>3</sup>", "O\u2020<sup>2</sup>", "W\u2020<sup>1</sup>", "Z" ],
"_gpid_": 998
},
{ "name": "T8",
"CS#": 5,
"note_number": "41\u2020",
"notes": [ "O\u2020<sup>1</sup>", "<s>P</s>" ]
"notes": [ "O\u2020<sup>1</sup>", "<s>P</s>" ],
"_gpid_": 1000
},
{ "name": "M8",
"CS#": 4,
"capabilities": [ "C7\u2020<sup>2</sup>" ],
"capabilities2": { "sP": 5 },
"note_number": "42\u2020",
"notes": [ "C\u2020<sup>2</sup>", "G", "W\u2020<sup>1</sup>" ]
"notes": [ "C\u2020<sup>2</sup>", "G", "W\u2020<sup>1</sup>" ],
"_gpid_": 1002
},
{ "name": "M8 HMC",
"CS#": 5,
"capabilities2": { "H": 9, "C": [ [4,"4+"], "\u2020<sup>1</sup>" ], "WP": 9 },
"note_number": "43\u2020",
"notes": [ "C\u2020<sup>1</sup>", "Y" ]
"notes": [ "C\u2020<sup>1</sup>", "Y" ],
"_gpid_": 1004
},
{ "name": "M7 HMC",
"CS#": 7,
"capabilities2": { "H": 7, "C": [ [7,"P"], "\u2020<sup>1</sup>" ], "s": 7, "WP": 8 },
"note_number": "44\u2020",
"notes": [ "C\u2020<sup>1</sup>", "N" ]
"notes": [ "C\u2020<sup>1</sup>", "N" ],
"_gpid_": 1006
},
{ "name": "M12 GMC",
"CS#": 9,
"no_if": true,
"capabilities2": { "AP": 6, "WP": 8 },
"note_number": "45\u2020",
"notes": [ "<s>P</s>" ]
"notes": [ "<s>P</s>" ],
"_gpid_": 1011
},
{ "name": "LVT(A)1",
"CS#": 6,
"capabilities2": { "C": [ [10,"P"], "\u2020<sup>2</sup>" ] },
"note_number": "46\u2020<sup>1</sup>",
"notes": [ "C\u2020<sup>2</sup>", "G", "H", "P", "T\u2020" ]
"notes": [ "C\u2020<sup>2</sup>", "G", "H", "P", "T\u2020" ],
"_gpid_": 1014
},
{ "name": "LVT(A)4",
"CS#": 6,
"capabilities2": { "H": 8, "C": [ [7,"P"], "\u2020<sup>3</sup>" ], "WP": 9 },
"note_number": "47\u2020",
"notes": [ "C\u2020<sup>3</sup>", "P", "T\u2020<sup>1</sup>", "X\u2020<sup>2</sup>" ]
"notes": [ "C\u2020<sup>3</sup>", "P", "T\u2020<sup>1</sup>", "X\u2020<sup>2</sup>" ],
"_gpid_": [ 1016, 1018 ]
},
{ "name": "M4 DD",
"CS#": "6:brewup",
"capabilities2": { "s": 5, "WP": 7, "sM": 5 },
"note_number": "48",
"notes": [ "G", "<s>P</s>", "R\u2020" ]
"notes": [ "G", "<s>P</s>", "R\u2020" ],
"_gpid_": 1020
},
{ "name": "LVT2",
"CS#": 6,
"note_number": "49\u2020",
"notes": [ "D\u2020<sup>3</sup>", "H", "Q\u2020<sup>2</sup>", "T\u2020<sup>1</sup>" ]
"notes": [ "D\u2020<sup>3</sup>", "H", "Q\u2020<sup>2</sup>", "T\u2020<sup>1</sup>" ],
"_gpid_": 1022
},
{ "name": "LVT2(m)",
"CS#": 7,
"note_number": "49.1\u2020",
"notes": [ "D\u2020<sup>3</sup>", "H", "P", "Q\u2020<sup>2</sup>", "T\u2020<sup>1</sup>" ]
"notes": [ "D\u2020<sup>3</sup>", "H", "P", "Q\u2020<sup>2</sup>", "T\u2020<sup>1</sup>" ],
"_gpid_": 1024
},
{ "name": "LVT(A)2",
"CS#": 7,
"note_number": "50\u2020",
"notes": [ "D\u2020<sup>3</sup>", "H", "Q\u2020<sup>2</sup>", "T\u2020<sup>1</sup>" ]
"notes": [ "D\u2020<sup>3</sup>", "H", "Q\u2020<sup>2</sup>", "T\u2020<sup>1</sup>" ],
"_gpid_": 1026
},
{ "name": "LVT4",
"CS#": 7,
"note_number": "51\u2020",
"notes": [ "D", "H", "T\u2020<sup>1</sup>", "X\u2020<sup>2</sup>" ]
"notes": [ "D", "H", "T\u2020<sup>1</sup>", "X\u2020<sup>2</sup>" ],
"_gpid_": [ 1028, 1030 ]
},
{ "name": "M4 hst",
"CS#": 6,
"note_number": "51.1\u2020"
"note_number": "51.1\u2020",
"_gpid_": 1050
},
{ "name": "DUKW",
"cs#": "7\u2020<sup>1</sup>",
"note_number": "52\u2020",
"notes": [ "D\u2020<sup>3</sup>", "O\u2020<sup>2</sup>", "CC\u2020<sup>1</sup>" ]
"notes": [ "D\u2020<sup>3</sup>", "O\u2020<sup>2</sup>", "CC\u2020<sup>1</sup>" ],
"_gpid_": 1032
},
{ "name": "\u00bc-Ton Jeep GPA",
"cs#": 2,
"note_number": "53\u2020",
"notes": [ "L\u2020<sup>1</sup>" ]
"notes": [ "L\u2020<sup>1</sup>" ],
"_gpid_": 1036
},
{ "name": "\u00bc-Ton Jeep",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "54\u2020",
"notes": [ "L\u2020<sup>2</sup>", "N", "O\u2020<sup>3</sup>", "CC\u2020<sup>1</sup>" ]
"notes": [ "L\u2020<sup>2</sup>", "N", "O\u2020<sup>3</sup>", "CC\u2020<sup>1</sup>" ],
"_gpid_": [ 1039, 1040, 1041 ]
},
{ "name": "\u00be-Ton",
"cs#": 4,
"note_number": "55\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 1042
},
{ "name": "1\u00bd-Ton",
"cs#": 6,
"note_number": "56\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 1044
},
{ "name": "2\u00bd-Ton",
"cs#": 7,
"note_number": "57\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 1046
},
{ "name": "7\u00bd-Ton",
"cs#": 7,
"note_number": "58\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 1048
}
]

@ -4,7 +4,8 @@
"no_radio": "\u00ae",
"CS#": 3,
"capabilities2": { "C": "5\u2020" },
"note_number": "28\u2020"
"note_number": "28\u2020",
"_gpid_": 3904
}
]

@ -4,191 +4,224 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "29\u2020",
"notes": [ "K\u2020<sup>1</sup>", "E", "F", "G\u2020<sup>2</sup>", "H", "C", "B" ]
"notes": [ "K\u2020<sup>1</sup>", "E", "F", "G\u2020<sup>2</sup>", "H", "C", "B" ],
"_gpid_": 3787
},
{ "name": "FT-17M(f)",
"no_radio": "\u00ae",
"CS#": 2,
"no_if": true,
"note_number": "30\u2020",
"notes": [ "D", "R", "C" ]
"notes": [ "D", "R", "C" ],
"_gpid_": 3789
},
{ "name": "FT-17C(f)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 9 },
"note_number": "30\u2020",
"notes": [ "D", "R", "C" ]
"notes": [ "D", "R", "C" ],
"_gpid_": 3791
},
{ "name": "PzKpfw IB(g)",
"CS#": 2,
"capabilities2": { "sD": 6 },
"note_number": "31\u2020",
"notes": [ "K\u2020<sup>1</sup>", "E", "H", "C" ]
"notes": [ "K\u2020<sup>1</sup>", "E", "H", "C" ],
"_gpid_": 3827
},
{ "name": "R-35(f)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "32\u2020",
"notes": [ "A\u2020<sup>1</sup>", "D", "E", "R", "H", "B" ]
"notes": [ "A\u2020<sup>1</sup>", "D", "E", "R", "H", "B" ],
"_gpid_": [ 3795, 3906 ]
},
{ "name": "H39(f)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "33\u2020",
"notes": [ "A\u2020<sup>1</sup>", "D", "E", "H", "C", "B" ]
"notes": [ "A\u2020<sup>1</sup>", "D", "E", "H", "C", "B" ],
"_gpid_": 3793
},
{ "name": "LT vz 35(g)",
"CS#": 4,
"capabilities2": { "sD": 5 },
"note_number": "34\u2020",
"notes": [ "E", "R", "S", "B" ]
"notes": [ "E", "R", "S", "B" ],
"_gpid_": 3825
},
{ "name": "LT vz 38(t)A",
"CS#": 4,
"capabilities2": { "A": [ [3,1], [4,2], [3,3] ], "sD": 6 },
"note_number": "35\u2020",
"notes": [ "E", "R", "H", "S" ]
"notes": [ "E", "R", "H", "S" ],
"_gpid_": 3799
},
{ "name": "LT vz 38(t)E",
"CS#": 4,
"capabilities2": { "A": [ [4,2], [3,3] ], "sD": 7 },
"note_number": "35\u2020",
"notes": [ "E", "H", "S", "B" ]
"notes": [ "E", "H", "S", "B" ],
"_gpid_": 3801
},
{ "name": "S-35(f)",
"CS#": 4,
"note_number": "36\u2020",
"notes": [ "A\u2020<sup>1</sup>", "D", "E", "H", "S" ]
"notes": [ "A\u2020<sup>1</sup>", "D", "E", "H", "S" ],
"_gpid_": 3797
},
{ "name": "PzKpfw IIIL(g)",
"CS#": 5,
"capabilities2": { "A": [ [5,2], [4,3], [3,4] ], "sD": 5 },
"note_number": "37\u2020",
"notes": [ "E", "O\u2020<sup>1</sup>", "Q", "R", "H", "C" ]
"notes": [ "E", "O\u2020<sup>1</sup>", "Q", "R", "H", "C" ],
"_gpid_": [ 3829, 3831 ]
},
{ "name": "PzKpfw IIIN(g)",
"CS#": 5,
"capabilities2": { "H": [ [8,"3+"] ], "s": 8, "sD": 7 },
"note_number": "38\u2020",
"notes": [ "E", "O\u2020<sup>1</sup>", "Q", "R", "S" ]
"notes": [ "E", "O\u2020<sup>1</sup>", "Q", "R", "S" ],
"_gpid_": [ 3833, 3835 ]
},
{ "name": "PzKpfw IVD(g)",
"CS#": 5,
"capabilities2": { "AP": 7, "H": [ [5,"3+"] ], "s": 8, "sD": 7 },
"note_number": "39\u2020",
"notes": [ "E", "Q", "R" ]
"notes": [ "E", "Q", "R" ],
"_gpid_": 3837
},
{ "name": "PzKpfw IVF1(g)",
"CS#": 6,
"capabilities2": { "AP": 7, "H": [ [5,"3+"] ], "s": 8, "sD": 7 },
"note_number": "39\u2020",
"notes": [ "E", "Q", "R", "H", "B" ]
"notes": [ "E", "Q", "R", "H", "B" ],
"_gpid_": 3839
},
{ "name": "PzKpfw IVH(g)",
"CS#": 6,
"capabilities2": { "A": [ [4,2], [3,3] ], "s": 7, "sD": 5 },
"note_number": "39\u2020",
"notes": [ "E", "O\u2020<sup>1</sup>", "Q", "R", "H", "B" ]
"notes": [ "E", "O\u2020<sup>1</sup>", "Q", "R", "H", "B" ],
"_gpid_": [ 3841, 3843 ]
},
{ "name": "StuG IIIG(g)",
"CS#": 4,
"capabilities2": { "A": [ [3,4] ], "s": 8, "sD": 7 },
"note_number": "40\u2020",
"notes": [ "E", "Q", "R", "H", "B" ]
"notes": [ "E", "Q", "R", "H", "B" ],
"_gpid_": 3845
},
{ "name": "JgdPz 38(t)",
"CS#": 4,
"capabilities2": { "A": [ [3,4] ], "HE": 7 },
"note_number": "41\u2020",
"notes": [ "E", "H", "B" ]
"notes": [ "E", "H", "B" ],
"_gpid_": 3803
},
{ "name": "SPW 250/1(g)",
"CS#": 4,
"note_number": "42\u2020",
"notes": [ "E", "R" ]
"notes": [ "E", "R" ],
"_gpid_": 3847
},
{ "name": "SPW 251/1(g)",
"CS#": 5,
"note_number": "42\u2020",
"notes": [ "E", "R", "C" ]
"notes": [ "E", "R", "C" ],
"_gpid_": 3849
},
{ "name": "SPW 251/9(g)",
"CS#": "4:brewup",
"capabilities2": { "H": 5, "s": 8 },
"note_number": "42\u2020",
"notes": [ "E", "R" ]
"notes": [ "E", "R" ],
"_gpid_": 3851
},
{ "name": "OA vz 30(t)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "43\u2020",
"notes": [ "E", "R", "S" ]
"notes": [ "E", "R", "S" ],
"_gpid_": 3805
},
{ "name": "AB 41(i)",
"CS#": 4,
"note_number": "44\u2020",
"notes": [ "E", "R", "C" ]
"notes": [ "E", "R", "C" ],
"_gpid_": 3807
},
{ "name": "PSW 222(g)",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "45\u2020",
"notes": [ "P\u2020<sup>1</sup>", "E", "M\u2020<sup>2</sup>", "R", "B" ]
"notes": [ "P\u2020<sup>1</sup>", "E", "M\u2020<sup>2</sup>", "R", "B" ],
"_gpid_": 3853
},
{ "name": "PSW 222(L)(g)",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "45\u2020",
"notes": [ "P\u2020<sup>1</sup>", "E", "M\u2020<sup>2</sup>", "R", "B" ]
"notes": [ "P\u2020<sup>1</sup>", "E", "M\u2020<sup>2</sup>", "R", "B" ],
"_gpid_": 3855
},
{ "name": "PSW 223(g)",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "46\u2020",
"notes": [ "E", "M\u2020<sup>1</sup>", "P\u2020<sup>2</sup>", "R", "B" ]
"notes": [ "E", "M\u2020<sup>1</sup>", "P\u2020<sup>2</sup>", "R", "B" ],
"_gpid_": 3857
},
{ "name": "Komsomolet(r)",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "47\u2020",
"notes": [ "E", "F", "I\u2020<sup>1</sup>", "J", "R", "H", "S", "C", "B" ]
"notes": [ "E", "F", "I\u2020<sup>1</sup>", "J", "R", "H", "S", "C", "B" ],
"_gpid_": [ 3809, 3811 ]
},
{ "name": "RSO(g)",
"cs#": 5,
"note_number": "48",
"notes": [ "S", "B" ]
"notes": [ "S", "B" ],
"_gpid_": 3859
},
{ "name": "Light Tractor",
"cs#": 4,
"note_number": "49",
"notes": [ "R", "H", "S", "C", "B" ]
"notes": [ "R", "H", "S", "C", "B" ],
"_gpid_": 3813
},
{ "name": "Medium Tractor",
"cs#": 5,
"note_number": "49",
"notes": [ "R", "H", "S", "C", "B" ]
"notes": [ "R", "H", "S", "C", "B" ],
"_gpid_": 3815
},
{ "name": "Heavy Tractor",
"cs#": 6,
"note_number": "49",
"notes": [ "R", "H", "S", "C", "B" ]
"notes": [ "R", "H", "S", "C", "B" ],
"_gpid_": 3817
},
{ "name": "Light Truck",
"cs#": 4,
"note_number": "50",
"notes": [ "R", "H", "S", "C", "B" ]
"notes": [ "R", "H", "S", "C", "B" ],
"_gpid_": 3819
},
{ "name": "Medium Truck",
"cs#": 5,
"note_number": "50",
"notes": [ "R", "H", "S", "C", "B" ]
"notes": [ "R", "H", "S", "C", "B" ],
"_gpid_": 3821
},
{ "name": "Heavy Truck",
"cs#": 7,
"note_number": "50",
"notes": [ "R", "H", "S", "C", "B" ]
"notes": [ "R", "H", "S", "C", "B" ],
"_gpid_": 3823
}
]

@ -4,32 +4,38 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "24\u2020",
"notes": [ "F" ]
"notes": [ "F" ],
"_gpid_": 3892
},
{ "name": "TKS(L)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "24\u2020",
"notes": [ "F" ]
"notes": [ "F" ],
"_gpid_": 3894
},
{ "name": "L6/40(i)",
"CS#": 2,
"note_number": "25"
"note_number": "25",
"_gpid_": 3896
},
{ "name": "wz 34-I",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "26"
"note_number": "26",
"_gpid_": 3898
},
{ "name": "wz 34-II",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "26"
"note_number": "26",
"_gpid_": 3900
},
{ "name": "SMV L40 da 47/32",
"CS#": 3,
"note_number": "27\u2020",
"notes": [ "O\u2020<sup>1</sup>" ]
"notes": [ "O\u2020<sup>1</sup>" ],
"_gpid_": 3902
}
]

@ -3,62 +3,73 @@
{ "name": "38M Toldi I",
"CS#": 3,
"note_number": "7\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 4009
},
{ "name": "38M Toldi IIA",
"CS#": 3,
"note_number": "8\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 4011
},
{ "name": "40M Turan I(r)",
"CS#": 5,
"capabilities2": { "sD": 5 },
"note_number": "9\u2020",
"notes": [ "E", "N", "Q" ]
"notes": [ "E", "N", "Q" ],
"_gpid_": 4013
},
{ "name": "41M Turan II(r)",
"CS#": 5,
"capabilities2": { "AP": 6, "s": 7, "sD": 5 },
"note_number": "10\u2020",
"notes": [ "E", "N", "Q" ]
"notes": [ "E", "N", "Q" ],
"_gpid_": 4015
},
{ "name": "PzKpfw VG(g)",
"CS#": 6,
"capabilities2": { "sN": 6 },
"note_number": "11\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 4043
},
{ "name": "PzKpfw VIE(L)(g)",
"CS#": 6,
"capabilities2": { "A": [ [3,4] ], "sN": 6 },
"note_number": "12\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 4045
},
{ "name": "43M Zrinyi II",
"CS#": 4,
"capabilities2": { "s": 7, "sD": 5 },
"note_number": "13\u2020",
"notes": [ "Q" ]
"notes": [ "Q" ],
"_gpid_": 4055
},
{ "name": "39M Csaba",
"CS#": 4,
"note_number": "14"
"note_number": "14",
"_gpid_": 4065
},
{ "name": "40M Csaba",
"CS#": 4,
"note_number": "14"
"note_number": "14",
"_gpid_": 4067
},
{ "name": "Marder II(g)",
"CS#": "4:brewup",
"capabilities2": { "A": [ [4,3], [3,4] ], "HE": 7, "s": 6 },
"note_number": "15",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 4057
},
{ "name": "40M Nimrod",
"CS#": 6,
"capabilities2": { "H": [ ["6[9]","3+"] ] },
"note_number": "16\u2020",
"notes": [ "P\u2020<sup>1</sup>" ]
"notes": [ "P\u2020<sup>1</sup>" ],
"_gpid_": 4059
}
]

@ -4,46 +4,54 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3861
},
{ "name": "R-35/45(f)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "2",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 3863
},
{ "name": "TACAM T-60(r)",
"CS#": 3,
"note_number": "3\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3865
},
{ "name": "TACAM T-60A(r)",
"CS#": 3,
"note_number": "3\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3867
},
{ "name": "TACAM R-2(r)",
"CS#": 3,
"capabilities2": { "AP": 5 },
"note_number": "4\u2020",
"notes": [ "E", "N" ]
"notes": [ "E", "N" ],
"_gpid_": 3869
},
{ "name": "BA-6(r)",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "5\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3871
},
{ "name": "BA-20(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "5\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3873
},
{ "name": "Malaxa UE2",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "6\u2020",
"notes": [ "F", "I\u2020<sup>1</sup>", "J" ]
"notes": [ "F", "I\u2020<sup>1</sup>", "J" ],
"_gpid_": [ 3875, 3877 ]
}
]

@ -4,40 +4,47 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "17\u2020",
"notes": [ "K\u2020<sup>1</sup>", "E", "F", "G\u2020<sup>2</sup>" ]
"notes": [ "K\u2020<sup>1</sup>", "E", "F", "G\u2020<sup>2</sup>" ],
"_gpid_": 3879
},
{ "name": "LT vz 34",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "18"
"note_number": "18",
"_gpid_": 3881
},
{ "name": "PzKpfw IIA(g)",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "19",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3883
},
{ "name": "LT vz 40(t)",
"CS#": 4,
"capabilities2": { "sD": 6 },
"note_number": "20\u2020",
"notes": [ "K\u2020<sup>1</sup>", "E" ]
"notes": [ "K\u2020<sup>1</sup>", "E" ],
"_gpid_": 3885
},
{ "name": "Marder III(t)H",
"CS#": "4:brewup",
"capabilities2": { "A": [ [4,3], [3,4] ], "HE": 7, "s": 7, "sD": 6 },
"note_number": "21\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3887
},
{ "name": "Kfz 1(g)",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "22\u2020",
"notes": [ "E", "L\u2020<sup>2</sup>", "I\u2020<sup>1</sup>" ]
"notes": [ "E", "L\u2020<sup>2</sup>", "I\u2020<sup>1</sup>" ],
"_gpid_": 3889
},
{ "name": "SdKfz 2(g)",
"cs#": 2,
"note_number": "23\u2020",
"notes": [ "E", "L\u2020<sup>1</sup>" ]
"notes": [ "E", "L\u2020<sup>1</sup>" ],
"_gpid_": 3891
}
]

@ -4,728 +4,855 @@
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "1\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1208
},
{ "name": "Mark VIC",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "1\u2020"
"note_number": "1\u2020",
"_gpid_": 1210
},
{ "name": "Tetrarch",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "2\u2020"
"note_number": "2\u2020",
"_gpid_": 1212
},
{ "name": "Tetrarch CS",
"CS#": 3,
"capabilities2": { "HE": "9\u2020<sup>1</sup>", "s": [ null, "\u2020<sup>1</sup>" ], "sD": 6 },
"note_number": "2\u2020",
"notes": [ "S\u2020<sup>1</sup>" ]
"notes": [ "S\u2020<sup>1</sup>" ],
"_gpid_": 1214
},
{ "name": "Stuart I(a)",
"CS#": 4,
"capabilities2": { "sD": 5 },
"note_number": "3\u2020",
"notes": [ "A", "N", "P" ]
"notes": [ "A", "N", "P" ],
"_gpid_": 1216
},
{ "name": "Stuart III(a)",
"CS#": 4,
"capabilities2": { "HE": [ null, "4+" ], "C": [ [6,"4+"], "\u2020<sup>1</sup>" ], "sD": 5 },
"note_number": "3\u2020",
"notes": [ "A", "C\u2020<sup>1</sup>", "G", "N", "P" ]
"notes": [ "A", "C\u2020<sup>1</sup>", "G", "N", "P" ],
"_gpid_": 1218
},
{ "name": "Stuart V(a)",
"CS#": 4,
"capabilities2": { "C": "6\u2020<sup>1</sup>", "sD": 5 },
"note_number": "4\u2020",
"notes": [ "A", "C\u2020<sup>1</sup>", "G" ]
"notes": [ "A", "C\u2020<sup>1</sup>", "G" ],
"_gpid_": 1220
},
{ "name": "Locust(a)",
"CS#": 3,
"capabilities2": { "C": "6\u2020", "sD": 6 },
"note_number": "5",
"notes": [ "A", "C\u2020" ]
"notes": [ "A", "C\u2020" ],
"_gpid_": 1222
},
{ "name": "A9",
"CS#": "5:brewup",
"capabilities2": { "sD": 6 },
"note_number": "6\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N" ]
"notes": [ "K\u2020<sup>1</sup>", "N" ],
"_gpid_": [ 1224, 1226 ]
},
{ "name": "A9 CS",
"CS#": "5:brewup",
"capabilities2": { "s": [ null, "\u2020<sup>2</sup>" ], "sD": 6 },
"note_number": "6\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ],
"_gpid_": [ 1228, 1230 ]
},
{ "name": "A10 Mk IA",
"CS#": "5:brewup\u2020",
"capabilities2": { "sD": 6 },
"note_number": "7\u2020",
"notes": [ "B\u2020<sup>1</sup>", "K\u2020<sup>2</sup>", "N" ]
"notes": [ "B\u2020<sup>1</sup>", "K\u2020<sup>2</sup>", "N" ],
"_gpid_": [ 1232, 1234, 1236, 1238, 1240 ]
},
{ "name": "A10 Mk IA CS",
"CS#": "5:brewup\u2020",
"capabilities2": { "s": [ null, "\u2020<sup>2</sup>" ], "sD": 6 },
"note_number": "7\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ],
"_gpid_": [ 1242, 1244, 1246 ]
},
{ "name": "A13 Mk I",
"CS#": "4:brewup",
"capabilities2": { "sD": 6 },
"note_number": "8",
"notes": [ "K\u2020" ]
"notes": [ "K\u2020" ],
"_gpid_": [ 1248, 1250 ]
},
{ "name": "A13 Mk II",
"CS#": "4:brewup",
"capabilities2": { "sD": 6 },
"note_number": "8\u2020",
"notes": [ "B\u2020<sup>1</sup>", "K\u2020<sup>2</sup>", "N" ]
"notes": [ "B\u2020<sup>1</sup>", "K\u2020<sup>2</sup>", "N" ],
"_gpid_": [ 1252, 1254, 1256, 1258 ]
},
{ "name": "A13 Mk II CS",
"CS#": "4:brewup",
"capabilities2": { "s": [ null, "\u2020<sup>2</sup>" ], "sD": 6 },
"note_number": "8\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ],
"_gpid_": 1260
},
{ "name": "Crusader I",
"CS#": "5:brewup",
"capabilities2": { "sM": 8 },
"note_number": "9\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N" ]
"notes": [ "K\u2020<sup>1</sup>", "N" ],
"_gpid_": [ 1262, 1264 ]
},
{ "name": "Crusader I CS",
"CS#": "5:brewup",
"capabilities2": { "HE": 9, "s": [ null, "\u2020<sup>2</sup>" ], "sM": 8 },
"note_number": "9\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ],
"_gpid_": [ 1266, 1268 ]
},
{ "name": "Crusader II",
"CS#": "4:brewup",
"capabilities2": { "sM": 8 },
"note_number": "9\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N" ]
"notes": [ "K\u2020<sup>1</sup>", "N" ],
"_gpid_": [ 1270, 1272 ]
},
{ "name": "Crusader II CS",
"CS#": "4:brewup",
"capabilities2": { "HE": 9, "s": [ null, "\u2020<sup>2</sup>" ], "sM": 8 },
"note_number": "9\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "S\u2020<sup>2</sup>" ],
"_gpid_": [ 1274, 1276 ]
},
{ "name": "Crusader III",
"CS#": "3:brewup",
"capabilities2": { "HE": [ [7,"F3+"], "\u2020<sup>1</sup>" ], "sD": 7, "sM": "8\u2020<sup>2</sup>" },
"note_number": "10\u2020",
"notes": [ "N", "Y\u2020<sup>1</sup>", "Z\u2020<sup>2</sup>" ]
"notes": [ "N", "Y\u2020<sup>1</sup>", "Z\u2020<sup>2</sup>" ],
"_gpid_": 1278
},
{ "name": "Grant(a)",
"CS#": 6,
"capabilities2": { "HE": [ null, "4+" ], "C": [ [5,"4+"], "\u2020<sup>1</sup>" ], "s": "8\u2020", "sM": 8 },
"note_number": "11\u2020",
"notes": [ "A", "C\u2020<sup>1</sup>", "G", "N", "P" ]
"notes": [ "A", "C\u2020<sup>1</sup>", "G", "N", "P" ],
"_gpid_": 1280
},
{ "name": "Lee(a)",
"CS#": 7,
"capabilities2": { "HE": [ null, "4+" ], "C": [ [5,"4+"], "\u2020<sup>1</sup>" ], "s": "8\u2020", "sD": 6 },
"note_number": "11\u2020",
"notes": [ "A", "C\u2020<sup>1</sup>", "G", "N", "P" ]
"notes": [ "A", "C\u2020<sup>1</sup>", "G", "N", "P" ],
"_gpid_": [ 1282, 1284 ]
},
{ "name": "Sherman II(a)",
"CS#": "5:brewup",
"capabilities2": { "s": 8, "WP": [ [6,"J4+"], "\u2020<sup>3</sup>" ], "sD": 6 },
"note_number": "12\u2020",
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "N", "R\u2020<sup>1</sup>", "W\u2020<sup>3</sup>" ]
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "N", "R\u2020<sup>1</sup>", "W\u2020<sup>3</sup>" ],
"_gpid_": [ 1286, 1288 ]
},
{ "name": "Sherman III(a)",
"CS#": "5:brewup",
"capabilities2": { "s": 8, "WP": [ [6,"J4+"], "\u2020<sup>3</sup>" ], "sD": 6 },
"note_number": "13\u2020",
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "N", "R\u2020<sup>1</sup>", "W\u2020<sup>3</sup>" ]
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "N", "R\u2020<sup>1</sup>", "W\u2020<sup>3</sup>" ],
"_gpid_": [ 1290, 1292 ]
},
{ "name": "Sherman V(a)",
"CS#": "5:brewup",
"capabilities2": { "s": 8, "WP": [ [6,"J4+"], "\u2020<sup>3</sup>" ], "sD": 6 },
"note_number": "14\u2020",
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "P", "R\u2020<sup>1</sup>", "W\u2020<sup>3</sup>" ]
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "P", "R\u2020<sup>1</sup>", "W\u2020<sup>3</sup>" ],
"_gpid_": [ 1294, 1296 ]
},
{ "name": "Sherman IIA(a)",
"CS#": 6,
"capabilities2": { "A": [ [4,4], [5,5] ], "s": [ [5,5] ], "sM": 8 },
"note_number": "15\u2020",
"notes": [ "A", "G", "K\u2020<sup>1</sup>" ]
"notes": [ "A", "G", "K\u2020<sup>1</sup>" ],
"_gpid_": [ 1298, 1300 ]
},
{ "name": "Sherman IIC(a)",
"CS#": "5:brewup",
"capabilities2": { "HE": 7, "D": [ [5,"S4"], [6,5], "\u2020<sup>2</sup>" ], "sM": 8 },
"note_number": "16\u2020",
"notes": [ "A", "J\u2020<sup>2</sup>", "K\u2020<sup>1</sup>" ]
"notes": [ "A", "J\u2020<sup>2</sup>", "K\u2020<sup>1</sup>" ],
"_gpid_": [ 1302, 1304 ]
},
{ "name": "Sherman VC(a)",
"CS#": "5:brewup",
"capabilities2": { "HE": 7, "D": [ [5,"S4"], [6,5], "\u2020<sup>2</sup>" ], "sM": 8 },
"note_number": "16\u2020",
"notes": [ "A", "J\u2020<sup>2</sup>", "K\u2020<sup>1</sup>" ]
"notes": [ "A", "J\u2020<sup>2</sup>", "K\u2020<sup>1</sup>" ],
"_gpid_": [ 1306, 1308 ]
},
{ "name": "Sherman IB(a)",
"CS#": 6,
"capabilities2": { "H": 9, "s": 7, "WP": 9, "sM": 8 },
"note_number": "17\u2020",
"notes": [ "A", "K\u2020<sup>1</sup>" ]
"notes": [ "A", "K\u2020<sup>1</sup>" ],
"_gpid_": [ 1310, 1312 ]
},
{ "name": "Centaur IV",
"CS#": 5,
"capabilities2": { "H": 6, "s": 9, "sD": 7, "sM": "8\u2020" },
"note_number": "18",
"notes": [ "S", "Z\u2020" ]
"notes": [ "S", "Z\u2020" ],
"_gpid_": 1314
},
{ "name": "Cromwell IV",
"CS#": 5,
"capabilities2": { "s": 8, "WP": 6, "sD": 7, "sM": "8\u2020<sup>1</sup>" },
"note_number": "19\u2020",
"notes": [ "Z\u2020<sup>1</sup>" ]
"notes": [ "Z\u2020<sup>1</sup>" ],
"_gpid_": 1316
},
{ "name": "Cromwell VI",
"CS#": 5,
"capabilities2": { "H": 6, "s": 9, "sD": 7, "sM": "8\u2020<sup>1</sup>" },
"note_number": "20\u2020",
"notes": [ "S", "Z\u2020<sup>1</sup>" ]
"notes": [ "S", "Z\u2020<sup>1</sup>" ],
"_gpid_": 1318
},
{ "name": "Cromwell VII",
"CS#": 6,
"capabilities2": { "s": 8, "WP": 6, "sD": 7, "sM": "8\u2020" },
"note_number": "19\u2020",
"notes": [ "Z\u2020<sup>1</sup>" ]
"notes": [ "Z\u2020<sup>1</sup>" ],
"_gpid_": 1320
},
{ "name": "Cromwell VIII",
"CS#": 6,
"capabilities2": { "H": 6, "s": 9, "sD": 7, "sM": "8\u2020<sup>1</sup>" },
"note_number": "20\u2020",
"notes": [ "S", "Z\u2020<sup>1</sup>" ]
"notes": [ "S", "Z\u2020<sup>1</sup>" ],
"_gpid_": 1322
},
{ "name": "Challenger",
"CS#": 6,
"capabilities2": { "HE": 7, "D": [ [5,"S4"], [6,5], "\u2020<sup>1</sup>" ], "sD": 7, "sM": "8\u2020<sup>2</sup>" },
"note_number": "21\u2020",
"notes": [ "J\u2020<sup>1</sup>", "Z\u2020<sup>2</sup>" ]
"notes": [ "J\u2020<sup>1</sup>", "Z\u2020<sup>2</sup>" ],
"_gpid_": 1324
},
{ "name": "Comet",
"CS#": 6,
"capabilities2": { "sD": 7, "sM": "8\u2020" },
"note_number": "22",
"notes": [ "Z\u2020" ]
"notes": [ "Z\u2020" ],
"_gpid_": 1326
},
{ "name": "Sherman Dozer(a)",
"CS#": "5:brewup",
"capabilities2": { "s": 8, "WP": 6, "sD": 6 },
"note_number": "23\u2020",
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "P", "R\u2020<sup>1</sup>" ]
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "P", "R\u2020<sup>1</sup>" ],
"_gpid_": [ 1328, 1330 ]
},
{ "name": "Sherman Crab(a)",
"CS#": "5:brewup",
"capabilities2": { "s": 8, "WP": 6, "sD": 6 },
"note_number": "24\u2020",
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "P", "R\u2020<sup>1</sup>" ]
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "P", "R\u2020<sup>1</sup>" ],
"_gpid_": [ 1332, 1334 ]
},
{ "name": "Matilda I",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "sD": 5 },
"note_number": "25\u2020",
"notes": [ "B\u2020<sup>1</sup>" ]
"notes": [ "B\u2020<sup>1</sup>" ],
"_gpid_": [ 1338, 1340 ]
},
{ "name": "Matilda II",
"CS#": 5,
"capabilities2": { "sD": 6 },
"note_number": "26\u2020",
"notes": [ "B\u2020<sup>1</sup>", "K\u2020<sup>2</sup>", "N", "P" ]
"notes": [ "B\u2020<sup>1</sup>", "K\u2020<sup>2</sup>", "N", "P" ],
"_gpid_": [ 1342, 1344, 1346, 1348 ]
},
{ "name": "Matilda II CS",
"CS#": 5,
"capabilities2": { "HE": "9\u2020<sup>2</sup>", "s": [ null, "\u2020<sup>2</sup>" ], "sD": 6 },
"note_number": "26\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "P", "S\u2020<sup>2</sup>" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "P", "S\u2020<sup>2</sup>" ],
"_gpid_": [ 1350, 1352 ]
},
{ "name": "Valentine II",
"CS#": 4,
"capabilities2": { "sM": 8 },
"note_number": "27\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 1354
},
{ "name": "Valentine V",
"CS#": 4,
"capabilities2": { "sM": 8 },
"note_number": "28\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N<sup>T</sup>" ]
"notes": [ "K\u2020<sup>1</sup>", "N<sup>T</sup>" ],
"_gpid_": [ 1356, 1358 ]
},
{ "name": "Valentine VIII",
"CS#": 4,
"capabilities2": { "HE": 7, "sD": 6 },
"note_number": "29",
"notes": [ "N<sup>T</sup>" ]
"notes": [ "N<sup>T</sup>" ],
"_gpid_": 1360
},
{ "name": "Valentine XI",
"CS#": 4,
"capabilities2": { "s": 8, "WP": 6, "sD": 8 },
"note_number": "30"
"note_number": "30",
"_gpid_": 1362
},
{ "name": "Churchill I",
"CS#": 7,
"capabilities2": { "HE": "9\u2020<sup>2</sup>", "s": [ null, "\u2020<sup>2</sup>" ], "sD": [ [5,4] ], "sM": "8\u2020<sup>1</sup>" },
"note_number": "31\u2020",
"notes": [ "N<sup>T</sup>", "S\u2020<sup>2</sup>", "Z\u2020<sup>1</sup>", "CC" ]
"notes": [ "N<sup>T</sup>", "S\u2020<sup>2</sup>", "Z\u2020<sup>1</sup>", "CC" ],
"_gpid_": 1364
},
{ "name": "Churchill IV",
"CS#": 7,
"capabilities2": { "HE": [ [7,"F3"], [8,"4+"], "\u2020<sup>1</sup>" ], "D": [ [6,"J4"], [7,5], "\u2020<sup>2</sup>" ], "sD": [ [6,"4+"] ], "sM": "8\u2020<sup>3</sup>" },
"note_number": "32\u2020",
"notes": [ "J\u2020<sup>2</sup>", "N", "Y\u2020<sup>1</sup>", "Z\u2020<sup>3</sup>", "CC" ]
"notes": [ "J\u2020<sup>2</sup>", "N", "Y\u2020<sup>1</sup>", "Z\u2020<sup>3</sup>", "CC" ],
"_gpid_": 1366
},
{ "name": "Churchill V",
"CS#": 7,
"capabilities2": { "H": 6, "s": 9, "sD": 7, "sM": "8\u2020<sup>1</sup>" },
"note_number": "33\u2020",
"notes": [ "S", "Z\u2020<sup>1</sup>", "CC" ]
"notes": [ "S", "Z\u2020<sup>1</sup>", "CC" ],
"_gpid_": 1368
},
{ "name": "Churchill VI",
"CS#": 7,
"capabilities2": { "s": 8, "WP": [ [6,"J4+"], "\u2020<sup>1</sup>" ], "sD": 7, "sM": "8\u2020<sup>2</sup>" },
"note_number": "34\u2020",
"notes": [ "W\u2020<sup>1</sup>", "Z\u2020<sup>2</sup>", "CC" ]
"notes": [ "W\u2020<sup>1</sup>", "Z\u2020<sup>2</sup>", "CC" ],
"_gpid_": 1370
},
{ "name": "Churchill VII",
"CS#": 7,
"capabilities2": { "s": 8, "WP": 6, "sD": 7, "sM": "8\u2020<sup>1</sup>" },
"note_number": "35\u2020",
"notes": [ "Z\u2020<sup>1</sup>", "CC" ]
"notes": [ "Z\u2020<sup>1</sup>", "CC" ],
"_gpid_": 1372
},
{ "name": "Churchill VIII",
"CS#": 7,
"capabilities2": { "H": 6, "s": 9, "sD": 7, "sM": "8\u2020<sup>1</sup>" },
"note_number": "35\u2020",
"notes": [ "S", "Z\u2020<sup>1</sup>", "CC" ]
"notes": [ "S", "Z\u2020<sup>1</sup>", "CC" ],
"_gpid_": 1374
},
{ "name": "Valentine Bridgelayer",
"CS#": 2,
"capabilities2": { "sD": 7 },
"note_number": "36\u2020",
"notes": [ "M", "P" ]
"notes": [ "M", "P" ],
"_gpid_": 1376
},
{ "name": "Churchill Bridgelayer",
"CS#": 2,
"capabilities2": { "sD": 7 },
"note_number": "36\u2020",
"notes": [ "M", "CC" ]
"notes": [ "M", "CC" ],
"_gpid_": 1380
},
{ "name": "Churchill AVRE",
"CS#": 8,
"no_if": true,
"capabilities2": { "sD": 7, "sM": "8\u2020<sup>1</sup>" },
"note_number": "37\u2020",
"notes": [ "Z\u2020<sup>1</sup>", "CC" ]
"notes": [ "Z\u2020<sup>1</sup>", "CC" ],
"_gpid_": [ 1384, 1386 ]
},
{ "name": "Churchill Crocodile",
"CS#": 7,
"capabilities2": { "s": 8, "WP": 6, "sD": 7, "sM": "8\u2020<sup>1</sup>" },
"note_number": "38\u2020",
"notes": [ "Z\u2020<sup>1</sup>", "CC" ]
"notes": [ "Z\u2020<sup>1</sup>", "CC" ],
"_gpid_": 1390
},
{ "name": "Deacon",
"CS#": 5,
"capabilities2": { "HE": [ [7,"F3+"], "\u2020<sup>2</sup>" ] },
"note_number": "39\u2020",
"notes": [ "L\u2020<sup>1</sup>", "N", "Y\u2020<sup>2</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "N", "Y\u2020<sup>2</sup>" ],
"_gpid_": 1393
},
{ "name": "Wolverine(a)",
"CS#": 7,
"capabilities2": { "HE": 7, "A": [ [5,"S4"], [6,5], "\u2020<sup>1</sup>" ], "s": [ [5,5] ] },
"note_number": "40\u2020",
"notes": [ "A", "J\u2020<sup>1</sup>" ]
"notes": [ "A", "J\u2020<sup>1</sup>" ],
"_gpid_": 1395
},
{ "name": "Achilles(a)",
"CS#": 7,
"capabilities2": { "HE": 7, "D": [ [6,"S4"], [7,5], "\u2020<sup>1</sup>" ] },
"note_number": "40\u2020",
"notes": [ "A", "J\u2020<sup>1</sup>" ]
"notes": [ "A", "J\u2020<sup>1</sup>" ],
"_gpid_": 1397
},
{ "name": "Archer",
"CS#": 5,
"capabilities2": { "HE": 7, "D": [ [6,4], [7,5], "\u2020<sup>1</sup>" ], "sD": 7 },
"note_number": "41\u2020",
"notes": [ "J\u2020<sup>1</sup>" ]
"notes": [ "J\u2020<sup>1</sup>" ],
"_gpid_": 1399
},
{ "name": "Daimler",
"CS#": 2,
"capabilities2": { "sD": [ [4,"4+"], "\u2020" ] },
"note_number": "42\u2020",
"notes": [ "M", "N", "P" ]
"notes": [ "M", "N", "P" ],
"_gpid_": 1401
},
{ "name": "Lynx",
"CS#": 2,
"capabilities2": { "sD": 5 },
"note_number": "42\u2020",
"notes": [ "L\u2020<sup>1</sup>", "M", "P" ]
"notes": [ "L\u2020<sup>1</sup>", "M", "P" ],
"_gpid_": 1403
},
{ "name": "Humber",
"CS#": 2,
"capabilities2": { "sD": [ [4,"4+"], "\u2020" ] },
"note_number": "43\u2020",
"notes": [ "L\u2020<sup>1</sup>", "M", "P", "BB\u2020<sup>2</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "M", "P", "BB\u2020<sup>2</sup>" ],
"_gpid_": 1405
},
{ "name": "Stuart Recce",
"CS#": 5,
"note_number": "44\u2020",
"notes": [ "A", "D", "N<sup>T</sup>", "P" ]
"notes": [ "A", "D", "N<sup>T</sup>", "P" ],
"_gpid_": 1407
},
{ "name": "Humber III LRC",
"CS#": 3,
"capabilities2": { "sD": 5 },
"note_number": "45\u2020",
"notes": [ "L\u2020<sup>1</sup>", "N", "P", "Q\u2020<sup>2</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "N", "P", "Q\u2020<sup>2</sup>" ],
"_gpid_": 1409
},
{ "name": "Otter LRC",
"CS#": 3,
"capabilities2": { "sD": 5 },
"note_number": "45\u2020",
"notes": [ "L\u2020<sup>1</sup>", "P", "Q\u2020<sup>2</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "P", "Q\u2020<sup>2</sup>" ],
"_gpid_": 1411
},
{ "name": "Morris CS9",
"CS#": 4,
"capabilities2": { "sD": 5 },
"note_number": "46\u2020",
"notes": [ "N", "Q\u2020<sup>2</sup>", "T\u2020<sup>3</sup>", "X\u2020<sup>1</sup>" ]
"notes": [ "N", "Q\u2020<sup>2</sup>", "T\u2020<sup>3</sup>", "X\u2020<sup>1</sup>" ],
"_gpid_": 1413
},
{ "name": "Rolls Royce",
"CS#": 3,
"capabilities2": { "sD": 5 },
"note_number": "47\u2020",
"notes": [ "N", "Q\u2020<sup>2</sup>", "T\u2020<sup>3</sup>", "X\u2020<sup>1</sup>" ]
"notes": [ "N", "Q\u2020<sup>2</sup>", "T\u2020<sup>3</sup>", "X\u2020<sup>1</sup>" ],
"_gpid_": 1415
},
{ "name": "Marmon-Herrington II ME",
"CS#": 4,
"note_number": "48\u2020",
"notes": [ "L\u2020<sup>1</sup>", "N", "Q\u2020<sup>2</sup>", "T\u2020<sup>3</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "N", "Q\u2020<sup>2</sup>", "T\u2020<sup>3</sup>" ],
"_gpid_": 1417
},
{ "name": "Marmon-Herrington IIv",
"CS#": 4,
"note_number": "49\u2020",
"notes": [ "L\u2020<sup>1</sup>", "N", "AA\u2020<sup>2</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "N", "AA\u2020<sup>2</sup>" ],
"_gpid_": 1419
},
{ "name": "Marmon-Herrington III MFF",
"CS#": 4,
"note_number": "48\u2020",
"notes": [ "L\u2020<sup>1</sup>", "P", "Q\u2020<sup>2</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "P", "Q\u2020<sup>2</sup>" ],
"_gpid_": 1421
},
{ "name": "Marmon-Herrington III ME",
"CS#": 4,
"note_number": "48\u2020",
"notes": [ "L\u2020<sup>1</sup>", "N", "Q\u2020<sup>2</sup>", "T\u2020<sup>3</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "N", "Q\u2020<sup>2</sup>", "T\u2020<sup>3</sup>" ],
"_gpid_": 1423
},
{ "name": "Marmon-Herrington IIIv",
"CS#": 4,
"note_number": "49\u2020",
"notes": [ "K\u2020<sup>2</sup>", "L\u2020<sup>1</sup>", "N", "T\u2020<sup>2</sup>" ]
"notes": [ "K\u2020<sup>2</sup>", "L\u2020<sup>1</sup>", "N", "T\u2020<sup>2</sup>" ],
"_gpid_": [ 1425, 1427 ]
},
{ "name": "Humber II",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "50\u2020",
"notes": [ "L\u2020<sup>1</sup>", "N" ]
"notes": [ "L\u2020<sup>1</sup>", "N" ],
"_gpid_": 1429
},
{ "name": "Humber III",
"CS#": 4,
"capabilities2": { "sD": 6 },
"note_number": "50\u2020",
"notes": [ "K\u2020<sup>2</sup>", "L\u2020<sup>1</sup>", "N", "P" ]
"notes": [ "K\u2020<sup>2</sup>", "L\u2020<sup>1</sup>", "N", "P" ],
"_gpid_": [ 1431, 1433 ]
},
{ "name": "Humber IV",
"CS#": 3,
"capabilities2": { "C": [ [6,"4+"], "\u2020<sup>2</sup>" ], "sD": 6 },
"note_number": "51\u2020",
"notes": [ "A", "C\u2020<sup>2</sup>", "L\u2020<sup>1</sup>", "P" ]
"notes": [ "A", "C\u2020<sup>2</sup>", "L\u2020<sup>1</sup>", "P" ],
"_gpid_": 1435
},
{ "name": "Daimler",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "52\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "P" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "P" ],
"_gpid_": [ 1437, 1439 ]
},
{ "name": "AEC I",
"CS#": 3,
"capabilities2": { "sM": 8 },
"note_number": "53\u2020",
"notes": [ "N", "X\u2020<sup>1</sup>" ]
"notes": [ "N", "X\u2020<sup>1</sup>" ],
"_gpid_": 1441
},
{ "name": "AEC II",
"CS#": 4,
"capabilities2": { "HE": [ [7,3], [8,"4+"], "\u2020<sup>1</sup>" ], "D": [ [6,"J4"], [7,5], "\u2020<sup>2</sup>" ], "sM": 8 },
"note_number": "53",
"notes": [ "J\u2020<sup>2</sup>", "X\u2020", "Y\u2020<sup>1</sup>" ]
"notes": [ "J\u2020<sup>2</sup>", "X\u2020", "Y\u2020<sup>1</sup>" ],
"_gpid_": 1443
},
{ "name": "AEC III",
"CS#": 4,
"capabilities2": { "s": 8, "WP": 6, "sM": 8 },
"note_number": "53",
"notes": [ "X\u2020" ]
"notes": [ "X\u2020" ],
"_gpid_": 1445
},
{ "name": "Staghound I(a)",
"CS#": 5,
"capabilities2": { "C": [ [6,"4+"], "\u2020<sup>3</sup>" ], "sM": 8 },
"note_number": "54\u2020",
"notes": [ "A", "C\u2020<sup>3</sup>", "G", "K\u2020<sup>2</sup>", "X\u2020<sup>1</sup>" ]
"notes": [ "A", "C\u2020<sup>3</sup>", "G", "K\u2020<sup>2</sup>", "X\u2020<sup>1</sup>" ],
"_gpid_": [ 1447, 1449 ]
},
{ "name": "Staghound II(a)",
"CS#": 4,
"capabilities2": { "s": 9, "sD": 6 },
"note_number": "54\u2020",
"notes": [ "A", "K\u2020<sup>3</sup>", "S\u2020<sup>2</sup>", "X\u2020<sup>1</sup>" ]
"notes": [ "A", "K\u2020<sup>3</sup>", "S\u2020<sup>2</sup>", "X\u2020<sup>1</sup>" ],
"_gpid_": [ 1451, 1453 ]
},
{ "name": "Bishop",
"CS#": 5,
"no_if": true,
"capabilities2": { "s": 8 },
"note_number": "55\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "P" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "P" ],
"_gpid_": [ 1457, 1459 ]
},
{ "name": "Priest(a)",
"CS#": 7,
"capabilities2": { "H": 6, "s": 8, "WP": 7 },
"note_number": "56\u2020",
"notes": [ "A", "N", "P" ]
"notes": [ "A", "N", "P" ],
"_gpid_": 1461
},
{ "name": "Sexton(a)",
"CS#": 7,
"capabilities2": { "s": 8 },
"note_number": "57\u2020",
"notes": [ "A", "K\u2020<sup>1</sup>" ]
"notes": [ "A", "K\u2020<sup>1</sup>" ],
"_gpid_": [ 1463, 1465 ]
},
{ "name": "M3 GMC(a)",
"CS#": 4,
"capabilities2": { "s": 8, "WP": [ [7,"J4+"], "\u2020<sup>1</sup>" ] },
"note_number": "58\u2020",
"notes": [ "A", "N<sup>T</sup>", "W\u2020<sup>1</sup>" ]
"notes": [ "A", "N<sup>T</sup>", "W\u2020<sup>1</sup>" ],
"_gpid_": 1467
},
{ "name": "Mk VI AA",
"CS#": 2,
"note_number": "59\u2020",
"notes": [ "N", "O\u2020<sup>1</sup>", "AA\u2020<sup>2</sup>" ]
"notes": [ "N", "O\u2020<sup>1</sup>", "AA\u2020<sup>2</sup>" ],
"_gpid_": 1469
},
{ "name": "Crusader AA",
"CS#": "4:brewup",
"capabilities2": { "sD": 7 },
"note_number": "60\u2020",
"notes": [ "AA\u2020<sup>1</sup>" ]
"notes": [ "AA\u2020<sup>1</sup>" ],
"_gpid_": [ 1471, 1473 ]
},
{ "name": "M17 MGMC(a)",
"CS#": 4,
"note_number": "61\u2020",
"notes": [ "A", "F\u2020", "AA\u2020<sup>1</sup>" ]
"notes": [ "A", "F\u2020", "AA\u2020<sup>1</sup>" ],
"_gpid_": 1475
},
{ "name": "Humber AA",
"CS#": 2,
"note_number": "62\u2020",
"notes": [ "L\u2020<sup>1</sup>", "N", "O\u2020<sup>2</sup>", "AA\u2020<sup>3</sup>" ]
"notes": [ "L\u2020<sup>1</sup>", "N", "O\u2020<sup>2</sup>", "AA\u2020<sup>3</sup>" ],
"_gpid_": 1477
},
{ "name": "Staghound AA(a)",
"CS#": 3,
"note_number": "62\u2020",
"notes": [ "A", "F\u2020", "X\u2020<sup>1</sup>", "AA\u2020<sup>2</sup>" ]
"notes": [ "A", "F\u2020", "X\u2020<sup>1</sup>", "AA\u2020<sup>2</sup>" ],
"_gpid_": 1479
},
{ "name": "M5(a)",
"cs#": "5\u2020<sup>1</sup>",
"note_number": "63\u2020",
"notes": [ "A", "I\u2020<sup>1</sup>", "N" ]
"notes": [ "A", "I\u2020<sup>1</sup>", "N" ],
"_gpid_": [ 1481, 1483 ]
},
{ "name": "M9(a)",
"cs#": "4\u2020<sup>1</sup>",
"note_number": "63\u2020",
"notes": [ "A", "I\u2020<sup>1</sup>", "N" ]
"notes": [ "A", "I\u2020<sup>1</sup>", "N" ],
"_gpid_": [ 1489, 1491 ]
},
{ "name": "M5A1(a)",
"cs#": "5\u2020",
"note_number": "63",
"notes": [ "A", "I\u2020" ]
"notes": [ "A", "I\u2020" ],
"_gpid_": [ 1485, 1487 ]
},
{ "name": "M9A1(a)",
"cs#": "4\u2020",
"note_number": "63",
"notes": [ "A", "I\u2020" ]
"notes": [ "A", "I\u2020" ],
"_gpid_": [ 1493, 1495 ]
},
{ "name": "Carrier A",
"CS#": 3,
"capabilities2": { "sD": [ [5,"4+"], "\u2020<sup>1</sup>" ] },
"note_number": "64\u2020",
"notes": [ "N", "P", "U\u2020<sup>1</sup>" ]
"notes": [ "N", "P", "U\u2020<sup>1</sup>" ],
"_gpid_": 1497
},
{ "name": "Carrier B",
"CS#": 3,
"capabilities2": { "sD": [ [5,"4+"], "\u2020<sup>2</sup>" ] },
"note_number": "64\u2020",
"notes": [ "N", "P", "Q\u2020<sup>1</sup>", "U\u2020<sup>2</sup>" ]
"notes": [ "N", "P", "Q\u2020<sup>1</sup>", "U\u2020<sup>2</sup>" ],
"_gpid_": 1499
},
{ "name": "Carrier C",
"CS#": 3,
"capabilities2": { "sD": [ [5,"4+"], "\u2020<sup>1</sup>" ] },
"note_number": "64\u2020",
"notes": [ "N", "P", "U\u2020<sup>1</sup>" ]
"notes": [ "N", "P", "U\u2020<sup>1</sup>" ],
"_gpid_": 1501
},
{ "name": "Carrier, MMG A",
"CS#": 3,
"capabilities2": { "sD": [ [5,"4+"], "\u2020<sup>2</sup>" ] },
"note_number": "65\u2020",
"notes": [ "N", "P", "Q\u2020<sup>1</sup>", "U\u2020<sup>2</sup>" ]
"notes": [ "N", "P", "Q\u2020<sup>1</sup>", "U\u2020<sup>2</sup>" ],
"_gpid_": [ 1503, 1505 ]
},
{ "name": "Carrier, MMG B",
"CS#": 4,
"capabilities2": { "sD": [ [5,"4+"], "\u2020<sup>2</sup>" ] },
"note_number": "65\u2020",
"notes": [ "U\u2020<sup>2</sup>", "BB\u2020<sup>1</sup>" ]
"notes": [ "U\u2020<sup>2</sup>", "BB\u2020<sup>1</sup>" ],
"_gpid_": 1507
},
{ "name": "Carrier, 2-in. MTR",
"CS#": 3,
"capabilities2": { "IR": [ [null,"2+"], "\u2020" ], "s": 7 },
"note_number": "66\u2020",
"notes": [ "N", "P", "U\u2020<sup>1</sup>" ]
"notes": [ "N", "P", "U\u2020<sup>1</sup>" ],
"_gpid_": 1509
},
{ "name": "Carrier, 3-in. MTR",
"CS#": "4:brewup\u2020<sup>1</sup>",
"note_number": "67\u2020",
"notes": [ "H\u2020<sup>1</sup>", "N", "P", "U", "BB\u2020<sup>2</sup>" ]
"notes": [ "H\u2020<sup>1</sup>", "N", "P", "U", "BB\u2020<sup>2</sup>" ],
"_gpid_": 1511
},
{ "name": "Priest Kangaroo(a)",
"CS#": 7,
"note_number": "68\u2020",
"notes": [ "A", "D" ]
"notes": [ "A", "D" ],
"_gpid_": 1513
},
{ "name": "Ram Kangaroo(a)",
"CS#": 7,
"note_number": "68\u2020",
"notes": [ "A", "D", "K\u2020<sup>1</sup>" ]
"notes": [ "A", "D", "K\u2020<sup>1</sup>" ],
"_gpid_": [ 1515, 1517 ]
},
{ "name": "White(a) SC",
"cs#": "4\u2020<sup>1</sup>",
"note_number": "69\u2020",
"notes": [ "A", "I\u2020<sup>1</sup>", "N" ]
"notes": [ "A", "I\u2020<sup>1</sup>", "N" ],
"_gpid_": [ 1519, 1521 ]
},
{ "name": "IP Carrier Mk IIA",
"CS#": 4,
"note_number": "70\u2020",
"notes": [ "N", "P", "V", "X\u2020<sup>1</sup>" ]
"notes": [ "N", "P", "V", "X\u2020<sup>1</sup>" ],
"_gpid_": 1523
},
{ "name": "IP Carrier Mk IIB",
"CS#": 4,
"note_number": "70\u2020",
"notes": [ "N", "P", "Q\u2020<sup>2</sup>", "V", "X\u2020<sup>1</sup>" ]
"notes": [ "N", "P", "Q\u2020<sup>2</sup>", "V", "X\u2020<sup>1</sup>" ],
"_gpid_": 1525
},
{ "name": "IP Carrier AOV",
"CS#": 4,
"note_number": "70\u2020",
"notes": [ "P", "Q\u2020<sup>1</sup>", "V", "X\u2020" ]
"notes": [ "P", "Q\u2020<sup>1</sup>", "V", "X\u2020" ],
"_gpid_": 1527
},
{ "name": "IP Carrier, 3-in. MTR",
"CS#": "5:brewup\u2020",
"capabilities": [ "IR" ],
"capabilities2": { "s": 8, "WP": 7 },
"note_number": "71\u2020<sup>2</sup>",
"notes": [ "E\u2020<sup>3</sup>", "H\u2020", "P", "V", "X\u2020<sup>1</sup>", "BB\u2020<sup>4</sup>" ]
"notes": [ "E\u2020<sup>3</sup>", "H\u2020", "P", "V", "X\u2020<sup>1</sup>", "BB\u2020<sup>4</sup>" ],
"_gpid_": [ 1529, 1531 ]
},
{ "name": "Wasp",
"CS#": "3:brewup",
"capabilities2": { "sD": "5\u2020" },
"note_number": "72\u2020",
"notes": [ "K\u2020<sup>1</sup>", "U" ]
"notes": [ "K\u2020<sup>1</sup>", "U" ],
"_gpid_": [ 1533, 1535 ]
},
{ "name": "Badger(a)",
"CS#": 3,
"note_number": "72\u2020",
"notes": [ "A", "K\u2020<sup>1</sup>", "M" ]
"notes": [ "A", "K\u2020<sup>1</sup>", "M" ],
"_gpid_": [ 1537, 1539 ]
},
{ "name": "Buffalo Mk II(a)",
"CS#": 6,
"capabilities2": { "sD": "5\u2020" },
"note_number": "73\u2020",
"notes": [ "A", "D", "AA\u2020<sup>1</sup>" ]
"notes": [ "A", "D", "AA\u2020<sup>1</sup>" ],
"_gpid_": 1541
},
{ "name": "Buffalo Mk IV(a)",
"CS#": 6,
"capabilities2": { "sD": "5\u2020" },
"note_number": "73\u2020",
"notes": [ "A", "D", "E\u2020<sup>1</sup>", "AA\u2020<sup>2</sup>" ]
"notes": [ "A", "D", "E\u2020<sup>1</sup>", "AA\u2020<sup>2</sup>" ],
"_gpid_": 1543
},
{ "name": "Sherman III DD(a)",
"CS#": "5:brewup",
"capabilities2": { "s": 8, "WP": 6, "sD": 6 },
"note_number": "74\u2020",
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
"notes": [ "A", "G", "K\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ],
"_gpid_": [ 1545, 1547 ]
},
{ "name": "DUKW(a)",
"cs#": "7\u2020<sup>1</sup>",
"note_number": "75\u2020",
"notes": [ "A", "D", "I\u2020<sup>1</sup>", "P" ]
"notes": [ "A", "D", "I\u2020<sup>1</sup>", "P" ],
"_gpid_": 1549
},
{ "name": "Terrapin Mk I",
"cs#": 7,
"note_number": "76\u2020",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 1553
},
{ "name": "2pdr Portee",
"CS#": "4\u2020<sup>1</sup>",
"note_number": "77\u2020",
"notes": [ "H\u2020<sup>1</sup>", "N", "P" ]
"notes": [ "H\u2020<sup>1</sup>", "N", "P" ],
"_gpid_": 1555
},
{ "name": "Morris C9/B",
"CS#": 4,
"note_number": "78\u2020",
"notes": [ "P", "AA\u2020<sup>1</sup>" ]
"notes": [ "P", "AA\u2020<sup>1</sup>" ],
"_gpid_": 1557
},
{ "name": "Loyd Carrier",
"cs#": 5,
"note_number": "79\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1559
},
{ "name": "Quad FAT",
"CS#": "5:brewup\u2020",
"note_number": "80\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1561
},
{ "name": "15-cwt Truck",
"cs#": 5,
"note_number": "81\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1563
},
{ "name": "30-cwt Lorry",
"cs#": 6,
"note_number": "82\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1565
},
{ "name": "3-Ton Lorry",
"cs#": 7,
"note_number": "83\u2020",
"notes": [ "N", "P" ]
"notes": [ "N", "P" ],
"_gpid_": 1567
},
{ "name": "\u00bc-Ton Jeep(a)",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "84\u2020",
"notes": [ "A", "I\u2020<sup>1</sup>", "N", "P" ]
"notes": [ "A", "I\u2020<sup>1</sup>", "N", "P" ],
"_gpid_": [ 1569, 1570 ]
},
{ "name": "\u00be-Ton Truck(a)",
"cs#": 4,
"note_number": "85",
"notes": [ "A", "N" ]
"notes": [ "A", "N" ],
"_gpid_": 1571
},
{ "name": "1\u00bd-Ton Truck(a)",
"cs#": 6,
"note_number": "85",
"notes": [ "A", "N" ]
"notes": [ "A", "N" ],
"_gpid_": 1573
},
{ "name": "2\u00bd-Ton Truck(a)",
"cs#": 7,
"note_number": "85",
"notes": [ "A", "N" ]
"notes": [ "A", "N" ],
"_gpid_": 1575
},
{ "name": "7\u00bd-Ton Truck(a)",
"cs#": 7,
"note_number": "85\u2020",
"notes": [ "A", "N" ]
"notes": [ "A", "N" ],
"_gpid_": 1577
}
]

@ -4,116 +4,137 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020",
"notes": [ "A", "<s>B</s>" ]
"notes": [ "A", "<s>B</s>" ],
"_gpid_": 2063
},
{ "name": "L3/35(i)",
"no_radio": "\u00ae",
"CS#": "2\u2020",
"note_number": "2\u2020",
"notes": [ "A", "<s>B</s>", "D\u2020<sup>1</sup>" ]
"notes": [ "A", "<s>B</s>", "D\u2020<sup>1</sup>" ],
"_gpid_": 2065
},
{ "name": "PzKpfw IA(g)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "3\u2020",
"notes": [ "A", "<s>B</s>", "D\u2020<sup>1</sup>" ]
"notes": [ "A", "<s>B</s>", "D\u2020<sup>1</sup>" ],
"_gpid_": 2067
},
{ "name": "Vickers 6-Ton Mk E(b)",
"no_radio": "\u00ae",
"CS#": 3,
"capabilities2": { "C": "5\u2020<sup>2</sup>" },
"note_number": "4\u2020",
"notes": [ "A", "<s>B</s>", "C\u2020<sup>2</sup>", "E\u2020<sup>1</sup>" ]
"notes": [ "A", "<s>B</s>", "C\u2020<sup>2</sup>", "E\u2020<sup>1</sup>" ],
"_gpid_": 2069
},
{ "name": "T-26TU M33(r)",
"CS#": 3,
"note_number": "5\u2020",
"notes": [ "A", "E\u2020<sup>1</sup>" ]
"notes": [ "A", "E\u2020<sup>1</sup>" ],
"_gpid_": [ 2071, 2073 ]
},
{ "name": "M3A3(a)",
"CS#": 4,
"capabilities2": { "C": "9\u2020<sup>1</sup>" },
"note_number": "6\u2020",
"notes": [ "A", "B", "C\u2020<sup>1</sup>", "E\u2020<sup>2</sup>", "G" ]
"notes": [ "A", "B", "C\u2020<sup>1</sup>", "E\u2020<sup>2</sup>", "G" ],
"_gpid_": [ 2075, 2077 ]
},
{ "name": "M4A4(a)",
"CS#": "5:brewup",
"capabilities2": { "s": 8, "WP": [ [7,"J4+"], "\u2020" ] },
"note_number": "7\u2020",
"notes": [ "A", "B", "E\u2020<sup>1</sup>", "G" ]
"notes": [ "A", "B", "E\u2020<sup>1</sup>", "G" ],
"_gpid_": [ 2079, 2081 ]
},
{ "name": "M3A1(a)",
"CS#": 4,
"note_number": "8\u2020",
"notes": [ "A", "B", "E\u2020<sup>1</sup>" ]
"notes": [ "A", "B", "E\u2020<sup>1</sup>" ],
"_gpid_": 2085
},
{ "name": "Stuart Recon(a)",
"CS#": 5,
"note_number": "9\u2020",
"notes": [ "A", "B", "D\u2020<sup>1</sup>", "E\u2020<sup>2</sup>" ]
"notes": [ "A", "B", "D\u2020<sup>1</sup>", "E\u2020<sup>2</sup>" ],
"_gpid_": 2087
},
{ "name": "Type 22",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "10\u2020<sup>1</sup>",
"notes": [ "<s>B</s>", "E\u2020<sup>2</sup>", "F\u2020" ]
"notes": [ "<s>B</s>", "E\u2020<sup>2</sup>", "F\u2020" ],
"_gpid_": 2089
},
{ "name": "PSW 221(g)",
"CS#": 2,
"note_number": "11\u2020",
"notes": [ "A", "<s>B</s>", "F\u2020" ]
"notes": [ "A", "<s>B</s>", "F\u2020" ],
"_gpid_": 2091
},
{ "name": "PSW 222(g)",
"CS#": 3,
"note_number": "11\u2020",
"notes": [ "A", "<s>B</s>", "E\u2020<sup>1</sup>", "F\u2020" ]
"notes": [ "A", "<s>B</s>", "E\u2020<sup>1</sup>", "F\u2020" ],
"_gpid_": 2093
},
{ "name": "BA-20(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "12",
"notes": [ "A", "<s>B</s>", "F\u2020" ]
"notes": [ "A", "<s>B</s>", "F\u2020" ],
"_gpid_": 2095
},
{ "name": "BA-6(r)",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "12",
"notes": [ "A", "<s>B</s>", "E\u2020<sup>1</sup>", "F\u2020" ]
"notes": [ "A", "<s>B</s>", "E\u2020<sup>1</sup>", "F\u2020" ],
"_gpid_": 2097
},
{ "name": "VCL Mk VI Carrier(b)",
"CS#": "2\u2020",
"note_number": "13\u2020",
"notes": [ "A", "<s>B</s>", "H\u2020<sup>1</sup>" ]
"notes": [ "A", "<s>B</s>", "H\u2020<sup>1</sup>" ],
"_gpid_": [ 2101, 2103 ]
},
{ "name": "Carrier A(b)",
"CS#": 3,
"note_number": "14\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2105
},
{ "name": "Carrier B(b)",
"CS#": 3,
"note_number": "14\u2020",
"notes": [ "A", "E\u2020<sup>1</sup>" ]
"notes": [ "A", "E\u2020<sup>1</sup>" ],
"_gpid_": 2107
},
{ "name": "Carrier C(b)",
"CS#": 3,
"note_number": "14\u2020",
"notes": [ "A", "E\u2020<sup>1</sup>" ]
"notes": [ "A", "E\u2020<sup>1</sup>" ],
"_gpid_": 2109
},
{ "name": "Henschel 33(g)",
"cs#": 7,
"note_number": "15\u2020<sup>1</sup>",
"notes": [ "A", "F\u2020" ]
"notes": [ "A", "F\u2020" ],
"_gpid_": 2111
},
{ "name": "Jeep(a)",
"cs#": "2\u2020",
"note_number": "16\u2020",
"notes": [ "A", "H\u2020<sup>1</sup>" ]
"notes": [ "A", "H\u2020<sup>1</sup>" ],
"_gpid_": 2113
},
{ "name": "2\u00bd-Ton(a)",
"cs#": 7,
"note_number": "16\u2020",
"notes": [ "A" ]
"notes": [ "A" ],
"_gpid_": 2116
}
]

@ -4,103 +4,120 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": 6841
},
{ "name": "T-50(r)",
"CS#": 4,
"note_number": "2\u2020",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 6849
},
{ "name": "Vikkersi(b)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "3\u2020",
"notes": [ "B\u2020<sup>1</sup>", "D" ]
"notes": [ "B\u2020<sup>1</sup>", "D" ],
"_gpid_": 6853
},
{ "name": "T-26E(b)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "4",
"notes": [ "B\u2020", "D" ]
"notes": [ "B\u2020", "D" ],
"_gpid_": 6861
},
{ "name": "T-26A(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "5\u2020",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": 6865
},
{ "name": "T-26B(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "6",
"notes": [ "C\u2020", "D", "M" ]
"notes": [ "C\u2020", "D", "M" ],
"_gpid_": [ 7220, 6869 ]
},
{ "name": "T-26C(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "7",
"notes": [ "C\u2020", "D", "M" ]
"notes": [ "C\u2020", "D", "M" ],
"_gpid_": 6873
},
{ "name": "OT-133(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "8",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": 6877
},
{ "name": "BT-5(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "9",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": 6881
},
{ "name": "BT-7(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "9",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": 6885
},
{ "name": "Postijuna(r)",
"no_radio": "\u00ae",
"CS#": 5,
"capabilities2": { "s": 8 },
"note_number": "10",
"notes": [ "D", "F\u2020", "M" ]
"notes": [ "D", "F\u2020", "M" ],
"_gpid_": 6891
},
{ "name": "Postijuna(L)(r)",
"no_radio": "\u00ae",
"CS#": 6,
"capabilities2": { "s": 8 },
"note_number": "11",
"notes": [ "D", "F\u2020", "M" ]
"notes": [ "D", "F\u2020", "M" ],
"_gpid_": 6895
},
{ "name": "Sotka(r)",
"CS#": 5,
"capabilities2": { "A": [ [3,"2+"] ] },
"note_number": "12\u2020",
"notes": [ "D", "E", "M" ]
"notes": [ "D", "E", "M" ],
"_gpid_": 6903
},
{ "name": "Sotka(L)(r)",
"CS#": 5,
"capabilities2": { "A": 3 },
"note_number": "13\u2020",
"notes": [ "D", "E" ]
"notes": [ "D", "E" ],
"_gpid_": 6907
},
{ "name": "Pitk\u00e4putkinen Sotka(r)",
"CS#": 6,
"capabilities2": { "A": 3, "sD": "6\u2020" },
"note_number": "14\u2020",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 6911
},
{ "name": "KV-1E(r)",
"CS#": 6,
"note_number": "15\u2020",
"notes": [ "D", "E", "M" ]
"notes": [ "D", "E", "M" ],
"_gpid_": 6917
},
{ "name": "KV-1 M42(r)",
"CS#": 6,
"capabilities2": { "A": 3 },
"note_number": "15\u2020",
"notes": [ "D", "E", "M" ]
"notes": [ "D", "E", "M" ],
"_gpid_": 6921
},
{ "name": "BT-42(r)",
"no_radio": "\u00ae",
@ -109,74 +126,89 @@
"capabilities": [ "H\u2020" ],
"capabilities2": { "s": 6 },
"note_number": "16\u2020",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": 6925
},
{ "name": "Sturmi(g)",
"CS#": 4,
"capabilities2": { "A": 3, "H": 4, "s": 8 },
"note_number": "17\u2020",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 6929
},
{ "name": "Landsverk Anti II(s)",
"no_radio": "\u00ae",
"CS#": 6,
"note_number": "18",
"notes": [ "A\u2020", "D" ]
"notes": [ "A\u2020", "D" ],
"_gpid_": 6933
},
{ "name": "L182(s)",
"CS#": 5,
"note_number": "19\u2020"
"note_number": "19\u2020",
"_gpid_": 6937
},
{ "name": "L182(L)(s)",
"CS#": 5,
"note_number": "19\u2020"
"note_number": "19\u2020",
"_gpid_": 6941
},
{ "name": "BA-20(r)",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "20\u2020"
"note_number": "20\u2020",
"_gpid_": 6945
},
{ "name": "BA-6(r)",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "21",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 6949
},
{ "name": "GAZ-4M-AA(r)",
"CS#": 4,
"note_number": "22\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 6955
},
{ "name": "T-20(r)",
"CS#": "2\u2020",
"note_number": "23\u2020",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 6959
},
{ "name": "RSO(g)",
"cs#": 5,
"note_number": "24",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 6967
},
{ "name": "STZ-3(r)",
"cs#": 4,
"note_number": "25",
"notes": [ "D" ]
"notes": [ "D" ],
"_gpid_": 6975
},
{ "name": "Tempo G1200",
"cs#": 2,
"note_number": "26\u2020"
"note_number": "26\u2020",
"_gpid_": 6979
},
{ "name": "Light Truck",
"cs#": 6,
"note_number": "27\u2020"
"note_number": "27\u2020",
"_gpid_": 6981
},
{ "name": "Medium Truck",
"cs#": 7,
"note_number": "27\u2020"
"note_number": "27\u2020",
"_gpid_": 6985
},
{ "name": "Heavy Truck",
"cs#": 7,
"note_number": "27"
"note_number": "27",
"_gpid_": 6991
}
]

@ -4,119 +4,137 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020",
"notes": [ "C" ]
"notes": [ "C" ],
"_gpid_": 1713
},
{ "name": "FT-17C",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 9 },
"note_number": "1\u2020",
"notes": [ "C" ]
"notes": [ "C" ],
"_gpid_": 1715
},
{ "name": "FT-17 75BS",
"no_radio": "\u00ae",
"CS#": "3:brewup",
"no_if": true,
"note_number": "1\u2020",
"notes": [ "C" ]
"notes": [ "C" ],
"_gpid_": 1717
},
{ "name": "AMR 33",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "2\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 1719
},
{ "name": "AMR 35",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "3\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 1721
},
{ "name": "AMR 35(L)",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "3\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 1723
},
{ "name": "R35",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "4\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C" ]
"notes": [ "A\u2020<sup>1</sup>", "C" ],
"_gpid_": 1725
},
{ "name": "H35",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "5\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "E" ]
"notes": [ "A\u2020<sup>1</sup>", "C", "E" ],
"_gpid_": 1731
},
{ "name": "FCM 36",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "6\u2020",
"notes": [ "C", "E", "I\u2020<sup>1</sup>" ]
"notes": [ "C", "E", "I\u2020<sup>1</sup>" ],
"_gpid_": 1735
},
{ "name": "H39",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "7\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "F" ]
"notes": [ "A\u2020<sup>1</sup>", "C", "F" ],
"_gpid_": [ 1737, 1739 ]
},
{ "name": "H39(L)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "8\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "F" ]
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "F" ],
"_gpid_": [ 1741, 1743 ]
},
{ "name": "H35(L)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "8\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "E" ]
"notes": [ "A\u2020<sup>1</sup>", "C", "E" ],
"_gpid_": 1733
},
{ "name": "R35(L)",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "8\u2020",
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "F" ]
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "F" ],
"_gpid_": [ 1727, 1729 ]
},
{ "name": "R40",
"no_radio": "\u00ae",
"CS#": 2,
"capabilities2": { "AP": 10 },
"note_number": "9",
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "I\u2020" ]
"notes": [ "A\u2020<sup>1</sup>", "C", "E", "I\u2020" ],
"_gpid_": 1745
},
{ "name": "D1",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 3,
"note_number": "10\u2020",
"notes": [ "B\u2020<sup>3</sup>", "C", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
"notes": [ "B\u2020<sup>3</sup>", "C", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ],
"_gpid_": 1747
},
{ "name": "D2",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 3,
"note_number": "11\u2020",
"notes": [ "B\u2020<sup>3</sup>", "C", "E", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
"notes": [ "B\u2020<sup>3</sup>", "C", "E", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ],
"_gpid_": 1749
},
{ "name": "D2(L)",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 3,
"note_number": "11\u2020",
"notes": [ "A\u2020<sup>4</sup>", "B\u2020<sup>3</sup>", "C", "E", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>4</sup>", "B\u2020<sup>3</sup>", "C", "E", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ],
"_gpid_": 1751
},
{ "name": "S35",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 4,
"note_number": "12\u2020",
"notes": [ "A\u2020<sup>3</sup>", "C", "F", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>3</sup>", "C", "F", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ],
"_gpid_": [ 1753, 1755 ]
},
{ "name": "B1-bis",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
@ -124,168 +142,200 @@
"no_if": "75\u2020",
"capabilities": [ "AP9<sup>75</sup>\u2020" ],
"note_number": "13\u2020",
"notes": [ "A\u2020<sup>4</sup>", "B\u2020<sup>3</sup>", "C", "E", "F", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>4</sup>", "B\u2020<sup>3</sup>", "C", "E", "F", "I\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ],
"_gpid_": [ 1757, 1759 ]
},
{ "name": "Valentine V(b)",
"CS#": 4,
"capabilities2": { "sM": 8 },
"note_number": "14\u2020",
"notes": [ "F" ]
"notes": [ "F" ],
"_gpid_": [ 1761, 1763 ]
},
{ "name": "AM Dodge(a)",
"CS#": "6\u2020",
"capabilities2": { "AP": 10 },
"note_number": "15\u2020",
"notes": [ "F" ]
"notes": [ "F" ],
"_gpid_": [ 1767, 1769, 1771 ]
},
{ "name": "AMD 20 cv TOE",
"no_radio": "\u00ae9\u2020<sup>1</sup>",
"CS#": 4,
"capabilities2": { "AP": 9 },
"note_number": "16\u2020",
"notes": [ "D\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ]
"notes": [ "D\u2020<sup>2</sup>", "R\u2020<sup>1</sup>" ],
"_gpid_": 1773
},
{ "name": "AMD 50 AM",
"no_radio": "\u00ae",
"CS#": 4,
"capabilities2": { "AP": 9 },
"note_number": "17\u2020",
"notes": [ "D\u2020<sup>1</sup>" ]
"notes": [ "D\u2020<sup>1</sup>" ],
"_gpid_": 1775
},
{ "name": "AMD 80 AM",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "17\u2020",
"notes": [ "D\u2020<sup>1</sup>" ]
"notes": [ "D\u2020<sup>1</sup>" ],
"_gpid_": 1777
},
{ "name": "AMD 35",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "18\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": [ 1779, 1781 ]
},
{ "name": "Laffly W15T CC",
"CS#": 3,
"note_number": "19\u2020",
"notes": [ "E", "J\u2020<sup>1</sup>" ]
"notes": [ "E", "J\u2020<sup>1</sup>" ],
"_gpid_": 1785
},
{ "name": "Ac de 75 Conus(b)",
"CS#": 5,
"capabilities2": { "s": 8 },
"note_number": "20\u2020",
"notes": [ "F", "M\u2020<sup>1</sup>" ]
"notes": [ "F", "M\u2020<sup>1</sup>" ],
"_gpid_": 1787
},
{ "name": "Ac de 75 mle 97",
"CS#": 4,
"capabilities2": { "s": 8 },
"note_number": "20\u2020",
"notes": [ "M\u2020<sup>1</sup>" ]
"notes": [ "M\u2020<sup>1</sup>" ],
"_gpid_": 1789
},
{ "name": "Camion de Mitrailleuse CA",
"CS#": 4,
"note_number": "21\u2020"
"note_number": "21\u2020",
"_gpid_": 1791
},
{ "name": "Camion de 13.2 CAJ",
"CS#": 4,
"note_number": "21\u2020",
"notes": [ "AA\u2020<sup>1</sup>" ]
"notes": [ "AA\u2020<sup>1</sup>" ],
"_gpid_": 1793
},
{ "name": "Camion de 20 CA",
"CS#": 4,
"note_number": "21\u2020",
"notes": [ "AA\u2020<sup>1</sup>" ]
"notes": [ "AA\u2020<sup>1</sup>" ],
"_gpid_": 1795
},
{ "name": "Ac de 25 CA",
"CS#": 4,
"note_number": "21\u2020",
"notes": [ "F", "AA\u2020<sup>1</sup>" ]
"notes": [ "F", "AA\u2020<sup>1</sup>" ],
"_gpid_": 1797
},
{ "name": "Ac de 40 CA(a)",
"CS#": 4,
"note_number": "22",
"notes": [ "E", "F", "M\u2020", "AA\u2020<sup>1</sup>" ]
"notes": [ "E", "F", "M\u2020", "AA\u2020<sup>1</sup>" ],
"_gpid_": 1801
},
{ "name": "Ac de 75 mle 13/34",
"CS#": 7,
"note_number": "23\u2020",
"notes": [ "D\u2020<sup>1</sup>", "F", "AA\u2020<sup>2</sup>" ]
"notes": [ "D\u2020<sup>1</sup>", "F", "AA\u2020<sup>2</sup>" ],
"_gpid_": 1803
},
{ "name": "AMC 29",
"no_radio": "\u00ae",
"CS#": 3,
"capabilities2": { "AP": 9 },
"note_number": "24\u2020"
"note_number": "24\u2020",
"_gpid_": 1807
},
{ "name": "C-K P17",
"cs#": 4,
"note_number": "25\u2020"
"note_number": "25\u2020",
"_gpid_": 1809
},
{ "name": "C-K P19",
"cs#": 5,
"note_number": "25\u2020",
"notes": [ "H\u2020<sup>1</sup>" ]
"notes": [ "H\u2020<sup>1</sup>" ],
"_gpid_": 1811
},
{ "name": "SOMUA MCG",
"cs#": 4,
"note_number": "26\u2020"
"note_number": "26\u2020",
"_gpid_": 1813
},
{ "name": "Unic P107",
"cs#": 5,
"note_number": "27\u2020",
"notes": [ "L\u2020<sup>1</sup>" ]
"notes": [ "L\u2020<sup>1</sup>" ],
"_gpid_": 1815
},
{ "name": "Renault UE",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "28\u2020",
"notes": [ "G\u2020<sup>1</sup>", "K" ]
"notes": [ "G\u2020<sup>1</sup>", "K" ],
"_gpid_": [ 1817, 1819 ]
},
{ "name": "Lorraine 38L",
"cs#": "3/2\u2020",
"note_number": "29\u2020",
"notes": [ "E", "H\u2020" ]
"notes": [ "E", "H\u2020" ],
"_gpid_": 1821
},
{ "name": "Lorraine 37L 44",
"CS#": 3,
"note_number": "30\u2020",
"notes": [ "E", "K" ]
"notes": [ "E", "K" ],
"_gpid_": 1824
},
{ "name": "Carrier AC(b)",
"CS#": 3,
"note_number": "31\u2020",
"notes": [ "F", "M\u2020<sup>1</sup>" ]
"notes": [ "F", "M\u2020<sup>1</sup>" ],
"_gpid_": 1826
},
{ "name": "Latil TAR H2",
"cs#": 5,
"note_number": "32\u2020",
"notes": [ "J\u2020<sup>1</sup>" ]
"notes": [ "J\u2020<sup>1</sup>" ],
"_gpid_": 1828
},
{ "name": "Laffly S15T",
"cs#": 5,
"note_number": "33\u2020",
"notes": [ "J\u2020<sup>1</sup>", "L\u2020<sup>2</sup>" ]
"notes": [ "J\u2020<sup>1</sup>", "L\u2020<sup>2</sup>" ],
"_gpid_": 1830
},
{ "name": "Laffly S20TL",
"cs#": 5,
"note_number": "34\u2020",
"notes": [ "E", "J\u2020<sup>1</sup>" ]
"notes": [ "E", "J\u2020<sup>1</sup>" ],
"_gpid_": 1832
},
{ "name": "Laffly V15T",
"cs#": 5,
"note_number": "35",
"notes": [ "E", "J\u2020" ]
"notes": [ "E", "J\u2020" ],
"_gpid_": 1834
},
{ "name": "Peugeot 202",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "36\u2020",
"notes": [ "G\u2020<sup>1</sup>" ]
"notes": [ "G\u2020<sup>1</sup>" ],
"_gpid_": 1836
},
{ "name": "Citro\u00ebn 23",
"cs#": 5,
"note_number": "36\u2020"
"note_number": "36\u2020",
"_gpid_": 1837
},
{ "name": "Renault AGR2",
"cs#": 7,
"note_number": "36\u2020"
"note_number": "36\u2020",
"_gpid_": 1839
}
]

@ -4,458 +4,538 @@
"CS#": 2,
"capabilities2": { "sD": 6 },
"note_number": "1\u2020",
"notes": [ "N<sup>F</sup>" ]
"notes": [ "N<sup>F</sup>" ],
"_gpid_": 2524
},
{ "name": "PzKpfw IIA",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "2"
"note_number": "2",
"_gpid_": 2526
},
{ "name": "PzKpfw IIF",
"CS#": 3,
"capabilities2": { "sD": 7 },
"note_number": "3",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2528
},
{ "name": "PzKpfw II(Fl)",
"CS#": "2:brewup",
"capabilities2": { "sD": "7\u2020" },
"note_number": "4\u2020"
"note_number": "4\u2020",
"_gpid_": 2530
},
{ "name": "PzKpfw IIL",
"CS#": 4,
"capabilities2": { "sD": 7 },
"note_number": "5"
"note_number": "5",
"_gpid_": 2532
},
{ "name": "PzKpfw 35t",
"CS#": 4,
"capabilities2": { "sD": 5 },
"note_number": "6\u2020"
"note_number": "6\u2020",
"_gpid_": 2534
},
{ "name": "PzKpfw 38(t)A",
"CS#": 4,
"capabilities2": { "A": [ [4,1], [5,2] ], "sD": 6 },
"note_number": "7\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 2536
},
{ "name": "PzKpfw 38(t)E",
"CS#": 4,
"capabilities2": { "A": [ [4,1], [5,2] ], "sD": 7 },
"note_number": "8\u2020",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 2538
},
{ "name": "Aufklaerer 38(t)",
"CS#": 5,
"note_number": "9",
"notes": [ "A\u2020", "E" ]
"notes": [ "A\u2020", "E" ],
"_gpid_": 2540
},
{ "name": "FT-17 730m(f)",
"CS#": 2,
"note_number": "9.1\u2020",
"notes": [ "a", "c", "f" ]
"notes": [ "a", "c", "f" ],
"_gpid_": [ 2542, 7124 ]
},
{ "name": "FT-17 730(f)",
"CS#": 2,
"capabilities2": { "AP": 9 },
"note_number": "9.1\u2020",
"notes": [ "a", "c", "f" ]
"notes": [ "a", "c", "f" ],
"_gpid_": [ 2544, 7128 ]
},
{ "name": "38H 735(f)",
"CS#": 3,
"capabilities2": { "AP": 10 },
"note_number": "9.2",
"notes": [ "a", "b\u2020", "f" ]
"notes": [ "a", "b\u2020", "f" ],
"_gpid_": [ 2546, 7132 ]
},
{ "name": "35-S 739(f)",
"CS#": 4,
"note_number": "9.3",
"notes": [ "a", "b\u2020<sup>2</sup>", "d\u2020<sup>1</sup>", "f" ]
"notes": [ "a", "b\u2020<sup>2</sup>", "d\u2020<sup>1</sup>", "f" ],
"_gpid_": [ 2548, 7136 ]
},
{ "name": "PzKpfw IIID",
"CS#": 5,
"capabilities2": { "sD": 6 },
"note_number": "10\u2020"
"note_number": "10\u2020",
"_gpid_": 2552
},
{ "name": "PzKpfw IIIF",
"CS#": 5,
"capabilities2": { "A": [ [4,1] ], "sD": 7 },
"note_number": "11\u2020"
"note_number": "11\u2020",
"_gpid_": 2554
},
{ "name": "PzKpfw IIIG",
"CS#": 5,
"capabilities2": { "A": [ [4,1] ], "sD": 7 },
"note_number": "12",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2556
},
{ "name": "PzKpfw IIIH",
"CS#": 6,
"capabilities2": { "A": [ [4,1] ], "sD": 7 },
"note_number": "13\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2558
},
{ "name": "PzKpfw IIIJ",
"CS#": 6,
"capabilities2": { "A": [ [6,2] ], "sD": 7 },
"note_number": "14\u2020",
"notes": [ "N", "S" ]
"notes": [ "N", "S" ],
"_gpid_": 2560
},
{ "name": "PzKpfw IIIL",
"CS#": 5,
"capabilities2": { "A": [ [6,2] ], "sD": 7 },
"note_number": "15\u2020",
"notes": [ "B\u2020", "N", "S" ]
"notes": [ "B\u2020", "N", "S" ],
"_gpid_": [ 2562, 2564 ]
},
{ "name": "PzKpfw IIIN",
"CS#": 5,
"capabilities2": { "H": 9, "s": 9, "sD": 7 },
"note_number": "16",
"notes": [ "B\u2020", "N<sup>T</sup>", "S" ]
"notes": [ "B\u2020", "N<sup>T</sup>", "S" ],
"_gpid_": [ 2566, 2568 ]
},
{ "name": "PzKpfw III(Fl)",
"CS#": 3,
"capabilities2": { "sD": 7 },
"note_number": "17"
"note_number": "17",
"_gpid_": 2570
},
{ "name": "PzKpfw IVA",
"CS#": 5,
"capabilities2": { "AP": 7, "s": 9, "sD": 6 },
"note_number": "18\u2020"
"note_number": "18\u2020",
"_gpid_": 2572
},
{ "name": "PzKpfw IVC",
"CS#": 5,
"capabilities2": { "AP": 7, "s": 9, "sD": 6 },
"note_number": "19\u2020"
"note_number": "19\u2020",
"_gpid_": 2574
},
{ "name": "PzKpfw IVD",
"CS#": 5,
"capabilities2": { "H": 6, "AP": 7, "s": 9, "sD": 7 },
"note_number": "20",
"notes": [ "N", "R\u2020" ]
"notes": [ "N", "R\u2020" ],
"_gpid_": 2576
},
{ "name": "PzKpfw IVE",
"CS#": 6,
"capabilities2": { "H": 6, "AP": 7, "s": 9, "sD": 7 },
"note_number": "21",
"notes": [ "N", "R\u2020" ]
"notes": [ "N", "R\u2020" ],
"_gpid_": 2578
},
{ "name": "PzKpfw IVF<sub>1</sub>",
"CS#": 6,
"capabilities2": { "H": 6, "AP": 7, "s": 9, "sD": 7 },
"note_number": "22",
"notes": [ "N", "R\u2020" ]
"notes": [ "N", "R\u2020" ],
"_gpid_": 2580
},
{ "name": "PzKpfw IVF<sub>2</sub>",
"CS#": 6,
"capabilities2": { "A": [ [5,2] ], "s": 8, "sD": 6 },
"note_number": "23\u2020",
"notes": [ "N", "S" ]
"notes": [ "N", "S" ],
"_gpid_": 2582
},
{ "name": "PzKpfw IVH",
"CS#": 6,
"capabilities2": { "A": [ [5,2] ], "s": 8, "sD": 5 },
"note_number": "24\u2020",
"notes": [ "B\u2020", "S" ]
"notes": [ "B\u2020", "S" ],
"_gpid_": [ 2584, 2586, 2807, 2809 ]
},
{ "name": "PzKpfw IVJ",
"CS#": 6,
"capabilities2": { "A": [ [3,4] ], "s": 8, "sN": 9 },
"note_number": "25",
"notes": [ "S" ]
"notes": [ "S" ],
"_gpid_": [ 2588, 2811 ]
},
{ "name": "PzKpfw VD",
"CS#": "5:brewup",
"capabilities2": { "sD": 5 },
"note_number": "26",
"notes": [ "F\u2020" ]
"notes": [ "F\u2020" ],
"_gpid_": 2590
},
{ "name": "PzKpfw VG",
"CS#": 6,
"capabilities2": { "sN": [ [7,4] ] },
"note_number": "27\u2020",
"notes": [ "H\u2020" ]
"notes": [ "H\u2020" ],
"_gpid_": [ 2592, 2813 ]
},
{ "name": "PzKpfw M15/42(i)",
"CS#": 4,
"note_number": "28",
"notes": [ "I" ]
"notes": [ "I" ],
"_gpid_": 2594
},
{ "name": "PzKpfw P26/40(i)",
"CS#": 4,
"capabilities2": { "s": 8 },
"note_number": "29",
"notes": [ "I" ]
"notes": [ "I" ],
"_gpid_": 2596
},
{ "name": "PzKpfw VIE",
"CS#": 6,
"capabilities2": { "A": [ [6,2] ], "sD": 7, "M": "7\u2020" },
"note_number": "30\u2020",
"notes": [ "K", "N<sup>FT</sup>" ]
"notes": [ "K", "N<sup>FT</sup>" ],
"_gpid_": 2598
},
{ "name": "PzKpfw VIE (L)",
"CS#": 6,
"capabilities2": { "A": [ [4,4] ], "sN": [ [7,4] ] },
"note_number": "31",
"notes": [ "K" ]
"notes": [ "K" ],
"_gpid_": 2600
},
{ "name": "PzKpfw VIB",
"CS#": 6,
"capabilities2": { "sN": 9 },
"note_number": "32\u2020",
"notes": [ "K" ]
"notes": [ "K" ],
"_gpid_": 2602
},
{ "name": "StuG IIIB",
"CS#": 4,
"capabilities2": { "H": 6, "AP": 7, "s": 9, "sD": 7 },
"note_number": "33\u2020"
"note_number": "33\u2020",
"_gpid_": 2608
},
{ "name": "StuG IIIG",
"CS#": 4,
"capabilities2": { "A": [ [6,2] ], "s": 8, "sD": 7 },
"note_number": "34\u2020",
"notes": [ "N<sup>FT</sup>", "P\u2020", "S" ]
"notes": [ "N<sup>FT</sup>", "P\u2020", "S" ],
"_gpid_": 2610
},
{ "name": "StuG IIIG (L)",
"CS#": 4,
"capabilities2": { "A": [ [4,4] ], "s": 8, "sN": 9 },
"note_number": "35",
"notes": [ "O\u2020", "Q\u2020", "S" ]
"notes": [ "O\u2020", "Q\u2020", "S" ],
"_gpid_": 2612
},
{ "name": "StuH 42",
"CS#": 4,
"capabilities2": { "H": 9, "s": 9, "sD": 7 },
"note_number": "36\u2020",
"notes": [ "N<sup>FT</sup>", "P\u2020", "S" ]
"notes": [ "N<sup>FT</sup>", "P\u2020", "S" ],
"_gpid_": 2614
},
{ "name": "StuH 42 (L)",
"CS#": 4,
"capabilities2": { "H": 9, "s": 9, "sN": 9 },
"note_number": "35",
"notes": [ "O\u2020", "Q\u2020", "S" ]
"notes": [ "O\u2020", "Q\u2020", "S" ],
"_gpid_": 2616
},
{ "name": "StuPz IV",
"CS#": 6,
"no_if": true,
"capabilities2": { "H": 7, "s": 9 },
"note_number": "37\u2020",
"notes": [ "S" ]
"notes": [ "S" ],
"_gpid_": [ 2618, 2620 ]
},
{ "name": "Sturmtiger",
"CS#": 5,
"no_if": true,
"capabilities2": { "sN": 9 },
"note_number": "37.1\u2020",
"notes": [ "K" ]
"notes": [ "K" ],
"_gpid_": null
},
{ "name": "PzJg Tiger",
"CS#": 7,
"note_number": "38"
"note_number": "38",
"_gpid_": [ 2622, 2624 ]
},
{ "name": "StuG 75/18(i)",
"CS#": 3,
"capabilities2": { "H": 7, "s": 9 },
"note_number": "39",
"notes": [ "I", "P\u2020" ]
"notes": [ "I", "P\u2020" ],
"_gpid_": 2626
},
{ "name": "StuG 75/34(i)",
"CS#": 3,
"capabilities2": { "s": 9 },
"note_number": "40",
"notes": [ "I", "P\u2020" ]
"notes": [ "I", "P\u2020" ],
"_gpid_": 2628
},
{ "name": "StuG 105/25(i)",
"CS#": 3,
"no_if": true,
"capabilities2": { "H": 7, "s": 9 },
"note_number": "41",
"notes": [ "I", "P\u2020" ]
"notes": [ "I", "P\u2020" ],
"_gpid_": 2630
},
{ "name": "StuG 75/46(i)",
"CS#": 3,
"capabilities2": { "s": 9 },
"note_number": "42",
"notes": [ "I", "P\u2020" ]
"notes": [ "I", "P\u2020" ],
"_gpid_": 2632
},
{ "name": "PzJg I",
"CS#": 3,
"capabilities2": { "A": [ [5,1] ], "HE": 7 },
"note_number": "43",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2634
},
{ "name": "PzJg 35R(f)",
"CS#": 3,
"capabilities2": { "A": [ [5,1] ], "HE": 7 },
"note_number": "44",
"notes": [ "a" ]
"notes": [ "a" ],
"_gpid_": 2636
},
{ "name": "Pz 35R 731(f)",
"CS#": 2,
"note_number": "44.1\u2020",
"notes": [ "a" ]
"notes": [ "a" ],
"_gpid_": 2550
},
{ "name": "Marder I",
"CS#": "4:brewup",
"capabilities2": { "A": [ [6,2] ], "HE": 7, "s": 7 },
"note_number": "45\u2020",
"notes": [ "a" ]
"notes": [ "a" ],
"_gpid_": 2640
},
{ "name": "GSW 39H(f) Pak",
"CS#": 3,
"capabilities2": { "A": [ [4,4] ], "HE": 9 },
"note_number": "45.1",
"notes": [ "a", "e" ]
"notes": [ "a", "e" ],
"_gpid_": 2638
},
{ "name": "Marder II",
"CS#": "4:brewup",
"capabilities2": { "A": [ [6,2] ], "HE": 7, "s": 7 },
"note_number": "46",
"notes": [ "M\u2020", "N<sup>FT</sup>" ]
"notes": [ "M\u2020", "N<sup>FT</sup>" ],
"_gpid_": [ 2642, 2644 ]
},
{ "name": "Marder III(t)H",
"CS#": "4:brewup",
"capabilities2": { "A": [ [6,2] ], "HE": 7, "s": 7, "sD": 6 },
"note_number": "47",
"notes": [ "E", "G", "N<sup>F</sup>" ]
"notes": [ "E", "G", "N<sup>F</sup>" ],
"_gpid_": 2646
},
{ "name": "Marder III(t)M",
"CS#": "4:brewup",
"capabilities2": { "A": [ [5,3] ], "HE": 7, "s": 7, "sD": 5 },
"note_number": "48",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 2648
},
{ "name": "PzJg III/IV",
"CS#": 5,
"capabilities2": { "HE": 7 },
"note_number": "49",
"notes": [ "M\u2020" ]
"notes": [ "M\u2020" ],
"_gpid_": [ 2650, 2652 ]
},
{ "name": "JgdPz 38(t)",
"CS#": 4,
"capabilities2": { "A": [ [4,4] ], "HE": 7 },
"note_number": "50",
"notes": [ "E", "O\u2020" ]
"notes": [ "E", "O\u2020" ],
"_gpid_": 2654
},
{ "name": "JgdPz 38(t) (Fl)",
"CS#": 4,
"note_number": "51",
"notes": [ "E", "O\u2020" ]
"notes": [ "E", "O\u2020" ],
"_gpid_": 2656
},
{ "name": "JgdPz IV",
"CS#": 4,
"capabilities2": { "A": [ [4,4] ], "HE": 7, "s": 7, "sN": [ [7,4] ] },
"note_number": "52",
"notes": [ "S" ]
"notes": [ "S" ],
"_gpid_": 2658
},
{ "name": "JgdPz IV (L)",
"CS#": 4,
"capabilities2": { "A": [ [4,4] ], "HE": 7, "s": 7, "sN": [ [8,4] ] },
"note_number": "52",
"notes": [ "S" ]
"notes": [ "S" ],
"_gpid_": 2660
},
{ "name": "StuIG 33B",
"CS#": 5,
"no_if": true,
"capabilities2": { "H": 7, "s": 9 },
"note_number": "53\u2020"
"note_number": "53\u2020",
"_gpid_": 2668
},
{ "name": "JgdPz IV/70",
"CS#": 4,
"capabilities2": { "HE": 7, "sN": 9 },
"note_number": "54\u2020",
"notes": [ "S" ]
"notes": [ "S" ],
"_gpid_": 2662
},
{ "name": "JgdPz V",
"CS#": 6,
"capabilities2": { "HE": 7, "sN": 9 },
"note_number": "55",
"notes": [ "H" ]
"notes": [ "H" ],
"_gpid_": [ 2664, 2815 ]
},
{ "name": "JgdPz VI",
"CS#": 7,
"capabilities2": { "HE": 7, "sN": 9 },
"note_number": "56"
"note_number": "56",
"_gpid_": 2666
},
{ "name": "SPW 250/1",
"CS#": 4,
"note_number": "57",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2674
},
{ "name": "SPW 250/sMG",
"CS#": "4\u2020",
"note_number": "58\u2020",
"notes": [ "J\u2020", "N" ]
"notes": [ "J\u2020", "N" ],
"_gpid_": 2676
},
{ "name": "SPW 250/7",
"CS#": "4:brewup",
"capabilities": [ "IR" ],
"capabilities2": { "s": 8 },
"note_number": "59",
"notes": [ "J\u2020", "N" ]
"notes": [ "J\u2020", "N" ],
"_gpid_": 2678
},
{ "name": "SPW 250/8",
"CS#": "4:brewup",
"capabilities2": { "H": 6, "s": 8 },
"note_number": "60",
"notes": [ "Q\u2020" ]
"notes": [ "Q\u2020" ],
"_gpid_": [ 2680, 2682 ]
},
{ "name": "SPW 250/9",
"CS#": 4,
"note_number": "61\u2020",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 2684
},
{ "name": "SPW 250/10",
"CS#": 4,
"capabilities2": { "A": [ [4,1] ] },
"note_number": "62",
"notes": [ "J\u2020", "N" ]
"notes": [ "J\u2020", "N" ],
"_gpid_": 2686
},
{ "name": "SPW 251/1",
"CS#": 5,
"note_number": "63",
"notes": [ "C\u2020", "N" ]
"notes": [ "C\u2020", "N" ],
"_gpid_": [ 2688, 2805 ]
},
{ "name": "SPW 251/sMG",
"CS#": "5\u2020",
"note_number": "58\u2020",
"notes": [ "C\u2020", "J\u2020", "N" ]
"notes": [ "C\u2020", "J\u2020", "N" ],
"_gpid_": 2690
},
{ "name": "SPW 251/2",
"CS#": "4:brewup",
"capabilities": [ "IR" ],
"capabilities2": { "s": 8 },
"note_number": "59",
"notes": [ "C\u2020", "J\u2020", "N" ]
"notes": [ "C\u2020", "J\u2020", "N" ],
"_gpid_": 2692
},
{ "name": "SPW 251/9",
"CS#": "4:brewup",
"capabilities2": { "H": 6, "s": 9 },
"note_number": "64",
"notes": [ "C\u2020", "N", "Q\u2020" ]
"notes": [ "C\u2020", "N", "Q\u2020" ],
"_gpid_": [ 2694, 2696 ]
},
{ "name": "SPW 251/10",
"CS#": 4,
"capabilities2": { "A": [ [4,1] ] },
"note_number": "65",
"notes": [ "C\u2020", "J\u2020", "N" ]
"notes": [ "C\u2020", "J\u2020", "N" ],
"_gpid_": 2698
},
{ "name": "SPW 251/16",
"CS#": "4:brewup",
"note_number": "66\u2020"
"note_number": "66\u2020",
"_gpid_": 2700
},
{ "name": "SPW 251/21",
"CS#": 4,
"note_number": "66.1\u2020"
"note_number": "66.1\u2020",
"_gpid_": 2702
},
{ "name": "SPW 251/22",
"CS#": "4:brewup",
"capabilities2": { "HE": 7, "s": 7 },
"note_number": "67",
"notes": [ "J\u2020" ]
"notes": [ "J\u2020" ],
"_gpid_": 2704
},
{ "name": "SPW S307(f)",
"CS#": 4,
"capabilities2": { "A": [ [4,4] ], "HE": 9 },
"note_number": "67.1",
"notes": [ "a", "e" ]
"notes": [ "a", "e" ],
"_gpid_": 2706
},
{ "name": "mSPW S307(f)",
"CS#": 4,
@ -463,217 +543,257 @@
"capabilities": [ "IR" ],
"capabilities2": { "s": 5 },
"note_number": "67.2",
"notes": [ "a", "e" ]
"notes": [ "a", "e" ],
"_gpid_": 2708
},
{ "name": "Kfz 13",
"CS#": 2,
"note_number": "68\u2020"
"note_number": "68\u2020",
"_gpid_": 2717
},
{ "name": "PSW 221",
"CS#": 2,
"capabilities2": { "sD": 6 },
"note_number": "69\u2020",
"notes": [ "A\u2020", "N" ]
"notes": [ "A\u2020", "N" ],
"_gpid_": 2719
},
{ "name": "PSW 222",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "70\u2020",
"notes": [ "A\u2020", "N" ]
"notes": [ "A\u2020", "N" ],
"_gpid_": 2721
},
{ "name": "PSW 222 (L)",
"CS#": 3,
"capabilities2": { "sD": 6 },
"note_number": "70\u2020",
"notes": [ "A\u2020", "N<sup>F</sup>" ]
"notes": [ "A\u2020", "N<sup>F</sup>" ],
"_gpid_": 2723
},
{ "name": "PSW 231 (6 rad)",
"CS#": 4,
"note_number": "71\u2020"
"note_number": "71\u2020",
"_gpid_": [ 2725, 2727 ]
},
{ "name": "PSW 231 (8 rad)",
"CS#": 4,
"capabilities2": { "sD": 6 },
"note_number": "72\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2729
},
{ "name": "PSW 232 (8 rad)",
"CS#": 4,
"capabilities2": { "sD": 6 },
"note_number": "72",
"notes": [ "N<sup>F</sup>" ]
"notes": [ "N<sup>F</sup>" ],
"_gpid_": 2731
},
{ "name": "PSW 233",
"CS#": 5,
"capabilities2": { "H": 8, "s": 9, "sD": 7 },
"note_number": "73",
"notes": [ "N<sup>T</sup>" ]
"notes": [ "N<sup>T</sup>" ],
"_gpid_": 2733
},
{ "name": "PSW 234/1",
"CS#": 5,
"note_number": "74",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 2735
},
{ "name": "PSW 234/2",
"CS#": 4,
"capabilities2": { "A": [ [5,3] ], "sD": 7 },
"note_number": "75"
"note_number": "75",
"_gpid_": 2737
},
{ "name": "PSW 234/3",
"CS#": 5,
"capabilities2": { "H": 8, "s": 9 },
"note_number": "76",
"notes": [ "Q\u2020" ]
"notes": [ "Q\u2020" ],
"_gpid_": [ 2739, 2741 ]
},
{ "name": "PSW 234/4",
"CS#": "5:brewup",
"capabilities2": { "HE": 7, "s": 7 },
"note_number": "77\u2020"
"note_number": "77\u2020",
"_gpid_": 2743
},
{ "name": "sIG IB",
"CS#": "4:brewup",
"no_if": true,
"capabilities2": { "H": 6, "s": 9 },
"note_number": "78",
"notes": [ "G" ]
"notes": [ "G" ],
"_gpid_": 2747
},
{ "name": "sIG II",
"CS#": "4:brewup",
"no_if": true,
"capabilities2": { "H": 6, "s": 9 },
"note_number": "79",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2749
},
{ "name": "sIG 38(t)M",
"CS#": "4:brewup",
"no_if": true,
"capabilities2": { "H": 6, "s": 9 },
"note_number": "80",
"notes": [ "E", "N<sup>FT</sup>" ]
"notes": [ "E", "N<sup>FT</sup>" ],
"_gpid_": 2751
},
{ "name": "PzA II",
"CS#": 4,
"capabilities2": { "H": 5, "s": 8 },
"note_number": "81",
"notes": [ "M\u2020" ]
"notes": [ "M\u2020" ],
"_gpid_": [ 2753, 2755 ]
},
{ "name": "PzA LrS(f)",
"CS#": 4,
"no_if": true,
"capabilities2": { "H": 4, "s": 8 },
"note_number": "82",
"notes": [ "a", "N" ]
"notes": [ "a", "N" ],
"_gpid_": 2757
},
{ "name": "GSW 39H(f)",
"CS#": 4,
"capabilities2": { "H": 4, "s": 7 },
"note_number": "82.1",
"notes": [ "a", "e" ]
"notes": [ "a", "e" ],
"_gpid_": 2759
},
{ "name": "PzA III/IV",
"CS#": 6,
"no_if": true,
"capabilities2": { "H": 5, "s": 8 },
"note_number": "83"
"note_number": "83",
"_gpid_": 2761
},
{ "name": "FlaKPz 38(t)",
"CS#": 4,
"note_number": "84",
"notes": [ "A\u2020", "E" ]
"notes": [ "A\u2020", "E" ],
"_gpid_": 2763
},
{ "name": "37 FlaK/Pz IV",
"CS#": 5,
"note_number": "85\u2020",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 2765
},
{ "name": "(Moebelwagen)",
"CS#": 6,
"note_number": "85\u2020",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": null
},
{ "name": "FlaKPz IV/20",
"CS#": 6,
"note_number": "86",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": [ 2768, 2817 ]
},
{ "name": "FlaKPz IV/37",
"CS#": 6,
"note_number": "87",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 2770
},
{ "name": "SdKfz 10/4",
"CS#": 5,
"note_number": "88",
"notes": [ "A\u2020", "D\u2020", "N" ]
"notes": [ "A\u2020", "D\u2020", "N" ],
"_gpid_": [ 7146, 2772 ]
},
{ "name": "SdKfz 10/5",
"CS#": 4,
"note_number": "88.1\u2020",
"notes": [ "A\u2020<sup>2</sup>", "D\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>2</sup>", "D\u2020<sup>1</sup>" ],
"_gpid_": [ 7140, 2775 ]
},
{ "name": "SdKfz 6/2",
"CS#": 5,
"note_number": "89",
"notes": [ "A\u2020", "D\u2020", "N" ]
"notes": [ "A\u2020", "D\u2020", "N" ],
"_gpid_": 2778
},
{ "name": "SdKfz 7/1",
"CS#": 4,
"note_number": "90",
"notes": [ "A\u2020", "D\u2020", "N" ]
"notes": [ "A\u2020", "D\u2020", "N" ],
"_gpid_": 2781
},
{ "name": "Kfz 4",
"CS#": 3,
"note_number": "91\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2784
},
{ "name": "2cm FlaK LKW",
"CS#": 5,
"note_number": "92",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 2785
},
{ "name": "3.7cm FlaK LKW",
"CS#": 5,
"note_number": "92",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 2787
},
{ "name": "Goliath",
"note_number": "93\u2020",
"notes": [ "L\u2020" ]
"notes": [ "L\u2020" ],
"_gpid_": 2474
},
{ "name": "Kfz 1",
"cs#": "2\u2020",
"note_number": "94\u2020",
"notes": [ "L\u2020", "N" ]
"notes": [ "L\u2020", "N" ],
"_gpid_": 2791
},
{ "name": "Kfz 1/20",
"cs#": 2,
"note_number": "95\u2020",
"notes": [ "L\u2020" ]
"notes": [ "L\u2020" ],
"_gpid_": 2793
},
{ "name": "Opel 6700 (Blitz)",
"cs#": 6,
"note_number": "96",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2794
},
{ "name": "Buessing-NAG 4500",
"cs#": 7,
"note_number": "96",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 2796
},
{ "name": "SdKfz 2",
"cs#": 2,
"note_number": "97\u2020",
"notes": [ "L\u2020", "N" ]
"notes": [ "L\u2020", "N" ],
"_gpid_": [ 2710, 2798 ]
},
{ "name": "SdKfz 7",
"cs#": 6,
"note_number": "98",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": [ 2713, 2801 ]
},
{ "name": "SdKfz 11",
"cs#": 5,
"note_number": "99",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": [ 2711, 2799 ]
}
]

@ -4,226 +4,267 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 3466
},
{ "name": "L5/30",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1\u2020"
"note_number": "1\u2020",
"_gpid_": 3468
},
{ "name": "L3/35",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "2\u2020",
"notes": [ "A\u2020<sup>1</sup>", "B\u2020<sup>1</sup>", "E", "N", "R" ]
"notes": [ "A\u2020<sup>1</sup>", "B\u2020<sup>1</sup>", "E", "N", "R" ],
"_gpid_": 3470
},
{ "name": "L3 aa",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "3\u2020",
"notes": [ "C", "E\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "N", "R" ]
"notes": [ "C", "E\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "N", "R" ],
"_gpid_": 3472
},
{ "name": "L3 cc",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "4\u2020",
"notes": [ "E", "J\u2020<sup>1</sup>", "N" ]
"notes": [ "E", "J\u2020<sup>1</sup>", "N" ],
"_gpid_": 3474
},
{ "name": "L3 Lf",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "5\u2020",
"notes": [ "E\u2020<sup>1</sup>", "N" ]
"notes": [ "E\u2020<sup>1</sup>", "N" ],
"_gpid_": 3476
},
{ "name": "L6/40",
"CS#": 2,
"note_number": "6\u2020",
"notes": [ "N", "R" ]
"notes": [ "N", "R" ],
"_gpid_": 3479
},
{ "name": "M11/39",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "7\u2020",
"notes": [ "A\u2020<sup>1</sup>", "N" ]
"notes": [ "A\u2020<sup>1</sup>", "N" ],
"_gpid_": 3481
},
{ "name": "M13/40",
"no_radio": "\u00ae\u2020",
"CS#": 4,
"note_number": "8\u2020",
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>", "N" ]
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>", "N" ],
"_gpid_": [ 3483, 3485 ]
},
{ "name": "M14/41",
"CS#": 4,
"note_number": "9\u2020",
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>", "N" ]
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>", "N" ],
"_gpid_": [ 3487, 3489 ]
},
{ "name": "M15/42",
"CS#": 4,
"note_number": "10\u2020",
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>" ]
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>" ],
"_gpid_": [ 3491, 3493 ]
},
{ "name": "MR/35(f)",
"CS#": 2,
"note_number": "11\u2020",
"notes": [ "I\u2020<sup>1</sup>" ]
"notes": [ "I\u2020<sup>1</sup>" ],
"_gpid_": 3495
},
{ "name": "SMV M40 75/18",
"CS#": 3,
"capabilities2": { "H": [ [7,"S2+"], "\u2020<sup>2</sup>" ], "s": 8 },
"note_number": "12",
"notes": [ "C\u2020<sup>1</sup>", "F\u2020", "H\u2020<sup>2</sup>", "N" ]
"notes": [ "C\u2020<sup>1</sup>", "F\u2020", "H\u2020<sup>2</sup>", "N" ],
"_gpid_": [ 3499, 3501 ]
},
{ "name": "SMV M41 75/18",
"CS#": 3,
"capabilities2": { "H": [ [7,"S2+"], "\u2020<sup>2</sup>" ], "s": 8 },
"note_number": "12\u2020",
"notes": [ "C\u2020<sup>1</sup>", "H\u2020<sup>2</sup>", "N" ]
"notes": [ "C\u2020<sup>1</sup>", "H\u2020<sup>2</sup>", "N" ],
"_gpid_": [ 3503, 3505 ]
},
{ "name": "SMV M42 75/18",
"CS#": 3,
"capabilities2": { "H": 7, "s": 8 },
"note_number": "13",
"notes": [ "C\u2020" ]
"notes": [ "C\u2020" ],
"_gpid_": 3507
},
{ "name": "SMV M42 75/32",
"CS#": 3,
"capabilities2": { "H": 7, "s": 8 },
"note_number": "13\u2020",
"notes": [ "C\u2020<sup>1</sup>" ]
"notes": [ "C\u2020<sup>1</sup>" ],
"_gpid_": 3509
},
{ "name": "SMV M43 105/25",
"CS#": 4,
"no_if": true,
"capabilities2": { "H": 7, "s": 8 },
"note_number": "14",
"notes": [ "C\u2020" ]
"notes": [ "C\u2020" ],
"_gpid_": 3511
},
{ "name": "SMV L40 47/32",
"CS#": 3,
"note_number": "15\u2020",
"notes": [ "N<sup>T</sup>", "R" ]
"notes": [ "N<sup>T</sup>", "R" ],
"_gpid_": 3513
},
{ "name": "SMV M41M 90/53",
"CS#": 5,
"capabilities2": { "HE": 7 },
"note_number": "16\u2020",
"notes": [ "D\u2020<sup>1</sup>" ]
"notes": [ "D\u2020<sup>1</sup>" ],
"_gpid_": 3515
},
{ "name": "AS 42",
"CS#": 3,
"note_number": "17\u2020",
"notes": [ "L\u2020<sup>1</sup>", "M", "N" ]
"notes": [ "L\u2020<sup>1</sup>", "M", "N" ],
"_gpid_": 3519
},
{ "name": "AS 42 aa",
"CS#": 4,
"note_number": "17\u2020",
"notes": [ "G\u2020<sup>1</sup>", "L\u2020<sup>2</sup>", "M", "N", "AA\u2020<sup>1</sup>" ]
"notes": [ "G\u2020<sup>1</sup>", "L\u2020<sup>2</sup>", "M", "N", "AA\u2020<sup>1</sup>" ],
"_gpid_": 3521
},
{ "name": "AS 42 cc",
"CS#": 4,
"note_number": "17\u2020",
"notes": [ "G\u2020<sup>1</sup>", "J\u2020<sup>1</sup>", "L\u2020<sup>2</sup>", "M", "N" ]
"notes": [ "G\u2020<sup>1</sup>", "J\u2020<sup>1</sup>", "L\u2020<sup>2</sup>", "M", "N" ],
"_gpid_": 3523
},
{ "name": "Lince",
"CS#": 2,
"note_number": "18",
"notes": [ "E" ]
"notes": [ "E" ],
"_gpid_": 3525
},
{ "name": "Lancia 1ZM",
"no_radio": "\u00ae",
"CS#": 6,
"note_number": "19\u2020",
"notes": [ "A\u2020<sup>2</sup>", "F\u2020<sup>3</sup>", "M\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>2</sup>", "F\u2020<sup>3</sup>", "M\u2020<sup>1</sup>" ],
"_gpid_": 3527
},
{ "name": "Fiat 611A",
"no_radio": "\u00ae",
"CS#": 5,
"note_number": "20\u2020",
"notes": [ "A\u2020<sup>2</sup>", "F\u2020<sup>3</sup>", "M\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>2</sup>", "F\u2020<sup>3</sup>", "M\u2020<sup>1</sup>" ],
"_gpid_": 3529
},
{ "name": "Fiat 611B",
"no_radio": "\u00ae",
"CS#": 5,
"capabilities2": { "HE": 7 },
"note_number": "20\u2020",
"notes": [ "F\u2020<sup>2</sup>", "M\u2020<sup>1</sup>" ]
"notes": [ "F\u2020<sup>2</sup>", "M\u2020<sup>1</sup>" ],
"_gpid_": 3531
},
{ "name": "AB 40",
"CS#": 4,
"note_number": "21",
"notes": [ "A\u2020", "I\u2020<sup>1</sup>", "N" ]
"notes": [ "A\u2020", "I\u2020<sup>1</sup>", "N" ],
"_gpid_": 3533
},
{ "name": "AB 41",
"CS#": 4,
"note_number": "21\u2020",
"notes": [ "N", "R" ]
"notes": [ "N", "R" ],
"_gpid_": 3535
},
{ "name": "Autoprot S37",
"CS#": 4,
"note_number": "22\u2020",
"notes": [ "R" ]
"notes": [ "R" ],
"_gpid_": 3539
},
{ "name": "Autocann 20/65(b)",
"CS#": 4,
"note_number": "23\u2020",
"notes": [ "G\u2020<sup>1</sup>", "N", "R", "AA\u2020" ]
"notes": [ "G\u2020<sup>1</sup>", "N", "R", "AA\u2020" ],
"_gpid_": 3545
},
{ "name": "Autocann 65/17(b)",
"CS#": 4,
"capabilities2": { "H": [ [7,"S2+"], "\u2020<sup>2</sup>" ] },
"note_number": "23\u2020",
"notes": [ "G\u2020<sup>1</sup>", "H\u2020<sup>2</sup>", "N" ]
"notes": [ "G\u2020<sup>1</sup>", "H\u2020<sup>2</sup>", "N" ],
"_gpid_": 3541
},
{ "name": "Autocann 75/27",
"CS#": 4,
"capabilities2": { "AP": 7 },
"note_number": "24",
"notes": [ "D\u2020", "N", "AA\u2020<sup>1</sup>" ]
"notes": [ "D\u2020", "N", "AA\u2020<sup>1</sup>" ],
"_gpid_": 3547
},
{ "name": "Autocann 90/53",
"CS#": 4,
"note_number": "24",
"notes": [ "D\u2020", "N", "AA\u2020<sup>1</sup>" ]
"notes": [ "D\u2020", "N", "AA\u2020<sup>1</sup>" ],
"_gpid_": 3549
},
{ "name": "TL 37",
"cs#": 5,
"note_number": "25\u2020",
"notes": [ "L\u2020<sup>1</sup>", "M", "N", "R" ]
"notes": [ "L\u2020<sup>1</sup>", "M", "N", "R" ],
"_gpid_": 3551
},
{ "name": "TM 40",
"cs#": 5,
"note_number": "25\u2020",
"notes": [ "L\u2020<sup>1</sup>", "M", "N", "R" ]
"notes": [ "L\u2020<sup>1</sup>", "M", "N", "R" ],
"_gpid_": 3553
},
{ "name": "TP 32",
"cs#": 5,
"note_number": "25\u2020",
"notes": [ "L\u2020<sup>1</sup>", "M", "N", "R" ]
"notes": [ "L\u2020<sup>1</sup>", "M", "N", "R" ],
"_gpid_": 3555
},
{ "name": "Autocaretta",
"cs#": "5\u2020<sup>1</sup>",
"note_number": "26\u2020",
"notes": [ "K\u2020<sup>1</sup>", "N", "R" ]
"notes": [ "K\u2020<sup>1</sup>", "N", "R" ],
"_gpid_": [ 3557, 3559 ]
},
{ "name": "Fiat 508 MC",
"cs#": "2\u2020<sup>1</sup>",
"note_number": "27\u2020",
"notes": [ "A\u2020<sup>2</sup>", "K\u2020<sup>1</sup>", "N", "R" ]
"notes": [ "A\u2020<sup>2</sup>", "K\u2020<sup>1</sup>", "N", "R" ],
"_gpid_": [ 3561, 3562 ]
},
{ "name": "Autocarro L",
"cs#": 6,
"note_number": "28\u2020",
"notes": [ "N", "R" ]
"notes": [ "N", "R" ],
"_gpid_": 3563
},
{ "name": "Autocarro M",
"cs#": 7,
"note_number": "28\u2020",
"notes": [ "N", "R" ]
"notes": [ "N", "R" ],
"_gpid_": 3565
},
{ "name": "Autocarro P",
"cs#": 7,
"note_number": "28\u2020",
"notes": [ "N", "R" ]
"notes": [ "N", "R" ],
"_gpid_": 3567
}
]

@ -4,125 +4,150 @@
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "1\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 3310
},
{ "name": "Type 92B",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "1\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 3312
},
{ "name": "Type 94",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "2\u2020"
"note_number": "2\u2020",
"_gpid_": 3314
},
{ "name": "Type 95 SO-KI",
"no_radio": "\u00ae",
"CS#": 5,
"note_number": "3\u2020"
"note_number": "3\u2020",
"_gpid_": 3316
},
{ "name": "Type 97A TE-KE",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "4\u2020"
"note_number": "4\u2020",
"_gpid_": 3318
},
{ "name": "Type 97B TE-KE",
"no_radio": "\u00ae",
"CS#": 2,
"no_if": true,
"note_number": "4\u2020"
"note_number": "4\u2020",
"_gpid_": 3320
},
{ "name": "Type 95 HA-GO",
"no_radio": "\u00ae\u2020<sup>2</sup>",
"CS#": 3,
"capabilities2": { "sD": [ [5,"4+"], "\u2020<sup>1</sup>" ] },
"note_number": "5\u2020",
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>" ]
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>" ],
"_gpid_": 3322
},
{ "name": "Type 2 KA-MI",
"CS#": "5\u2020",
"note_number": "6\u2020"
"note_number": "6\u2020",
"_gpid_": 3326
},
{ "name": "Type 2 KA-MI (without pontoons)",
"CS#": "5\u2020",
"note_number": "6\u2020"
"note_number": "6\u2020",
"_gpid_": 3324
},
{ "name": "Type 89A CHI-RO",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "7\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 3329
},
{ "name": "Type 89B CHI-RO",
"no_radio": "\u00ae",
"CS#": 4,
"note_number": "7\u2020"
"note_number": "7\u2020",
"_gpid_": 3331
},
{ "name": "Type 97A CHI-HA",
"no_radio": "\u00ae\u2020<sup>2</sup>",
"CS#": 4,
"capabilities2": { "sD": [ [5,"1+"], "\u2020<sup>1</sup>" ] },
"note_number": "8\u2020",
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>" ]
"notes": [ "B\u2020<sup>1</sup>", "C\u2020<sup>2</sup>" ],
"_gpid_": 3333
},
{ "name": "Type 97B CHI-HA",
"CS#": 4,
"capabilities2": { "sD": 5 },
"note_number": "8\u2020"
"note_number": "8\u2020",
"_gpid_": 3335
},
{ "name": "Type 1 CHI-HE",
"CS#": 5,
"capabilities2": { "sD": 5 },
"note_number": "9\u2020"
"note_number": "9\u2020",
"_gpid_": 3337
},
{ "name": "Type 91",
"CS#": 6,
"note_number": "10\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": [ 3341, 3343, 3345 ]
},
{ "name": "Type 92",
"CS#": 4,
"note_number": "11\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": [ 3347, 3349 ]
},
{ "name": "Type 1 HO-NI I",
"CS#": 5,
"capabilities2": { "WP": 5 },
"note_number": "12\u2020"
"note_number": "12\u2020",
"_gpid_": 3353
},
{ "name": "Type 4 HO-RO",
"CS#": "5:brewup",
"no_if": true,
"capabilities2": { "WP": 6 },
"note_number": "13\u2020"
"note_number": "13\u2020",
"_gpid_": 3355
},
{ "name": "Type 1 HO-KI",
"cs#": 5,
"note_number": "14\u2020"
"note_number": "14\u2020",
"_gpid_": 3357
},
{ "name": "Type 98 SHI-KE",
"cs#": 5,
"note_number": "15\u2020"
"note_number": "15\u2020",
"_gpid_": 3359
},
{ "name": "Type 92 I-KE",
"cs#": 5,
"note_number": "16\u2020"
"note_number": "16\u2020",
"_gpid_": 3361
},
{ "name": "Type 95",
"cs#": 2,
"note_number": "17\u2020"
"note_number": "17\u2020",
"_gpid_": 3363
},
{ "name": "Type 94",
"cs#": 6,
"note_number": "18"
"note_number": "18",
"_gpid_": 3364
},
{ "name": "Type 97",
"cs#": 7,
"note_number": "18"
"note_number": "18",
"_gpid_": 3366
},
{ "name": "Vickers 8-in. Costal Defense Gun Turret",
"note_number": "19\u2020"
"note_number": "19\u2020",
"_gpid_": null
}
]

@ -4,53 +4,62 @@
"CS#": 4,
"damage_points": 2,
"note_number": "1\u2020",
"notes": [ "A\u2020<sup>1</sup>", "B\u2020<sup>3</sup>", "C\u2020<sup>2</sup>", "D" ]
"notes": [ "A\u2020<sup>1</sup>", "B\u2020<sup>3</sup>", "C\u2020<sup>2</sup>", "D" ],
"_gpid_": [ 399, 397 ]
},
{ "name": "LCA",
"CS#": 6,
"damage_points": 3,
"note_number": "2\u2020"
"note_number": "2\u2020",
"_gpid_": 401
},
{ "name": "LCVP",
"CS#": 5,
"damage_points": 3,
"note_number": "3\u2020",
"notes": [ "B\u2020<sup>2</sup>", "C\u2020<sup>1</sup>" ]
"notes": [ "B\u2020<sup>2</sup>", "C\u2020<sup>1</sup>" ],
"_gpid_": [ 403, 405 ]
},
{ "name": "LCV",
"CS#": 5,
"damage_points": 3,
"note_number": "3\u2020"
"note_number": "3\u2020",
"_gpid_": null
},
{ "name": "LCM(3)",
"CS#": 6,
"damage_points": 5,
"note_number": "4\u2020",
"notes": [ "B\u2020<sup>2</sup>", "C\u2020<sup>1</sup>" ]
"notes": [ "B\u2020<sup>2</sup>", "C\u2020<sup>1</sup>" ],
"_gpid_": [ 407, 409 ]
},
{ "name": "LCI(S)",
"CS#": 10,
"damage_points": 14,
"note_number": "5\u2020",
"notes": [ "C\u2020<sup>3</sup>", "D", "E\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G" ]
"notes": [ "C\u2020<sup>3</sup>", "D", "E\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G" ],
"_gpid_": 411
},
{ "name": "LCT(4)",
"CS#": 9,
"damage_points": 10,
"note_number": "6\u2020",
"notes": [ "C\u2020<sup>3</sup>", "E\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G" ]
"notes": [ "C\u2020<sup>3</sup>", "E\u2020<sup>2</sup>", "F\u2020<sup>1</sup>", "G" ],
"_gpid_": [ 413, 415 ]
},
{ "name": "Daihatsu",
"CS#": 4,
"damage_points": 3,
"note_number": "7\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 417
},
{ "name": "Shohatsu",
"CS#": 3,
"damage_points": 2,
"note_number": "8\u2020",
"notes": [ "A\u2020", "D" ]
"notes": [ "A\u2020", "D" ],
"_gpid_": 419
}
]

@ -4,149 +4,173 @@
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1",
"notes": [ "H\u2020", "M" ]
"notes": [ "H\u2020", "M" ],
"_gpid_": 541
},
{ "name": "T-27",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "1.1\u2020",
"notes": [ "M", "Q" ]
"notes": [ "M", "Q" ],
"_gpid_": 7032
},
{ "name": "T-40",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "2\u2020",
"notes": [ "H\u2020" ]
"notes": [ "H\u2020" ],
"_gpid_": 543
},
{ "name": "T-50",
"no_radio": "\u00ae",
"CS#": 4,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "3"
"note_number": "3",
"_gpid_": 545
},
{ "name": "T-60 M40",
"no_radio": "\u00ae",
"CS#": 2,
"note_number": "4"
"note_number": "4",
"_gpid_": 547
},
{ "name": "T-60 M42",
"no_radio": "\u00ae\u2020",
"CS#": 2,
"note_number": "4",
"notes": [ "C\u2020" ]
"notes": [ "C\u2020" ],
"_gpid_": 549
},
{ "name": "T-70",
"no_radio": "\u00ae\u2020",
"CS#": 2,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "5",
"notes": [ "C\u2020" ]
"notes": [ "C\u2020" ],
"_gpid_": 551
},
{ "name": "T-26 M33",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "6",
"notes": [ "D", "I\u2020", "M", "P" ]
"notes": [ "D", "I\u2020", "M", "P" ],
"_gpid_": [ 553, 555, 557, 559, 561 ]
},
{ "name": "T-26 M37/39",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "6",
"notes": [ "D", "M", "P" ]
"notes": [ "D", "M", "P" ],
"_gpid_": [ 563, 565, 567, 569 ]
},
{ "name": "T-26 M31",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "6.1\u2020",
"notes": [ "M", "P" ]
"notes": [ "M", "P" ],
"_gpid_": 7036
},
{ "name": "T-26 M32",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "6.2\u2020",
"notes": [ "M", "P" ]
"notes": [ "M", "P" ],
"_gpid_": 7040
},
{ "name": "OT-26",
"no_radio": "\u00ae",
"CS#": "3:brewup",
"note_number": "6.3\u2020",
"notes": [ "M", "P" ]
"notes": [ "M", "P" ],
"_gpid_": 7042
},
{ "name": "ST-26 Bridgelayer",
"CS#": 3,
"note_number": "6.4\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 7048
},
{ "name": "OT-133",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "7\u2020",
"notes": [ "M", "P" ]
"notes": [ "M", "P" ],
"_gpid_": 571
},
{ "name": "BT-2A",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "7.1\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 573
},
{ "name": "BT-5 M34",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "8\u2020",
"notes": [ "M", "P" ]
"notes": [ "M", "P" ],
"_gpid_": 575
},
{ "name": "BT-7 M37",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "9",
"notes": [ "D", "I\u2020", "M", "P" ]
"notes": [ "D", "I\u2020", "M", "P" ],
"_gpid_": [ 577, 579, 581, 583 ]
},
{ "name": "BT-7A",
"CS#": 3,
"capabilities2": { "AP": 7, "s": 9 },
"note_number": "10",
"notes": [ "M", "P" ]
"notes": [ "M", "P" ],
"_gpid_": 585
},
{ "name": "T-28 M34",
"no_radio": "\u00ae",
"CS#": 5,
"capabilities2": { "s": 8 },
"note_number": "11\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 587
},
{ "name": "T-28 M34(L)",
"no_radio": "\u00ae",
"CS#": 5,
"capabilities2": { "s": 8 },
"note_number": "11.1\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 7418
},
{ "name": "T-28E M40",
"no_radio": "\u00ae",
"CS#": 6,
"capabilities2": { "s": 8 },
"note_number": "12\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 589
},
{ "name": "T-28E M40(L)",
"no_radio": "\u00ae",
"CS#": 6,
"capabilities2": { "s": 8 },
"note_number": "12.1\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 7420
},
{ "name": "T-34 M40",
"no_radio": "\u00ae",
"CS#": 5,
"note_number": "13",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 591
},
{ "name": "T-34 M41",
"no_radio": "\u00ae\u2020",
"CS#": 5,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "14\u2020",
"notes": [ "C\u2020", "M" ]
"notes": [ "C\u2020", "M" ],
"_gpid_": 593
},
{ "name": "OT-34",
"no_radio": "\u00ae\u2020",
@ -154,336 +178,397 @@
"no_if": true,
"capabilities2": { "A": [ [2,2] ], "AP": 7 },
"note_number": "15\u2020",
"notes": [ "C\u2020", "M" ]
"notes": [ "C\u2020", "M" ],
"_gpid_": 595
},
{ "name": "T-34 M43",
"CS#": 5,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "16\u2020"
"note_number": "16\u2020",
"_gpid_": 597
},
{ "name": "T-43",
"no_radio": "\u00ae\u2020",
"CS#": 5,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "17",
"notes": [ "C\u2020", "M" ]
"notes": [ "C\u2020", "M" ],
"_gpid_": 599
},
{ "name": "T-34/85",
"CS#": 6,
"capabilities2": { "A": [ [5,4] ], "sD": "6\u2020" },
"note_number": "18\u2020",
"notes": [ "J\u2020" ]
"notes": [ "J\u2020" ],
"_gpid_": 601
},
{ "name": "M4/76(a)",
"CS#": 6,
"capabilities2": { "A": [ [3,4] ], "s": 8, "sM": 8 },
"note_number": "19\u2020",
"notes": [ "N" ]
"notes": [ "N" ],
"_gpid_": 603
},
{ "name": "T-44",
"CS#": 5,
"capabilities2": { "A": [ [6,5] ] },
"note_number": "20",
"notes": [ "B\u2020", "M" ]
"notes": [ "B\u2020", "M" ],
"_gpid_": 605
},
{ "name": "T-35",
"no_radio": "\u00ae",
"CS#": 8,
"capabilities2": { "s": 9 },
"note_number": "21\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 607
},
{ "name": "SMK",
"CS#": 7,
"note_number": "21.1",
"notes": [ "M", "T\u2020" ]
"notes": [ "M", "T\u2020" ],
"_gpid_": 7056
},
{ "name": "T-100",
"CS#": 7,
"note_number": "22.1",
"notes": [ "M", "T\u2020" ]
"notes": [ "M", "T\u2020" ],
"_gpid_": 7060
},
{ "name": "KV-1 M39/40",
"CS#": 6,
"note_number": "22\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 609
},
{ "name": "KV-1E",
"CS#": 6,
"note_number": "23",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": [ 611, 613 ]
},
{ "name": "KV-1 M41",
"CS#": 6,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "23",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": [ 615, 617 ]
},
{ "name": "KV-1 M42",
"CS#": 6,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "23",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": [ 619, 621 ]
},
{ "name": "KV-2",
"CS#": 7,
"no_if": true,
"capabilities2": { "AP": 9 },
"note_number": "24\u2020",
"notes": [ "M" ]
"notes": [ "M" ],
"_gpid_": 623
},
{ "name": "KV-8",
"CS#": 6,
"capabilities2": { "A": [ [4,2] ], "AP": 7 },
"note_number": "15\u2020",
"notes": [ "D", "M" ]
"notes": [ "D", "M" ],
"_gpid_": [ 625, 627 ]
},
{ "name": "KV-1S",
"CS#": 6,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "25\u2020"
"note_number": "25\u2020",
"_gpid_": 629
},
{ "name": "KV-85",
"CS#": 5,
"capabilities2": { "A": [ [4,3], [5,4] ] },
"note_number": "26",
"notes": [ "B\u2020" ]
"notes": [ "B\u2020" ],
"_gpid_": 631
},
{ "name": "IS-2",
"CS#": 6,
"no_if": true,
"note_number": "27",
"notes": [ "B\u2020" ]
"notes": [ "B\u2020" ],
"_gpid_": 633
},
{ "name": "IS-2m",
"CS#": 6,
"no_if": true,
"note_number": "28",
"notes": [ "B\u2020", "G\u2020" ]
"notes": [ "B\u2020", "G\u2020" ],
"_gpid_": [ 635, 637 ]
},
{ "name": "IS-3",
"CS#": 6,
"no_if": true,
"capabilities2": { "sD": "6\u2020" },
"note_number": "29",
"notes": [ "G\u2020", "J\u2020" ]
"notes": [ "G\u2020", "J\u2020" ],
"_gpid_": [ 639, 641 ]
},
{ "name": "SU-76M",
"CS#": "4:brewup",
"capabilities2": { "A": [ [5,3] ] },
"note_number": "30\u2020"
"note_number": "30\u2020",
"_gpid_": 645
},
{ "name": "SU-76i(g)",
"CS#": 5,
"capabilities2": { "A": [ [5,3] ] },
"note_number": "31",
"notes": [ "K" ]
"notes": [ "K" ],
"_gpid_": 647
},
{ "name": "SU-122",
"CS#": 5,
"no_if": true,
"capabilities2": { "H": 9, "s": 8 },
"note_number": "32"
"note_number": "32",
"_gpid_": 649
},
{ "name": "SU-152",
"CS#": 6,
"no_if": true,
"note_number": "33\u2020"
"note_number": "33\u2020",
"_gpid_": 651
},
{ "name": "ISU-122",
"CS#": 6,
"no_if": true,
"capabilities2": { "s": 8 },
"note_number": "34",
"notes": [ "G\u2020" ]
"notes": [ "G\u2020" ],
"_gpid_": [ 653, 655 ]
},
{ "name": "ISU-152",
"CS#": 6,
"no_if": true,
"note_number": "34",
"notes": [ "G\u2020" ]
"notes": [ "G\u2020" ],
"_gpid_": [ 657, 659 ]
},
{ "name": "SU-85",
"CS#": 5,
"capabilities2": { "A": [ [5,3] ], "HE": 7, "s": 7 },
"note_number": "35"
"note_number": "35",
"_gpid_": 661
},
{ "name": "SU-100",
"CS#": 5,
"capabilities2": { "HE": 7 },
"note_number": "36"
"note_number": "36",
"_gpid_": 663
},
{ "name": "SU-57(a)",
"CS#": 4,
"capabilities2": { "A": [ [5,3] ], "HE": 7 },
"note_number": "37",
"notes": [ "K" ]
"notes": [ "K" ],
"_gpid_": 665
},
{ "name": "BA-20",
"no_radio": "\u00ae",
"CS#": 3,
"note_number": "38"
"note_number": "38",
"_gpid_": 669
},
{ "name": "BA-6",
"no_radio": "\u00ae",
"CS#": 4,
"capabilities2": { "A": [ [4,2] ] },
"note_number": "39"
"note_number": "39",
"_gpid_": 671
},
{ "name": "BA-64B",
"CS#": 2,
"note_number": "40\u2020",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 673
},
{ "name": "ZSU-37",
"CS#": 4,
"note_number": "41\u2020",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 677
},
{ "name": "SU-12",
"CS#": 4,
"capabilities2": { "AP": 7, "s": 8 },
"note_number": "42",
"notes": [ "F\u2020" ]
"notes": [ "F\u2020" ],
"_gpid_": 679
},
{ "name": "GAZ-4M-AA",
"CS#": 4,
"note_number": "43\u2020",
"notes": [ "A\u2020" ]
"notes": [ "A\u2020" ],
"_gpid_": 681
},
{ "name": "ZIS-42-AA",
"CS#": 4,
"note_number": "44",
"notes": [ "A\u2020", "F\u2020" ]
"notes": [ "A\u2020", "F\u2020" ],
"_gpid_": 683
},
{ "name": "LANO AT",
"no_radio": "\u00ae",
"CS#": 5,
"capabilities2": { "A": [ [4,"2+"] ] },
"note_number": "44.1"
"note_number": "44.1",
"_gpid_": 7064
},
{ "name": "LANO AA",
"no_radio": "\u00ae",
"CS#": 5,
"note_number": "44.2\u2020",
"notes": [ "A\u2020<sup>1</sup>" ]
"notes": [ "A\u2020<sup>1</sup>" ],
"_gpid_": 7068
},
{ "name": "IAG-10-AA",
"CS#": 4,
"capabilities2": { "AP": 7 },
"note_number": "45",
"notes": [ "A\u2020", "F\u2020" ]
"notes": [ "A\u2020", "F\u2020" ],
"_gpid_": 685
},
{ "name": "GAZ-67B",
"CS#": 2,
"note_number": "46",
"notes": [ "L\u2020" ]
"notes": [ "L\u2020" ],
"_gpid_": 693
},
{ "name": "Komsomolet",
"CS#": "2\u2020",
"note_number": "46.1\u2020"
"note_number": "46.1\u2020",
"_gpid_": 687
},
{ "name": "STZ-3",
"cs#": 4,
"note_number": "46.2"
"note_number": "46.2",
"_gpid_": 7072
},
{ "name": "STZ-5",
"cs#": 7,
"note_number": "46.3"
"note_number": "46.3",
"_gpid_": 7078
},
{ "name": "GAZ-MM",
"cs#": 6,
"note_number": "47"
"note_number": "47",
"_gpid_": 694
},
{ "name": "ZIS-5",
"cs#": 7,
"note_number": "47"
"note_number": "47",
"_gpid_": 696
},
{ "name": "IAG-6",
"cs#": 7,
"note_number": "47"
"note_number": "47",
"_gpid_": 698
},
{ "name": "NKL-6",
"CS#": "2\u2020",
"note_number": "47.1\u2020",
"notes": [ "S\u2020<sup>1</sup>" ]
"notes": [ "S\u2020<sup>1</sup>" ],
"_gpid_": 7082
},
{ "name": "NKL-16",
"cs#": 2,
"note_number": "47.1\u2020",
"notes": [ "S\u2020<sup>1</sup>" ]
"notes": [ "S\u2020<sup>1</sup>" ],
"_gpid_": 7084
},
{ "name": "NKL-26",
"CS#": 2,
"note_number": "47.2\u2020",
"notes": [ "Q", "S\u2020<sup>1</sup>" ]
"notes": [ "Q", "S\u2020<sup>1</sup>" ],
"_gpid_": 7085
},
{ "name": "RF-8-GAZ-98",
"CS#": 3,
"note_number": "47.3\u2020",
"notes": [ "S\u2020<sup>1</sup>" ]
"notes": [ "S\u2020<sup>1</sup>" ],
"_gpid_": 7089
},
{ "name": "Stuart III(a)",
"CS#": 4,
"capabilities2": { "C": 6 },
"note_number": "48",
"notes": [ "N", "O", "LL" ]
"notes": [ "N", "O", "LL" ],
"_gpid_": [ 6362, 6364 ]
},
{ "name": "Lee(a)",
"CS#": 7,
"capabilities2": { "C": "4\u2020", "s": "8\u2020" },
"note_number": "49\u2020",
"notes": [ "B\u2020<sup>1</sup>", "N", "O", "LL" ]
"notes": [ "B\u2020<sup>1</sup>", "N", "O", "LL" ],
"_gpid_": [ 704, 706, 7423 ]
},
{ "name": "Sherman III(a)",
"CS#": "5:brewup",
"capabilities2": { "s": 8, "WP": [ [6,"J4+"], "\u2020" ] },
"note_number": "50\u2020",
"notes": [ "N", "O", "R\u2020<sup>1</sup>", "LL" ]
"notes": [ "N", "O", "R\u2020<sup>1</sup>", "LL" ],
"_gpid_": [ 708, 710, 7091 ]
},
{ "name": "Sherman III(L)(a)",
"CS#": "6:brewup",
"capabilities2": { "s": 5, "WP": 7, "sM": 8 },
"note_number": "50.1",
"notes": [ "N", "O", "R\u2020", "LL" ]
"notes": [ "N", "O", "R\u2020", "LL" ],
"_gpid_": [ 712, 714 ]
},
{ "name": "Matilda II(b)",
"CS#": 5,
"capabilities2": { "sD": 6 },
"note_number": "51\u2020",
"notes": [ "M\u2020<sup>1</sup>", "N", "LL" ]
"notes": [ "M\u2020<sup>1</sup>", "N", "LL" ],
"_gpid_": null
},
{ "name": "Valentine V(b)",
"CS#": 4,
"capabilities2": { "sM": 8 },
"note_number": "52.1",
"notes": [ "N", "LL" ]
"notes": [ "N", "LL" ],
"_gpid_": null
},
{ "name": "Valentine VIII(b)",
"CS#": 4,
"capabilities2": { "HE": 7, "sD": 6 },
"note_number": "52.2",
"notes": [ "N", "LL" ]
"notes": [ "N", "LL" ],
"_gpid_": null
},
{ "name": "Churchill III(b)",
"CS#": 7,
"capabilities2": { "D": [ [6,"J4"], [7,5], "\u2020" ], "HE": [ [7,"F3"], [8,"4+"], "\u2020" ], "sD": [ [6,"4+"] ], "sM": "8\u2020" },
"note_number": "53\u2020",
"notes": [ "N", "LL" ]
"notes": [ "N", "LL" ],
"_gpid_": null
},
{ "name": "M3A1 Scout Car(a)",
"CS#": 4,
"note_number": "54\u2020",
"notes": [ "N", "LL" ]
"notes": [ "N", "LL" ],
"_gpid_": null
},
{ "name": "Jeep GPA(a)",
"cs#": 2,
"note_number": "59",
"notes": [ "H\u2020", "L\u2020<sup>1</sup>" ]
"notes": [ "H\u2020", "L\u2020<sup>1</sup>" ],
"_gpid_": 7119
},
{ "name": "DUKW(a)",
"cs#": 7,
"note_number": "60\u2020"
"note_number": "60\u2020",
"_gpid_": 7120
}
]

@ -0,0 +1,6 @@
""" Classes to serve files from various sources.
This stuff has been split out into a separate package so that it can be imported into the asl-rulebook project,
since that will often be running while a game is being played, so that can provide these services, without having
to run this project as well.
"""

@ -0,0 +1,26 @@
""" Miscellaneous utilities. """
import os
import json
# ---------------------------------------------------------------------
def get_vo_gpids( data_dir ):
"""Get the GPID's for the vehicles/ordnance."""
gpids = set()
for vo_type in ("vehicles","ordnance"):
dname = os.path.join( data_dir, vo_type )
for root,_,fnames in os.walk(dname):
for fname in fnames:
if os.path.splitext(fname)[1] != ".json":
continue
entries = json.load( open( os.path.join(root,fname), "r" ) )
for entry in entries:
if isinstance( entry["_gpid_"], list):
gpids.update( entry["_gpid_"] )
else:
gpids.add( entry["_gpid_"] )
gpids.remove( None )
return gpids

@ -0,0 +1,200 @@
""" Serve files from a VASL module file. """
import os
import json
import zipfile
import xml.etree.ElementTree
import logging
_logger = logging.getLogger( "vasl_mod" )
from vasl_templates.webapp.file_server.utils import get_vo_gpids
SUPPORTED_VASL_MOD_VERSIONS = [ "6.3.3", "6.4.0", "6.4.1", "6.4.2" ]
# ---------------------------------------------------------------------
class VaslMod:
"""Serve files from a VASL module file."""
def __init__( self, fname, data_dir ) :
# initialize
self.pieces = {}
# parse the VASL module file
_logger.info( "Loading VASL module: %s", fname )
self.zip_file = zipfile.ZipFile( fname, "r" )
self._parse_vmod( data_dir )
def get_piece_image( self, gpid, side, index ):
"""Get the image for the specified piece."""
# get the image path
entry = self.pieces[ gpid ]
assert side in ("front","back")
image_paths = entry[ side+"_images" ]
if not image_paths:
return None, None
if not isinstance( image_paths, list ):
image_paths = [ image_paths ]
image_path = image_paths[ index ]
if not os.path.splitext( image_path )[1]:
image_path += ".gif"
# load the image data
image_path = os.path.join( "images", image_path )
image_data = self.zip_file.read( image_path )
return image_path, image_data
def _parse_vmod( self, data_dir ): #pylint: disable=too-many-branches,too-many-locals
"""Parse a .vmod file."""
# load our overrides
fname = os.path.join( data_dir, "vasl-overrides.json" )
vasl_overrides = json.load( open( fname, "r" ) )
fname = os.path.join( data_dir, "expected-multiple-images.json" )
expected_multiple_images = json.load( open( fname, "r" ) )
# figure out which pieces we're interested in
target_gpids = get_vo_gpids( data_dir )
def check_override( gpid, piece, override ):
"""Check that the values in an override entry match what we have."""
for key in override:
if piece[key] != override[key]:
_logger.warning( "Unexpected value in VASL override for '%s' (gpid=%d): %s", key, gpid, piece[key] )
return False
return True
# parse the VASL build info
build_info = self.zip_file.read( "buildFile" )
doc = xml.etree.ElementTree.fromstring( build_info )
if doc.attrib.get( "version" ) not in SUPPORTED_VASL_MOD_VERSIONS:
_logger.warning( "Unsupported VASL version: %s", doc.attrib.get("version") )
for node in doc.iter( "VASSAL.build.widget.PieceSlot" ):
# load the next entry
gpid = int( node.attrib["gpid"] )
if gpid not in target_gpids:
continue
if gpid in self.pieces:
_logger.warning( "Found duplicate GPID: %d", gpid )
front_images, back_images = self._get_image_paths( gpid, node.text )
piece = {
"gpid": gpid,
"name": node.attrib["entryName"],
"front_images": front_images,
"back_images": back_images,
}
# check if we want to override any values
override = vasl_overrides.get( str(gpid) )
if override:
if check_override( gpid, piece, override["expected"] ):
for key in override["updated"]:
piece[key] = override["updated"][key]
del vasl_overrides[ str(gpid) ]
# save the loaded entry
self.pieces[gpid] = piece
target_gpids.remove( gpid )
_logger.debug( "- Loaded piece: %s", piece )
# check for multiple images
if isinstance(piece["front_images"],list) or isinstance(piece["back_images"],list):
expected = expected_multiple_images.get( str(gpid) )
if expected:
check_override( gpid, piece, expected )
del expected_multiple_images[ str(gpid) ]
else:
_logger.warning( "Found multiple images: %s", piece )
# make sure we found all the pieces we need
_logger.info( "Loaded %d pieces.", len(self.pieces) )
if target_gpids:
_logger.warning( "Couldn't find pieces: %s", target_gpids )
# make sure all the overrides defined were used
if vasl_overrides:
gpids = ", ".join( vasl_overrides.keys() )
_logger.warning( "Unused VASL overrides: %s", gpids )
if expected_multiple_images:
gpids = ", ".join( expected_multiple_images.keys() )
_logger.warning( "Expected multiple images but didn't find them: %s", gpids )
@staticmethod
def _get_image_paths( gpid, val ): #pylint: disable=too-many-branches
"""Get the image path(s) for a piece."""
# FUDGE! The data in the build file looks like a serialized object, so we use
# a bunch of heuristics to try to identify the fields we want :-/
# split the data into fields
val = val.replace( "\\/", "/" )
fields = val.split( ";" )
# identify image paths
def is_image_path( val ): #pylint: disable=missing-docstring
if val == "white X 60.png": # nb: a lot of Finnish pieces have this
return False
if val.endswith( (".gif",".png") ):
return True
if val.startswith( ("ru/","ge/","am/","br/","it/","ja/","ch/","sh/","fr/","al/","ax/","hu/","fi/") ):
return True
return False
fields = [ f for f in fields if is_image_path(f) ]
# figure out what we've got
def split_fields( val ):
"""Split out individual fields in a VASL build info entry."""
fields = [ v.strip() for v in val.split(",") ]
fields = [ f for f in fields if f ]
return fields
if not fields:
_logger.warning( "Couldn't find any image paths for gpid=%d.", gpid )
return None, None
if len(fields) == 1:
# the piece only has front image(s)
front_images, back_images = split_fields(fields[0]), None
else:
# the piece has front and back image(s)
if len(fields) > 2:
_logger.warning( "Found > 2 image paths for gpid=%d", gpid )
front_images, back_images = split_fields(fields[1]), split_fields(fields[0])
# ignore dismantled ordnance
if len(front_images) > 1:
if front_images[-1].endswith( "dm" ):
if back_images[-1].endswith( "dmb" ):
_logger.debug( "Ignoring dismantled images: gpid=%d, front=%s, back=%s",
gpid, front_images, back_images
)
front_images.pop()
back_images.pop()
else:
_logger.warning( "Unexpected dismantled images: %s %s", front_images, back_images )
# ignore limbered ordnance
if len(front_images) > 1:
if front_images[-1].endswith( "l" ):
if back_images[-1].endswith( ("lb","l-b") ):
_logger.debug( "Ignoring limbered images: gpid=%d, front=%s, back=%s",
gpid, front_images, back_images
)
front_images.pop()
back_images.pop()
else:
_logger.warning( "Unexpected limbered images: %s %s", front_images, back_images )
elif front_images[-1].endswith( "B.png" ) and front_images[0] == front_images[-1][:-5]+".png":
# nb: this is for Finnish Guns
_logger.debug( "Ignoring limbered images: gpid=%d, front=%s, back=%s",
gpid, front_images, back_images
)
front_images.pop()
assert not back_images
def delistify( val ): #pylint: disable=missing-docstring
if val is None:
return None
return val[0] if len(val) == 1 else val
return delistify(front_images), delistify(back_images)

@ -0,0 +1,34 @@
""" Serve static files. """
import os
import io
from flask import send_file, abort
from vasl_templates.webapp import app
from vasl_templates.webapp.file_server.vasl_mod import VaslMod
from vasl_templates.webapp.config.constants import DATA_DIR
vasl_mod = None
if app.config.get( "VASL_MOD" ):
vasl_mod = VaslMod( app.config["VASL_MOD"], DATA_DIR )
# ---------------------------------------------------------------------
@app.route( "/counter/<gpid>/<side>/<int:index>" )
@app.route( "/counter/<gpid>/<side>", defaults={"index":1} )
def get_counter_image( gpid, side, index ):
"""Get a counter image."""
# check if a VASL module has been configured
if not vasl_mod:
return app.send_static_file( "images/missing-image.png" )
# return the specified counter image
image_path, image_data = vasl_mod.get_piece_image( int(gpid), side, int(index)-1 )
if not image_data:
abort( 404 )
return send_file(
io.BytesIO( image_data ),
attachment_filename = os.path.split( image_path )[1]## nb: so Flask can figure out the MIME type
)

@ -2,7 +2,7 @@
html { height: 100% ; }
body { height: 100% ; overflow: hidden ; }
ul, ol { margin: 0.5em 0 0 1.25em ; br}
ul, ol { margin: 0.5em 0 0 1.25em ; }
input[type="text"] { height: 1.25em ; border: 1px solid #c5c5c5 ; }
label { height: 1.25em ; margin-top: -3px ; }
@ -118,7 +118,12 @@ button.edit-template img { height: 18px ; vertical-align: middle ; margin-right:
#select-vo { overflow: hidden ; padding: 2px ; }
#select-vo .header { height: 1.75em ; margin-top: 0.25em ; font-size: 80% ; }
#select-vo select { width: 100% ; top: 2em ; height: calc(100% - 1.5em) ; }
#select-vo .select2-selection { display: none ; }
#select-vo .select2-search { padding: 0 0 5px 0 ; }
#select-vo .select2-results__options { max-height: none ; }
#select-vo .select2-dropdown { border: none ; }
#select-vo .select2-dropdown .vo-entry { display: flex ; align-items: center ; }
#select-vo .select2-dropdown .vo-entry img { width: 3em ; margin-right: 0.5em ; }
.ui-dialog.select-vo .ui-dialog-buttonpane { border: none ; padding: 0 ; font-size: 75% ; }
.ui-dialog.select-vo button { margin: 0 0 0 5px ; padding: 0.1em 0.2em ; }

@ -16,8 +16,14 @@
.panel-ob_vehicles .content { flex-grow: 1 ; }
.panel-ob_vehicles .footer { margin-top: 0.5em ; display: flex ; align-items: center ; }
.panel-ob_vehicles .sortable { font-size: 90% ; }
.panel-ob_vehicles .sortable img { display: inline-block ; vertical-align: middle ; width: 3em ; margin-right: 0.5em ; }
/* -------------------------------------------------------------------- */
.panel-ob_ordnance { height: 100% ; display: flex ; flex-direction: column ; }
.panel-ob_ordnance .content { flex-grow: 1 ; }
.panel-ob_ordnance .footer { margin-top: 0.5em ; display: flex ; align-items: center ; }
.panel-ob_ordnance .sortable { font-size: 90% ; }
.panel-ob_ordnance .sortable img { display: inline-block ; vertical-align: middle ; width: 3em ; margin-right: 0.5em ; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -254,7 +254,7 @@ function restrict_droplist_height( $sel )
// set the max-height for the droplist
$droplist.css( "max-height", Math.floor(avail)+"px" ) ;
$droplist.animate({ scrollTop: offset }) ;
$droplist.animate({ scrollTop: offset }, 0 ) ;
}
// --------------------------------------------------------------------

@ -24,11 +24,28 @@ function add_vo( vo_type, player_no )
// TODO: It'd be nice to be able to use HTML in the option text (e.g. PzKpfw IVF 1/2)
buf.push( "<option value='" + i + "'>" + entries[i].name + "</option>" ) ;
}
var $listbox = $( "#select-vo select" ) ;
$listbox.html( buf.join("") ) ;
$listbox.prop( "selectedIndex", 0 ).animate({ scrollTop: 0 }) ;
function format_vo_entry( opt ) {
if ( ! opt.id )
return opt.text ;
return $( "<div class='vo-entry'><img src='" + _get_vo_image_url(entries[opt.id]) + "'>" + opt.text + "</div>" ) ;
}
var $sel = $( "#select-vo select" ) ;
$sel.html( buf.join("") ).select2( {
width: "100%",
templateResult: format_vo_entry,
dropdownParent: $("#select-vo"), // FUDGE! need this for the searchbox to work :-/
closeOnSelect: false ,
} ) ;
// stop the select2 droplist from closing up
$sel.on( "select2:closing", function(evt) {
evt.preventDefault() ;
} ) ;
// let the user select a vehicle/ordnance
function on_resize( $dlg ) {
$( ".select2-results ul" ).height( $dlg.height() - 50 ) ;
}
$("#select-vo").dialog( {
title: "Add " + SORTABLE_DISPLAY_NAMES["ob_"+vo_type][0],
dialogClass: "select-vo",
@ -37,36 +54,33 @@ function add_vo( vo_type, player_no )
minHeight: 300,
create: function() {
init_dialog( $(this), "OK", false ) ;
// trap down arrow, set focus to the V/O list
$("#select-vo input[type='text']").keydown( function(evt) {
if ( evt.keyCode == 40 ) {
if ( $listbox.find( ":selected" ).length === 0 )
$listbox.find( "option:eq(0)" ).prop( "selected", true ) ;
$listbox.focus() ;
evt.preventDefault() ;
}
// handle ESCAPE
$(this).keydown( function(evt) {
if ( evt.keyCode == $.ui.keyCode.ESCAPE )
$(this).dialog( "close" ) ;
} ) ;
},
open: function() {
// initialize
on_dialog_open( $(this) ) ;
$("#select-vo input[type='text']").val( "" ).focus() ;
$(this).height( $(this).height() ) ; // fudge: force the select to resize
$("#select-vo select").filterByText( $("#select-vo input[type='text']") ) ;
$sel.select2( "open" ) ;
// set the titlebar color
var colors = get_player_colors_for_element( $sortable2 ) ;
$(".ui-dialog.select-vo .ui-dialog-titlebar").css( {
background: colors[0],
border: "1px solid "+colors[2],
} ) ;
// update the UI
on_resize( $(this) ) ;
},
resize: function() { on_resize( $(this) ) ; },
buttons: {
OK: function() {
// add the new vehicle/ordnance
var val = $listbox.val() ;
if ( ! val )
var data = $sel.select2( "data" ) ;
if ( ! data )
return ;
do_add_vo( vo_type, player_no, entries[val] ) ;
do_add_vo( vo_type, player_no, entries[data[0].id] ) ;
$(this).dialog( "close" ) ;
},
Cancel: function() { $(this).dialog( "close" ) ; },
@ -81,7 +95,7 @@ function do_add_vo( vo_type, player_no, entry )
// add the specified vehicle/ordnance
var $sortable2 = $( "#ob_" + vo_type + "-sortable_" + player_no ) ;
$sortable2.sortable2( "add", {
content: $( "<div>" + entry.name + "</div>" ),
content: $( "<div>" + "<img src='"+_get_vo_image_url(entry)+"'>" + entry.name + "</div>" ),
data: { caption: entry.name, vo_entry: entry },
} ) ;
}
@ -99,3 +113,14 @@ function find_vo( vo_type, nat, name )
return null ;
}
// --------------------------------------------------------------------
function _get_vo_image_url( entry )
{
if ( $.isArray( entry._gpid_ ) )
return "/counter/" + entry._gpid_[0] + "/front" ; // FIXME! if > 1 image available, let the user pick which one
if ( entry._gpid_ )
return "/counter/" + entry._gpid_ + "/front" ;
return gImagesBaseUrl + "/missing-image.png" ;
}

@ -8,6 +8,7 @@
<link rel="stylesheet" type="text/css" href="{{url_for('static',filename='jquery-ui/jquery-ui.min.css')}}" />
<link rel="stylesheet" type="text/css" href="{{url_for('static',filename='growl/jquery.growl.css')}}" />
<link rel="stylesheet" type="text/css" href="{{url_for('static',filename='popmenu/jquery.popmenu.css')}}" />
<link rel="stylesheet" type="text/css" href="{{url_for('static',filename='select2/select2.min.css')}}" />
<link rel="stylesheet" type="text/css" href="{{url_for('static',filename='css/main.css')}}" />
<link rel="stylesheet" type="text/css" href="{{url_for('static',filename='css/sortable.css')}}" />
<link rel="stylesheet" type="text/css" href="{{url_for('static',filename='css/tabs-scenario.css')}}" />
@ -277,8 +278,7 @@
</div>
<div id="select-vo" style="display:none;">
<div class="header"> <b>Filter by:</b> <input type="text" size="20"> </div>
<select size=2></select> </div>
<select></select>
</div>
<div id="ask" style="display:none;"></div>
@ -295,6 +295,7 @@
<script src="{{url_for('static',filename='hotkey/jquery.hotkey.js')}}"></script>
<script src="{{url_for('static',filename='download/download.min.js')}}"></script>
<script src="{{url_for('static',filename='jszip/jszip.min.js')}}"></script>
<script src="{{url_for('static',filename='select2/select2.min.js')}}"></script>
<script>
gAppName = "{{APP_NAME}}" ;
gAppVersion = "{{APP_VERSION}}" ;

File diff suppressed because it is too large Load Diff

@ -0,0 +1,87 @@
""" Test serving counter images. """
import os
import io
import glob
import urllib.request
import pytest
import tabulate
from vasl_templates.webapp.file_server.vasl_mod import VaslMod
from vasl_templates.webapp.file_server.utils import get_vo_gpids
from vasl_templates.webapp.config.constants import DATA_DIR
from vasl_templates.webapp import files as webapp_files
# ---------------------------------------------------------------------
@pytest.mark.skipif(
not pytest.config.option.vasl_mods, #pylint: disable=no-member
reason = "--vasl-mods-tests not specified"
)
@pytest.mark.skipif(
pytest.config.option.short_tests, #pylint: disable=no-member
reason = "--short-tests specified"
) #pylint: disable=too-many-statements
def test_counter_images( webapp, monkeypatch ):
"""Test that counter images are served correctly."""
# figure out which pieces we're interested in
gpids = get_vo_gpids( DATA_DIR )
def check_images( check_front, check_back ): #pylint: disable=unused-argument
"""Check getting the front and back images for each counter."""
for gpid in gpids:
for side in ("front","back"):
url = webapp.url_for( "get_counter_image", gpid=gpid, side=side )
try:
resp = urllib.request.urlopen( url )
resp_code = resp.code
resp_data = resp.read()
except urllib.error.HTTPError as ex:
resp_code = ex.code
resp_data = None
assert locals()["check_"+side]( resp_code, resp_data )
# test counter images when no VASL module has been configured
monkeypatch.setattr( webapp_files, "vasl_mod", None )
fname = os.path.join( os.path.split(__file__)[0], "../static/images/missing-image.png" )
missing_image_data = open( fname, "rb" ).read()
check_images(
check_front = lambda code,data: code == 200 and data == missing_image_data,
check_back = lambda code,data: code == 200 and data == missing_image_data
)
# test each VASL module file in the specified directory
fname = os.path.join( os.path.split(__file__)[0], "fixtures/vasl-pieces.txt" )
expected_vasl_pieces = open( fname, "r" ).read()
fspec = os.path.join( pytest.config.option.vasl_mods, "*.vmod" ) #pylint: disable=no-member
for fname in glob.glob(fspec):
# install the VASL module file
vasl_mod = VaslMod( fname, DATA_DIR )
monkeypatch.setattr( webapp_files, "vasl_mod", vasl_mod )
# check the pieces loaded
buf = io.StringIO()
_dump_pieces( vasl_mod, buf )
assert buf.getvalue() == expected_vasl_pieces
# check each counter
check_images(
check_front = lambda code,data: code == 200 and data,
check_back = lambda code,data: (code == 200 and data) or (code == 404 and not data)
)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def _dump_pieces( vasl_mod, out ):
"""Dump the VaslMod pieces."""
# dump the VASL pieces
results = [ [ "GPID", "Name", "Front images", "Back images"] ]
for gpid in sorted(vasl_mod.pieces.keys()):
piece = vasl_mod.pieces[ gpid ]
assert piece["gpid"] == gpid
results.append( [ gpid, piece["name"], piece["front_images"], piece["back_images"] ] )
print( tabulate.tabulate( results, headers="firstrow" ), file=out )

@ -47,7 +47,7 @@ def test_dirty_scenario_checks( webapp, webdriver ):
info = VEHICLE_ORDNANCE[param]
target = find_child( info[0] )
mo = re.search( r"([a-z]+)-", info[0] )
add_vo( mo.group(1), info[1], info[2] )
add_vo( webdriver, mo.group(1), info[1], info[2] )
return target
target = next( e for e in [
find_child( "{}[name='{}']".format( ctype, param ) )

@ -2,7 +2,6 @@
import re
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.action_chains import ActionChains
from vasl_templates.webapp.tests.utils import \
@ -33,7 +32,7 @@ def test_crud( webapp, webdriver ):
select_tab( "ob{}".format( player_no ) )
_check_hint( vo_type, player_no )
# add the vehicle/ordnance
add_vo( vo_type, player_no, name )
add_vo( webdriver, vo_type, player_no, name )
_expected[ (vo_type,player_no) ].append( name )
# check the snippet and hint
_check_snippet( vo_type, player_no )
@ -132,7 +131,7 @@ def test_snippets( webapp, webdriver ):
"""Run the test."""
vo_type0 = vo_type[:-1] if vo_type.endswith("s") else vo_type
# test a full example
add_vo( vo_type, 1, "a german {}".format(vo_type) )
add_vo( webdriver, vo_type, 1, "a german {}".format(vo_type) )
btn = find_child( "button[data-id='ob_{}_1']".format( vo_type ) )
btn.click()
expected = [
@ -148,7 +147,7 @@ def test_snippets( webapp, webdriver ):
delete_vo( vo_type, 1, "a german {}".format(vo_type0), webdriver )
# test a partial example
add_vo( vo_type, 1, "another german {}".format(vo_type) )
add_vo( webdriver, vo_type, 1, "another german {}".format(vo_type) )
btn = find_child( "button[data-id='ob_{}_1']".format( vo_type ) )
btn.click()
expected = [
@ -163,7 +162,7 @@ def test_snippets( webapp, webdriver ):
delete_vo( vo_type, 1, "another german {}".format(vo_type0), webdriver )
# test a minimal example
add_vo( vo_type, 1, "name only" )
add_vo( webdriver, vo_type, 1, "name only" )
btn = find_child( "button[data-id='ob_{}_1']".format( vo_type ) )
btn.click()
wait_for_clipboard( 2, \
@ -184,7 +183,7 @@ def test_variable_capabilities( webapp, webdriver ):
init_webapp( webapp, webdriver )
# add a vehicle
add_vo( "vehicles", 2, "Churchill III(b)" )
add_vo( webdriver, "vehicles", 2, "Churchill III(b)" )
# change the scenario date and check the generated snippet
vehicles2 = find_child( "button.generate[data-id='ob_vehicles_2']" )
@ -212,16 +211,24 @@ def test_variable_capabilities( webapp, webdriver ):
# ---------------------------------------------------------------------
def add_vo( vo_type, player_no, name ):
def add_vo( webdriver, vo_type, player_no, name ):
"""Add a vehicle/ordnance."""
# add the vehicle/ordnance
select_tab( "ob{}".format( player_no ) )
elem = find_child( "#ob_{}-add_{}".format( vo_type, player_no ) )
elem.click()
sel = Select( find_child( "#select-vo select" ) )
sel.select_by_visible_text( name[:-1] if name.endswith("s") else name )
click_dialog_button( "OK" )
entries = find_children( "#select-vo .select2-results li" )
if name.endswith( "s" ):
name = name[:-1]
matches = [ e for e in entries if e.text == name ]
assert len(matches) == 1
elem = matches[0]
webdriver.execute_script( "arguments[0].scrollIntoView()", elem )
ActionChains( webdriver ).click( elem ).perform()
if find_child( "#select-vo" ).is_displayed():
# FUDGE! Clicking on the element sometimes make the dialog close :-/
click_dialog_button( "OK" )
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

@ -165,7 +165,7 @@ def set_template_params( params ): #pylint: disable=too-many-branches
mo = re.search( r"^OB_(VEHICLES|ORDNANCE)_\d$", key )
vo_type = mo.group(1).lower()
for vo_name in val:
add_vo( vo_type, int(key[-1]), vo_name )
add_vo( _webdriver, vo_type, int(key[-1]), vo_name )
continue
# locate the next parameter

Loading…
Cancel
Save