summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/annotation-model/scripts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/annotation-model/scripts
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/annotation-model/scripts')
-rw-r--r--testing/web-platform/tests/annotation-model/scripts/JSONtest.js803
-rw-r--r--testing/web-platform/tests/annotation-model/scripts/ajv.min.js6
-rw-r--r--testing/web-platform/tests/annotation-model/scripts/ajv.min.js.map1
-rw-r--r--testing/web-platform/tests/annotation-model/scripts/showdown.min.js4
4 files changed, 814 insertions, 0 deletions
diff --git a/testing/web-platform/tests/annotation-model/scripts/JSONtest.js b/testing/web-platform/tests/annotation-model/scripts/JSONtest.js
new file mode 100644
index 0000000000..3ee49b86a8
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/scripts/JSONtest.js
@@ -0,0 +1,803 @@
+/* globals add_completion_callback, Promise, showdown, done, assert_true, Ajv, on_event */
+
+/**
+ * Creates a JSONtest object. If the parameters are supplied
+ * it also loads a referenced testFile, processes that file, loads any
+ * referenced external assertions, and sets up event listeners to process the
+ * user's test data. The loading is done asynchronously via Promises. The test
+ * button's text is changed to Loading while it is processing, and to "Check
+ * JSON" once the data is loaded.
+ *
+ * @constructor
+ * @param {object} params
+ * @param {string} [params.test] - object containing JSON test definition
+ * @param {string} [params.testFile] - URI of a file with JSON test definition
+ * @param {string} params.runTest - IDREF of an element that when clicked will run the test
+ * @param {string} params.testInput - IDREF of an element that contains the JSON(-LD) to evaluate against the assertions in the test / testFile
+ * @event DOMContentLoaded Calls init once DOM is fully loaded
+ * @returns {object} Reference to the new object
+ */
+
+function JSONtest(params) {
+ 'use strict';
+
+ this.Assertions = []; // object that will contain the assertions to process
+ this.AssertionText = ""; // string that holds the titles of all the assertions in use
+ this.DescriptionText = "";
+ this.Base = null; // URI "base" for the test suite being run
+ this.TestDir = null; // URI "base" for the test case being run
+ this.Params = null; // paramaters passed in
+ this.Promise = null; // master Promise that resolves when intialization is complete
+ this.Properties = null; // testharness_properties from the opening window
+ this.SkipFailures = []; // list of assertionType values that should be skipped if their test would fail
+ this.Test = null; // test being run
+ this.AssertionCounter = 0;// keeps track of which assertion is being processed
+
+ this._assertionCache = [];// Array to put loaded assertions into
+ this._assertionText = []; // Array of text or nested arrays of assertions
+ this._loading = true;
+
+ showdown.extension('strip', function() {
+ return [
+ { type: 'output',
+ regex: /<p>/,
+ replace: ''
+ },
+ { type: 'output',
+ regex: /<\/p>$/,
+ replace: ''
+ }
+ ];
+ });
+
+
+ this.markdown = new showdown.Converter({ extensions: [ 'strip' ] }) ;
+
+ var pending = [] ;
+
+ // set up in case DOM finishes loading early
+ pending.push(new Promise(function(resolve) {
+ on_event(document, "DOMContentLoaded", function() {
+ resolve(true);
+ }.bind(this));
+ }.bind(this)));
+
+ // create an ajv object that will stay around so that caching
+ // of schema that are compiled just works
+ this.ajv = new Ajv({allErrors: true, validateSchema: false}) ;
+
+ // determine the base URI for the test collection. This is
+ // the top level folder in the test "document.location"
+
+ var l = document.location;
+ var p = l.pathname;
+ this.TestDir = p.substr(0, 1+p.lastIndexOf('/'));
+ this.Base = p.substr(0, 1+p.indexOf('/', 1));
+
+ // if we are under runner, then there are props in the parent window
+ //
+ // if "output" is set in that, then pause at the end of running so the output
+ // can be analyzed. @@@TODO@@@
+ if (window && window.opener && window.opener.testharness_properties) {
+ this.Properties = window.opener.testharness_properties;
+ }
+
+ this.Params = params;
+
+ // if there is a list of definitions in the params,
+ // include them
+ if (this.Params.schemaDefs) {
+ var defPromise = new Promise(function(resolve, reject) {
+ var promisedSchema = this.Params.schemaDefs.map(function(item) {
+ return this.loadDefinition(item);
+ }.bind(this));
+
+ // Once all the loadAssertion promises resolve...
+ Promise.all(promisedSchema)
+ .then(function (schemaContents) {
+ this.ajv.addSchema(schemaContents);
+ resolve(true);
+ }.bind(this))
+ .catch(function(err) {
+ reject(err);
+ }.bind(this));
+ }.bind(this));
+ // these schema need to load up too
+ pending.push(defPromise) ;
+ }
+
+ // start by loading the test (it might be inline, but
+ // loadTest deals with that
+ pending.push(this.loadTest(params)
+ .then(function(test) {
+ // if the test is NOT an object, turn it into one
+ if (typeof test === 'string') {
+ test = JSON.parse(test) ;
+ }
+
+ this.Test = test;
+
+ // Test should have information that we can put in the template
+
+ if (test.description) {
+ this.DescriptionText = test.description;
+ }
+
+ if (test.hasOwnProperty("skipFailures") && Array.isArray(test.skipFailures) ) {
+ this.SkipFailures = test.skipFailures;
+ }
+
+ if (test.content) {
+ // we have content
+ if (typeof test.content === "string") {
+ // the test content is a string - meaning it is a reference to a file of content
+ var cPromise = new Promise(function(resolve, reject) {
+ this.loadDefinition(test.content)
+ .then(function(content) {
+ if (typeof content === 'string') {
+ content = JSON.parse(content) ;
+ }
+ test.content = content;
+ resolve(true);
+ }.bind(this))
+ .catch(function(err) {
+ reject("Loading " + test.content + ": " + JSON.stringify(err));
+ });
+
+ }.bind(this));
+ pending.push(cPromise);
+ }
+ }
+
+ return new Promise(function(resolve, reject) {
+ if (test.assertions &&
+ typeof test.assertions === "object") {
+ // we have at least one assertion
+ // get the inline contents and the references to external files
+ var assertFiles = this._assertionRefs(test.assertions);
+
+ var promisedAsserts = assertFiles.map(function(item) {
+ return this.loadAssertion(item);
+ }.bind(this));
+
+ // Once all the loadAssertion promises resolve...
+ Promise.all(promisedAsserts)
+ .then(function (assertContents) {
+ // assertContents has assertions in document order
+
+ var typeMap = {
+ 'must' : "<b>[MANDATORY]</b> ",
+ 'may' : "<b>[OPTIONAL]</b> ",
+ 'should' : "<b>[RECOMMENDED]</b> "
+ };
+
+ var assertIdx = 0;
+
+ // populate the display of assertions that are being exercised
+ // returns the list of top level assertions to walk through
+
+ var buildList = function(assertions, level) {
+ if (level === undefined) {
+ level = 1;
+ }
+
+ // accumulate the assertions - but only when level is 0
+ var list = [] ;
+
+ var type = "";
+ if (assertions) {
+ if (typeof assertions === "object" && assertions.hasOwnProperty('assertions')) {
+ // this is a conditionObject
+ if (level === 0) {
+ list.push(assertContents[assertIdx]);
+ }
+ type = assertContents[assertIdx].hasOwnProperty('assertionType') ?
+ assertContents[assertIdx].assertionType : "must" ;
+
+ // ensure type defaults to must
+ if (!typeMap.hasOwnProperty(type)) {
+ type = "must";
+ }
+
+ this.AssertionText += "<li>" + typeMap[type] + this.markdown.makeHtml(assertContents[assertIdx++].title);
+ this.AssertionText += "<ol>";
+ buildList(assertions.assertions, level+1) ;
+ this.AssertionText += "</ol></li>\n";
+ } else {
+ // it is NOT a conditionObject - must be an array
+ assertions.forEach( function(assert) {
+ if (typeof assert === "object" && Array.isArray(assert)) {
+ this.AssertionText += "<ol>";
+ // it is a nested list - recurse
+ buildList(assert, level+1) ;
+ this.AssertionText += "</ol>\n";
+ } else if (typeof assert === "object" &&
+ !Array.isArray(assert) &&
+ assert.hasOwnProperty('assertions')) {
+ if (level === 0) {
+ list.push(assertContents[assertIdx]);
+ }
+ type = assertContents[assertIdx].hasOwnProperty('assertionType') ?
+ assertContents[assertIdx].assertionType : "must" ;
+
+ // ensure type defaults to must
+ if (!typeMap.hasOwnProperty(type)) {
+ type = "must";
+ }
+
+ // there is a condition object in the array
+ this.AssertionText += "<li>" + typeMap[type] + this.markdown.makeHtml(assertContents[assertIdx++].title);
+ this.AssertionText += "<ol>";
+ buildList(assert, level+1) ; // capture the children too
+ this.AssertionText += "</ol></li>\n";
+ } else {
+ if (level === 0) {
+ list.push(assertContents[assertIdx]);
+ }
+ type = assertContents[assertIdx].hasOwnProperty('assertionType') ?
+ assertContents[assertIdx].assertionType : "must" ;
+
+ // ensure type defaults to must
+ if (!typeMap.hasOwnProperty(type)) {
+ type = "must";
+ }
+
+ this.AssertionText += "<li>" + typeMap[type] + this.markdown.makeHtml(assertContents[assertIdx++].title) + "</li>\n";
+ }
+ }.bind(this));
+ }
+ }
+ return list;
+ }.bind(this);
+
+ // Assertions will ONLY contain the top level assertions
+ this.Assertions = buildList(test.assertions, 0);
+ resolve(true);
+ }.bind(this))
+ .catch(function(err) {
+ reject(err);
+ }.bind(this));
+ } else {
+ if (!test.assertions) {
+ reject("Test has no assertion property");
+ } else {
+ reject("Test assertion property is not an Array");
+ }
+ }
+ }.bind(this));
+ }.bind(this)));
+
+ this.Promise = new Promise(function(resolve, reject) {
+ // once the DOM and the test / assertions are loaded... set us up
+ Promise.all(pending)
+ .then(function() {
+ this.loading = false;
+ this.init();
+ resolve(this);
+ }.bind(this))
+ .catch(function(err) {
+ // loading the components failed somehow - report the errors and mark the test failed
+ test( function() {
+ assert_true(false, "Loading of test components failed: " +JSON.stringify(err)) ;
+ }, "Loading test components");
+ done() ;
+ reject("Loading of test components failed: "+JSON.stringify(err));
+ return ;
+ }.bind(this));
+ }.bind(this));
+
+ return this;
+}
+
+JSONtest.prototype = {
+
+ /**
+ * @listens click
+ */
+ init: function() {
+ 'use strict';
+ // set up a handler
+ var runButton = document.getElementById(this.Params.runTest) ;
+ var closeButton = document.getElementById(this.Params.closeWindow) ;
+ var testInput = document.getElementById(this.Params.testInput) ;
+ var assertion = document.getElementById("assertion") ;
+ var desc = document.getElementById("testDescription") ;
+
+ if (!this.loading) {
+ if (runButton) {
+ runButton.disabled = false;
+ runButton.value = "Check JSON";
+ }
+ if (desc) {
+ desc.innerHTML = this.DescriptionText;
+ }
+ if (assertion) {
+ assertion.innerHTML = "<ol>" + this.AssertionText + "</ol>\n";
+ }
+ } else {
+ window.alert("Loading did not finish before init handler was called!");
+ }
+
+ // @@@TODO@@@ implement the output showing handler
+ if (0 && this.Properties && this.Properties.output && closeButton) {
+ // set up a callback
+ add_completion_callback( function() {
+ var p = new Promise(function(resolve) {
+ closeButton.style.display = "inline";
+ closeButton.disabled = false;
+ on_event(closeButton, "click", function() {
+ resolve(true);
+ });
+ }.bind(this));
+ p.then();
+ }.bind(this));
+ }
+
+ if (runButton) {
+ on_event(runButton, "click", function() {
+ // user clicked
+ var content = testInput.value;
+ runButton.disabled = true;
+
+ // make sure content is an object
+ if (typeof content === "string") {
+ try {
+ content = JSON.parse(content) ;
+ } catch(err) {
+ // if the parsing failed, create a special test and mark it failed
+ test( function() {
+ assert_true(false, "Parse of JSON failed: " + err) ;
+ }, "Parsing submitted input");
+ // and just give up
+ done();
+ return ;
+ }
+ }
+
+ // iterate over all of the tests for this instance
+ this.runTests(this.Assertions, content);
+
+ // explicitly tell the test framework we are done
+ done();
+ }.bind(this));
+ }
+ },
+
+ // runTests - process tests
+ /**
+ * @param {object} assertions - List of assertions to process
+ * @param {string} content - JSON(-LD) to be evaluated
+ * @param {string} [testAction='continue'] - state of test processing (in parent when recursing)
+ * @param {integer} [level=0] - depth of recursion since assertion lists can nest
+ * @param {string} [compareWith='and'] - the way the results of the referenced assertions should be compared
+ * @returns {string} - the testAction resulting from evaluating all of the assertions
+ */
+ runTests: function(assertions, content, testAction, level, compareWith) {
+ 'use strict';
+
+ // level
+ if (level === undefined) {
+ level = 1;
+ }
+
+ // testAction
+ if (testAction === undefined) {
+ testAction = 'continue';
+ }
+
+ // compareWith
+ if (compareWith === undefined) {
+ compareWith = 'and';
+ }
+
+ var typeMap = {
+ 'must' : "",
+ 'may' : "INFORMATIONAL: ",
+ 'should' : "WARNING: "
+ };
+
+
+ // for each assertion (in order) load the external json schema if
+ // one is referenced, or use the inline schema if supplied
+ // validate content against the referenced schema
+
+ var theResults = [] ;
+
+ if (assertions) {
+
+ assertions.forEach( function(assert, num) {
+
+ var expected = assert.hasOwnProperty('expectedResult') ?
+ assert.expectedResult : 'valid' ;
+ var message = assert.hasOwnProperty('errorMessage') ?
+ assert.errorMessage : "Result was not " + expected;
+ var type = assert.hasOwnProperty('assertionType') ?
+ assert.assertionType.toLowerCase() : "must" ;
+ if (!typeMap.hasOwnProperty(type)) {
+ type = "must";
+ }
+
+ // first - what is the type of the assert
+ if (typeof assert === "object" && !Array.isArray(assert)) {
+ if (assert.hasOwnProperty("compareWith") && assert.hasOwnProperty("assertions") && Array.isArray(assert.assertions) ) {
+ // this is a comparisonObject
+ var r = this.runTests(assert.assertions, content, testAction, level+1, assert.compareWith);
+ // r is an object that contains, among other things, an array of results from the child assertions
+ testAction = r.action;
+
+ // evaluate the results against the compareWith setting
+ var result = true;
+ var data = r.results ;
+ var i;
+
+ if (assert.compareWith === "or") {
+ result = false;
+ for(i = 0; i < data.length; i++) {
+ if (data[i]) {
+ result = true;
+ }
+ }
+ } else {
+ for(i = 0; i < data.length; i++) {
+ if (!data[i]) {
+ result = false;
+ }
+ }
+ }
+
+ // create a test and push the result
+ test(function() {
+ var newAction = this.determineAction(assert, result) ;
+ // next time around we will use this action
+ testAction = newAction;
+
+ var err = ";";
+
+ if (testAction === 'abort') {
+ err += "; Aborting execution of remaining assertions;";
+ } else if (testAction === 'skip') {
+ err += "; Skipping execution of remaining assertions at level " + level + ";";
+ }
+
+ if (result === false) {
+ // test result was unexpected; use message
+ assert_true(result, message + err);
+ } else {
+ assert_true(result, err) ;
+ }
+ }.bind(this), "" + level + ":" + (num+1) + " " + assert.title);
+ // we are going to return out of this
+ return;
+ }
+ } else if (typeof assert === "object" && Array.isArray(assert)) {
+ // it is a nested list - recurse
+ var o = this.runTests(assert, content, testAction, level+1);
+ if (o.result && o.result === 'abort') {
+ // we are bailing out
+ testAction = 'abort';
+ }
+ }
+
+ if (testAction === 'abort') {
+ return {action: 'abort' };
+ }
+
+ var schemaName = "inline " + level + ":" + (num+1);
+
+ if (typeof assert === "string") {
+ // the assertion passed in is a file name; find it in the cache
+ if (this._assertionCache[assert]) {
+ assert = this._assertionCache[assert];
+ } else {
+ test( function() {
+ assert_true(false, "Reference to assertion " + assert + " at level " + level + ":" + (num+1) + " unresolved") ;
+ }, "Processing " + assert);
+ return ;
+ }
+ }
+
+ if (assert.assertionFile) {
+ schemaName = "external file " + assert.assertionFile + " " + level + ":" + (num+1);
+ }
+
+ var validate = null;
+
+ try {
+ validate = this.ajv.compile(assert);
+ }
+ catch(err) {
+ test( function() {
+ assert_true(false, "Compilation of schema " + level + ":" + (num+1) + " failed: " + err) ;
+ }, "Compiling " + schemaName);
+ return ;
+ }
+
+ if (testAction === 'continue') {
+ // a previous test told us to not run this test; skip it
+ // test(function() { }, "SKIPPED: " + assert.title);
+ // start an actual sub-test
+ var valid = validate(content) ;
+
+ var theResult = this.determineResult(assert, valid) ;
+
+ // remember the result
+ theResults.push(theResult);
+
+ var newAction = this.determineAction(assert, theResult) ;
+ // next time around we will use this action
+ testAction = newAction;
+
+ // only run the test if we are NOT skipping fails for some types
+ // or the result is expected
+ if ( theResult === true || !this.SkipFailures.includes(type) ) {
+ test(function() {
+ var err = ";";
+ if (validate.errors !== null && !assert.hasOwnProperty("errorMessage")) {
+ err = "; Errors: " + this.ajv.errorsText(validate.errors) + ";" ;
+ }
+ if (testAction === 'abort') {
+ err += "; Aborting execution of remaining assertions;";
+ } else if (testAction === 'skip') {
+ err += "; Skipping execution of remaining assertions at level " + level + ";";
+ }
+ if (theResult === false) {
+ // test result was unexpected; use message
+ assert_true(theResult, typeMap[type] + message + err);
+ } else {
+ assert_true(theResult, err) ;
+ }
+ }.bind(this), "" + level + ":" + (num+1) + " " + assert.title);
+ }
+ }
+ }.bind(this));
+ }
+
+ return { action: testAction, results: theResults} ;
+ },
+
+ determineResult: function(schema, valid) {
+ 'use strict';
+ var r = 'valid' ;
+ if (schema.hasOwnProperty('expectedResult')) {
+ r = schema.expectedResult;
+ }
+
+ if (r === 'valid' && valid || r === 'invalid' && !valid) {
+ return true;
+ } else {
+ return false;
+ }
+ },
+
+ determineAction: function(schema, result) {
+ 'use strict';
+ // mapping from results to actions
+ var mapping = {
+ 'failAndContinue' : 'continue',
+ 'failAndSkip' : 'skip',
+ 'failAndAbort' : 'abort',
+ 'passAndContinue': 'continue',
+ 'passAndSkip' : 'skip',
+ 'passAndAbort' : 'abort'
+ };
+
+ // if the result was as expected, then just keep going
+ if (result) {
+ return 'continue';
+ }
+
+ var a = 'failAndContinue';
+
+ if (schema.hasOwnProperty('onUnexpectedResult')) {
+ a = schema.onUnexpectedResult;
+ }
+
+ if (mapping[a]) {
+ return mapping[a];
+ } else {
+ return 'continue';
+ }
+ },
+
+ // loadAssertion - load an Assertion from an external JSON file
+ //
+ // returns a promise that resolves with the contents of the assertion file
+
+ loadAssertion: function(afile) {
+ 'use strict';
+ if (typeof(afile) === 'string') {
+ var theFile = this._parseURI(afile);
+ // it is a file reference - load it
+ return new Promise(function(resolve, reject) {
+ this._loadFile("GET", theFile, true)
+ .then(function(data) {
+ data.assertionFile = afile;
+ this._assertionCache[afile] = data;
+ resolve(data);
+ }.bind(this))
+ .catch(function(err) {
+ if (typeof err === "object") {
+ err.theFile = theFile;
+ }
+ reject(err);
+ });
+ }.bind(this));
+ }
+ else if (afile.hasOwnProperty("assertionFile")) {
+ // this object is referecing an external assertion
+ return new Promise(function(resolve, reject) {
+ var theFile = this._parseURI(afile.assertionFile);
+ this._loadFile("GET", theFile, true)
+ .then(function(external) {
+ // okay - we have an external object
+ Object.keys(afile).forEach(function(key) {
+ if (key !== 'assertionFile') {
+ external[key] = afile[key];
+ }
+ });
+ resolve(external);
+ }.bind(this))
+ .catch(function(err) {
+ if (typeof err === "object") {
+ err.theFile = theFile;
+ }
+ reject(err);
+ });
+ }.bind(this));
+ } else {
+ // it is already a loaded assertion - just use it
+ return new Promise(function(resolve) {
+ resolve(afile);
+ });
+ }
+ },
+
+ // loadDefinition - load a JSON Schema definition from an external JSON file
+ //
+ // returns a promise that resolves with the contents of the definition file
+
+ loadDefinition: function(dfile) {
+ 'use strict';
+ return new Promise(function(resolve, reject) {
+ this._loadFile("GET", this._parseURI(dfile), true)
+ .then(function(data) {
+ resolve(data);
+ }.bind(this))
+ .catch(function(err) {
+ reject(err);
+ });
+ }.bind(this));
+ },
+
+
+ // loadTest - load a test from an external JSON file
+ //
+ // returns a promise that resolves with the contents of the
+ // test
+
+ loadTest: function(params) {
+ 'use strict';
+
+ if (params.hasOwnProperty('testFile')) {
+ // the test is referred to by a file name
+ return this._loadFile("GET", params.testFile);
+ } // else
+ return new Promise(function(resolve, reject) {
+ if (params.hasOwnProperty('test')) {
+ resolve(params.test);
+ } else {
+ reject("Must supply a 'test' or 'testFile' parameter");
+ }
+ });
+ },
+
+ _parseURI: function(theURI) {
+ 'use strict';
+ // determine what the top level URI should be
+ if (theURI.indexOf('/') === -1) {
+ // no slash - it's relative to where we are
+ // so just use it
+ return this.TestDir + theURI;
+ } else if (theURI.indexOf('/') === 0 || theURI.indexOf('http:') === 0 || theURI.indexOf('https:') === 0) {
+ // it is an absolute URI so just use it
+ return theURI;
+ } else {
+ // it is relative and contains a slash.
+ // make it relative to the current test root
+ return this.Base + theURI;
+ }
+ },
+
+ /**
+ * return a list of all inline assertions or references
+ *
+ * @param {array} assertions list of assertions to examine
+ */
+
+ _assertionRefs: function(assertions) {
+ 'use strict';
+ var ret = [] ;
+
+ // when the reference is to an object that has an array of assertions in it (a conditionObject)
+ // then remember that one and loop over its embedded assertions
+ if (typeof(assertions) === "object" && !Array.isArray(assertions) && assertions.hasOwnProperty('assertions')) {
+ ret.push(assertions) ;
+ assertions = assertions.assertions;
+ }
+ if (typeof(assertions) === "object" && Array.isArray(assertions)) {
+ assertions.forEach( function(assert) {
+ // first - what is the type of the assert
+ if (typeof assert === "object" && Array.isArray(assert)) {
+ // it is a nested list - recurse
+ this._assertionRefs(assert).forEach( function(item) {
+ ret.push(item);
+ }.bind(this));
+ } else if (typeof assert === "object") {
+ ret.push(assert) ;
+ if (assert.hasOwnProperty("assertions")) {
+ // there are embedded assertions; get those too
+ ret.concat(this._assertionRefs(assert.assertions));
+ }
+ } else {
+ // it is a file name
+ ret.push(assert) ;
+ }
+ }.bind(this));
+ }
+ return ret;
+ },
+
+ // _loadFile - return a promise loading a file
+ //
+ _loadFile: function(method, url, parse) {
+ 'use strict';
+ if (parse === undefined) {
+ parse = true;
+ }
+
+ return new Promise(function (resolve, reject) {
+ if (document.location.search) {
+ var s = document.location.search;
+ s = s.replace(/^\?/, '');
+ if (url.indexOf('?') !== -1) {
+ url += "&" + s;
+ } else {
+ url += "?" + s;
+ }
+ }
+ var xhr = new XMLHttpRequest();
+ xhr.open(method, url);
+ xhr.onload = function () {
+ if (this.status >= 200 && this.status < 300) {
+ var d = xhr.response;
+ if (parse) {
+ try {
+ d = JSON.parse(d);
+ resolve(d);
+ }
+ catch(err) {
+ reject({ status: this.status,
+ statusText: "Parsing of " + url + " failed: " + err }
+ );
+ }
+ } else {
+ resolve(d);
+ }
+ } else {
+ reject({
+ status: this.status,
+ statusText: xhr.statusText
+ });
+ }
+ };
+ xhr.onerror = function () {
+ reject({
+ status: this.status,
+ statusText: xhr.statusText
+ });
+ };
+ xhr.send();
+ });
+ },
+
+};
diff --git a/testing/web-platform/tests/annotation-model/scripts/ajv.min.js b/testing/web-platform/tests/annotation-model/scripts/ajv.min.js
new file mode 100644
index 0000000000..7d8ef758d6
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/scripts/ajv.min.js
@@ -0,0 +1,6 @@
+/* ajv 4.0.4: Another JSON Schema Validator */
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.Ajv=e()}}(function(){var define,module,exports;return function e(r,t,a){function s(i,n){if(!t[i]){if(!r[i]){var l="function"==typeof require&&require;if(!n&&l)return l(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var h=t[i]={exports:{}};r[i][0].call(h.exports,function(e){var t=r[i][1][e];return s(t?t:e)},h,h.exports,e,r,t,a)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;a.length>i;i++)s(a[i]);return s}({1:[function(require,module,exports){"use strict";function setupAsync(e,r){r!==!1&&(r=!0);var t,a=e.async,s=e.transpile;switch(typeof s){case"string":var o=TRANSPILE[s];if(!o)throw new Error("bad transpiler: "+s);return e._transpileFunc=o(e,r);case"undefined":case"boolean":if("string"==typeof a){if(t=ASYNC[a],!t)throw new Error("bad async mode: "+a);return e.transpile=t(e,r)}for(var i=0;MODES.length>i;i++){var n=MODES[i];if(setupAsync(n,!1))return util.copy(n,e),e.transpile}throw new Error("generators, nodent and regenerator are not available");case"function":return e._transpileFunc=e.transpile;default:throw new Error("bad transpiler: "+s)}}function checkGenerators(opts,required){try{return eval("(function*(){})()"),!0}catch(e){if(required)throw new Error("generators not supported")}}function checkAsyncFunction(opts,required){try{return eval("(async function(){})()"),!0}catch(e){if(required)throw new Error("es7 async functions not supported")}}function getRegenerator(e,r){try{return regenerator||(regenerator=require("regenerator"),regenerator.runtime()),e.async&&e.async!==!0||(e.async="es7"),regeneratorTranspile}catch(t){if(r)throw new Error("regenerator not available")}}function regeneratorTranspile(e){return regenerator.compile(e).code}function getNodent(e,r){try{return nodent||(nodent=require("nodent")({log:!1,dontInstallRequireHook:!0})),"es7"!=e.async&&(e.async&&e.async!==!0&&console.warn("nodent transpiles only es7 async functions"),e.async="es7"),nodentTranspile}catch(t){if(r)throw new Error("nodent not available")}}function nodentTranspile(e){return nodent.compile(e,"",{promises:!0,sourcemap:!1}).code}function compileAsync(e,r){function t(e,r,a){function o(a){function o(a,o){if(a)return r(a);if(!s._refs[i]&&!s._schemas[i])try{s.addSchema(o,i)}catch(n){return void r(n)}t(e,r)}var i=a.missingSchema;if(s._refs[i]||s._schemas[i])return r(new Error("Schema "+i+" is loaded but"+a.missingRef+"cannot be resolved"));var n=s._loadingSchemas[i];n?"function"==typeof n?s._loadingSchemas[i]=[n,o]:n[n.length]=o:(s._loadingSchemas[i]=o,s._opts.loadSchema(i,function(e,r){var t=s._loadingSchemas[i];if(delete s._loadingSchemas[i],"function"==typeof t)t(e,r);else for(var a=0;t.length>a;a++)t[a](e,r)}))}function i(e,t){return a?void setTimeout(function(){r(e,t)}):r(e,t)}var n;try{n=s.compile(e)}catch(l){return void(l.missingSchema?o(l):i(l))}i(null,n)}var a,s=this;try{a=this._addSchema(e)}catch(o){return void setTimeout(function(){r(o)})}if(a.validate)setTimeout(function(){r(null,a.validate)});else{if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");t(e,r,!0)}}module.exports={setup:setupAsync,compile:compileAsync};var util=require("./compile/util"),ASYNC={"*":checkGenerators,"co*":checkGenerators,es7:checkAsyncFunction},TRANSPILE={nodent:getNodent,regenerator:getRegenerator},MODES=[{async:"co*"},{async:"es7",transpile:"nodent"},{async:"co*",transpile:"regenerator"}],regenerator,nodent},{"./compile/util":10}],2:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],3:[function(e,r,t){"use strict";r.exports={$ref:e("../dotjs/ref"),allOf:e("../dotjs/allOf"),anyOf:e("../dotjs/anyOf"),dependencies:e("../dotjs/dependencies"),"enum":e("../dotjs/enum"),format:e("../dotjs/format"),items:e("../dotjs/items"),maximum:e("../dotjs/_limit"),minimum:e("../dotjs/_limit"),maxItems:e("../dotjs/_limitItems"),minItems:e("../dotjs/_limitItems"),maxLength:e("../dotjs/_limitLength"),minLength:e("../dotjs/_limitLength"),maxProperties:e("../dotjs/_limitProperties"),minProperties:e("../dotjs/_limitProperties"),multipleOf:e("../dotjs/multipleOf"),not:e("../dotjs/not"),oneOf:e("../dotjs/oneOf"),pattern:e("../dotjs/pattern"),properties:e("../dotjs/properties"),required:e("../dotjs/required"),uniqueItems:e("../dotjs/uniqueItems"),validate:e("../dotjs/validate")}},{"../dotjs/_limit":13,"../dotjs/_limitItems":14,"../dotjs/_limitLength":15,"../dotjs/_limitProperties":16,"../dotjs/allOf":17,"../dotjs/anyOf":18,"../dotjs/dependencies":20,"../dotjs/enum":21,"../dotjs/format":22,"../dotjs/items":23,"../dotjs/multipleOf":24,"../dotjs/not":25,"../dotjs/oneOf":26,"../dotjs/pattern":27,"../dotjs/properties":29,"../dotjs/ref":30,"../dotjs/required":31,"../dotjs/uniqueItems":33,"../dotjs/validate":34}],4:[function(e,r,t){"use strict";r.exports=function a(e,r){if(e===r)return!0;var t,s=Array.isArray(e),o=Array.isArray(r);if(s&&o){if(e.length!=r.length)return!1;for(t=0;e.length>t;t++)if(!a(e[t],r[t]))return!1;return!0}if(s!=o)return!1;if(e&&r&&"object"==typeof e&&"object"==typeof r){var i=Object.keys(e);if(i.length!==Object.keys(r).length)return!1;for(t=0;i.length>t;t++)if(void 0===r[i[t]])return!1;for(t=0;i.length>t;t++)if(!a(e[i[t]],r[i[t]]))return!1;return!0}return!1}},{}],5:[function(e,r,t){"use strict";function a(e){e="full"==e?"full":"fast";var r=d.copy(a[e]);for(var t in a.compare)r[t]={validate:r[t],compare:a.compare[t]};return r}function s(e){var r=e.match(p);if(!r)return!1;var t=+r[1],a=+r[2];return t>=1&&12>=t&&a>=1&&m[t]>=a}function o(e,r){var t=e.match(v);if(!t)return!1;var a=t[1],s=t[2],o=t[3],i=t[5];return 23>=a&&59>=s&&59>=o&&(!r||i)}function i(e){var r=e.split(w);return s(r[0])&&o(r[1],!0)}function n(e){return 255>=e.length&&y.test(e)}function l(e){return j.test(e)&&g.test(e)}function c(e){try{return new RegExp(e),!0}catch(r){return!1}}function h(e,r){return e&&r?e>r?1:r>e?-1:e===r?0:void 0:void 0}function u(e,r){return e&&r&&(e=e.match(v),r=r.match(v),e&&r)?(e=e[1]+e[2]+e[3]+(e[4]||""),r=r[1]+r[2]+r[3]+(r[4]||""),e>r?1:r>e?-1:e===r?0:void 0):void 0}function f(e,r){if(e&&r){e=e.split(w),r=r.split(w);var t=h(e[0],r[0]);if(void 0!==t)return t||u(e[1],r[1])}}var d=e("./util"),p=/^\d\d\d\d-(\d\d)-(\d\d)$/,m=[0,31,29,31,30,31,30,31,31,30,31,30,31],v=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,y=/^[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i,g=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,P=/^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,E=/^(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)+)*(?:\/)?$/i,b=/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?)$/;r.exports=a,a.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:y,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.full={date:s,time:o,"date-time":i,uri:l,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.compare={date:h,time:u,"date-time":f};var w=/t|\s/i,j=/\/|\:/},{"./util":10}],6:[function(require,module,exports){"use strict";function compile(schema,root,localRefs,baseId){function localCompile(_schema,_root,localRefs,baseId){var isRoot=!_root||_root&&_root.schema==_schema;if(_root.schema!=root.schema)return compile.call(self,_schema,_root,localRefs,baseId);var $async=_schema.$async===!0;$async&&!opts.transpile&&async.setup(opts);var sourceCode=validateGenerator({isTop:!0,schema:_schema,isRoot:isRoot,baseId:baseId,root:_root,schemaPath:"",errSchemaPath:"#",errorPath:'""',RULES:RULES,validate:validateGenerator,util:util,resolve:resolve,resolveRef:resolveRef,usePattern:usePattern,useDefault:useDefault,useCustomRule:useCustomRule,opts:opts,formats:formats,self:self});sourceCode=vars(refVal,refValCode)+vars(patterns,patternCode)+vars(defaults,defaultCode)+vars(customRules,customRuleCode)+sourceCode,opts.beautify&&(beautify?sourceCode=beautify(sourceCode,opts.beautify):console.error('"npm install js-beautify" to use beautify option'));var validate,validateCode,transpile=opts._transpileFunc;try{validateCode=$async&&transpile?transpile(sourceCode):sourceCode,eval(validateCode),refVal[0]=validate}catch(e){throw console.error("Error compiling schema, function code:",validateCode),e}return validate.schema=_schema,validate.errors=null,validate.refs=refs,validate.refVal=refVal,validate.root=isRoot?validate:_root,$async&&(validate.$async=!0),validate.sourceCode=sourceCode,validate}function resolveRef(e,r,t){r=resolve.url(e,r);var a,s,o=refs[r];if(void 0!==o)return a=refVal[o],s="refVal["+o+"]",resolvedRef(a,s);if(!t){var i=root.refs[r];if(void 0!==i)return a=root.refVal[i],s=addLocalRef(r,a),resolvedRef(a,s)}s=addLocalRef(r);var n=resolve.call(self,localCompile,root,r);if(!n){var l=localRefs&&localRefs[r];l&&(n=resolve.inlineRef(l,opts.inlineRefs)?l:compile.call(self,l,root,localRefs,e))}return n?(replaceLocalRef(r,n),resolvedRef(n,s)):void 0}function addLocalRef(e,r){var t=refVal.length;return refVal[t]=r,refs[e]=t,"refVal"+t}function replaceLocalRef(e,r){var t=refs[e];refVal[t]=r}function resolvedRef(e,r){return"object"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&e.$async}}function usePattern(e){var r=patternsHash[e];return void 0===r&&(r=patternsHash[e]=patterns.length,patterns[r]=e),"pattern"+r}function useDefault(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return util.toQuotedString(e);case"object":if(null===e)return"null";var r=stableStringify(e),t=defaultsHash[r];return void 0===t&&(t=defaultsHash[r]=defaults.length,defaults[t]=e),"default"+t}}function useCustomRule(e,r,t,a){var s,o=e.definition.compile,i=e.definition.inline,n=e.definition.macro;o?s=o.call(self,r,t):n?(s=n.call(self,r,t),opts.validateSchema!==!1&&self.validateSchema(s,!0)):s=i?i.call(self,a,e.keyword,r,t):e.definition.validate;var l=customRules.length;return customRules[l]=s,{code:"customRule"+l,validate:s}}var self=this,opts=this._opts,refVal=[void 0],refs={},patterns=[],patternsHash={},defaults=[],defaultsHash={},customRules=[];root=root||{schema:schema,refVal:refVal,refs:refs};var formats=this._formats,RULES=this.RULES;return localCompile(schema,root,localRefs,baseId)}function patternCode(e,r){return"var pattern"+e+" = new RegExp("+util.toQuotedString(r[e])+");"}function defaultCode(e){return"var default"+e+" = defaults["+e+"];"}function refValCode(e,r){return r[e]?"var refVal"+e+" = refVal["+e+"];":""}function customRuleCode(e){return"var customRule"+e+" = customRules["+e+"];"}function vars(e,r){if(!e.length)return"";for(var t="",a=0;e.length>a;a++)t+=r(a,e);return t}var resolve=require("./resolve"),util=require("./util"),stableStringify=require("json-stable-stringify"),async=require("../async"),beautify=function(){try{return require("js-beautify").js_beautify}catch(e){}}(),validateGenerator=require("../dotjs/validate");module.exports=compile;var co=require("co"),ucs2length=util.ucs2length,equal=require("./equal"),ValidationError=require("./validation_error")},{"../async":1,"../dotjs/validate":34,"./equal":4,"./resolve":7,"./util":10,"./validation_error":11,co:39,"json-stable-stringify":40}],7:[function(e,r,t){"use strict";function a(e,r,t){var o=this._refs[t];if("string"==typeof o){if(!this._refs[o])return a.call(this,e,r,o);o=this._refs[o]}if(o=o||this._schemas[t],o instanceof g)return n(o.schema,this._opts.inlineRefs)?o.schema:o.validate||this._compile(o);var i,l,c,h=s.call(this,r,t);return h&&(i=h.schema,r=h.root,c=h.baseId),i instanceof g?l=i.validate||e.call(this,i.schema,r,void 0,c):i&&(l=n(i,this._opts.inlineRefs)?i:e.call(this,i,r,void 0,c)),l}function s(e,r){var t=m.parse(r,!1,!0),a=u(t),s=h(e.schema.id);if(a!==s){var n=f(a),l=this._refs[n];if("string"==typeof l)return o.call(this,e,l,t);if(l instanceof g)l.validate||this._compile(l),e=l;else if(l=this._schemas[n],l instanceof g){if(l.validate||this._compile(l),n==f(r))return{schema:l,root:e,baseId:s};e=l}if(!e.schema)return;s=h(e.schema.id)}return i.call(this,t,s,e.schema,e)}function o(e,r,t){var a=s.call(this,e,r);if(a){var o=a.schema,n=a.baseId;return e=a.root,o.id&&(n=d(n,o.id)),i.call(this,t,n,o,e)}}function i(e,r,t,a){if(e.hash=e.hash||"","#/"==e.hash.slice(0,2)){for(var o=e.hash.split("/"),i=1;o.length>i;i++){var n=o[i];if(n){if(n=y.unescapeFragment(n),t=t[n],!t)break;if(t.id&&!P[n]&&(r=d(r,t.id)),t.$ref){var l=d(r,t.$ref),c=s.call(this,a,l);c&&(t=c.schema,a=c.root,r=c.baseId)}}}return t&&t!=a.schema?{schema:t,root:a,baseId:r}:void 0}}function n(e,r){return r===!1?!1:void 0===r||r===!0?l(e):r?c(e)<=r:void 0}function l(e){var r;if(Array.isArray(e)){for(var t=0;e.length>t;t++)if(r=e[t],"object"==typeof r&&!l(r))return!1}else for(var a in e){if("$ref"==a)return!1;if(r=e[a],"object"==typeof r&&!l(r))return!1}return!0}function c(e){var r,t=0;if(Array.isArray(e)){for(var a=0;e.length>a;a++)if(r=e[a],"object"==typeof r&&(t+=c(r)),t==1/0)return 1/0}else for(var s in e){if("$ref"==s)return 1/0;if(E[s])t++;else if(r=e[s],"object"==typeof r&&(t+=c(r)+1),t==1/0)return 1/0}return t}function h(e,r){r!==!1&&(e=f(e));var t=m.parse(e,!1,!0);return u(t)}function u(e){return(e.protocol||"")+(e.protocol?"//":"")+(e.host||"")+(e.path||"")+"#"}function f(e){return e?e.replace(b,""):""}function d(e,r){return r=f(r),m.resolve(e,r)}function p(e){function r(e,t,s){if(Array.isArray(e))for(var o=0;e.length>o;o++)r.call(this,e[o],t+"/"+o,s);else if(e&&"object"==typeof e){if("string"==typeof e.id){var i=s=s?m.resolve(s,e.id):e.id;i=f(i);var n=this._refs[i];if("string"==typeof n&&(n=this._refs[n]),n&&n.schema){if(!v(e,n.schema))throw new Error('id "'+i+'" resolves to more than one schema')}else if(i!=f(t))if("#"==i[0]){if(a[i]&&!v(e,a[i]))throw new Error('id "'+i+'" resolves to more than one schema');a[i]=e}else this._refs[i]=t}for(var l in e)r.call(this,e[l],t+"/"+y.escapeFragment(l),s)}}var t=f(e.id),a={};return r.call(this,e,h(t,!1),t),a}var m=e("url"),v=e("./equal"),y=e("./util"),g=e("./schema_obj");r.exports=a,a.normalizeId=f,a.fullPath=h,a.url=d,a.ids=p,a.inlineRef=n;var P=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]),E=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]),b=/#\/?$/},{"./equal":4,"./schema_obj":9,"./util":10,url:48}],8:[function(e,r,t){"use strict";var a=e("./_rules"),s=e("./util");r.exports=function(){var e=[{type:"number",rules:["maximum","minimum","multipleOf"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","properties"]},{rules:["$ref","enum","not","anyOf","oneOf","allOf"]}];return e.all=["type","additionalProperties","patternProperties"],e.keywords=["additionalItems","$schema","id","title","description","default"],e.types=["number","integer","string","array","object","boolean","null"],e.forEach(function(r){r.rules=r.rules.map(function(r){return e.all.push(r),{keyword:r,code:a[r]}})}),e.keywords=s.toHash(e.all.concat(e.keywords)),e.all=s.toHash(e.all),e.types=s.toHash(e.types),e}},{"./_rules":3,"./util":10}],9:[function(e,r,t){"use strict";function a(e){s.copy(e,this)}var s=e("./util");r.exports=a},{"./util":10}],10:[function(e,r,t){"use strict";function a(e,r){r=r||{};for(var t in e)r[t]=e[t];return r}function s(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1))";default:return"typeof "+r+a+'"'+e+'"'}}function o(e,r){switch(e.length){case 1:return s(e[0],r,!0);default:var t="",a=n(e);a.array&&a.object&&(t=a["null"]?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a["null"],delete a.array,delete a.object),a.number&&delete a.integer;for(var o in a)t+=(t?" && ":"")+s(o,r,!0);return t}}function i(e){if(Array.isArray(e)){for(var r=[],t=0;e.length>t;t++){var a=e[t];x[a]&&(r[r.length]=a)}if(r.length)return r}else if(x[e])return[e]}function n(e){for(var r={},t=0;e.length>t;t++)r[e[t]]=!0;return r}function l(e){return"number"==typeof e?"["+e+"]":S.test(e)?"."+e:"['"+e.replace(_,"\\$&")+"']"}function c(e){return e.replace(_,"\\$&")}function h(e){for(var r,t=0,a=e.length,s=0;a>s;)t++,r=e.charCodeAt(s++),r>=55296&&56319>=r&&a>s&&(r=e.charCodeAt(s),56320==(64512&r)&&s++);return t}function u(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0}function f(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")}function d(e){return e.replace(R,"").replace(O,"").replace(I,"if (!($1))")}function p(e,r){var t=e.match(k);return t&&2===t.length?r?e.replace(q,"").replace(D,V):e.replace(A,"").replace(L,C):e}function m(e,r){for(var t in e)if(r[t])return!0}function v(e){return"'"+c(e)+"'"}function y(e,r,t,a){var s=t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'";return E(e,s)}function g(e,r,t){var a=v(t?"/"+j(r):l(r));return E(e,a)}function P(e,r,t){var a=e.match(U);if(!a)throw new Error("Invalid relative JSON-pointer: "+e);var s=+a[1],o=a[2];if("#"==o){if(s>=r)throw new Error("Cannot access property/index "+s+" levels up, current level is "+r);return t[r-s]}if(s>r)throw new Error("Cannot access data "+s+" levels up, current level is "+r);var i="data"+(r-s||"");if(!o)return i;for(var n=i,c=o.split("/"),h=0;c.length>h;h++){var u=c[h];u&&(i+=l($(u)),n+=" && "+i)}return n}function E(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function b(e){return $(decodeURIComponent(e))}function w(e){return encodeURIComponent(j(e))}function j(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function $(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}r.exports={copy:a,checkDataType:s,checkDataTypes:o,coerceToTypes:i,toHash:n,getProperty:l,escapeQuotes:c,ucs2length:h,varOccurences:u,varReplace:f,cleanUpCode:d,cleanUpVarErrors:p,schemaHasRules:m,stableStringify:e("json-stable-stringify"),toQuotedString:v,getPathExpr:y,getPath:g,getData:P,unescapeFragment:b,escapeFragment:w,escapeJsonPointer:j};var x=n(["string","number","integer","boolean","null"]),S=/^[a-z$_][a-z$_0-9]*$/i,_=/'|\\/g,R=/else\s*{\s*}/g,O=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,I=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g,k=/[^v\.]errors/g,A=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,q=/var errors = 0;|var vErrors = null;/g,L="return errors === 0;",C="validate.errors = null; return true;",D=/if \(errors === 0\) return true;\s*else throw new ValidationError\(vErrors\);/,V="return true;",U=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/},{"json-stable-stringify":40}],11:[function(e,r,t){"use strict";function a(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}r.exports=a,a.prototype=Object.create(Error.prototype),a.prototype.constructor=a},{}],12:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s;if(a+="var "+u+" = undefined;",e.opts.format===!1)return a+=" "+u+" = true; ";var f=e.schema.format,d=e.opts.v5&&f.$data,p="";if(d){var m=e.util.getData(f.$data,o,e.dataPathArr),v="format"+s,y="compare"+s;a+=" var "+v+" = formats["+m+"] , "+y+" = "+v+" && "+v+".compare;"}else{var v=e.formats[f];if(!v||!v.compare)return a+=" "+u+" = true; ";var y="formats"+e.util.getProperty(f)+".compare"}var g="formatMaximum"==r,P="formatExclusive"+(g?"Maximum":"Minimum"),E=e.schema[P],b=e.opts.v5&&E&&E.$data,w=g?"<":">",j="result"+s,$=e.opts.v5&&i.$data,x=$?e.util.getData(i.$data,o,e.dataPathArr):i;if($&&(a+=" var schema"+s+" = "+x+"; ",x="schema"+s),b){var S=e.util.getData(E.$data,o,e.dataPathArr),_="exclusive"+s,R="op"+s,O="' + "+R+" + '";a+=" var schemaExcl"+s+" = "+S+"; ",S="schemaExcl"+s,a+=" if (typeof "+S+" != 'boolean' && "+S+" !== undefined) { "+u+" = false; ";var t=P,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatExclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: '"+P+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var k=a;a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+k+"]); ":" validate.errors = ["+k+"]; return false; ":" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(p+="}",a+=" else { "),$&&(a+=" if ("+x+" === undefined) "+u+" = true; else if (typeof "+x+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+j+" = "+y+"("+h+", ",a+=$?""+x:""+e.util.toQuotedString(i),a+=" ); if ("+j+" === undefined) "+u+" = false; var "+_+" = "+S+" === true; if ("+u+" === undefined) { "+u+" = "+_+" ? "+j+" "+w+" 0 : "+j+" "+w+"= 0; } if (!"+u+") var op"+s+" = "+_+" ? '"+w+"' : '"+w+"=';"}else{var _=E===!0,O=w;_||(O+="=");var R="'"+O+"'";$&&(a+=" if ("+x+" === undefined) "+u+" = true; else if (typeof "+x+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+j+" = "+y+"("+h+", ",a+=$?""+x:""+e.util.toQuotedString(i),a+=" ); if ("+j+" === undefined) "+u+" = false; if ("+u+" === undefined) "+u+" = "+j+" "+w,_||(a+="="),a+=" 0;"}a+=""+p+"if (!"+u+") { ";var t=r,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { comparison: '+R+", limit: ",a+=$?""+x:""+e.util.toQuotedString(i),a+=" , exclusive: "+_+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be "+O+' "',a+=$?"' + "+x+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=$?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var k=a;return a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+k+"]); ":" validate.errors = ["+k+"]; return false; ":" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="}"}},{}],13:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d="maximum"==r,p=d?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],v=e.opts.v5&&m&&m.$data,y=d?"<":">",g=d?">":"<";if(v){var P=e.util.getData(m.$data,o,e.dataPathArr),E="exclusive"+s,b="op"+s,w="' + "+b+" + '";a+=" var schemaExcl"+s+" = "+P+"; ",P="schemaExcl"+s,a+=" var exclusive"+s+"; if (typeof "+P+" != 'boolean' && typeof "+P+" != 'undefined') { ";var t=p,j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else if( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=" ((exclusive"+s+" = "+P+" === true) ? "+h+" "+g+"= "+f+" : "+h+" "+g+" "+f+")) { var op"+s+" = exclusive"+s+" ? '"+y+"' : '"+y+"=';"}else{var E=m===!0,w=y;E||(w+="=");var b="'"+w+"'";a+=" if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=" "+h+" "+g,E&&(a+="="),a+=" "+f+") {"}var t=r,j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { comparison: '+b+", limit: "+f+", exclusive: "+E+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be "+w+" ",a+=u?"' + "+f:""+i+"'"),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;return a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d="maxItems"==r?">":"<";a+="if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=" "+h+".length "+d+" "+f+") { ";var t=r,p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { limit: '+f+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have ",a+="maxItems"==r?"more":"less",a+=" than ",a+=u?"' + "+f+" + '":""+i,a+=" items' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d="maxLength"==r?">":"<";a+="if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=e.opts.unicode===!1?" "+h+".length ":" ucs2length("+h+") ",a+=" "+d+" "+f+") { ";var t=r,p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { limit: '+f+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT be ",a+="maxLength"==r?"longer":"shorter",a+=" than ",a+=u?"' + "+f+" + '":""+i,a+=" characters' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;
+u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d="maxProperties"==r?">":"<";a+="if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=" Object.keys("+h+").length "+d+" "+f+") { ";var t=r,p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { limit: '+f+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have ",a+="maxProperties"==r?"more":"less",a+=" than ",a+=u?"' + "+f+" + '":""+i,a+=" properties' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.schema[r],s=e.schemaPath+"."+r,o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,n=e.util.copy(e),l="";n.level++;var c=n.baseId,h=a;if(h)for(var u,f=-1,d=h.length-1;d>f;)u=h[f+=1],e.util.schemaHasRules(u,e.RULES.all)&&(n.schema=u,n.schemaPath=s+"["+f+"]",n.errSchemaPath=o+"/"+f,t+=" "+e.validate(n)+" ",n.baseId=c,i&&(t+=" if (valid"+n.level+") { ",l+="}"));return i&&(t+=" "+l.slice(0,-1)),t=e.util.cleanUpCode(t)}},{}],18:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m=i.every(function(r){return e.util.schemaHasRules(r,e.RULES.all)});if(m){var v=d.baseId;a+=" var "+f+" = errors; var "+u+" = false; ";var y=e.compositeRule;e.compositeRule=d.compositeRule=!0;var g=i;if(g)for(var P,E=-1,b=g.length-1;b>E;)P=g[E+=1],d.schema=P,d.schemaPath=n+"["+E+"]",d.errSchemaPath=l+"/"+E,a+=" "+e.validate(d)+" ",d.baseId=v,a+=" "+u+" = "+u+" || valid"+d.level+"; if (!"+u+") { ",p+="}";e.compositeRule=d.compositeRule=y,a+=" "+p+" if (!"+u+") { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"anyOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}else c&&(a+=" if (true) { ");return a}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i.$data,d=f?e.util.getData(i.$data,o,e.dataPathArr):i;f&&(a+=" var schema"+s+" = "+d+"; ",d="schema"+s),f||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+u+" = equal("+h+", schema"+s+"); if (!"+u+") { ";var p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"constant")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should be equal to constant' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }"}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e),d="";f.level++;var p={},m={};for(P in i){var v=i[P],y=Array.isArray(v)?m:p;y[P]=v}a+="var "+u+" = errors;";var g=e.errorPath;a+="var missing"+s+";";for(var P in m){if(y=m[P],a+=" if ("+h+e.util.getProperty(P)+" !== undefined ",c){a+=" && ( ";var E=y;if(E)for(var b,w=-1,j=E.length-1;j>w;){b=E[w+=1],w&&(a+=" || ");var $=e.util.getProperty(b);a+=" ( "+h+$+" === undefined && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?b:$)+") ) "}a+=")) { ";var x="missing"+s,S="' + "+x+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(g,x,!0):g+" + "+x);var _=_||[];_.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { property: '"+e.util.escapeQuotes(P)+"', missingProperty: '"+S+"', depsCount: "+y.length+", deps: '"+e.util.escapeQuotes(1==y.length?y[0]:y.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==y.length?"property "+e.util.escapeQuotes(y[0]):"properties "+e.util.escapeQuotes(y.join(", ")),a+=" when property "+e.util.escapeQuotes(P)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var R=a;a=_.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+R+"]); ":" validate.errors = ["+R+"]; return false; ":" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var O=y;if(O)for(var I,k=-1,A=O.length-1;A>k;){I=O[k+=1];var $=e.util.getProperty(I),S=e.util.escapeQuotes(I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(g,I,e.opts.jsonPointers)),a+=" if ("+h+$+" === undefined) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { property: '"+e.util.escapeQuotes(P)+"', missingProperty: '"+S+"', depsCount: "+y.length+", deps: '"+e.util.escapeQuotes(1==y.length?y[0]:y.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==y.length?"property "+e.util.escapeQuotes(y[0]):"properties "+e.util.escapeQuotes(y.join(", ")),a+=" when property "+e.util.escapeQuotes(P)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}a+=" } ",c&&(d+="}",a+=" else { ")}e.errorPath=g;var q=f.baseId;for(var P in p){var v=p[P];e.util.schemaHasRules(v,e.RULES.all)&&(a+=" valid"+f.level+" = true; if ("+h+"['"+P+"'] !== undefined) { ",f.schema=v,f.schemaPath=n+e.util.getProperty(P),f.errSchemaPath=l+"/"+e.util.escapeFragment(P),a+=" "+e.validate(f)+" ",f.baseId=q,a+=" } ",c&&(a+=" if (valid"+f.level+") { ",d+="}"))}return c&&(a+=" "+d+" if ("+u+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i.$data,d=f?e.util.getData(i.$data,o,e.dataPathArr):i;f&&(a+=" var schema"+s+" = "+d+"; ",d="schema"+s);var p="i"+s;f||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+u+";",f&&(a+=" if (schema"+s+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+s+")) "+u+" = false; else {"),a+=""+u+" = false;for (var "+p+"=0; "+p+"<schema"+s+".length; "+p+"++) if (equal("+h+", schema"+s+"["+p+"])) { "+u+" = true; break; }",f&&(a+=" } "),a+=" if (!"+u+") { ";var m=m||[];m.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"enum")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var v=a;return a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+=" else { "),a}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||"");if(e.opts.format===!1)return c&&(a+=" if (true) { "),a;var u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;if(u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s),u){var d="format"+s;a+=" var "+d+" = formats["+f+"]; var isObject"+s+" = typeof "+d+" == 'object' && !("+d+" instanceof RegExp) && "+d+".validate; if (isObject"+s+") { var async"+s+" = "+d+".async; "+d+" = "+d+".validate; } if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),a+=" ("+d+" && !(typeof "+d+" == 'function' ? ",a+=e.async?" (async"+s+" ? "+e.yieldAwait+" "+d+"("+h+") : "+d+"("+h+")) ":" "+d+"("+h+") ",a+=" : "+d+".test("+h+")))) {"}else{var d=e.formats[i];if(!d)return c&&(a+=" if (true) { "),a;var p="object"==typeof d&&!(d instanceof RegExp)&&d.validate;if(p){var m=d.async===!0;d=d.validate}if(m){if(!e.async)throw new Error("async format in sync schema");var v="formats"+e.util.getProperty(i)+".validate";a+=" if (!("+e.yieldAwait+" "+v+"("+h+"))) { "}else{a+=" if (! ";var v="formats"+e.util.getProperty(i);p&&(v+=".validate"),a+="function"==typeof d?" "+v+"("+h+") ":" "+v+".test("+h+") ",a+=") { "}}var y=y||[];y.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"format")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { format: ',a+=u?""+f:""+e.util.toQuotedString(i),a+=" } ",e.opts.messages!==!1&&(a+=" , message: 'should match format \"",a+=u?"' + "+f+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var g=a;return a=y.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m=d.dataLevel=e.dataLevel+1,v="data"+m,y=e.baseId;if(a+="var "+f+" = errors;var "+u+";",Array.isArray(i)){var g=e.schema.additionalItems;if(g===!1){a+=" "+u+" = "+h+".length <= "+i.length+"; ";var P=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+u+") { ";var E=E||[];E.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { limit: '+i.length+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var b=a;a=E.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+b+"]); ":" validate.errors = ["+b+"]; return false; ":" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=P,c&&(p+="}",a+=" else { ")}var w=i;if(w)for(var j,$=-1,x=w.length-1;x>$;)if(j=w[$+=1],e.util.schemaHasRules(j,e.RULES.all)){a+=" valid"+d.level+" = true; if ("+h+".length > "+$+") { ";var S=h+"["+$+"]";d.schema=j,d.schemaPath=n+"["+$+"]",d.errSchemaPath=l+"/"+$,d.errorPath=e.util.getPathExpr(e.errorPath,$,e.opts.jsonPointers,!0),d.dataPathArr[m]=$;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,S)+" ":" var "+v+" = "+S+"; "+_+" ",a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}if("object"==typeof g&&e.util.schemaHasRules(g,e.RULES.all)){d.schema=g,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" valid"+d.level+" = true; if ("+h+".length > "+i.length+") { for (var i"+s+" = "+i.length+"; i"+s+" < "+h+".length; i"+s+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"i"+s,e.opts.jsonPointers,!0);var S=h+"[i"+s+"]";d.dataPathArr[m]="i"+s;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,S)+" ":" var "+v+" = "+S+"; "+_+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" for (var i"+s+" = 0; i"+s+" < "+h+".length; i"+s+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"i"+s,e.opts.jsonPointers,!0);var S=h+"[i"+s+"]";d.dataPathArr[m]="i"+s;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,S)+" ":" var "+v+" = "+S+"; "+_+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s),a+="var division"+s+";if (",u&&(a+=" "+f+" !== undefined && ( typeof "+f+" != 'number' || "),a+=" (division"+s+" = "+h+" / "+f+", ",a+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+s+") - division"+s+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+s+" !== parseInt(division"+s+") ",a+=" ) ",u&&(a+=" ) "),a+=" ) { ";var d=d||[];d.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"multipleOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { multipleOf: '+f+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be multiple of ",a+=u?"' + "+f:""+i+"'"),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var p=a;return a=d.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e);if(f.level++,e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+u+" = errors; ";var d=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var p;f.opts.allErrors&&(p=f.opts.allErrors,f.opts.allErrors=!1),a+=" "+e.validate(f)+" ",f.createErrors=!0,p&&(f.opts.allErrors=p),e.compositeRule=f.compositeRule=d,a+=" if (valid"+f.level+") { ";var m=m||[];m.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var v=a;a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++,a+="var "+f+" = errors;var prevValid"+s+" = false;var "+u+" = false;";var m=d.baseId,v=e.compositeRule;e.compositeRule=d.compositeRule=!0;var y=i;if(y)for(var g,P=-1,E=y.length-1;E>P;)g=y[P+=1],e.util.schemaHasRules(g,e.RULES.all)?(d.schema=g,d.schemaPath=n+"["+P+"]",d.errSchemaPath=l+"/"+P,a+=" "+e.validate(d)+" ",d.baseId=m):a+=" var valid"+d.level+" = true; ",P&&(a+=" if (valid"+d.level+" && prevValid"+s+") "+u+" = false; else { ",p+="}"),a+=" if (valid"+d.level+") "+u+" = prevValid"+s+" = true;";e.compositeRule=d.compositeRule=v,a+=""+p+"if (!"+u+") { ";var b=b||[];b.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"oneOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var w=a;return a=b.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},{}],27:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d=u?"(new RegExp("+f+"))":e.usePattern(i);a+="if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),a+=" !"+d+".test("+h+") ) { ";var p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"pattern")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { pattern: ',a+=u?""+f:""+e.util.toQuotedString(i),a+=" } ",e.opts.messages!==!1&&(a+=" , message: 'should match pattern \"",a+=u?"' + "+f+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="key"+s,d="patternMatched"+s,p="";a+="var "+u+" = true;";var m=i;if(m)for(var v,y=-1,g=m.length-1;g>y;){v=m[y+=1],a+=" var "+d+" = false; for (var "+f+" in "+h+") { "+d+" = "+e.usePattern(v)+".test("+f+"); if ("+d+") break; } ";var P=e.util.escapeQuotes(v);a+=" if (!"+d+") { "+u+" = false; var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternRequired")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingPattern: '"+P+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have property matching pattern \\'"+P+"\\'' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ",c&&(p+="}",a+=" else { ")}return a+=""+p}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m=d.dataLevel=e.dataLevel+1,v="data"+m,y=Object.keys(i||{}),g=e.schema.patternProperties||{},P=Object.keys(g),E=e.schema.additionalProperties,b=y.length||P.length,w=E===!1,j="object"==typeof E&&Object.keys(E).length,$=e.opts.removeAdditional,x=w||j||$,S=e.baseId,_=e.schema.required;if(_&&(!e.opts.v5||!_.$data)&&e.opts.loopRequired>_.length)var R=e.util.toHash(_);if(e.opts.v5)var O=e.schema.patternGroups||{},I=Object.keys(O);if(a+="var "+f+" = errors;var valid"+d.level+" = true;",x){if(a+=" for (var key"+s+" in "+h+") { ",b){if(a+=" var isAdditional"+s+" = !(false ",y.length)if(y.length>5)a+=" || validate.schema"+n+"[key"+s+"] ";else{var k=y;if(k)for(var A,q=-1,L=k.length-1;L>q;)A=k[q+=1],a+=" || key"+s+" == "+e.util.toQuotedString(A)+" "}if(P.length){var C=P;if(C)for(var D,V=-1,U=C.length-1;U>V;)D=C[V+=1],a+=" || "+e.usePattern(D)+".test(key"+s+") "}if(e.opts.v5&&I&&I.length){var z=I;if(z)for(var T,V=-1,M=z.length-1;M>V;)T=z[V+=1],a+=" || "+e.usePattern(T)+".test(key"+s+") "}a+=" ); if (isAdditional"+s+") { "}if("all"==$)a+=" delete "+h+"[key"+s+"]; ";else{var Q=e.errorPath,N="' + key"+s+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers)),w)if($)a+=" delete "+h+"[key"+s+"]; ";else{a+=" valid"+d.level+" = false; ";var H=l;l=e.errSchemaPath+"/additionalProperties";var F=F||[];F.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { additionalProperty: '"+N+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have additional properties' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var G=a;a=F.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+G+"]); ":" validate.errors = ["+G+"]; return false; ":" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=H,c&&(a+=" break; ")}else if(j)if("failing"==$){a+=" var "+f+" = errors; ";var J=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=E,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var K=h+"[key"+s+"]";d.dataPathArr[m]="key"+s;var B=e.validate(d);d.baseId=S,a+=e.util.varOccurences(B,v)<2?" "+e.util.varReplace(B,v,K)+" ":" var "+v+" = "+K+"; "+B+" ",a+=" if (!valid"+d.level+") { errors = "+f+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+h+"[key"+s+"]; } ",e.compositeRule=d.compositeRule=J}else{d.schema=E,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var K=h+"[key"+s+"]";d.dataPathArr[m]="key"+s;var B=e.validate(d);d.baseId=S,a+=e.util.varOccurences(B,v)<2?" "+e.util.varReplace(B,v,K)+" ":" var "+v+" = "+K+"; "+B+" ",c&&(a+=" if (!valid"+d.level+") break; ")}e.errorPath=Q}b&&(a+=" } "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}var Y=e.opts.useDefaults&&!e.compositeRule;if(y.length){var Z=y;if(Z)for(var A,W=-1,X=Z.length-1;X>W;){A=Z[W+=1];var ee=i[A];if(e.util.schemaHasRules(ee,e.RULES.all)){var re=e.util.getProperty(A),K=h+re,te=Y&&void 0!==ee["default"];d.schema=ee,d.schemaPath=n+re,d.errSchemaPath=l+"/"+e.util.escapeFragment(A),d.errorPath=e.util.getPath(e.errorPath,A,e.opts.jsonPointers),d.dataPathArr[m]=e.util.toQuotedString(A);var B=e.validate(d);if(d.baseId=S,e.util.varOccurences(B,v)<2){B=e.util.varReplace(B,v,K);var ae=K}else{var ae=v;a+=" var "+v+" = "+K+"; "}if(te)a+=" "+B+" ";else{if(R&&R[A]){a+=" if ("+ae+" === undefined) { valid"+d.level+" = false; ";var Q=e.errorPath,H=l,se=e.util.escapeQuotes(A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(Q,A,e.opts.jsonPointers)),l=e.errSchemaPath+"/required";var F=F||[];F.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+se+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+se+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var G=a;a=F.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+G+"]); ":" validate.errors = ["+G+"]; return false; ":" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=H,e.errorPath=Q,a+=" } else { "}else a+=c?" if ("+ae+" === undefined) { valid"+d.level+" = true; } else { ":" if ("+ae+" !== undefined) { ";a+=" "+B+" } "}}c&&(a+=" if (valid"+d.level+") { ",p+="}")}}var oe=P;if(oe)for(var D,ie=-1,ne=oe.length-1;ne>ie;){D=oe[ie+=1];var ee=g[D];if(e.util.schemaHasRules(ee,e.RULES.all)){d.schema=ee,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(D),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(D),a+=" for (var key"+s+" in "+h+") { if ("+e.usePattern(D)+".test(key"+s+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var K=h+"[key"+s+"]";d.dataPathArr[m]="key"+s;var B=e.validate(d);d.baseId=S,a+=e.util.varOccurences(B,v)<2?" "+e.util.varReplace(B,v,K)+" ":" var "+v+" = "+K+"; "+B+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" else valid"+d.level+" = true; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}}if(e.opts.v5){var le=I;if(le)for(var T,ce=-1,he=le.length-1;he>ce;){T=le[ce+=1];var ue=O[T],ee=ue.schema;if(e.util.schemaHasRules(ee,e.RULES.all)){d.schema=ee,d.schemaPath=e.schemaPath+".patternGroups"+e.util.getProperty(T)+".schema",d.errSchemaPath=e.errSchemaPath+"/patternGroups/"+e.util.escapeFragment(T)+"/schema",a+=" var pgPropCount"+s+" = 0; for (var key"+s+" in "+h+") { if ("+e.usePattern(T)+".test(key"+s+")) { pgPropCount"+s+"++; ",d.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var K=h+"[key"+s+"]";d.dataPathArr[m]="key"+s;var B=e.validate(d);d.baseId=S,a+=e.util.varOccurences(B,v)<2?" "+e.util.varReplace(B,v,K)+" ":" var "+v+" = "+K+"; "+B+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" else valid"+d.level+" = true; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}");var fe=ue.minimum,de=ue.maximum;if(void 0!==fe||void 0!==de){a+=" var "+u+" = true; ";var H=l;if(void 0!==fe){var pe=fe,me="minimum",ve="less";a+=" "+u+" = pgPropCount"+s+" >= "+fe+"; ",l=e.errSchemaPath+"/patternGroups/minimum",a+=" if (!"+u+") { ";var F=F||[];F.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { reason: '"+me+"', limit: "+pe+", pattern: '"+e.util.escapeQuotes(T)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+ve+" than "+pe+' properties matching pattern "'+e.util.escapeQuotes(T)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var G=a;a=F.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+G+"]); ":" validate.errors = ["+G+"]; return false; ":" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",void 0!==de&&(a+=" else ")}if(void 0!==de){var pe=de,me="maximum",ve="more";a+=" "+u+" = pgPropCount"+s+" <= "+de+"; ",l=e.errSchemaPath+"/patternGroups/maximum",a+=" if (!"+u+") { ";var F=F||[];F.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { reason: '"+me+"', limit: "+pe+", pattern: '"+e.util.escapeQuotes(T)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+ve+" than "+pe+' properties matching pattern "'+e.util.escapeQuotes(T)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var G=a;a=F.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+G+"]); ":" validate.errors = ["+G+"]; return false; ":" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } "}l=H,c&&(a+=" if ("+u+") { ",p+="}")}}}}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(n||""),f="valid"+i;if("#"==l||"#/"==l)e.isRoot?(a=e.async,s="validate"):(a=e.root.schema.$async===!0,s="root.refVal[0]");else{var d=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===d){var p="can't resolve reference "+l+" from id "+e.baseId;if("fail"==e.opts.missingRefs){console.log(p);var m=m||[];m.push(o),o="",e.createErrors!==!1?(o+=" { keyword: '"+(t||"$ref")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+c+"\" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",e.opts.messages!==!1&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var v=o;o=m.pop(),o+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs){var y=new Error(p);throw y.missingRef=e.resolve.url(e.baseId,l),y.missingSchema=e.resolve.normalizeId(e.resolve.fullPath(y.missingRef)),y}console.log(p),h&&(o+=" if (true) { ")}}else if(d.inline){var g=e.util.copy(e);g.level++,g.schema=d.schema,g.schemaPath="",g.errSchemaPath=l;var P=e.validate(g).replace(/validate\.schema/g,d.code);o+=" "+P+" ",h&&(o+=" if (valid"+g.level+") { ")}else a=d.$async===!0,s=d.code}if(s){var m=m||[];m.push(o),o="",o+=e.opts.passContext?" "+s+".call(this, ":" "+s+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath),o+=n?" , data"+(n-1||"")+" , "+e.dataPathArr[n]+" ":" , parentData , parentDataProperty ",o+=") ";var E=o;if(o=m.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");o+=" try { ",h&&(o+="var "+f+" ="),o+=" "+e.yieldAwait+" "+E+"; } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; } ",h&&(o+=" if ("+f+") { ")}else o+=" if (!"+E+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i.$data,d=f?e.util.getData(i.$data,o,e.dataPathArr):i;
+if(f&&(a+=" var schema"+s+" = "+d+"; ",d="schema"+s),!f)if(e.opts.loopRequired>i.length&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],m=i;if(m)for(var v,y=-1,g=m.length-1;g>y;){v=m[y+=1];var P=e.schema.properties[v];P&&e.util.schemaHasRules(P,e.RULES.all)||(p[p.length]=v)}}else var p=i;if(f||p.length){var E=e.errorPath,b=f||p.length>=e.opts.loopRequired;if(c)if(a+=" var missing"+s+"; ",b){f||(a+=" var schema"+s+" = validate.schema"+n+"; ");var w="i"+s,j="schema"+s+"["+w+"]",$="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,j,e.opts.jsonPointers)),a+=" var "+u+" = true; ",f&&(a+=" if (schema"+s+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+s+")) "+u+" = false; else {"),a+=" for (var "+w+" = 0; "+w+" < schema"+s+".length; "+w+"++) { "+u+" = "+h+"[schema"+s+"["+w+"]] !== undefined; if (!"+u+") break; } ",f&&(a+=" } "),a+=" if (!"+u+") { ";var x=x||[];x.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var S=a;a=x.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var _=p;if(_)for(var R,w=-1,O=_.length-1;O>w;){R=_[w+=1],w&&(a+=" || ");var I=e.util.getProperty(R);a+=" ( "+h+I+" === undefined && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?R:I)+") ) "}a+=") { ";var j="missing"+s,$="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,j,!0):E+" + "+j);var x=x||[];x.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var S=a;a=x.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else if(b){f||(a+=" var schema"+s+" = validate.schema"+n+"; ");var w="i"+s,j="schema"+s+"["+w+"]",$="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,j,e.opts.jsonPointers)),f&&(a+=" if (schema"+s+" && !Array.isArray(schema"+s+")) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (schema"+s+" !== undefined) { "),a+=" for (var "+w+" = 0; "+w+" < schema"+s+".length; "+w+"++) { if ("+h+"[schema"+s+"["+w+"]] === undefined) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",f&&(a+=" } ")}else{var k=p;if(k)for(var A,q=-1,L=k.length-1;L>q;){A=k[q+=1];var I=e.util.getProperty(A),$=e.util.escapeQuotes(A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,A,e.opts.jsonPointers)),a+=" if ("+h+I+" === undefined) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=E}else c&&(a+=" if (true) {");return a}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m,v="ifPassed"+e.level,y=d.baseId;a+="var "+v+";";var g=i;if(g)for(var P,E=-1,b=g.length-1;b>E;){if(P=g[E+=1],E&&!m&&(a+=" if (!"+v+") { ",p+="}"),P["if"]&&e.util.schemaHasRules(P["if"],e.RULES.all)){a+=" var "+f+" = errors; ";var w=e.compositeRule;if(e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.schema=P["if"],d.schemaPath=n+"["+E+"].if",d.errSchemaPath=l+"/"+E+"/if",a+=" "+e.validate(d)+" ",d.baseId=y,d.createErrors=!0,e.compositeRule=d.compositeRule=w,a+=" "+v+" = valid"+d.level+"; if ("+v+") { ","boolean"==typeof P.then){if(P.then===!1){var j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { caseIndex: '+E+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var valid"+d.level+" = "+P.then+"; "}else d.schema=P.then,d.schemaPath=n+"["+E+"].then",d.errSchemaPath=l+"/"+E+"/then",a+=" "+e.validate(d)+" ",d.baseId=y;a+=" } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } } "}else if(a+=" "+v+" = true; ","boolean"==typeof P.then){if(P.then===!1){var j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { caseIndex: '+E+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var valid"+d.level+" = "+P.then+"; "}else d.schema=P.then,d.schemaPath=n+"["+E+"].then",d.errSchemaPath=l+"/"+E+"/then",a+=" "+e.validate(d)+" ",d.baseId=y;m=P["continue"]}return a+=""+p+"var "+u+" = valid"+d.level+"; ",a=e.util.cleanUpCode(a)}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i.$data,d=f?e.util.getData(i.$data,o,e.dataPathArr):i;if(f&&(a+=" var schema"+s+" = "+d+"; ",d="schema"+s),(i||f)&&e.opts.uniqueItems!==!1){f&&(a+=" var "+u+"; if ("+d+" === false || "+d+" === undefined) "+u+" = true; else if (typeof "+d+" != 'boolean') "+u+" = false; else { "),a+=" var "+u+" = true; if ("+h+".length > 1) { var i = "+h+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+u+" = false; break outer; } } } } ",f&&(a+=" } "),a+=" if (!"+u+") { ";var p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"uniqueItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { i: i, j: j } ',e.opts.messages!==!1&&(a+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(a+=" , schema: ",a+=f?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { ")}else c&&(a+=" if (true) { ");return a}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r){function t(e){for(var r=0;e.rules.length>r;r++)if(a(e.rules[r]))return!0}function a(r){return void 0!==e.schema[r.keyword]||"properties"==r.keyword&&(e.schema.additionalProperties===!1||"object"==typeof e.schema.additionalProperties||e.schema.patternProperties&&Object.keys(e.schema.patternProperties).length||e.opts.v5&&e.schema.patternGroups&&Object.keys(e.schema.patternGroups).length)}var s="",o=e.schema.$async===!0;if(e.isTop){var i=e.isTop,n=e.level=0,l=e.dataLevel=0,c="data";if(e.rootId=e.resolve.fullPath(e.root.schema.id),e.baseId=e.baseId||e.rootId,o){e.async=!0;var h="es7"==e.opts.async;e.yieldAwait=h?"await":"yield"}delete e.isTop,e.dataPathArr=[void 0],s+=" validate = ",o?h?s+=" (async function ":("co*"==e.opts.async&&(s+="co.wrap"),s+="(function* "):s+=" (function ",s+=" (data, dataPath, parentData, parentDataProperty) { 'use strict'; var vErrors = null; ",s+=" var errors = 0; "}else{var n=e.level,l=e.dataLevel,c="data"+(l||"");if(e.schema.id&&(e.baseId=e.resolve.url(e.baseId,e.schema.id)),o&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+n+" = errors;"}var u,f="valid"+n,d=!e.opts.allErrors,p="",m="",v=e.schema.type,y=Array.isArray(v);if(v&&e.opts.coerceTypes){var g=e.util.coerceToTypes(v);if(g){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") { ";var w="dataType"+n,j="coerced"+n;s+=" var "+w+" = typeof "+c+"; var "+j+" = undefined; ";var $="",x=g;if(x)for(var S,_=-1,R=x.length-1;R>_;)S=x[_+=1],_&&(s+=" if ("+j+" === undefined) { ",$+="}"),"string"==S?s+=" if ("+w+" == 'number' || "+w+" == 'boolean') "+j+" = '' + "+c+"; else if ("+c+" === null) "+j+" = ''; ":"number"==S||"integer"==S?(s+=" if ("+w+" == 'boolean' || "+c+" === null || ("+w+" == 'string' && "+c+" && "+c+" == +"+c+" ","integer"==S&&(s+=" && !("+c+" % 1)"),s+=")) "+j+" = +"+c+"; "):"boolean"==S?s+=" if ("+c+" === 'false' || "+c+" === 0 || "+c+" === null) "+j+" = false; else if ("+c+" === 'true' || "+c+" === 1) "+j+" = true; ":"null"==S&&(s+=" if ("+c+" === '' || "+c+" === 0 || "+c+" === false) "+j+" = null; ");s+=" "+$+" if ("+j+" === undefined) { ";var O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;if(s=O.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { ",l){var k="data"+(l-1||""),A=e.dataPathArr[l];s+=" "+c+" = "+k+"["+A+"] = "+j+"; "}else s+=" data = "+j+"; if (parentData !== undefined) parentData[parentDataProperty] = "+j+"; ";s+=" } } "}}var q=e.RULES;if(q)for(var L,C=-1,D=q.length-1;D>C;)if(L=q[C+=1],t(L)){if(L.type&&(s+=" if ("+e.util.checkDataType(L.type,c)+") { "),e.opts.useDefaults&&!e.compositeRule)if("object"==L.type&&e.schema.properties){var V=e.schema.properties,U=Object.keys(V),z=U;if(z)for(var T,M=-1,Q=z.length-1;Q>M;){T=z[M+=1];var N=V[T];if(void 0!==N["default"]){var H=c+e.util.getProperty(T);s+=" if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(N["default"])+" ":" "+JSON.stringify(N["default"])+" ",s+="; "}}}else if("array"==L.type&&Array.isArray(e.schema.items)){var F=e.schema.items;if(F)for(var N,_=-1,G=F.length-1;G>_;)if(N=F[_+=1],void 0!==N["default"]){var H=c+"["+_+"]";s+=" if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(N["default"])+" ":" "+JSON.stringify(N["default"])+" ",s+="; "}}var J=L.rules;if(J)for(var K,B=-1,Y=J.length-1;Y>B;)if(K=J[B+=1],a(K)){if(K.custom){var V=e.schema[K.keyword],Z=e.useCustomRule(K,V,e.schema,e),W=Z.code+".errors",P=e.schemaPath+"."+K.keyword,E=e.errSchemaPath+"/"+K.keyword,X="errs"+n,_="i"+n,ee="ruleErr"+n,re=K.definition,te=re.async,ae=re.inline,se=re.macro;if(te&&!e.async)throw new Error("async keyword in sync schema");if(ae||se||(s+=""+W+" = null;"),s+="var "+X+" = errors;var valid"+n+";",ae&&re.statements)s+=" "+Z.validate;else if(se){var oe=e.util.copy(e);oe.level++,oe.schema=Z.validate,oe.schemaPath="";var ie=e.compositeRule;e.compositeRule=oe.compositeRule=!0;var ne=e.validate(oe).replace(/validate\.schema/g,Z.code);e.compositeRule=oe.compositeRule=ie,s+=" "+ne}else if(re.compile||re.validate){var O=O||[];O.push(s),s="",s+=" "+Z.code+".call( ",s+=e.opts.passContext?"this":"self",s+=re.compile||re.schema===!1?" , "+c+" ":" , validate.schema"+P+" , "+c+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath),s+=l?" , data"+(l-1||"")+" , "+e.dataPathArr[l]+" ":" , parentData , parentDataProperty ",s+=" ) ";var le=s;s=O.pop(),re.errors!==!1&&(te?(W="customErrors"+n,s+=" var "+W+" = null; try { valid"+n+" = "+e.yieldAwait+le+"; } catch (e) { valid"+n+" = false; if (e instanceof ValidationError) "+W+" = e.errors; else throw e; } "):s+=" "+Z.code+".errors = null; ")}s+="if (! ",s+=ae?re.statements?" valid"+n+" ":" ("+Z.validate+") ":se?" valid"+oe.level+" ":te?re.errors===!1?" ("+e.yieldAwait+le+") ":" valid"+n+" ":" "+le+" ",s+=") { ",u=K.keyword;var O=O||[];O.push(s),s="";var O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { keyword: '"+K.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+K.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=O.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var ce=s;s=O.pop(),ae?re.errors?"full"!=re.errors&&(s+=" for (var "+_+"="+X+"; "+_+"<errors; "+_+"++) { var "+ee+" = vErrors["+_+"]; if ("+ee+".dataPath === undefined) { "+ee+".dataPath = (dataPath || '') + "+e.errorPath+"; } if ("+ee+".schemaPath === undefined) { "+ee+'.schemaPath = "'+E+'"; } ',e.opts.verbose&&(s+=" "+ee+".schema = validate.schema"+P+"; "+ee+".data = "+c+"; "),s+=" } "):re.errors===!1?s+=" "+ce+" ":(s+=" if ("+X+" == errors) { "+ce+" } else { for (var "+_+"="+X+"; "+_+"<errors; "+_+"++) { var "+ee+" = vErrors["+_+"]; if ("+ee+".dataPath === undefined) { "+ee+".dataPath = (dataPath || '') + "+e.errorPath+"; } if ("+ee+".schemaPath === undefined) { "+ee+'.schemaPath = "'+E+'"; } ',e.opts.verbose&&(s+=" "+ee+".schema = validate.schema"+P+"; "+ee+".data = "+c+"; "),s+=" } } "):se?(s+=" var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(u||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { keyword: '"+K.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+K.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&d&&(s+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false ")):re.errors===!1?s+=" "+ce+" ":(s+=" if (Array.isArray("+W+")) { if (vErrors === null) vErrors = "+W+"; else vErrors.concat("+W+"); errors = vErrors.length; for (var "+_+"="+X+"; "+_+"<errors; "+_+"++) { var "+ee+" = vErrors["+_+"]; "+ee+".dataPath = (dataPath || '') + "+e.errorPath+"; "+ee+'.schemaPath = "'+E+'"; ',e.opts.verbose&&(s+=" "+ee+".schema = validate.schema"+P+"; "+ee+".data = "+c+"; "),s+=" } } else { "+ce+" } "),u=void 0,s+=" } ",d&&(s+=" else { ")}else s+=" "+K.code(e,K.keyword)+" ";d&&(p+="}")}if(d&&(s+=" "+p+" ",p=""),L.type&&(s+=" } ",v&&v===L.type)){var he=!0;s+=" else { ";var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=O.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } "}d&&(s+=" if (errors === ",s+=i?"0":"errs_"+n,s+=") { ",m+="}")}if(v&&!he&&(!e.opts.coerceTypes||!g)){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") { ";var O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=O.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }"}return d&&(s+=" "+m+" "),i?(o?(s+=" if (errors === 0) return true; ",s+=" else throw new ValidationError(vErrors); "):(s+=" validate.errors = vErrors; ",s+=" return errors === 0; "),s+=" });"):s+=" var "+f+" = errors === errs_"+n+";",s=e.util.cleanUpCode(s),i&&d&&(s=e.util.cleanUpVarErrors(s,o)),s}},{}],35:[function(e,r,t){"use strict";var a=/^[a-z_$][a-z0-9_$]*$/i;r.exports=function(e,r){function t(e,r,t){for(var a,s=0;o.RULES.length>s;s++){var i=o.RULES[s];if(i.type==r){a=i;break}}a||(a={type:r,rules:[]},o.RULES.push(a));var n={keyword:e,definition:t,custom:!0};a.rules.push(n)}function s(e){if(!o.RULES.types[e])throw new Error("Unknown type "+e)}var o=this;if(this.RULES.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!a.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){var i=r.type;if(Array.isArray(i)){var n,l=i.length;for(n=0;l>n;n++)s(i[n]);for(n=0;l>n;n++)t(e,i[n],r)}else i&&s(i),t(e,i,r)}this.RULES.keywords[e]=!0,this.RULES.all[e]=!0}},{}],36:[function(e,r,t){r.exports={id:"http://json-schema.org/draft-04/schema#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{"default":0}]},simpleTypes:{"enum":["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},"default":{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:!0},maximum:{type:"number"},exclusiveMaximum:{type:"boolean","default":!1},minimum:{type:"number"},exclusiveMinimum:{type:"boolean","default":!1},maxLength:{$ref:"#/definitions/positiveInteger"},minLength:{$ref:"#/definitions/positiveIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],"default":{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],"default":{}},maxItems:{$ref:"#/definitions/positiveInteger"},minItems:{$ref:"#/definitions/positiveIntegerDefault0"},uniqueItems:{type:"boolean","default":!1},maxProperties:{$ref:"#/definitions/positiveInteger"},minProperties:{$ref:"#/definitions/positiveIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],"default":{}},definitions:{type:"object",additionalProperties:{$ref:"#"},"default":{}},properties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},"enum":{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]},"default":{}}},{}],37:[function(e,r,t){r.exports={id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema (v5 proposals)",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{"default":0}]},simpleTypes:{"enum":["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},$data:{type:"object",required:["$data"],properties:{$data:{type:"string",format:"relative-json-pointer"}},additionalProperties:!1}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},"default":{},multipleOf:{anyOf:[{type:"number",minimum:0,exclusiveMinimum:!0},{$ref:"#/definitions/$data"}]},maximum:{anyOf:[{type:"number"},{$ref:"#/definitions/$data"}]},exclusiveMaximum:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},minimum:{anyOf:[{type:"number"},{$ref:"#/definitions/$data"}]},exclusiveMinimum:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},maxLength:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minLength:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},pattern:{anyOf:[{type:"string",format:"regex"},{$ref:"#/definitions/$data"}]},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"},{$ref:"#/definitions/$data"}],"default":{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],"default":{}},maxItems:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minItems:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},uniqueItems:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},maxProperties:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minProperties:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},required:{anyOf:[{$ref:"#/definitions/stringArray"},{$ref:"#/definitions/$data"}]},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"},{$ref:"#/definitions/$data"}],"default":{}},definitions:{type:"object",additionalProperties:{$ref:"#"},"default":{}},properties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},"enum":{anyOf:[{type:"array",minItems:1,uniqueItems:!0},{$ref:"#/definitions/$data"}]},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"},format:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatMaximum:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatMinimum:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatExclusiveMaximum:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},formatExclusiveMinimum:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},constant:{anyOf:[{},{$ref:"#/definitions/$data"}]},contains:{$ref:"#"},patternGroups:{type:"object",additionalProperties:{type:"object",required:["schema"],properties:{maximum:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minimum:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},schema:{$ref:"#"}},additionalProperties:!1},"default":{}},"switch":{type:"array",items:{required:["then"],properties:{"if":{$ref:"#"},then:{anyOf:[{type:"boolean"},{$ref:"#"}]},"continue":{type:"boolean"}},additionalProperties:!1,dependencies:{"continue":["if"]}}}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"],formatMaximum:["format"],formatMinimum:["format"],formatExclusiveMaximum:["formatMaximum"],formatExclusiveMinimum:["formatMinimum"]},"default":{}}},{}],38:[function(e,r,t){"use strict";function a(r){function t(e,t,s){var o={inline:s||a[e],statements:!0,errors:"full"};t&&(o.type=t),r.addKeyword(e,o)}var a={"switch":e("./dotjs/switch"),constant:e("./dotjs/constant"),_formatLimit:e("./dotjs/_formatLimit"),patternRequired:e("./dotjs/patternRequired")};if(r._opts.meta!==!1){var i=e("./refs/json-schema-v5.json");r.addMetaSchema(i,o)}t("constant"),r.addKeyword("contains",{type:"array",macro:s}),t("formatMaximum","string",a._formatLimit),t("formatMinimum","string",a._formatLimit),r.addKeyword("formatExclusiveMaximum"),r.addKeyword("formatExclusiveMinimum"),r.addKeyword("patternGroups"),t("patternRequired","object"),t("switch")}function s(e){return{not:{items:{not:e}}}}var o="https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json";r.exports={enable:a,META_SCHEMA_ID:o}},{"./dotjs/_formatLimit":12,"./dotjs/constant":19,"./dotjs/patternRequired":28,"./dotjs/switch":32,"./refs/json-schema-v5.json":37}],39:[function(e,r,t){function a(e){var r=this,t=f.call(arguments,1);return new Promise(function(a,o){function i(r){var t;try{t=e.next(r)}catch(a){return o(a)}c(t)}function n(r){var t;try{t=e["throw"](r)}catch(a){return o(a)}c(t)}function c(e){if(e.done)return a(e.value);var t=s.call(r,e.value);return t&&l(t)?t.then(i,n):n(new TypeError('You may only yield a function, promise, generator, array, or object, but the following object was passed: "'+String(e.value)+'"'))}return"function"==typeof e&&(e=e.apply(r,t)),e&&"function"==typeof e.next?void i():a(e)})}function s(e){return e?l(e)?e:h(e)||c(e)?a.call(this,e):"function"==typeof e?o.call(this,e):Array.isArray(e)?i.call(this,e):u(e)?n.call(this,e):e:e}function o(e){var r=this;return new Promise(function(t,a){e.call(r,function(e,r){return e?a(e):(arguments.length>2&&(r=f.call(arguments,1)),void t(r))})})}function i(e){return Promise.all(e.map(s,this))}function n(e){function r(e,r){t[r]=void 0,o.push(e.then(function(e){t[r]=e}))}for(var t=new e.constructor,a=Object.keys(e),o=[],i=0;a.length>i;i++){var n=a[i],c=s.call(this,e[n]);c&&l(c)?r(c,n):t[n]=e[n]}return Promise.all(o).then(function(){return t})}function l(e){return"function"==typeof e.then}function c(e){return"function"==typeof e.next&&"function"==typeof e["throw"]}function h(e){var r=e.constructor;return r?"GeneratorFunction"===r.name||"GeneratorFunction"===r.displayName?!0:c(r.prototype):!1}function u(e){return Object==e.constructor}var f=Array.prototype.slice;r.exports=a["default"]=a.co=a,a.wrap=function(e){function r(){return a.call(this,e.apply(this,arguments))}return r.__generatorFunction__=e,r}},{}],40:[function(e,r,t){var a="undefined"!=typeof JSON?JSON:e("jsonify");r.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var t=r.space||"";"number"==typeof t&&(t=Array(t+1).join(" "));var i="boolean"==typeof r.cycles?r.cycles:!1,n=r.replacer||function(e,r){return r},l=r.cmp&&function(e){return function(r){return function(t,a){var s={key:t,value:r[t]},o={key:a,value:r[a]};return e(s,o)}}}(r.cmp),c=[];return function h(e,r,u,f){var d=t?"\n"+new Array(f+1).join(t):"",p=t?": ":":";if(u&&u.toJSON&&"function"==typeof u.toJSON&&(u=u.toJSON()),u=n.call(e,r,u),void 0!==u){if("object"!=typeof u||null===u)return a.stringify(u);if(s(u)){for(var m=[],v=0;u.length>v;v++){var y=h(u,v,u[v],f+1)||a.stringify(null);m.push(d+t+y)}return"["+m.join(",")+d+"]"}if(-1!==c.indexOf(u)){if(i)return a.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}c.push(u);for(var g=o(u).sort(l&&l(u)),m=[],v=0;g.length>v;v++){var r=g[v],P=h(u,r,u[r],f+1);if(P){var E=a.stringify(r)+p+P;m.push(d+t+E)}}return c.splice(c.indexOf(u),1),"{"+m.join(",")+d+"}"}}({"":e},"",e,0)};var s=Array.isArray||function(e){return"[object Array]"==={}.toString.call(e)},o=Object.keys||function(e){var r=Object.prototype.hasOwnProperty||function(){return!0},t=[];for(var a in e)r.call(e,a)&&t.push(a);return t}},{jsonify:41}],41:[function(e,r,t){t.parse=e("./lib/parse"),t.stringify=e("./lib/stringify")},{"./lib/parse":42,"./lib/stringify":43}],42:[function(e,r,t){var a,s,o,i,n={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:" "},l=function(e){throw{name:"SyntaxError",message:e,at:a,text:o}},c=function(e){return e&&e!==s&&l("Expected '"+e+"' instead of '"+s+"'"),s=o.charAt(a),a+=1,s},h=function(){var e,r="";for("-"===s&&(r="-",c("-"));s>="0"&&"9">=s;)r+=s,c();if("."===s)for(r+=".";c()&&s>="0"&&"9">=s;)r+=s;if("e"===s||"E"===s)for(r+=s,c(),"-"!==s&&"+"!==s||(r+=s,c());s>="0"&&"9">=s;)r+=s,c();return e=+r,isFinite(e)?e:void l("Bad number")},u=function(){var e,r,t,a="";if('"'===s)for(;c();){if('"'===s)return c(),a;if("\\"===s)if(c(),"u"===s){for(t=0,r=0;4>r&&(e=parseInt(c(),16),isFinite(e));r+=1)t=16*t+e;a+=String.fromCharCode(t)}else{if("string"!=typeof n[s])break;a+=n[s]}else a+=s}l("Bad string")},f=function(){for(;s&&" ">=s;)c()},d=function(){switch(s){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null}l("Unexpected '"+s+"'")},p=function(){var e=[];if("["===s){if(c("["),f(),"]"===s)return c("]"),e;for(;s;){if(e.push(i()),f(),"]"===s)return c("]"),e;c(","),f()}}l("Bad array")},m=function(){var e,r={};
+if("{"===s){if(c("{"),f(),"}"===s)return c("}"),r;for(;s;){if(e=u(),f(),c(":"),Object.hasOwnProperty.call(r,e)&&l('Duplicate key "'+e+'"'),r[e]=i(),f(),"}"===s)return c("}"),r;c(","),f()}}l("Bad object")};i=function(){switch(f(),s){case"{":return m();case"[":return p();case'"':return u();case"-":return h();default:return s>="0"&&"9">=s?h():d()}},r.exports=function(e,r){var t;return o=e,a=0,s=" ",t=i(),f(),s&&l("Syntax error"),"function"==typeof r?function n(e,t){var a,s,o=e[t];if(o&&"object"==typeof o)for(a in o)Object.prototype.hasOwnProperty.call(o,a)&&(s=n(o,a),void 0!==s?o[a]=s:delete o[a]);return r.call(e,t,o)}({"":t},""):t}},{}],43:[function(e,r,t){function a(e){return l.lastIndex=0,l.test(e)?'"'+e.replace(l,function(e){var r=c[e];return"string"==typeof r?r:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function s(e,r){var t,l,c,h,u,f=o,d=r[e];switch(d&&"object"==typeof d&&"function"==typeof d.toJSON&&(d=d.toJSON(e)),"function"==typeof n&&(d=n.call(r,e,d)),typeof d){case"string":return a(d);case"number":return isFinite(d)?String(d):"null";case"boolean":case"null":return String(d);case"object":if(!d)return"null";if(o+=i,u=[],"[object Array]"===Object.prototype.toString.apply(d)){for(h=d.length,t=0;h>t;t+=1)u[t]=s(t,d)||"null";return c=0===u.length?"[]":o?"[\n"+o+u.join(",\n"+o)+"\n"+f+"]":"["+u.join(",")+"]",o=f,c}if(n&&"object"==typeof n)for(h=n.length,t=0;h>t;t+=1)l=n[t],"string"==typeof l&&(c=s(l,d),c&&u.push(a(l)+(o?": ":":")+c));else for(l in d)Object.prototype.hasOwnProperty.call(d,l)&&(c=s(l,d),c&&u.push(a(l)+(o?": ":":")+c));return c=0===u.length?"{}":o?"{\n"+o+u.join(",\n"+o)+"\n"+f+"}":"{"+u.join(",")+"}",o=f,c}}var o,i,n,l=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,c={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};r.exports=function(e,r,t){var a;if(o="",i="","number"==typeof t)for(a=0;t>a;a+=1)i+=" ";else"string"==typeof t&&(i=t);if(n=r,r&&"function"!=typeof r&&("object"!=typeof r||"number"!=typeof r.length))throw new Error("JSON.stringify");return s("",{"":e})}},{}],44:[function(e,r,t){(function(e){!function(a){function s(e){throw new RangeError(q[e])}function o(e,r){for(var t=e.length,a=[];t--;)a[t]=r(e[t]);return a}function i(e,r){var t=e.split("@"),a="";t.length>1&&(a=t[0]+"@",e=t[1]),e=e.replace(A,".");var s=e.split("."),i=o(s,r).join(".");return a+i}function n(e){for(var r,t,a=[],s=0,o=e.length;o>s;)r=e.charCodeAt(s++),r>=55296&&56319>=r&&o>s?(t=e.charCodeAt(s++),56320==(64512&t)?a.push(((1023&r)<<10)+(1023&t)+65536):(a.push(r),s--)):a.push(r);return a}function l(e){return o(e,function(e){var r="";return e>65535&&(e-=65536,r+=D(e>>>10&1023|55296),e=56320|1023&e),r+=D(e)}).join("")}function c(e){return 10>e-48?e-22:26>e-65?e-65:26>e-97?e-97:w}function h(e,r){return e+22+75*(26>e)-((0!=r)<<5)}function u(e,r,t){var a=0;for(e=t?C(e/S):e>>1,e+=C(e/r);e>L*$>>1;a+=w)e=C(e/L);return C(a+(L+1)*e/(e+x))}function f(e){var r,t,a,o,i,n,h,f,d,p,m=[],v=e.length,y=0,g=R,P=_;for(t=e.lastIndexOf(O),0>t&&(t=0),a=0;t>a;++a)e.charCodeAt(a)>=128&&s("not-basic"),m.push(e.charCodeAt(a));for(o=t>0?t+1:0;v>o;){for(i=y,n=1,h=w;o>=v&&s("invalid-input"),f=c(e.charCodeAt(o++)),(f>=w||f>C((b-y)/n))&&s("overflow"),y+=f*n,d=P>=h?j:h>=P+$?$:h-P,!(d>f);h+=w)p=w-d,n>C(b/p)&&s("overflow"),n*=p;r=m.length+1,P=u(y-i,r,0==i),C(y/r)>b-g&&s("overflow"),g+=C(y/r),y%=r,m.splice(y++,0,g)}return l(m)}function d(e){var r,t,a,o,i,l,c,f,d,p,m,v,y,g,P,E=[];for(e=n(e),v=e.length,r=R,t=0,i=_,l=0;v>l;++l)m=e[l],128>m&&E.push(D(m));for(a=o=E.length,o&&E.push(O);v>a;){for(c=b,l=0;v>l;++l)m=e[l],m>=r&&c>m&&(c=m);for(y=a+1,c-r>C((b-t)/y)&&s("overflow"),t+=(c-r)*y,r=c,l=0;v>l;++l)if(m=e[l],r>m&&++t>b&&s("overflow"),m==r){for(f=t,d=w;p=i>=d?j:d>=i+$?$:d-i,!(p>f);d+=w)P=f-p,g=w-p,E.push(D(h(p+P%g,0))),f=C(P/g);E.push(D(h(f,0))),i=u(t,y,a==o),t=0,++a}++t,++r}return E.join("")}function p(e){return i(e,function(e){return I.test(e)?f(e.slice(4).toLowerCase()):e})}function m(e){return i(e,function(e){return k.test(e)?"xn--"+d(e):e})}var v="object"==typeof t&&t&&!t.nodeType&&t,y="object"==typeof r&&r&&!r.nodeType&&r,g="object"==typeof e&&e;g.global!==g&&g.window!==g&&g.self!==g||(a=g);var P,E,b=2147483647,w=36,j=1,$=26,x=38,S=700,_=72,R=128,O="-",I=/^xn--/,k=/[^\x20-\x7E]/,A=/[\x2E\u3002\uFF0E\uFF61]/g,q={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},L=w-j,C=Math.floor,D=String.fromCharCode;if(P={version:"1.4.1",ucs2:{decode:n,encode:l},decode:f,encode:d,toASCII:m,toUnicode:p},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return P});else if(v&&y)if(r.exports==v)y.exports=P;else for(E in P)P.hasOwnProperty(E)&&(v[E]=P[E]);else a.punycode=P}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],45:[function(e,r,t){"use strict";function a(e,r){return Object.prototype.hasOwnProperty.call(e,r)}r.exports=function(e,r,t,o){r=r||"&",t=t||"=";var i={};if("string"!=typeof e||0===e.length)return i;var n=/\+/g;e=e.split(r);var l=1e3;o&&"number"==typeof o.maxKeys&&(l=o.maxKeys);var c=e.length;l>0&&c>l&&(c=l);for(var h=0;c>h;++h){var u,f,d,p,m=e[h].replace(n,"%20"),v=m.indexOf(t);v>=0?(u=m.substr(0,v),f=m.substr(v+1)):(u=m,f=""),d=decodeURIComponent(u),p=decodeURIComponent(f),a(i,d)?s(i[d])?i[d].push(p):i[d]=[i[d],p]:i[d]=p}return i};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],46:[function(e,r,t){"use strict";function a(e,r){if(e.map)return e.map(r);for(var t=[],a=0;e.length>a;a++)t.push(r(e[a],a));return t}var s=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};r.exports=function(e,r,t,n){return r=r||"&",t=t||"=",null===e&&(e=void 0),"object"==typeof e?a(i(e),function(i){var n=encodeURIComponent(s(i))+t;return o(e[i])?a(e[i],function(e){return n+encodeURIComponent(s(e))}).join(r):n+encodeURIComponent(s(e[i]))}).join(r):n?encodeURIComponent(s(n))+t+encodeURIComponent(s(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=Object.keys||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push(t);return r}},{}],47:[function(e,r,t){"use strict";t.decode=t.parse=e("./decode"),t.encode=t.stringify=e("./encode")},{"./decode":45,"./encode":46}],48:[function(e,r,t){"use strict";function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function s(e,r,t){if(e&&c.isObject(e)&&e instanceof a)return e;var s=new a;return s.parse(e,r,t),s}function o(e){return c.isString(e)&&(e=s(e)),e instanceof a?e.format():a.prototype.format.call(e)}function i(e,r){return s(e,!1,!0).resolve(r)}function n(e,r){return e?s(e,!1,!0).resolveObject(r):r}var l=e("punycode"),c=e("./util");t.parse=s,t.resolve=i,t.resolveObject=n,t.format=o,t.Url=a;var h=/^([a-z0-9.+-]+:)/i,u=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["<",">",'"',"`"," ","\r","\n"," "],p=["{","}","|","\\","^","`"].concat(d),m=["'"].concat(p),v=["%","/","?",";","#"].concat(m),y=["/","?","#"],g=255,P=/^[+a-z0-9A-Z_-]{0,63}$/,E=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,"javascript:":!0},w={javascript:!0,"javascript:":!0},j={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},$=e("querystring");a.prototype.parse=function(e,r,t){if(!c.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a<e.indexOf("#")?"?":"#",o=e.split(s),i=/\\/g;o[0]=o[0].replace(i,"/"),e=o.join(s);var n=e;if(n=n.trim(),!t&&1===e.split("#").length){var u=f.exec(n);if(u)return this.path=n,this.href=n,this.pathname=u[1],u[2]?(this.search=u[2],this.query=r?$.parse(this.search.substr(1)):this.search.substr(1)):r&&(this.search="",this.query={}),this}var d=h.exec(n);if(d){d=d[0];var p=d.toLowerCase();this.protocol=p,n=n.substr(d.length)}if(t||d||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var x="//"===n.substr(0,2);!x||d&&w[d]||(n=n.substr(2),this.slashes=!0)}if(!w[d]&&(x||d&&!j[d])){for(var S=-1,_=0;y.length>_;_++){var R=n.indexOf(y[_]);-1!==R&&(-1===S||S>R)&&(S=R)}var O,I;I=-1===S?n.lastIndexOf("@"):n.lastIndexOf("@",S),-1!==I&&(O=n.slice(0,I),n=n.slice(I+1),this.auth=decodeURIComponent(O)),S=-1;for(var _=0;v.length>_;_++){var R=n.indexOf(v[_]);-1!==R&&(-1===S||S>R)&&(S=R)}-1===S&&(S=n.length),this.host=n.slice(0,S),n=n.slice(S),this.parseHost(),this.hostname=this.hostname||"";var k="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!k)for(var A=this.hostname.split(/\./),_=0,q=A.length;q>_;_++){var L=A[_];if(L&&!L.match(P)){for(var C="",D=0,V=L.length;V>D;D++)C+=L.charCodeAt(D)>127?"x":L[D];if(!C.match(P)){var U=A.slice(0,_),z=A.slice(_+1),T=L.match(E);T&&(U.push(T[1]),z.unshift(T[2])),z.length&&(n="/"+z.join(".")+n),this.hostname=U.join(".");break}}}this.hostname=this.hostname.length>g?"":this.hostname.toLowerCase(),k||(this.hostname=l.toASCII(this.hostname));var M=this.port?":"+this.port:"",Q=this.hostname||"";this.host=Q+M,this.href+=this.host,k&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==n[0]&&(n="/"+n))}if(!b[p])for(var _=0,q=m.length;q>_;_++){var N=m[_];if(-1!==n.indexOf(N)){var H=encodeURIComponent(N);H===N&&(H=escape(N)),n=n.split(N).join(H)}}var F=n.indexOf("#");-1!==F&&(this.hash=n.substr(F),n=n.slice(0,F));var G=n.indexOf("?");if(-1!==G?(this.search=n.substr(G),this.query=n.substr(G+1),r&&(this.query=$.parse(this.query)),n=n.slice(0,G)):r&&(this.search="",this.query={}),n&&(this.pathname=n),j[p]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var M=this.pathname||"",J=this.search||"";this.path=M+J}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var r=this.protocol||"",t=this.pathname||"",a=this.hash||"",s=!1,o="";this.host?s=e+this.host:this.hostname&&(s=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(s+=":"+this.port)),this.query&&c.isObject(this.query)&&Object.keys(this.query).length&&(o=$.stringify(this.query));var i=this.search||o&&"?"+o||"";return r&&":"!==r.substr(-1)&&(r+=":"),this.slashes||(!r||j[r])&&s!==!1?(s="//"+(s||""),t&&"/"!==t.charAt(0)&&(t="/"+t)):s||(s=""),a&&"#"!==a.charAt(0)&&(a="#"+a),i&&"?"!==i.charAt(0)&&(i="?"+i),t=t.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),i=i.replace("#","%23"),r+s+t+i+a},a.prototype.resolve=function(e){return this.resolveObject(s(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(c.isString(e)){var r=new a;r.parse(e,!1,!0),e=r}for(var t=new a,s=Object.keys(this),o=0;s.length>o;o++){var i=s[o];t[i]=this[i]}if(t.hash=e.hash,""===e.href)return t.href=t.format(),t;if(e.slashes&&!e.protocol){for(var n=Object.keys(e),l=0;n.length>l;l++){var h=n[l];"protocol"!==h&&(t[h]=e[h])}return j[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}if(e.protocol&&e.protocol!==t.protocol){if(!j[e.protocol]){for(var u=Object.keys(e),f=0;u.length>f;f++){var d=u[f];t[d]=e[d]}return t.href=t.format(),t}if(t.protocol=e.protocol,e.host||w[e.protocol])t.pathname=e.pathname;else{for(var p=(e.pathname||"").split("/");p.length&&!(e.host=p.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),2>p.length&&p.unshift(""),t.pathname=p.join("/")}if(t.search=e.search,t.query=e.query,t.host=e.host||"",t.auth=e.auth,t.hostname=e.hostname||e.host,t.port=e.port,t.pathname||t.search){var m=t.pathname||"",v=t.search||"";t.path=m+v}return t.slashes=t.slashes||e.slashes,t.href=t.format(),t}var y=t.pathname&&"/"===t.pathname.charAt(0),g=e.host||e.pathname&&"/"===e.pathname.charAt(0),P=g||y||t.host&&e.pathname,E=P,b=t.pathname&&t.pathname.split("/")||[],p=e.pathname&&e.pathname.split("/")||[],$=t.protocol&&!j[t.protocol];if($&&(t.hostname="",t.port=null,t.host&&(""===b[0]?b[0]=t.host:b.unshift(t.host)),t.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),P=P&&(""===p[0]||""===b[0])),g)t.host=e.host||""===e.host?e.host:t.host,t.hostname=e.hostname||""===e.hostname?e.hostname:t.hostname,t.search=e.search,t.query=e.query,b=p;else if(p.length)b||(b=[]),b.pop(),b=b.concat(p),t.search=e.search,t.query=e.query;else if(!c.isNullOrUndefined(e.search)){if($){t.hostname=t.host=b.shift();var x=t.host&&t.host.indexOf("@")>0?t.host.split("@"):!1;x&&(t.auth=x.shift(),t.host=t.hostname=x.shift())}return t.search=e.search,t.query=e.query,c.isNull(t.pathname)&&c.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t}if(!b.length)return t.pathname=null,t.path=t.search?"/"+t.search:null,t.href=t.format(),t;for(var S=b.slice(-1)[0],_=(t.host||e.host||b.length>1)&&("."===S||".."===S)||""===S,R=0,O=b.length;O>=0;O--)S=b[O],"."===S?b.splice(O,1):".."===S?(b.splice(O,1),R++):R&&(b.splice(O,1),R--);if(!P&&!E)for(;R--;R)b.unshift("..");!P||""===b[0]||b[0]&&"/"===b[0].charAt(0)||b.unshift(""),_&&"/"!==b.join("/").substr(-1)&&b.push("");var I=""===b[0]||b[0]&&"/"===b[0].charAt(0);if($){t.hostname=t.host=I?"":b.length?b.shift():"";var x=t.host&&t.host.indexOf("@")>0?t.host.split("@"):!1;x&&(t.auth=x.shift(),t.host=t.hostname=x.shift())}return P=P||t.host&&b.length,P&&!I&&b.unshift(""),b.length?t.pathname=b.join("/"):(t.pathname=null,t.path=null),c.isNull(t.pathname)&&c.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=e.auth||t.auth,t.slashes=t.slashes||e.slashes,t.href=t.format(),t},a.prototype.parseHost=function(){var e=this.host,r=u.exec(e);r&&(r=r[0],":"!==r&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)}},{"./util":49,punycode:44,querystring:47}],49:[function(e,r,t){"use strict";r.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],ajv:[function(e,r,t){"use strict";function a(e){return v.test(e)}function Ajv(r){function t(e,r){var t;if("string"==typeof e){if(t=j(e),!t)throw new Error('no schema with key or ref "'+e+'"')}else{var a=_(e);t=a.validate||R(a)}var s=t(r);return t.$async===!0?"*"==C._opts.async?p(s):s:(C.errors=t.errors,s)}function g(e){var r=_(e);return r.validate||R(r)}function P(e,r,t,a){if(Array.isArray(e))for(var s=0;e.length>s;s++)P(e[s],void 0,t,a);else{r=o.normalizeId(r||e.id),q(r);var i=C._schemas[r]=_(e,t,!0);i.meta=a}}function E(e,r,t){P(e,r,t,!0)}function b(e,r){var s=e.$schema||C._opts.defaultMeta||w(),o=C._formats.uri;C._formats.uri="function"==typeof o?a:v;var i=t(s,e);if(C._formats.uri=o,!i&&r){var n="schema is invalid:"+O();if("log"!=C._opts.validateSchema)throw new Error(n);console.error(n)}return i}function w(){var e=C._opts.meta;return C._opts.defaultMeta="object"==typeof e?e.id||e:C._opts.v5?u.META_SCHEMA_ID:m}function j(e){var r=$(e);switch(typeof r){case"object":return r.validate||R(r);case"string":return j(r)}}function $(e){return e=o.normalizeId(e),C._schemas[e]||C._refs[e]}function x(e){if(e instanceof RegExp)return S(C._schemas,e),void S(C._refs,e);switch(typeof e){case"undefined":return S(C._schemas),S(C._refs),void C._cache.clear();case"string":var r=$(e);return r&&C._cache.del(r.jsonStr),delete C._schemas[e],void delete C._refs[e];case"object":var t=l(e);C._cache.del(t);var a=e.id;a&&(a=o.normalizeId(a),delete C._schemas[a],delete C._refs[a])}}function S(e,r){for(var t in e){var a=e[t];a.meta||r&&!r.test(t)||(C._cache.del(a.jsonStr),delete e[t])}}function _(e,r,t){if("object"!=typeof e)throw new Error("schema should be object");var a=l(e),s=C._cache.get(a);if(s)return s;t=t||C._opts.addUsedSchema!==!1;var i=o.normalizeId(e.id);i&&t&&q(i),C._opts.validateSchema===!1||r||b(e,!0);var c=o.ids.call(C,e),h=new n({id:i,schema:e,localRefs:c,jsonStr:a});return"#"!=i[0]&&t&&(C._refs[i]=h),C._cache.put(a,h),h}function R(e,r){function t(){var r=e.validate,a=r.apply(null,arguments);return t.errors=r.errors,a}if(e.compiling)return e.validate=t,t.schema=e.schema,t.errors=null,t.root=r?r:t,e.schema.$async===!0&&(t.$async=!0),t;e.compiling=!0;var a;e.meta&&(a=C._opts,C._opts=C._metaOpts);var o;try{o=s.call(C,e.schema,r,e.localRefs)}finally{e.compiling=!1,e.meta&&(C._opts=a)}return e.validate=o,e.refs=o.refs,e.refVal=o.refVal,e.root=o.root,o}function O(e,r){if(e=e||C.errors,!e)return"No errors";r=r||{};for(var t=void 0===r.separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;e.length>o;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)}function I(e,r){"string"==typeof r&&(r=new RegExp(r)),C._formats[e]=r}function k(){if(C._opts.meta!==!1){var r=e("./refs/json-schema-draft-04.json");E(r,m,!0),C._refs["http://json-schema.org/schema"]=m}var t=C._opts.schemas;if(t)if(Array.isArray(t))P(t);else for(var a in t)P(t[a],a)}function A(){for(var e in C._opts.formats){var r=C._opts.formats[e];I(e,r)}}function q(e){if(C._schemas[e]||C._refs[e])throw new Error('schema with key or id "'+e+'" already exists')}function L(){for(var e=f.copy(C._opts),r=0;y.length>r;r++)delete e[y[r]];return e}if(!(this instanceof Ajv))return new Ajv(r);var C=this;r=this._opts=f.copy(r)||{},this._schemas={},this._refs={},this._formats=c(r.format),this._cache=r.cache||new i,this._loadingSchemas={},this.RULES=h(),this.validate=t,this.compile=g,this.addSchema=P,this.addMetaSchema=E,this.validateSchema=b,this.getSchema=j,this.removeSchema=x,this.addFormat=I,this.errorsText=O,this._addSchema=_,this._compile=R,r.loopRequired=r.loopRequired||1/0,(r.async||r.transpile)&&d.setup(r),r.beautify===!0&&(r.beautify={indent_size:2}),"property"==r.errorDataPath&&(r._errorDataPathProperty=!0),this._metaOpts=L(),k(),r.formats&&A(),r.v5&&u.enable(this),"object"==typeof r.meta&&E(r.meta)}var s=e("./compile"),o=e("./compile/resolve"),i=e("./cache"),n=e("./compile/schema_obj"),l=e("json-stable-stringify"),c=e("./compile/formats"),h=e("./compile/rules"),u=e("./v5"),f=e("./compile/util"),d=e("./async"),p=e("co");r.exports=Ajv,Ajv.prototype.compileAsync=d.compile,Ajv.prototype.addKeyword=e("./keyword"),Ajv.ValidationError=e("./compile/validation_error");var m="http://json-schema.org/draft-04/schema",v=/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,y=["removeAdditional","useDefaults","coerceTypes"]},{"./async":1,"./cache":2,"./compile":6,"./compile/formats":5,"./compile/resolve":7,"./compile/rules":8,"./compile/schema_obj":9,"./compile/util":10,"./compile/validation_error":11,"./keyword":35,"./refs/json-schema-draft-04.json":36,"./v5":38,co:39,"json-stable-stringify":40}]},{},[])("ajv")});
+//# sourceMappingURL=dist/ajv.min.js.map \ No newline at end of file
diff --git a/testing/web-platform/tests/annotation-model/scripts/ajv.min.js.map b/testing/web-platform/tests/annotation-model/scripts/ajv.min.js.map
new file mode 100644
index 0000000000..21f7130b06
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/scripts/ajv.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["dist/ajv.bundle.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Ajv","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","setupAsync","opts","required","check","async","transpile","get","TRANSPILE","_transpileFunc","ASYNC","MODES","_opts","util","copy","checkGenerators","eval","checkAsyncFunction","getRegenerator","regenerator","runtime","regeneratorTranspile","compile","getNodent","nodent","log","dontInstallRequireHook","console","warn","nodentTranspile","promises","sourcemap","compileAsync","schema","callback","_compileAsync","firstCall","loadMissingSchema","schemaLoaded","err","sch","_refs","ref","_schemas","addSchema","missingSchema","missingRef","_callbacks","_loadingSchemas","loadSchema","deferCallback","validate","setTimeout","schemaObj","_addSchema","setup","*","co*","es7","./compile/util","2","Cache","_cache","prototype","put","key","value","del","clear","3","$ref","allOf","anyOf","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","uniqueItems","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","equal","b","arrA","Array","isArray","arrB","keys","Object","undefined","5","formats","mode","formatDefs","fName","compare","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","split","DATE_TIME_SEPARATOR","hostname","HOSTNAME","test","uri","NOT_URI_FRAGMENT","URI","regex","RegExp","compareDate","d1","d2","compareTime","t1","t2","compareDateTime","dt1","dt2","res","UUID","JSON_POINTER","RELATIVE_JSON_POINTER","fast","date-time","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","./util","6","root","localRefs","baseId","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","RULES","resolve","resolveRef","usePattern","useDefault","useCustomRule","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","beautify","error","validateCode","errors","refs","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","v","localSchema","inlineRef","inlineRefs","replaceLocalRef","refId","inline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","definition","macro","validateSchema","keyword","_formats","arr","statement","js_beautify","co","ucs2length","ValidationError","../async","./equal","./resolve","./validation_error","json-stable-stringify","7","SchemaObject","_compile","_resolve","p","parse","refPath","_getFullPath","getFullPath","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","count","Infinity","SIMPLE_INLINED","normalize","protocol","host","path","replace","TRAILING_SLASH_HASH","resolveIds","_resolveIds","fullPath","escapeFragment","ids","toHash","./schema_obj","8","ruleModules","type","rules","all","keywords","types","forEach","group","map","push","concat","./_rules","9","obj","10","to","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","array","object","number","integer","coerceToTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","SINGLE_QUOTE","escapeQuotes","len","pos","charCodeAt","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","cleanUpVarErrors","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_TRUE_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","schemaHasRules","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","11","message","ajv","validation","create","constructor","12","$keyword","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$valid","$schemaFormat","$isDataFormat","v5","$closingBraces","$schemaValueFormat","dataPathArr","$format","$compare","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$result","$isData","$schemaValue","$schemaValueExcl","$exclusive","$opExpr","$opStr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","13","$notOp","14","15","unicode","16","17","$it","$currentBaseId","arr1","$sch","$i","l1","18","$errs","$noEmptySchema","every","$wasComposite","19","20","$schemaDeps","$propertyDeps","$property","$deps","$currentErrorPath","_$property","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","$reqProperty","i2","l2","21","22","$isObject","$formatRef","23","$dataNxt","$nextData","$additionalItems","additionalItems","$currErrSchemaPath","$passData","$code","24","multipleOfPrecision","25","$allErrorsOption","26","27","$regexp","28","$key","$matched","$pProperty","i1","$missingPattern","29","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","$pgProperties","patternGroups","$pgPropertyKeys","$propertyKey","arr3","$pgProperty","l3","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","$useData","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","30","$refCode","$refVal","$message","missingRefs","$error","passContext","__callValidate","31","$propertySch","$loopRequired","i3","32","$shouldContinue","$ifPassed","$caseIndex","then","33","34","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","$top","rootId","$es7","yieldAwait","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","$type","$parentData","$dataProperty","JSON","stringify","custom","$ruleValidate","$ruleErrs","$ruleErr","$rDef","$asyncKeyword","$inline","$macro","statements","def_callRuleValidate","def_customError","$typeChecked","35","_addRule","ruleGroup","rg","36","description","definitions","schemaArray","positiveInteger","positiveIntegerDefault0","default","simpleTypes","stringArray","title","exclusiveMinimum","exclusiveMaximum","37","formatMaximum","formatMinimum","formatExclusiveMaximum","formatExclusiveMinimum","constant","contains","switch","if","continue","38","enableV5","_addKeyword","inlineFunc","inlineFunctions","addKeyword","_formatLimit","patternRequired","meta","metaSchema","addMetaSchema","META_SCHEMA_ID","containsMacro","enable","./dotjs/_formatLimit","./dotjs/constant","./dotjs/patternRequired","./dotjs/switch","./refs/json-schema-v5.json","39","gen","ctx","args","arguments","Promise","reject","onFulfilled","ret","next","onRejected","done","toPromise","isPromise","TypeError","String","apply","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","isObject","objectToPromise","fn","defer","promise","results","name","displayName","val","wrap","createPromise","__generatorFunction__","40","json","cmp","space","cycles","replacer","node","aobj","bobj","seen","parent","indent","colonSeparator","toJSON","indexOf","objectKeys","sort","keyValue","splice","","x","toString","has","hasOwnProperty","jsonify","41","./lib/parse","./lib/stringify","42","at","ch","text","escapee","\"","\\","/","m","c","charAt","string","isFinite","hex","uffff","parseInt","fromCharCode","white","word","source","reviver","result","walk","holder","k","43","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","44","RangeError","mapDomain","regexSeparators","labels","encoded","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","j","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toLowerCase","toASCII","regexNonASCII","freeExports","nodeType","freeModule","freeGlobal","punycode","overflow","not-basic","invalid-input","Math","version","ucs2","45","qs","sep","eq","options","regexp","maxKeys","kstr","vstr","idx","substr","xs","46","stringifyPrimitive","ks","47","./decode","./encode","48","Url","slashes","auth","port","search","query","pathname","href","urlParse","parseQueryString","slashesDenoteHost","urlFormat","isString","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","h","ae","esc","escape","qm","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","49","arg","SCHEMA_URI_FORMAT_FUNC","SCHEMA_URI_FORMAT","schemaKeyRef","getSchema","valid","_skipValidation","_meta","checkUnique","skipValidation","throwOrLogError","defaultMeta","currentUriFormat","errorsText","keyRef","_getSchemaObj","removeSchema","_removeAllSchemas","jsonStr","schemas","shouldAddSchema","cached","addUsedSchema","callValidate","_validate","compiling","currentOpts","_metaOpts","compileSchema","separator","dataPath","addFormat","addInitialSchemas","optsSchemas","addInitialFormats","getMetaSchemaOptions","metaOpts","META_IGNORE_OPTIONS","cache","indent_size","errorDataPath","./async","./cache","./compile","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/validation_error","./keyword","./refs/json-schema-draft-04.json","./v5"],"mappings":"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","file":"dist/ajv.min.js"} \ No newline at end of file
diff --git a/testing/web-platform/tests/annotation-model/scripts/showdown.min.js b/testing/web-platform/tests/annotation-model/scripts/showdown.min.js
new file mode 100644
index 0000000000..b0676c7bc3
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/scripts/showdown.min.js
@@ -0,0 +1,4 @@
+/*! showdown 20-07-2016 */
+
+(function(){function a(a){"use strict";var b={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Specify a prefix to generated header ids",type:"string"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries to smartly fix identation in es6 strings",type:"boolean"}};if(a===!1)return JSON.parse(JSON.stringify(b));var c={};for(var d in b)b.hasOwnProperty(d)&&(c[d]=b[d].defaultValue);return c}function b(a,b){"use strict";var c=b?"Error in "+b+" extension->":"Error in unnamed extension",e={valid:!0,error:""};d.helper.isArray(a)||(a=[a]);for(var f=0;f<a.length;++f){var g=c+" sub-extension "+f+": ",h=a[f];if("object"!=typeof h)return e.valid=!1,e.error=g+"must be an object, but "+typeof h+" given",e;if(!d.helper.isString(h.type))return e.valid=!1,e.error=g+'property "type" must be a string, but '+typeof h.type+" given",e;var i=h.type=h.type.toLowerCase();if("language"===i&&(i=h.type="lang"),"html"===i&&(i=h.type="output"),"lang"!==i&&"output"!==i&&"listener"!==i)return e.valid=!1,e.error=g+"type "+i+' is not recognized. Valid values: "lang/language", "output/html" or "listener"',e;if("listener"===i){if(d.helper.isUndefined(h.listeners))return e.valid=!1,e.error=g+'. Extensions of type "listener" must have a property called "listeners"',e}else if(d.helper.isUndefined(h.filter)&&d.helper.isUndefined(h.regex))return e.valid=!1,e.error=g+i+' extensions must define either a "regex" property or a "filter" method',e;if(h.listeners){if("object"!=typeof h.listeners)return e.valid=!1,e.error=g+'"listeners" property must be an object but '+typeof h.listeners+" given",e;for(var j in h.listeners)if(h.listeners.hasOwnProperty(j)&&"function"!=typeof h.listeners[j])return e.valid=!1,e.error=g+'"listeners" property must be an hash of [event name]: [callback]. listeners.'+j+" must be a function but "+typeof h.listeners[j]+" given",e}if(h.filter){if("function"!=typeof h.filter)return e.valid=!1,e.error=g+'"filter" must be a function, but '+typeof h.filter+" given",e}else if(h.regex){if(d.helper.isString(h.regex)&&(h.regex=new RegExp(h.regex,"g")),!h.regex instanceof RegExp)return e.valid=!1,e.error=g+'"regex" property must either be a string or a RegExp object, but '+typeof h.regex+" given",e;if(d.helper.isUndefined(h.replace))return e.valid=!1,e.error=g+'"regex" extensions must implement a replace string or function',e}}return e}function c(a,b){"use strict";var c=b.charCodeAt(0);return"~E"+c+"E"}var d={},e={},f={},g=a(!0),h={github:{omitExtraWLInCodeBlocks:!0,prefixHeaderId:"user-content-",simplifiedAutoLink:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0},vanilla:a(!0)};d.helper={},d.extensions={},d.setOption=function(a,b){"use strict";return g[a]=b,this},d.getOption=function(a){"use strict";return g[a]},d.getOptions=function(){"use strict";return g},d.resetOptions=function(){"use strict";g=a(!0)},d.setFlavor=function(a){"use strict";if(h.hasOwnProperty(a)){var b=h[a];for(var c in b)b.hasOwnProperty(c)&&(g[c]=b[c])}},d.getDefaultOptions=function(b){"use strict";return a(b)},d.subParser=function(a,b){"use strict";if(d.helper.isString(a)){if("undefined"==typeof b){if(e.hasOwnProperty(a))return e[a];throw Error("SubParser named "+a+" not registered!")}e[a]=b}},d.extension=function(a,c){"use strict";if(!d.helper.isString(a))throw Error("Extension 'name' must be a string");if(a=d.helper.stdExtName(a),d.helper.isUndefined(c)){if(!f.hasOwnProperty(a))throw Error("Extension named "+a+" is not registered!");return f[a]}"function"==typeof c&&(c=c()),d.helper.isArray(c)||(c=[c]);var e=b(c,a);if(!e.valid)throw Error(e.error);f[a]=c},d.getAllExtensions=function(){"use strict";return f},d.removeExtension=function(a){"use strict";delete f[a]},d.resetExtensions=function(){"use strict";f={}},d.validateExtension=function(a){"use strict";var c=b(a,null);return c.valid?!0:(console.warn(c.error),!1)},d.hasOwnProperty("helper")||(d.helper={}),d.helper.isString=function(a){"use strict";return"string"==typeof a||a instanceof String},d.helper.isFunction=function(a){"use strict";var b={};return a&&"[object Function]"===b.toString.call(a)},d.helper.forEach=function(a,b){"use strict";if("function"==typeof a.forEach)a.forEach(b);else for(var c=0;c<a.length;c++)b(a[c],c,a)},d.helper.isArray=function(a){"use strict";return a.constructor===Array},d.helper.isUndefined=function(a){"use strict";return"undefined"==typeof a},d.helper.stdExtName=function(a){"use strict";return a.replace(/[_-]||\s/g,"").toLowerCase()},d.helper.escapeCharactersCallback=c,d.helper.escapeCharacters=function(a,b,d){"use strict";var e="(["+b.replace(/([\[\]\\])/g,"\\$1")+"])";d&&(e="\\\\"+e);var f=new RegExp(e,"g");return a=a.replace(f,c)};var i=function(a,b,c,d){"use strict";var e,f,g,h,i,j=d||"",k=j.indexOf("g")>-1,l=new RegExp(b+"|"+c,"g"+j.replace(/g/g,"")),m=new RegExp(b,j.replace(/g/g,"")),n=[];do for(e=0;g=l.exec(a);)if(m.test(g[0]))e++||(f=l.lastIndex,h=f-g[0].length);else if(e&&!--e){i=g.index+g[0].length;var o={left:{start:h,end:f},match:{start:f,end:g.index},right:{start:g.index,end:i},wholeMatch:{start:h,end:i}};if(n.push(o),!k)return n}while(e&&(l.lastIndex=f));return n};d.helper.matchRecursiveRegExp=function(a,b,c,d){"use strict";for(var e=i(a,b,c,d),f=[],g=0;g<e.length;++g)f.push([a.slice(e[g].wholeMatch.start,e[g].wholeMatch.end),a.slice(e[g].match.start,e[g].match.end),a.slice(e[g].left.start,e[g].left.end),a.slice(e[g].right.start,e[g].right.end)]);return f},d.helper.replaceRecursiveRegExp=function(a,b,c,e,f){"use strict";if(!d.helper.isFunction(b)){var g=b;b=function(){return g}}var h=i(a,c,e,f),j=a,k=h.length;if(k>0){var l=[];0!==h[0].wholeMatch.start&&l.push(a.slice(0,h[0].wholeMatch.start));for(var m=0;k>m;++m)l.push(b(a.slice(h[m].wholeMatch.start,h[m].wholeMatch.end),a.slice(h[m].match.start,h[m].match.end),a.slice(h[m].left.start,h[m].left.end),a.slice(h[m].right.start,h[m].right.end))),k-1>m&&l.push(a.slice(h[m].wholeMatch.end,h[m+1].wholeMatch.start));h[k-1].wholeMatch.end<a.length&&l.push(a.slice(h[k-1].wholeMatch.end)),j=l.join("")}return j},d.helper.isUndefined(console)&&(console={warn:function(a){"use strict";alert(a)},log:function(a){"use strict";alert(a)},error:function(a){"use strict";throw a}}),d.Converter=function(a){"use strict";function c(){a=a||{};for(var b in g)g.hasOwnProperty(b)&&(l[b]=g[b]);if("object"!=typeof a)throw Error("Converter expects the passed parameter to be an object, but "+typeof a+" was passed instead.");for(var c in a)a.hasOwnProperty(c)&&(l[c]=a[c]);l.extensions&&d.helper.forEach(l.extensions,e)}function e(a,c){if(c=c||null,d.helper.isString(a)){if(a=d.helper.stdExtName(a),c=a,d.extensions[a])return console.warn("DEPRECATION WARNING: "+a+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),void i(d.extensions[a],a);if(d.helper.isUndefined(f[a]))throw Error('Extension "'+a+'" could not be loaded. It was either not found or is not a valid extension.');a=f[a]}"function"==typeof a&&(a=a()),d.helper.isArray(a)||(a=[a]);var e=b(a,c);if(!e.valid)throw Error(e.error);for(var g=0;g<a.length;++g){switch(a[g].type){case"lang":m.push(a[g]);break;case"output":n.push(a[g])}if(a[g].hasOwnProperty(o))for(var h in a[g].listeners)a[g].listeners.hasOwnProperty(h)&&j(h,a[g].listeners[h])}}function i(a,c){"function"==typeof a&&(a=a(new d.Converter)),d.helper.isArray(a)||(a=[a]);var e=b(a,c);if(!e.valid)throw Error(e.error);for(var f=0;f<a.length;++f)switch(a[f].type){case"lang":m.push(a[f]);break;case"output":n.push(a[f]);break;default:throw Error("Extension loader error: Type unrecognized!!!")}}function j(a,b){if(!d.helper.isString(a))throw Error("Invalid argument in converter.listen() method: name must be a string, but "+typeof a+" given");if("function"!=typeof b)throw Error("Invalid argument in converter.listen() method: callback must be a function, but "+typeof b+" given");o.hasOwnProperty(a)||(o[a]=[]),o[a].push(b)}function k(a){var b=a.match(/^\s*/)[0].length,c=new RegExp("^\\s{0,"+b+"}","gm");return a.replace(c,"")}var l={},m=[],n=[],o={};c(),this._dispatch=function(a,b,c,d){if(o.hasOwnProperty(a))for(var e=0;e<o[a].length;++e){var f=o[a][e](a,b,this,c,d);f&&"undefined"!=typeof f&&(b=f)}return b},this.listen=function(a,b){return j(a,b),this},this.makeHtml=function(a){if(!a)return a;var b={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:m,outputModifiers:n,converter:this,ghCodeBlocks:[]};return a=a.replace(/~/g,"~T"),a=a.replace(/\$/g,"~D"),a=a.replace(/\r\n/g,"\n"),a=a.replace(/\r/g,"\n"),l.smartIndentationFix&&(a=k(a)),a="\n\n"+a+"\n\n",a=d.subParser("detab")(a,l,b),a=d.subParser("stripBlankLines")(a,l,b),d.helper.forEach(m,function(c){a=d.subParser("runExtension")(c,a,l,b)}),a=d.subParser("hashPreCodeTags")(a,l,b),a=d.subParser("githubCodeBlocks")(a,l,b),a=d.subParser("hashHTMLBlocks")(a,l,b),a=d.subParser("hashHTMLSpans")(a,l,b),a=d.subParser("stripLinkDefinitions")(a,l,b),a=d.subParser("blockGamut")(a,l,b),a=d.subParser("unhashHTMLSpans")(a,l,b),a=d.subParser("unescapeSpecialChars")(a,l,b),a=a.replace(/~D/g,"$$"),a=a.replace(/~T/g,"~"),d.helper.forEach(n,function(c){a=d.subParser("runExtension")(c,a,l,b)}),a},this.setOption=function(a,b){l[a]=b},this.getOption=function(a){return l[a]},this.getOptions=function(){return l},this.addExtension=function(a,b){b=b||null,e(a,b)},this.useExtension=function(a){e(a)},this.setFlavor=function(a){if(h.hasOwnProperty(a)){var b=h[a];for(var c in b)b.hasOwnProperty(c)&&(l[c]=b[c])}},this.removeExtension=function(a){d.helper.isArray(a)||(a=[a]);for(var b=0;b<a.length;++b){for(var c=a[b],e=0;e<m.length;++e)m[e]===c&&m[e].splice(e,1);for(var f=0;f<n.length;++e)n[f]===c&&n[f].splice(e,1)}},this.getAllExtensions=function(){return{language:m,output:n}}},d.subParser("anchors",function(a,b,c){"use strict";a=c.converter._dispatch("anchors.before",a,b,c);var e=function(a,b,e,f,g,h,i,j){d.helper.isUndefined(j)&&(j=""),a=b;var k=e,l=f.toLowerCase(),m=g,n=j;if(!m)if(l||(l=k.toLowerCase().replace(/ ?\n/g," ")),m="#"+l,d.helper.isUndefined(c.gUrls[l])){if(!(a.search(/\(\s*\)$/m)>-1))return a;m=""}else m=c.gUrls[l],d.helper.isUndefined(c.gTitles[l])||(n=c.gTitles[l]);m=d.helper.escapeCharacters(m,"*_",!1);var o='<a href="'+m+'"';return""!==n&&null!==n&&(n=n.replace(/"/g,"&quot;"),n=d.helper.escapeCharacters(n,"*_",!1),o+=' title="'+n+'"'),o+=">"+k+"</a>"};return a=a.replace(/(\[((?:\[[^\]]*]|[^\[\]])*)][ ]?(?:\n[ ]*)?\[(.*?)])()()()()/g,e),a=a.replace(/(\[((?:\[[^\]]*]|[^\[\]])*)]\([ \t]*()<?(.*?(?:\(.*?\).*?)?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,e),a=a.replace(/(\[([^\[\]]+)])()()()()()/g,e),a=c.converter._dispatch("anchors.after",a,b,c)}),d.subParser("autoLinks",function(a,b,c){"use strict";function e(a,b){var c=d.subParser("unescapeSpecialChars")(b);return d.subParser("encodeEmailAddress")(c)}a=c.converter._dispatch("autoLinks.before",a,b,c);var f=/\b(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+)(?=\s|$)(?!["<>])/gi,g=/<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)>/gi,h=/(?:^|[ \n\t])([A-Za-z0-9!#$%&'*+-\/=?^_`\{|}~\.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?:$|[ \n\t])/gi,i=/<(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;return a=a.replace(g,'<a href="$1">$1</a>'),a=a.replace(i,e),b.simplifiedAutoLink&&(a=a.replace(f,'<a href="$1">$1</a>'),a=a.replace(h,e)),a=c.converter._dispatch("autoLinks.after",a,b,c)}),d.subParser("blockGamut",function(a,b,c){"use strict";a=c.converter._dispatch("blockGamut.before",a,b,c),a=d.subParser("blockQuotes")(a,b,c),a=d.subParser("headers")(a,b,c);var e=d.subParser("hashBlock")("<hr />",b,c);return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,e),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,e),a=a.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm,e),a=d.subParser("lists")(a,b,c),a=d.subParser("codeBlocks")(a,b,c),a=d.subParser("tables")(a,b,c),a=d.subParser("hashHTMLBlocks")(a,b,c),a=d.subParser("paragraphs")(a,b,c),a=c.converter._dispatch("blockGamut.after",a,b,c)}),d.subParser("blockQuotes",function(a,b,c){"use strict";return a=c.converter._dispatch("blockQuotes.before",a,b,c),a=a.replace(/((^[ \t]{0,3}>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,e){var f=e;return f=f.replace(/^[ \t]*>[ \t]?/gm,"~0"),f=f.replace(/~0/g,""),f=f.replace(/^[ \t]+$/gm,""),f=d.subParser("githubCodeBlocks")(f,b,c),f=d.subParser("blockGamut")(f,b,c),f=f.replace(/(^|\n)/g,"$1 "),f=f.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^ /gm,"~0"),c=c.replace(/~0/g,"")}),d.subParser("hashBlock")("<blockquote>\n"+f+"\n</blockquote>",b,c)}),a=c.converter._dispatch("blockQuotes.after",a,b,c)}),d.subParser("codeBlocks",function(a,b,c){"use strict";a=c.converter._dispatch("codeBlocks.before",a,b,c),a+="~0";var e=/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g;return a=a.replace(e,function(a,e,f){var g=e,h=f,i="\n";return g=d.subParser("outdent")(g),g=d.subParser("encodeCode")(g),g=d.subParser("detab")(g),g=g.replace(/^\n+/g,""),g=g.replace(/\n+$/g,""),b.omitExtraWLInCodeBlocks&&(i=""),g="<pre><code>"+g+i+"</code></pre>",d.subParser("hashBlock")(g,b,c)+h}),a=a.replace(/~0/,""),a=c.converter._dispatch("codeBlocks.after",a,b,c)}),d.subParser("codeSpans",function(a,b,c){"use strict";return a=c.converter._dispatch("codeSpans.before",a,b,c),"undefined"==typeof a&&(a=""),a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,e){var f=e;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=d.subParser("encodeCode")(f),b+"<code>"+f+"</code>"}),a=c.converter._dispatch("codeSpans.after",a,b,c)}),d.subParser("detab",function(a){"use strict";return a=a.replace(/\t(?=\t)/g," "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b){for(var c=b,d=4-c.length%4,e=0;d>e;e++)c+=" ";return c}),a=a.replace(/~A/g," "),a=a.replace(/~B/g,"")}),d.subParser("encodeAmpsAndAngles",function(a){"use strict";return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;"),a=a.replace(/<(?![a-z\/?\$!])/gi,"&lt;")}),d.subParser("encodeBackslashEscapes",function(a){"use strict";return a=a.replace(/\\(\\)/g,d.helper.escapeCharactersCallback),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,d.helper.escapeCharactersCallback)}),d.subParser("encodeCode",function(a){"use strict";return a=a.replace(/&/g,"&amp;"),a=a.replace(/</g,"&lt;"),a=a.replace(/>/g,"&gt;"),a=d.helper.escapeCharacters(a,"*_{}[]\\",!1)}),d.subParser("encodeEmailAddress",function(a){"use strict";var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if("@"===a)a=b[Math.floor(2*Math.random())](a);else if(":"!==a){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a='<a href="'+a+'">'+a+"</a>",a=a.replace(/">.+:/g,'">')}),d.subParser("escapeSpecialCharsWithinTagAttributes",function(a){"use strict";var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=d.helper.escapeCharacters(b,"\\`*_",!1)})}),d.subParser("githubCodeBlocks",function(a,b,c){"use strict";return b.ghCodeBlocks?(a=c.converter._dispatch("githubCodeBlocks.before",a,b,c),a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,e,f){var g=b.omitExtraWLInCodeBlocks?"":"\n";return f=d.subParser("encodeCode")(f),f=d.subParser("detab")(f),f=f.replace(/^\n+/g,""),f=f.replace(/\n+$/g,""),f="<pre><code"+(e?' class="'+e+" language-"+e+'"':"")+">"+f+g+"</code></pre>",f=d.subParser("hashBlock")(f,b,c),"\n\n~G"+(c.ghCodeBlocks.push({text:a,codeblock:f})-1)+"G\n\n"}),a=a.replace(/~0/,""),c.converter._dispatch("githubCodeBlocks.after",a,b,c)):a}),d.subParser("hashBlock",function(a,b,c){"use strict";return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(c.gHtmlBlocks.push(a)-1)+"K\n\n"}),d.subParser("hashElement",function(a,b,c){"use strict";return function(a,b){var d=b;return d=d.replace(/\n\n/g,"\n"),d=d.replace(/^\n/,""),d=d.replace(/\n+$/g,""),d="\n\n~K"+(c.gHtmlBlocks.push(d)-1)+"K\n\n"}}),d.subParser("hashHTMLBlocks",function(a,b,c){"use strict";for(var e=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"],f=function(a,b,d,e){var f=a;return-1!==d.search(/\bmarkdown\b/)&&(f=d+c.converter.makeHtml(b)+e),"\n\n~K"+(c.gHtmlBlocks.push(f)-1)+"K\n\n"},g=0;g<e.length;++g)a=d.helper.replaceRecursiveRegExp(a,f,"^(?: |\\t){0,3}<"+e[g]+"\\b[^>]*>","</"+e[g]+">","gim");return a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,d.subParser("hashElement")(a,b,c)),a=a.replace(/(<!--[\s\S]*?-->)/g,d.subParser("hashElement")(a,b,c)),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,d.subParser("hashElement")(a,b,c))}),d.subParser("hashHTMLSpans",function(a,b,c){"use strict";for(var e=d.helper.matchRecursiveRegExp(a,"<code\\b[^>]*>","</code>","gi"),f=0;f<e.length;++f)a=a.replace(e[f][0],"~L"+(c.gHtmlSpans.push(e[f][0])-1)+"L");return a}),d.subParser("unhashHTMLSpans",function(a,b,c){"use strict";for(var d=0;d<c.gHtmlSpans.length;++d)a=a.replace("~L"+d+"L",c.gHtmlSpans[d]);return a}),d.subParser("hashPreCodeTags",function(a,b,c){"use strict";var e=function(a,b,e,f){var g=e+d.subParser("encodeCode")(b)+f;return"\n\n~G"+(c.ghCodeBlocks.push({text:a,codeblock:g})-1)+"G\n\n"};return a=d.helper.replaceRecursiveRegExp(a,e,"^(?: |\\t){0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>","^(?: |\\t){0,3}</code>\\s*</pre>","gim")}),d.subParser("headers",function(a,b,c){"use strict";function e(a){var b,e=a.replace(/[^\w]/g,"").toLowerCase();return c.hashLinkCounts[e]?b=e+"-"+c.hashLinkCounts[e]++:(b=e,c.hashLinkCounts[e]=1),f===!0&&(f="section"),d.helper.isString(f)?f+b:b}a=c.converter._dispatch("headers.before",a,b,c);var f=b.prefixHeaderId,g=isNaN(parseInt(b.headerLevelStart))?1:parseInt(b.headerLevelStart),h=b.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,i=b.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm;return a=a.replace(h,function(a,f){var h=d.subParser("spanGamut")(f,b,c),i=b.noHeaderId?"":' id="'+e(f)+'"',j=g,k="<h"+j+i+">"+h+"</h"+j+">";return d.subParser("hashBlock")(k,b,c)}),a=a.replace(i,function(a,f){var h=d.subParser("spanGamut")(f,b,c),i=b.noHeaderId?"":' id="'+e(f)+'"',j=g+1,k="<h"+j+i+">"+h+"</h"+j+">";return d.subParser("hashBlock")(k,b,c)}),a=a.replace(/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm,function(a,f,h){var i=d.subParser("spanGamut")(h,b,c),j=b.noHeaderId?"":' id="'+e(h)+'"',k=g-1+f.length,l="<h"+k+j+">"+i+"</h"+k+">";return d.subParser("hashBlock")(l,b,c)}),a=c.converter._dispatch("headers.after",a,b,c)}),d.subParser("images",function(a,b,c){"use strict";function e(a,b,e,f,g,h,i,j){var k=c.gUrls,l=c.gTitles,m=c.gDimensions;if(e=e.toLowerCase(),j||(j=""),""===f||null===f){if((""===e||null===e)&&(e=b.toLowerCase().replace(/ ?\n/g," ")),f="#"+e,d.helper.isUndefined(k[e]))return a;f=k[e],d.helper.isUndefined(l[e])||(j=l[e]),d.helper.isUndefined(m[e])||(g=m[e].width,h=m[e].height)}b=b.replace(/"/g,"&quot;"),b=d.helper.escapeCharacters(b,"*_",!1),f=d.helper.escapeCharacters(f,"*_",!1);var n='<img src="'+f+'" alt="'+b+'"';return j&&(j=j.replace(/"/g,"&quot;"),j=d.helper.escapeCharacters(j,"*_",!1),n+=' title="'+j+'"'),g&&h&&(g="*"===g?"auto":g,h="*"===h?"auto":h,n+=' width="'+g+'"',n+=' height="'+h+'"'),n+=" />"}a=c.converter._dispatch("images.before",a,b,c);var f=/!\[(.*?)]\s?\([ \t]*()<?(\S+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(['"])(.*?)\6[ \t]*)?\)/g,g=/!\[([^\]]*?)] ?(?:\n *)?\[(.*?)]()()()()()/g;return a=a.replace(g,e),a=a.replace(f,e),a=c.converter._dispatch("images.after",a,b,c)}),d.subParser("italicsAndBold",function(a,b,c){"use strict";return a=c.converter._dispatch("italicsAndBold.before",a,b,c),b.literalMidWordUnderscores?(a=a.replace(/(^|\s|>|\b)__(?=\S)([\s\S]+?)__(?=\b|<|\s|$)/gm,"$1<strong>$2</strong>"),a=a.replace(/(^|\s|>|\b)_(?=\S)([\s\S]+?)_(?=\b|<|\s|$)/gm,"$1<em>$2</em>"),a=a.replace(/(\*\*)(?=\S)([^\r]*?\S[*]*)\1/g,"<strong>$2</strong>"),a=a.replace(/(\*)(?=\S)([^\r]*?\S)\1/g,"<em>$2</em>")):(a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"<strong>$2</strong>"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"<em>$2</em>")),a=c.converter._dispatch("italicsAndBold.after",a,b,c)}),d.subParser("lists",function(a,b,c){"use strict";function e(a,e){c.gListLevel++,a=a.replace(/\n{2,}$/,"\n"),a+="~0";var f=/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,g=/\n[ \t]*\n(?!~0)/.test(a);return a=a.replace(f,function(a,e,f,h,i,j,k){k=k&&""!==k.trim();var l=d.subParser("outdent")(i,b,c),m="";return j&&b.tasklists&&(m=' class="task-list-item" style="list-style-type: none;"',l=l.replace(/^[ \t]*\[(x|X| )?]/m,function(){var a='<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"';return k&&(a+=" checked"),a+=">"})),e||l.search(/\n{2,}/)>-1?(l=d.subParser("githubCodeBlocks")(l,b,c),l=d.subParser("blockGamut")(l,b,c)):(l=d.subParser("lists")(l,b,c),l=l.replace(/\n$/,""),l=g?d.subParser("paragraphs")(l,b,c):d.subParser("spanGamut")(l,b,c)),l="\n<li"+m+">"+l+"</li>\n"}),a=a.replace(/~0/g,""),c.gListLevel--,e&&(a=a.replace(/\s+$/,"")),a}function f(a,b,c){var d="ul"===b?/^ {0,2}\d+\.[ \t]/gm:/^ {0,2}[*+-][ \t]/gm,f=[],g="";if(-1!==a.search(d)){!function i(a){var f=a.search(d);-1!==f?(g+="\n\n<"+b+">"+e(a.slice(0,f),!!c)+"</"+b+">\n\n",b="ul"===b?"ol":"ul",d="ul"===b?/^ {0,2}\d+\.[ \t]/gm:/^ {0,2}[*+-][ \t]/gm,i(a.slice(f))):g+="\n\n<"+b+">"+e(a,!!c)+"</"+b+">\n\n"}(a);for(var h=0;h<f.length;++h);}else g="\n\n<"+b+">"+e(a,!!c)+"</"+b+">\n\n";return g}a=c.converter._dispatch("lists.before",a,b,c),a+="~0";var g=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return c.gListLevel?a=a.replace(g,function(a,b,c){var d=c.search(/[*+-]/g)>-1?"ul":"ol";return f(b,d,!0)}):(g=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,a=a.replace(g,function(a,b,c,d){var e=d.search(/[*+-]/g)>-1?"ul":"ol";return f(c,e)})),a=a.replace(/~0/,""),a=c.converter._dispatch("lists.after",a,b,c)}),d.subParser("outdent",function(a){"use strict";return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")}),d.subParser("paragraphs",function(a,b,c){"use strict";a=c.converter._dispatch("paragraphs.before",a,b,c),a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");for(var e=a.split(/\n{2,}/g),f=[],g=e.length,h=0;g>h;h++){var i=e[h];i.search(/~(K|G)(\d+)\1/g)>=0?f.push(i):(i=d.subParser("spanGamut")(i,b,c),i=i.replace(/^([ \t]*)/g,"<p>"),i+="</p>",f.push(i))}for(g=f.length,h=0;g>h;h++){for(var j="",k=f[h],l=!1;k.search(/~(K|G)(\d+)\1/)>=0;){var m=RegExp.$1,n=RegExp.$2;j="K"===m?c.gHtmlBlocks[n]:l?d.subParser("encodeCode")(c.ghCodeBlocks[n].text):c.ghCodeBlocks[n].codeblock,j=j.replace(/\$/g,"$$$$"),k=k.replace(/(\n\n)?~(K|G)\d+\2(\n\n)?/,j),/^<pre\b[^>]*>\s*<code\b[^>]*>/.test(k)&&(l=!0)}f[h]=k}return a=f.join("\n\n"),a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,""),c.converter._dispatch("paragraphs.after",a,b,c)}),d.subParser("runExtension",function(a,b,c,d){"use strict";if(a.filter)b=a.filter(b,d.converter,c);else if(a.regex){var e=a.regex;!e instanceof RegExp&&(e=new RegExp(e,"g")),b=b.replace(e,a.replace)}return b}),d.subParser("spanGamut",function(a,b,c){"use strict";return a=c.converter._dispatch("spanGamut.before",a,b,c),a=d.subParser("codeSpans")(a,b,c),a=d.subParser("escapeSpecialCharsWithinTagAttributes")(a,b,c),a=d.subParser("encodeBackslashEscapes")(a,b,c),a=d.subParser("images")(a,b,c),a=d.subParser("anchors")(a,b,c),a=d.subParser("autoLinks")(a,b,c),a=d.subParser("encodeAmpsAndAngles")(a,b,c),a=d.subParser("italicsAndBold")(a,b,c),a=d.subParser("strikethrough")(a,b,c),a=a.replace(/ +\n/g," <br />\n"),a=c.converter._dispatch("spanGamut.after",a,b,c)}),d.subParser("strikethrough",function(a,b,c){"use strict";return b.strikethrough&&(a=c.converter._dispatch("strikethrough.before",a,b,c),a=a.replace(/(?:~T){2}([\s\S]+?)(?:~T){2}/g,"<del>$1</del>"),a=c.converter._dispatch("strikethrough.after",a,b,c)),a}),d.subParser("stripBlankLines",function(a){"use strict";return a.replace(/^[ \t]+$/gm,"")}),d.subParser("stripLinkDefinitions",function(a,b,c){"use strict";var e=/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(\S+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=~0))/gm;return a+="~0",a=a.replace(e,function(a,e,f,g,h,i,j){return e=e.toLowerCase(),c.gUrls[e]=d.subParser("encodeAmpsAndAngles")(f),i?i+j:(j&&(c.gTitles[e]=j.replace(/"|'/g,"&quot;")),b.parseImgDimensions&&g&&h&&(c.gDimensions[e]={width:g,height:h}),"")}),a=a.replace(/~0/,"")}),d.subParser("tables",function(a,b,c){"use strict";function e(a){return/^:[ \t]*--*$/.test(a)?' style="text-align:left;"':/^--*[ \t]*:[ \t]*$/.test(a)?' style="text-align:right;"':/^:[ \t]*--*[ \t]*:$/.test(a)?' style="text-align:center;"':""}function f(a,e){var f="";return a=a.trim(),b.tableHeaderId&&(f=' id="'+a.replace(/ /g,"_").toLowerCase()+'"'),a=d.subParser("spanGamut")(a,b,c),"<th"+f+e+">"+a+"</th>\n"}function g(a,e){var f=d.subParser("spanGamut")(a,b,c);return"<td"+e+">"+f+"</td>\n"}function h(a,b){for(var c="<table>\n<thead>\n<tr>\n",d=a.length,e=0;d>e;++e)c+=a[e];for(c+="</tr>\n</thead>\n<tbody>\n",e=0;e<b.length;++e){c+="<tr>\n";for(var f=0;d>f;++f)c+=b[e][f];c+="</tr>\n"}return c+="</tbody>\n</table>\n"}if(!b.tables)return a;var i=/^[ \t]{0,3}\|?.+\|.+\n[ \t]{0,3}\|?[ \t]*:?[ \t]*(?:-|=){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:-|=){2,}[\s\S]+?(?:\n\n|~0)/gm;return a=c.converter._dispatch("tables.before",a,b,c),a=a.replace(i,function(a){var b,c=a.split("\n");for(b=0;b<c.length;++b)/^[ \t]{0,3}\|/.test(c[b])&&(c[b]=c[b].replace(/^[ \t]{0,3}\|/,"")),/\|[ \t]*$/.test(c[b])&&(c[b]=c[b].replace(/\|[ \t]*$/,""));var i=c[0].split("|").map(function(a){return a.trim()}),j=c[1].split("|").map(function(a){return a.trim()}),k=[],l=[],m=[],n=[];for(c.shift(),c.shift(),b=0;b<c.length;++b)""!==c[b].trim()&&k.push(c[b].split("|").map(function(a){return a.trim()}));if(i.length<j.length)return a;for(b=0;b<j.length;++b)m.push(e(j[b]));for(b=0;b<i.length;++b)d.helper.isUndefined(m[b])&&(m[b]=""),l.push(f(i[b],m[b]));for(b=0;b<k.length;++b){for(var o=[],p=0;p<l.length;++p)d.helper.isUndefined(k[b][p]),o.push(g(k[b][p],m[p]));n.push(o)}return h(l,n)}),a=c.converter._dispatch("tables.after",a,b,c)}),d.subParser("unescapeSpecialChars",function(a){"use strict";return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)})});var j=this;"undefined"!=typeof module&&module.exports?module.exports=d:"function"==typeof define&&define.amd?define(function(){"use strict";return d}):j.showdown=d}).call(this);
+//# sourceMappingURL=showdown.min.js.map