[subset] GPOS4 MarkBase subsetting support
diff --git a/test/subset/data/Makefile.am b/test/subset/data/Makefile.am
index 4a5bb30..81aee95 100644
--- a/test/subset/data/Makefile.am
+++ b/test/subset/data/Makefile.am
@@ -16,6 +16,7 @@
 	expected/layout.gpos \
 	expected/layout.gpos2 \
 	expected/layout.gpos3 \
+	expected/layout.gpos4 \
 	expected/layout.gsub6 \
 	expected/cmap \
 	expected/cmap14 \
diff --git a/test/subset/data/Makefile.sources b/test/subset/data/Makefile.sources
index d642db8..b5b4a1f 100644
--- a/test/subset/data/Makefile.sources
+++ b/test/subset/data/Makefile.sources
@@ -8,6 +8,7 @@
 	tests/layout.gpos.tests \
 	tests/layout.gpos2.tests \
 	tests/layout.gpos3.tests \
+	tests/layout.gpos4.tests \
 	tests/layout.gsub6.tests \
 	tests/cmap.tests \
 	tests/cmap14.tests \
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43,44.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43,44.otf
new file mode 100644
index 0000000..1c2e5a4
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43,44.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43,45.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43,45.otf
new file mode 100644
index 0000000..2fed45d
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43,45.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43.otf
new file mode 100644
index 0000000..0007615
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42.otf
new file mode 100644
index 0000000..8eb6ace
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,44,45,46.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,44,45,46.otf
new file mode 100644
index 0000000..73315f3
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,44,45,46.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,44.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,44.otf
new file mode 100644
index 0000000..4005a0d
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,44.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,45.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,45.otf
new file mode 100644
index 0000000..c9f261c
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,45.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43.otf
new file mode 100644
index 0000000..9ed6a9b
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41.otf
new file mode 100644
index 0000000..f50cc90
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.retain-all-codepoint.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.retain-all-codepoint.otf
new file mode 100644
index 0000000..d4f9fc0
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.retain-all-codepoint.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43,44.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43,44.otf
new file mode 100644
index 0000000..5447973
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43,44.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43,45.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43,45.otf
new file mode 100644
index 0000000..e6c891b
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43,45.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43.otf
new file mode 100644
index 0000000..127f798
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42.otf
new file mode 100644
index 0000000..6cafcb8
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,44,45,46.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,44,45,46.otf
new file mode 100644
index 0000000..5f47542
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,44,45,46.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,44.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,44.otf
new file mode 100644
index 0000000..8fe4d63
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,44.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,45.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,45.otf
new file mode 100644
index 0000000..147ed57
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,45.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43.otf
new file mode 100644
index 0000000..1b0f243
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41.otf
new file mode 100644
index 0000000..657b686
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41.otf
Binary files differ
diff --git a/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.retain-all-codepoint.otf b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.retain-all-codepoint.otf
new file mode 100644
index 0000000..d4f9fc0
--- /dev/null
+++ b/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.retain-all-codepoint.otf
Binary files differ
diff --git a/test/subset/data/fonts/gpos4_multiple_anchors_1.otf b/test/subset/data/fonts/gpos4_multiple_anchors_1.otf
new file mode 100644
index 0000000..e77cbb6
--- /dev/null
+++ b/test/subset/data/fonts/gpos4_multiple_anchors_1.otf
Binary files differ
diff --git a/test/subset/data/tests/layout.gpos4.tests b/test/subset/data/tests/layout.gpos4.tests
new file mode 100644
index 0000000..fd2b688
--- /dev/null
+++ b/test/subset/data/tests/layout.gpos4.tests
@@ -0,0 +1,18 @@
+FONTS:
+gpos4_multiple_anchors_1.otf
+
+PROFILES:
+keep-layout.txt
+keep-layout-retain-gids.txt
+
+SUBSETS:
+A
+AB
+AC
+ABC
+ACE
+ABCE
+ACD
+ACDEF
+ABCD
+*