[infra-disco] 03/04: Adopt MDA 0.10.0 GA

Ian Young ian at iay.org.uk
Fri Jul 4 09:54:45 UTC 2025


This is an automated email from the git hooks/post-receive script.

iay pushed a commit to branch main
in repository infra-disco.

View the commit online:
http://git.shibboleth.net/view/?p=infra-disco.git;a=commit;h=536d5bcb1719566226807d2859b2afa8f35fa097

commit 536d5bcb1719566226807d2859b2afa8f35fa097
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Fri Jul 4 09:33:17 2025 +0000

    Adopt MDA 0.10.0 GA
---
 aggregator-cli/lib/FastInfoset-1.2.16.jar          | Bin 317195 -> 0 bytes
 .../lib/aggregator-blacklists-0.10.0-SNAPSHOT.jar  | Bin 13288979 -> 0 bytes
 .../lib/aggregator-cli-0.10.0-SNAPSHOT.jar         | Bin 8543 -> 0 bytes
 .../lib/aggregator-pipeline-0.10.0-SNAPSHOT.jar    | Bin 252342 -> 0 bytes
 aggregator-cli/lib/bcprov-jdk15on-1.64.jar         | Bin 4771726 -> 0 bytes
 aggregator-cli/lib/checker-qual-2.10.0.jar         | Bin 201216 -> 0 bytes
 aggregator-cli/lib/commons-codec-1.14.jar          | Bin 347669 -> 0 bytes
 .../lib/error_prone_annotations-2.3.4.jar          | Bin 13879 -> 0 bytes
 aggregator-cli/lib/failureaccess-1.0.1.jar         | Bin 4617 -> 0 bytes
 aggregator-cli/lib/guava-28.2-jre.jar              | Bin 2788302 -> 0 bytes
 aggregator-cli/lib/httpclient-4.5.12.jar           | Bin 778156 -> 0 bytes
 aggregator-cli/lib/httpclient-cache-4.5.12.jar     | Bin 164069 -> 0 bytes
 aggregator-cli/lib/httpcore-4.4.13.jar             | Bin 328593 -> 0 bytes
 .../lib/istack-commons-runtime-3.0.8.jar           | Bin 27156 -> 0 bytes
 aggregator-cli/lib/j2objc-annotations-1.3.jar      | Bin 8781 -> 0 bytes
 aggregator-cli/lib/jakarta.json-1.1.6.jar          | Bin 140425 -> 0 bytes
 aggregator-cli/lib/jakarta.xml.bind-api-2.3.2.jar  | Bin 115498 -> 0 bytes
 aggregator-cli/lib/java-support-8.0.0.jar          | Bin 282724 -> 0 bytes
 aggregator-cli/lib/jaxb-runtime-2.3.2.jar          | Bin 1013367 -> 0 bytes
 aggregator-cli/lib/jcommander-1.78.jar             | Bin 83782 -> 0 bytes
 aggregator-cli/lib/logback-classic-1.2.3.jar       | Bin 290339 -> 0 bytes
 aggregator-cli/lib/logback-core-1.2.3.jar          | Bin 471901 -> 0 bytes
 aggregator-cli/lib/slf4j-api-1.7.30.jar            | Bin 41472 -> 0 bytes
 aggregator-cli/lib/spring-aop-5.2.4.RELEASE.jar    | Bin 372798 -> 0 bytes
 aggregator-cli/lib/spring-beans-5.2.4.RELEASE.jar  | Bin 685134 -> 0 bytes
 .../lib/spring-context-5.2.4.RELEASE.jar           | Bin 1222418 -> 0 bytes
 aggregator-cli/lib/spring-core-5.2.4.RELEASE.jar   | Bin 1442526 -> 0 bytes
 .../lib/spring-expression-5.2.4.RELEASE.jar        | Bin 282183 -> 0 bytes
 aggregator-cli/lib/spring-extensions-6.0.0.jar     | Bin 106290 -> 0 bytes
 aggregator-cli/lib/spring-jcl-5.2.4.RELEASE.jar    | Bin 23961 -> 0 bytes
 aggregator-cli/lib/stax-ex-1.8.1.jar               | Bin 38099 -> 0 bytes
 aggregator-cli/lib/stax2-api-3.1.4.jar             | Bin 161867 -> 0 bytes
 aggregator-cli/lib/txw2-2.3.2.jar                  | Bin 72080 -> 0 bytes
 aggregator-cli/lib/woodstox-core-5.0.3.jar         | Bin 512742 -> 0 bytes
 aggregator-cli/lib/xmlsec-2.1.4.jar                | Bin 1129826 -> 0 bytes
 .../cpappend.bat                                   |  34 +-
 .../doc/LICENSE.txt                                | 404 +++++++++---------
 mda-distribution-0.10.0/doc/wiki/README.md         |  31 ++
 .../doc/wiki/aggregate-and-republish.xml           | 441 ++++++++++++++++++++
 .../doc/wiki/aggregate-and-sign.xml                |  86 ++++
 mda-distribution-0.10.0/doc/wiki/discofeed.xml     |  68 +++
 .../doc/wiki/filter-aggregate.xml                  | 151 +++++++
 mda-distribution-0.10.0/doc/wiki/make-keys.sh      |  16 +
 .../doc/wiki/path/to/input/aggregate.xml           | 458 +++++++++++++++++++++
 .../doc/wiki/path/to/input/entities/entity1.xml    | 134 ++++++
 .../doc/wiki/path/to/input/entities/entity2.xml    |  98 +++++
 .../doc/wiki/path/to/input/entities/entity3.xml    |  91 ++++
 .../doc/wiki/path/to/input/entities/entity4.xml    |  91 ++++
 .../doc/wiki/path/to/input/entities/entity5.xml    |  96 +++++
 .../doc/wiki/path/to/input/inc-md-cert-mdq.pem     |  28 ++
 .../doc/wiki/path/to/input/pkcs11-softhsm.cfg      |   3 +
 .../doc/wiki/path/to/input/ukfederation-2014.pem   |  23 ++
 .../doc/wiki/path/to/output/.gitkeep               |   0
 .../path/to/schema/saml-schema-assertion-2.0.xsd   | 283 +++++++++++++
 .../path/to/schema/saml-schema-metadata-2.0.xsd    | 337 +++++++++++++++
 .../doc/wiki/path/to/schema/xenc-schema.xsd        | 171 ++++++++
 .../doc/wiki/path/to/schema/xml.xsd                |  80 ++++
 .../wiki/path/to/schema/xmldsig-core-schema.xsd    | 308 ++++++++++++++
 mda-distribution-0.10.0/doc/wiki/per-entity.xml    |  87 ++++
 .../doc/wiki/run-all-examples.sh                   |  21 +
 mda-distribution-0.10.0/doc/wiki/setup-softhsm.sh  |  22 +
 .../doc/wiki/sign-using-token.xml                  |  68 +++
 .../lib/bcpkix-jdk18on-1.77.jar                    | Bin 0 -> 1113643 bytes
 .../lib/bcprov-jdk18on-1.77.jar                    | Bin 0 -> 8372360 bytes
 .../lib/bcutil-jdk18on-1.77.jar                    | Bin 0 -> 681002 bytes
 .../lib/checker-qual-3.41.0.jar                    | Bin 0 -> 228963 bytes
 .../lib/commons-codec-1.16.1.jar                   | Bin 0 -> 365463 bytes
 .../lib/cryptacular-1.2.6.jar                      | Bin 162471 -> 162670 bytes
 .../lib/error_prone_annotations-2.23.0.jar         | Bin 0 -> 16829 bytes
 .../lib/failureaccess-1.0.2.jar                    | Bin 0 -> 4740 bytes
 mda-distribution-0.10.0/lib/guava-33.0.0-jre.jar   | Bin 0 -> 3047503 bytes
 mda-distribution-0.10.0/lib/httpclient5-5.3.1.jar  | Bin 0 -> 861741 bytes
 .../lib/httpclient5-cache-5.3.1.jar                | Bin 0 -> 245953 bytes
 mda-distribution-0.10.0/lib/httpcore5-5.2.4.jar    | Bin 0 -> 855013 bytes
 mda-distribution-0.10.0/lib/httpcore5-h2-5.2.4.jar | Bin 0 -> 237145 bytes
 .../lib/j2objc-annotations-2.8.jar                 | Bin 0 -> 9301 bytes
 mda-distribution-0.10.0/lib/jakarta.json-2.0.1.jar | Bin 0 -> 143846 bytes
 mda-distribution-0.10.0/lib/jcommander-1.81.jar    | Bin 0 -> 85816 bytes
 .../lib/jsr305-3.0.2.jar                           | Bin
 ...e-9999.0-empty-to-avoid-conflict-with-guava.jar | Bin
 .../lib/logback-classic-1.5.3.jar                  | Bin 0 -> 291838 bytes
 mda-distribution-0.10.0/lib/logback-core-1.5.3.jar | Bin 0 -> 605794 bytes
 mda-distribution-0.10.0/lib/mda-cli-0.10.0.jar     | Bin 0 -> 10137 bytes
 .../lib/mda-framework-0.10.0.jar                   | Bin 0 -> 308167 bytes
 .../lib/mda-keylists-rsa-0.10.0.jar                | Bin 0 -> 6646091 bytes
 .../lib/mda-keylists-rsa-legacy-0.10.0.jar         | Bin 0 -> 6645718 bytes
 .../lib/micrometer-commons-1.12.5.jar              | Bin 0 -> 47355 bytes
 .../lib/micrometer-observation-1.12.5.jar          | Bin 0 -> 71758 bytes
 .../lib/shib-networking-9.1.2.jar                  | Bin 0 -> 77741 bytes
 .../lib/shib-networking-spring-9.1.2.jar           | Bin 0 -> 46622 bytes
 .../lib/shib-security-9.1.2.jar                    | Bin 0 -> 53915 bytes
 .../lib/shib-security-spring-9.1.2.jar             | Bin 0 -> 13246 bytes
 mda-distribution-0.10.0/lib/shib-spring-9.1.2.jar  | Bin 0 -> 102295 bytes
 mda-distribution-0.10.0/lib/shib-support-9.1.2.jar | Bin 0 -> 198028 bytes
 mda-distribution-0.10.0/lib/slf4j-api-2.0.12.jar   | Bin 0 -> 68115 bytes
 mda-distribution-0.10.0/lib/spring-aop-6.1.6.jar   | Bin 0 -> 415958 bytes
 mda-distribution-0.10.0/lib/spring-beans-6.1.6.jar | Bin 0 -> 858415 bytes
 .../lib/spring-context-6.1.6.jar                   | Bin 0 -> 1304581 bytes
 mda-distribution-0.10.0/lib/spring-core-6.1.6.jar  | Bin 0 -> 1880852 bytes
 .../lib/spring-expression-6.1.6.jar                | Bin 0 -> 302983 bytes
 mda-distribution-0.10.0/lib/spring-jcl-6.1.6.jar   | Bin 0 -> 24539 bytes
 mda-distribution-0.10.0/lib/spring-web-6.1.6.jar   | Bin 0 -> 1891285 bytes
 .../lib/spring-webmvc-6.1.6.jar                    | Bin 0 -> 1046858 bytes
 mda-distribution-0.10.0/lib/xmlsec-3.0.3.jar       | Bin 0 -> 1141178 bytes
 .../mda.bat                                        |  98 ++---
 {aggregator-cli => mda-distribution-0.10.0}/mda.sh |   2 +-
 refresh                                            |   2 +-
 107 files changed, 3462 insertions(+), 270 deletions(-)

diff --git a/aggregator-cli/lib/FastInfoset-1.2.16.jar b/aggregator-cli/lib/FastInfoset-1.2.16.jar
deleted file mode 100644
index 6e91f1c..0000000
Binary files a/aggregator-cli/lib/FastInfoset-1.2.16.jar and /dev/null differ
diff --git a/aggregator-cli/lib/aggregator-blacklists-0.10.0-SNAPSHOT.jar b/aggregator-cli/lib/aggregator-blacklists-0.10.0-SNAPSHOT.jar
deleted file mode 100644
index 54e6abf..0000000
Binary files a/aggregator-cli/lib/aggregator-blacklists-0.10.0-SNAPSHOT.jar and /dev/null differ
diff --git a/aggregator-cli/lib/aggregator-cli-0.10.0-SNAPSHOT.jar b/aggregator-cli/lib/aggregator-cli-0.10.0-SNAPSHOT.jar
deleted file mode 100644
index 1346ec6..0000000
Binary files a/aggregator-cli/lib/aggregator-cli-0.10.0-SNAPSHOT.jar and /dev/null differ
diff --git a/aggregator-cli/lib/aggregator-pipeline-0.10.0-SNAPSHOT.jar b/aggregator-cli/lib/aggregator-pipeline-0.10.0-SNAPSHOT.jar
deleted file mode 100644
index 799ef86..0000000
Binary files a/aggregator-cli/lib/aggregator-pipeline-0.10.0-SNAPSHOT.jar and /dev/null differ
diff --git a/aggregator-cli/lib/bcprov-jdk15on-1.64.jar b/aggregator-cli/lib/bcprov-jdk15on-1.64.jar
deleted file mode 100644
index 0cb3c8b..0000000
Binary files a/aggregator-cli/lib/bcprov-jdk15on-1.64.jar and /dev/null differ
diff --git a/aggregator-cli/lib/checker-qual-2.10.0.jar b/aggregator-cli/lib/checker-qual-2.10.0.jar
deleted file mode 100644
index 9ea731e..0000000
Binary files a/aggregator-cli/lib/checker-qual-2.10.0.jar and /dev/null differ
diff --git a/aggregator-cli/lib/commons-codec-1.14.jar b/aggregator-cli/lib/commons-codec-1.14.jar
deleted file mode 100644
index 49ffa9b..0000000
Binary files a/aggregator-cli/lib/commons-codec-1.14.jar and /dev/null differ
diff --git a/aggregator-cli/lib/error_prone_annotations-2.3.4.jar b/aggregator-cli/lib/error_prone_annotations-2.3.4.jar
deleted file mode 100644
index c9bea2a..0000000
Binary files a/aggregator-cli/lib/error_prone_annotations-2.3.4.jar and /dev/null differ
diff --git a/aggregator-cli/lib/failureaccess-1.0.1.jar b/aggregator-cli/lib/failureaccess-1.0.1.jar
deleted file mode 100644
index 9b56dc7..0000000
Binary files a/aggregator-cli/lib/failureaccess-1.0.1.jar and /dev/null differ
diff --git a/aggregator-cli/lib/guava-28.2-jre.jar b/aggregator-cli/lib/guava-28.2-jre.jar
deleted file mode 100644
index 822b37b..0000000
Binary files a/aggregator-cli/lib/guava-28.2-jre.jar and /dev/null differ
diff --git a/aggregator-cli/lib/httpclient-4.5.12.jar b/aggregator-cli/lib/httpclient-4.5.12.jar
deleted file mode 100644
index 300cdf0..0000000
Binary files a/aggregator-cli/lib/httpclient-4.5.12.jar and /dev/null differ
diff --git a/aggregator-cli/lib/httpclient-cache-4.5.12.jar b/aggregator-cli/lib/httpclient-cache-4.5.12.jar
deleted file mode 100644
index 3edc233..0000000
Binary files a/aggregator-cli/lib/httpclient-cache-4.5.12.jar and /dev/null differ
diff --git a/aggregator-cli/lib/httpcore-4.4.13.jar b/aggregator-cli/lib/httpcore-4.4.13.jar
deleted file mode 100644
index 163dc43..0000000
Binary files a/aggregator-cli/lib/httpcore-4.4.13.jar and /dev/null differ
diff --git a/aggregator-cli/lib/istack-commons-runtime-3.0.8.jar b/aggregator-cli/lib/istack-commons-runtime-3.0.8.jar
deleted file mode 100644
index 8f37e95..0000000
Binary files a/aggregator-cli/lib/istack-commons-runtime-3.0.8.jar and /dev/null differ
diff --git a/aggregator-cli/lib/j2objc-annotations-1.3.jar b/aggregator-cli/lib/j2objc-annotations-1.3.jar
deleted file mode 100644
index a429c72..0000000
Binary files a/aggregator-cli/lib/j2objc-annotations-1.3.jar and /dev/null differ
diff --git a/aggregator-cli/lib/jakarta.json-1.1.6.jar b/aggregator-cli/lib/jakarta.json-1.1.6.jar
deleted file mode 100644
index 1f33076..0000000
Binary files a/aggregator-cli/lib/jakarta.json-1.1.6.jar and /dev/null differ
diff --git a/aggregator-cli/lib/jakarta.xml.bind-api-2.3.2.jar b/aggregator-cli/lib/jakarta.xml.bind-api-2.3.2.jar
deleted file mode 100644
index b16236d..0000000
Binary files a/aggregator-cli/lib/jakarta.xml.bind-api-2.3.2.jar and /dev/null differ
diff --git a/aggregator-cli/lib/java-support-8.0.0.jar b/aggregator-cli/lib/java-support-8.0.0.jar
deleted file mode 100644
index 22a73eb..0000000
Binary files a/aggregator-cli/lib/java-support-8.0.0.jar and /dev/null differ
diff --git a/aggregator-cli/lib/jaxb-runtime-2.3.2.jar b/aggregator-cli/lib/jaxb-runtime-2.3.2.jar
deleted file mode 100644
index 62f8719..0000000
Binary files a/aggregator-cli/lib/jaxb-runtime-2.3.2.jar and /dev/null differ
diff --git a/aggregator-cli/lib/jcommander-1.78.jar b/aggregator-cli/lib/jcommander-1.78.jar
deleted file mode 100644
index 1d58673..0000000
Binary files a/aggregator-cli/lib/jcommander-1.78.jar and /dev/null differ
diff --git a/aggregator-cli/lib/logback-classic-1.2.3.jar b/aggregator-cli/lib/logback-classic-1.2.3.jar
deleted file mode 100644
index bed00c0..0000000
Binary files a/aggregator-cli/lib/logback-classic-1.2.3.jar and /dev/null differ
diff --git a/aggregator-cli/lib/logback-core-1.2.3.jar b/aggregator-cli/lib/logback-core-1.2.3.jar
deleted file mode 100644
index 487b395..0000000
Binary files a/aggregator-cli/lib/logback-core-1.2.3.jar and /dev/null differ
diff --git a/aggregator-cli/lib/slf4j-api-1.7.30.jar b/aggregator-cli/lib/slf4j-api-1.7.30.jar
deleted file mode 100644
index 29ac26f..0000000
Binary files a/aggregator-cli/lib/slf4j-api-1.7.30.jar and /dev/null differ
diff --git a/aggregator-cli/lib/spring-aop-5.2.4.RELEASE.jar b/aggregator-cli/lib/spring-aop-5.2.4.RELEASE.jar
deleted file mode 100644
index e52a5b9..0000000
Binary files a/aggregator-cli/lib/spring-aop-5.2.4.RELEASE.jar and /dev/null differ
diff --git a/aggregator-cli/lib/spring-beans-5.2.4.RELEASE.jar b/aggregator-cli/lib/spring-beans-5.2.4.RELEASE.jar
deleted file mode 100644
index 8e1eb3b..0000000
Binary files a/aggregator-cli/lib/spring-beans-5.2.4.RELEASE.jar and /dev/null differ
diff --git a/aggregator-cli/lib/spring-context-5.2.4.RELEASE.jar b/aggregator-cli/lib/spring-context-5.2.4.RELEASE.jar
deleted file mode 100644
index 4220c2c..0000000
Binary files a/aggregator-cli/lib/spring-context-5.2.4.RELEASE.jar and /dev/null differ
diff --git a/aggregator-cli/lib/spring-core-5.2.4.RELEASE.jar b/aggregator-cli/lib/spring-core-5.2.4.RELEASE.jar
deleted file mode 100644
index 1ccf944..0000000
Binary files a/aggregator-cli/lib/spring-core-5.2.4.RELEASE.jar and /dev/null differ
diff --git a/aggregator-cli/lib/spring-expression-5.2.4.RELEASE.jar b/aggregator-cli/lib/spring-expression-5.2.4.RELEASE.jar
deleted file mode 100644
index 8987d27..0000000
Binary files a/aggregator-cli/lib/spring-expression-5.2.4.RELEASE.jar and /dev/null differ
diff --git a/aggregator-cli/lib/spring-extensions-6.0.0.jar b/aggregator-cli/lib/spring-extensions-6.0.0.jar
deleted file mode 100644
index 638a7b3..0000000
Binary files a/aggregator-cli/lib/spring-extensions-6.0.0.jar and /dev/null differ
diff --git a/aggregator-cli/lib/spring-jcl-5.2.4.RELEASE.jar b/aggregator-cli/lib/spring-jcl-5.2.4.RELEASE.jar
deleted file mode 100644
index 4b9f365..0000000
Binary files a/aggregator-cli/lib/spring-jcl-5.2.4.RELEASE.jar and /dev/null differ
diff --git a/aggregator-cli/lib/stax-ex-1.8.1.jar b/aggregator-cli/lib/stax-ex-1.8.1.jar
deleted file mode 100644
index a200db5..0000000
Binary files a/aggregator-cli/lib/stax-ex-1.8.1.jar and /dev/null differ
diff --git a/aggregator-cli/lib/stax2-api-3.1.4.jar b/aggregator-cli/lib/stax2-api-3.1.4.jar
deleted file mode 100644
index dded036..0000000
Binary files a/aggregator-cli/lib/stax2-api-3.1.4.jar and /dev/null differ
diff --git a/aggregator-cli/lib/txw2-2.3.2.jar b/aggregator-cli/lib/txw2-2.3.2.jar
deleted file mode 100644
index 0d5ac01..0000000
Binary files a/aggregator-cli/lib/txw2-2.3.2.jar and /dev/null differ
diff --git a/aggregator-cli/lib/woodstox-core-5.0.3.jar b/aggregator-cli/lib/woodstox-core-5.0.3.jar
deleted file mode 100644
index 1c26864..0000000
Binary files a/aggregator-cli/lib/woodstox-core-5.0.3.jar and /dev/null differ
diff --git a/aggregator-cli/lib/xmlsec-2.1.4.jar b/aggregator-cli/lib/xmlsec-2.1.4.jar
deleted file mode 100644
index 3851395..0000000
Binary files a/aggregator-cli/lib/xmlsec-2.1.4.jar and /dev/null differ
diff --git a/aggregator-cli/cpappend.bat b/mda-distribution-0.10.0/cpappend.bat
old mode 100755
new mode 100644
similarity index 96%
rename from aggregator-cli/cpappend.bat
rename to mda-distribution-0.10.0/cpappend.bat
index bafe139..5e7ef33
--- a/aggregator-cli/cpappend.bat
+++ b/mda-distribution-0.10.0/cpappend.bat
@@ -1,17 +1,17 @@
-rem ---------------------------------------------------------------------------
-rem Append to CLASSPATH
-rem ---------------------------------------------------------------------------
-
-rem Process the first argument
-if ""%1"" == """" goto end
-set LOCALCLASSPATH=%LOCALCLASSPATH%;%1
-shift
-
-rem Process the remaining arguments
-:setArgs
-if ""%1"" == """" goto doneSetArgs
-set LOCALCLASSPATH=%LOCALCLASSPATH% %1
-shift
-goto setArgs
-:doneSetArgs
-:end
+rem ---------------------------------------------------------------------------
+rem Append to CLASSPATH
+rem ---------------------------------------------------------------------------
+
+rem Process the first argument
+if ""%1"" == """" goto end
+set LOCALCLASSPATH=%LOCALCLASSPATH%;%1
+shift
+
+rem Process the remaining arguments
+:setArgs
+if ""%1"" == """" goto doneSetArgs
+set LOCALCLASSPATH=%LOCALCLASSPATH% %1
+shift
+goto setArgs
+:doneSetArgs
+:end
diff --git a/aggregator-cli/doc/LICENSE.txt b/mda-distribution-0.10.0/doc/LICENSE.txt
similarity index 98%
rename from aggregator-cli/doc/LICENSE.txt
rename to mda-distribution-0.10.0/doc/LICENSE.txt
index d645695..75b5248 100644
--- a/aggregator-cli/doc/LICENSE.txt
+++ b/mda-distribution-0.10.0/doc/LICENSE.txt
@@ -1,202 +1,202 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/mda-distribution-0.10.0/doc/wiki/README.md b/mda-distribution-0.10.0/doc/wiki/README.md
new file mode 100644
index 0000000..8e63045
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/README.md
@@ -0,0 +1,31 @@
+# Wiki Configuration Examples
+
+This directory contains copies of the [configuration examples][wiki:examples]
+provided on the wiki. The intention is to make it easier to keep them up to date
+with new releases by having test data available alongside them.
+
+[wiki:examples]: https://wiki.shibboleth.net/confluence/display/MA1/Configuration+Examples
+
+- [Aggregate and Sign](https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1501823071/Aggregate+and+Sign)
+
+    `.../mda.sh aggregate-and-sign.xml main`
+
+- [Filter Aggregate](https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1501823090/Filter+Aggregate)
+
+    `.../mda.sh filter-aggregate.xml main`
+
+- [Aggregate and Republish](https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1501823098/Aggregate+and+Republish)
+
+    `.../mda.sh aggregate-and-republish.xml main`
+
+- [Sign Using PKCS#11 Token](https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1502216280/Sign+using+PKCS%2311+token)
+
+    `.../mda.sh sign-using-token.xml main`
+
+- [Per-entity Output](https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1502216310/Per-entity+Output)
+
+    `.../mda.sh per-entity.xml main`
+
+- [Generate Discovery Feed](https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1552614062/Generate+Discovery+Feed):
+
+    `.../mda.sh discofeed.xml main`
diff --git a/mda-distribution-0.10.0/doc/wiki/aggregate-and-republish.xml b/mda-distribution-0.10.0/doc/wiki/aggregate-and-republish.xml
new file mode 100644
index 0000000..b6a4f61
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/aggregate-and-republish.xml
@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Note we define a default initialization method at this level just so we don't have to define it
+    on almost every single bean.
+-->
+<beans default-init-method="initialize"
+       xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
+
+    <!-- Import the Standard bean definition resource. -->
+    <!-- See https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/3162439683/Standard+bean+definition+resource -->
+    <import resource="classpath:net/shibboleth/metadata/beans.xml"/>
+
+    <!-- This bean MUST be called "conversionService" to work properly. -->
+    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
+        <property name="converters">
+            <set>
+                <bean parent="mda.StringToDurationConverter"/>
+                <bean parent="mda.StringToIPRangeConverter"/>
+                <bean parent="mda.BooleanToPredicateConverter"/>
+                <bean parent="mda.StringBooleanToPredicateConverter"/>
+                <bean parent="mda.StringToResourceConverter"/>
+            </set>
+        </property>
+    </bean>
+
+    <!-- Define files/URLs we'll use in this config -->
+
+    <!-- Schema files for the schemas we wish to validate against. -->
+    <bean id="xml-schemaFile" class="java.lang.String">
+        <constructor-arg value="path/to/schema/xml.xsd"/>
+    </bean>
+    <bean id="xml-dsig-core-schemaFile" class="java.lang.String">
+        <constructor-arg value="path/to/schema/xmldsig-core-schema.xsd"/>
+    </bean>
+    <bean id="xenc-schemaFile" class="java.lang.String">
+        <constructor-arg value="path/to/schema/xenc-schema.xsd"/>
+    </bean>
+    <bean id="saml-assertion-schemaFile" class="java.lang.String">
+        <constructor-arg value="path/to/schema/saml-schema-assertion-2.0.xsd"/>
+    </bean>
+    <bean id="saml-md-schemaFile" class="java.lang.String">
+        <constructor-arg value="path/to/schema/saml-schema-metadata-2.0.xsd"/>
+    </bean>
+
+    <bean id="incommonMdUrl" class="java.lang.String">
+        <constructor-arg value="https://mdq.incommon.org/entities"/>
+    </bean>
+    <bean id="incommonCertFile" class="java.io.File">
+        <constructor-arg value="path/to/input/inc-md-cert-mdq.pem"/>
+    </bean>
+    <bean id="ukMdUrl" class="java.lang.String">
+        <constructor-arg value="http://metadata.ukfederation.org.uk/ukfederation-metadata.xml"/>
+    </bean>
+    <bean id="ukCertFile" class="java.io.File">
+        <constructor-arg value="path/to/input/ukfederation-2014.pem"/>
+    </bean>
+    <bean id="localMetadataDirectory" class="java.io.File">
+        <constructor-arg value="path/to/input/entities"/>
+    </bean>
+    <bean id="signingKeyFile" class="java.io.File">
+        <constructor-arg value="path/to/secrets/private-key.pem"/>
+    </bean>
+    <bean id="allEntitiesOutputFile" class="java.io.File">
+        <constructor-arg value="path/to/output/all-metadata.xml"/>
+    </bean>
+    <bean id="idpEntitiesOutputFile" class="java.io.File">
+        <constructor-arg value="path/to/output/idp-metadata.xml"/>
+    </bean>
+    <bean id="spEntitiesOutputFile" class="java.io.File">
+        <constructor-arg value="path/to/output/sp-metadata.xml"/>
+    </bean>
+
+    <!-- Define some beans we'll use throughout this config -->
+
+    <bean id="parserPool" parent="mda.BasicParserPool"/>
+    <bean id="httpClientBuilder" parent="mda.HttpClientBuilder"
+          p:connectionDisregardTLSCertificate="true"/>
+    <bean id="httpClient" factory-bean="httpClientBuilder" factory-method="buildClient"/>
+    <bean id="domSerializer" parent="mda.DOMElementSerializer"/>
+    <util:list id="errorStatusClass">
+        <value>#{T(net.shibboleth.metadata.ErrorStatus)}</value>
+    </util:list>
+
+    <bean id="logItemErrors" parent="mda.StatusMetadataLoggingStage"
+          p:id="logItemErrors" p:selectionRequirements-ref="errorStatusClass"/>
+
+    <bean id="removeErrorItems" parent="mda.ItemMetadataFilterStage"
+          p:id="removeErrorItems" p:selectionRequirements-ref="errorStatusClass"/>
+
+    <!--
+        Define a composite stage that is going to be used to check validUntil, disassemble the
+        EntitiesDescriptor, and schema validate each EntityDescriptor.
+    -->
+    <bean id="terminateOnInvalidSignature" parent="mda.ItemMetadataTerminationStage"
+        p:id="terminateOnInvalidSignature" p:selectionRequirements-ref="errorStatusClass"/>
+
+    <bean id="validateValidUntil" parent="mda.ValidateValidUntilStage"
+        p:id="validateValidUntil"/>
+
+    <bean id="disassembleEntitiesDescriptor" parent="mda.EntitiesDescriptorDisassemblerStage"
+        p:id="disassembleEntitiesDescriptor"/>
+
+    <bean id="validateSchema" parent="mda.XMLSchemaValidationStage"
+        p:id="validateSchema">
+        <property name="schemaResources">
+            <util:list>
+                <!--
+                    List schemas in order so that schemas used by others
+                    appear before them in the list.
+                -->
+                <bean class="org.springframework.core.io.FileSystemResource">
+                    <constructor-arg>
+                        <bean class="java.io.File">
+                            <constructor-arg ref="xml-schemaFile"/>
+                        </bean>
+                    </constructor-arg>
+                </bean>
+                <bean class="org.springframework.core.io.FileSystemResource">
+                    <constructor-arg>
+                        <bean class="java.io.File">
+                            <constructor-arg ref="xml-dsig-core-schemaFile"/>
+                        </bean>
+                    </constructor-arg>
+                </bean>
+                <bean class="org.springframework.core.io.FileSystemResource">
+                    <constructor-arg>
+                        <bean class="java.io.File">
+                            <constructor-arg ref="xenc-schemaFile"/>
+                        </bean>
+                    </constructor-arg>
+                </bean>
+                <bean class="org.springframework.core.io.FileSystemResource">
+                    <constructor-arg>
+                        <bean class="java.io.File">
+                            <constructor-arg ref="saml-assertion-schemaFile"/>
+                        </bean>
+                    </constructor-arg>
+                </bean>
+                <bean class="org.springframework.core.io.FileSystemResource">
+                    <constructor-arg>
+                        <bean class="java.io.File">
+                            <constructor-arg ref="saml-md-schemaFile"/>
+                        </bean>
+                    </constructor-arg>
+                </bean>
+            </util:list>
+        </property>
+    </bean>
+
+    <bean id="commonProcessing" parent="mda.CompositeStage"
+        p:id="commonProcessing">
+        <property name="stages">
+            <util:list>
+                <ref bean="logItemErrors"/>
+                <ref bean="terminateOnInvalidSignature"/>
+                <ref bean="validateValidUntil"/>
+                <ref bean="disassembleEntitiesDescriptor"/>
+                <ref bean="validateSchema"/>
+                <!--
+                    Extract entityID attributes as ItemIDs so that we can
+                    remove duplicates when we merge.
+                -->
+                <bean id="extractIDs"
+                    p:id="extractIDs"
+                    parent="mda.EntityDescriptorItemIdPopulationStage"/>
+            </util:list>
+        </property>
+    </bean>
+
+    <!-- Define the pipeline for reading in and performing initial processing on InCommon metadata -->
+
+    <bean id="readIncommonMetadta" parent="mda.DOMResourceSourceStage"
+        p:id="readIncommonMetadta" p:parserPool-ref="parserPool">
+        <property name="DOMResource">
+            <bean parent="mda.HTTPResource">
+                <constructor-arg ref="httpClient"/>
+                <constructor-arg ref="incommonMdUrl"/>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="validateIncommonSignature" parent="mda.XMLSignatureValidationStage"
+        p:id="validateIncommonSignature">
+        <property name="verificationCertificate">
+            <bean parent="mda.X509CertificateFactoryBean">
+                <property name="resource">
+                    <bean class="org.springframework.core.io.FileSystemResource">
+                        <constructor-arg ref="incommonCertFile"/>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="incommonInput" parent="mda.SimplePipeline"
+        p:id="incommonInput">
+        <property name="stages">
+            <util:list>
+                <ref bean="readIncommonMetadta"/>
+                <ref bean="validateIncommonSignature"/>
+                <ref bean="commonProcessing"/>
+            </util:list>
+        </property>
+    </bean>
+
+    <!-- Define the pipeline for reading in and performing initial processing on UK metadata -->
+
+    <bean id="readUkMetadata" parent="mda.DOMResourceSourceStage"
+        p:id="readUkMetadata" p:parserPool-ref="parserPool">
+        <property name="DOMResource">
+            <bean parent="mda.HTTPResource">
+                <constructor-arg ref="httpClient"/>
+                <constructor-arg ref="ukMdUrl"/>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="validateUkSignature" parent="mda.XMLSignatureValidationStage"
+        p:id="validateUkSignature">
+        <property name="verificationCertificate">
+            <bean parent="mda.X509CertificateFactoryBean">
+                <property name="resource">
+                    <bean class="org.springframework.core.io.FileSystemResource">
+                        <constructor-arg ref="ukCertFile"/>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="ukInput" parent="mda.SimplePipeline"
+        p:id="ukInput">
+        <property name="stages">
+            <util:list>
+                <ref bean="readUkMetadata"/>
+                <ref bean="validateUkSignature"/>
+                <ref bean="commonProcessing"/>
+            </util:list>
+        </property>
+    </bean>
+
+    <!-- Define the pipeline for reading in local metadata and performing initial processing on it-->
+
+    <bean id="readLocalMetadata" parent="mda.DOMFilesystemSourceStage"
+        p:id="readLocalMetadata" p:parserPool-ref="parserPool" p:source-ref="localMetadataDirectory"/>
+
+    <bean id="localInput" parent="mda.SimplePipeline"
+        p:id="localInput">
+        <property name="stages">
+            <util:list>
+                <ref bean="readLocalMetadata"/>
+                <ref bean="commonProcessing"/>
+            </util:list>
+        </property>
+    </bean>
+
+    <!--
+        Pipeline that will produce an EntitiesDescriptor containing all entities, add a valid until
+        restriction to it, sign it, and write it out to a file.
+    -->
+
+    <bean id="buildEntitiesDecriptor" parent="mda.EntitiesDescriptorAssemblerStage"
+        p:id="buildEntitiesDecriptor"/>
+
+    <bean id="addValidUntil" parent="mda.SetValidUntilStage"
+        p:id="addValidUntil" p:validityDuration="P28D"/>
+
+    <bean id="generateContentReferenceId" parent="mda.GenerateIdStage">
+        <property name="id" value="generateContentReferenceId"/>
+    </bean>
+
+    <bean id="signEntitiesDescriptor" parent="mda.XMLSignatureSigningStage"
+        p:id="signEntitiesDescriptor">
+        <property name="privateKey">
+            <bean parent="mda.PrivateKeyFactoryBean">
+                <property name="resource">
+                    <bean class="org.springframework.core.io.FileSystemResource">
+                        <constructor-arg ref="signingKeyFile"/>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="serializeAll" parent="mda.SerializationStage"
+        p:id="serializeAll" p:outputFile-ref="allEntitiesOutputFile" p:serializer-ref="domSerializer"/>
+
+    <bean id="outputAll" parent="mda.SimplePipeline"
+        p:id="outputAll" >
+        <property name="stages">
+            <util:list>
+                <ref bean="buildEntitiesDecriptor"/>
+                <ref bean="addValidUntil"/>
+                <ref bean="generateContentReferenceId"/>
+                <ref bean="signEntitiesDescriptor"/>
+                <ref bean="serializeAll"/>
+            </util:list>
+        </property>
+    </bean>
+
+    <!--
+        Pipeline that will produce an EntitiesDescriptor containing IdP entities, add a valid until
+        restriction to it, sign it, and write it out to a file.
+    -->
+
+    <bean id="retainIdPs" parent="mda.EntityRoleFilterStage"
+        p:id="retainIdPs" p:keepingRoles="true">
+        <property name="designatedRoles">
+            <util:list>
+                <bean class="javax.xml.namespace.QName">
+                    <constructor-arg value="urn:oasis:names:tc:SAML:2.0:metadata"/>
+                    <constructor-arg value="IDPSSODescriptor"/>
+                </bean>
+                <bean class="javax.xml.namespace.QName">
+                    <constructor-arg value="urn:oasis:names:tc:SAML:2.0:metadata"/>
+                    <constructor-arg value="AttributeAuthorityDescriptor"/>
+                </bean>
+            </util:list>
+        </property>
+    </bean>
+
+    <bean id="serializeIdPs" parent="mda.SerializationStage"
+        p:id="serializeIdPs" p:outputFile-ref="idpEntitiesOutputFile" p:serializer-ref="domSerializer"/>
+
+    <bean id="outputIdPs" parent="mda.SimplePipeline"
+        p:id="outputIdPs">
+        <property name="stages">
+            <util:list>
+                <ref bean="retainIdPs"/>
+                <ref bean="buildEntitiesDecriptor"/>
+                <ref bean="addValidUntil"/>
+                <ref bean="generateContentReferenceId"/>
+                <ref bean="signEntitiesDescriptor"/>
+                <ref bean="serializeIdPs"/>
+            </util:list>
+        </property>
+    </bean>
+
+    <!--
+        Pipeline that will produce an EntitiesDescriptor containing SP entities, add a valid until
+        restriction to it, sign it, and write it out to a file.
+    -->
+    <bean id="retainSPs" parent="mda.EntityRoleFilterStage"
+        p:id="retainSPs" p:keepingRoles="true">
+        <property name="designatedRoles">
+            <util:list>
+                <bean class="javax.xml.namespace.QName">
+                    <constructor-arg value="urn:oasis:names:tc:SAML:2.0:metadata"/>
+                    <constructor-arg value="SPSSODescriptor"/>
+                </bean>
+            </util:list>
+        </property>
+    </bean>
+
+    <bean id="serializeSPs" parent="mda.SerializationStage"
+        p:id="serializeSPs" p:outputFile-ref="spEntitiesOutputFile" p:serializer-ref="domSerializer"/>
+
+    <bean id="outputSPs" parent="mda.SimplePipeline"
+        p:id="outputSPs">
+        <property name="stages">
+            <util:list>
+                <ref bean="retainSPs"/>
+                <ref bean="buildEntitiesDecriptor"/>
+                <ref bean="addValidUntil"/>
+                <ref bean="generateContentReferenceId"/>
+                <ref bean="signEntitiesDescriptor"/>
+                <ref bean="serializeSPs"/>
+            </util:list>
+        </property>
+    </bean>
+
+    <!--
+        Merge the entities collected from each input source using a merge
+        strategy which removes duplicates.
+    -->
+    <bean id="mergeInputs" parent="mda.PipelineMergeStage"
+        p:id="mergeInputs">
+        <property name="collectionMergeStrategy">
+            <bean parent="mda.DeduplicatingItemIdMergeStrategy"/>
+        </property>
+        <property name="mergedPipelines">
+            <util:list>
+                <!--
+                    The order of pipelines in this list determines precedence
+                    for the DeduplicatingItemIdMergeStrategy; sources earlier
+                    in the list take precedence. Duplicate entities from later
+                    sources are discarded.
+                -->
+                <ref bean="localInput"/>
+                <ref bean="ukInput"/>
+                <ref bean="incommonInput"/>
+            </util:list>
+        </property>
+    </bean>
+
+    <!--
+        A predicate for matching everything.
+    -->
+    <bean id="matchEverything" class="com.google.common.base.Predicates" factory-method="alwaysTrue"/>
+
+    <bean id="generateOutputs" parent="mda.PipelineDemultiplexerStage"
+        p:id="generateOutputs" p:waitingForPipelines="true">
+        <property name="pipelinesAndStrategies">
+            <util:list>
+                <bean parent="mda.PipelineAndStrategy">
+                    <constructor-arg ref="outputAll"/>
+                    <constructor-arg ref="matchEverything"/>
+                </bean>
+                <bean parent="mda.PipelineAndStrategy">
+                    <constructor-arg ref="outputIdPs"/>
+                    <constructor-arg ref="matchEverything"/>
+                </bean>
+                <bean parent="mda.PipelineAndStrategy">
+                    <constructor-arg ref="outputSPs"/>
+                    <constructor-arg ref="matchEverything"/>
+                </bean>
+            </util:list>
+        </property>
+    </bean>
+
+    <!--
+        Main pipeline that merges all our sources together, logs and removes any items with errors,
+        then outputs three files: one containing everything, one containing only IdPs, and one
+        containing only SPs.  Each file has a validUntil restriction placed on it and is signed.
+    -->
+    <bean id="main" parent="mda.SimplePipeline"
+        p:id="main">
+        <property name="stages">
+            <util:list>
+                <ref bean="mergeInputs"/>
+                <ref bean="logItemErrors"/>
+                <ref bean="removeErrorItems"/>
+                <ref bean="generateOutputs"/>
+            </util:list>
+        </property>
+    </bean>
+
+</beans>
diff --git a/mda-distribution-0.10.0/doc/wiki/aggregate-and-sign.xml b/mda-distribution-0.10.0/doc/wiki/aggregate-and-sign.xml
new file mode 100644
index 0000000..feabcd8
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/aggregate-and-sign.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans default-init-method="initialize"
+       xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+    <!-- Import the Standard bean definition resource. -->
+    <!-- See https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/3162439683/Standard+bean+definition+resource -->
+    <import resource="classpath:net/shibboleth/metadata/beans.xml"/>
+
+    <!-- First, we define the stages for our pipeline. -->
+
+    <!-- Import each XML document in the given directory as a separate item for processing. -->
+    <bean id="source" parent="mda.DOMFilesystemSourceStage">
+        <property name="id" value="source"/>
+        <property name="parserPool">
+            <bean parent="mda.BasicParserPool"/>
+        </property>
+        <property name="source">
+            <bean class="java.io.File">
+                <constructor-arg value="path/to/input/entities"/>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="removeInvalidContactPerson" parent="mda.ContactPersonFilterStage">
+        <property name="id" value="removeInvalidContactPerson"/>
+        <property name="keepingTypes" value="false"/>
+    </bean>
+
+    <bean id="removeOrganization" parent="mda.RemoveOrganizationStage">
+        <property name="id" value="removeOrganization"/>
+    </bean>
+
+    <bean id="createEntitiesDescriptor" parent="mda.EntitiesDescriptorAssemblerStage">
+        <property name="id" value="createEntitiesDescriptor"/>
+    </bean>
+
+    <bean id="generateContentReferenceId" parent="mda.GenerateIdStage">
+        <property name="id" value="generateContentReferenceId" />
+    </bean>
+
+    <bean id="signMetadata" parent="mda.XMLSignatureSigningStage">
+        <property name="id" value="signMetadata"/>
+        <property name="privateKey">
+            <bean parent="mda.PrivateKeyFactoryBean">
+                <property name="resource">
+                    <bean class="org.springframework.core.io.FileSystemResource">
+                        <constructor-arg>
+                            <bean class="java.io.File">
+                                <constructor-arg value="path/to/secrets/private-key.pem"/>
+                            </bean>
+                        </constructor-arg>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="serialize" parent="mda.SerializationStage">
+        <property name="id" value="serializeIdPs"/>
+        <property name="outputFile">
+            <bean class="java.io.File">
+                <constructor-arg value="path/to/output/aggregate-signed.xml"/>
+            </bean>
+        </property>
+        <property name="serializer">
+            <bean id="domSerializer" parent="mda.DOMElementSerializer" />
+        </property>
+    </bean>
+
+    <!-- Next we define a pipeline with all the stages in it -->
+    <bean id="main" parent="mda.SimplePipeline">
+        <property name="id" value="main"/>
+        <property name="stages">
+            <list>
+                <ref bean="source"/>
+                <ref bean="removeInvalidContactPerson"/>
+                <ref bean="removeOrganization"/>
+                <ref bean="createEntitiesDescriptor"/>
+                <ref bean="generateContentReferenceId"/>
+                <ref bean="signMetadata"/>
+                <ref bean="serialize"/>
+            </list>
+        </property>
+    </bean>
+</beans>
diff --git a/mda-distribution-0.10.0/doc/wiki/discofeed.xml b/mda-distribution-0.10.0/doc/wiki/discofeed.xml
new file mode 100644
index 0000000..a64c86d
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/discofeed.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+    default-lazy-init="true"
+    xmlns:c="http://www.springframework.org/schema/c"
+    xmlns:context="http://www.springframework.org/schema/context"
+    xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:util="http://www.springframework.org/schema/util"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+    <!-- Import the Standard bean definition resource. -->
+    <!-- See https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/3162439683/Standard+bean+definition+resource -->
+    <import resource="classpath:net/shibboleth/metadata/beans.xml"/>
+
+    <!-- Default Shibboleth component bean id property from Spring bean id -->
+    <bean parent="mda.IdentifiableBeanPostProcessor" lazy-init="false"/>
+
+    <bean id="main" parent="mda.SimplePipeline">
+        <property name="stages">
+            <list>
+
+                <!-- Acquire the metadata aggregate. -->
+                <bean id="source" parent="mda.DOMFilesystemSourceStage">
+                    <property name="parserPool">
+                        <bean parent="mda.BasicParserPool"/>
+                    </property>
+                    <property name="source">
+                        <bean class="java.io.File">
+                            <constructor-arg value="path/to/input/aggregate.xml"/>
+                        </bean>
+                    </property>
+                </bean>
+
+                <!-- Disassemble into individual entities. -->
+                <bean id="disassemble" parent="mda.EntitiesDescriptorDisassemblerStage"/>
+
+                <!-- Manipulate the entities being processed: for example, remove some. -->
+                <bean id="removeEntities" parent="mda.EntityFilterStage">
+                    <property name="designatedEntities">
+                        <list>
+                            <value>https://idp.shibboleth.net/idp/shibboleth</value>
+                            <value>https://example.com/idp</value>
+                        </list>
+                    </property>
+                </bean>
+
+                <!-- Serialise as a discovery feed into an output file. -->
+                <bean id="serialize" parent="mda.SerializationStage">
+                    <property name="serializer">
+                        <bean id="discogen" parent="mda.DiscoFeedCollectionSerializer"
+                            p:prettyPrinting="true"
+                            p:includingLegacyDisplayNames="true"/>
+                    </property>
+                    <property name="outputFile">
+                        <bean class="java.io.File">
+                            <constructor-arg value="path/to/output/discofeed.json"/>
+                        </bean>
+                    </property>
+                </bean>
+
+            </list>
+        </property>
+    </bean>
+
+</beans>
diff --git a/mda-distribution-0.10.0/doc/wiki/filter-aggregate.xml b/mda-distribution-0.10.0/doc/wiki/filter-aggregate.xml
new file mode 100644
index 0000000..24b9b62
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/filter-aggregate.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans default-init-method="initialize"
+       xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+    <bean id="httpClientBuilder" parent="mda.HttpClientBuilder"/>
+    <bean id="httpClient" factory-bean="httpClientBuilder" factory-method="buildClient"/>
+
+    <!-- Import the Standard bean definition resource. -->
+    <!-- See https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/3162439683/Standard+bean+definition+resource -->
+    <import resource="classpath:net/shibboleth/metadata/beans.xml"/>
+
+    <!-- First, we define the stages for our pipeline -->
+
+    <bean id="source" parent="mda.DOMResourceSourceStage">
+        <property name="id" value="source"/>
+        <property name="parserPool">
+            <bean parent="mda.BasicParserPool"/>
+        </property>
+        <property name="DOMResource">
+            <bean parent="mda.HTTPResource">
+                <constructor-arg ref="httpClient"/>
+                <constructor-arg
+                    value="http://metadata.ukfederation.org.uk/ukfederation-metadata.xml"/>
+            </bean>
+        </property>
+    </bean>
+
+    <!--
+        Validate the signature on an aggregate. If the signature is not
+        present or cannot be validated, this will add an Error status to
+        the item. This will not by itself result in processing being
+        terminated.
+    -->
+    <bean id="validateSignature" parent="mda.XMLSignatureValidationStage">
+        <property name="id" value="validateSignature"/>
+        <property name="verificationCertificate">
+            <bean parent="mda.X509CertificateFactoryBean">
+                <property name="resource">
+                    <bean class="org.springframework.core.io.FileSystemResource">
+                        <constructor-arg>
+                            <bean class="java.io.File">
+                                <constructor-arg value="path/to/input/ukfederation-2014.pem"/>
+                            </bean>
+                        </constructor-arg>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+    </bean>
+
+    <!--
+        errorAnnouncer
+
+        A pipeline stage that logs any errors present,
+        but takes no action on them.
+    -->
+    <bean id="errorAnnouncer" parent="mda.StatusMetadataLoggingStage">
+        <property name="id" value="errorAnnouncer"/>
+        <property name="selectionRequirements">
+            <list>
+                <value>#{T(net.shibboleth.metadata.ErrorStatus)}</value>
+            </list>
+        </property>
+    </bean>
+
+    <!--
+        errorTerminator
+
+        This pipeline stage causes CLI termination if any item is marked with an error status.
+    -->
+    <bean id="errorTerminator" parent="mda.ItemMetadataTerminationStage">
+        <property name="id" value="errorTerminator"/>
+        <property name="selectionRequirements">
+            <list>
+                <value>#{T(net.shibboleth.metadata.ErrorStatus)}</value>
+            </list>
+        </property>
+    </bean>
+
+    <bean id="removeEntities" parent="mda.EntityFilterStage">
+        <property name="id" value="removeEntities"/>
+        <property name="designatedEntities">
+            <list>
+                <value>https://idp.example.com/idp/shibboleth</value>
+                <value>https://issues.example.com/shibboleth</value>
+                <value>https://wiki.example.com/shibboleth</value>
+            </list>
+        </property>
+    </bean>
+
+    <bean id="removeRoles" parent="mda.EntityRoleFilterStage">
+        <property name="id" value="removeRoles"/>
+        <property name="keepingRoles" value="true"/>
+        <property name="designatedRoles">
+            <list>
+                <bean class="javax.xml.namespace.QName">
+                    <constructor-arg value="urn:oasis:names:tc:SAML:2.0:metadata"/>
+                    <constructor-arg value="IDPSSODescriptor"/>
+                </bean>
+                <bean class="javax.xml.namespace.QName">
+                    <constructor-arg value="urn:oasis:names:tc:SAML:2.0:metadata"/>
+                    <constructor-arg value="AttributeAuthorityDescriptor"/>
+                </bean>
+                <bean class="javax.xml.namespace.QName">
+                    <constructor-arg value="urn:oasis:names:tc:SAML:2.0:metadata"/>
+                    <constructor-arg value="SPSSODescriptor"/>
+                </bean>
+            </list>
+        </property>
+    </bean>
+
+    <bean id="removeInvalidContactPerson" parent="mda.ContactPersonFilterStage">
+        <property name="id" value="removeInvalidContactPerson"/>
+        <property name="keepingTypes" value="false"/>
+    </bean>
+
+    <bean id="removeOrganization" parent="mda.RemoveOrganizationStage">
+        <property name="id" value="removeOrganization"/>
+    </bean>
+
+    <bean id="serialize" parent="mda.SerializationStage">
+        <property name="id" value="serializeIdPs"/>
+        <property name="outputFile">
+            <bean class="java.io.File">
+                <constructor-arg value="path/to/output/output.xml"/>
+            </bean>
+        </property>
+        <property name="serializer">
+            <bean id="domSerializer" parent="mda.DOMElementSerializer"/>
+        </property>
+    </bean>
+
+    <!-- Next we define a pipeline with all the stages in it -->
+    <bean id="main" parent="mda.SimplePipeline">
+        <property name="id" value="main"/>
+        <property name="stages">
+            <list>
+                <ref bean="source"/>
+                <ref bean="validateSignature"/>
+                <ref bean="errorAnnouncer"/>
+                <ref bean="errorTerminator"/>
+                <ref bean="removeEntities"/>
+                <ref bean="removeRoles"/>
+                <ref bean="removeInvalidContactPerson"/>
+                <ref bean="removeOrganization"/>
+                <ref bean="serialize"/>
+            </list>
+        </property>
+    </bean>
+</beans>
diff --git a/mda-distribution-0.10.0/doc/wiki/make-keys.sh b/mda-distribution-0.10.0/doc/wiki/make-keys.sh
new file mode 100644
index 0000000..1728f91
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/make-keys.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/sh
+
+KEYFILE=path/to/secrets/private-key.pem
+CERTFILE=path/to/secrets/self-signed.pem
+P12FILE=path/to/secrets/self-signed.p12
+
+# Generate an RSA private key
+openssl genrsa >$KEYFILE
+chmod 600 $KEYFILE
+
+# Generate a self-signed certificate based on that key
+openssl req -key $KEYFILE -new -x509 -days 365 -out $CERTFILE \
+    -subj "/CN=test-self-signed"
+
+# Create PKCS12 keystore from private key and public certificate.
+openssl pkcs12 -export -name key10 -passout pass:password -in $CERTFILE -inkey $KEYFILE -out $P12FILE
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/aggregate.xml b/mda-distribution-0.10.0/doc/wiki/path/to/input/aggregate.xml
new file mode 100644
index 0000000..bdccc75
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/aggregate.xml
@@ -0,0 +1,458 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<EntitiesDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol" xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init" xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute" xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi" xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui" xmlns:remd="http://refeds.org/metadata" xmlns:saml="urn:oasis:names:tc:SAML:2.0:asse [...]
+
+<EntityDescriptor ID="uk000006" entityID="https://idp2.iay.org.uk/idp/shibboleth">
+	<!--
+		This is an "Ian A. Young" IdP for Ian A. Young.
+	-->
+	<Extensions>
+		<ukfedlabel:UKFederationMember/>
+		<shibmd:Scope regexp="false">iay.org.uk</shibmd:Scope>
+
+
+		<mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk" registrationInstant="2007-03-30T16:36:00Z">
+			<mdrpi:RegistrationPolicy xml:lang="en">http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy>
+		</mdrpi:RegistrationInfo>
+		<mdattr:EntityAttributes>
+			<saml:Attribute Name="http://macedir.org/entity-category-support" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+				<saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue>
+			</saml:Attribute>
+		</mdattr:EntityAttributes>
+	</Extensions>
+	<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0 urn:oasis:names:tc:SAML:2.0:protocol">
+		<Extensions>
+			<mdui:UIInfo>
+				<mdui:DisplayName xml:lang="en">Ian A. Young</mdui:DisplayName>
+				<mdui:Description xml:lang="en">This is the identity provider for the iay.org.uk domain.</mdui:Description>
+				<mdui:Logo height="80" width="80">https://idp2.iay.org.uk/images/heads_80x80.jpg</mdui:Logo>
+				<mdui:Logo height="43" width="100">https://idp2.iay.org.uk/images/heads_100x43.jpg</mdui:Logo>
+				<mdui:Logo height="104" width="240">https://idp2.iay.org.uk/images/heads_240x104.jpg</mdui:Logo>
+			</mdui:UIInfo>
+			<mdui:DiscoHints>
+				<mdui:IPHint>217.155.173.104/29</mdui:IPHint>
+				<mdui:DomainHint>iay.org.uk</mdui:DomainHint>
+				<mdui:GeolocationHint>geo:55.9328,-3.17905</mdui:GeolocationHint>
+			</mdui:DiscoHints>
+			<shibmd:Scope regexp="false">iay.org.uk</shibmd:Scope>
+		</Extensions>
+		<KeyDescriptor>
+			<ds:KeyInfo>
+				<ds:X509Data>
+					<ds:X509Certificate>
+						MIIDSTCCAjGgAwIBAgIhAMSPOSGN+3UUTXSKV+2EBOuF3x/pwPX/TD9GfyEkzLp+
+						MA0GCSqGSIb3DQEBBQUAMFgxGDAWBgNVBAMMD2lkcDIuaWF5Lm9yZy51azETMBEG
+						CgmSJomT8ixkARkWA2lheTETMBEGCgmSJomT8ixkARkWA29yZzESMBAGCgmSJomT
+						8ixkARkWAnVrMB4XDTA4MDIyNTEwMzAxNFoXDTI4MDIyNTEwMzAxNFowWDEYMBYG
+						A1UEAwwPaWRwMi5pYXkub3JnLnVrMRMwEQYKCZImiZPyLGQBGRYDaWF5MRMwEQYK
+						CZImiZPyLGQBGRYDb3JnMRIwEAYKCZImiZPyLGQBGRYCdWswggEiMA0GCSqGSIb3
+						DQEBAQUAA4IBDwAwggEKAoIBAQCb6ts48g10XHTnpy+23huzR184aahkrG0AoeUl
+						FVlomPjoFDk6czq0S3Qyd+ceF7tMRu3XzS7cMmtVH53O9d+wCs8aPQcPXxHQ5gLk
+						L7Gu6eJ+3N3jXhpt7/DDPhnzFPNW3EVMueHJ/0IzyspTvq2LPbNWXJ86NKJ+gesZ
+						QftskwXScOjpoJEIP0EA890QYd4WdYtQPqVV+LPKtnYBoGOnuRhSAM1D/EhCbeb0
+						lCmRGcdGbDFBchiPO4VLGl85sLa0EhjxMIPAOKXcj8bBlO9Ww9kkG06kQp6eLHwm
+						Jmt7VNKveCGhyF2QH/CvmdUaPv3gcp1UjrlqFN9LBVSaTIL/AgMBAAEwDQYJKoZI
+						hvcNAQEFBQADggEBAG+jDBAtlKoHaEBB+l6PpW5zuiDjyHG4zZZYqX77mZ9xP/xe
+						Kn0yJ18ZLjS3b9WztGLYyC4SJHSF2okq1K02bqsCv9YeP+UWpw2uRR8jt96lLWxZ
+						jTjoko2v8jBtzDk8LZsqw58m4vZ0AGNZjKeGIywKhxnepwREguyj3bjBpZAGgl0M
+						HQuXoO/BDC9yKyZslE5CpWp5xP4XzY2/LrorrkwOJLnFuk1sox4/gvkDQukUx/jr
+						YRbrWfOjcNBx3LE/HI6RNLINicK7yUwerDE86nix5Zc3hskVcCykW+r6HbY6bx7P
+						YmNKYMZhQAgDtXIjFHOy+WbyVTidmJvxM9UeYCY=
+					</ds:X509Certificate>
+				</ds:X509Data>
+			</ds:KeyInfo>
+		</KeyDescriptor>
+		<ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://idp2.iay.org.uk:8443/idp/profile/SAML1/SOAP/ArtifactResolution" index="1"/>
+		<ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://idp2.iay.org.uk:8443/idp/profile/SAML2/SOAP/ArtifactResolution" index="2"/>
+		<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+		<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+		<SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://idp2.iay.org.uk/idp/profile/Shibboleth/SSO"/>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://idp2.iay.org.uk/idp/profile/SAML2/POST/SSO"/>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://idp2.iay.org.uk/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://idp2.iay.org.uk/idp/profile/SAML2/Redirect/SSO"/>
+	</IDPSSODescriptor>
+	<AttributeAuthorityDescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+		<Extensions>
+			<shibmd:Scope regexp="false">iay.org.uk</shibmd:Scope>
+		</Extensions>
+		<KeyDescriptor>
+			<ds:KeyInfo>
+				<ds:X509Data>
+					<ds:X509Certificate>
+						MIIDSTCCAjGgAwIBAgIhAMSPOSGN+3UUTXSKV+2EBOuF3x/pwPX/TD9GfyEkzLp+
+						MA0GCSqGSIb3DQEBBQUAMFgxGDAWBgNVBAMMD2lkcDIuaWF5Lm9yZy51azETMBEG
+						CgmSJomT8ixkARkWA2lheTETMBEGCgmSJomT8ixkARkWA29yZzESMBAGCgmSJomT
+						8ixkARkWAnVrMB4XDTA4MDIyNTEwMzAxNFoXDTI4MDIyNTEwMzAxNFowWDEYMBYG
+						A1UEAwwPaWRwMi5pYXkub3JnLnVrMRMwEQYKCZImiZPyLGQBGRYDaWF5MRMwEQYK
+						CZImiZPyLGQBGRYDb3JnMRIwEAYKCZImiZPyLGQBGRYCdWswggEiMA0GCSqGSIb3
+						DQEBAQUAA4IBDwAwggEKAoIBAQCb6ts48g10XHTnpy+23huzR184aahkrG0AoeUl
+						FVlomPjoFDk6czq0S3Qyd+ceF7tMRu3XzS7cMmtVH53O9d+wCs8aPQcPXxHQ5gLk
+						L7Gu6eJ+3N3jXhpt7/DDPhnzFPNW3EVMueHJ/0IzyspTvq2LPbNWXJ86NKJ+gesZ
+						QftskwXScOjpoJEIP0EA890QYd4WdYtQPqVV+LPKtnYBoGOnuRhSAM1D/EhCbeb0
+						lCmRGcdGbDFBchiPO4VLGl85sLa0EhjxMIPAOKXcj8bBlO9Ww9kkG06kQp6eLHwm
+						Jmt7VNKveCGhyF2QH/CvmdUaPv3gcp1UjrlqFN9LBVSaTIL/AgMBAAEwDQYJKoZI
+						hvcNAQEFBQADggEBAG+jDBAtlKoHaEBB+l6PpW5zuiDjyHG4zZZYqX77mZ9xP/xe
+						Kn0yJ18ZLjS3b9WztGLYyC4SJHSF2okq1K02bqsCv9YeP+UWpw2uRR8jt96lLWxZ
+						jTjoko2v8jBtzDk8LZsqw58m4vZ0AGNZjKeGIywKhxnepwREguyj3bjBpZAGgl0M
+						HQuXoO/BDC9yKyZslE5CpWp5xP4XzY2/LrorrkwOJLnFuk1sox4/gvkDQukUx/jr
+						YRbrWfOjcNBx3LE/HI6RNLINicK7yUwerDE86nix5Zc3hskVcCykW+r6HbY6bx7P
+						YmNKYMZhQAgDtXIjFHOy+WbyVTidmJvxM9UeYCY=
+					</ds:X509Certificate>
+				</ds:X509Data>
+			</ds:KeyInfo>
+		</KeyDescriptor>
+		<AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://idp2.iay.org.uk:8443/idp/profile/SAML1/SOAP/AttributeQuery"/>
+		<AttributeService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://idp2.iay.org.uk:8443/idp/profile/SAML2/SOAP/AttributeQuery"/>
+		<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+		<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+	</AttributeAuthorityDescriptor>
+	<Organization>
+		<OrganizationName xml:lang="en">Ian A. Young</OrganizationName>
+		<OrganizationDisplayName xml:lang="en">Ian A. Young</OrganizationDisplayName>
+		<OrganizationURL xml:lang="en">http://iay.org.uk/</OrganizationURL>
+	</Organization>
+	<ContactPerson contactType="support">
+		<GivenName>Ian</GivenName>
+		<SurName>Young</SurName>
+		<EmailAddress>mailto:ukfed+fc2ee77e at iay.org.uk</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="technical">
+		<GivenName>Ian</GivenName>
+		<SurName>Young</SurName>
+		<EmailAddress>mailto:ukfed+fc2ee77e at iay.org.uk</EmailAddress>
+	</ContactPerson>
+
+</EntityDescriptor>
+
+<EntityDescriptor ID="uk001480" entityID="https://idp.shibboleth.net/idp/shibboleth">
+	<!--
+		This is a shibboleth.net Shibboleth IdP for Jisc Services Limited. 
+	-->
+	<Extensions>
+		<shibmd:Scope regexp="false">shibboleth.net</shibmd:Scope>
+		<ukfedlabel:UKFederationMember/>
+
+
+		<DigestMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+		<DigestMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
+		<DigestMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+		<DigestMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+		<SigningMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"/>
+		<SigningMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"/>
+		<SigningMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
+		<SigningMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
+		<mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk" registrationInstant="2011-01-06T16:22:29Z">
+			<mdrpi:RegistrationPolicy xml:lang="en">http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy>
+		</mdrpi:RegistrationInfo>
+	</Extensions>
+	<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+		<Extensions>
+			<shibmd:Scope regexp="false">shibboleth.net</shibmd:Scope>
+			<mdui:UIInfo>
+				<mdui:DisplayName xml:lang="en">Shibboleth.net</mdui:DisplayName>
+				<mdui:Description xml:lang="en">An identity provider hosted and used by the
+					developers of Shibboleth.</mdui:Description>
+				<mdui:Logo height="82" width="64">https://shibboleth.net/images/gryphon_64x82.png</mdui:Logo>
+			</mdui:UIInfo>
+		</Extensions>
+		<KeyDescriptor>
+			<ds:KeyInfo>
+				<ds:X509Data>
+					<ds:X509Certificate>
+						MIIDNDCCAhygAwIBAgIVAKyBWnv1/h1U11C7kHvV33FIrEsJMA0GCSqGSIb3DQEB
+						BQUAMB0xGzAZBgNVBAMTEmlkcC5zaGliYm9sZXRoLm5ldDAeFw0xMDEyMjkwMDA5
+						MTlaFw0zMDEyMjkwMDA5MTlaMB0xGzAZBgNVBAMTEmlkcC5zaGliYm9sZXRoLm5l
+						dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKjWAdpUx/82FUzrRMfA
+						M63PkZZYCm3RnT3eiL+DeJcbGdcEJx/o+32vgHXJgJOBt14YdVam5GErIYgk4SGq
+						5Z5RYl0PpQn6HQG/9prGnYCu6p5zfb0557o51Eh8TcVehS6Y2ruyCjAF0jgVMwh5
+						/0Oh8EE9wG93pSpm70DAiiaTVCb8WoT1aZYtxbBmmuH10bU+wge/NMmaHuVAe599
+						pyezFIL4FoI2g+1Q6nG4Yl1Z07I81tTApXKVMWRt/4/M3m2D7PUMOQ9qsxthp2L/
+						LovIeNo0bTyeW290T2Y/JRZhKOgeDqkhuu82DPri2Vm5G/unB69KfRB7CF9QWIc3
+						y80CAwEAAaNrMGkwSAYDVR0RBEEwP4ISaWRwLnNoaWJib2xldGgubmV0hilodHRw
+						czovL2lkcC5zaGliYm9sZXRoLm5ldC9pZHAvc2hpYmJvbGV0aDAdBgNVHQ4EFgQU
+						3uZ32tKXJBzPCTp2dtHSLV0FvGgwDQYJKoZIhvcNAQEFBQADggEBAAYXYuzp0UTj
+						3yLRvUCbEtaw9b80+weOELkVv3WFY3QAG8pIKEblrMMtzrzLFWZwYwwMZDab/HnH
+						egmgjZBthrOedEmoJ+OHRmIiS8zdZxVGEadJhTUaeIkO6kwK7Ht3nQePoiXV7TI5
+						+A9SpmZGoukC85Za4wGDw4xWGs5t5l6tBuuV+1s0oC6T8ih5n/NyThfpbihSW0d7
+						iBfSUickgpoM2BLM3FCnbO8HOsX1rGV4ypG9ZGDDvr2jrzalXXmc05gSlL2qd9ce
+						Q1M+9vavusPCqlj2zZf2/HfzhyiFcb/OgA0oTFWW2ynXji6UarIV5QaPoi/XmGmx
+						BXD36HfGBXk=
+					</ds:X509Certificate>
+				</ds:X509Data>
+			</ds:KeyInfo>
+			<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+			<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+			<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+			<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+			<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
+		</KeyDescriptor>
+		<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://shibboleth.net/idp/profile/SAML2/POST/SSO"/>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://shibboleth.net/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://shibboleth.net/idp/profile/SAML2/Redirect/SSO"/>
+	</IDPSSODescriptor>
+	<Organization>
+		<OrganizationName xml:lang="en">Jisc Services Limited</OrganizationName>
+		<OrganizationDisplayName xml:lang="en">Shibboleth.net</OrganizationDisplayName>
+		<OrganizationURL xml:lang="en">http://www.shibboleth.net/</OrganizationURL>
+	</Organization>
+	<ContactPerson contactType="support">
+		<GivenName>Shibboleth.Net Technical Support</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="technical">
+		<GivenName>Scott</GivenName>
+		<SurName>Cantor</SurName>
+		<EmailAddress>mailto:cantor.2 at osu.edu</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="technical">
+		<GivenName>Ian</GivenName>
+		<SurName>Young</SurName>
+		<EmailAddress>mailto:ukfed at iay.org.uk</EmailAddress>
+	</ContactPerson>
+
+
+</EntityDescriptor>
+
+<EntityDescriptor entityID="https://issues.shibboleth.net/shibboleth">
+	<Extensions>
+	<mdrpi:RegistrationInfo registrationAuthority="https://incommon.org"/>
+
+	</Extensions>
+	<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+	<Extensions>
+		<idpdisc:DiscoveryResponse Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/Login" index="1"/>
+		<mdui:UIInfo>
+		<mdui:DisplayName xml:lang="en">Shibboleth.net Issue Tracking</mdui:DisplayName>
+		<mdui:Description xml:lang="en">The issue (improvements, bugs, tasks) tracking system used by the Shibboleth project. Unauthenticated users may view submitted issues.  Authenticated users may submit new issues and comment on existing ones.</mdui:Description>
+		<mdui:PrivacyStatementURL xml:lang="en">https://wiki.shibboleth.net/confluence/display/DEV/Infrastructure+Information</mdui:PrivacyStatementURL>
+		<mdui:Logo height="82" width="64" xml:lang="en">https://shibboleth.net/images/gryphon_64x82.png</mdui:Logo>
+		</mdui:UIInfo>
+	</Extensions>
+	<KeyDescriptor>
+		<ds:KeyInfo>
+		<ds:X509Data>
+			<ds:X509Certificate>
+MIIDRjCCAi6gAwIBAgIJAPjZ6g1hwfvPMA0GCSqGSIb3DQEBBQUAMFExEzARBgoJ
+kiaJk/IsZAEZFgNuZXQxGjAYBgoJkiaJk/IsZAEZFgpzaGliYm9sZXRoMR4wHAYD
+VQQDExVpc3N1ZXMuc2hpYmJvbGV0aC5uZXQwHhcNMTMxMTI1MTQ1ODA4WhcNMzcw
+MzA0MTQ1ODA4WjBRMRMwEQYKCZImiZPyLGQBGRYDbmV0MRowGAYKCZImiZPyLGQB
+GRYKc2hpYmJvbGV0aDEeMBwGA1UEAxMVaXNzdWVzLnNoaWJib2xldGgubmV0MIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtb4jIloWGvHJsSeq0PMjkWDA
++hseZ6/6/cEJKPk245f6hktC2k3z0AqJL8Kw9OudOjDx2op2jKm45TuIA46ti6VP
+f4stLIi7mO1B4A6jTWThCwU0DjMCwBXLhANdBQloyUYJU/usN8RBXlPnWZAV1dVb
+ygb7GUorkMON+wnFd7nhBePmQdJfbsqvKN8MykWfQ56chS+0lCYhyT7qql2bskJ4
+y621WSo47php2NyyU1KNcaFBLoao+UTH7KZ9qHOWJyGJGuWKwgZmCiVd0LQhWywP
+3M/JxZvpTr2Bs/J5d8BzZGSFUaHrVcPzIX+5c3sdK4d1wXUur1XE++bh9F9TjwID
+AQABoyEwHzAdBgNVHQ4EFgQUHtV8GWr64AIUV634b9YBlMEpHOwwDQYJKoZIhvcN
+AQEFBQADggEBAI0BSqXoyw5bUVQJKNCnxB3hUwHIOXeoS77jqgv2lesyTqz5U4NV
+v4Cdz7icwYzt+c6ZSZqem4pqmi3/6COZnf/+l29J/XwWkva32P6tfoO4af3qywF+
+TvuZiRMXdt1KE7GTlYOSxOsnxaRmXVc6MWfxPT6oTOt5z15aTdfEzK+wVfeUkIf1
+1soEmMHgjDaa/HQdGgXGq/fStDc0Mcm2W7y50+aNwqIMNiQQiwQYSUgpBatSfKy1
+umh6DHEyznDZAAHBtatzvQu1YAJHUg6AeimuhminaM5tyBCW6Y6YMywFYSP+VqPU
+PxCBrPWcCAwOw80Ey/FLVlAdW1FuwUmMejA=
+</ds:X509Certificate>
+		</ds:X509Data>
+		</ds:KeyInfo>
+	</KeyDescriptor>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML/Artifact" index="1"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML/POST" index="2"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML2/Artifact" index="3"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML2/POST" index="4"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML2/POST-SimpleSign" index="5"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML2/ECP" index="6"/>
+	<AttributeConsumingService index="1">
+		<ServiceName xml:lang="en">Shibboleth.net Issue Tracking</ServiceName>
+		<ServiceDescription xml:lang="en">The issue (improvements, bugs, tasks) tracking system used by the Shibboleth project. Unauthenticated users may view submitted issues.  Authenticated users may submit new issues and comment on existing ones.</ServiceDescription>
+		<RequestedAttribute FriendlyName="displayName" Name="urn:oid:2.16.840.1.113730.3.1.241" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+		<RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+		<RequestedAttribute FriendlyName="eduPersonTargetedID" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+		<RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+	</AttributeConsumingService>
+	</SPSSODescriptor>
+	<Organization>
+	<OrganizationName xml:lang="en">The Ohio State University</OrganizationName>
+	<OrganizationDisplayName xml:lang="en">Ohio State University</OrganizationDisplayName>
+	<OrganizationURL xml:lang="en">http://www.osu.edu/</OrganizationURL>
+	</Organization>
+	<ContactPerson contactType="support">
+	<GivenName>Shibboleth Contact</GivenName>
+	<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="technical">
+	<GivenName>Shibboleth Contact</GivenName>
+	<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="administrative">
+	<GivenName>Shibboleth Contact</GivenName>
+	<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="other" remd:contactType="http://refeds.org/metadata/contactType/security">
+	<GivenName>Shibboleth Contact</GivenName>
+	<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+</EntityDescriptor>
+
+<EntityDescriptor entityID="https://wiki.shibboleth.net/shibboleth">
+	<Extensions>
+	<mdrpi:RegistrationInfo registrationAuthority="https://incommon.org"/>
+
+	</Extensions>
+	<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+	<Extensions>
+		<idpdisc:DiscoveryResponse Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/Login" index="1"/>
+		<mdui:UIInfo>
+		<mdui:DisplayName xml:lang="en">Shibboleth.net Wiki</mdui:DisplayName>
+		<mdui:Description xml:lang="en">The wiki hosting the documentation for Shibboleth. Unauthenticated user may view the existing documentation. Authenticated users may create new documentation pages and edit existing ones.</mdui:Description>
+		<mdui:PrivacyStatementURL xml:lang="en">https://wiki.shibboleth.net/confluence/display/DEV/Infrastructure+Information</mdui:PrivacyStatementURL>
+		<mdui:Logo height="82" width="64" xml:lang="en">https://shibboleth.net/images/gryphon_64x82.png</mdui:Logo>
+		</mdui:UIInfo>
+	</Extensions>
+	<KeyDescriptor>
+		<ds:KeyInfo>
+		<ds:X509Data>
+			<ds:X509Certificate>
+MIIDQjCCAiqgAwIBAgIJAMI1r/DZzTEJMA0GCSqGSIb3DQEBBQUAME8xEzARBgoJ
+kiaJk/IsZAEZFgNuZXQxGjAYBgoJkiaJk/IsZAEZFgpzaGliYm9sZXRoMRwwGgYD
+VQQDExN3aWtpLnNoaWJib2xldGgubmV0MB4XDTEzMTEyNTE0NTcyOFoXDTM3MDMw
+NDE0NTcyOFowTzETMBEGCgmSJomT8ixkARkWA25ldDEaMBgGCgmSJomT8ixkARkW
+CnNoaWJib2xldGgxHDAaBgNVBAMTE3dpa2kuc2hpYmJvbGV0aC5uZXQwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1viMiWhYa8cmxJ6rQ8yORYMD6Gx5n
+r/r9wQko+Tbjl/qGS0LaTfPQCokvwrD06506MPHainaMqbjlO4gDjq2LpU9/iy0s
+iLuY7UHgDqNNZOELBTQOMwLAFcuEA10FCWjJRglT+6w3xEFeU+dZkBXV1VvKBvsZ
+SiuQw437CcV3ueEF4+ZB0l9uyq8o3wzKRZ9DnpyFL7SUJiHJPuqqXZuyQnjLrbVZ
+KjjumGnY3LJTUo1xoUEuhqj5RMfspn2oc5YnIYka5YrCBmYKJV3QtCFbLA/cz8nF
+m+lOvYGz8nl3wHNkZIVRoetVw/Mhf7lzex0rh3XBdS6vVcT75uH0X1OPAgMBAAGj
+ITAfMB0GA1UdDgQWBBQe1XwZavrgAhRXrfhv1gGUwSkc7DANBgkqhkiG9w0BAQUF
+AAOCAQEADCGhWJ+oZ8ltcjJ7D66rMg1HOZT6GFCVeZ7MfhY/KFrvsnITNbTA+SgZ
+tCJt/BLlZXxpzmix19bD9bNwqEMo7WSqBy77X7SS97ZXti6y6vwAz8h78vzQopOd
+rnn8XXyWxtrtRRCK4RMpZGrVm3sfBPW68j9hiPHZqewE4nLavjCki/I9rCMe5dJE
+3+ZRf4Ip/9hYqM+a5Chcvbo2zJEOtw+EUQqNTZ51j33H/2qF9UoSpt74UFh+Jd5y
+L2GoFSt/gCld78j/7cU3ObGQEme+hVVZ8/uGa/cCYvFt75vNBdnlj4icZ6fgFe9R
+9h5hlBTGD3PULSFmCdkgxtwIyd855Q==
+</ds:X509Certificate>
+		</ds:X509Data>
+		</ds:KeyInfo>
+	</KeyDescriptor>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML/Artifact" index="1"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML/POST" index="2"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML2/Artifact" index="3"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML2/ECP" index="4"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML2/POST" index="5"/>
+	<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML2/POST-SimpleSign" index="6"/>
+	<AttributeConsumingService index="1">
+		<ServiceName xml:lang="en">Shibboleth.net Wiki</ServiceName>
+		<ServiceDescription xml:lang="en">The wiki hosting the documentation for Shibboleth. Unauthenticated user may view the existing documentation. Authenticated users may create new documentation pages and edit existing ones.</ServiceDescription>
+		<RequestedAttribute FriendlyName="displayName" Name="urn:oid:2.16.840.1.113730.3.1.241" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+		<RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+		<RequestedAttribute FriendlyName="eduPersonTargetedID" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+		<RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+	</AttributeConsumingService>
+	</SPSSODescriptor>
+	<Organization>
+	<OrganizationName xml:lang="en">The Ohio State University</OrganizationName>
+	<OrganizationDisplayName xml:lang="en">Ohio State University</OrganizationDisplayName>
+	<OrganizationURL xml:lang="en">http://www.osu.edu/</OrganizationURL>
+	</Organization>
+	<ContactPerson contactType="technical">
+	<GivenName>Shibboleth Contact</GivenName>
+	<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="support">
+	<GivenName>Shibboleth Contact</GivenName>
+	<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="administrative">
+	<GivenName>Shibboleth Contact</GivenName>
+	<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="other" remd:contactType="http://refeds.org/metadata/contactType/security">
+	<GivenName>Shibboleth Contact</GivenName>
+	<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+	</ContactPerson>
+</EntityDescriptor>
+
+<EntityDescriptor entityID="urn:mace:incommon:osu.edu">
+	<Extensions>
+	<mdrpi:RegistrationInfo registrationAuthority="https://incommon.org"/>
+	<mdattr:EntityAttributes>
+		<saml:Attribute Name="http://macedir.org/entity-category-support" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+		<saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue>
+		</saml:Attribute>
+		<saml:Attribute Name="urn:oasis:names:tc:SAML:attribute:assurance-certification" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+		<saml:AttributeValue>https://refeds.org/sirtfi</saml:AttributeValue>
+		</saml:Attribute>
+
+	</mdattr:EntityAttributes>
+	</Extensions>
+	<IDPSSODescriptor errorURL="https://webauth.service.ohio-state.edu/support.html" protocolSupportEnumeration="urn:mace:shibboleth:1.0 urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+	<Extensions>
+		<shibmd:Scope regexp="false">osu.edu</shibmd:Scope>
+		<mdui:UIInfo>
+		<mdui:DisplayName xml:lang="en">Ohio State University</mdui:DisplayName>
+		<mdui:InformationURL xml:lang="en">https://webauth.service.ohio-state.edu/info.html</mdui:InformationURL>
+		<mdui:PrivacyStatementURL xml:lang="en">https://it.osu.edu/sites/default/files/files-1477502394/disclosurepolicy.pdf</mdui:PrivacyStatementURL>
+		<mdui:Logo height="83" width="83" xml:lang="en">https://webauth.service.ohio-state.edu/images/osu_mdui.png</mdui:Logo>
+		</mdui:UIInfo>
+	</Extensions>
+	<KeyDescriptor use="signing">
+		<ds:KeyInfo>
+		<ds:X509Data>
+			<ds:X509Certificate>
+MIIEUDCCArigAwIBAgIJAOTP/syONHwnMA0GCSqGSIb3DQEBCwUAMCkxJzAlBgNV
+BAMMHndlYmF1dGguc2VydmljZS5vaGlvLXN0YXRlLmVkdTAeFw0xOTAyMjIxOTE3
+MjJaFw00NjA3MTAxOTE3MjJaMCkxJzAlBgNVBAMMHndlYmF1dGguc2VydmljZS5v
+aGlvLXN0YXRlLmVkdTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJle
+1C2GVPJkD+fXHBxGMZSLVFsEClJNFbI2Rp5feo8QNvV5CYIMU+bNqovkMZhONAbz
+3v63v/HNNr3tFk6ZBWk7fQ+VZE7NyHGrpKn1XiWbFMBokEsMXah3tDHq5clxCWHi
+dg8J9knnLt71h2j7SvSowxF8TwEmIGQmymNs1TeW2kVxKZWChk+UzRk3VNMPxoUz
+lEdAiqBSl/J3E+W1lCzYxs/r9cTTeQwAJkwg/gjewCTcNlXGtt9ykf4Csja2NFtO
+hh7bys3VzAI0nsHFTxQq3rxbbmeCmLdLGvu83h2iI0JrT6HYmo0ksXVqTXIOPS+D
+ZJmCYLL4PKJQb6fAcQhE4NgZMEEJdtToe8mt34/UPGutRz0ja/fgV6ec3AJq9wQF
+jQ20iPpDh/aVuLpSQYmEhuMQOXvBI8ILv/wKSPQ2A63FSr4adoNFlBCsOFoTW9uu
+y7Kxc8Qo+ZzEF39WWBnc3UcBSxk9Z9zsCFCAbfBt+SVrbNUA4L4lU/8x9DpRpwID
+AQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy
+YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUML3nKeprDqx0PFVahBwqvu2s5y4w
+HwYDVR0jBBgwFoAUML3nKeprDqx0PFVahBwqvu2s5y4wDQYJKoZIhvcNAQELBQAD
+ggGBADSfQwfmSPjrXGdWsCqngcEmN1ksnSCcNm8qdp+YO0luZO0MiJsM0cIvka1e
+/9MeP7VMbeBTOpSlr1RzN6h0bFWo9vwLbIuYsLc63Vt4B1R7DzUMQwWc7LekfV/A
+8IIdendOvCLpxvrm3dj32VgA5jNlJ+M7fDzFh5vHouLEAD45F/qn50N1XyZYX86C
+zLpL7rCfmnMGrzAYBUgj9d6CU8xkf0XoiCsyMsuku0ZNFEzUCKZKHvle9HCYmwA1
+/FtgnWK+vhjsnEH4dApxP2D4YbP3mGSCpkOKBuNFbJd8sjhIpGCTCwxp8jNl61xE
+S6PJeJfcTU8ztIsGhug80jySah6mEmIyQ47YbG25Lt5AuTAZDTPf84QpD6qdMCvJ
+KjK/sp1LPbN0WZBdzQup9e8WhdMt2sN6UsxM7+WNlJLZ+Fn3xFHkiWvgXp53jiT2
+KITPlARNryCA9e7et3E05ZxtCocCh+y7eEGV7/+g4CjhqniVsshTcVzrKicYN6oC
+O8tLIQ==
+</ds:X509Certificate>
+		</ds:X509Data>
+		</ds:KeyInfo>
+	</KeyDescriptor>
+	<SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://webauth.service.ohio-state.edu/idp/profile/Shibboleth/SSO"/>
+	<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://webauth.service.ohio-state.edu/idp/profile/SAML2/Redirect/SSO"/>
+	<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://webauth.service.ohio-state.edu/idp/profile/SAML2/POST/SSO"/>
+	<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://webauth.service.ohio-state.edu/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+	<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://webauth.service.ohio-state.edu/idp/profile/SAML2/SOAP/ECP"/>
+	</IDPSSODescriptor>
+	<Organization>
+	<OrganizationName xml:lang="en">The Ohio State University</OrganizationName>
+	<OrganizationDisplayName xml:lang="en">Ohio State University</OrganizationDisplayName>
+	<OrganizationURL xml:lang="en">http://www.osu.edu/</OrganizationURL>
+	</Organization>
+	<ContactPerson contactType="support">
+	<GivenName>IT Service Desk</GivenName>
+	<EmailAddress>mailto:8help at osu.edu</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="technical">
+	<GivenName>Authentication Support</GivenName>
+	<EmailAddress>mailto:webauth-admin at lists.service.ohio-state.edu</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="administrative">
+	<GivenName>Authentication Support</GivenName>
+	<EmailAddress>mailto:webauth-admin at lists.service.ohio-state.edu</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="other" remd:contactType="http://refeds.org/metadata/contactType/security">
+	<GivenName>Security Response Team</GivenName>
+	<EmailAddress>mailto:security at osu.edu</EmailAddress>
+	</ContactPerson>
+</EntityDescriptor>
+
+</EntitiesDescriptor>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity1.xml b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity1.xml
new file mode 100644
index 0000000..52d13ed
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity1.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<EntityDescriptor
+    xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+    xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+    xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"
+    xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
+    xmlns:remd="http://refeds.org/metadata"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:shibmd="urn:mace:shibboleth:metadata:1.0"
+    xmlns:ukfedlabel="http://ukfederation.org.uk/2006/11/label"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    ID="entity1" entityID="https://idp2.iay.org.uk/idp/shibboleth">
+	<!--
+		This is an "Ian A. Young" IdP for Ian A. Young.
+	-->
+	<Extensions>
+		<ukfedlabel:UKFederationMember/>
+		<shibmd:Scope regexp="false">iay.org.uk</shibmd:Scope>
+
+
+		<mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk" registrationInstant="2007-03-30T16:36:00Z">
+			<mdrpi:RegistrationPolicy xml:lang="en">http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy>
+		</mdrpi:RegistrationInfo>
+		<mdattr:EntityAttributes>
+			<saml:Attribute Name="http://macedir.org/entity-category-support" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+				<saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue>
+			</saml:Attribute>
+		</mdattr:EntityAttributes>
+	</Extensions>
+	<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0 urn:oasis:names:tc:SAML:2.0:protocol">
+		<Extensions>
+			<mdui:UIInfo>
+				<mdui:DisplayName xml:lang="en">Ian A. Young</mdui:DisplayName>
+				<mdui:Description xml:lang="en">This is the identity provider for the iay.org.uk domain.</mdui:Description>
+				<mdui:Logo height="80" width="80">https://idp2.iay.org.uk/images/heads_80x80.jpg</mdui:Logo>
+				<mdui:Logo height="43" width="100">https://idp2.iay.org.uk/images/heads_100x43.jpg</mdui:Logo>
+				<mdui:Logo height="104" width="240">https://idp2.iay.org.uk/images/heads_240x104.jpg</mdui:Logo>
+			</mdui:UIInfo>
+			<mdui:DiscoHints>
+				<mdui:IPHint>217.155.173.104/29</mdui:IPHint>
+				<mdui:DomainHint>iay.org.uk</mdui:DomainHint>
+				<mdui:GeolocationHint>geo:55.9328,-3.17905</mdui:GeolocationHint>
+			</mdui:DiscoHints>
+			<shibmd:Scope regexp="false">iay.org.uk</shibmd:Scope>
+		</Extensions>
+		<KeyDescriptor>
+			<ds:KeyInfo>
+				<ds:X509Data>
+					<ds:X509Certificate>
+						MIIDSTCCAjGgAwIBAgIhAMSPOSGN+3UUTXSKV+2EBOuF3x/pwPX/TD9GfyEkzLp+
+						MA0GCSqGSIb3DQEBBQUAMFgxGDAWBgNVBAMMD2lkcDIuaWF5Lm9yZy51azETMBEG
+						CgmSJomT8ixkARkWA2lheTETMBEGCgmSJomT8ixkARkWA29yZzESMBAGCgmSJomT
+						8ixkARkWAnVrMB4XDTA4MDIyNTEwMzAxNFoXDTI4MDIyNTEwMzAxNFowWDEYMBYG
+						A1UEAwwPaWRwMi5pYXkub3JnLnVrMRMwEQYKCZImiZPyLGQBGRYDaWF5MRMwEQYK
+						CZImiZPyLGQBGRYDb3JnMRIwEAYKCZImiZPyLGQBGRYCdWswggEiMA0GCSqGSIb3
+						DQEBAQUAA4IBDwAwggEKAoIBAQCb6ts48g10XHTnpy+23huzR184aahkrG0AoeUl
+						FVlomPjoFDk6czq0S3Qyd+ceF7tMRu3XzS7cMmtVH53O9d+wCs8aPQcPXxHQ5gLk
+						L7Gu6eJ+3N3jXhpt7/DDPhnzFPNW3EVMueHJ/0IzyspTvq2LPbNWXJ86NKJ+gesZ
+						QftskwXScOjpoJEIP0EA890QYd4WdYtQPqVV+LPKtnYBoGOnuRhSAM1D/EhCbeb0
+						lCmRGcdGbDFBchiPO4VLGl85sLa0EhjxMIPAOKXcj8bBlO9Ww9kkG06kQp6eLHwm
+						Jmt7VNKveCGhyF2QH/CvmdUaPv3gcp1UjrlqFN9LBVSaTIL/AgMBAAEwDQYJKoZI
+						hvcNAQEFBQADggEBAG+jDBAtlKoHaEBB+l6PpW5zuiDjyHG4zZZYqX77mZ9xP/xe
+						Kn0yJ18ZLjS3b9WztGLYyC4SJHSF2okq1K02bqsCv9YeP+UWpw2uRR8jt96lLWxZ
+						jTjoko2v8jBtzDk8LZsqw58m4vZ0AGNZjKeGIywKhxnepwREguyj3bjBpZAGgl0M
+						HQuXoO/BDC9yKyZslE5CpWp5xP4XzY2/LrorrkwOJLnFuk1sox4/gvkDQukUx/jr
+						YRbrWfOjcNBx3LE/HI6RNLINicK7yUwerDE86nix5Zc3hskVcCykW+r6HbY6bx7P
+						YmNKYMZhQAgDtXIjFHOy+WbyVTidmJvxM9UeYCY=
+					</ds:X509Certificate>
+				</ds:X509Data>
+			</ds:KeyInfo>
+		</KeyDescriptor>
+		<ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://idp2.iay.org.uk:8443/idp/profile/SAML1/SOAP/ArtifactResolution" index="1"/>
+		<ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://idp2.iay.org.uk:8443/idp/profile/SAML2/SOAP/ArtifactResolution" index="2"/>
+		<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+		<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+		<SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://idp2.iay.org.uk/idp/profile/Shibboleth/SSO"/>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://idp2.iay.org.uk/idp/profile/SAML2/POST/SSO"/>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://idp2.iay.org.uk/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+		<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://idp2.iay.org.uk/idp/profile/SAML2/Redirect/SSO"/>
+	</IDPSSODescriptor>
+	<AttributeAuthorityDescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+		<Extensions>
+			<shibmd:Scope regexp="false">iay.org.uk</shibmd:Scope>
+		</Extensions>
+		<KeyDescriptor>
+			<ds:KeyInfo>
+				<ds:X509Data>
+					<ds:X509Certificate>
+						MIIDSTCCAjGgAwIBAgIhAMSPOSGN+3UUTXSKV+2EBOuF3x/pwPX/TD9GfyEkzLp+
+						MA0GCSqGSIb3DQEBBQUAMFgxGDAWBgNVBAMMD2lkcDIuaWF5Lm9yZy51azETMBEG
+						CgmSJomT8ixkARkWA2lheTETMBEGCgmSJomT8ixkARkWA29yZzESMBAGCgmSJomT
+						8ixkARkWAnVrMB4XDTA4MDIyNTEwMzAxNFoXDTI4MDIyNTEwMzAxNFowWDEYMBYG
+						A1UEAwwPaWRwMi5pYXkub3JnLnVrMRMwEQYKCZImiZPyLGQBGRYDaWF5MRMwEQYK
+						CZImiZPyLGQBGRYDb3JnMRIwEAYKCZImiZPyLGQBGRYCdWswggEiMA0GCSqGSIb3
+						DQEBAQUAA4IBDwAwggEKAoIBAQCb6ts48g10XHTnpy+23huzR184aahkrG0AoeUl
+						FVlomPjoFDk6czq0S3Qyd+ceF7tMRu3XzS7cMmtVH53O9d+wCs8aPQcPXxHQ5gLk
+						L7Gu6eJ+3N3jXhpt7/DDPhnzFPNW3EVMueHJ/0IzyspTvq2LPbNWXJ86NKJ+gesZ
+						QftskwXScOjpoJEIP0EA890QYd4WdYtQPqVV+LPKtnYBoGOnuRhSAM1D/EhCbeb0
+						lCmRGcdGbDFBchiPO4VLGl85sLa0EhjxMIPAOKXcj8bBlO9Ww9kkG06kQp6eLHwm
+						Jmt7VNKveCGhyF2QH/CvmdUaPv3gcp1UjrlqFN9LBVSaTIL/AgMBAAEwDQYJKoZI
+						hvcNAQEFBQADggEBAG+jDBAtlKoHaEBB+l6PpW5zuiDjyHG4zZZYqX77mZ9xP/xe
+						Kn0yJ18ZLjS3b9WztGLYyC4SJHSF2okq1K02bqsCv9YeP+UWpw2uRR8jt96lLWxZ
+						jTjoko2v8jBtzDk8LZsqw58m4vZ0AGNZjKeGIywKhxnepwREguyj3bjBpZAGgl0M
+						HQuXoO/BDC9yKyZslE5CpWp5xP4XzY2/LrorrkwOJLnFuk1sox4/gvkDQukUx/jr
+						YRbrWfOjcNBx3LE/HI6RNLINicK7yUwerDE86nix5Zc3hskVcCykW+r6HbY6bx7P
+						YmNKYMZhQAgDtXIjFHOy+WbyVTidmJvxM9UeYCY=
+					</ds:X509Certificate>
+				</ds:X509Data>
+			</ds:KeyInfo>
+		</KeyDescriptor>
+		<AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://idp2.iay.org.uk:8443/idp/profile/SAML1/SOAP/AttributeQuery"/>
+		<AttributeService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://idp2.iay.org.uk:8443/idp/profile/SAML2/SOAP/AttributeQuery"/>
+		<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+		<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+	</AttributeAuthorityDescriptor>
+	<Organization>
+		<OrganizationName xml:lang="en">Ian A. Young</OrganizationName>
+		<OrganizationDisplayName xml:lang="en">Ian A. Young</OrganizationDisplayName>
+		<OrganizationURL xml:lang="en">http://iay.org.uk/</OrganizationURL>
+	</Organization>
+	<ContactPerson contactType="support">
+		<GivenName>Ian</GivenName>
+		<SurName>Young</SurName>
+		<EmailAddress>mailto:ukfed+fc2ee77e at iay.org.uk</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="technical">
+		<GivenName>Ian</GivenName>
+		<SurName>Young</SurName>
+		<EmailAddress>mailto:ukfed+fc2ee77e at iay.org.uk</EmailAddress>
+	</ContactPerson>
+
+</EntityDescriptor>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity2.xml b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity2.xml
new file mode 100644
index 0000000..1a8db81
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity2.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<EntityDescriptor
+    xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+    xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+    xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"
+    xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
+    xmlns:remd="http://refeds.org/metadata"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:shibmd="urn:mace:shibboleth:metadata:1.0"
+    xmlns:ukfedlabel="http://ukfederation.org.uk/2006/11/label"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	ID="entity2" entityID="https://idp.shibboleth.net/idp/shibboleth">
+		<!--
+			This is a shibboleth.net Shibboleth IdP for Jisc Services Limited. 
+		-->
+		<Extensions>
+			<shibmd:Scope regexp="false">shibboleth.net</shibmd:Scope>
+			<ukfedlabel:UKFederationMember/>
+			<DigestMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+			<DigestMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
+			<DigestMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+			<DigestMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+			<SigningMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"/>
+			<SigningMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"/>
+			<SigningMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
+			<SigningMethod xmlns="urn:oasis:names:tc:SAML:metadata:algsupport" Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
+			<mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk" registrationInstant="2011-01-06T16:22:29Z">
+				<mdrpi:RegistrationPolicy xml:lang="en">http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy>
+			</mdrpi:RegistrationInfo>
+		</Extensions>
+		<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+			<Extensions>
+				<shibmd:Scope regexp="false">shibboleth.net</shibmd:Scope>
+				<mdui:UIInfo>
+					<mdui:DisplayName xml:lang="en">Shibboleth.net</mdui:DisplayName>
+					<mdui:Description xml:lang="en">An identity provider hosted and used by the
+						developers of Shibboleth.</mdui:Description>
+					<mdui:Logo height="82" width="64">https://shibboleth.net/images/gryphon_64x82.png</mdui:Logo>
+				</mdui:UIInfo>
+			</Extensions>
+			<KeyDescriptor>
+				<ds:KeyInfo>
+					<ds:X509Data>
+						<ds:X509Certificate>
+							MIIDNDCCAhygAwIBAgIVAKyBWnv1/h1U11C7kHvV33FIrEsJMA0GCSqGSIb3DQEB
+							BQUAMB0xGzAZBgNVBAMTEmlkcC5zaGliYm9sZXRoLm5ldDAeFw0xMDEyMjkwMDA5
+							MTlaFw0zMDEyMjkwMDA5MTlaMB0xGzAZBgNVBAMTEmlkcC5zaGliYm9sZXRoLm5l
+							dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKjWAdpUx/82FUzrRMfA
+							M63PkZZYCm3RnT3eiL+DeJcbGdcEJx/o+32vgHXJgJOBt14YdVam5GErIYgk4SGq
+							5Z5RYl0PpQn6HQG/9prGnYCu6p5zfb0557o51Eh8TcVehS6Y2ruyCjAF0jgVMwh5
+							/0Oh8EE9wG93pSpm70DAiiaTVCb8WoT1aZYtxbBmmuH10bU+wge/NMmaHuVAe599
+							pyezFIL4FoI2g+1Q6nG4Yl1Z07I81tTApXKVMWRt/4/M3m2D7PUMOQ9qsxthp2L/
+							LovIeNo0bTyeW290T2Y/JRZhKOgeDqkhuu82DPri2Vm5G/unB69KfRB7CF9QWIc3
+							y80CAwEAAaNrMGkwSAYDVR0RBEEwP4ISaWRwLnNoaWJib2xldGgubmV0hilodHRw
+							czovL2lkcC5zaGliYm9sZXRoLm5ldC9pZHAvc2hpYmJvbGV0aDAdBgNVHQ4EFgQU
+							3uZ32tKXJBzPCTp2dtHSLV0FvGgwDQYJKoZIhvcNAQEFBQADggEBAAYXYuzp0UTj
+							3yLRvUCbEtaw9b80+weOELkVv3WFY3QAG8pIKEblrMMtzrzLFWZwYwwMZDab/HnH
+							egmgjZBthrOedEmoJ+OHRmIiS8zdZxVGEadJhTUaeIkO6kwK7Ht3nQePoiXV7TI5
+							+A9SpmZGoukC85Za4wGDw4xWGs5t5l6tBuuV+1s0oC6T8ih5n/NyThfpbihSW0d7
+							iBfSUickgpoM2BLM3FCnbO8HOsX1rGV4ypG9ZGDDvr2jrzalXXmc05gSlL2qd9ce
+							Q1M+9vavusPCqlj2zZf2/HfzhyiFcb/OgA0oTFWW2ynXji6UarIV5QaPoi/XmGmx
+							BXD36HfGBXk=
+						</ds:X509Certificate>
+					</ds:X509Data>
+				</ds:KeyInfo>
+				<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+				<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+				<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+				<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+				<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
+			</KeyDescriptor>
+			<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+			<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://shibboleth.net/idp/profile/SAML2/POST/SSO"/>
+			<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://shibboleth.net/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+			<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://shibboleth.net/idp/profile/SAML2/Redirect/SSO"/>
+		</IDPSSODescriptor>
+		<Organization>
+			<OrganizationName xml:lang="en">Jisc Services Limited</OrganizationName>
+			<OrganizationDisplayName xml:lang="en">Shibboleth.net</OrganizationDisplayName>
+			<OrganizationURL xml:lang="en">http://www.shibboleth.net/</OrganizationURL>
+		</Organization>
+		<ContactPerson contactType="support">
+			<GivenName>Shibboleth.Net Technical Support</GivenName>
+			<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+		<ContactPerson contactType="technical">
+			<GivenName>Scott</GivenName>
+			<SurName>Cantor</SurName>
+			<EmailAddress>mailto:cantor.2 at osu.edu</EmailAddress>
+		</ContactPerson>
+		<ContactPerson contactType="technical">
+			<GivenName>Ian</GivenName>
+			<SurName>Young</SurName>
+			<EmailAddress>mailto:ukfed at iay.org.uk</EmailAddress>
+		</ContactPerson>
+	</EntityDescriptor>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity3.xml b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity3.xml
new file mode 100644
index 0000000..32b9e5e
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity3.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<EntityDescriptor
+    xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+    xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+    xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"
+    xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
+    xmlns:remd="http://refeds.org/metadata"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:shibmd="urn:mace:shibboleth:metadata:1.0"
+    xmlns:ukfedlabel="http://ukfederation.org.uk/2006/11/label"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	ID="entity3" entityID="https://issues.shibboleth.net/shibboleth">
+		<Extensions>
+		<mdrpi:RegistrationInfo registrationAuthority="https://incommon.org"/>
+	
+		</Extensions>
+		<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+		<Extensions>
+			<idpdisc:DiscoveryResponse Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/Login" index="1"/>
+			<mdui:UIInfo>
+			<mdui:DisplayName xml:lang="en">Shibboleth.net Issue Tracking</mdui:DisplayName>
+			<mdui:Description xml:lang="en">The issue (improvements, bugs, tasks) tracking system used by the Shibboleth project. Unauthenticated users may view submitted issues.  Authenticated users may submit new issues and comment on existing ones.</mdui:Description>
+			<mdui:PrivacyStatementURL xml:lang="en">https://wiki.shibboleth.net/confluence/display/DEV/Infrastructure+Information</mdui:PrivacyStatementURL>
+			<mdui:Logo height="82" width="64" xml:lang="en">https://shibboleth.net/images/gryphon_64x82.png</mdui:Logo>
+			</mdui:UIInfo>
+		</Extensions>
+		<KeyDescriptor>
+			<ds:KeyInfo>
+			<ds:X509Data>
+				<ds:X509Certificate>
+	MIIDRjCCAi6gAwIBAgIJAPjZ6g1hwfvPMA0GCSqGSIb3DQEBBQUAMFExEzARBgoJ
+	kiaJk/IsZAEZFgNuZXQxGjAYBgoJkiaJk/IsZAEZFgpzaGliYm9sZXRoMR4wHAYD
+	VQQDExVpc3N1ZXMuc2hpYmJvbGV0aC5uZXQwHhcNMTMxMTI1MTQ1ODA4WhcNMzcw
+	MzA0MTQ1ODA4WjBRMRMwEQYKCZImiZPyLGQBGRYDbmV0MRowGAYKCZImiZPyLGQB
+	GRYKc2hpYmJvbGV0aDEeMBwGA1UEAxMVaXNzdWVzLnNoaWJib2xldGgubmV0MIIB
+	IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtb4jIloWGvHJsSeq0PMjkWDA
+	+hseZ6/6/cEJKPk245f6hktC2k3z0AqJL8Kw9OudOjDx2op2jKm45TuIA46ti6VP
+	f4stLIi7mO1B4A6jTWThCwU0DjMCwBXLhANdBQloyUYJU/usN8RBXlPnWZAV1dVb
+	ygb7GUorkMON+wnFd7nhBePmQdJfbsqvKN8MykWfQ56chS+0lCYhyT7qql2bskJ4
+	y621WSo47php2NyyU1KNcaFBLoao+UTH7KZ9qHOWJyGJGuWKwgZmCiVd0LQhWywP
+	3M/JxZvpTr2Bs/J5d8BzZGSFUaHrVcPzIX+5c3sdK4d1wXUur1XE++bh9F9TjwID
+	AQABoyEwHzAdBgNVHQ4EFgQUHtV8GWr64AIUV634b9YBlMEpHOwwDQYJKoZIhvcN
+	AQEFBQADggEBAI0BSqXoyw5bUVQJKNCnxB3hUwHIOXeoS77jqgv2lesyTqz5U4NV
+	v4Cdz7icwYzt+c6ZSZqem4pqmi3/6COZnf/+l29J/XwWkva32P6tfoO4af3qywF+
+	TvuZiRMXdt1KE7GTlYOSxOsnxaRmXVc6MWfxPT6oTOt5z15aTdfEzK+wVfeUkIf1
+	1soEmMHgjDaa/HQdGgXGq/fStDc0Mcm2W7y50+aNwqIMNiQQiwQYSUgpBatSfKy1
+	umh6DHEyznDZAAHBtatzvQu1YAJHUg6AeimuhminaM5tyBCW6Y6YMywFYSP+VqPU
+	PxCBrPWcCAwOw80Ey/FLVlAdW1FuwUmMejA=
+	</ds:X509Certificate>
+			</ds:X509Data>
+			</ds:KeyInfo>
+		</KeyDescriptor>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML/Artifact" index="1"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML/POST" index="2"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML2/Artifact" index="3"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML2/POST" index="4"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML2/POST-SimpleSign" index="5"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS" Location="https://issues.shibboleth.net/jira/Shibboleth.sso/SAML2/ECP" index="6"/>
+		<AttributeConsumingService index="1">
+			<ServiceName xml:lang="en">Shibboleth.net Issue Tracking</ServiceName>
+			<ServiceDescription xml:lang="en">The issue (improvements, bugs, tasks) tracking system used by the Shibboleth project. Unauthenticated users may view submitted issues.  Authenticated users may submit new issues and comment on existing ones.</ServiceDescription>
+			<RequestedAttribute FriendlyName="displayName" Name="urn:oid:2.16.840.1.113730.3.1.241" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+			<RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+			<RequestedAttribute FriendlyName="eduPersonTargetedID" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+			<RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+		</AttributeConsumingService>
+		</SPSSODescriptor>
+		<Organization>
+		<OrganizationName xml:lang="en">The Ohio State University</OrganizationName>
+		<OrganizationDisplayName xml:lang="en">Ohio State University</OrganizationDisplayName>
+		<OrganizationURL xml:lang="en">http://www.osu.edu/</OrganizationURL>
+		</Organization>
+		<ContactPerson contactType="support">
+		<GivenName>Shibboleth Contact</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+		<ContactPerson contactType="technical">
+		<GivenName>Shibboleth Contact</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+		<ContactPerson contactType="administrative">
+		<GivenName>Shibboleth Contact</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+		<ContactPerson contactType="other" remd:contactType="http://refeds.org/metadata/contactType/security">
+		<GivenName>Shibboleth Contact</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+	</EntityDescriptor>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity4.xml b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity4.xml
new file mode 100644
index 0000000..c11b1f0
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity4.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<EntityDescriptor
+    xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+    xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+    xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"
+    xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
+    xmlns:remd="http://refeds.org/metadata"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:shibmd="urn:mace:shibboleth:metadata:1.0"
+    xmlns:ukfedlabel="http://ukfederation.org.uk/2006/11/label"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	ID="entity4" entityID="https://wiki.shibboleth.net/shibboleth">
+		<Extensions>
+		<mdrpi:RegistrationInfo registrationAuthority="https://incommon.org"/>
+	
+		</Extensions>
+		<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+		<Extensions>
+			<idpdisc:DiscoveryResponse Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/Login" index="1"/>
+			<mdui:UIInfo>
+			<mdui:DisplayName xml:lang="en">Shibboleth.net Wiki</mdui:DisplayName>
+			<mdui:Description xml:lang="en">The wiki hosting the documentation for Shibboleth. Unauthenticated user may view the existing documentation. Authenticated users may create new documentation pages and edit existing ones.</mdui:Description>
+			<mdui:PrivacyStatementURL xml:lang="en">https://wiki.shibboleth.net/confluence/display/DEV/Infrastructure+Information</mdui:PrivacyStatementURL>
+			<mdui:Logo height="82" width="64" xml:lang="en">https://shibboleth.net/images/gryphon_64x82.png</mdui:Logo>
+			</mdui:UIInfo>
+		</Extensions>
+		<KeyDescriptor>
+			<ds:KeyInfo>
+			<ds:X509Data>
+				<ds:X509Certificate>
+	MIIDQjCCAiqgAwIBAgIJAMI1r/DZzTEJMA0GCSqGSIb3DQEBBQUAME8xEzARBgoJ
+	kiaJk/IsZAEZFgNuZXQxGjAYBgoJkiaJk/IsZAEZFgpzaGliYm9sZXRoMRwwGgYD
+	VQQDExN3aWtpLnNoaWJib2xldGgubmV0MB4XDTEzMTEyNTE0NTcyOFoXDTM3MDMw
+	NDE0NTcyOFowTzETMBEGCgmSJomT8ixkARkWA25ldDEaMBgGCgmSJomT8ixkARkW
+	CnNoaWJib2xldGgxHDAaBgNVBAMTE3dpa2kuc2hpYmJvbGV0aC5uZXQwggEiMA0G
+	CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1viMiWhYa8cmxJ6rQ8yORYMD6Gx5n
+	r/r9wQko+Tbjl/qGS0LaTfPQCokvwrD06506MPHainaMqbjlO4gDjq2LpU9/iy0s
+	iLuY7UHgDqNNZOELBTQOMwLAFcuEA10FCWjJRglT+6w3xEFeU+dZkBXV1VvKBvsZ
+	SiuQw437CcV3ueEF4+ZB0l9uyq8o3wzKRZ9DnpyFL7SUJiHJPuqqXZuyQnjLrbVZ
+	KjjumGnY3LJTUo1xoUEuhqj5RMfspn2oc5YnIYka5YrCBmYKJV3QtCFbLA/cz8nF
+	m+lOvYGz8nl3wHNkZIVRoetVw/Mhf7lzex0rh3XBdS6vVcT75uH0X1OPAgMBAAGj
+	ITAfMB0GA1UdDgQWBBQe1XwZavrgAhRXrfhv1gGUwSkc7DANBgkqhkiG9w0BAQUF
+	AAOCAQEADCGhWJ+oZ8ltcjJ7D66rMg1HOZT6GFCVeZ7MfhY/KFrvsnITNbTA+SgZ
+	tCJt/BLlZXxpzmix19bD9bNwqEMo7WSqBy77X7SS97ZXti6y6vwAz8h78vzQopOd
+	rnn8XXyWxtrtRRCK4RMpZGrVm3sfBPW68j9hiPHZqewE4nLavjCki/I9rCMe5dJE
+	3+ZRf4Ip/9hYqM+a5Chcvbo2zJEOtw+EUQqNTZ51j33H/2qF9UoSpt74UFh+Jd5y
+	L2GoFSt/gCld78j/7cU3ObGQEme+hVVZ8/uGa/cCYvFt75vNBdnlj4icZ6fgFe9R
+	9h5hlBTGD3PULSFmCdkgxtwIyd855Q==
+	</ds:X509Certificate>
+			</ds:X509Data>
+			</ds:KeyInfo>
+		</KeyDescriptor>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML/Artifact" index="1"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML/POST" index="2"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML2/Artifact" index="3"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML2/ECP" index="4"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML2/POST" index="5"/>
+		<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://wiki.shibboleth.net/confluence/Shibboleth.sso/SAML2/POST-SimpleSign" index="6"/>
+		<AttributeConsumingService index="1">
+			<ServiceName xml:lang="en">Shibboleth.net Wiki</ServiceName>
+			<ServiceDescription xml:lang="en">The wiki hosting the documentation for Shibboleth. Unauthenticated user may view the existing documentation. Authenticated users may create new documentation pages and edit existing ones.</ServiceDescription>
+			<RequestedAttribute FriendlyName="displayName" Name="urn:oid:2.16.840.1.113730.3.1.241" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+			<RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+			<RequestedAttribute FriendlyName="eduPersonTargetedID" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+			<RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+		</AttributeConsumingService>
+		</SPSSODescriptor>
+		<Organization>
+		<OrganizationName xml:lang="en">The Ohio State University</OrganizationName>
+		<OrganizationDisplayName xml:lang="en">Ohio State University</OrganizationDisplayName>
+		<OrganizationURL xml:lang="en">http://www.osu.edu/</OrganizationURL>
+		</Organization>
+		<ContactPerson contactType="technical">
+		<GivenName>Shibboleth Contact</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+		<ContactPerson contactType="support">
+		<GivenName>Shibboleth Contact</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+		<ContactPerson contactType="administrative">
+		<GivenName>Shibboleth Contact</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+		<ContactPerson contactType="other" remd:contactType="http://refeds.org/metadata/contactType/security">
+		<GivenName>Shibboleth Contact</GivenName>
+		<EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
+		</ContactPerson>
+	</EntityDescriptor>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity5.xml b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity5.xml
new file mode 100644
index 0000000..3a40b1e
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/entities/entity5.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<EntityDescriptor
+    xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+    xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+    xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"
+    xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
+    xmlns:remd="http://refeds.org/metadata"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:shibmd="urn:mace:shibboleth:metadata:1.0"
+    xmlns:ukfedlabel="http://ukfederation.org.uk/2006/11/label"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	ID="entity5" entityID="urn:mace:incommon:osu.edu">
+	<Extensions>
+	<mdrpi:RegistrationInfo registrationAuthority="https://incommon.org"/>
+	<mdattr:EntityAttributes>
+		<saml:Attribute Name="http://macedir.org/entity-category-support" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+		<saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue>
+		</saml:Attribute>
+		<saml:Attribute Name="urn:oasis:names:tc:SAML:attribute:assurance-certification" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+		<saml:AttributeValue>https://refeds.org/sirtfi</saml:AttributeValue>
+		</saml:Attribute>
+
+	</mdattr:EntityAttributes>
+	</Extensions>
+	<IDPSSODescriptor errorURL="https://webauth.service.ohio-state.edu/support.html" protocolSupportEnumeration="urn:mace:shibboleth:1.0 urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+	<Extensions>
+		<shibmd:Scope regexp="false">osu.edu</shibmd:Scope>
+		<mdui:UIInfo>
+		<mdui:DisplayName xml:lang="en">Ohio State University</mdui:DisplayName>
+		<mdui:InformationURL xml:lang="en">https://webauth.service.ohio-state.edu/info.html</mdui:InformationURL>
+		<mdui:PrivacyStatementURL xml:lang="en">https://it.osu.edu/sites/default/files/files-1477502394/disclosurepolicy.pdf</mdui:PrivacyStatementURL>
+		<mdui:Logo height="83" width="83" xml:lang="en">https://webauth.service.ohio-state.edu/images/osu_mdui.png</mdui:Logo>
+		</mdui:UIInfo>
+	</Extensions>
+	<KeyDescriptor use="signing">
+		<ds:KeyInfo>
+		<ds:X509Data>
+			<ds:X509Certificate>
+MIIEUDCCArigAwIBAgIJAOTP/syONHwnMA0GCSqGSIb3DQEBCwUAMCkxJzAlBgNV
+BAMMHndlYmF1dGguc2VydmljZS5vaGlvLXN0YXRlLmVkdTAeFw0xOTAyMjIxOTE3
+MjJaFw00NjA3MTAxOTE3MjJaMCkxJzAlBgNVBAMMHndlYmF1dGguc2VydmljZS5v
+aGlvLXN0YXRlLmVkdTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJle
+1C2GVPJkD+fXHBxGMZSLVFsEClJNFbI2Rp5feo8QNvV5CYIMU+bNqovkMZhONAbz
+3v63v/HNNr3tFk6ZBWk7fQ+VZE7NyHGrpKn1XiWbFMBokEsMXah3tDHq5clxCWHi
+dg8J9knnLt71h2j7SvSowxF8TwEmIGQmymNs1TeW2kVxKZWChk+UzRk3VNMPxoUz
+lEdAiqBSl/J3E+W1lCzYxs/r9cTTeQwAJkwg/gjewCTcNlXGtt9ykf4Csja2NFtO
+hh7bys3VzAI0nsHFTxQq3rxbbmeCmLdLGvu83h2iI0JrT6HYmo0ksXVqTXIOPS+D
+ZJmCYLL4PKJQb6fAcQhE4NgZMEEJdtToe8mt34/UPGutRz0ja/fgV6ec3AJq9wQF
+jQ20iPpDh/aVuLpSQYmEhuMQOXvBI8ILv/wKSPQ2A63FSr4adoNFlBCsOFoTW9uu
+y7Kxc8Qo+ZzEF39WWBnc3UcBSxk9Z9zsCFCAbfBt+SVrbNUA4L4lU/8x9DpRpwID
+AQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy
+YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUML3nKeprDqx0PFVahBwqvu2s5y4w
+HwYDVR0jBBgwFoAUML3nKeprDqx0PFVahBwqvu2s5y4wDQYJKoZIhvcNAQELBQAD
+ggGBADSfQwfmSPjrXGdWsCqngcEmN1ksnSCcNm8qdp+YO0luZO0MiJsM0cIvka1e
+/9MeP7VMbeBTOpSlr1RzN6h0bFWo9vwLbIuYsLc63Vt4B1R7DzUMQwWc7LekfV/A
+8IIdendOvCLpxvrm3dj32VgA5jNlJ+M7fDzFh5vHouLEAD45F/qn50N1XyZYX86C
+zLpL7rCfmnMGrzAYBUgj9d6CU8xkf0XoiCsyMsuku0ZNFEzUCKZKHvle9HCYmwA1
+/FtgnWK+vhjsnEH4dApxP2D4YbP3mGSCpkOKBuNFbJd8sjhIpGCTCwxp8jNl61xE
+S6PJeJfcTU8ztIsGhug80jySah6mEmIyQ47YbG25Lt5AuTAZDTPf84QpD6qdMCvJ
+KjK/sp1LPbN0WZBdzQup9e8WhdMt2sN6UsxM7+WNlJLZ+Fn3xFHkiWvgXp53jiT2
+KITPlARNryCA9e7et3E05ZxtCocCh+y7eEGV7/+g4CjhqniVsshTcVzrKicYN6oC
+O8tLIQ==
+</ds:X509Certificate>
+		</ds:X509Data>
+		</ds:KeyInfo>
+	</KeyDescriptor>
+	<SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://webauth.service.ohio-state.edu/idp/profile/Shibboleth/SSO"/>
+	<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://webauth.service.ohio-state.edu/idp/profile/SAML2/Redirect/SSO"/>
+	<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://webauth.service.ohio-state.edu/idp/profile/SAML2/POST/SSO"/>
+	<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://webauth.service.ohio-state.edu/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+	<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://webauth.service.ohio-state.edu/idp/profile/SAML2/SOAP/ECP"/>
+	</IDPSSODescriptor>
+	<Organization>
+	<OrganizationName xml:lang="en">The Ohio State University</OrganizationName>
+	<OrganizationDisplayName xml:lang="en">Ohio State University</OrganizationDisplayName>
+	<OrganizationURL xml:lang="en">http://www.osu.edu/</OrganizationURL>
+	</Organization>
+	<ContactPerson contactType="support">
+	<GivenName>IT Service Desk</GivenName>
+	<EmailAddress>mailto:8help at osu.edu</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="technical">
+	<GivenName>Authentication Support</GivenName>
+	<EmailAddress>mailto:webauth-admin at lists.service.ohio-state.edu</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="administrative">
+	<GivenName>Authentication Support</GivenName>
+	<EmailAddress>mailto:webauth-admin at lists.service.ohio-state.edu</EmailAddress>
+	</ContactPerson>
+	<ContactPerson contactType="other" remd:contactType="http://refeds.org/metadata/contactType/security">
+	<GivenName>Security Response Team</GivenName>
+	<EmailAddress>mailto:security at osu.edu</EmailAddress>
+	</ContactPerson>
+</EntityDescriptor>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/inc-md-cert-mdq.pem b/mda-distribution-0.10.0/doc/wiki/path/to/input/inc-md-cert-mdq.pem
new file mode 100644
index 0000000..de0db58
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/inc-md-cert-mdq.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEvjCCAyagAwIBAgIJANpi9/mkU/zoMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNV
+BAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRYwFAYDVQQK
+DA1JbnRlcm5ldDIuZWR1MREwDwYDVQQLDAhJbkNvbW1vbjEZMBcGA1UEAwwQbWRx
+LmluY29tbW9uLm9yZzAeFw0xODExMTMxNDI5NDNaFw0zODExMTAxNDI5NDNaMHQx
+CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRYw
+FAYDVQQKDA1JbnRlcm5ldDIuZWR1MREwDwYDVQQLDAhJbkNvbW1vbjEZMBcGA1UE
+AwwQbWRxLmluY29tbW9uLm9yZzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoC
+ggGBAJ0+fUTzYVSP6ZOutOEhNdp3WPCPOYqnB4sQFz7IeGbFL1o0lZjx5Izm4Yho
+4wNDd0h486iSkHxNf5dDhCqgz7ZRSmbusOl98SYn70PrUQj/Nzs3w47dPg9Tpb/x
+y44PvNLS/rE56hPgCz/fbHoTTiJt5eosysa1ZebQ3LEyW3jGm+LGtLbdIfkynKVQ
+vpp1FVeCamzdeB3ZRICAvqTYQKE1JQDGlWrEsSW0VVEGNjfbzMzr/g4l8JRdMabQ
+Jig8tj3UIXnu7A2CKSMJSy3WZ3HX+85oHEbL+EV4PtpQz765c69tUIdNTJax9jQ2
+1c3wL0K27HE8jSRlrXImD50R3dXQBKH+iiynBWxRPdyMBa1YfK+zZEWPbLHshSTc
+9hkylQv3awmPR/+Plz5AtTpe5yss/Ifyp01wz1jt42R+6jDE+WbUjp5XDBCAjGEE
+0FPaYtxjZLkmNl367bdTN12OIn/ixPNH+Z/S/4skdBB9Gc4lb2fEBywJQY0OYNOd
+WOxmPwIDAQABo1MwUTAdBgNVHQ4EFgQUMHZuwMaYSJM5mlu3Wc4Ts5xq4/swHwYD
+VR0jBBgwFoAUMHZuwMaYSJM5mlu3Wc4Ts5xq4/swDwYDVR0TAQH/BAUwAwEB/zAN
+BgkqhkiG9w0BAQsFAAOCAYEAMr4wfLrSoPTzfpXtvL+2vrKBJNnRfuJpOYTbPKUc
+DOP2QfzRlczi7suYJvd5rLiRonq8rjyPUyM8gvTfbTps+JhJ6S9mS6dTBxOV1qPZ
+3Ab+XKmq8LUtguGRabKgJgmJH0+inR/wVoal7EVHcWXfij9AT8DZOXW88shc6grh
+jUaFZBu/2+q8c8ee0e4ip8B+CVEnCwDKI0d+nTcSmPvAE34CNa33F+QGpXawv5yv
+VvIpSaLAeFQhc/jKcnNHfy+Zi7JmSnKZiMvQCbWANQmDjHg7pGmBW9nyQcm6P2/B
+0AVcEj1YTpAR8Mbh1pUdIhoB+chaNnFEIZsXeRsdbbAFpxodInlJ7WekfuvSQ6sU
+EXpoyBGOeuuTmR1va8k3QeL8Wc4yNu/g5LwjmtvPrh2jBF8xujc4J6VzP8K2BjA4
+xk4LnXgjHOT93dBAJhVYJkykDHwyvHUvsBHoP6lfjrt5P8zunK2mdP/AZKik+Rdt
+1GGlErV2AyWShTOaDLW6NxdP
+-----END CERTIFICATE-----
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/pkcs11-softhsm.cfg b/mda-distribution-0.10.0/doc/wiki/path/to/input/pkcs11-softhsm.cfg
new file mode 100644
index 0000000..ab87bb7
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/pkcs11-softhsm.cfg
@@ -0,0 +1,3 @@
+# PKCS#11 provider configuration for softhsm running under Amazon Linux
+name = softhsm
+library = /usr/lib64/pkcs11/libsofthsm2.so
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/input/ukfederation-2014.pem b/mda-distribution-0.10.0/doc/wiki/path/to/input/ukfederation-2014.pem
new file mode 100644
index 0000000..f75ac42
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/input/ukfederation-2014.pem
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIIDxzCCAq+gAwIBAgIJAOwuoY8tsvYGMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV
+BAYTAkdCMUMwQQYDVQQKDDpVSyBBY2Nlc3MgTWFuYWdlbWVudCBGZWRlcmF0aW9u
+IGZvciBFZHVjYXRpb24gYW5kIFJlc2VhcmNoMSYwJAYDVQQDDB1VSyBGZWRlcmF0
+aW9uIE1ldGFkYXRhIFNpZ25lcjAeFw0xNDA4MjYxMjIwMjhaFw0zNzEyMzExMjIw
+MjhaMHoxCzAJBgNVBAYTAkdCMUMwQQYDVQQKDDpVSyBBY2Nlc3MgTWFuYWdlbWVu
+dCBGZWRlcmF0aW9uIGZvciBFZHVjYXRpb24gYW5kIFJlc2VhcmNoMSYwJAYDVQQD
+DB1VSyBGZWRlcmF0aW9uIE1ldGFkYXRhIFNpZ25lcjCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAOqtfMvCmBuQudC4/jZFPYkHDNHFyp1FA3KJihIUXppF
+vrecrO2wG5CpyqB1mZ+MlKf4jKcTMGBIXC2klD+FyrEdJMBhO6vRmJnNphg3uNZM
+ks0NqIaZmtgc7e8435nMhqLHV95UK2oCLcT4gZrTaXa2vt9kukTOijB0KqDIfEG5
+369EHXPItApAEeMlHebbWndl5n2I16nya/LeaoiU9qJ6sVz4xd1UtUesewrmYVKg
+PA2JYEpovmnr13sTnGssai5Db/FkrE2NJ4Q4drbPYcwincUo/UXzrtuPclr+l3JE
+gjtvDzPrBxxvK0S/gARrbKz5tk4LDLkYsj4PKlwVS+UCAwEAAaNQME4wHQYDVR0O
+BBYEFE9HhBuMxrzBYOj1Kj/3gtzAgtUEMB8GA1UdIwQYMBaAFE9HhBuMxrzBYOj1
+Kj/3gtzAgtUEMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBALJkjT3K
+QL3w3xNfVe27nEOY44K2AZiu4IhqmRSslcyMnhnxrovEhLL3ieKFXQ+QFIkzVdR5
+BcO3NrSIz5V6b+mHtr5IjqLFHzOzzjw/3i8LddGOsApJiav+JrU1CGJXCU4cwYDN
+hAyfuAlrrEEL2lWMU1L1ZTzHsG1yWTfukfuvTftY5BwZ/dgANgIWwLDhvL6CAQZ3
+g5XteFPyChU0Z7b3XAHdVNHDa2VzWSsSUDtSQZ9DyTuqSjZH1q2/qtdMcrbJpdMB
+cndOf1pZRLzb6a+akIYi//1qO48HpB4wouH9gS3ZER+rNBhVWu301UYxoVI7o8mG
+Yq7dENJce7lO9yE=
+-----END CERTIFICATE-----
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/output/.gitkeep b/mda-distribution-0.10.0/doc/wiki/path/to/output/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/schema/saml-schema-assertion-2.0.xsd b/mda-distribution-0.10.0/doc/wiki/path/to/schema/saml-schema-assertion-2.0.xsd
new file mode 100644
index 0000000..759baf8
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/schema/saml-schema-assertion-2.0.xsd
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<schema
+    targetNamespace="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns="http://www.w3.org/2001/XMLSchema"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+    elementFormDefault="unqualified"
+    attributeFormDefault="unqualified"
+    blockDefault="substitution"
+    version="2.0">
+    <import namespace="http://www.w3.org/2000/09/xmldsig#"
+        schemaLocation="xmldsig-core-schema.xsd"/>
+    <import namespace="http://www.w3.org/2001/04/xmlenc#"
+        schemaLocation="xenc-schema.xsd"/>
+    <annotation>
+        <documentation>
+            Document identifier: saml-schema-assertion-2.0
+            Location: http://docs.oasis-open.org/security/saml/v2.0/
+            Revision history:
+            V1.0 (November, 2002):
+              Initial Standard Schema.
+            V1.1 (September, 2003):
+              Updates within the same V1.0 namespace.
+            V2.0 (March, 2005):
+              New assertion schema for SAML V2.0 namespace.
+        </documentation>
+    </annotation>
+    <attributeGroup name="IDNameQualifiers">
+        <attribute name="NameQualifier" type="string" use="optional"/>
+        <attribute name="SPNameQualifier" type="string" use="optional"/>
+    </attributeGroup>
+    <element name="BaseID" type="saml:BaseIDAbstractType"/>
+    <complexType name="BaseIDAbstractType" abstract="true">
+        <attributeGroup ref="saml:IDNameQualifiers"/>
+    </complexType>
+    <element name="NameID" type="saml:NameIDType"/>
+    <complexType name="NameIDType">
+        <simpleContent>
+            <extension base="string">
+                <attributeGroup ref="saml:IDNameQualifiers"/>
+                <attribute name="Format" type="anyURI" use="optional"/>
+                <attribute name="SPProvidedID" type="string" use="optional"/>
+            </extension>
+        </simpleContent>
+    </complexType>
+    <complexType name="EncryptedElementType">
+        <sequence>
+            <element ref="xenc:EncryptedData"/>
+            <element ref="xenc:EncryptedKey" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+    </complexType>
+    <element name="EncryptedID" type="saml:EncryptedElementType"/>
+    <element name="Issuer" type="saml:NameIDType"/>
+    <element name="AssertionIDRef" type="NCName"/>
+    <element name="AssertionURIRef" type="anyURI"/>
+    <element name="Assertion" type="saml:AssertionType"/>
+    <complexType name="AssertionType">
+        <sequence>
+            <element ref="saml:Issuer"/>
+            <element ref="ds:Signature" minOccurs="0"/>
+            <element ref="saml:Subject" minOccurs="0"/>
+            <element ref="saml:Conditions" minOccurs="0"/>
+            <element ref="saml:Advice" minOccurs="0"/>
+            <choice minOccurs="0" maxOccurs="unbounded">
+                <element ref="saml:Statement"/>
+                <element ref="saml:AuthnStatement"/>
+                <element ref="saml:AuthzDecisionStatement"/>
+                <element ref="saml:AttributeStatement"/>
+            </choice>
+        </sequence>
+        <attribute name="Version" type="string" use="required"/>
+        <attribute name="ID" type="ID" use="required"/>
+        <attribute name="IssueInstant" type="dateTime" use="required"/>
+    </complexType>
+    <element name="Subject" type="saml:SubjectType"/>
+    <complexType name="SubjectType">
+        <choice>
+            <sequence>
+                <choice>
+                    <element ref="saml:BaseID"/>
+                    <element ref="saml:NameID"/>
+                    <element ref="saml:EncryptedID"/>
+                </choice>
+                <element ref="saml:SubjectConfirmation" minOccurs="0" maxOccurs="unbounded"/>
+            </sequence>
+            <element ref="saml:SubjectConfirmation" maxOccurs="unbounded"/>
+        </choice>
+    </complexType>
+    <element name="SubjectConfirmation" type="saml:SubjectConfirmationType"/>
+    <complexType name="SubjectConfirmationType">
+        <sequence>
+            <choice minOccurs="0">
+                <element ref="saml:BaseID"/>
+                <element ref="saml:NameID"/>
+                <element ref="saml:EncryptedID"/>
+            </choice>
+            <element ref="saml:SubjectConfirmationData" minOccurs="0"/>
+        </sequence>
+        <attribute name="Method" type="anyURI" use="required"/>
+    </complexType>
+    <element name="SubjectConfirmationData" type="saml:SubjectConfirmationDataType"/>
+    <complexType name="SubjectConfirmationDataType" mixed="true">
+        <complexContent>
+            <restriction base="anyType">
+                <sequence>
+                    <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+                <attribute name="NotBefore" type="dateTime" use="optional"/>
+                <attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
+                <attribute name="Recipient" type="anyURI" use="optional"/>
+                <attribute name="InResponseTo" type="NCName" use="optional"/>
+                <attribute name="Address" type="string" use="optional"/>
+                <anyAttribute namespace="##other" processContents="lax"/>
+            </restriction>
+        </complexContent>
+    </complexType>
+    <complexType name="KeyInfoConfirmationDataType" mixed="false">
+        <complexContent>
+            <restriction base="saml:SubjectConfirmationDataType">
+                <sequence>
+                    <element ref="ds:KeyInfo" maxOccurs="unbounded"/>
+                </sequence>
+            </restriction>
+        </complexContent>
+    </complexType>
+    <element name="Conditions" type="saml:ConditionsType"/>
+    <complexType name="ConditionsType">
+        <choice minOccurs="0" maxOccurs="unbounded">
+            <element ref="saml:Condition"/>
+            <element ref="saml:AudienceRestriction"/>
+            <element ref="saml:OneTimeUse"/>
+            <element ref="saml:ProxyRestriction"/>
+        </choice>
+        <attribute name="NotBefore" type="dateTime" use="optional"/>
+        <attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
+    </complexType>
+    <element name="Condition" type="saml:ConditionAbstractType"/>
+    <complexType name="ConditionAbstractType" abstract="true"/>
+    <element name="AudienceRestriction" type="saml:AudienceRestrictionType"/>
+    <complexType name="AudienceRestrictionType">
+        <complexContent>
+            <extension base="saml:ConditionAbstractType">
+                <sequence>
+                    <element ref="saml:Audience" maxOccurs="unbounded"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="Audience" type="anyURI"/>
+    <element name="OneTimeUse" type="saml:OneTimeUseType" />
+    <complexType name="OneTimeUseType">
+        <complexContent>
+            <extension base="saml:ConditionAbstractType"/>
+        </complexContent>
+    </complexType>
+    <element name="ProxyRestriction" type="saml:ProxyRestrictionType"/>
+    <complexType name="ProxyRestrictionType">
+    <complexContent>
+        <extension base="saml:ConditionAbstractType">
+            <sequence>
+                <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
+            </sequence>
+            <attribute name="Count" type="nonNegativeInteger" use="optional"/>
+        </extension>
+    </complexContent>
+    </complexType>
+    <element name="Advice" type="saml:AdviceType"/>
+    <complexType name="AdviceType">
+        <choice minOccurs="0" maxOccurs="unbounded">
+            <element ref="saml:AssertionIDRef"/>
+            <element ref="saml:AssertionURIRef"/>
+            <element ref="saml:Assertion"/>
+            <element ref="saml:EncryptedAssertion"/>
+            <any namespace="##other" processContents="lax"/>
+        </choice>
+    </complexType>
+    <element name="EncryptedAssertion" type="saml:EncryptedElementType"/>
+    <element name="Statement" type="saml:StatementAbstractType"/>
+    <complexType name="StatementAbstractType" abstract="true"/>
+    <element name="AuthnStatement" type="saml:AuthnStatementType"/>
+    <complexType name="AuthnStatementType">
+        <complexContent>
+            <extension base="saml:StatementAbstractType">
+                <sequence>
+                    <element ref="saml:SubjectLocality" minOccurs="0"/>
+                    <element ref="saml:AuthnContext"/>
+                </sequence>
+                <attribute name="AuthnInstant" type="dateTime" use="required"/>
+                <attribute name="SessionIndex" type="string" use="optional"/>
+                <attribute name="SessionNotOnOrAfter" type="dateTime" use="optional"/>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="SubjectLocality" type="saml:SubjectLocalityType"/>
+    <complexType name="SubjectLocalityType">
+        <attribute name="Address" type="string" use="optional"/>
+        <attribute name="DNSName" type="string" use="optional"/>
+    </complexType>
+    <element name="AuthnContext" type="saml:AuthnContextType"/>
+    <complexType name="AuthnContextType">
+        <sequence>
+            <choice>
+                <sequence>
+                    <element ref="saml:AuthnContextClassRef"/>
+                    <choice minOccurs="0">
+                        <element ref="saml:AuthnContextDecl"/>
+                        <element ref="saml:AuthnContextDeclRef"/>
+                    </choice>
+                </sequence>
+                <choice>
+                    <element ref="saml:AuthnContextDecl"/>
+                    <element ref="saml:AuthnContextDeclRef"/>
+                </choice>
+            </choice>
+            <element ref="saml:AuthenticatingAuthority" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+    </complexType>
+    <element name="AuthnContextClassRef" type="anyURI"/>
+    <element name="AuthnContextDeclRef" type="anyURI"/>
+    <element name="AuthnContextDecl" type="anyType"/>
+    <element name="AuthenticatingAuthority" type="anyURI"/>
+    <element name="AuthzDecisionStatement" type="saml:AuthzDecisionStatementType"/>
+    <complexType name="AuthzDecisionStatementType">
+        <complexContent>
+            <extension base="saml:StatementAbstractType">
+                <sequence>
+                    <element ref="saml:Action" maxOccurs="unbounded"/>
+                    <element ref="saml:Evidence" minOccurs="0"/>
+                </sequence>
+                <attribute name="Resource" type="anyURI" use="required"/>
+                <attribute name="Decision" type="saml:DecisionType" use="required"/>
+            </extension>
+        </complexContent>
+    </complexType>
+    <simpleType name="DecisionType">
+        <restriction base="string">
+            <enumeration value="Permit"/>
+            <enumeration value="Deny"/>
+            <enumeration value="Indeterminate"/>
+        </restriction>
+    </simpleType>
+    <element name="Action" type="saml:ActionType"/>
+    <complexType name="ActionType">
+        <simpleContent>
+            <extension base="string">
+                <attribute name="Namespace" type="anyURI" use="required"/>
+            </extension>
+        </simpleContent>
+    </complexType>
+    <element name="Evidence" type="saml:EvidenceType"/>
+    <complexType name="EvidenceType">
+        <choice maxOccurs="unbounded">
+            <element ref="saml:AssertionIDRef"/>
+            <element ref="saml:AssertionURIRef"/>
+            <element ref="saml:Assertion"/>
+            <element ref="saml:EncryptedAssertion"/>
+        </choice>
+    </complexType>
+    <element name="AttributeStatement" type="saml:AttributeStatementType"/>
+    <complexType name="AttributeStatementType">
+        <complexContent>
+            <extension base="saml:StatementAbstractType">
+                <choice maxOccurs="unbounded">
+                    <element ref="saml:Attribute"/>
+                    <element ref="saml:EncryptedAttribute"/>
+                </choice>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="Attribute" type="saml:AttributeType"/>
+    <complexType name="AttributeType">
+        <sequence>
+            <element ref="saml:AttributeValue" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="Name" type="string" use="required"/>
+        <attribute name="NameFormat" type="anyURI" use="optional"/>
+        <attribute name="FriendlyName" type="string" use="optional"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>
+    <element name="AttributeValue" type="anyType" nillable="true"/>
+    <element name="EncryptedAttribute" type="saml:EncryptedElementType"/>
+</schema>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/schema/saml-schema-metadata-2.0.xsd b/mda-distribution-0.10.0/doc/wiki/path/to/schema/saml-schema-metadata-2.0.xsd
new file mode 100644
index 0000000..378dbd1
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/schema/saml-schema-metadata-2.0.xsd
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema
+    targetNamespace="urn:oasis:names:tc:SAML:2.0:metadata"
+    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
+    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="unqualified"
+    attributeFormDefault="unqualified"
+    blockDefault="substitution"
+    version="2.0">
+    <import namespace="http://www.w3.org/2000/09/xmldsig#"
+        schemaLocation="xmldsig-core-schema.xsd"/>
+    <import namespace="http://www.w3.org/2001/04/xmlenc#"
+        schemaLocation="xenc-schema.xsd"/>
+    <import namespace="urn:oasis:names:tc:SAML:2.0:assertion"
+        schemaLocation="saml-schema-assertion-2.0.xsd"/>
+    <import namespace="http://www.w3.org/XML/1998/namespace"
+        schemaLocation="xml.xsd"/>
+    <annotation>
+        <documentation>
+            Document identifier: saml-schema-metadata-2.0
+            Location: http://docs.oasis-open.org/security/saml/v2.0/
+            Revision history:
+              V2.0 (March, 2005):
+                Schema for SAML metadata, first published in SAML 2.0.
+        </documentation>
+    </annotation>
+
+    <simpleType name="entityIDType">
+        <restriction base="anyURI">
+            <maxLength value="1024"/>
+        </restriction>
+    </simpleType>
+    <complexType name="localizedNameType">
+        <simpleContent>
+            <extension base="string">
+                <attribute ref="xml:lang" use="required"/>
+            </extension>
+        </simpleContent>
+    </complexType>
+    <complexType name="localizedURIType">
+        <simpleContent>
+            <extension base="anyURI">
+                <attribute ref="xml:lang" use="required"/>
+            </extension>
+        </simpleContent>
+    </complexType>
+
+    <element name="Extensions" type="md:ExtensionsType"/>
+    <complexType final="#all" name="ExtensionsType">
+        <sequence>
+            <any namespace="##other" processContents="lax" maxOccurs="unbounded"/>
+        </sequence>
+    </complexType>
+
+    <complexType name="EndpointType">
+        <sequence>
+            <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="Binding" type="anyURI" use="required"/>
+        <attribute name="Location" type="anyURI" use="required"/>
+        <attribute name="ResponseLocation" type="anyURI" use="optional"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>
+
+    <complexType name="IndexedEndpointType">
+        <complexContent>
+            <extension base="md:EndpointType">
+                <attribute name="index" type="unsignedShort" use="required"/>
+                <attribute name="isDefault" type="boolean" use="optional"/>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <element name="EntitiesDescriptor" type="md:EntitiesDescriptorType"/>
+    <complexType name="EntitiesDescriptorType">
+        <sequence>
+            <element ref="ds:Signature" minOccurs="0"/>
+            <element ref="md:Extensions" minOccurs="0"/>
+            <choice minOccurs="1" maxOccurs="unbounded">
+                <element ref="md:EntityDescriptor"/>
+                <element ref="md:EntitiesDescriptor"/>
+            </choice>
+        </sequence>
+        <attribute name="validUntil" type="dateTime" use="optional"/>
+        <attribute name="cacheDuration" type="duration" use="optional"/>
+        <attribute name="ID" type="ID" use="optional"/>
+        <attribute name="Name" type="string" use="optional"/>
+    </complexType>
+
+    <element name="EntityDescriptor" type="md:EntityDescriptorType"/>
+    <complexType name="EntityDescriptorType">
+        <sequence>
+            <element ref="ds:Signature" minOccurs="0"/>
+            <element ref="md:Extensions" minOccurs="0"/>
+            <choice>
+                <choice maxOccurs="unbounded">
+                    <element ref="md:RoleDescriptor"/>
+                    <element ref="md:IDPSSODescriptor"/>
+                    <element ref="md:SPSSODescriptor"/>
+                    <element ref="md:AuthnAuthorityDescriptor"/>
+                    <element ref="md:AttributeAuthorityDescriptor"/>
+                    <element ref="md:PDPDescriptor"/>
+                </choice>
+                <element ref="md:AffiliationDescriptor"/>
+            </choice>
+            <element ref="md:Organization" minOccurs="0"/>
+            <element ref="md:ContactPerson" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="md:AdditionalMetadataLocation" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="entityID" type="md:entityIDType" use="required"/>
+        <attribute name="validUntil" type="dateTime" use="optional"/>
+        <attribute name="cacheDuration" type="duration" use="optional"/>
+        <attribute name="ID" type="ID" use="optional"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>
+
+    <element name="Organization" type="md:OrganizationType"/>
+    <complexType name="OrganizationType">
+        <sequence>
+            <element ref="md:Extensions" minOccurs="0"/>
+            <element ref="md:OrganizationName" maxOccurs="unbounded"/>
+            <element ref="md:OrganizationDisplayName" maxOccurs="unbounded"/>
+            <element ref="md:OrganizationURL" maxOccurs="unbounded"/>
+        </sequence>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>
+    <element name="OrganizationName" type="md:localizedNameType"/>
+    <element name="OrganizationDisplayName" type="md:localizedNameType"/>
+    <element name="OrganizationURL" type="md:localizedURIType"/>
+    <element name="ContactPerson" type="md:ContactType"/>
+    <complexType name="ContactType">
+        <sequence>
+            <element ref="md:Extensions" minOccurs="0"/>
+            <element ref="md:Company" minOccurs="0"/>
+            <element ref="md:GivenName" minOccurs="0"/>
+            <element ref="md:SurName" minOccurs="0"/>
+            <element ref="md:EmailAddress" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="md:TelephoneNumber" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="contactType" type="md:ContactTypeType" use="required"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>
+    <element name="Company" type="string"/>
+    <element name="GivenName" type="string"/>
+    <element name="SurName" type="string"/>
+    <element name="EmailAddress" type="anyURI"/>
+    <element name="TelephoneNumber" type="string"/>
+    <simpleType name="ContactTypeType">
+        <restriction base="string">
+            <enumeration value="technical"/>
+            <enumeration value="support"/>
+            <enumeration value="administrative"/>
+            <enumeration value="billing"/>
+            <enumeration value="other"/>
+        </restriction>
+    </simpleType>
+
+    <element name="AdditionalMetadataLocation" type="md:AdditionalMetadataLocationType"/>
+    <complexType name="AdditionalMetadataLocationType">
+        <simpleContent>
+            <extension base="anyURI">
+                <attribute name="namespace" type="anyURI" use="required"/>
+            </extension>
+        </simpleContent>
+    </complexType>
+
+    <element name="RoleDescriptor" type="md:RoleDescriptorType"/>
+    <complexType name="RoleDescriptorType" abstract="true">
+        <sequence>
+            <element ref="ds:Signature" minOccurs="0"/>
+            <element ref="md:Extensions" minOccurs="0"/>
+            <element ref="md:KeyDescriptor" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="md:Organization" minOccurs="0"/>
+            <element ref="md:ContactPerson" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="ID" type="ID" use="optional"/>
+        <attribute name="validUntil" type="dateTime" use="optional"/>
+        <attribute name="cacheDuration" type="duration" use="optional"/>
+        <attribute name="protocolSupportEnumeration" type="md:anyURIListType" use="required"/>
+        <attribute name="errorURL" type="anyURI" use="optional"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>
+    <simpleType name="anyURIListType">
+        <list itemType="anyURI"/>
+    </simpleType>
+
+    <element name="KeyDescriptor" type="md:KeyDescriptorType"/>
+    <complexType name="KeyDescriptorType">
+        <sequence>
+            <element ref="ds:KeyInfo"/>
+            <element ref="md:EncryptionMethod" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="use" type="md:KeyTypes" use="optional"/>
+    </complexType>
+    <simpleType name="KeyTypes">
+        <restriction base="string">
+            <enumeration value="encryption"/>
+            <enumeration value="signing"/>
+        </restriction>
+    </simpleType>
+    <element name="EncryptionMethod" type="xenc:EncryptionMethodType"/>
+
+    <complexType name="SSODescriptorType" abstract="true">
+        <complexContent>
+            <extension base="md:RoleDescriptorType">
+                <sequence>
+                    <element ref="md:ArtifactResolutionService" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:SingleLogoutService" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:ManageNameIDService" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="ArtifactResolutionService" type="md:IndexedEndpointType"/>
+    <element name="SingleLogoutService" type="md:EndpointType"/>
+    <element name="ManageNameIDService" type="md:EndpointType"/>
+    <element name="NameIDFormat" type="anyURI"/>
+
+    <element name="IDPSSODescriptor" type="md:IDPSSODescriptorType"/>
+    <complexType name="IDPSSODescriptorType">
+        <complexContent>
+            <extension base="md:SSODescriptorType">
+                <sequence>
+                    <element ref="md:SingleSignOnService" maxOccurs="unbounded"/>
+                    <element ref="md:NameIDMappingService" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:AssertionIDRequestService" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:AttributeProfile" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="saml:Attribute" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+                <attribute name="WantAuthnRequestsSigned" type="boolean" use="optional"/>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="SingleSignOnService" type="md:EndpointType"/>
+    <element name="NameIDMappingService" type="md:EndpointType"/>
+    <element name="AssertionIDRequestService" type="md:EndpointType"/>
+    <element name="AttributeProfile" type="anyURI"/>
+
+    <element name="SPSSODescriptor" type="md:SPSSODescriptorType"/>
+    <complexType name="SPSSODescriptorType">
+        <complexContent>
+            <extension base="md:SSODescriptorType">
+                <sequence>
+                    <element ref="md:AssertionConsumerService" maxOccurs="unbounded"/>
+                    <element ref="md:AttributeConsumingService" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+                <attribute name="AuthnRequestsSigned" type="boolean" use="optional"/>
+                <attribute name="WantAssertionsSigned" type="boolean" use="optional"/>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="AssertionConsumerService" type="md:IndexedEndpointType"/>
+    <element name="AttributeConsumingService" type="md:AttributeConsumingServiceType"/>
+    <complexType name="AttributeConsumingServiceType">
+        <sequence>
+            <element ref="md:ServiceName" maxOccurs="unbounded"/>
+            <element ref="md:ServiceDescription" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="md:RequestedAttribute" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="index" type="unsignedShort" use="required"/>
+        <attribute name="isDefault" type="boolean" use="optional"/>
+    </complexType>
+    <element name="ServiceName" type="md:localizedNameType"/>
+    <element name="ServiceDescription" type="md:localizedNameType"/>
+    <element name="RequestedAttribute" type="md:RequestedAttributeType"/>
+    <complexType name="RequestedAttributeType">
+        <complexContent>
+            <extension base="saml:AttributeType">
+                <attribute name="isRequired" type="boolean" use="optional"/>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <element name="AuthnAuthorityDescriptor" type="md:AuthnAuthorityDescriptorType"/>
+    <complexType name="AuthnAuthorityDescriptorType">
+        <complexContent>
+            <extension base="md:RoleDescriptorType">
+                <sequence>
+                    <element ref="md:AuthnQueryService" maxOccurs="unbounded"/>
+                    <element ref="md:AssertionIDRequestService" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="AuthnQueryService" type="md:EndpointType"/>
+
+    <element name="PDPDescriptor" type="md:PDPDescriptorType"/>
+    <complexType name="PDPDescriptorType">
+        <complexContent>
+            <extension base="md:RoleDescriptorType">
+                <sequence>
+                    <element ref="md:AuthzService" maxOccurs="unbounded"/>
+                    <element ref="md:AssertionIDRequestService" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="AuthzService" type="md:EndpointType"/>
+
+    <element name="AttributeAuthorityDescriptor" type="md:AttributeAuthorityDescriptorType"/>
+    <complexType name="AttributeAuthorityDescriptorType">
+        <complexContent>
+            <extension base="md:RoleDescriptorType">
+                <sequence>
+                    <element ref="md:AttributeService" maxOccurs="unbounded"/>
+                    <element ref="md:AssertionIDRequestService" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="md:AttributeProfile" minOccurs="0" maxOccurs="unbounded"/>
+                    <element ref="saml:Attribute" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="AttributeService" type="md:EndpointType"/>
+
+    <element name="AffiliationDescriptor" type="md:AffiliationDescriptorType"/>
+    <complexType name="AffiliationDescriptorType">
+        <sequence>
+            <element ref="ds:Signature" minOccurs="0"/>
+            <element ref="md:Extensions" minOccurs="0"/>
+            <element ref="md:AffiliateMember" maxOccurs="unbounded"/>
+            <element ref="md:KeyDescriptor" minOccurs="0" maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="affiliationOwnerID" type="md:entityIDType" use="required"/>
+        <attribute name="validUntil" type="dateTime" use="optional"/>
+        <attribute name="cacheDuration" type="duration" use="optional"/>
+        <attribute name="ID" type="ID" use="optional"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>
+    <element name="AffiliateMember" type="md:entityIDType"/>
+</schema>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/schema/xenc-schema.xsd b/mda-distribution-0.10.0/doc/wiki/path/to/schema/xenc-schema.xsd
new file mode 100644
index 0000000..65f75ee
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/schema/xenc-schema.xsd
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+#
+# Copyright ©[2011] World Wide Web Consortium
+# (Massachusetts Institute of Technology,
+#  European Research Consortium for Informatics and Mathematics,
+#  Keio University). All Rights Reserved.
+# This work is distributed under the W3C® Software License [1] in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+# PURPOSE.
+# [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+#
+-->
+
+<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
+        xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
+        xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
+        targetNamespace='http://www.w3.org/2001/04/xmlenc#'
+        elementFormDefault='qualified'>
+
+  <import namespace='http://www.w3.org/2000/09/xmldsig#' schemaLocation='xmldsig-core-schema.xsd'/>
+
+  <complexType name='EncryptedType' abstract='true'>
+    <sequence>
+      <element name='EncryptionMethod' type='xenc:EncryptionMethodType'
+       minOccurs='0'/>
+      <element ref='ds:KeyInfo' minOccurs='0'/>
+      <element ref='xenc:CipherData'/>
+      <element ref='xenc:EncryptionProperties' minOccurs='0'/>
+    </sequence>
+    <attribute name='Id' type='ID' use='optional'/>
+    <attribute name='Type' type='anyURI' use='optional'/>
+    <attribute name='MimeType' type='string' use='optional'/>
+    <attribute name='Encoding' type='anyURI' use='optional'/>
+  </complexType>
+
+  <complexType name='EncryptionMethodType' mixed='true'>
+    <sequence>
+      <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>
+      <element name='OAEPparams' minOccurs='0' type='base64Binary'/>
+      <!-- note that optional xenc11:MGF element may be used here for
+           RSA-OAEP, when appropriate -->
+      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
+    </sequence>
+    <attribute name='Algorithm' type='anyURI' use='required'/>
+  </complexType>
+
+    <simpleType name='KeySizeType'>
+      <restriction base="integer"/>
+    </simpleType>
+
+  <element name='CipherData' type='xenc:CipherDataType'/>
+  <complexType name='CipherDataType'>
+     <choice>
+       <element name='CipherValue' type='base64Binary'/>
+       <element ref='xenc:CipherReference'/>
+     </choice>
+    </complexType>
+
+   <element name='CipherReference' type='xenc:CipherReferenceType'/>
+   <complexType name='CipherReferenceType'>
+       <choice>
+         <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>
+       </choice>
+       <attribute name='URI' type='anyURI' use='required'/>
+   </complexType>
+
+     <complexType name='TransformsType'>
+       <sequence>
+         <element ref='ds:Transform' maxOccurs='unbounded'/>
+       </sequence>
+     </complexType>
+
+
+  <element name='EncryptedData' type='xenc:EncryptedDataType'/>
+  <complexType name='EncryptedDataType'>
+    <complexContent>
+      <extension base='xenc:EncryptedType'>
+       </extension>
+    </complexContent>
+  </complexType>
+
+  <!-- Children of ds:KeyInfo -->
+
+  <element name='EncryptedKey' type='xenc:EncryptedKeyType'/>
+  <complexType name='EncryptedKeyType'>
+    <complexContent>
+      <extension base='xenc:EncryptedType'>
+        <sequence>
+          <element ref='xenc:ReferenceList' minOccurs='0'/>
+          <element name='CarriedKeyName' type='string' minOccurs='0'/>
+        </sequence>
+        <attribute name='Recipient' type='string'
+         use='optional'/>
+      </extension>
+    </complexContent>
+  </complexType>
+
+    <element name="AgreementMethod" type="xenc:AgreementMethodType"/>
+    <complexType name="AgreementMethodType" mixed="true">
+      <sequence>
+        <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
+        <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
+        <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+        <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
+        <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
+      </sequence>
+      <attribute name="Algorithm" type="anyURI" use="required"/>
+    </complexType>
+
+  <!-- End Children of ds:KeyInfo -->
+
+  <element name='ReferenceList'>
+    <complexType>
+      <choice minOccurs='1' maxOccurs='unbounded'>
+        <element name='DataReference' type='xenc:ReferenceType'/>
+        <element name='KeyReference' type='xenc:ReferenceType'/>
+      </choice>
+    </complexType>
+  </element>
+
+  <complexType name='ReferenceType'>
+    <sequence>
+      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
+    </sequence>
+    <attribute name='URI' type='anyURI' use='required'/>
+  </complexType>
+
+
+  <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>
+  <complexType name='EncryptionPropertiesType'>
+    <sequence>
+      <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>
+    </sequence>
+    <attribute name='Id' type='ID' use='optional'/>
+  </complexType>
+
+  <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>
+  <complexType name='EncryptionPropertyType' mixed='true'>
+    <choice maxOccurs='unbounded'>
+      <any namespace='##other' processContents='lax'/>
+    </choice>
+    <attribute name='Target' type='anyURI' use='optional'/>
+    <attribute name='Id' type='ID' use='optional'/>
+    <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
+  </complexType>
+
+  <!-- Children of ds:KeyValue -->
+
+  <element name="DHKeyValue" type="xenc:DHKeyValueType"/>
+  <complexType name="DHKeyValueType">
+    <sequence>
+      <sequence minOccurs="0">
+        <element name="P" type="ds:CryptoBinary"/>
+        <element name="Q" type="ds:CryptoBinary"/>
+        <element name="Generator" type="ds:CryptoBinary"/>
+      </sequence>
+      <element name="Public" type="ds:CryptoBinary"/>
+      <sequence minOccurs="0">
+        <element name="seed" type="ds:CryptoBinary"/>
+        <element name="pgenCounter" type="ds:CryptoBinary"/>
+      </sequence>
+    </sequence>
+  </complexType>
+
+  <!-- End Children of ds:KeyValue -->
+
+</schema>
+
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/schema/xml.xsd b/mda-distribution-0.10.0/doc/wiki/path/to/schema/xml.xsd
new file mode 100644
index 0000000..a6e9a7d
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/schema/xml.xsd
@@ -0,0 +1,80 @@
+<?xml version='1.0'?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en">
+
+ <xs:annotation>
+  <xs:documentation>
+   See http://www.w3.org/XML/1998/namespace.html and
+   http://www.w3.org/TR/REC-xml for information about this namespace.
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>This schema defines attributes and an attribute group
+        suitable for use by
+        schemas wishing to allow xml:base, xml:lang or xml:space attributes
+        on elements they define.
+
+        To enable this, such a schema must import this schema
+        for the XML namespace, e.g. as follows:
+        <schema . . .>
+         . . .
+         <import namespace="http://www.w3.org/XML/1998/namespace"
+                    schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
+
+        Subsequently, qualified reference to any of the attributes
+        or the group defined below will have the desired effect, e.g.
+
+        <type . . .>
+         . . .
+         <attributeGroup ref="xml:specialAttrs"/>
+
+         will define a type which will schema-validate an instance
+         element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>In keeping with the XML Schema WG's standard versioning
+   policy, this schema document will persist at
+   http://www.w3.org/2001/03/xml.xsd.
+   At the date of issue it can also be found at
+   http://www.w3.org/2001/xml.xsd.
+   The schema document at that URI may however change in the future,
+   in order to remain compatible with the latest version of XML Schema
+   itself.  In other words, if the XML Schema namespace changes, the version
+   of this document at
+   http://www.w3.org/2001/xml.xsd will change
+   accordingly; the version at
+   http://www.w3.org/2001/03/xml.xsd will not change.
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang" type="xs:language">
+  <xs:annotation>
+   <xs:documentation>In due course, we should install the relevant ISO 2- and 3-letter
+         codes as the enumerated possible values . . .</xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="space" default="preserve">
+  <xs:simpleType>
+   <xs:restriction base="xs:NCName">
+    <xs:enumeration value="default"/>
+    <xs:enumeration value="preserve"/>
+   </xs:restriction>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+  <xs:annotation>
+   <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
+                     information about this attribute.</xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+  <xs:attribute ref="xml:base"/>
+  <xs:attribute ref="xml:lang"/>
+  <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+
+</xs:schema>
diff --git a/mda-distribution-0.10.0/doc/wiki/path/to/schema/xmldsig-core-schema.xsd b/mda-distribution-0.10.0/doc/wiki/path/to/schema/xmldsig-core-schema.xsd
new file mode 100644
index 0000000..8a8e232
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/path/to/schema/xmldsig-core-schema.xsd
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Schema for XML Signatures
+    http://www.w3.org/2000/09/xmldsig#
+    $Revision: 1.1 $ on $Date: 2005/03/16 17:40:08 $ by $Author: iay $
+
+    Copyright 2001 The Internet Society and W3C (Massachusetts Institute
+    of Technology, Institut National de Recherche en Informatique et en
+    Automatique, Keio University). All Rights Reserved.
+    http://www.w3.org/Consortium/Legal/
+
+    This document is governed by the W3C Software License [1] as described
+    in the FAQ [2].
+
+    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+-->
+
+
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+        targetNamespace="http://www.w3.org/2000/09/xmldsig#"
+        version="0.1" elementFormDefault="qualified">
+
+<!-- Basic Types Defined for Signatures -->
+
+<simpleType name="CryptoBinary">
+  <restriction base="base64Binary">
+  </restriction>
+</simpleType>
+
+<!-- Start Signature -->
+
+<element name="Signature" type="ds:SignatureType"/>
+<complexType name="SignatureType">
+  <sequence>
+    <element ref="ds:SignedInfo"/>
+    <element ref="ds:SignatureValue"/>
+    <element ref="ds:KeyInfo" minOccurs="0"/>
+    <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+  <element name="SignatureValue" type="ds:SignatureValueType"/>
+  <complexType name="SignatureValueType">
+    <simpleContent>
+      <extension base="base64Binary">
+        <attribute name="Id" type="ID" use="optional"/>
+      </extension>
+    </simpleContent>
+  </complexType>
+
+<!-- Start SignedInfo -->
+
+<element name="SignedInfo" type="ds:SignedInfoType"/>
+<complexType name="SignedInfoType">
+  <sequence>
+    <element ref="ds:CanonicalizationMethod"/>
+    <element ref="ds:SignatureMethod"/>
+    <element ref="ds:Reference" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+  <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
+  <complexType name="CanonicalizationMethodType" mixed="true">
+    <sequence>
+      <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
+      <!-- (0,unbounded) elements from (1,1) namespace -->
+    </sequence>
+    <attribute name="Algorithm" type="anyURI" use="required"/>
+  </complexType>
+
+  <element name="SignatureMethod" type="ds:SignatureMethodType"/>
+  <complexType name="SignatureMethodType" mixed="true">
+    <sequence>
+      <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
+      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+      <!-- (0,unbounded) elements from (1,1) external namespace -->
+    </sequence>
+    <attribute name="Algorithm" type="anyURI" use="required"/>
+  </complexType>
+
+<!-- Start Reference -->
+
+<element name="Reference" type="ds:ReferenceType"/>
+<complexType name="ReferenceType">
+  <sequence>
+    <element ref="ds:Transforms" minOccurs="0"/>
+    <element ref="ds:DigestMethod"/>
+    <element ref="ds:DigestValue"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+  <attribute name="URI" type="anyURI" use="optional"/>
+  <attribute name="Type" type="anyURI" use="optional"/>
+</complexType>
+
+  <element name="Transforms" type="ds:TransformsType"/>
+  <complexType name="TransformsType">
+    <sequence>
+      <element ref="ds:Transform" maxOccurs="unbounded"/>
+    </sequence>
+  </complexType>
+
+  <element name="Transform" type="ds:TransformType"/>
+  <complexType name="TransformType" mixed="true">
+    <choice minOccurs="0" maxOccurs="unbounded">
+      <any namespace="##other" processContents="lax"/>
+      <!-- (1,1) elements from (0,unbounded) namespaces -->
+      <element name="XPath" type="string"/>
+    </choice>
+    <attribute name="Algorithm" type="anyURI" use="required"/>
+  </complexType>
+
+<!-- End Reference -->
+
+<element name="DigestMethod" type="ds:DigestMethodType"/>
+<complexType name="DigestMethodType" mixed="true">
+  <sequence>
+    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Algorithm" type="anyURI" use="required"/>
+</complexType>
+
+<element name="DigestValue" type="ds:DigestValueType"/>
+<simpleType name="DigestValueType">
+  <restriction base="base64Binary"/>
+</simpleType>
+
+<!-- End SignedInfo -->
+
+<!-- Start KeyInfo -->
+
+<element name="KeyInfo" type="ds:KeyInfoType"/>
+<complexType name="KeyInfoType" mixed="true">
+  <choice maxOccurs="unbounded">
+    <element ref="ds:KeyName"/>
+    <element ref="ds:KeyValue"/>
+    <element ref="ds:RetrievalMethod"/>
+    <element ref="ds:X509Data"/>
+    <element ref="ds:PGPData"/>
+    <element ref="ds:SPKIData"/>
+    <element ref="ds:MgmtData"/>
+    <any processContents="lax" namespace="##other"/>
+    <!-- (1,1) elements from (0,unbounded) namespaces -->
+  </choice>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+  <element name="KeyName" type="string"/>
+  <element name="MgmtData" type="string"/>
+
+  <element name="KeyValue" type="ds:KeyValueType"/>
+  <complexType name="KeyValueType" mixed="true">
+   <choice>
+     <element ref="ds:DSAKeyValue"/>
+     <element ref="ds:RSAKeyValue"/>
+     <any namespace="##other" processContents="lax"/>
+   </choice>
+  </complexType>
+
+  <element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
+  <complexType name="RetrievalMethodType">
+    <sequence>
+      <element ref="ds:Transforms" minOccurs="0"/>
+    </sequence>
+    <attribute name="URI" type="anyURI"/>
+    <attribute name="Type" type="anyURI" use="optional"/>
+  </complexType>
+
+<!-- Start X509Data -->
+
+<element name="X509Data" type="ds:X509DataType"/>
+<complexType name="X509DataType">
+  <sequence maxOccurs="unbounded">
+    <choice>
+      <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
+      <element name="X509SKI" type="base64Binary"/>
+      <element name="X509SubjectName" type="string"/>
+      <element name="X509Certificate" type="base64Binary"/>
+      <element name="X509CRL" type="base64Binary"/>
+      <any namespace="##other" processContents="lax"/>
+    </choice>
+  </sequence>
+</complexType>
+
+<complexType name="X509IssuerSerialType">
+  <sequence>
+    <element name="X509IssuerName" type="string"/>
+    <element name="X509SerialNumber" type="integer"/>
+  </sequence>
+</complexType>
+
+<!-- End X509Data -->
+
+<!-- Begin PGPData -->
+
+<element name="PGPData" type="ds:PGPDataType"/>
+<complexType name="PGPDataType">
+  <choice>
+    <sequence>
+      <element name="PGPKeyID" type="base64Binary"/>
+      <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
+      <any namespace="##other" processContents="lax" minOccurs="0"
+       maxOccurs="unbounded"/>
+    </sequence>
+    <sequence>
+      <element name="PGPKeyPacket" type="base64Binary"/>
+      <any namespace="##other" processContents="lax" minOccurs="0"
+       maxOccurs="unbounded"/>
+    </sequence>
+  </choice>
+</complexType>
+
+<!-- End PGPData -->
+
+<!-- Begin SPKIData -->
+
+<element name="SPKIData" type="ds:SPKIDataType"/>
+<complexType name="SPKIDataType">
+  <sequence maxOccurs="unbounded">
+    <element name="SPKISexp" type="base64Binary"/>
+    <any namespace="##other" processContents="lax" minOccurs="0"/>
+  </sequence>
+</complexType>
+
+<!-- End SPKIData -->
+
+<!-- End KeyInfo -->
+
+<!-- Start Object (Manifest, SignatureProperty) -->
+
+<element name="Object" type="ds:ObjectType"/>
+<complexType name="ObjectType" mixed="true">
+  <sequence minOccurs="0" maxOccurs="unbounded">
+    <any namespace="##any" processContents="lax"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+  <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
+  <attribute name="Encoding" type="anyURI" use="optional"/>
+</complexType>
+
+<element name="Manifest" type="ds:ManifestType"/>
+<complexType name="ManifestType">
+  <sequence>
+    <element ref="ds:Reference" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+<element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
+<complexType name="SignaturePropertiesType">
+  <sequence>
+    <element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
+  </sequence>
+  <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+   <element name="SignatureProperty" type="ds:SignaturePropertyType"/>
+   <complexType name="SignaturePropertyType" mixed="true">
+     <choice maxOccurs="unbounded">
+       <any namespace="##other" processContents="lax"/>
+       <!-- (1,1) elements from (1,unbounded) namespaces -->
+     </choice>
+     <attribute name="Target" type="anyURI" use="required"/>
+     <attribute name="Id" type="ID" use="optional"/>
+   </complexType>
+
+<!-- End Object (Manifest, SignatureProperty) -->
+
+<!-- Start Algorithm Parameters -->
+
+<simpleType name="HMACOutputLengthType">
+  <restriction base="integer"/>
+</simpleType>
+
+<!-- Start KeyValue Element-types -->
+
+<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
+<complexType name="DSAKeyValueType">
+  <sequence>
+    <sequence minOccurs="0">
+      <element name="P" type="ds:CryptoBinary"/>
+      <element name="Q" type="ds:CryptoBinary"/>
+    </sequence>
+    <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
+    <element name="Y" type="ds:CryptoBinary"/>
+    <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
+    <sequence minOccurs="0">
+      <element name="Seed" type="ds:CryptoBinary"/>
+      <element name="PgenCounter" type="ds:CryptoBinary"/>
+    </sequence>
+  </sequence>
+</complexType>
+
+<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
+<complexType name="RSAKeyValueType">
+  <sequence>
+    <element name="Modulus" type="ds:CryptoBinary"/>
+    <element name="Exponent" type="ds:CryptoBinary"/>
+  </sequence>
+</complexType>
+
+<!-- End KeyValue Element-types -->
+
+<!-- End Signature -->
+
+</schema>
diff --git a/mda-distribution-0.10.0/doc/wiki/per-entity.xml b/mda-distribution-0.10.0/doc/wiki/per-entity.xml
new file mode 100644
index 0000000..614a137
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/per-entity.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans default-init-method="initialize"
+       xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+    <!-- Import the Standard bean definition resource. -->
+    <!-- See https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/3162439683/Standard+bean+definition+resource -->
+    <import resource="classpath:net/shibboleth/metadata/beans.xml"/>
+
+    <!-- First, we define the stages for our pipeline -->
+    <bean id="source" parent="mda.DOMFilesystemSourceStage">
+        <property name="id" value="source"/>
+        <property name="parserPool">
+            <bean parent="mda.BasicParserPool"/>
+        </property>
+        <property name="source">
+            <bean class="java.io.File">
+                <constructor-arg value="path/to/input/aggregate.xml"/>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="disassembleEntitiesDescriptor" parent="mda.EntitiesDescriptorDisassemblerStage">
+        <property name="id" value="disassembleEntitiesDescriptor"/>
+    </bean>
+
+    <bean id="populateItemIds" parent="mda.EntityDescriptorItemIdPopulationStage">
+        <property name="id" value="populateItemIds"/>
+    </bean>
+
+    <bean id="generateContentReferenceId" parent="mda.GenerateIdStage">
+        <property name="id" value="generateContentReferenceId" />
+    </bean>
+
+    <bean id="signMetadata" parent="mda.XMLSignatureSigningStage">
+        <property name="id" value="signMetadata"/>
+        <property name="privateKey">
+            <bean parent="mda.PrivateKeyFactoryBean">
+                <property name="resource">
+                    <bean class="org.springframework.core.io.FileSystemResource">
+                        <constructor-arg>
+                            <bean class="java.io.File">
+                                <constructor-arg value="path/to/secrets/private-key.pem"/>
+                            </bean>
+                        </constructor-arg>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="serialize" parent="mda.MultiOutputSerializationStage">
+        <property name="id" value="serializeIdPs"/>
+        <property name="serializer">
+            <bean id="domSerializer" parent="mda.DOMElementSerializer"/>
+        </property>
+        <property name="outputStrategy">
+            <bean parent="mda.FilesInDirectoryMultiOutputStrategy">
+                <property name="nameSuffix" value=".xml"/>
+                <property name="namePrefix" value="_"/>
+                <property name="directory">
+                    <bean class="java.io.File">
+                        <constructor-arg value="path/to/output"/>
+                    </bean>
+                </property>
+                <property name="nameTransformer">
+                    <bean parent="mda.SHA1StringTransformer"/>
+                </property>
+            </bean>
+        </property>
+    </bean>
+
+    <!-- Next we define a pipeline with all the stages in it -->
+    <bean id="main" parent="mda.SimplePipeline">
+        <property name="id" value="main"/>
+        <property name="stages">
+            <list>
+                <ref bean="source"/>
+                <ref bean="disassembleEntitiesDescriptor"/>
+                <ref bean="populateItemIds"/>
+                <ref bean="generateContentReferenceId"/>
+                <ref bean="signMetadata"/>
+                <ref bean="serialize"/>
+            </list>
+        </property>
+    </bean>
+</beans>
diff --git a/mda-distribution-0.10.0/doc/wiki/run-all-examples.sh b/mda-distribution-0.10.0/doc/wiki/run-all-examples.sh
new file mode 100644
index 0000000..401a69d
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/run-all-examples.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/sh
+
+set -e
+
+./make-keys.sh
+
+rm -rf softhsm/*
+source ./setup-softhsm.sh
+
+echo Aggregate and Sign...
+mda.sh aggregate-and-sign.xml main
+echo Filter Aggregate...
+mda.sh filter-aggregate.xml main
+echo Aggregate and Republish...
+mda.sh aggregate-and-republish.xml main
+echo Sign Using Token...
+mda.sh sign-using-token.xml main
+echo Per-entity metadata...
+mda.sh per-entity.xml main
+echo Discovery feed...
+mda.sh discofeed.xml main
diff --git a/mda-distribution-0.10.0/doc/wiki/setup-softhsm.sh b/mda-distribution-0.10.0/doc/wiki/setup-softhsm.sh
new file mode 100644
index 0000000..7363ae5
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/setup-softhsm.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/sh
+
+# Clear any previous softhsm setup
+rm -rf softhsm
+mkdir -p softhsm/tokens
+
+# Create configuration file
+export SOFTHSM2_CONF=$PWD/softhsm/softhsm2.conf
+echo "directories.tokendir = $PWD/softhsm/tokens" >$SOFTHSM2_CONF
+
+# Initialise the token
+softhsm2-util --init-token --slot 0 --label "test" \
+    --so-pin 1234 \
+    --pin 12341234
+
+# Load the credential
+keytool -importkeystore --addprovider SunPKCS11 -providerarg path/to/input/pkcs11-softhsm.cfg \
+    -srcstoretype pkcs12 -srckeystore path/to/secrets/self-signed.p12 -srcstorepass password \
+    -deststoretype PKCS11 -destkeystore NONE -deststorepass 12341234
+
+keytool -list --addprovider SunPKCS11 -providerarg path/to/input/pkcs11-softhsm.cfg \
+    -storetype PKCS11 -keystore NONE -storepass 12341234
diff --git a/mda-distribution-0.10.0/doc/wiki/sign-using-token.xml b/mda-distribution-0.10.0/doc/wiki/sign-using-token.xml
new file mode 100644
index 0000000..50577d7
--- /dev/null
+++ b/mda-distribution-0.10.0/doc/wiki/sign-using-token.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans default-init-method="initialize"
+       xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+    <!-- Import the Standard bean definition resource. -->
+    <!-- See https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/3162439683/Standard+bean+definition+resource -->
+    <import resource="classpath:net/shibboleth/metadata/beans.xml"/>
+
+    <!-- First, we define the stages for our pipeline -->
+    <bean id="source" parent="mda.DOMFilesystemSourceStage">
+        <property name="id" value="source"/>
+        <property name="parserPool">
+            <bean parent="mda.BasicParserPool"/>
+        </property>
+        <property name="source">
+            <bean class="java.io.File">
+                <constructor-arg value="path/to/input/aggregate.xml"/>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="generateContentReferenceId" parent="mda.GenerateIdStage">
+        <property name="id" value="generateContentReferenceId" />
+    </bean>
+
+    <bean id="signMetadata" parent="mda.XMLSignatureSigningStage">
+        <property name="id" value="signMetadata"/>
+        <property name="certificates">
+            <bean parent="mda.X509CertificateFactoryBean">
+                <property name="resource" value="file:path/to/secrets/self-signed.pem"/>
+            </bean>
+        </property>
+        <property name="privateKey">
+            <bean parent="mda.PKCS11PrivateKeyFactoryBean">
+                <property name="pkcs11Config" value="path/to/input/pkcs11-softhsm.cfg"/>
+                <property name="keyPassword" value="12341234"/>
+                <property name="keyAlias" value="key10"/>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="serialize" parent="mda.SerializationStage">
+        <property name="id" value="serializeIdPs"/>
+        <property name="outputFile">
+            <bean class="java.io.File">
+                <constructor-arg value="path/to/output/signed-with-token.xml"/>
+            </bean>
+        </property>
+        <property name="serializer">
+            <bean id="domSerializer" parent="mda.DOMElementSerializer"/>
+        </property>
+    </bean>
+
+    <!-- Next we define a pipeline with all the stages in it -->
+    <bean id="main" parent="mda.SimplePipeline">
+        <property name="id" value="main"/>
+        <property name="stages">
+            <list>
+                <ref bean="source"/>
+                <ref bean="generateContentReferenceId" />
+                <ref bean="signMetadata"/>
+                <ref bean="serialize" />
+            </list>
+        </property>
+    </bean>
+
+</beans>
diff --git a/mda-distribution-0.10.0/lib/bcpkix-jdk18on-1.77.jar b/mda-distribution-0.10.0/lib/bcpkix-jdk18on-1.77.jar
new file mode 100644
index 0000000..e8b6021
Binary files /dev/null and b/mda-distribution-0.10.0/lib/bcpkix-jdk18on-1.77.jar differ
diff --git a/mda-distribution-0.10.0/lib/bcprov-jdk18on-1.77.jar b/mda-distribution-0.10.0/lib/bcprov-jdk18on-1.77.jar
new file mode 100644
index 0000000..651d2fb
Binary files /dev/null and b/mda-distribution-0.10.0/lib/bcprov-jdk18on-1.77.jar differ
diff --git a/mda-distribution-0.10.0/lib/bcutil-jdk18on-1.77.jar b/mda-distribution-0.10.0/lib/bcutil-jdk18on-1.77.jar
new file mode 100644
index 0000000..4c154e2
Binary files /dev/null and b/mda-distribution-0.10.0/lib/bcutil-jdk18on-1.77.jar differ
diff --git a/mda-distribution-0.10.0/lib/checker-qual-3.41.0.jar b/mda-distribution-0.10.0/lib/checker-qual-3.41.0.jar
new file mode 100644
index 0000000..17a85a1
Binary files /dev/null and b/mda-distribution-0.10.0/lib/checker-qual-3.41.0.jar differ
diff --git a/mda-distribution-0.10.0/lib/commons-codec-1.16.1.jar b/mda-distribution-0.10.0/lib/commons-codec-1.16.1.jar
new file mode 100644
index 0000000..f896649
Binary files /dev/null and b/mda-distribution-0.10.0/lib/commons-codec-1.16.1.jar differ
diff --git a/aggregator-cli/lib/cryptacular-1.2.4.jar b/mda-distribution-0.10.0/lib/cryptacular-1.2.6.jar
similarity index 79%
rename from aggregator-cli/lib/cryptacular-1.2.4.jar
rename to mda-distribution-0.10.0/lib/cryptacular-1.2.6.jar
index 0621416..2a30d70 100644
Binary files a/aggregator-cli/lib/cryptacular-1.2.4.jar and b/mda-distribution-0.10.0/lib/cryptacular-1.2.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/error_prone_annotations-2.23.0.jar b/mda-distribution-0.10.0/lib/error_prone_annotations-2.23.0.jar
new file mode 100644
index 0000000..c0f20d8
Binary files /dev/null and b/mda-distribution-0.10.0/lib/error_prone_annotations-2.23.0.jar differ
diff --git a/mda-distribution-0.10.0/lib/failureaccess-1.0.2.jar b/mda-distribution-0.10.0/lib/failureaccess-1.0.2.jar
new file mode 100644
index 0000000..d73ab80
Binary files /dev/null and b/mda-distribution-0.10.0/lib/failureaccess-1.0.2.jar differ
diff --git a/mda-distribution-0.10.0/lib/guava-33.0.0-jre.jar b/mda-distribution-0.10.0/lib/guava-33.0.0-jre.jar
new file mode 100644
index 0000000..e42ef63
Binary files /dev/null and b/mda-distribution-0.10.0/lib/guava-33.0.0-jre.jar differ
diff --git a/mda-distribution-0.10.0/lib/httpclient5-5.3.1.jar b/mda-distribution-0.10.0/lib/httpclient5-5.3.1.jar
new file mode 100644
index 0000000..1cf795c
Binary files /dev/null and b/mda-distribution-0.10.0/lib/httpclient5-5.3.1.jar differ
diff --git a/mda-distribution-0.10.0/lib/httpclient5-cache-5.3.1.jar b/mda-distribution-0.10.0/lib/httpclient5-cache-5.3.1.jar
new file mode 100644
index 0000000..5df6589
Binary files /dev/null and b/mda-distribution-0.10.0/lib/httpclient5-cache-5.3.1.jar differ
diff --git a/mda-distribution-0.10.0/lib/httpcore5-5.2.4.jar b/mda-distribution-0.10.0/lib/httpcore5-5.2.4.jar
new file mode 100644
index 0000000..da9c6e5
Binary files /dev/null and b/mda-distribution-0.10.0/lib/httpcore5-5.2.4.jar differ
diff --git a/mda-distribution-0.10.0/lib/httpcore5-h2-5.2.4.jar b/mda-distribution-0.10.0/lib/httpcore5-h2-5.2.4.jar
new file mode 100644
index 0000000..5b598dd
Binary files /dev/null and b/mda-distribution-0.10.0/lib/httpcore5-h2-5.2.4.jar differ
diff --git a/mda-distribution-0.10.0/lib/j2objc-annotations-2.8.jar b/mda-distribution-0.10.0/lib/j2objc-annotations-2.8.jar
new file mode 100644
index 0000000..3595c4f
Binary files /dev/null and b/mda-distribution-0.10.0/lib/j2objc-annotations-2.8.jar differ
diff --git a/mda-distribution-0.10.0/lib/jakarta.json-2.0.1.jar b/mda-distribution-0.10.0/lib/jakarta.json-2.0.1.jar
new file mode 100644
index 0000000..e6d094a
Binary files /dev/null and b/mda-distribution-0.10.0/lib/jakarta.json-2.0.1.jar differ
diff --git a/mda-distribution-0.10.0/lib/jcommander-1.81.jar b/mda-distribution-0.10.0/lib/jcommander-1.81.jar
new file mode 100644
index 0000000..699c543
Binary files /dev/null and b/mda-distribution-0.10.0/lib/jcommander-1.81.jar differ
diff --git a/aggregator-cli/lib/jsr305-3.0.2.jar b/mda-distribution-0.10.0/lib/jsr305-3.0.2.jar
similarity index 100%
rename from aggregator-cli/lib/jsr305-3.0.2.jar
rename to mda-distribution-0.10.0/lib/jsr305-3.0.2.jar
diff --git a/aggregator-cli/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar b/mda-distribution-0.10.0/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
similarity index 100%
rename from aggregator-cli/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
rename to mda-distribution-0.10.0/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
diff --git a/mda-distribution-0.10.0/lib/logback-classic-1.5.3.jar b/mda-distribution-0.10.0/lib/logback-classic-1.5.3.jar
new file mode 100644
index 0000000..9bfbe41
Binary files /dev/null and b/mda-distribution-0.10.0/lib/logback-classic-1.5.3.jar differ
diff --git a/mda-distribution-0.10.0/lib/logback-core-1.5.3.jar b/mda-distribution-0.10.0/lib/logback-core-1.5.3.jar
new file mode 100644
index 0000000..3c82e61
Binary files /dev/null and b/mda-distribution-0.10.0/lib/logback-core-1.5.3.jar differ
diff --git a/mda-distribution-0.10.0/lib/mda-cli-0.10.0.jar b/mda-distribution-0.10.0/lib/mda-cli-0.10.0.jar
new file mode 100644
index 0000000..f5bb18d
Binary files /dev/null and b/mda-distribution-0.10.0/lib/mda-cli-0.10.0.jar differ
diff --git a/mda-distribution-0.10.0/lib/mda-framework-0.10.0.jar b/mda-distribution-0.10.0/lib/mda-framework-0.10.0.jar
new file mode 100644
index 0000000..a7d3848
Binary files /dev/null and b/mda-distribution-0.10.0/lib/mda-framework-0.10.0.jar differ
diff --git a/mda-distribution-0.10.0/lib/mda-keylists-rsa-0.10.0.jar b/mda-distribution-0.10.0/lib/mda-keylists-rsa-0.10.0.jar
new file mode 100644
index 0000000..a3df006
Binary files /dev/null and b/mda-distribution-0.10.0/lib/mda-keylists-rsa-0.10.0.jar differ
diff --git a/mda-distribution-0.10.0/lib/mda-keylists-rsa-legacy-0.10.0.jar b/mda-distribution-0.10.0/lib/mda-keylists-rsa-legacy-0.10.0.jar
new file mode 100644
index 0000000..1b6fe85
Binary files /dev/null and b/mda-distribution-0.10.0/lib/mda-keylists-rsa-legacy-0.10.0.jar differ
diff --git a/mda-distribution-0.10.0/lib/micrometer-commons-1.12.5.jar b/mda-distribution-0.10.0/lib/micrometer-commons-1.12.5.jar
new file mode 100644
index 0000000..27a96a9
Binary files /dev/null and b/mda-distribution-0.10.0/lib/micrometer-commons-1.12.5.jar differ
diff --git a/mda-distribution-0.10.0/lib/micrometer-observation-1.12.5.jar b/mda-distribution-0.10.0/lib/micrometer-observation-1.12.5.jar
new file mode 100644
index 0000000..c6deecb
Binary files /dev/null and b/mda-distribution-0.10.0/lib/micrometer-observation-1.12.5.jar differ
diff --git a/mda-distribution-0.10.0/lib/shib-networking-9.1.2.jar b/mda-distribution-0.10.0/lib/shib-networking-9.1.2.jar
new file mode 100644
index 0000000..e48ea98
Binary files /dev/null and b/mda-distribution-0.10.0/lib/shib-networking-9.1.2.jar differ
diff --git a/mda-distribution-0.10.0/lib/shib-networking-spring-9.1.2.jar b/mda-distribution-0.10.0/lib/shib-networking-spring-9.1.2.jar
new file mode 100644
index 0000000..588d8ab
Binary files /dev/null and b/mda-distribution-0.10.0/lib/shib-networking-spring-9.1.2.jar differ
diff --git a/mda-distribution-0.10.0/lib/shib-security-9.1.2.jar b/mda-distribution-0.10.0/lib/shib-security-9.1.2.jar
new file mode 100644
index 0000000..1a07e28
Binary files /dev/null and b/mda-distribution-0.10.0/lib/shib-security-9.1.2.jar differ
diff --git a/mda-distribution-0.10.0/lib/shib-security-spring-9.1.2.jar b/mda-distribution-0.10.0/lib/shib-security-spring-9.1.2.jar
new file mode 100644
index 0000000..b8bd72b
Binary files /dev/null and b/mda-distribution-0.10.0/lib/shib-security-spring-9.1.2.jar differ
diff --git a/mda-distribution-0.10.0/lib/shib-spring-9.1.2.jar b/mda-distribution-0.10.0/lib/shib-spring-9.1.2.jar
new file mode 100644
index 0000000..45efad9
Binary files /dev/null and b/mda-distribution-0.10.0/lib/shib-spring-9.1.2.jar differ
diff --git a/mda-distribution-0.10.0/lib/shib-support-9.1.2.jar b/mda-distribution-0.10.0/lib/shib-support-9.1.2.jar
new file mode 100644
index 0000000..3063efc
Binary files /dev/null and b/mda-distribution-0.10.0/lib/shib-support-9.1.2.jar differ
diff --git a/mda-distribution-0.10.0/lib/slf4j-api-2.0.12.jar b/mda-distribution-0.10.0/lib/slf4j-api-2.0.12.jar
new file mode 100644
index 0000000..bfa1de3
Binary files /dev/null and b/mda-distribution-0.10.0/lib/slf4j-api-2.0.12.jar differ
diff --git a/mda-distribution-0.10.0/lib/spring-aop-6.1.6.jar b/mda-distribution-0.10.0/lib/spring-aop-6.1.6.jar
new file mode 100644
index 0000000..2cbe890
Binary files /dev/null and b/mda-distribution-0.10.0/lib/spring-aop-6.1.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/spring-beans-6.1.6.jar b/mda-distribution-0.10.0/lib/spring-beans-6.1.6.jar
new file mode 100644
index 0000000..bcfa3c6
Binary files /dev/null and b/mda-distribution-0.10.0/lib/spring-beans-6.1.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/spring-context-6.1.6.jar b/mda-distribution-0.10.0/lib/spring-context-6.1.6.jar
new file mode 100644
index 0000000..750b3a6
Binary files /dev/null and b/mda-distribution-0.10.0/lib/spring-context-6.1.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/spring-core-6.1.6.jar b/mda-distribution-0.10.0/lib/spring-core-6.1.6.jar
new file mode 100644
index 0000000..c6b7025
Binary files /dev/null and b/mda-distribution-0.10.0/lib/spring-core-6.1.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/spring-expression-6.1.6.jar b/mda-distribution-0.10.0/lib/spring-expression-6.1.6.jar
new file mode 100644
index 0000000..a649814
Binary files /dev/null and b/mda-distribution-0.10.0/lib/spring-expression-6.1.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/spring-jcl-6.1.6.jar b/mda-distribution-0.10.0/lib/spring-jcl-6.1.6.jar
new file mode 100644
index 0000000..14c446a
Binary files /dev/null and b/mda-distribution-0.10.0/lib/spring-jcl-6.1.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/spring-web-6.1.6.jar b/mda-distribution-0.10.0/lib/spring-web-6.1.6.jar
new file mode 100644
index 0000000..67f06e0
Binary files /dev/null and b/mda-distribution-0.10.0/lib/spring-web-6.1.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/spring-webmvc-6.1.6.jar b/mda-distribution-0.10.0/lib/spring-webmvc-6.1.6.jar
new file mode 100644
index 0000000..b55874a
Binary files /dev/null and b/mda-distribution-0.10.0/lib/spring-webmvc-6.1.6.jar differ
diff --git a/mda-distribution-0.10.0/lib/xmlsec-3.0.3.jar b/mda-distribution-0.10.0/lib/xmlsec-3.0.3.jar
new file mode 100644
index 0000000..8ffd06e
Binary files /dev/null and b/mda-distribution-0.10.0/lib/xmlsec-3.0.3.jar differ
diff --git a/aggregator-cli/mda.bat b/mda-distribution-0.10.0/mda.bat
old mode 100755
new mode 100644
similarity index 91%
rename from aggregator-cli/mda.bat
rename to mda-distribution-0.10.0/mda.bat
index 4a45a12..8dcfdab
--- a/aggregator-cli/mda.bat
+++ b/mda-distribution-0.10.0/mda.bat
@@ -1,49 +1,49 @@
- at echo off
-setlocal
-
-REM We need a JVM
-if not defined JAVA_HOME  (
-  echo Error: JAVA_HOME is not defined.
-  exit /b
-)
-
-if not defined JAVACMD (
-  set JAVACMD="%JAVA_HOME%\bin\java.exe"
-)
-
-if not exist %JAVACMD% (
-  echo Error: JAVA_HOME is not defined correctly.
-  echo Cannot execute %JAVACMD%
-  exit /b
-)
-
-if defined CLASSPATH (
-  set LOCALCLASSPATH=%CLASSPATH%
-)
-
-if not defined MDA_HOME  (
-  echo Error: MDA_HOME is not defined.
-  exit /b
-)
-
-if not exist "%MDA_HOME%" (
-  echo Error: MDA_HOME is not defined correctly.
-  exit /b
-)
-
-REM add in the dependency .jar files
-for %%i in ("%MDA_HOME%\lib\*.jar") do (
-    call "%MDA_HOME%\cpappend.bat" %%i
-)
-
-if exist %JAVA_HOME%\lib\tools.jar (
-    set LOCALCLASSPATH=%LOCALCLASSPATH%;%JAVA_HOME%\lib\tools.jar
-)
-
-if exist %JAVA_HOME%\lib\classes.zip (
-    set LOCALCLASSPATH=%LOCALCLASSPATH%;%JAVA_HOME%\lib\classes.zip
-)
-
-REM Go to it !
-
-%JAVACMD% -classpath "%LOCALCLASSPATH%" %JVMOPTS% net.shibboleth.metadata.cli.SimpleCommandLine %*
\ No newline at end of file
+ at echo off
+setlocal
+
+REM We need a JVM
+if not defined JAVA_HOME  (
+  echo Error: JAVA_HOME is not defined.
+  exit /b
+)
+
+if not defined JAVACMD (
+  set JAVACMD="%JAVA_HOME%\bin\java.exe"
+)
+
+if not exist %JAVACMD% (
+  echo Error: JAVA_HOME is not defined correctly.
+  echo Cannot execute %JAVACMD%
+  exit /b
+)
+
+if defined CLASSPATH (
+  set LOCALCLASSPATH=%CLASSPATH%
+)
+
+if not defined MDA_HOME  (
+  echo Error: MDA_HOME is not defined.
+  exit /b
+)
+
+if not exist "%MDA_HOME%" (
+  echo Error: MDA_HOME is not defined correctly.
+  exit /b
+)
+
+REM add in the dependency .jar files
+for %%i in ("%MDA_HOME%\lib\*.jar") do (
+    call "%MDA_HOME%\cpappend.bat" %%i
+)
+
+if exist %JAVA_HOME%\lib\tools.jar (
+    set LOCALCLASSPATH=%LOCALCLASSPATH%;%JAVA_HOME%\lib\tools.jar
+)
+
+if exist %JAVA_HOME%\lib\classes.zip (
+    set LOCALCLASSPATH=%LOCALCLASSPATH%;%JAVA_HOME%\lib\classes.zip
+)
+
+REM Go to it !
+
+%JAVACMD% -classpath "%LOCALCLASSPATH%" %JVMOPTS% net.shibboleth.metadata.cli.SimpleCommandLine %*
diff --git a/aggregator-cli/mda.sh b/mda-distribution-0.10.0/mda.sh
similarity index 96%
rename from aggregator-cli/mda.sh
rename to mda-distribution-0.10.0/mda.sh
index 3313ad9..bd8abdc 100755
--- a/aggregator-cli/mda.sh
+++ b/mda-distribution-0.10.0/mda.sh
@@ -41,4 +41,4 @@ do
     fi
 done
 
-"$JAVACMD" '-classpath' "$LOCALCLASSPATH" $JVMOPTS 'net.shibboleth.metadata.cli.SimpleCommandLine' "$@"
\ No newline at end of file
+"$JAVACMD" '-classpath' "$LOCALCLASSPATH" $JVMOPTS 'net.shibboleth.metadata.cli.SimpleCommandLine' "$@"
diff --git a/refresh b/refresh
index fe58378..d8ae1c6 100755
--- a/refresh
+++ b/refresh
@@ -27,7 +27,7 @@ fi
 #
 # Find the CLI.
 #
-readonly MDA_CMD=$LOCATION/aggregator-cli/mda.sh
+readonly MDA_CMD=$LOCATION/mda-distribution-0.10.0/mda.sh
 
 #
 # Locate the output file for the flow.

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list