diff --git a/vasl_templates/webapp/data/default-template-pack/nationalities.json b/vasl_templates/webapp/data/default-template-pack/nationalities.json
index d49025a..5465915 100644
--- a/vasl_templates/webapp/data/default-template-pack/nationalities.json
+++ b/vasl_templates/webapp/data/default-template-pack/nationalities.json
@@ -19,6 +19,14 @@
"display_name": "British",
"ob_colors": [ "#f6edda","#e5cea0", "#e5cea0" ]
},
+"british~canadian": {
+ "display_name": "Canadian",
+ "ob_colors": [ "#f6edda","#e5cea0", "#e5cea0" ]
+},
+"british~newzealand": {
+ "display_name": "New Zealand",
+ "ob_colors": [ "#f6edda","#e5cea0", "#e5cea0" ]
+},
"french": {
"display_name": "French",
diff --git a/vasl_templates/webapp/data/ordnance/british~canadian.json b/vasl_templates/webapp/data/ordnance/british~canadian.json
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/vasl_templates/webapp/data/ordnance/british~canadian.json
@@ -0,0 +1 @@
+[]
diff --git a/vasl_templates/webapp/data/ordnance/british~newzealand.json b/vasl_templates/webapp/data/ordnance/british~newzealand.json
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/vasl_templates/webapp/data/ordnance/british~newzealand.json
@@ -0,0 +1 @@
+[]
diff --git a/vasl_templates/webapp/data/vehicles/british~canadian.json b/vasl_templates/webapp/data/vehicles/british~canadian.json
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/vasl_templates/webapp/data/vehicles/british~canadian.json
@@ -0,0 +1 @@
+[]
diff --git a/vasl_templates/webapp/data/vehicles/british~newzealand.json b/vasl_templates/webapp/data/vehicles/british~newzealand.json
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/vasl_templates/webapp/data/vehicles/british~newzealand.json
@@ -0,0 +1 @@
+[]
diff --git a/vasl_templates/webapp/static/images/flags/british~canadian.png b/vasl_templates/webapp/static/images/flags/british~canadian.png
new file mode 100644
index 0000000..6783988
Binary files /dev/null and b/vasl_templates/webapp/static/images/flags/british~canadian.png differ
diff --git a/vasl_templates/webapp/static/images/flags/british~newzealand.png b/vasl_templates/webapp/static/images/flags/british~newzealand.png
new file mode 100644
index 0000000..e2656a9
Binary files /dev/null and b/vasl_templates/webapp/static/images/flags/british~newzealand.png differ
diff --git a/vasl_templates/webapp/static/main.js b/vasl_templates/webapp/static/main.js
index f454bd4..5c94685 100644
--- a/vasl_templates/webapp/static/main.js
+++ b/vasl_templates/webapp/static/main.js
@@ -571,14 +571,27 @@ function install_template_pack( data )
gTemplatePack = data ;
init_extras() ;
+ // sort the nationalities
+ var nats = Object.keys( gTemplatePack.nationalities ) ;
+ nats.sort( function( lhs, rhs ) {
+ lhs = gTemplatePack.nationalities[lhs].display_name.toUpperCase() ;
+ rhs = gTemplatePack.nationalities[rhs].display_name.toUpperCase() ;
+ if ( lhs < rhs )
+ return -1 ;
+ else if ( lhs > rhs )
+ return +1 ;
+ else
+ return 0 ;
+ } ) ;
+
// update the player droplists
var curSel = {
1: $("select[name='PLAYER_1']").val(),
2: $("select[name='PLAYER_2']").val()
} ;
var buf = [] ;
- for ( var id in gTemplatePack.nationalities )
- buf.push( "" ) ;
+ for ( var i=0 ; i < nats.length ; ++i )
+ buf.push( "" ) ;
buf = buf.join( "" ) ;
for ( var player_no=1 ; player_no <= 2 ; ++player_no ) {
var $sel = $( "select[name='PLAYER_" + player_no + "']" ) ;
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1940.txt
new file mode 100644
index 0000000..39f36e8
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1940.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~canadian/1940 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1941.txt
new file mode 100644
index 0000000..62d564b
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1941.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~canadian/1941 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1942.txt
new file mode 100644
index 0000000..fa93e1c
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1942.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~canadian/1942 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1943.txt
new file mode 100644
index 0000000..6d18b5a
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1943.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~canadian/1943 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1944.txt
new file mode 100644
index 0000000..a0fcc84
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1944.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~canadian/1944 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU HE8† 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1945.txt
new file mode 100644
index 0000000..72250ae
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~canadian/1945.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~canadian/1945 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU D7† HE8† 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† D6† HE8† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1940.txt
new file mode 100644
index 0000000..fb43d43
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1940.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~newzealand/1940 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1941.txt
new file mode 100644
index 0000000..4b8bcc1
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1941.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~newzealand/1941 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1942.txt
new file mode 100644
index 0000000..36cd5c6
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1942.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~newzealand/1942 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1943.txt
new file mode 100644
index 0000000..99c3adf
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1943.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~newzealand/1943 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1944.txt
new file mode 100644
index 0000000..c989289
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1944.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~newzealand/1944 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU HE8† 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1945.txt
new file mode 100644
index 0000000..24743a1
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british~newzealand/1945.txt
@@ -0,0 +1,29 @@
+=== ordnance/british~newzealand/1945 ===
+
+Name Capabilities (effective) # Notes Comments
+--------------------------- ------------------------------ --------------------------- --- -------------------- ---------------
+OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P
+OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a
+OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P
+OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed†
+OQF 25mm Hotchkiss QSU QSU 4† B N
+OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P
+OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU D7† HE8† 6† B N P
+OQF 17/25-Pounder 7 N
+OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† D6† HE8† 8† n/a
+OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P
+Canon de 75 mle 1897 QSU s8 QSU s8 10† B N
+OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P
+OQF 25-Pounder Short QSU s8 QSU s8 12 D P
+OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P
+OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P
+OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P
+OBL 4.5-in. Gun 16† N
+OBL 5.5-in. Gun-Howitzer 16† N P
+OBL 6-in. Howitzer 17† N P
+OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA†
+OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF.
+OQF 20mm AA 20 n/a
+OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P
+OQF 3-in. 20-cwt AA 22† E P
+OQF 3.7-in. AA 23† E N P
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1940.txt
new file mode 100644
index 0000000..2fd5046
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1940.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~canadian/1940 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1941.txt
new file mode 100644
index 0000000..d03a017
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1941.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~canadian/1941 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1942.txt
new file mode 100644
index 0000000..f86afb9
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1942.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~canadian/1942 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1943.txt
new file mode 100644
index 0000000..6a1ea77
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1943.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~canadian/1943 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 HE7†[1] sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1944.txt
new file mode 100644
index 0000000..78f38ed
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1944.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~canadian/1944 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 C6†[1] HE sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] HE7†[1] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 C5†[1] HE s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 C5†[1] HE s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 A4 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sD5 sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 HE8†[1] sD6 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 HE7†[2] CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 D6†[1] HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 sD4† CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 sD4† CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 C6†[2] sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 HE8†[1] sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 C6†[3] sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 sD5†[1] CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 sD5†[2] CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 sD5†[1] CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 sD5†[2] CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 sD5†[2] CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1945.txt
new file mode 100644
index 0000000..af3bc97
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1945.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~canadian/1945 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 C6†[1] HE sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] HE7†[1] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 C5†[1] HE s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 C5†[1] HE s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] WP6†[3] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] WP6†[3] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] WP6†[3] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 A5 s5 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] D6†[2] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] D6†[2] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 D6†[1] HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sD5 sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 D7†[2] HE8†[1] sD6 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 WP6†[1] s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 HE7†[2] CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 A6†[1] HE7 s5 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 D7†[1] HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 D7†[1] HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 sD4† CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 sD4† CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 C6†[2] sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 D7†[2] HE8†[1] sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 C6†[3] sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 WP7†[1] s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 sD5†[1] CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 sD5†[2] CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 sD5†[1] CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 sD5†[2] CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 sD5†[2] CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1940.txt
new file mode 100644
index 0000000..460217c
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1940.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~newzealand/1940 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1941.txt
new file mode 100644
index 0000000..145e7dd
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1941.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~newzealand/1941 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1942.txt
new file mode 100644
index 0000000..dcd434c
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1942.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~newzealand/1942 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1943.txt
new file mode 100644
index 0000000..86a6f92
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1943.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~newzealand/1943 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 HE7†[1] sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1944.txt
new file mode 100644
index 0000000..08dc34d
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1944.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~newzealand/1944 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 C6†[1] HE sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] HE7†[1] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 C5†[1] HE s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 C5†[1] HE s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 A4 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sD5 sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 HE8†[1] sD6 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 HE7†[2] CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 D6†[1] HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 sD4† CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 sD4† CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 C6†[2] sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 HE8†[1] sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 C6†[3] sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 sD5†[1] CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 sD5†[2] CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 sD5†[1] CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 sD5†[2] CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 sD5†[2] CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1945.txt
new file mode 100644
index 0000000..71428c2
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1945.txt
@@ -0,0 +1,131 @@
+=== vehicles/british~newzealand/1945 ===
+
+Name Capabilities (effective) # Notes Comments
+------------------------- ---------------------------------------------------- -------------------------------- ------ ---------------------------------------------------- ----------
+Mark VIB sD6 CS 3 sD6 CS 3 1† N P
+Mark VIC sD6 CS 3 sD6 CS 3 1† n/a
+Tetrarch sD6 CS 3 sD6 CS 3 2† n/a
+Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1
+Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P
+Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 C6†[1] HE sD5 CS 4 3† A C†1 G N P
+Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G
+Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C†
+A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N
+A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2
+A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N
+A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2
+A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K†
+A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N
+A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2
+Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N
+Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2
+Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N
+Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2
+Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] HE7†[1] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2
+Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 C5†[1] HE s8† sM8 CS 6 11† A C†1 G N P
+Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 C5†[1] HE s8† sD6 CS 7 11† A C†1 G N P
+Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] WP6†[3] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3
+Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] WP6†[3] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3
+Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] WP6†[3] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3
+Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 A5 s5 sM8 CS 6 15† A G K†1
+Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] D6†[2] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] D6†[2] HE7 sM8 CS 5[brewup] 16† A J†2 K†1
+Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1
+Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z†
+Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1
+Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1
+Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1
+Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1
+Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 D6†[1] HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2
+Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z†
+Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1
+Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1
+Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1
+Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P
+Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2
+Valentine II sM8 CS 4 sM8 CS 4 27† N
+Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
+Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
+Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sD5 sM8†[1] CS 7 31† NT S†2 Z†1 CC
+Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 D7†[2] HE8†[1] sD6 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC
+Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC
+Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 WP6†[1] s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC
+Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC
+Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC
+Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P
+Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC
+Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC
+Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC
+Deacon HE7[F3+]†[2] CS 5 HE7†[2] CS 5 39† L†1 N Y†2
+Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 A6†[1] HE7 s5 CS 7 40† A J†1
+Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 D7†[1] HE7 CS 7 40† A J†1
+Archer D6[4]7[5]†[1] HE7 sD7 CS 5 D7†[1] HE7 sD7 CS 5 41† J†1
+Daimler sD4[4+]† CS 2 sD4† CS 2 42† M N P
+Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P
+Humber sD4[4+]† CS 2 sD4† CS 2 43† L†1 M P BB†2
+Stuart Recce CS 5 CS 5 44† A D NT P
+Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2
+Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2
+Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1
+Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1
+Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2
+Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2
+Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3
+Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2
+Humber II sD6 CS 3 sD6 CS 3 50† L†1 N
+Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P
+Humber IV C6[4+]†[2] sD6 CS 3 C6†[2] sD6 CS 3 51† A C†2 L†1 P
+Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P
+AEC I sM8 CS 3 sM8 CS 3 53† N X†1
+AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 D7†[2] HE8†[1] sM8 CS 4 53 J†2 X† Y†1
+AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X†
+Staghound I(a) C6[4+]†[3] sM8 CS 5 C6†[3] sM8 CS 5 54† A C†3 G K†2 X†1
+Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1
+Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P
+Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P
+Sexton(a) s8 CS 7 s8 CS 7 57† A K†1
+M3 GMC(a) WP7[J4+]†[1] s8 CS 4 WP7†[1] s8 CS 4 58† A NT W†1
+Mk VI AA CS 2 CS 2 59† N O†1 AA†2
+Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1
+M17 MGMC(a) CS 4 CS 4 61† A F† AA†1
+Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3
+Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2
+M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N
+M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N
+M5A1(a) cs 5† cs 5† 63 A I†
+M9A1(a) cs 4† cs 4† 63 A I†
+Carrier A sD5[4+]†[1] CS 3 sD5†[1] CS 3 64† N P U†1
+Carrier B sD5[4+]†[2] CS 3 sD5†[2] CS 3 64† N P Q†1 U†2
+Carrier C sD5[4+]†[1] CS 3 sD5†[1] CS 3 64† N P U†1
+Carrier, MMG A sD5[4+]†[2] CS 3 sD5†[2] CS 3 65† N P Q†1 U†2
+Carrier, MMG B sD5[4+]†[2] CS 4 sD5†[2] CS 4 65† U†2 BB†1
+Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1
+Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2
+Priest Kangaroo(a) CS 7 CS 7 68† A D
+Ram Kangaroo(a) CS 7 CS 7 68† A D K†1
+White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N
+IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1
+IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1
+IP Carrier AOV CS 4 CS 4 70† P Q†1 V X†
+IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4
+Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U
+Badger(a) CS 3 CS 3 72† A K†1 M
+Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1
+Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2
+Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1
+DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P
+Terrapin Mk I cs 7 cs 7 76† D
+2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P
+Morris C9/B CS 4 CS 4 78† P AA†1
+Loyd Carrier cs 5 cs 5 79† N P
+Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P
+15-cwt Truck cs 5 cs 5 81† N P
+30-cwt Lorry cs 6 cs 6 82† N P
+3-Ton Lorry cs 7 cs 7 83† N P
+¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P
+¾-Ton Truck(a) cs 4 cs 4 85 A N
+1½-Ton Truck(a) cs 6 cs 6 85 A N
+2½-Ton Truck(a) cs 7 cs 7 85 A N
+7½-Ton Truck(a) cs 7 cs 7 85† A N
diff --git a/vasl_templates/webapp/vo.py b/vasl_templates/webapp/vo.py
index aa4ee47..8c5e502 100644
--- a/vasl_templates/webapp/vo.py
+++ b/vasl_templates/webapp/vo.py
@@ -85,7 +85,25 @@ def _do_load_vo_listings( vo_type, merge_common, report ): #pylint: disable=too-
if vo_id:
vo_entries[i] = _copy_vo_entry( vo_entry, vo_index[vo_id] )
+ # apply any changes for VASL extensions
+ # NOTE: We do this here, rather than in VaslMod, because VaslMod is a wrapper around a VASL module, and so
+ # only knows about GPID's and counter images, rather than Chapter H pieces and piece ID's (e.g. "ge/v:001").
+ if globvars.vasl_mod:
+ # process each VASL extension
+ vo_index = _make_vo_index( listings )
+ for extn in globvars.vasl_mod.get_extns():
+ _apply_extn_info( listings, extn[0], extn[1], vo_index, vo_type )
+
+ # update nationality variants with the listings from their base nationality
+ for nat in listings:
+ if "~" not in nat:
+ continue
+ base_nat = nat.split( "~" )[0]
+ listings[nat] = listings[base_nat] + listings[nat]
+
# add in any common vehicles/ordnance and landing craft
+ # NOTE: We do this after updating nationality variants, so that the British variants (i.e. Canada
+ # and New Zealand) don't get the landing craft.
if merge_common:
# add in any common Allied/Axis Minor vehicles/ordnance
for minor_type in ("allied-minor","axis-minor"):
@@ -108,22 +126,6 @@ def _do_load_vo_listings( vo_type, merge_common, report ): #pylint: disable=too-
listings["american"].append( lc )
listings["british"].append( lc )
- # apply any changes for VASL extensions
- # NOTE: We do this here, rather than in VaslMod, because VaslMod is a wrapper around a VASL module, and so
- # only knows about GPID's and counter images, rather than Chapter H pieces and piece ID's (e.g. "ge/v:001").
- if globvars.vasl_mod:
- # process each VASL extension
- vo_index = _make_vo_index( listings )
- for extn in globvars.vasl_mod.get_extns():
- _apply_extn_info( listings, extn[0], extn[1], vo_index, vo_type )
-
- # update nationality variants with the listings from their base nationality
- for nat in listings:
- if "~" not in nat:
- continue
- base_nat = nat.split( "~" )[0]
- listings[nat] = listings[base_nat] + listings[nat]
-
return listings
def _copy_vo_entry( placeholder_vo_entry, src_vo_entry ): #pylint: disable=too-many-branches
diff --git a/vasl_templates/webapp/vo_notes.py b/vasl_templates/webapp/vo_notes.py
index 6d8695d..05afd4d 100644
--- a/vasl_templates/webapp/vo_notes.py
+++ b/vasl_templates/webapp/vo_notes.py
@@ -170,9 +170,12 @@ def load_vo_notes(): #pylint: disable=too-many-statements,too-many-locals,too-ma
# update nationality variants with the notes from their base nationality
for vo_type2 in vo_notes:
- # FUDGE! The Chinese GMD don't have any vehicles/ordnance of their own, so we have to do this manually.
+ # FUDGE! Some nationalities don't have any vehicles/ordnance of their own, so we have to do this manually.
if "chinese" in vo_notes[vo_type2]:
vo_notes[vo_type2]["chinese~gmd"] = vo_notes[vo_type2]["chinese"]
+ if "british" in vo_notes[vo_type2]:
+ vo_notes[vo_type2]["british~canadian"] = vo_notes[vo_type2]["british"]
+ vo_notes[vo_type2]["british~newzealand"] = vo_notes[vo_type2]["british"]
# install the vehicle/ordnance notes
globvars.vo_notes = { k: dict(v) for k,v in vo_notes.items() }