From 9e3b3754659ff935ef6bebc315bcf4deee752029 Mon Sep 17 00:00:00 2001 From: Pieter Greyling Date: Mon, 22 Jan 2018 19:42:44 +0000 Subject: [PATCH 01/13] Implement support for new Google Cache URL format. AMPBench is using the old Google Cache URL format. It should use the new format #29 https://github.com/ampproject/ampbench/issues/29 https://developers.google.com/amp/cache/overview https://ampbyexample.com/advanced/using_the_google_amp_cache/ --- ampbench_lib.js | 104 +- package-lock.json | 14528 ++++++++++++++++++++++---------------------- package.json | 36 +- 3 files changed, 7331 insertions(+), 7337 deletions(-) diff --git a/ampbench_lib.js b/ampbench_lib.js index 78831f6..5f40c2a 100644 --- a/ampbench_lib.js +++ b/ampbench_lib.js @@ -40,6 +40,10 @@ const inspect_obj = (obj) => {return util.inspect(obj, { showHidden: true, depth const cheerio = require('cheerio'); const S = require('string'); const hasBom = require('has-bom'); +// const {URL} = require('url'); +const URL = require('url-parse'); +const mime = require('mime-types'); +const punycode = require('punycode'); // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // convenient aliases @@ -1861,22 +1865,79 @@ function parse_headers_for_if_modified_since_or_etag(http_response) { return check_ims_or_etag_header; } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// ampbench related utilities -// +/** + * Returns or fetches AMP Caches information, as documented here: + * https://github.com/ampproject/amphtml/issues/7259 + */ +function get_google_amp_cache_origin_json() { + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // the following is for documentation only + // const CACHES_JSON_URL = 'https://cdn.ampproject.org/caches.json'; + // return fetch(CACHES_JSON_URL) + // .then(response => response.json()) + // .then(json => { + // this._caches = json.caches; + // return this._caches; + // }); + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + // hardcode the json object at: https://cdn.ampproject.org/caches.json + // avoiding unneccesary fetches and we only care for the Google CDN now + const GOOGLE_CACHE_ORIGIN_STR = + '{\n' + + ' "caches": [\n' + + ' {\n' + + ' "id": "google",\n' + + ' "name": "Google AMP Cache",\n' + + ' "docs": "https://developers.google.com/amp/cache/",\n' + + ' "updateCacheApiDomainSuffix": "cdn.ampproject.org"\n' + + ' }\n' + + ' ]\n' + + '}'; + + // console.log('=> [GOOGLE_CACHE_ORIGIN_STR]: ' + GOOGLE_CACHE_ORIGIN_STR); + + return JSON.parse(GOOGLE_CACHE_ORIGIN_STR); +} +/** + * Translates an url from the origin to the AMP Cache URL format, as documented here: + * https://developers.google.com/amp/cache/overview + * https://ampbyexample.com/advanced/using_the_google_amp_cache/ + * + * @param {String} originUrl the URL to be transformed. + * @return {String} the transformed URL. + */ function make_url_to_google_amp_cache(url) { - const AMP_CDN_HTTP = 'https://cdn.ampproject.org/c/'; - const AMP_CDN_HTTPS = 'https://cdn.ampproject.org/c/s/'; - var url_cdn = ''; - if (url.startsWith('http://')) { - url_cdn = AMP_CDN_HTTP + url.substr(7); - } else if (url.startsWith('https://')) { - url_cdn = AMP_CDN_HTTPS + url.substr(8); - } - return url_cdn; + const url_cdn = new URL(url); // see: https://www.npmjs.com/package/url-parse + const cache = get_google_amp_cache_origin_json(); + const originalHostname = url_cdn.hostname; + let unicodeHostname = punycode.toUnicode(originalHostname); + unicodeHostname = unicodeHostname.replace(/-/g, '--'); + unicodeHostname = unicodeHostname.replace(/\./g, '-'); + + let pathSegment = get_resource_path(url_cdn.pathname); + pathSegment += url_cdn.protocol === 'https:' ? '/s/' : '/'; + + // url_cdn.set('hostname', punycode.toASCII(unicodeHostname) + '.' + 'cdn.ampproject.org'); + url_cdn.set('hostname', punycode.toASCII(unicodeHostname) + '.' + cache.caches[0].updateCacheApiDomainSuffix); + url_cdn.set('pathname', pathSegment + originalHostname + url_cdn.pathname); + return url_cdn.href; } +// function make_url_to_google_amp_cache_OBSOLETE(url) { +// const AMP_CDN_HTTP = 'https://cdn.ampproject.org/c/'; +// const AMP_CDN_HTTPS = 'https://cdn.ampproject.org/c/s/'; +// var url_cdn = ''; +// if (url.startsWith('http://')) { +// url_cdn = AMP_CDN_HTTP + url.substr(7); +// } else if (url.startsWith('https://')) { +// url_cdn = AMP_CDN_HTTPS + url.substr(8); +// } +// return url_cdn; +// } + function make_url_to_google_amp_viewer(url) { const AMP_VIEWER_HTTP = 'https://www.google.com/amp/'; const AMP_VIEWER_HTTPS = 'https://www.google.com/amp/s/'; @@ -1889,6 +1950,25 @@ function make_url_to_google_amp_viewer(url) { return url_viewer; } +function get_resource_path(pathname) { + const mimetype = mime.lookup(pathname); + if (!mimetype) { + return '/c'; + } + + // console.log(mimetype); + if (mimetype.indexOf('image/') === 0) { + return '/i'; + } + + if (mimetype.indexOf('font') >= 0) { + return '/r'; + } + + // Default to document + return '/c'; +} + function make_url_validate_link(url) { // prod: https://ampbench.appspot.com/ return '../validate?url=' + url; diff --git a/package-lock.json b/package-lock.json index 92153f1..0d81588 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,39 +4,78 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "JSONStream": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", + "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", + "dev": true, + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, "amphtml-validator": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/amphtml-validator/-/amphtml-validator-1.0.20.tgz", - "integrity": "sha1-X2p1yhkXhEUm5dh/dMEzTA7MtRQ=", + "version": "1.0.21", + "resolved": "https://registry.npmjs.org/amphtml-validator/-/amphtml-validator-1.0.21.tgz", + "integrity": "sha1-Tr/4/1qxvRD3OI873aIu+U/xuOc=", "requires": { "colors": "1.1.2", "commander": "2.9.0", "promise": "7.1.1" }, "dependencies": { - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": "1.0.1" - } - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, "promise": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", @@ -47,6 +86,247 @@ } } }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "2.1.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "asn1.js": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "astw": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", + "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", + "dev": true, + "requires": { + "acorn": "4.0.13" + } + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, "babel-loader": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", @@ -145,6 +425,14 @@ } } }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, "babel-preset-es2015": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", @@ -800,7 +1088,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, "requires": { "babel-core": "6.26.0", "babel-runtime": "6.26.0", @@ -814,20 +1101,17 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -838,7 +1122,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-generator": "6.26.0", @@ -865,7 +1148,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", - "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -881,7 +1163,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-template": "6.26.0" @@ -891,7 +1172,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -900,7 +1180,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.5.0", "regenerator-runtime": "0.11.0" @@ -910,7 +1189,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -923,7 +1201,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -940,7 +1217,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -951,20 +1227,17 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -974,7 +1247,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -986,26 +1258,22 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "convert-source-map": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", - "dev": true + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" }, "core-js": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz", - "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY=", - "dev": true + "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY=" }, "debug": { "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, "requires": { "ms": "2.0.0" } @@ -1014,7 +1282,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, "requires": { "repeating": "2.0.1" } @@ -1022,26 +1289,22 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -1050,7 +1313,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, "requires": { "os-homedir": "1.0.2", "os-tmpdir": "1.0.2" @@ -1060,7 +1322,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true, "requires": { "loose-envify": "1.3.1" } @@ -1069,7 +1330,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -1077,32 +1337,27 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" }, "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -1111,7 +1366,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "1.1.8" } @@ -1119,14 +1373,12 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" } @@ -1134,50 +1386,42 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "private": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", - "dev": true + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=" }, "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, "requires": { "is-finite": "1.0.2" } @@ -1185,20 +1429,17 @@ "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-support": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.16.tgz", "integrity": "sha512-A6vlydY7H/ljr4L2UOhDSajQdZQ6dMD7cLH0pzwcmwLyc9u8PNI4WGtnfDDzX7uzGL6c/T+ORL97Zlh+S4iOrg==", - "dev": true, "requires": { "source-map": "0.5.7" } @@ -1207,7 +1448,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -1215,23 +1455,68 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" } } }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, "babelify": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", @@ -1623,161 +1908,253 @@ } } }, - "body-parser": { - "version": "1.17.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", - "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "bytes": "2.4.0", - "content-type": "1.0.2", - "debug": "2.6.7", - "depd": "1.1.1", - "http-errors": "1.6.2", - "iconv-lite": "0.4.15", - "on-finished": "2.3.0", - "qs": "6.4.0", - "raw-body": "2.2.0", - "type-is": "1.6.15" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.0", + "pascalcase": "0.1.1" }, "dependencies": { - "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" - }, - "content-type": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" - } - }, - "iconv-lite": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mime-db": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" - }, - "mime-types": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.2", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + } + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.3.0", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { - "mime-db": "1.29.0" + "color-convert": "1.9.1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, - "on-finished": { + "chalk": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" - }, - "raw-body": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { - "bytes": "2.4.0", - "iconv-lite": "0.4.15", - "unpipe": "1.0.0" + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" } }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - }, - "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.16" + "has-flag": "2.0.0" } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + } + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-pack": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.3.tgz", + "integrity": "sha512-Jo+RYsn8X8OhyP9tMXXg0ueR2fW696HUu1Hf3/DeiwNean1oGiPtdgGRNuUHBpPHzBH3x4n1kzAlgOgHSIq88g==", + "dev": true, + "requires": { + "JSONStream": "1.3.2", + "combine-source-map": "0.8.0", + "defined": "1.0.0", + "safe-buffer": "5.1.1", + "through2": "2.0.3", + "umd": "3.0.1" + } + }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true } } }, "browserify": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.4.0.tgz", - "integrity": "sha1-CJo0Y69Y0OSNjNQHCz90ZU1avKk=", + "version": "14.5.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz", + "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==", "dev": true, "requires": { - "JSONStream": "1.3.1", + "JSONStream": "1.3.2", "assert": "1.4.1", - "browser-pack": "6.0.2", + "browser-pack": "6.0.3", "browser-resolve": "1.11.2", - "browserify-zlib": "0.1.4", - "buffer": "5.0.7", + "browserify-zlib": "0.2.0", + "buffer": "5.0.8", "cached-path-relative": "1.0.1", "concat-stream": "1.5.2", "console-browserify": "1.1.0", "constants-browserify": "1.0.0", - "crypto-browserify": "3.11.1", + "crypto-browserify": "3.12.0", "defined": "1.0.0", "deps-sort": "2.0.0", "domain-browser": "1.1.7", @@ -1791,7 +2168,7 @@ "insert-module-globals": "7.0.1", "labeled-stream-splicer": "2.0.0", "module-deps": "4.1.1", - "os-browserify": "0.1.2", + "os-browserify": "0.3.0", "parents": "1.0.1", "path-browserify": "0.0.0", "process": "0.11.10", @@ -1799,11 +2176,11 @@ "querystring-es3": "0.2.1", "read-only-stream": "2.0.0", "readable-stream": "2.3.3", - "resolve": "1.4.0", + "resolve": "1.5.0", "shasum": "1.0.2", "shell-quote": "1.6.1", "stream-browserify": "2.0.1", - "stream-http": "2.7.2", + "stream-http": "2.8.0", "string_decoder": "1.0.3", "subarg": "1.0.0", "syntax-error": "1.3.0", @@ -1816,2024 +2193,2853 @@ "xtend": "4.0.1" }, "dependencies": { - "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "assert": { + "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "astw": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", - "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", - "dev": true, - "requires": { - "acorn": "4.0.13" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true - }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + } + } + }, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "dev": true, + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + } + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true, + "requires": { + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + } + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.6" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "1.0.6" + } + }, + "buffer": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", + "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8" + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, - "browser-pack": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", - "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", - "dev": true, - "requires": { - "JSONStream": "1.3.1", - "combine-source-map": "0.7.2", - "defined": "1.0.0", - "through2": "2.0.3", - "umd": "3.0.1" - } - }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browserify-aes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.2", - "inherits": "2.0.3" - } + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "cached-path-relative": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", + "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", + "dev": true + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "optional": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "dev": true, + "requires": { + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.6" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "cheerio": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz", + "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=", + "requires": { + "css-select": "1.2.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.8.3", + "jsdom": "7.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "abab": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz", + "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=", + "optional": true }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true, - "requires": { - "browserify-aes": "1.0.6", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.2" - } + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true, + "acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "optional": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "acorn": "2.7.0" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.5" - } + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "optional": true }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" - } + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true, - "requires": { - "pako": "0.2.9" - } + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "buffer": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.7.tgz", - "integrity": "sha512-NeeHXWh5pCbPQCt2/6rLvXqapZfVsqw/YgRgaHpT3H9Uzgs+S0lSg5SQzouIuDvcmlQRqBe8hOO2scKCu3cxrg==", - "dev": true, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8" + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" } }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cached-path-relative": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", - "dev": true + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" }, - "combine-source-map": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", - "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", - "dev": true, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "optional": true, "requires": { - "convert-source-map": "1.1.3", - "inline-source-map": "0.6.2", - "lodash.memoize": "3.0.4", - "source-map": "0.5.7" + "cssom": "0.3.2" } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "optional": true }, - "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "dev": true, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" } } }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", "requires": { - "date-now": "0.1.4" + "domelementtype": "1.3.0" } }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.8" - } + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "optional": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.8" + "esprima": "2.7.3", + "estraverse": "1.9.3", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.2.0" } }, - "crypto-browserify": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", - "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", - "dev": true, - "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.13", - "public-encrypt": "4.0.0", - "randombytes": "2.0.5" - } + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "optional": true }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "optional": true }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "optional": true }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "dev": true, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "optional": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "requires": { - "JSONStream": "1.3.1", - "shasum": "1.0.2", - "subarg": "1.0.0", - "through2": "2.0.3" + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + }, + "dependencies": { + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=" + } } }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "jsdom": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz", + "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=", + "optional": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "abab": "1.0.3", + "acorn": "2.7.0", + "acorn-globals": "1.0.9", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "escodegen": "1.8.1", + "nwmatcher": "1.4.1", + "parse5": "1.5.1", + "request": "2.83.0", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.2", + "webidl-conversions": "2.0.1", + "whatwg-url-compat": "0.6.5", + "xml-name-validator": "2.0.1" } }, - "detective": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", - "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", - "dev": true, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "optional": true, "requires": { - "acorn": "4.0.13", - "defined": "1.0.0" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.0", - "randombytes": "2.0.5" + "boolbase": "1.0.0" } }, - "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", - "dev": true + "nwmatcher": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz", + "integrity": "sha1-eumwew6oBNt+JfBctf5Al9TklJ8=", + "optional": true }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "optional": true, "requires": { - "readable-stream": "2.3.3" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "optional": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "optional": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", + "core-util-is": "1.0.2", "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "optional": true }, - "evp_bytestokey": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz", - "integrity": "sha512-ni0r0lrm7AOzsh2qC5mi9sj8S0gmj5fLNjfFpxN05FB4tAVZEKotbkjOtLPqTCX/CXT7NsUr6juZb4IFJeNNdA==", - "dev": true, + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "optional": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "amdefine": "1.0.1" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, - "function-bind": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", - "dev": true + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "optional": true }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "punycode": "1.4.1" } }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, - "requires": { - "function-bind": "1.1.0" - } + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "optional": true }, - "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "inherits": "2.0.3" + "prelude-ls": "1.1.2" } }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } + "webidl-conversions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz", + "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=", + "optional": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, + "whatwg-url-compat": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz", + "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", + "optional": true, "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "tr46": "0.0.3" } }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, - "https-browserify": { + "wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "optional": true }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "optional": true + } + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + }, + "dependencies": { "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "0.5.7" - } - }, - "insert-module-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", - "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", - "dev": true, - "requires": { - "JSONStream": "1.3.1", - "combine-source-map": "0.7.2", - "concat-stream": "1.5.2", - "is-buffer": "1.1.5", - "lexical-scope": "1.2.0", - "process": "0.11.10", - "through2": "2.0.3", - "xtend": "4.0.1" - } - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true - }, - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "jsonify": "0.0.0" + "is-descriptor": "0.1.6" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "labeled-stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", - "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", - "dev": true, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "inherits": "2.0.3", - "isarray": "0.0.1", - "stream-splicer": "2.0.0" + "kind-of": "3.2.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } } } }, - "lexical-scope": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", - "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", - "dev": true, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "astw": "2.2.0" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "miller-rabin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", - "dev": true, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", - "dev": true + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "optional": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" + }, + "combine-lists": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "1.1.3", + "inline-source-map": "0.6.2", + "lodash.memoize": "3.0.4", + "source-map": "0.5.7" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + } + } + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "requires": { + "graceful-readlink": "1.0.1" + } + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.0.6", + "typedarray": "0.0.6" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "module-deps": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", - "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "JSONStream": "1.3.1", - "browser-resolve": "1.11.2", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "defined": "1.0.0", - "detective": "4.5.0", - "duplexer2": "0.1.4", + "core-util-is": "1.0.2", "inherits": "2.0.3", - "parents": "1.0.1", - "readable-stream": "2.3.3", - "resolve": "1.4.0", - "stream-combiner2": "1.1.1", - "subarg": "1.0.0", - "through2": "2.0.3", - "xtend": "4.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" } }, - "os-browserify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", - "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", - "dev": true - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + } + } + }, + "configstore": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", + "requires": { + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.1.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" + } + }, + "connect": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.5.tgz", + "integrity": "sha1-+43ee6B2OHfQ7J352sC0tA5yx9o=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.0.6", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "finalhandler": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz", + "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=", "dev": true, "requires": { - "asn1.js": "4.9.1", - "browserify-aes": "1.0.6", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.2", - "pbkdf2": "3.0.13" + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" } }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.13.tgz", - "integrity": "sha512-+dCHxDH+djNtjgWmvVC/my3SYBAKpKNqKSjLkp+GtWWYe4XPE+e/PSD2aCanlEZZnqPk2uekTKNC/ccbwd2X2Q==", - "dev": true, - "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.8" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", "dev": true + } + } + }, + "connect-timeout": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.9.0.tgz", + "integrity": "sha1-vCcyaxIhA3FL6/oNlYurM/ZSLjo=", + "requires": { + "http-errors": "1.6.2", + "ms": "2.0.0", + "on-finished": "2.3.0", + "on-headers": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, - "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "dev": true, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.5" + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" } }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "read-only-stream": { + "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "2.3.3" - } + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "ee-first": "1.1.1" } }, - "resolve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", - "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", - "dev": true, - "requires": { - "path-parse": "1.0.5" - } + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true, - "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" - } + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "1.0.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.9" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true - }, - "sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "requires": { - "json-stable-stringify": "0.0.1", - "sha.js": "2.4.8" - } - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + } + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.3" - } - }, - "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", - "dev": true, + } + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } - }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "dev": true, + } + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "hoek": "4.2.0" } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "requires": { - "minimist": "1.2.0" - } - }, - "syntax-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", - "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", - "dev": true, - "requires": { - "acorn": "4.0.13" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.14", + "public-encrypt": "4.0.0", + "randombytes": "2.0.6", + "randomfill": "1.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true - }, - "through2": { + } + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "optional": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "4.0.6" + } + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "deps-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "dev": true, + "requires": { + "JSONStream": "1.3.2", + "shasum": "1.0.2", + "subarg": "1.0.0", + "through2": "2.0.3" + } + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + }, + "dependencies": { + "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "2.0.1" + } + }, + "detective": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", + "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "dev": true, + "requires": { + "acorn": "5.3.0", + "defined": "1.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", + "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", + "dev": true + } + } + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "1.0.1", + "ent": "2.2.0", + "extend": "3.0.1", + "void-elements": "2.0.1" + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "1.0.1" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "2.3.3" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "engine.io": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", + "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", + "dev": true, + "requires": { + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "ws": "1.1.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "mime-types": "2.1.17", + "negotiator": "0.6.1" } }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "process": "0.11.10" + "ms": "0.7.2" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true - }, - "umd": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", - "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=", + } + } + }, + "engine.io-client": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", + "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "1.1.2", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "ms": "0.7.2" } }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", + "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.7", + "wtf-8": "1.0.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "requires": { + "duplexer": "0.1.1", + "from": "0.1.7", + "map-stream": "0.1.0", + "pause-stream": "0.0.11", + "split": "0.3.3", + "stream-combiner": "0.0.4", + "through": "2.3.8" + } + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "expand-braces": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "dev": true, + "requires": { + "array-slice": "0.2.3", + "array-unique": "0.2.1", + "braces": "0.1.5" + }, + "dependencies": { + "braces": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } + "expand-range": "0.1.1" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "expand-range": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", "dev": true, "requires": { - "indexof": "0.0.1" + "is-number": "0.1.1", + "repeat-string": "0.2.2" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "is-number": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", "dev": true }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "repeat-string": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", "dev": true } } }, - "chai": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.1.tgz", - "integrity": "sha1-ZuISeebzxkFf+CMYeCJ5AOIXGzk=", + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "assertion-error": "1.0.2", - "check-error": "1.0.2", - "deep-eql": "2.0.2", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.3" + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.2", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" }, "dependencies": { - "assertion-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", - "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, - "deep-eql": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-2.0.2.tgz", - "integrity": "sha1-sbrAblbwp2d3aG1Qyf63XC7XZ5o=", + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "file-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/file-match/-/file-match-1.0.2.tgz", + "integrity": "sha1-ycrSZdLIrfOoFHWw30dYWQafrvc=", + "requires": { + "utils-extend": "1.0.8" + } + }, + "file-system": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/file-system/-/file-system-2.2.2.tgz", + "integrity": "sha1-fWWDPjojR9zZVqgTxncVPtPt2Yc=", + "requires": { + "file-match": "1.0.2", + "utils-extend": "1.0.8" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + }, + "dependencies": { + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "type-detect": "3.0.0" - }, - "dependencies": { - "type-detect": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-3.0.0.tgz", - "integrity": "sha1-RtDMhVOrt7E6NSsNbeov1Y8tm1U=", - "dev": true - } + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "pathval": { + "p-limit": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", "dev": true }, - "type-detect": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz", - "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", - "dev": true + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } } } }, - "cheerio": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz", - "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=", + "follow-redirects": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.1.0.tgz", + "integrity": "sha1-gzP77mXS+oWFJB67E3L8AeWx9nE=", "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.0", - "entities": "1.1.1", - "htmlparser2": "3.8.3", - "jsdom": "7.2.2", - "lodash": "4.17.4" + "debug": "2.6.8", + "stream-consume": "0.1.0" }, "dependencies": { - "abab": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz", - "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=", - "optional": true - }, - "acorn": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", - "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" - }, - "acorn-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", - "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", - "optional": true, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "requires": { - "acorn": "2.7.0" + "ms": "2.0.0" } }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "optional": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "stream-consume": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=" + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, + "fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", - "domutils": "1.5.1", - "nth-check": "1.0.1" + "co": "4.6.0", + "json-stable-stringify": "1.0.1" } }, - "css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + "ansi-regex": { + "version": "2.1.1", + "bundled": true }, - "cssom": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, "optional": true, "requires": { - "cssom": "0.3.2" + "delegates": "1.0.0", + "readable-stream": "2.2.9" } }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "asn1": { + "version": "0.2.3", + "bundled": true, "optional": true }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" - } - } + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true }, - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, "requires": { - "domelementtype": "1.3.0" + "tweetnacl": "0.14.5" } }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "block-stream": { + "version": "0.0.9", + "bundled": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "inherits": "2.0.3" } }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "optional": true, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" + "balanced-match": "0.4.2", + "concat-map": "0.0.1" } }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "optional": true + "buffer-shims": { + "version": "1.0.0", + "bundled": true }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "caseless": { + "version": "0.12.0", + "bundled": true, "optional": true }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "co": { + "version": "4.6.0", + "bundled": true, "optional": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "optional": true + "code-point-at": { + "version": "1.1.0", + "bundled": true }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "combined-stream": { + "version": "1.0.5", + "bundled": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" - }, - "dependencies": { - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=" - } + "delayed-stream": "1.0.0" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "isarray": { + "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "bundled": true }, - "jsdom": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz", - "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=", - "optional": true, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, "requires": { - "abab": "1.0.3", - "acorn": "2.7.0", - "acorn-globals": "1.0.9", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "escodegen": "1.8.1", - "nwmatcher": "1.4.1", - "parse5": "1.5.1", - "request": "2.81.0", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.2", - "webidl-conversions": "2.0.1", - "whatwg-url-compat": "0.6.5", - "xml-name-validator": "2.0.1" + "boom": "2.10.1" } }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dashdash": { + "version": "1.14.1", + "bundled": true, "optional": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, "requires": { - "boolbase": "1.0.0" + "ms": "2.0.0" } }, - "nwmatcher": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz", - "integrity": "sha1-eumwew6oBNt+JfBctf5Al9TklJ8=", + "deep-extend": { + "version": "0.4.2", + "bundled": true, "optional": true }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, "optional": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "jsbn": "0.1.1" } }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "extend": { + "version": "3.0.1", + "bundled": true, "optional": true }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "extsprintf": { + "version": "1.0.2", + "bundled": true }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "forever-agent": { + "version": "0.6.1", + "bundled": true, "optional": true }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "optional": true + "fs.realpath": { + "version": "1.0.0", + "bundled": true }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "optional": true, + "fstream": { + "version": "1.0.11", + "bundled": true, "requires": { - "amdefine": "1.0.1" + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", - "optional": true + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "gauge": { + "version": "2.7.4", + "bundled": true, "optional": true, "requires": { - "punycode": "1.4.1" + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "optional": true + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "glob": { + "version": "7.1.2", + "bundled": true, "requires": { - "prelude-ls": "1.1.2" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, - "webidl-conversions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz", - "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=", + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, "optional": true }, - "whatwg-url-compat": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz", - "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", + "har-validator": { + "version": "4.2.1", + "bundled": true, "optional": true, "requires": { - "tr46": "0.0.3" + "ajv": "4.11.8", + "har-schema": "1.0.5" } }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "optional": true - }, - "xml-name-validator": { + "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "bundled": true, "optional": true - } - } - }, - "connect-timeout": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.9.0.tgz", - "integrity": "sha1-vCcyaxIhA3FL6/oNlYurM/ZSLjo=", - "requires": { - "http-errors": "1.6.2", - "ms": "2.0.0", - "on-finished": "2.3.0", - "on-headers": "1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" }, - "ee-first": { + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "inflight": { + "version": "1.0.6", + "bundled": true, "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, "requires": { - "ee-first": "1.1.1" + "number-is-nan": "1.0.1" } }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + "isarray": { + "version": "1.0.0", + "bundled": true }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - } - } - }, - "diff": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", - "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", - "dev": true - }, - "express": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz", - "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=", - "requires": { - "accepts": "1.3.3", - "array-flatten": "1.1.1", - "content-disposition": "0.5.2", - "content-type": "1.0.2", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.8", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.0", - "finalhandler": "1.0.4", - "fresh": "0.5.0", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.1", - "path-to-regexp": "0.1.7", - "proxy-addr": "1.1.5", - "qs": "6.5.0", - "range-parser": "1.2.0", - "send": "0.15.4", - "serve-static": "1.12.4", - "setprototypeof": "1.0.3", - "statuses": "1.3.1", - "type-is": "1.6.15", - "utils-merge": "1.0.0", - "vary": "1.1.1" - }, - "dependencies": { - "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, "requires": { - "mime-types": "2.1.16", - "negotiator": "0.6.1" + "jsbn": "0.1.1" } }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true }, - "content-type": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, "requires": { - "ms": "2.0.0" + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } } }, - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "mime-db": { + "version": "1.27.0", + "bundled": true }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } }, - "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + "minimist": { + "version": "0.0.8", + "bundled": true }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } }, - "etag": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true }, - "finalhandler": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz", - "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==", + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "optional": true, "requires": { - "debug": "2.6.8", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.1", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" } }, - "forwarded": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" - }, - "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true }, - "ipaddr.js": { + "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", - "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=" + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, - "merge-descriptors": { + "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "bundled": true }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" + "process-nextick-args": { + "version": "1.0.7", + "bundled": true }, - "mime-db": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true }, - "mime-types": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, "requires": { - "mime-db": "1.29.0" + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "rimraf": { + "version": "2.6.1", + "bundled": true, "requires": { - "ee-first": "1.1.1" + "glob": "7.1.2" } }, - "parseurl": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" + "safe-buffer": { + "version": "5.0.1", + "bundled": true }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true }, - "proxy-addr": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", - "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, "requires": { - "forwarded": "0.1.0", - "ipaddr.js": "1.4.0" + "hoek": "2.16.3" } }, - "qs": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", - "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==" + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } }, - "send": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz", - "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", + "string_decoder": { + "version": "1.0.1", + "bundled": true, "requires": { - "debug": "2.6.8", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.0", - "fresh": "0.5.0", - "http-errors": "1.6.2", - "mime": "1.3.4", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "safe-buffer": "5.0.1" } }, - "serve-static": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz", - "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.1", - "send": "0.15.4" + "ansi-regex": "2.1.1" } }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } }, - "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.16" + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" } }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } }, - "vary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", - "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" - } - } - }, - "file-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/file-match/-/file-match-1.0.2.tgz", - "integrity": "sha1-ycrSZdLIrfOoFHWw30dYWQafrvc=", - "requires": { - "utils-extend": "1.0.8" + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } } }, - "file-system": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/file-system/-/file-system-2.2.2.tgz", - "integrity": "sha1-fWWDPjojR9zZVqgTxncVPtPt2Yc=", + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "file-match": "1.0.2", - "utils-extend": "1.0.8" + "assert-plus": "1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "locate-path": "2.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" }, "dependencies": { - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.1.0" - } } } }, - "follow-redirects": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.1.0.tgz", - "integrity": "sha1-gzP77mXS+oWFJB67E3L8AeWx9nE=", + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, "requires": { - "debug": "2.6.8", - "stream-consume": "0.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "stream-consume": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", - "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=" - } + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, - "fs": { - "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", - "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=" + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "1.3.5" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.0", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" + } }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, "growl": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", @@ -6057,9 +7263,9 @@ } }, "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -6067,119 +7273,6 @@ "uglify-js": "2.8.29" }, "dependencies": { - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "optional": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "optional": true - } - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "optional": true - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "optional": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", @@ -6187,54 +7280,54 @@ "requires": { "amdefine": "1.0.1" } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "optional": true - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -6247,5700 +7340,4418 @@ "is-utf8": "0.2.1" } }, - "http-status": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/http-status/-/http-status-0.2.5.tgz", - "integrity": "sha1-l2+RB36nv8FSd8vPjIDE1cUbSbA=" - }, - "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", "dev": true }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, - "jade": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", - "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", - "dev": true, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "commander": "0.6.1", - "mkdirp": "0.3.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { - "commander": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", - "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", - "dev": true - }, - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", - "dev": true + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, - "jshint": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", - "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "cli": "1.0.1", - "console-browserify": "1.1.0", - "exit": "0.1.2", - "htmlparser2": "3.8.3", - "lodash": "3.7.0", - "minimatch": "3.0.4", - "shelljs": "0.3.0", - "strip-json-comments": "1.0.4" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "requires": { - "exit": "0.1.2", - "glob": "7.1.2" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "0.1.4" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "kind-of": "3.2.2" }, "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } } } }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" - }, - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=" - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "is-buffer": "1.1.5" } - }, + } + } + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "lodash": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.8" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true } } }, - "jsonschema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.0.tgz", - "integrity": "sha512-XDJApzBauMg0TinJNP4iVcJl99PQ4JbWKK7nwzpOIkAOVveDKgh/2xm41T3x7Spu4PWMhnnQpNJmUSIUgl6sKg==" - }, - "karma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.0.tgz", - "integrity": "sha1-b3oaQGRG+i4YfslTmGmPTO5HYmk=", + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { - "bluebird": "3.5.0", - "body-parser": "1.17.2", - "chokidar": "1.7.0", - "colors": "1.1.2", - "combine-lists": "1.0.1", - "connect": "3.6.3", - "core-js": "2.5.0", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "expand-braces": "0.1.2", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "http-proxy": "1.16.2", - "isbinaryfile": "3.0.2", - "lodash": "3.10.1", - "log4js": "0.6.38", - "mime": "1.3.6", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.1.5", - "range-parser": "1.2.0", - "rimraf": "2.6.1", - "safe-buffer": "5.1.1", - "socket.io": "1.7.3", - "source-map": "0.5.7", - "tmp": "0.0.31", - "useragent": "2.2.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" }, "dependencies": { - "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true, - "requires": { - "mime-types": "2.1.16", - "negotiator": "0.6.1" - } - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true + } + } + }, + "hat": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", + "integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=", + "dev": true + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-proxy": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "dev": true, + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "http-status": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/http-status/-/http-status-0.2.5.tgz", + "integrity": "sha1-l2+RB36nv8FSd8vPjIDE1cUbSbA=" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "insert-module-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", + "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", + "dev": true, + "requires": { + "JSONStream": "1.3.2", + "combine-source-map": "0.7.2", + "concat-stream": "1.5.2", + "is-buffer": "1.1.5", + "lexical-scope": "1.2.0", + "process": "0.11.10", + "through2": "2.0.3", + "xtend": "4.0.1" + }, + "dependencies": { + "combine-source-map": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", + "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "convert-source-map": "1.1.3", + "inline-source-map": "0.6.2", + "lodash.memoize": "3.0.4", + "source-map": "0.5.7" } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", "dev": true - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, + } + } + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "1.3.1" + } + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "requires": { + "is-number": "3.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "callsite": "1.0.0" + "kind-of": "3.2.2" } - }, - "binary-extensions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", - "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", - "dev": true - }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + } + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", "dev": true }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", "dev": true + } + } + }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "requires": { + "cli": "1.0.1", + "console-browserify": "1.1.0", + "exit": "0.1.2", + "htmlparser2": "3.8.3", + "lodash": "3.7.0", + "minimatch": "3.0.4", + "shelljs": "0.3.0", + "strip-json-comments": "1.0.4" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "exit": "0.1.2", + "glob": "7.1.2" } }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.2", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "date-now": "0.1.4" } }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "combine-lists": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", - "dev": true, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "requires": { - "lodash": "4.17.4" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" } } }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" }, - "connect": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.3.tgz", - "integrity": "sha512-GLSZqgjVxPvGYVD/2vz//gS201MEXk4b7t3nHV6OVnTdDNWi/Gm7Rpxs/ybvljPWvULys/wrzIV3jB3YvEc3nQ==", - "dev": true, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", "requires": { - "debug": "2.6.8", - "finalhandler": "1.0.4", - "parseurl": "1.3.1", - "utils-merge": "1.0.0" + "domelementtype": "1.3.0" } }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } }, - "core-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz", - "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY=", - "dev": true + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=" }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "ms": "2.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.1", - "void-elements": "2.0.1" + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } }, - "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", - "dev": true + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "engine.io": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", - "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", - "dev": true, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "accepts": "1.3.3", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "ws": "1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } + "brace-expansion": "1.1.8" } }, - "engine.io-client": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", - "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", - "dev": true, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parsejson": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "1.1.2", - "xmlhttprequest-ssl": "1.5.3", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } + "wrappy": "1.0.2" } }, - "engine.io-parser": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", - "dev": true, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary": "0.1.7", - "wtf-8": "1.0.0" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=" }, - "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", - "dev": true + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, - "expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", - "dev": true, - "requires": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" - }, - "dependencies": { - "braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", - "dev": true, - "requires": { - "expand-range": "0.1.1" - } - }, - "expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", - "dev": true, - "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" - } - }, - "is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", - "dev": true - }, - "repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", - "dev": true - } - } + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=" }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "karma": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", + "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", + "dev": true, + "requires": { + "bluebird": "3.5.1", + "body-parser": "1.18.2", + "chokidar": "1.7.0", + "colors": "1.1.2", + "combine-lists": "1.0.1", + "connect": "3.6.5", + "core-js": "2.5.3", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "expand-braces": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "http-proxy": "1.16.2", + "isbinaryfile": "3.0.2", + "lodash": "3.10.1", + "log4js": "0.6.38", + "mime": "1.4.1", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.1.5", + "range-parser": "1.2.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "socket.io": "1.7.3", + "source-map": "0.5.7", + "tmp": "0.0.31", + "useragent": "2.2.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "karma-browserify": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/karma-browserify/-/karma-browserify-5.1.3.tgz", + "integrity": "sha1-m7/vgGUUu4hm8PDWDUVMzyvAc10=", + "dev": true, + "requires": { + "convert-source-map": "1.5.1", + "hat": "0.0.3", + "js-string-escape": "1.0.1", + "lodash": "3.10.1", + "minimatch": "3.0.4", + "os-shim": "0.1.3" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "karma-chai": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz", + "integrity": "sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o=", + "dev": true + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "1.0.1", + "which": "1.3.0" + }, + "dependencies": { + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "null-check": "1.0.0" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.3" - } + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", "dev": true }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "is-extglob": "1.0.0" + "isexe": "2.0.0" } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + } + } + }, + "karma-mocha": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz", + "integrity": "sha1-7qrH/8DiAetjxGdEDStpx883eL8=", + "dev": true, + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + } + }, + "karma-sinon-chai": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/karma-sinon-chai/-/karma-sinon-chai-1.3.3.tgz", + "integrity": "sha1-pZfltKE2n+ez19dsCe0gYaOOdH8=", + "dev": true, + "requires": { + "lolex": "1.6.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + }, + "labeled-stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", + "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "isarray": "0.0.1", + "stream-splicer": "2.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "4.0.1" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "optional": true + }, + "lexical-scope": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", + "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", + "dev": true, + "requires": { + "astw": "2.2.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "log4js": { + "version": "0.6.38", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", + "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "semver": "4.3.6" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, - "finalhandler": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz", - "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==", + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "lolex": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", + "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + }, + "lru-cache": { + "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "make-dir": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "requires": { + "pify": "3.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "1.0.1" + } + }, + "material-design-lite": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/material-design-lite/-/material-design-lite-1.3.0.tgz", + "integrity": "sha1-0ATOP+6Zoe63Sni4oyUTSl8RcdM=" + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "debug": "2.6.8", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.1", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "microdata-node": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/microdata-node/-/microdata-node-0.2.1.tgz", + "integrity": "sha1-xZ9Z0hMKMoBwoe2zFZCVDPfce40=", + "requires": { + "array-unique": "0.1.1", + "domutils": "1.6.2", + "es6-map": "0.1.5", + "extend": "2.0.1", + "htmlparser2": "3.9.2", + "is-absolute-url": "1.0.0" + }, + "dependencies": { + "array-unique": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.1.1.tgz", + "integrity": "sha1-styOx2XTBlN9cpHg5iHoSdJXPPk=" }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "fs.realpath": { + "d": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "0.10.29" + } }, - "fsevents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", - "dev": true, - "optional": true, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "requires": { - "nan": "2.6.2", - "node-pre-gyp": "0.6.36" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.36", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", - "dev": true, - "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.10.0" - } - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isbinaryfile": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", - "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "log4js": { - "version": "0.6.38", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", - "dev": true, - "requires": { - "readable-stream": "1.0.34", - "semver": "4.3.6" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "lru-cache": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.3" - } - }, - "mime": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", - "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", - "dev": true - }, - "mime-db": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", - "dev": true - }, - "mime-types": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", - "dev": true, - "requires": { - "mime-db": "1.29.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } - }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", - "dev": true, - "optional": true - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, - "parsejson": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, - "parseurl": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "qjobs": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", - "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", - "dev": true - }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" - } - }, - "regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3", - "is-primitive": "2.0.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "socket.io": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", - "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", - "dev": true, - "requires": { - "debug": "2.3.3", - "engine.io": "1.8.3", - "has-binary": "0.1.7", - "object-assign": "4.1.0", - "socket.io-adapter": "0.5.0", - "socket.io-client": "1.7.3", - "socket.io-parser": "2.3.1" - }, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } - }, - "socket.io-adapter": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", - "dev": true, - "requires": { - "debug": "2.3.3", - "socket.io-parser": "2.3.1" - }, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } - }, - "socket.io-client": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", - "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", - "dev": true, - "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "2.3.3", - "engine.io-client": "1.8.3", - "has-binary": "0.1.7", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseuri": "0.0.5", - "socket.io-parser": "2.3.1", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } - }, - "socket.io-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", - "dev": true, - "requires": { - "component-emitter": "1.1.2", - "debug": "2.2.0", - "isarray": "0.0.1", - "json3": "3.3.2" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "useragent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", - "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", - "dev": true, - "requires": { - "lru-cache": "2.2.4", - "tmp": "0.0.31" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", - "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", - "dev": true, - "requires": { - "options": "0.0.6", - "ultron": "1.0.2" - } - }, - "wtf-8": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", - "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", - "dev": true - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - } - } - }, - "karma-browserify": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/karma-browserify/-/karma-browserify-5.1.1.tgz", - "integrity": "sha1-9kLXDXdtmrO3NSbFcyq8/qJAAxk=", - "dev": true, - "requires": { - "convert-source-map": "1.5.0", - "hat": "0.0.3", - "js-string-escape": "1.0.1", - "lodash": "3.10.1", - "minimatch": "3.0.4", - "os-shim": "0.1.3" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", - "dev": true - }, - "hat": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", - "integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=", - "dev": true - }, - "js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", - "dev": true - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } - }, - "os-shim": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", - "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=", - "dev": true - } - } - }, - "karma-chai": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz", - "integrity": "sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o=", - "dev": true - }, - "karma-chrome-launcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", - "dev": true, - "requires": { - "fs-access": "1.0.1", - "which": "1.3.0" - }, - "dependencies": { - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "dev": true, - "requires": { - "null-check": "1.0.0" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", - "dev": true - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - } - } - }, - "karma-mocha": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz", - "integrity": "sha1-7qrH/8DiAetjxGdEDStpx883eL8=", - "dev": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - } - }, - "karma-sinon-chai": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/karma-sinon-chai/-/karma-sinon-chai-1.3.1.tgz", - "integrity": "sha1-RjNBlJTZ4thIeH3XYFMDGFn1t/U=", - "dev": true, - "requires": { - "lolex": "1.6.0" - }, - "dependencies": { - "lolex": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", - "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=", - "dev": true - } - } - }, - "lru-cache": { - "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "material-design-lite": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/material-design-lite/-/material-design-lite-1.3.0.tgz", - "integrity": "sha1-0ATOP+6Zoe63Sni4oyUTSl8RcdM=" - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - } - } - }, - "microdata-node": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/microdata-node/-/microdata-node-0.2.1.tgz", - "integrity": "sha1-xZ9Z0hMKMoBwoe2zFZCVDPfce40=", - "requires": { - "array-unique": "0.1.1", - "domutils": "1.6.2", - "es6-map": "0.1.5", - "extend": "2.0.1", - "htmlparser2": "3.9.2", - "is-absolute-url": "1.0.0" - }, - "dependencies": { - "array-unique": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.1.1.tgz", - "integrity": "sha1-styOx2XTBlN9cpHg5iHoSdJXPPk=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "0.10.29" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" - } - } - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" - }, - "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", - "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" - }, - "es5-ext": { - "version": "0.10.29", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.29.tgz", - "integrity": "sha512-KXla9NXo5sdaEkGSmbFPYgjH6m75kxsthL6GDRSug/Y2OiMoYm0I9giL39j4cgmaFmAbkIFJ6gG+SGKnLSmOvA==", - "requires": { - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1" - } - }, - "es6-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.29", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.29", - "es6-iterator": "2.0.1", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.29", - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.29" - } - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.29" - } - }, - "extend": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz", - "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=" - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.6.2", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "is-absolute-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-1.0.0.tgz", - "integrity": "sha1-LX7w/QuyqI2sfpIlPGgIoKziS/s=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - } - } - }, - "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - }, - "dependencies": { - "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "mocha": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", - "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", - "dev": true, - "requires": { - "commander": "2.3.0", - "debug": "2.2.0", - "diff": "1.4.0", - "escape-string-regexp": "1.0.2", - "glob": "3.2.11", - "growl": "1.9.2", - "jade": "0.26.3", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "supports-color": "1.2.0", - "to-iso-string": "0.0.2" - }, - "dependencies": { - "commander": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", - "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", - "dev": true - }, - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "escape-string-regexp": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", - "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", - "dev": true - }, - "glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true, - "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "0.3.0" - } - }, - "minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true, - "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "supports-color": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", - "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", - "dev": true - } - } - }, - "node-fetch": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.2.tgz", - "integrity": "sha512-xZZUq2yDhKMIn/UgG5q//IZSNLJIwW2QxS14CNH5spuiXkITM2pUitjdq58yLSaU7m4M0wBNaM2Gh/ggY4YJig==", - "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" - }, - "dependencies": { - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.18" - } - }, - "iconv-lite": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - } - } - }, - "nodemon": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.11.0.tgz", - "integrity": "sha1-ImxWK9KnsT09dRi0mtSCijYj0Gw=", - "requires": { - "chokidar": "1.7.0", - "debug": "2.6.8", - "es6-promise": "3.3.1", - "ignore-by-default": "1.0.1", - "lodash.defaults": "3.1.2", - "minimatch": "3.0.4", - "ps-tree": "1.1.0", - "touch": "1.0.0", - "undefsafe": "0.0.3", - "update-notifier": "0.5.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "binary-extensions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", - "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=" - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.2", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "configstore": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz", - "integrity": "sha1-w1eB0FAdJowlxUuLF/YkDopPsCE=", - "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1", - "os-tmpdir": "1.0.2", - "osenv": "0.1.4", - "uuid": "2.0.3", - "write-file-atomic": "1.3.4", - "xdg-basedir": "2.0.0" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" - }, - "duplexify": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz", - "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", - "requires": { - "end-of-stream": "1.4.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "stream-shift": "1.0.0" - } - }, - "end-of-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", - "requires": { - "once": "1.4.0" - } - }, - "es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.1.0", - "pause-stream": "0.0.11", - "split": "0.3.3", - "stream-combiner": "0.0.4", - "through": "2.3.8" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "requires": { - "fill-range": "2.2.3" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "requires": { - "is-extglob": "1.0.0" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "requires": { - "for-in": "1.0.2" - } - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" - }, - "fsevents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", - "optional": true, - "requires": { - "nan": "2.6.2", - "node-pre-gyp": "0.6.36" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "optional": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.36", - "bundled": true, - "optional": true, - "requires": { - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "bundled": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "optional": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" } } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", + "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "es5-ext": { + "version": "0.10.29", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.29.tgz", + "integrity": "sha512-KXla9NXo5sdaEkGSmbFPYgjH6m75kxsthL6GDRSug/Y2OiMoYm0I9giL39j4cgmaFmAbkIFJ6gG+SGKnLSmOvA==", + "requires": { + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29", + "es6-iterator": "2.0.1", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29" + } + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29" + } + }, + "extend": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz", + "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.6.2", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "is-absolute-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-1.0.0.tgz", + "integrity": "sha1-LX7w/QuyqI2sfpIlPGgIoKziS/s=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "is-glob": "2.0.1" + "safe-buffer": "5.1.1" } }, - "got": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", - "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=", - "requires": { - "duplexify": "3.5.1", - "infinity-agent": "2.0.3", - "is-redirect": "1.0.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", - "nested-error-stacks": "1.0.2", - "object-assign": "3.0.0", - "prepend-http": "1.0.4", - "read-all-stream": "3.1.0", - "timed-out": "2.0.0" - }, - "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" - } + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + } + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz", + "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" } + } + } + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + }, + "dependencies": { + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "dev": true, + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "dev": true }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ms": "0.7.1" } }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "0.3.0" + } }, - "infinity-agent": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", - "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=" + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + } }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true + } + } + }, + "module-deps": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", + "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "dev": true, + "requires": { + "JSONStream": "1.3.2", + "browser-resolve": "1.11.2", + "cached-path-relative": "1.0.1", + "concat-stream": "1.5.2", + "defined": "1.0.0", + "detective": "4.7.1", + "duplexer2": "0.1.4", + "inherits": "2.0.3", + "parents": "1.0.1", + "readable-stream": "2.3.3", + "resolve": "1.5.0", + "stream-combiner2": "1.1.1", + "subarg": "1.0.0", + "through2": "2.0.3", + "xtend": "4.0.1" + }, + "dependencies": { "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "1.10.0" - } - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "optional": true + }, + "nanomatch": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "is-odd": "1.0.0", + "kind-of": "5.1.0", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "nodemon": { + "version": "1.14.11", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.14.11.tgz", + "integrity": "sha512-323uPopdzYcyDR2Ze1UOLF9zocwoQEyGPiKaLm/Y8Mbfjylt/YueAJUVHqox+vgG8TqZqZApcHv5lmUvrn/KQw==", + "requires": { + "chokidar": "2.0.0", + "debug": "3.1.0", + "ignore-by-default": "1.0.1", + "minimatch": "3.0.4", + "pstree.remy": "1.1.0", + "semver": "5.5.0", + "touch": "3.1.0", + "undefsafe": "2.0.1", + "update-notifier": "2.3.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "requires": { - "is-primitive": "2.0.0" + "micromatch": "3.1.5", + "normalize-path": "2.1.1" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "1.0.1" + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" } }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "chokidar": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.0.tgz", + "integrity": "sha512-OgXCNv2U6TnG04D3tth0gsvdbV4zdbxFG3sYUqcoQMoEFVd1j1pZR6TZ8iknC45o9IJ6PeQI/J6wT/+cHcniAw==", "requires": { - "is-extglob": "1.0.0" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.0", + "fsevents": "1.1.3", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "kind-of": "3.2.2" + "ms": "2.0.0" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + } } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "is-buffer": "1.1.5" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" } }, - "latest-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", - "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "package-json": "1.2.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" } }, - "lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "2.1.1" + } + } } }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" - }, - "lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "lodash._createassigner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "lodash._bindcallback": "3.0.1", - "lodash._isiterateecall": "3.0.9", - "lodash.restparam": "3.6.1" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" - }, - "lodash.assign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "lodash._baseassign": "3.2.0", - "lodash._createassigner": "3.1.1", - "lodash.keys": "3.1.2" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "lodash.defaults": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", - "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "lodash.assign": "3.2.0", - "lodash.restparam": "3.6.1" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } } }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "is-extglob": "2.1.1" } }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" - }, - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.3" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.8" - } + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" + "micromatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.0", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.7", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", - "optional": true - }, - "nested-error-stacks": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", - "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "inherits": "2.0.3" + "is-descriptor": "0.1.6" } }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "abbrev": "1.1.0" + "kind-of": "3.2.2" } }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "remove-trailing-separator": "1.1.0" + "kind-of": "3.2.2" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.3" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + } + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.1", + "registry-url": "3.1.0", + "semver": "5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + } + } + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "requires": { + "path-platform": "0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true, + "requires": { + "asn1.js": "4.9.2", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parsejson": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", + "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "2.3.8" + } + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "dev": true, + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + }, + "dependencies": { + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + } + } + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "ps-tree": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", + "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", + "requires": { + "event-stream": "3.3.4" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "pstree.remy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.0.tgz", + "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", + "requires": { + "ps-tree": "1.1.0" + } + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.6" + } + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + }, + "qjobs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", + "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", + "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=" + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "wrappy": "1.0.2" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "is-buffer": "1.1.5" } - }, - "package-json": { + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "randomfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "dev": true, + "requires": { + "randombytes": "2.0.6", + "safe-buffer": "5.1.1" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.4.tgz", + "integrity": "sha1-oPYGyq4qO4YrvQ74VILAElsxX6M=", + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", - "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=", - "requires": { - "got": "3.3.1", - "registry-url": "3.1.0" - } + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "requires": { + "readable-stream": "2.3.3" + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "requires": { + "extend-shallow": "2.0.1" + } + }, + "registry-auth-token": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", + "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", + "requires": { + "rc": "1.2.4", + "safe-buffer": "5.1.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "1.2.4" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + } + }, + "request-debug": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/request-debug/-/request-debug-0.2.0.tgz", + "integrity": "sha1-/AVOyBcYGwTKQaBSwTb2HEirr3g=", + "requires": { + "stringify-clone": "1.1.1" + }, + "dependencies": { + "stringify-clone": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stringify-clone/-/stringify-clone-1.1.1.tgz", + "integrity": "sha1-MJojX7Ts/M19OI2+GLqQT6yvQzs=" + } + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true, + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "robots-parser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-1.0.1.tgz", + "integrity": "sha1-eeMuPly0Bm3lAUBCB6jrEjKXACA=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + } + } + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "serve-favicon": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.4.5.tgz", + "integrity": "sha512-s7F8h2NrslMkG50KxvlGdj+ApSwaLex0vexuJ9iFf3GLTIp1ph/l1qZvRe9T9TJEYZgmq72ZwJ2VYiAEtChknw==", + "requires": { + "etag": "1.8.1", + "fresh": "0.5.2", + "ms": "2.0.0", + "parseurl": "1.3.2", + "safe-buffer": "5.1.1" + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "requires": { + "to-object-path": "0.3.0" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + }, + "sha.js": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "requires": { + "json-stable-stringify": "0.0.1", + "sha.js": "2.4.9" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dev": true, + "requires": { + "array-filter": "0.0.1", + "array-map": "0.0.0", + "array-reduce": "0.0.0", + "jsonify": "0.0.0" + } + }, + "sigmund": { + "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "sinon": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-2.4.1.tgz", + "integrity": "sha512-vFTrO9Wt0ECffDYIPSP/E5bBugt0UjcBQOfQUMh66xzkyPEnhl/vM2LRZi2ajuTdkH07sA6DzrM6KvdvGIH8xw==", + "dev": true, + "requires": { + "diff": "3.3.0", + "formatio": "1.2.0", + "lolex": "1.6.0", + "native-promise-only": "0.8.1", + "path-to-regexp": "1.7.0", + "samsam": "1.2.1", + "text-encoding": "0.6.4", + "type-detect": "4.0.3" + }, + "dependencies": { + "diff": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.0.tgz", + "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg==", + "dev": true }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "formatio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", + "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", + "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "samsam": "1.2.1" } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "requires": { - "through": "2.3.8" - } + "lolex": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", + "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=", + "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=", + "dev": true }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, "requires": { - "pinkie": "2.0.4" + "isarray": "0.0.1" } }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + "samsam": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.2.1.tgz", + "integrity": "sha1-7dOQk6MYQ3DLhZJDsr3yVefY6mc=", + "dev": true }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "text-encoding": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", + "dev": true }, - "ps-tree": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", - "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", + "type-detect": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz", + "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", + "dev": true + } + } + }, + "sinon-chai": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.14.0.tgz", + "integrity": "sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ==", + "dev": true + }, + "sinon-chrome": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.2.4.tgz", + "integrity": "sha1-0e6weYECML2oNg/69kWAI8Jl0JY=", + "dev": true, + "requires": { + "lodash": "4.17.4", + "sinon": "2.4.1", + "urijs": "1.19.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "event-stream": "3.3.4" + "is-descriptor": "0.1.6" } }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "kind-of": "3.2.2" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.5" } } } }, - "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "kind-of": "3.2.2" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } } } }, - "read-all-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", - "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "pinkie-promise": "2.0.1", - "readable-stream": "2.3.3" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, - "readable-stream": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "3.2.2" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.0" + } + }, + "socket.io": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", + "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", + "dev": true, + "requires": { + "debug": "2.3.3", + "engine.io": "1.8.3", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.7.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" - } - }, - "regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, "requires": { - "is-equal-shallow": "0.1.3", - "is-primitive": "2.0.0" + "ms": "0.7.2" } }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-adapter": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", + "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", + "dev": true, + "requires": { + "debug": "2.3.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, "requires": { - "rc": "1.2.1" + "ms": "0.7.2" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-client": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", + "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.3", + "has-binary": "0.1.7", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseuri": "0.0.5", + "socket.io-parser": "2.3.1", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true }, - "repeating": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", - "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, "requires": { - "is-finite": "1.0.2" + "ms": "0.7.2" } }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "dev": true, + "requires": { + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, "requires": { - "semver": "5.4.1" + "ms": "0.7.1" } }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "requires": { - "through": "2.3.8" - } + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2.3.8" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "duplexer": "0.1.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" } }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "string-length": { + "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "strip-ansi": "3.0.1" + "is-plain-object": "2.0.4" } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + } + } + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "safe-buffer": "5.1.1" + "is-descriptor": "0.1.6" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "ansi-regex": "2.1.1" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "timed-out": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", - "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=" - }, - "touch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz", - "integrity": "sha1-RJy+LbrlqMgDjjDXH6D/RklHxN4=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "nopt": "1.0.10" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "undefsafe": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz", - "integrity": "sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8=" - }, - "update-notifier": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz", - "integrity": "sha1-B7XcIGazYnqztPUwEw9+3doHpMw=", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "chalk": "1.1.3", - "configstore": "1.4.0", - "is-npm": "1.0.0", - "latest-version": "1.0.1", - "repeating": "1.1.3", - "semver-diff": "2.1.0", - "string-length": "1.0.1" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + }, + "dependencies": { + "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - }, - "xdg-basedir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", - "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=", - "requires": { - "os-homedir": "1.0.2" - } + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true } } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "0.1.1" + } }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, "requires": { - "asap": "2.0.6" + "duplexer2": "0.1.4", + "readable-stream": "2.3.3" + } + }, + "stream-http": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", + "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" }, "dependencies": { - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true } } }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "dev": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.16", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "inherits": "2.0.3", + "readable-stream": "2.3.3" }, "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "string": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz", + "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "hoek": "2.16.3" + "ansi-regex": "3.0.0" } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "requires": { + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "supertest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-1.2.0.tgz", + "integrity": "sha1-hQp5X5Bo0vrxngF5n/CZYuDOQ74=", + "dev": true, + "requires": { + "methods": "1.1.2", + "superagent": "1.8.5" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, "requires": { "delayed-stream": "1.0.0" } }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "cookiejar": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.6.tgz", + "integrity": "sha1-Cr81atANHFohnYjURRgEbdAmrP4=", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.10.1" - } + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "ms": "2.0.0" } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=", + "dev": true }, "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "version": "1.0.0-rc3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", + "integrity": "sha1-01vGLn+8KTeuePlIqqDTjZBgdXc=", + "dev": true, "requires": { - "asynckit": "0.4.0", + "async": "1.5.2", "combined-stream": "1.0.5", "mime-types": "2.1.16" } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "formidable": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz", + "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=", + "dev": true }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "0.0.0" - } + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true }, "mime-db": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "dev": true }, "mime-types": { "version": "2.1.16", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "dev": true, "requires": { "mime-db": "1.29.0" } }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "qs": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", + "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=", + "dev": true }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "readable-stream": { + "version": "1.0.27-1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz", + "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "reduce-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz", + "integrity": "sha1-4Mk1QsV0UhvqE98PlIjtgqt3xdo=", + "dev": true }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "superagent": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-1.8.5.tgz", + "integrity": "sha1-HA3cOvMOgOuE68BcshItqP6UC1U=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "cookiejar": "2.0.6", + "debug": "2.6.8", + "extend": "3.0.0", + "form-data": "1.0.0-rc3", + "formidable": "1.0.17", + "methods": "1.1.2", + "mime": "1.3.4", + "qs": "2.3.3", + "readable-stream": "1.0.27-1", + "reduce-component": "1.0.1" + } + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "syntax-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", + "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", + "dev": true, + "requires": { + "acorn": "4.0.13" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "0.7.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "requires": { + "process": "0.11.10" + } + }, + "tmp": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "hoek": "2.16.3" + "is-descriptor": "0.1.6" } }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "kind-of": "3.2.2" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } } } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "punycode": "1.4.1" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "safe-buffer": "5.1.1" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "kind-of": "3.2.2" } } } }, - "request-debug": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/request-debug/-/request-debug-0.2.0.tgz", - "integrity": "sha1-/AVOyBcYGwTKQaBSwTb2HEirr3g=", + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "stringify-clone": "1.1.1" + "nopt": "1.0.10" + } + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" }, "dependencies": { - "stringify-clone": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stringify-clone/-/stringify-clone-1.1.1.tgz", - "integrity": "sha1-MJojX7Ts/M19OI2+GLqQT6yvQzs=" + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, - "robots-parser": { + "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-1.0.1.tgz", - "integrity": "sha1-eeMuPly0Bm3lAUBCB6jrEjKXACA=" + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, - "serve-favicon": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.4.3.tgz", - "integrity": "sha1-WYaxewUCZCtkHCH4GLGszjICXSM=", + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "etag": "1.8.0", - "fresh": "0.5.0", - "ms": "2.0.0", - "parseurl": "1.3.1", - "safe-buffer": "5.0.1" + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-detect": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.6.tgz", + "integrity": "sha512-qZ3bAurt2IXGPR3c57PyaSYEnQiLRwPeS60G9TahElBZsdOABo+iKYch/PhRjSTZJ5/DF08x43XMt9qec2g3ig==", + "dev": true + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "umd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", + "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=", + "dev": true + }, + "undefsafe": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.1.tgz", + "integrity": "sha1-A7LyoWyUVW4Usu3vMmzWaq+CcHo=", + "requires": { + "debug": "2.6.9" + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { - "etag": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" - }, - "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "parseurl": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" - }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } } } }, - "sigmund": { - "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "1.0.0" + } }, - "sinon": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-2.4.1.tgz", - "integrity": "sha512-vFTrO9Wt0ECffDYIPSP/E5bBugt0UjcBQOfQUMh66xzkyPEnhl/vM2LRZi2ajuTdkH07sA6DzrM6KvdvGIH8xw==", - "dev": true, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "diff": "3.3.0", - "formatio": "1.2.0", - "lolex": "1.6.0", - "native-promise-only": "0.8.1", - "path-to-regexp": "1.7.0", - "samsam": "1.2.1", - "text-encoding": "0.6.4", - "type-detect": "4.0.3" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { - "diff": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.0.tgz", - "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg==", - "dev": true - }, - "formatio": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", - "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", - "dev": true, + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "samsam": "1.2.1" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "lolex": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", - "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=", - "dev": true - }, - "native-promise-only": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", - "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=", - "dev": true + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "update-notifier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", + "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", + "requires": { + "boxen": "1.3.0", + "chalk": "2.3.0", + "configstore": "3.1.1", + "import-lazy": "2.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { - "isarray": "0.0.1" + "color-convert": "1.9.1" } }, - "samsam": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.2.1.tgz", - "integrity": "sha1-7dOQk6MYQ3DLhZJDsr3yVefY6mc=", - "dev": true - }, - "text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", - "dev": true + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } }, - "type-detect": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz", - "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", - "dev": true + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } } } }, - "sinon-chai": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.13.0.tgz", - "integrity": "sha512-hRNu/TlYEp4Rw5IbzO8ykGoZMSG489PGUx1rvePpHGrtl20cXivRBgtr/EWYxIwL9EOO9+on04nd9k3tW8tVww==", + "urijs": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.0.tgz", + "integrity": "sha512-Qs2odXn0hST5VSPVjpi73CMqtbAoanahaqWBujGU+IyMrMqpWcIhDewxQRhCkmqYxuyvICDcSuLdv2O7ncWBGw==", "dev": true }, - "sinon-chrome": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.2.1.tgz", - "integrity": "sha1-4C1HCdTosthYLaFhKWH6f6RM4o8=", + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "requires": { - "lodash": "4.17.4", - "sinon": "2.4.1", - "urijs": "1.18.12" + "punycode": "1.3.2", + "querystring": "0.2.0" }, "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "urijs": { - "version": "1.18.12", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.18.12.tgz", - "integrity": "sha512-WlvUkocbQ+GYhi8zkcbecbGYq7YLSd2I3InxAfqeh6mWvWalBE7bISDHcAL3J7STrWFfizuJ709srHD+RuABPQ==", + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true } } }, - "string": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz", - "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=" - }, - "supertest": { + "url-parse": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-1.2.0.tgz", - "integrity": "sha1-hQp5X5Bo0vrxngF5n/CZYuDOQ74=", - "dev": true, + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", + "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", "requires": { - "methods": "1.1.2", - "superagent": "1.8.5" + "querystringify": "1.0.0", + "requires-port": "1.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "1.0.4" + } + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "delayed-stream": "1.0.0" + "is-descriptor": "0.1.6" } }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "cookiejar": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.6.tgz", - "integrity": "sha1-Cr81atANHFohnYjURRgEbdAmrP4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "ms": "2.0.0" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "extend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=", - "dev": true - }, - "form-data": { - "version": "1.0.0-rc3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", - "integrity": "sha1-01vGLn+8KTeuePlIqqDTjZBgdXc=", - "dev": true, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "async": "1.5.2", - "combined-stream": "1.0.5", - "mime-types": "2.1.16" + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } + } } }, - "formidable": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz", - "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=", - "dev": true - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", - "dev": true - }, - "mime-db": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", - "dev": true - }, - "mime-types": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", - "dev": true, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "mime-db": "1.29.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, - "qs": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", - "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=", - "dev": true + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" }, - "readable-stream": { - "version": "1.0.27-1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz", - "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=", - "dev": true, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "set-getter": "0.1.0" } - }, - "reduce-component": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz", - "integrity": "sha1-4Mk1QsV0UhvqE98PlIjtgqt3xdo=", + } + } + }, + "useragent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", + "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", + "dev": true, + "requires": { + "lru-cache": "2.2.4", + "tmp": "0.0.31" + }, + "dependencies": { + "lru-cache": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", + "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + } + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true - }, - "superagent": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-1.8.5.tgz", - "integrity": "sha1-HA3cOvMOgOuE68BcshItqP6UC1U=", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.0.6", - "debug": "2.6.8", - "extend": "3.0.0", - "form-data": "1.0.0-rc3", - "formidable": "1.0.17", - "methods": "1.1.2", - "mime": "1.3.4", - "qs": "2.3.3", - "readable-stream": "1.0.27-1", - "reduce-component": "1.0.1" - } } } }, - "to-iso-string": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", - "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", - "dev": true + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-extend": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz", "integrity": "sha1-zP17ZFQPjpDuIe7Fd2nQZRyril8=" }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + }, "valid-url": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, "watchify": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.9.0.tgz", @@ -11948,7 +11759,7 @@ "dev": true, "requires": { "anymatch": "1.3.2", - "browserify": "14.4.0", + "browserify": "14.5.0", "chokidar": "1.7.0", "defined": "1.0.0", "outpipe": "1.1.1", @@ -13434,6 +13245,105 @@ "integrity": "sha1-8jvNi3p7ioZCYbIIT2b5MZM5YzQ=" } } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "2.0.0" + } + }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "requires": { + "string-width": "2.1.1" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "ws": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", + "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", + "dev": true, + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + } + }, + "wtf-8": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", + "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", + "dev": true + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, + "xmlhttprequest-ssl": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", + "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true } } } diff --git a/package.json b/package.json index 23ad30b..ed04048 100644 --- a/package.json +++ b/package.json @@ -15,30 +15,34 @@ "author": "The AMP HTML Authors", "license": "Apache Version 2.0", "dependencies": { - "amphtml-validator": "^1.0.13", - "body-parser": "^1.15.0", + "amphtml-validator": "^1.0.21", + "babel-core": "^6.26.0", + "body-parser": "^1.18.2", "cheerio": "^0.20.0", "connect-timeout": "^1.7.0", - "express": "^4.13.4", + "express": "^4.16.2", "file-system": "^2.2.2", "follow-redirects": "^0.1.0", "fs": "0.0.1-security", "graceful-fs": "^4.1.3", - "handlebars": "^4.0.5", + "handlebars": "^4.0.11", "has-bom": "^0.1.0", "http-status": "^0.2.2", "jshint": "^2.9.1", - "jsonschema": "^1.1.1", + "jsonschema": "^1.2.2", "material-design-lite": "^1.1.3", "microdata-node": "^0.2.1", - "node-fetch": "^1.5.3", - "nodemon": "^1.9.1", + "mime-types": "^2.1.17", + "node-fetch": "^1.7.3", + "nodemon": "^1.14.11", "promise": "^7.1.1", - "request": "^2.69.0", + "punycode": "^2.1.0", + "request": "^2.83.0", "request-debug": "^0.2.0", "robots-parser": "^1.0.1", - "serve-favicon": "^2.3.0", + "serve-favicon": "^2.4.5", "string": "^3.3.1", + "url-parse": "^1.2.0", "valid-url": "^1.0.9", "wget-improved": "^1.3.0" }, @@ -47,22 +51,22 @@ "babel-preset-es2015": "^6.24.1", "babel-register": "^6.24.1", "babelify": "^7.3.0", - "browserify": "^14.4.0", - "chai": "^4.0.2", + "browserify": "^14.5.0", + "chai": "^4.1.2", "gulp": "^3.9.1", "gulp-load-plugins": "^1.5.0", "gulp-util": "^3.0.8", "jshint": "^2.9.1", - "karma": "^1.7.0", - "karma-browserify": "^5.1.1", + "karma": "^1.7.1", + "karma-browserify": "^5.1.3", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^2.2.0", "karma-mocha": "^1.3.0", - "karma-sinon-chai": "^1.3.1", + "karma-sinon-chai": "^1.3.3", "mocha": "^2.5.3", "sinon": "^2.3.6", - "sinon-chai": "^2.11.0", - "sinon-chrome": "^2.2.1", + "sinon-chai": "^2.14.0", + "sinon-chrome": "^2.2.4", "supertest": "^1.1.0", "watchify": "^3.9.0" }, From 9ca0bbba7efd952e65aaa51729ab3b5f9d81de88 Mon Sep 17 00:00:00 2001 From: Pieter Greyling Date: Tue, 30 Jan 2018 21:23:41 -0800 Subject: [PATCH 02/13] Implement fix for " "If-Modified-Since" and "ETag" header " issue. Implement fix for issue AMPBench warns about missing ETag and informs about presence of ETag https://github.com/ampproject/ampbench/issues/37 --- ampbench_lib.js | 12 +- validator/validator.js | 1190 +++++++++++++++++++++++++++++----------- 2 files changed, 867 insertions(+), 335 deletions(-) diff --git a/ampbench_lib.js b/ampbench_lib.js index 5f40c2a..3dcd7f4 100644 --- a/ampbench_lib.js +++ b/ampbench_lib.js @@ -1851,15 +1851,15 @@ function parse_headers_for_if_modified_since_or_etag(http_response) { check_ims_or_etag_header.check_etag_header_status = CHECK_PASS; } - if (CHECK_WARN === check_ims_or_etag_header.check_ims_header_status || - CHECK_WARN === check_ims_or_etag_header.check_etag_header_status) { - check_ims_or_etag_header.check_ims_or_etag_header_results = - `[${CHECK_WARN}] Site does not support either "If-Modified-Since" or "ETag" headers: these make amp serving more efficient`; - check_ims_or_etag_header.check_ims_or_etag_header_status = CHECK_WARN; - } else { + if (CHECK_PASS === check_ims_or_etag_header.check_ims_header_status || + CHECK_PASS === check_ims_or_etag_header.check_etag_header_status) { check_ims_or_etag_header.check_ims_or_etag_header_results = `[${CHECK_PASS}] Site supports either/or both "If-Modified-Since" and "ETag" headers: these make amp serving more efficient`; check_ims_or_etag_header.check_ims_or_etag_header_status = CHECK_PASS; + } else { + check_ims_or_etag_header.check_ims_or_etag_header_results = + `[${CHECK_WARN}] Site does not support either "If-Modified-Since" or "ETag" headers: these make amp serving more efficient`; + check_ims_or_etag_header.check_ims_or_etag_header_status = CHECK_WARN; } return check_ims_or_etag_header; diff --git a/validator/validator.js b/validator/validator.js index f1556cc..2b576f5 100644 --- a/validator/validator.js +++ b/validator/validator.js @@ -1,12 +1,21 @@ -'use strict';function f(){return function(){}}function aa(a){return function(){return this[a]}}var g,ba="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},ha;if("function"==typeof Object.setPrototypeOf)ha=Object.setPrototypeOf;else{var ia;a:{var ja={za:!0},ka={};try{ka.__proto__=ja;ia=ka.za;break a}catch(a){}ia=!1}ha=ia?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var pa=ha; -function m(a,b){a.prototype=ba(b.prototype);a.prototype.constructor=a;if(pa)pa(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.Ca=b.prototype}var qa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ya="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this; -function za(){za=f();ya.Symbol||(ya.Symbol=Fa)}var Fa=function(){var a=0;return function(b){return"jscomp_symbol_"+(b||"")+a++}}();function Ga(){za();var a=ya.Symbol.iterator;a||(a=ya.Symbol.iterator=ya.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&qa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return Ra(this)}});Ga=f()}function Ra(a){var b=0;return Sa(function(){return b>>0),Cb=0;function Db(a,b,c){return a.call.apply(a.bind,arguments)}function Eb(a,b,c){if(!a)throw Error();if(2>>0),goog$uidCounter_=0;function goog$bindNative_(fn,selfObj,var_args){return fn.call.apply(fn.bind,arguments)} +function goog$bindJs_(fn,selfObj,var_args){if(!fn)throw Error();if(2b?1:ab?1:ab.name?1:a.namec;)a.a.M&&a.a.M(new u(a.b.pop()));break}}function Ag(){}Ag.prototype.a=function(a){a=Ie(a.substring(1,a.length-1));if(Bg.hasOwnProperty(a))return Bg[a];var b=a.match(Cg);return b?String.fromCharCode(parseInt(b[1],10)):(b=a.match(Dg))?String.fromCharCode(parseInt(b[1],16)):a}; -var Bg={colon:":",lt:"<",gt:">",amp:"&",nbsp:"\u00a0",quot:'"',apos:"'"},Eg={A:0,ABBR:0,ACRONYM:0,ADDRESS:0,APPLET:16,AREA:2,B:0,BASE:18,BASEFONT:18,BDO:0,BIG:0,BLOCKQUOTE:0,BODY:49,BR:2,BUTTON:0,CANVAS:0,CAPTION:0,CENTER:0,CITE:0,CODE:0,COL:2,COLGROUP:1,DD:1,DEL:0,DFN:0,DIR:0,DIV:0,DL:0,DT:1,EM:0,FIELDSET:0,FONT:0,FORM:0,FRAME:18,FRAMESET:16,H1:0,H2:0,H3:0,H4:0,H5:0,H6:0,HEAD:49,HR:2,HTML:49,I:0,IFRAME:20,IMG:2,INPUT:2,INS:0,ISINDEX:18,KBD:0,LABEL:0,LEGEND:0,LI:1,LINK:18,MAP:0,MENU:0,META:18,NOFRAMES:20, -NOSCRIPT:16,OBJECT:16,OL:0,OPTGROUP:0,OPTION:1,P:1,PARAM:18,PRE:0,Q:0,S:0,SAMP:0,SCRIPT:20,SELECT:0,SMALL:0,SPAN:0,STRIKE:0,STRONG:0,STYLE:20,SUB:0,SUP:0,TABLE:0,TBODY:1,TD:1,TEXTAREA:8,TFOOT:1,TH:1,THEAD:1,TITLE:24,TR:1,TT:0,U:0,UL:0,VAR:0},Fg=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,Gg=//g,Ig=/\0/g,Jg=/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g,zg=/^\s*$/,Cg=/^#(\d+)$/,Dg=/^#x([0-9A-Fa-f]+)$/,Kg=/^[ \t\n\f\r\v]*(?:(?:([^\t\r\n /=>][^\t\r\n =>]*|[^\t\r\n =>]+[^ >]|\/+(?!>))(\s*=\s*("[^"]*"|'[^']*'|(?=[a-z][a-z-]*\s+=)|[^>\s]*))?)|(\/?>)|[^a-z\s>]+)/i, -Lg=/^(?:&(\#[0-9]+|\#[x][0-9a-f]+|\w+);|<[!]--[\s\S]*?(?:--\x3e|$)|<(\/)?([a-z!\?][^\0 \n\r\t\f\v>/]*)|([^<&>]+)|([<&>]))/i;function Gj(a){this.g=[];this.h=[];for(var b=1,c=0,d=0;d style[amp-boilerplate]";W.W="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";W.a=["AMP"];var Xa=new Wj;Xa.a=-17;var fa=new C("STYLE");fa.f="noscript > style[amp-boilerplate] - old variant";fa.L=-16;fa.unique=!0; -fa.j="NOSCRIPT";fa.b=[-12];fa.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";fa.u=Xa;fa.m="HEAD";fa.R="noscript > style[amp-boilerplate]";fa.W="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";fa.a=["AMP"];var Cc=new Wj;Cc.a=-18;var ra=new C("STYLE");ra.f="head > style[amp-boilerplate]";ra.L=-14;ra.unique=!0;ra.j="HEAD";ra.b=[45,-12];ra.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";ra.u=Cc;ra.a=["AMP"]; -ra.J=[-14];ra.H=[-16];var Re=new Wj;Re.a=-19;var wa=new C("STYLE");wa.f="head > style[amp4ads-boilerplate]";wa.unique=!0;wa.j="HEAD";wa.b=[46,-12];wa.specUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#boilerplate";wa.u=Re;wa.a=["AMP4ADS"];var Pb=new Wj;Pb.a=-20;var na=new C("STYLE");na.f="noscript > style[amp-boilerplate]";na.L=-16;na.unique=!0;na.j="NOSCRIPT";na.b=[45,-12];na.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md"; -na.u=Pb;na.m="HEAD";na.a=["AMP"];na.J=[-16];na.H=[-14];var pb=new Yj;pb.a=[Ac,Mb,ob,Bc,Nb,J,Ob];pb.h=!0;pb.b=["offset-distance","opacity","transform","visibility"];var Qb=new Wj;Qb.c=5E5;Qb.h="https://www.ampproject.org/docs/reference/spec#keyframes-stylesheet";Qb.f=pb;var sa=new C("STYLE");sa.f="style[amp-keyframes]";sa.unique=!0;sa.j="BODY";sa.b=[47];sa.u=Qb;sa.a=["AMP","AMP4ADS"];sa.ha=!0;var Ca=new C("BODY");Ca.F=!0;Ca.unique=!0;Ca.j="HTML";Ca.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup"; -var Dc=new C("ARTICLE"),Mg=new C("SECTION");Mg.C=["AMP-ACCORDION"];var Se=new C("NAV"),Ng=new C("ASIDE"),Ec=new C("H1");Ec.b=[-21];var Fc=new C("H2");Fc.b=[-21];var Te=new C("H3");Te.b=[-21];var Ue=new C("H4");Ue.b=[-21];var La=new C("H5");La.b=[-21];var Ya=new C("H6");Ya.b=[-21];var Gc=new C("HEADER"),Og=new C("FOOTER"),Hc=new C("ADDRESS"),Za=new C("P");Za.b=[-21];var Ic=new C("HR"),Da=new C("PRE"),$a=new C("BLOCKQUOTE");$a.b=[-21];$a.c=[1];var Jc=new C("OL");Jc.b=[48,49,50];var Pg=new C("UL"),Kc= -new C("LI");Kc.b=[51];var Qg=new C("DL"),qk=new C("DT"),Rg=new C("DD"),Lc=new C("FIGURE"),Sg=new C("FIGCAPTION"),Mc=new C("DIV");Mc.b=[-21];var Ve=new C("MAIN"),Nc=new C("A");Nc.b=[52,-22,53,54,55,56,-23,-6,57,-24,-25,-26];Nc.specUrl="https://www.ampproject.org/docs/reference/spec#links";Nc.a=["AMP","AMP4ADS"];var We=new C("EM"),Tg=new C("STRONG"),Ug=new C("SMALL"),Vg=new C("S"),rk=new C("CITE"),Oc=new C("Q");Oc.c=[1];var Rb=new C("DFN"),Sb=new C("ABBR"),Xe=new C("DATA"),Ye=new C("TIME");Ye.b=[-27]; -var Ze=new C("CODE"),Wg=new C("VAR"),Xg=new C("SAMP"),$e=new C("KBD"),Yg=new C("SUB"),Zg=new C("SUP"),af=new C("I"),$g=new C("B"),ah=new C("U"),bh=new C("MARK"),bf=new C("RUBY"),ch=new C("RB"),dh=new C("RT"),cf=new C("RTC"),eh=new C("RP"),Pc=new C("BDI"),qb=new C("BDO");qb.b=[-28];var ab=new C("SPAN"),sk=new C("BR"),fh=new C("WBR"),Tb=new C("INS");Tb.b=[-27];Tb.c=[1];var Qc=new C("DEL");Qc.b=[-27];Qc.c=[1];var bb=new C("IMG");bb.b=[-29,-30,58,59,-24,-31,-32];bb.specUrl="https://www.ampproject.org/docs/reference/components/amp-img"; -bb.m="NOSCRIPT";bb.N="AMP-IMG";bb.a=["AMP"];var Ma=new C("IFRAME");Ma.b=[-25,60,-33,61,-31,-34,62,63,64,-32];Ma.specUrl="https://www.ampproject.org/docs/reference/components/amp-iframe";Ma.m="NOSCRIPT";Ma.N="AMP-IFRAME";Ma.a=["AMP"];var oa=new C("VIDEO");oa.b=[-35,-36,-31,-37,65,-38,-39,-40,66,-32];oa.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";oa.m="NOSCRIPT";oa.N="AMP-VIDEO";oa.a=["AMP"];var Ub=new C("AUDIO");Ub.b=[-35,-36,-37,-41,-40,66];Ub.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio"; -Ub.m="NOSCRIPT";Ub.N="AMP-AUDIO";Ub.a=["AMP"];var Rc=new C("SOURCE");Rc.f="amp-video > source";Rc.j="AMP-VIDEO";Rc.b=[67,-6,-3,-42,-43];Rc.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";Rc.a=["AMP","AMP4ADS"];var Sc=new C("SOURCE");Sc.f="amp-audio > source";Sc.j="AMP-AUDIO";Sc.b=[67,-6,-3,-42,-43];Sc.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";Sc.a=["AMP","AMP4ADS"];var Tc=new C("SOURCE");Tc.f="audio > source";Tc.j="AUDIO";Tc.b=[68,69,-6];Tc.specUrl= -"https://www.ampproject.org/docs/reference/components/amp-audio";Tc.a=["AMP","AMP4ADS"];var Uc=new C("SOURCE");Uc.f="video > source";Uc.j="VIDEO";Uc.b=[68,69,-6];Uc.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";Uc.a=["AMP","AMP4ADS"];var Vc=new C("SOURCE");Vc.f="amp-ima-video > source";Vc.j="AMP-IMA-VIDEO";Vc.b=[-6,67,-3,-42,-43];Vc.a=["AMP","AMP4ADS"];Vc.g=["amp-ima-video"];var df=new C("TRACK");df.f="audio > track";df.j="AUDIO";df.c=[2];df.a=["AMP","AMP4ADS"];var ef=new C("TRACK"); -ef.f="audio > track[kind=subtitles]";ef.j="AUDIO";ef.c=[3];ef.a=["AMP","AMP4ADS"];var ff=new C("TRACK");ff.f="video > track";ff.j="VIDEO";ff.c=[2];ff.a=["AMP","AMP4ADS"];var gf=new C("TRACK");gf.f="video > track[kind=subtitles]";gf.j="VIDEO";gf.c=[3];gf.a=["AMP","AMP4ADS"];var Wc=new C("TRACK");Wc.f="amp-audio > track";Wc.j="AMP-AUDIO";Wc.b=[-44,-42,-45];Wc.c=[2];Wc.a=["AMP","AMP4ADS"];var Xc=new C("TRACK");Xc.f="amp-audio > track[kind=subtitles]";Xc.j="AMP-AUDIO";Xc.b=[-44,-42,-45];Xc.c=[3];Xc.a= -["AMP","AMP4ADS"];var Yc=new C("TRACK");Yc.f="amp-video > track";Yc.j="AMP-VIDEO";Yc.b=[-44,-42,-45];Yc.c=[2];Yc.a=["AMP","AMP4ADS"];var Zc=new C("TRACK");Zc.f="amp-video > track[kind=subtitles]";Zc.j="AMP-VIDEO";Zc.b=[-44,-42,-45];Zc.c=[3];Zc.a=["AMP","AMP4ADS"];var Vb=new C("TRACK");Vb.f="amp-ima-video > track[kind=subtitles]";Vb.j="AMP-IMA-VIDEO";Vb.b=[-44,-42,-45];Vb.c=[3];Vb.specUrl="https://www.ampproject.org/docs/reference/components/amp-ima-video";Vb.a=["AMP","AMP4ADS"];var $c=new C("G"); -$c.b=[-46,-47];$c.c=[10,4,5,7];$c.specUrl="https://www.ampproject.org/docs/reference/spec#svg";$c.m="SVG";$c.a=["AMP","AMP4ADS"];var ad=new C("GLYPH");ad.b=[-48,-49,-50,-51,-52,-53,-54,-55,-56];ad.c=[10,5,7];ad.specUrl="https://www.ampproject.org/docs/reference/spec#svg";ad.m="SVG";ad.a=["AMP","AMP4ADS"];var bd=new C("GLYPHREF");bd.b=[-57,-58,-59,-60,-61,-62];bd.c=[10,5,7,9];bd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";bd.m="SVG";bd.a=["AMP","AMP4ADS"];var cd=new C("IMAGE");cd.b= -[-46,-31,-63,-47,-32,-61,-62,-64,-65,70,-66,-67,-68,-69];cd.c=[10,4,5,7];cd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";cd.m="SVG";cd.a=["AMP","AMP4ADS"];var dd=new C("MARKER");dd.b=[-46,-70,-71,-72,-73,-63,-74,-75,-47,-76];dd.c=[10,5,7];dd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";dd.m="SVG";dd.a=["AMP","AMP4ADS"];var hf=new C("METADATA");hf.c=[10,5];hf.specUrl="https://www.ampproject.org/docs/reference/spec#svg";hf.m="SVG";hf.a=["AMP","AMP4ADS"];var ed=new C("PATH"); -ed.b=[-49,-46,-77,-78,-47];ed.c=[10,4,5,7];ed.specUrl="https://www.ampproject.org/docs/reference/spec#svg";ed.m="SVG";ed.a=["AMP","AMP4ADS"];var fd=new C("SOLIDCOLOR");fd.b=[-79,-80];fd.c=[10,5,7];fd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";fd.m="SVG";fd.a=["AMP","AMP4ADS"];var jf=new C("SVG");jf.b=[-81,-82,-46,-31,-63,71,-76,-32,-61,-62,-83];jf.c=[4,5,7];jf.specUrl="https://www.ampproject.org/docs/reference/spec#svg";jf.a=["AMP","AMP4ADS"];var kf=new C("SWITCH");kf.c=[10,4,5, -7];kf.specUrl="https://www.ampproject.org/docs/reference/spec#svg";kf.m="SVG";kf.a=["AMP","AMP4ADS"];var gd=new C("VIEW");gd.b=[-46,-63,-76,-84,-83];gd.c=[10,5];gd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";gd.m="SVG";gd.a=["AMP","AMP4ADS"];var hd=new C("CIRCLE");hd.b=[-85,-86,-46,-87,-78,-47];hd.c=[10,4,5,7];hd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";hd.m="SVG";hd.a=["AMP","AMP4ADS"];var id=new C("ELLIPSE");id.b=[-85,-86,-46,-88,-89,-78,-47];id.c=[10,4,5,7]; -id.specUrl="https://www.ampproject.org/docs/reference/spec#svg";id.m="SVG";id.a=["AMP","AMP4ADS"];var jd=new C("LINE");jd.b=[-46,-78,-47,-90,-91,-92,-93];jd.c=[10,4,5,7];jd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";jd.m="SVG";jd.a=["AMP","AMP4ADS"];var kd=new C("POLYGON");kd.b=[-46,-94,-78,-47];kd.c=[10,4,5,7];kd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";kd.m="SVG";kd.a=["AMP","AMP4ADS"];var ld=new C("POLYLINE");ld.b=[-46,-94,-78,-47];ld.c=[10,4,5,7];ld.specUrl= -"https://www.ampproject.org/docs/reference/spec#svg";ld.m="SVG";ld.a=["AMP","AMP4ADS"];var md=new C("RECT");md.b=[-46,-31,-88,-89,-78,-47,-32,-61,-62];md.c=[10,4,5,7];md.specUrl="https://www.ampproject.org/docs/reference/spec#svg";md.m="SVG";md.a=["AMP","AMP4ADS"];var nd=new C("TEXT");nd.b=[-57,-58,-46,-95,-96,-97,-98,-47,-61,-62];nd.c=[10,4,5,7];nd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";nd.m="SVG";nd.a=["AMP","AMP4ADS"];var od=new C("TEXTPATH");od.b=[-46,-99,-100,-101];od.c= -[10,4,5,7,9];od.specUrl="https://www.ampproject.org/docs/reference/spec#svg";od.m="SVG";od.a=["AMP","AMP4ADS"];var pd=new C("TREF");pd.b=[-46];pd.c=[10,4,5,7,9];pd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";pd.m="SVG";pd.a=["AMP","AMP4ADS"];var qd=new C("TSPAN");qd.b=[-57,-58,-46,-96,-95,-98,-61,-62];qd.c=[10,4,5,7];qd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";qd.m="SVG";qd.a=["AMP","AMP4ADS"];var rd=new C("CLIPPATH");rd.b=[-102,-46,-47];rd.c=[10,4,5,7];rd.specUrl= -"https://www.ampproject.org/docs/reference/spec#svg";rd.m="SVG";rd.a=["AMP","AMP4ADS"];var sd=new C("FILTER");sd.b=[-46,-103,-104,-31,-105,-32,-61,-62];sd.c=[10,5,7,9];sd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";sd.m="SVG";sd.a=["AMP","AMP4ADS"];var td=new C("HKERN");td.b=[-106,-107,-108,-109,-110];td.c=[10,5];td.specUrl="https://www.ampproject.org/docs/reference/spec#svg";td.m="SVG";td.a=["AMP","AMP4ADS"];var ud=new C("LINEARGRADIENT");ud.b=[-46,-111,-112,-113,-90,-92,-91,-93]; -ud.c=[10,5,7,9];ud.specUrl="https://www.ampproject.org/docs/reference/spec#svg";ud.m="SVG";ud.a=["AMP","AMP4ADS"];var vd=new C("MASK");vd.b=[-46,-31,-114,-115,-32,-61,-62];vd.c=[10,4,5,7];vd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";vd.m="SVG";vd.a=["AMP","AMP4ADS"];var wd=new C("PATTERN");wd.b=[-46,-31,-116,-117,-118,-63,-76,-32,-61,-62];wd.c=[10,4,5,7,9];wd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";wd.m="SVG";wd.a=["AMP","AMP4ADS"];var xd=new C("RADIALGRADIENT"); -xd.b=[-85,-86,-46,-119,-120,-121,-111,-112,-87,-113];xd.c=[10,5,7,9];xd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";xd.m="SVG";xd.a=["AMP","AMP4ADS"];var Wb=new C("STOP");Wb.f="lineargradient > stop";Wb.b=[-122,-123,-124];Wb.c=[10];Wb.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Wb.m="LINEARGRADIENT";Wb.a=["AMP","AMP4ADS"];var Xb=new C("STOP");Xb.f="radialgradient > stop";Xb.b=[-122,-123,-124];Xb.c=[10];Xb.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; -Xb.m="RADIALGRADIENT";Xb.a=["AMP","AMP4ADS"];var yd=new C("VKERN");yd.b=[-106,-107,-108,-109,-110];yd.c=[10,5];yd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";yd.m="SVG";yd.a=["AMP","AMP4ADS"];var zd=new C("DEFS");zd.b=[-46,-47];zd.c=[10,4,5,7];zd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";zd.m="SVG";zd.a=["AMP","AMP4ADS"];var Ad=new C("SYMBOL");Ad.b=[-46,-63,-76];Ad.c=[10,5,7];Ad.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Ad.m="SVG";Ad.a=["AMP", -"AMP4ADS"];var Bd=new C("USE");Bd.b=[-46,-31,-47,-32,-61,-62];Bd.c=[10,4,5,7,9];Bd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Bd.m="SVG";Bd.a=["AMP","AMP4ADS"];var Cd=new C("FECOLORMATRIX");Cd.b=[-125,-3,-126];Cd.c=[10,5,6,7];Cd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Cd.m="SVG";Cd.a=["AMP","AMP4ADS"];var Dd=new C("FECOMPOSITE");Dd.b=[-125,-127,-128,-129,-130,-131,-132];Dd.c=[10,5,6,7];Dd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Dd.m="SVG"; -Dd.a=["AMP","AMP4ADS"];var lf=new C("FEFLOOD");lf.c=[10,5,6,7];lf.specUrl="https://www.ampproject.org/docs/reference/spec#svg";lf.m="SVG";lf.a=["AMP","AMP4ADS"];var Ed=new C("FEGAUSSIANBLUR");Ed.b=[-133,-125,-134];Ed.c=[10,5,6,7];Ed.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Ed.m="SVG";Ed.a=["AMP","AMP4ADS"];var mf=new C("FEMERGE");mf.c=[10,5,6,7];mf.specUrl="https://www.ampproject.org/docs/reference/spec#svg";mf.m="SVG";mf.a=["AMP","AMP4ADS"];var Fd=new C("FEMERGENODE");Fd.b=[-125]; -Fd.c=[10,5];Fd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Fd.m="SVG";Fd.a=["AMP","AMP4ADS"];var Gd=new C("FEOFFSET");Gd.b=[-57,-58,-125];Gd.c=[10,5,6,7];Gd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Gd.m="SVG";Gd.a=["AMP","AMP4ADS"];var Hd=new C("FOREIGNOBJECT");Hd.b=[-46,-31,-47,-32,-61,-62];Hd.c=[10,4,5,7];Hd.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Hd.m="SVG";Hd.a=["AMP","AMP4ADS"];var nf=new C("DESC");nf.c=[10,5];nf.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; -nf.m="SVG";nf.a=["AMP","AMP4ADS"];var Id=new C("TITLE");Id.f="svg title";Id.c=[10,5];Id.specUrl="https://www.ampproject.org/docs/reference/spec#svg";Id.m="SVG";Id.a=["AMP","AMP4ADS"];var Cp=new C("TABLE");Cp.b=[-135,-21,72,-136,-137,-138,-32];var Ju=new C("CAPTION"),Dp=new C("COLGROUP");Dp.b=[-139];var Ep=new C("COL");Ep.b=[-139];var Ku=new C("TBODY"),Lu=new C("THEAD"),Mu=new C("TFOOT"),Fp=new C("TR");Fp.b=[-21,-136,-31,-140];var Gp=new C("TD");Gp.b=[-141,-142,-143,-21,-136,-31,-140,-32];var Hp=new C("TH"); -Hp.b=[-144,-141,-142,-143,-145,-146,-21,-136,-31,-140,-32];var Jd=new C("FORM");Jd.f="FORM [method=GET]";Jd.b=[-147,-148,73,74,-149,75,-150,76,-25,-151,77,78];Jd.C=["AMP-APP-BANNER"];Jd.a=["AMP","AMP4ADS"];Jd.g=["amp-form"];var Kd=new C("FORM");Kd.f="FORM [method=POST]";Kd.b=[-147,-148,79,-149,80,-150,81,-25,-151,77,78];Kd.C=["AMP-APP-BANNER"];Kd.a=["AMP","AMP4ADS"];Kd.g=["amp-form"];var gh=new C("DIV");gh.f="FORM > DIV [submitting]";gh.j="FORM";gh.b=[-21,82];var hh=new C("DIV");hh.f="FORM > DIV [submit-success]"; -hh.j="FORM";hh.b=[-21,83];var ih=new C("DIV");ih.f="FORM > DIV [submit-error]";ih.j="FORM";ih.b=[-21,84];var tk=new C("LABEL");tk.b=[-152];tk.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var jh=new C("INPUT");jh.b=[-147,-153,-149,-154,-155,-156,-31,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,85,-173,-32,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-43,-194,-195];jh.c=[11];jh.specUrl= -"https://www.ampproject.org/docs/reference/components/amp-form";var uk=new C("BUTTON");uk.b=[86,54,55,-3,-173,-178,-43,-194];uk.c=[11];var Yb=new C("BUTTON");Yb.f="amp-app-banner button[open-button]";Yb.b=[87,54,55,-3,-173];Yb.c=[11];Yb.m="AMP-APP-BANNER";Yb.a=["AMP","AMP4ADS"];Yb.J=[-196];var kh=new C("SELECT");kh.b=[-154,-156,-163,-167,-169,-197,-178,-185,-189,-191];kh.c=[11];kh.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var Ip=new C("DATALIST");Ip.specUrl="https://www.ampproject.org/docs/reference/components/amp-form"; -var lh=new C("OPTGROUP");lh.j="SELECT";lh.b=[-156,-198,-178,-44];lh.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var vk=new C("OPTION");vk.b=[-156,-198,-199,-173,-178,-44,-200,-194];vk.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var mh=new C("TEXTAREA");mh.b=[-149,-154,-201,-156,-160,-162,-165,-166,-167,-202,-168,-203,-204,-170,-205,-176,-197,-206,-178,-182,-184,-187,-188,-189,-207,-190,-208,-209,-192,-210];mh.c=[11];mh.specUrl="https://www.ampproject.org/docs/reference/components/amp-form"; -var wk=new C("OUTPUT");wk.b=[-152,-211];wk.c=[11];var Jp=new C("PROGRESS");Jp.b=[-159,-173];var Kp=new C("METER");Kp.b=[-212,-213,-159,-161,-214,-173];var xk=new C("FIELDSET");xk.b=[-156,-178];xk.c=[11];var Nu=new C("LEGEND"),nh=new Wj;nh.g=[new Vj(".","contents")];nh.b=-215;var cb=new C("SCRIPT");cb.f="amphtml engine v0.js script";cb.F=!0;cb.unique=!0;cb.j="HEAD";cb.b=[88,-12,89,90];cb.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";cb.u=nh;cb.a=["AMP"];var db=new C("SCRIPT"); -db.f="amp4ads engine amp4ads-v0.js script";db.F=!0;db.unique=!0;db.j="HEAD";db.b=[88,-12,91,90];db.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";db.u=nh;db.a=["AMP4ADS"];var Na=new Wj;Na.g=[yc];Na.b=-216;var oh=new C("SCRIPT");oh.f="script type=application/ld+json";oh.b=[-12,92];oh.u=Na;var Zb=new C("SCRIPT");Zb.f="script id=amp-rtc";Zb.unique=!0;Zb.j="HEAD";Zb.b=[-12,93,94];Zb.u=Na;Zb.a=["AMP"];var Ld=new C("SCRIPT");Ld.f="amp-ima-video > script[type=application/json]"; -Ld.j="AMP-IMA-VIDEO";Ld.b=[95];Ld.u=Na;Ld.a=["AMP"];var $b=new C("NOSCRIPT");$b.f="noscript enclosure for boilerplate";$b.F=!0;$b.unique=!0;$b.j="HEAD";$b.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";$b.a=["AMP"];var ph=new C("NOSCRIPT");ph.C=["NOSCRIPT"];ph.m="BODY";ph.a=["AMP"];var Lp=new C("ACRONYM");Lp.a=["AMP"];var Mp=new C("BIG");Mp.a=["AMP"];var Np=new C("CENTER");Np.a=["AMP"];var Op=new C("DIR");Op.a=["AMP"];var Pp=new C("HGROUP");Pp.a=["AMP"];var Qp= -new C("LISTING");Qp.a=["AMP"];var Rp=new C("MULTICOL");Rp.a=["AMP"];var Sp=new C("NEXTID");Sp.a=["AMP"];var Tp=new C("NOBR");Tp.a=["AMP"];var Up=new C("SPACER");Up.a=["AMP"];var Vp=new C("STRIKE");Vp.a=["AMP"];var Wp=new C("TT");Wp.a=["AMP"];var Xp=new C("XMP");Xp.a=["AMP"];var yk=new C("SLOT");yk.b=[-25];yk.a=["AMP"];var Yp=new C("O:P");Yp.a=["AMP"];var G=new v("FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),Md=new C("AMP-IMG");Md.b=[-29,-217,-165,-218,-219,-42,-220];Md.c=[13, -12];Md.specUrl="https://www.ampproject.org/docs/reference/components/amp-img";Md.i=G;Md.a=["AMP","AMP4ADS"];var of=new C("AMP-LAYOUT");of.c=[13];of.specUrl="https://www.ampproject.org/docs/reference/components/amp-layout";of.i=G;of.a=["AMP","AMP4ADS"];var zk=new v(["FIXED","NODISPLAY"]);zk.b=!0;zk.a=!0;var Nd=new C("AMP-PIXEL");Nd.b=[96,97];Nd.c=[13];Nd.specUrl="https://www.ampproject.org/docs/reference/components/amp-pixel";Nd.i=zk;Nd.a=["AMP","AMP4ADS"];var Ak=new A;Ak.name="amp-3q-player";Ak.a= -["0.1","latest"];var qh=new C("SCRIPT");qh.c=[15];qh.a=["AMP"];qh.h=Ak;var Bk=new v(["FILL","FIXED","FLEX_ITEM","RESPONSIVE"]),Od=new C("AMP-3Q-PLAYER");Od.b=[98,99];Od.c=[13];Od.i=Bk;Od.a=["AMP"];Od.g=["amp-3q-player"];var rh=new A;rh.name="amp-access-laterpay";rh.a=["0.1","latest"];rh.b="NONE";var pf=new C("SCRIPT");pf.c=[15];pf.a=["AMP"];pf.h=rh;pf.g=["amp-access"];var qf=new A;qf.name="amp-access";qf.a=["0.1","latest"];qf.c=!0;qf.b="GRANDFATHERED";var sh=new C("SCRIPT");sh.c=[15];sh.a=["AMP"]; -sh.h=qf;var rb=new C("SCRIPT");rb.f="amp-access extension .json script";rb.unique=!0;rb.j="HEAD";rb.b=[100,-12,93];rb.u=Na;rb.a=["AMP"];rb.g=["amp-access","amp-analytics"];var rf=new A;rf.name="amp-accordion";rf.a=["0.1","latest"];rf.c=!0;rf.b="GRANDFATHERED";var Ck=new C("SCRIPT");Ck.c=[15];Ck.h=rf;var Ou=new v(["CONTAINER"]),Zp=new Xj;Zp.a=["SECTION"];var Pd=new C("AMP-ACCORDION");Pd.b=[101];Pd.specUrl="https://www.ampproject.org/docs/reference/components/amp-accordion";Pd.i=Ou;Pd.w=Zp;Pd.g=["amp-accordion"]; -var Dk=new Xj;Dk.b=2;Dk.c="H1 H2 H3 H4 H5 H6 HEADER".split(" ");var sf=new C("SECTION");sf.f="amp-accordion > section";sf.j="AMP-ACCORDION";sf.b=[102];sf.w=Dk;var Ek=new A;Ek.name="amp-ad-exit";Ek.a=["0.1","latest"];var th=new C("SCRIPT");th.c=[15];th.a=["AMP4ADS"];th.h=Ek;var ac=new C("AMP-AD-EXIT");ac.b=[103];ac.c=[13];ac.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad-exit";ac.a=["AMP4ADS"];ac.H=[-221];ac.g=["amp-ad-exit"];var sb=new C("SCRIPT");sb.f="amp-ad-exit configuration JSON"; -sb.j="AMP-AD-EXIT";sb.b=[-12,104];sb.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad-exit";sb.a=["AMP4ADS"];sb.J=[-221];sb.g=["amp-ad-exit"];var tf=new A;tf.name="amp-ad";tf.a=["0.1","latest"];tf.c=!0;tf.b="GRANDFATHERED";var uf=new C("SCRIPT");uf.f="amp-ad extension .js script";uf.c=[15];uf.a=["AMP"];uf.h=tf;var eb=new C("AMP-AD");eb.b=[-29,-222,67,69];eb.c=[13];eb.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad";eb.i=G;eb.C=["AMP-APP-BANNER"];eb.a=["AMP"]; -eb.K=[228];eb.g=["amp-ad"];var Oa=new C("AMP-AD");Oa.f="amp-ad with data-multi-size attribute";Oa.b=[-29,105,-222,67,69];Oa.c=[13];Oa.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad";Oa.i=G;Oa.C=["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"];Oa.a=["AMP"];Oa.K=[228];Oa.g=["amp-ad"];var fb=new C("AMP-EMBED");fb.b=[-29,-222,67,69];fb.c=[13];fb.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad";fb.i=G;fb.C=["AMP-APP-BANNER"]; -fb.a=["AMP"];fb.K=[228];fb.g=["amp-ad"];var Pa=new C("AMP-EMBED");Pa.f="amp-embed with data-multi-size attribute";Pa.b=[-29,105,-222,67,69];Pa.c=[13];Pa.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad";Pa.i=G;Pa.C=["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"];Pa.a=["AMP"];Pa.K=[228];Pa.g=["amp-ad"];var vf=new A;vf.name="amp-analytics";vf.a=["0.1","latest"];vf.c=!0;vf.b="GRANDFATHERED";var uh=new C("SCRIPT");uh.c=[15];uh.a=["AMP","AMP4ADS"]; -uh.h=vf;var tb=new C("SCRIPT");tb.f="amp-analytics extension .json script";tb.j="AMP-ANALYTICS";tb.b=[-12,95];tb.specUrl="https://www.ampproject.org/docs/reference/components/amp-analytics";tb.u=Na;tb.a=["AMP","AMP4ADS"];tb.g=["amp-analytics"];var wf=new C("AMP-ANALYTICS");wf.b=[-3,106];wf.specUrl="https://www.ampproject.org/docs/reference/components/amp-analytics";wf.a=["AMP","AMP4ADS"];wf.g=["amp-analytics"];var xf=new A;xf.name="amp-anim";xf.a=["0.1","latest"];xf.c=!0;xf.b="GRANDFATHERED";var vh= -new C("SCRIPT");vh.c=[15];vh.a=["AMP","AMP4ADS"];vh.h=xf;var bc=new C("AMP-ANIM");bc.b=[-29,-217,-36];bc.c=[13,12];bc.specUrl="https://www.ampproject.org/docs/reference/components/amp-anim";bc.i=G;bc.a=["AMP","AMP4ADS"];bc.g=["amp-anim"];var Fk=new A;Fk.name="amp-animation";Fk.a=["0.1","latest"];var wh=new C("SCRIPT");wh.c=[15];wh.a=["AMP","AMP4ADS"];wh.h=Fk;var cc=new C("SCRIPT");cc.f="amp-animation extension .json script";cc.j="AMP-ANIMATION";cc.b=[-12,95];cc.u=Na;cc.J=[-223];cc.g=["amp-animation"]; -var xa=new v(["NODISPLAY"]),Gk=new Xj;Gk.b=1;Gk.a=["SCRIPT"];var ub=new C("AMP-ANIMATION");ub.b=[107];ub.c=[13];ub.i=xa;ub.w=Gk;ub.a=["AMP","AMP4ADS"];ub.H=[-223];ub.g=["amp-animation"];var yf=new A;yf.name="amp-apester-media";yf.a=["0.1","latest"];yf.c=!0;yf.b="GRANDFATHERED";var xh=new C("SCRIPT");xh.c=[15];xh.a=["AMP"];xh.h=yf;var dc=new C("AMP-APESTER-MEDIA");dc.b=[108,109];dc.c=[13];dc.specUrl="https://www.ampproject.org/docs/reference/components/amp-apester-media";dc.i=G;dc.a=["AMP"];dc.g=["amp-apester-media"]; -var yh=new A;yh.name="amp-app-banner";yh.a=["0.1","latest"];yh.c=!0;var zh=new C("SCRIPT");zh.c=[15];zh.a=["AMP"];zh.h=yh;var Qa=new C("AMP-APP-BANNER");Qa.unique=!0;Qa.j="BODY";Qa.b=[103];Qa.c=[13];Qa.specUrl="https://www.ampproject.org/docs/reference/components/amp-app-banner";Qa.i=xa;Qa.a=["AMP"];Qa.H=[-4,-196];Qa.g=["amp-app-banner"];var zf=new A;zf.name="amp-audio";zf.a=["0.1","latest"];zf.c=!0;zf.b="GRANDFATHERED";var Hk=new C("SCRIPT");Hk.c=[15];Hk.h=zf;var Af=new v(["FIXED","FIXED_HEIGHT", -"NODISPLAY"]);Af.b=!0;Af.a=!0;var vb=new C("AMP-AUDIO");vb.b=[98];vb.c=[17,13];vb.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";vb.i=Af;vb.C=["AMP-STORY"];vb.a=["AMP"];vb.g=["amp-audio"];var gb=new C("AMP-AUDIO");gb.f="amp-story >> amp-audio";gb.b=[110];gb.c=[17,13];gb.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";gb.i=Af;gb.m="AMP-STORY";gb.a=["AMP"];gb.g=["amp-audio"];var ec=new C("AMP-AUDIO");ec.f="amp-audio (A4A)";ec.c=[17,13];ec.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio"; -ec.i=Af;ec.a=["AMP4ADS"];ec.g=["amp-audio"];var Ik=new A;Ik.name="amp-auto-ads";Ik.a=["0.1","latest"];var Ah=new C("SCRIPT");Ah.c=[15];Ah.a=["AMP"];Ah.h=Ik;var fc=new C("AMP-AUTO-ADS");fc.j="BODY";fc.b=[69];fc.c=[13];fc.specUrl="https://www.ampproject.org/docs/reference/components/amp-auto-ads";fc.a=["AMP"];fc.g=["amp-auto-ads"];var Bh=new A;Bh.name="amp-bind";Bh.a=["0.1","latest"];Bh.b="NONE";var Ch=new C("SCRIPT");Ch.c=[15];Ch.a=["AMP"];Ch.h=Bh;var wb=new C("SCRIPT");wb.f="amp-bind extension .json script"; -wb.j="AMP-STATE";wb.b=[-12,95];wb.specUrl="https://www.ampproject.org/docs/reference/components/amp-bind";wb.u=Na;wb.a=["AMP"];wb.g=["amp-bind"];var $p=new Xj;$p.c=["SCRIPT"];var gc=new C("AMP-STATE");gc.f="amp-state";gc.b=[111,103,67,-42];gc.specUrl="https://www.ampproject.org/docs/reference/components/amp-bind";gc.w=$p;gc.a=["AMP"];gc.g=["amp-bind"];var Bf=new A;Bf.name="amp-brid-player";Bf.a=["0.1","latest"];Bf.c=!0;Bf.b="GRANDFATHERED";var Dh=new C("SCRIPT");Dh.c=[15];Dh.a=["AMP"];Dh.h=Bf;var hc= -new C("AMP-BRID-PLAYER");hc.b=[-35,112,113,114,115,116];hc.c=[13];hc.specUrl="https://www.ampproject.org/docs/reference/components/amp-brid-player";hc.i=G;hc.a=["AMP"];hc.g=["amp-brid-player"];var Cf=new A;Cf.name="amp-brightcove";Cf.a=["0.1","latest"];Cf.c=!0;Cf.b="GRANDFATHERED";var Eh=new C("SCRIPT");Eh.c=[15];Eh.a=["AMP"];Eh.h=Cf;var ic=new C("AMP-BRIGHTCOVE");ic.b=[117,-224,-225,-226,-227,-228,-229];ic.c=[13];ic.specUrl="https://www.ampproject.org/docs/reference/components/amp-brightcove";ic.i= -G;ic.a=["AMP"];ic.g=["amp-brightcove"];var Fh=new A;Fh.name="amp-call-tracking";Fh.a=["0.1","latest"];Fh.b="GRANDFATHERED";var Gh=new C("SCRIPT");Gh.c=[15];Gh.a=["AMP"];Gh.h=Fh;var Pu=new v("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM RESPONSIVE".split(" ")),Jk=new Xj;Jk.b=1;Jk.a=["A"];var xb=new C("AMP-CALL-TRACKING");xb.b=[118];xb.c=[13];xb.specUrl="https://www.ampproject.org/docs/reference/components/amp-call-tracking";xb.i=Pu;xb.w=Jk;xb.a=["AMP"];xb.g=["amp-call-tracking"];var Df=new A;Df.name= -"amp-carousel";Df.a=["0.1","latest"];Df.c=!0;Df.b="GRANDFATHERED";var Kk=new C("SCRIPT");Kk.c=[15];Kk.h=Df;var Qd=new C("AMP-CAROUSEL");Qd.b=[119,98,-36,120,121,122,123,-230];Qd.c=[13];Qd.specUrl="https://www.ampproject.org/docs/reference/components/amp-carousel";Qd.i=G;Qd.g=["amp-carousel"];var Ef=new A;Ef.name="amp-dailymotion";Ef.a=["0.1","latest"];Ef.c=!0;Ef.b="GRANDFATHERED";var Hh=new C("SCRIPT");Hh.c=[15];Hh.a=["AMP"];Hh.h=Ef;var Rd=new v(["FILL","FIXED","FIXED_HEIGHT","FLEX_ITEM","RESPONSIVE"]), -jc=new C("AMP-DAILYMOTION");jc.b=[-35,124,125,126,127,128,129,130,131];jc.c=[13];jc.specUrl="https://www.ampproject.org/docs/reference/components/amp-dailymotion";jc.i=Rd;jc.a=["AMP"];jc.g=["amp-dailymotion"];var Ff=new A;Ff.name="amp-dynamic-css-classes";Ff.a=["0.1","latest"];Ff.c=!0;Ff.b="NONE";var Ih=new C("SCRIPT");Ih.c=[15];Ih.a=["AMP"];Ih.h=Ff;var Gf=new A;Gf.name="amp-experiment";Gf.a=["0.1","latest"];Gf.c=!0;Gf.b="GRANDFATHERED";var Jh=new C("SCRIPT");Jh.c=[15];Jh.a=["AMP"];Jh.h=Gf;var kc= -new C("SCRIPT");kc.f="amp-experiment extension .json script";kc.j="AMP-EXPERIMENT";kc.b=[-12,95];kc.specUrl="https://www.ampproject.org/docs/reference/components/amp-experiment";kc.u=Na;kc.a=["AMP"];var Hf=new C("AMP-EXPERIMENT");Hf.unique=!0;Hf.specUrl="https://www.ampproject.org/docs/reference/components/amp-experiment";Hf.a=["AMP"];Hf.g=["amp-experiment"];var Lk=new A;Lk.name="amp-facebook-comments";Lk.a=["0.1","latest"];var Kh=new C("SCRIPT");Kh.c=[15];Kh.a=["AMP"];Kh.h=Lk;var Sd=new C("AMP-FACEBOOK-COMMENTS"); -Sd.b=[132];Sd.c=[13];Sd.i=G;Sd.a=["AMP"];Sd.g=["amp-facebook-comments"];var Mk=new A;Mk.name="amp-facebook-like";Mk.a=["0.1","latest"];var Lh=new C("SCRIPT");Lh.c=[15];Lh.a=["AMP"];Lh.h=Mk;var Td=new C("AMP-FACEBOOK-LIKE");Td.b=[133];Td.c=[13];Td.i=G;Td.a=["AMP"];Td.g=["amp-facebook-like"];var If=new A;If.name="amp-facebook";If.a=["0.1","latest"];If.c=!0;If.b="GRANDFATHERED";var Mh=new C("SCRIPT");Mh.c=[15];Mh.a=["AMP"];Mh.h=If;var Ud=new C("AMP-FACEBOOK");Ud.b=[132];Ud.c=[13];Ud.i=G;Ud.a=["AMP"]; -Ud.g=["amp-facebook"];var Jf=new A;Jf.name="amp-fit-text";Jf.a=["0.1","latest"];Jf.c=!0;Jf.b="GRANDFATHERED";var Nk=new C("SCRIPT");Nk.c=[15];Nk.h=Jf;var Kf=new C("AMP-FIT-TEXT");Kf.b=[-231,-232];Kf.c=[13];Kf.i=G;Kf.g=["amp-fit-text"];var Lf=new A;Lf.name="amp-font";Lf.a=["0.1","latest"];Lf.c=!0;Lf.b="GRANDFATHERED";var Nh=new C("SCRIPT");Nh.c=[15];Nh.a=["AMP","AMP4ADS"];Nh.h=Lf;var Vd=new C("AMP-FONT");Vd.b=[134,-233,-234,135,-235,-236,-237,-238,-239];Vd.c=[13];Vd.i=xa;Vd.a=["AMP","AMP4ADS"];Vd.g= -["amp-font"];var Mf=new A;Mf.name="amp-form";Mf.a=["0.1","latest"];Mf.c=!0;Mf.b="GRANDFATHERED";var Ok=new C("SCRIPT");Ok.c=[15];Ok.h=Mf;var Nf=new A;Nf.name="amp-fx-flying-carpet";Nf.a=["0.1","latest"];Nf.c=!0;Nf.b="GRANDFATHERED";var Oh=new C("SCRIPT");Oh.c=[15];Oh.a=["AMP"];Oh.h=Nf;var Of=new C("AMP-FX-FLYING-CARPET");Of.b=[136];Of.c=[13];Of.a=["AMP"];Of.g=["amp-fx-flying-carpet"];var Pf=new A;Pf.name="amp-gfycat";Pf.a=["0.1","latest"];Pf.c=!0;Pf.b="GRANDFATHERED";var Ph=new C("SCRIPT");Ph.c=[15]; -Ph.a=["AMP"];Ph.h=Pf;var lc=new C("AMP-GFYCAT");lc.b=[137,138];lc.c=[13];lc.specUrl="https://www.ampproject.org/docs/reference/components/amp-gfycat";lc.i=Rd;lc.a=["AMP"];lc.g=["amp-gfycat"];var Pk=new A;Pk.name="amp-gist";Pk.a=["0.1","latest"];var Qh=new C("SCRIPT");Qh.c=[15];Qh.a=["AMP"];Qh.h=Pk;var aq=new v(["FIXED_HEIGHT"]),mc=new C("AMP-GIST");mc.b=[139];mc.c=[13];mc.specUrl="https://www.ampproject.org/docs/reference/components/amp-gist";mc.i=aq;mc.a=["AMP"];mc.g=["amp-gist"];var Qk=new A;Qk.name= -"amp-gwd-animation";Qk.a=["0.1","latest"];var Rh=new C("SCRIPT");Rh.c=[15];Rh.a=["AMP4ADS"];Rh.h=Qk;var Wd=new C("AMP-GWD-ANIMATION");Wd.b=[140];Wd.c=[13];Wd.i=xa;Wd.a=["AMP4ADS"];Wd.g=["amp-gwd-animation"];var Rk=new A;Rk.name="amp-hulu";Rk.a=["0.1","latest"];var Sh=new C("SCRIPT");Sh.c=[15];Sh.a=["AMP"];Sh.h=Rk;var nc=new C("AMP-HULU");nc.b=[141];nc.c=[13];nc.specUrl="https://www.ampproject.org/docs/reference/components/amp-hulu";nc.i=Rd;nc.a=["AMP"];nc.g=["amp-hulu"];var Qf=new A;Qf.name="amp-iframe"; -Qf.a=["0.1","latest"];Qf.c=!0;Qf.b="GRANDFATHERED";var Th=new C("SCRIPT");Th.c=[15];Th.a=["AMP"];Th.h=Qf;var Xd=new C("AMP-IFRAME");Xd.b=[-240,142,143,144,60,-33,61,-34,62,145,64,146];Xd.c=[13];Xd.i=G;Xd.a=["AMP"];Xd.g=["amp-iframe"];var Sk=new A;Sk.name="amp-ima-video";Sk.a=["0.1","latest"];var Uh=new C("SCRIPT");Uh.c=[15];Uh.a=["AMP"];Uh.h=Sk;var Qu=new v(["FILL","FIXED","FIXED_HEIGHT","NODISPLAY","RESPONSIVE"]),oc=new C("AMP-IMA-VIDEO");oc.b=[147,148];oc.c=[13];oc.specUrl="https://www.ampproject.org/docs/reference/components/amp-ima-video"; -oc.i=Qu;oc.a=["AMP"];oc.g=["amp-ima-video"];var Rf=new A;Rf.name="amp-image-lightbox";Rf.a=["0.1","latest"];Rf.c=!0;Rf.b="GRANDFATHERED";var Vh=new C("SCRIPT");Vh.c=[15];Vh.a=["AMP"];Vh.h=Rf;var Yd=new C("AMP-IMAGE-LIGHTBOX");Yd.b=[-36];Yd.c=[13];Yd.i=xa;Yd.a=["AMP"];Yd.g=["amp-image-lightbox"];var Tk=new A;Tk.name="amp-imgur";Tk.a=["0.1","latest"];var Wh=new C("SCRIPT");Wh.c=[15];Wh.a=["AMP"];Wh.h=Tk;var Zd=new C("AMP-IMGUR");Zd.b=[149];Zd.c=[13];Zd.i=G;Zd.a=["AMP"];Zd.g=["amp-imgur"];var Sf=new A; -Sf.name="amp-instagram";Sf.a=["0.1","latest"];Sf.c=!0;Sf.b="GRANDFATHERED";var Xh=new C("SCRIPT");Xh.c=[15];Xh.a=["AMP"];Xh.h=Sf;var $d=new C("AMP-INSTAGRAM");$d.b=[-29,150];$d.c=[13];$d.i=G;$d.a=["AMP"];$d.g=["amp-instagram"];var Tf=new A;Tf.name="amp-install-serviceworker";Tf.a=["0.1","latest"];Tf.c=!0;Tf.b="GRANDFATHERED";var Yh=new C("SCRIPT");Yh.c=[15];Yh.a=["AMP"];Yh.h=Tf;var Uf=new C("AMP-INSTALL-SERVICEWORKER");Uf.b=[68,151];Uf.i=xa;Uf.a=["AMP"];Uf.g=["amp-install-serviceworker"];var Zh=new A; -Zh.name="amp-izlesene";Zh.a=["0.1","latest"];Zh.b="GRANDFATHERED";var $h=new C("SCRIPT");$h.c=[15];$h.a=["AMP"];$h.h=Zh;var ae=new C("AMP-IZLESENE");ae.b=[152];ae.c=[13];ae.i=Rd;ae.a=["AMP"];ae.g=["amp-izlesene"];var Vf=new A;Vf.name="amp-jwplayer";Vf.a=["0.1","latest"];Vf.c=!0;Vf.b="GRANDFATHERED";var ai=new C("SCRIPT");ai.c=[15];ai.a=["AMP"];ai.h=Vf;var Wf=new C("AMP-JWPLAYER");Wf.b=[153,154,155];Wf.i=G;Wf.a=["AMP"];Wf.g=["amp-jwplayer"];var Xf=new A;Xf.name="amp-kaltura-player";Xf.a=["0.1","latest"]; -Xf.c=!0;Xf.b="GRANDFATHERED";var bi=new C("SCRIPT");bi.c=[15];bi.a=["AMP"];bi.h=Xf;var be=new C("AMP-KALTURA-PLAYER");be.b=[156];be.c=[13];be.i=G;be.a=["AMP"];be.g=["amp-kaltura-player"];var Yf=new A;Yf.name="amp-lightbox";Yf.a=["0.1","latest"];Yf.c=!0;Yf.b="GRANDFATHERED";var ci=new C("SCRIPT");ci.c=[15];ci.a=["AMP"];ci.h=Yf;var ce=new C("AMP-LIGHTBOX");ce.b=[-36,-241,-242];ce.c=[13];ce.i=xa;ce.a=["AMP"];ce.g=["amp-lightbox"];var Zf=new A;Zf.name="amp-list";Zf.a=["0.1","latest"];Zf.c=!0;Zf.b="GRANDFATHERED"; -var di=new C("SCRIPT");di.c=[15];di.a=["AMP"];di.h=Zf;var de=new C("AMP-LIST");de.b=[-243,-244,-245,-246,68,-247,-42,-248];de.c=[13];de.i=G;de.a=["AMP"];de.g=["amp-list"];var ei=new A;ei.name="amp-live-list";ei.a=["0.1","latest"];ei.b="GRANDFATHERED";var ee=new C("SCRIPT");ee.j="HEAD";ee.c=[15];ee.a=["AMP"];ee.X=!0;ee.h=ei;var Ru=new v(["CONTAINER","FIXED_HEIGHT"]),fi=new ck;fi.a=313;fi.b=!0;fi.unique=!0;var gi=new ck;gi.a=314;gi.b=!0;gi.unique=!0;var Uk=new ck;Uk.a=315;Uk.unique=!0;var fe=new C("AMP-LIVE-LIST"); -fe.b=[157,158,86,103];fe.i=Ru;fe.v=[fi,gi,Uk];fe.a=["AMP"];fe.g=["amp-live-list"];var $f=new C("$REFERENCE_POINT");$f.f="AMP-LIVE-LIST [update]";$f.b=[159];$f.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#update";$f.a=["AMP"];var bq=new ck;bq.a=316;var ge=new C("$REFERENCE_POINT");ge.f="AMP-LIVE-LIST [items]";ge.b=[160];ge.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#items";ge.v=[bq];ge.a=["AMP"];var ag=new C("$REFERENCE_POINT");ag.f="AMP-LIVE-LIST [pagination]"; -ag.b=[161];ag.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#pagination";ag.a=["AMP"];var bg=new C("$REFERENCE_POINT");bg.f="AMP-LIVE-LIST [items] item";bg.b=[103,162,-249,-250];bg.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#items";bg.a=["AMP"];var he=new A;he.name="amp-mustache";he.a=["0.1","latest"];he.f=!0;he.c=!0;he.b="GRANDFATHERED";var hi=new C("SCRIPT");hi.c=[15];hi.a=["AMP"];hi.h=he;var ii=new C("TEMPLATE");ii.b=[163];ii.C=["TEMPLATE"]; -ii.g=["amp-mustache"];var Vk=new A;Vk.name="amp-nexxtv-player";Vk.a=["0.1","latest"];var ji=new C("SCRIPT");ji.c=[15];ji.a=["AMP"];ji.h=Vk;var ie=new C("AMP-NEXXTV-PLAYER");ie.b=[164,165,166,167,168];ie.c=[13];ie.i=G;ie.a=["AMP"];ie.g=["amp-nexxtv-player"];var cg=new A;cg.name="amp-o2-player";cg.a=["0.1","latest"];cg.c=!0;cg.b="GRANDFATHERED";var ki=new C("SCRIPT");ki.c=[15];ki.a=["AMP"];ki.h=cg;var je=new C("AMP-O2-PLAYER");je.b=[169,170];je.c=[13];je.i=G;je.a=["AMP"];je.g=["amp-o2-player"];var Wk= -new A;Wk.name="amp-ooyala-player";Wk.a=["0.1","latest"];var li=new C("SCRIPT");li.c=[15];li.a=["AMP"];li.h=Wk;var ke=new C("AMP-OOYALA-PLAYER");ke.b=[171,172,173];ke.c=[13];ke.i=Bk;ke.a=["AMP"];ke.g=["amp-ooyala-player"];var dg=new A;dg.name="amp-pinterest";dg.a=["0.1","latest"];dg.c=!0;dg.b="GRANDFATHERED";var mi=new C("SCRIPT");mi.c=[15];mi.a=["AMP"];mi.h=dg;var pc=new C("AMP-PINTEREST");pc.b=[174];pc.c=[13];pc.specUrl="https://www.ampproject.org/docs/reference/components/amp-pinterest";pc.i=G; -pc.a=["AMP"];pc.g=["amp-pinterest"];var Xk=new A;Xk.name="amp-playbuzz";Xk.a=["0.1","latest"];var ni=new C("SCRIPT");ni.c=[15];ni.a=["AMP"];ni.h=Xk;var Su=new v(["RESPONSIVE","FIXED_HEIGHT"]),le=new C("AMP-PLAYBUZZ");le.b=[175,176,177,178,179];le.c=[13];le.i=Su;le.a=["AMP"];le.g=["amp-playbuzz"];var Yk=new A;Yk.name="amp-position-observer";Yk.a=["0.1","latest"];var oi=new C("SCRIPT");oi.c=[15];oi.a=["AMP","AMP4ADS"];oi.h=Yk;var me=new C("AMP-POSITION-OBSERVER");me.b=[180,-251,181];me.c=[13];me.i= -xa;me.a=["AMP","AMP4ADS"];me.g=["amp-position-observer"];var eg=new A;eg.name="amp-reach-player";eg.a=["0.1","latest"];eg.c=!0;eg.b="GRANDFATHERED";var pi=new C("SCRIPT");pi.c=[15];pi.a=["AMP"];pi.h=eg;var ne=new C("AMP-REACH-PLAYER");ne.b=[182];ne.c=[13];ne.i=Rd;ne.a=["AMP"];ne.g=["amp-reach-player"];var qi=new A;qi.name="amp-reddit";qi.a=["0.1","latest"];qi.c=!0;var ri=new C("SCRIPT");ri.c=[15];ri.a=["AMP"];ri.h=qi;var oe=new C("AMP-REDDIT");oe.b=[183,184,185,186];oe.c=[13];oe.i=G;oe.a=["AMP"]; -oe.g=["amp-reddit"];var si=new A;si.name="amp-selector";si.a=["0.1","latest"];si.b="GRANDFATHERED";var ti=new C("SCRIPT");ti.c=[15];ti.a=["AMP"];ti.h=si;var Tu=new v("FILL FIXED FIXED_HEIGHT NODISPLAY RESPONSIVE CONTAINER".split(" ")),Zk=new ck;Zk.a=337;var $k=new ck;$k.a=338;var yb=new C("AMP-SELECTOR");yb.b=[86,-211,187,188,-200];yb.c=[13,11];yb.i=Tu;yb.C=["AMP-SELECTOR"];yb.v=[Zk,$k];yb.a=["AMP"];yb.g=["amp-selector"];var fg=new C("$REFERENCE_POINT");fg.f="AMP-SELECTOR option";fg.b=[189,86,190]; -fg.specUrl="https://www.ampproject.org/docs/reference/components/amp-selector";fg.a=["AMP"];var ui=new C("$REFERENCE_POINT");ui.f="AMP-SELECTOR child";ui.v=[Zk,$k];ui.a=["AMP"];var gg=new A;gg.name="amp-sidebar";gg.a=["0.1","latest"];gg.c=!0;gg.b="GRANDFATHERED";var vi=new C("SCRIPT");vi.c=[15];vi.a=["AMP"];vi.h=gg;var qc=new C("AMP-SIDEBAR");qc.j="BODY";qc.b=[191];qc.c=[13];qc.i=xa;qc.a=["AMP"];qc.g=["amp-sidebar"];var al=new Xj;al.b=1;al.a=["UL"];var pe=new C("NAV");pe.f="amp-sidebar > nav";pe.j= -"AMP-SIDEBAR";pe.b=[192,193];pe.w=al;pe.a=["AMP"];var hg=new A;hg.name="amp-slides";hg.a=["0.1","latest"];hg.c=!0;hg.b="NONE";var qe=new C("SCRIPT");qe.c=[15];qe.R="amp-carousel";qe.W="https://www.ampproject.org/docs/reference/components/amp-carousel";qe.a=["AMP"];qe.h=hg;var ig=new A;ig.name="amp-social-share";ig.a=["0.1","latest"];ig.c=!0;ig.b="GRANDFATHERED";var wi=new C("SCRIPT");wi.c=[15];wi.a=["AMP","AMP4ADS"];wi.h=ig;var Uu=new v("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")), -re=new C("AMP-SOCIAL-SHARE");re.b=[194,69];re.c=[13];re.i=Uu;re.a=["AMP","AMP4ADS"];re.g=["amp-social-share"];var jg=new A;jg.name="amp-soundcloud";jg.a=["0.1","latest"];jg.c=!0;jg.b="GRANDFATHERED";var xi=new C("SCRIPT");xi.c=[15];xi.a=["AMP"];xi.h=jg;var se=new C("AMP-SOUNDCLOUD");se.b=[195,196,197,198,199];se.c=[13];se.i=aq;se.a=["AMP"];se.g=["amp-soundcloud"];var kg=new A;kg.name="amp-springboard-player";kg.a=["0.1","latest"];kg.c=!0;kg.b="GRANDFATHERED";var yi=new C("SCRIPT");yi.c=[15];yi.a= -["AMP"];yi.h=kg;var te=new C("AMP-SPRINGBOARD-PLAYER");te.b=[200,201,202,203,204,205];te.c=[13];te.i=Bk;te.a=["AMP"];te.g=["amp-springboard-player"];var lg=new A;lg.name="amp-sticky-ad";lg.a=["0.1","1.0","latest"];lg.g=["0.1"];lg.b="GRANDFATHERED";var zi=new C("SCRIPT");zi.c=[15];zi.a=["AMP"];zi.h=lg;var bl=new Xj;bl.b=1;bl.c=["AMP-AD"];var zb=new C("AMP-STICKY-AD");zb.unique=!0;zb.c=[13];zb.i=xa;zb.C=["AMP-APP-BANNER"];zb.w=bl;zb.a=["AMP"];zb.g=["amp-sticky-ad"];var cl=new A;cl.name="amp-story"; -cl.a=["0.1","latest"];var Ai=new C("SCRIPT");Ai.c=[15];Ai.a=["AMP"];Ai.h=cl;var dl=new Xj;dl.a=["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-PAGE"];dl.f=1;var Ab=new C("AMP-STORY");Ab.j="BODY";Ab.b=[206,207,208];Ab.w=dl;Ab.a=["AMP"];Ab.H=[-252];Ab.g=["amp-story"];Ab.ba=!0;var el=new Xj;el.a=["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-GRID-LAYER"];el.f=1;var rc=new C("AMP-STORY-PAGE");rc.j="AMP-STORY";rc.b=[103,-253,208];rc.w=el;rc.a=["AMP"];rc.J=[-252];rc.g=["amp-story"];var cq=new ck;cq.a=355;var Bi=new ck; -Bi.a=356;var ue=new C("AMP-STORY-GRID-LAYER");ue.b=[209];ue.m="AMP-STORY-PAGE";ue.v=[cq,Bi];ue.a=["AMP"];ue.aa="amp-story-grid-layer-allowed-descendants";var ve=new C("$REFERENCE_POINT");ve.f="AMP-STORY-GRID-LAYER default";ve.b=[-254,210,211,212,213,214,215,216,-255,-256,-257];ve.specUrl="https://www.ampproject.org/docs/reference/components/amp-story";ve.v=[Bi];ve.a=["AMP"];var we=new C("$REFERENCE_POINT");we.f="AMP-STORY-GRID-LAYER animate-in";we.b=[216,-255,-256,-257];we.specUrl="https://www.ampproject.org/docs/reference/components/amp-story"; -we.v=[Bi];we.a=["AMP"];var fl=new A;fl.name="amp-timeago";fl.a=["0.1","latest"];var Ci=new C("SCRIPT");Ci.c=[15];Ci.a=["AMP"];Ci.h=fl;var Vu=new v(["FIXED","FIXED_HEIGHT","RESPONSIVE"]),sc=new C("AMP-TIMEAGO");sc.b=[217,218,-258];sc.c=[13];sc.specUrl="https://www.ampproject.org/docs/reference/components/amp-timeago";sc.i=Vu;sc.a=["AMP"];sc.g=["amp-timeago"];var mg=new A;mg.name="amp-twitter";mg.a=["0.1","latest"];mg.c=!0;mg.b="GRANDFATHERED";var Di=new C("SCRIPT");Di.c=[15];Di.a=["AMP"];Di.h=mg;var xe= -new C("AMP-TWITTER");xe.b=[219];xe.c=[13];xe.i=G;xe.a=["AMP"];xe.g=["amp-twitter"];var ng=new A;ng.name="amp-user-notification";ng.a=["0.1","latest"];ng.c=!0;ng.b="GRANDFATHERED";var Ei=new C("SCRIPT");Ei.c=[15];Ei.a=["AMP"];Ei.h=ng;var ye=new C("AMP-USER-NOTIFICATION");ye.b=[220,221,222];ye.c=[13];ye.i=xa;ye.a=["AMP"];ye.g=["amp-user-notification"];var Fi=new A;Fi.name="amp-video";Fi.a=["0.1","latest"];Fi.b="NONE";var og=new C("SCRIPT");og.f="amp-video extension .js script";og.c=[15];og.a=["AMP", -"AMP4ADS"];og.h=Fi;var Bb=new C("AMP-VIDEO");Bb.b=[-39];Bb.c=[13,18];Bb.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";Bb.i=G;Bb.C=["AMP-STORY"];Bb.a=["AMP","AMP4ADS"];Bb.K=[363];var hb=new C("AMP-VIDEO");hb.f="amp-story >> amp-video";hb.b=[110,223];hb.c=[13,18];hb.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";hb.i=G;hb.m="AMP-STORY";hb.a=["AMP","AMP4ADS"];hb.g=["amp-video"];var pg=new A;pg.name="amp-vimeo";pg.a=["0.1","latest"];pg.c=!0;pg.b="GRANDFATHERED"; -var Gi=new C("SCRIPT");Gi.c=[15];Gi.a=["AMP"];Gi.h=pg;var ze=new C("AMP-VIMEO");ze.b=[152];ze.c=[13];ze.i=Rd;ze.a=["AMP"];ze.g=["amp-vimeo"];var qg=new A;qg.name="amp-vine";qg.a=["0.1","latest"];qg.c=!0;qg.b="GRANDFATHERED";var Hi=new C("SCRIPT");Hi.c=[15];Hi.a=["AMP"];Hi.h=qg;var Ae=new C("AMP-VINE");Ae.b=[224];Ae.c=[13];Ae.i=G;Ae.a=["AMP"];Ae.g=["amp-vine"];var gl=new A;gl.name="amp-vk";gl.a=["0.1","latest"];var Ii=new C("SCRIPT");Ii.c=[15];Ii.a=["AMP"];Ii.h=gl;var Wu=new v(["FIXED","FLEX_ITEM", -"RESPONSIVE"]),Be=new C("AMP-VK");Be.b=[225];Be.c=[13];Be.i=Wu;Be.a=["AMP"];Be.g=["amp-vk"];var hl=new A;hl.name="amp-web-push";hl.a=["0.1","latest"];var Ji=new C("SCRIPT");Ji.c=[15];Ji.a=["AMP"];Ji.h=hl;var tc=new C("AMP-WEB-PUSH");tc.b=[226,227,228,229];tc.c=[13];tc.specUrl="https://www.ampproject.org/docs/reference/components/amp-web-push";tc.i=xa;tc.a=["AMP"];tc.g=["amp-web-push"];var Xu=new v(["FIXED"]),uc=new C("AMP-WEB-PUSH-WIDGET");uc.b=[230];uc.c=[13];uc.specUrl="https://www.ampproject.org/docs/reference/components/amp-web-push"; -uc.i=Xu;uc.a=["AMP"];uc.g=["amp-web-push"];var rg=new A;rg.name="amp-youtube";rg.a=["0.1","latest"];rg.c=!0;rg.b="GRANDFATHERED";var il=new C("SCRIPT");il.c=[15];il.h=rg;var sg=new C("AMP-YOUTUBE");sg.b=[-35,231,232,-259];sg.c=[13];sg.i=G;sg.g=["amp-youtube"];var Yu=new x("UNKNOWN_CODE","Unknown error."),Zu=new x("MANDATORY_TAG_MISSING","The mandatory tag '%1' is missing or incorrect."),$u=new x("TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'."),av=new x("WARNING_TAG_REQUIRED_BY_MISSING", -"The tag '%1' is missing or incorrect, but required by '%2'. This will soon be an error."),bv=new x("WARNING_EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused (no '%2' tag seen). This may become an error in the future."),cv=new x("EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused. Please remove this extension."),dv=new x("WARNING_EXTENSION_DEPRECATED_VERSION","The extension '%1' is referenced at version '%2' which is a deprecated version. Please use a more recent version of this extension. This may become an error in the future."), -ev=new x("ATTR_REQUIRED_BUT_MISSING","The attribute '%1' in tag '%2' is missing or incorrect, but required by attribute '%3'."),fv=new x("DISALLOWED_TAG","The tag '%1' is disallowed."),gv=new x("GENERAL_DISALLOWED_TAG","The tag '%1' is disallowed except in specific forms."),hv=new x("DISALLOWED_SCRIPT_TAG","Only AMP runtime 'script' tags are allowed, and only in the document head."),iv=new x("DISALLOWED_ATTR","The attribute '%1' may not appear in tag '%2'."),jv=new x("DISALLOWED_STYLE_ATTR","The inline 'style' attribute is not allowed in AMP documents. Use 'style amp-custom' tag instead."), -kv=new x("INVALID_ATTR_VALUE","The attribute '%1' in tag '%2' is set to the invalid value '%3'."),lv=new x("DUPLICATE_ATTRIBUTE","The tag '%1' contains the attribute '%2' repeated multiple times."),mv=new x("ATTR_VALUE_REQUIRED_BY_LAYOUT","Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."),nv=new x("IMPLIED_LAYOUT_INVALID","The implied layout '%1' is not supported by tag '%2'."),ov=new x("SPECIFIED_LAYOUT_INVALID","The specified layout '%1' is not supported by tag '%2'."), -pv=new x("MANDATORY_ATTR_MISSING","The mandatory attribute '%1' is missing in tag '%2'."),qv=new x("INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT","Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."),rv=new x("STYLESHEET_TOO_LONG","The author stylesheet specified in tag '%1' is too long - we saw %2 bytes whereas the limit is %3 bytes."),sv=new x("MANDATORY_CDATA_MISSING_OR_INCORRECT","The mandatory text (CDATA) inside tag '%1' is missing or incorrect."), -tv=new x("CDATA_VIOLATES_BLACKLIST","The text (CDATA) inside tag '%1' contains '%2', which is disallowed."),uv=new x("NON_WHITESPACE_CDATA_ENCOUNTERED","The tag '%1' contains text (CDATA), which is disallowed."),vv=new x("DISALLOWED_PROPERTY_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is disallowed."),wv=new x("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."),xv=new x("DUPLICATE_DIMENSION","Multiple image candidates with the same width or pixel density found in attribute '%1' in tag '%2'."), -yv=new x("MISSING_URL","Missing URL for attribute '%1' in tag '%2'."),zv=new x("INVALID_URL","Malformed URL '%3' for attribute '%1' in tag '%2'."),Av=new x("INVALID_URL_PROTOCOL","Invalid URL protocol '%3:' for attribute '%1' in tag '%2'."),Bv=new x("DISALLOWED_DOMAIN","The domain '%3' for attribute '%1' in tag '%2' is disallowed."),Cv=new x("DISALLOWED_RELATIVE_URL","The relative URL '%3' for attribute '%1' in tag '%2' is disallowed."),Dv=new x("MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE","The property '%1' is missing from attribute '%2' in tag '%3'."), -Ev=new x("UNESCAPED_TEMPLATE_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."),Fv=new x("TEMPLATE_PARTIAL_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."),Gv=new x("DEPRECATED_TAG","The tag '%1' is deprecated - use '%2' instead."),Hv=new x("DEPRECATED_ATTR","The attribute '%1' in tag '%2' is deprecated - use '%3' instead."),Iv=new x("MUTUALLY_EXCLUSIVE_ATTRS","Mutually exclusive attributes encountered in tag '%1' - pick one of %2."), -Jv=new x("MANDATORY_ONEOF_ATTR_MISSING","The tag '%1' is missing a mandatory attribute - pick one of %2."),Kv=new x("WRONG_PARENT_TAG","The parent tag of tag '%1' is '%2', but it can only be '%3'."),Lv=new x("DISALLOWED_TAG_ANCESTOR","The tag '%1' may not appear as a descendant of tag '%2'."),Mv=new x("MANDATORY_TAG_ANCESTOR","The tag '%1' may only appear as a descendant of tag '%2'."),Nv=new x("MANDATORY_TAG_ANCESTOR_WITH_HINT","The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"), -Ov=new x("DUPLICATE_UNIQUE_TAG","The tag '%1' appears more than once in the document."),Pv=new x("DUPLICATE_UNIQUE_TAG_WARNING","The tag '%1' appears more than once in the document. This will soon be an error."),Qv=new x("TEMPLATE_IN_ATTR_NAME","Mustache template syntax in attribute name '%1' in tag '%2'."),Rv=new x("ATTR_DISALLOWED_BY_IMPLIED_LAYOUT","The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."),Sv=new x("ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT","The attribute '%1' in tag '%2' is disallowed by specified layout '%3'."), -Tv=new x("INCORRECT_NUM_CHILD_TAGS","Tag '%1' must have %2 child tags - saw %3 child tags."),Uv=new x("INCORRECT_MIN_NUM_CHILD_TAGS","Tag '%1' must have a minimum of %2 child tags - saw %3 child tags."),Vv=new x("TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS","Tag '%1' is not allowed to have any sibling tags ('%2' should only have 1 child)."),Wv=new x("MANDATORY_LAST_CHILD_TAG","Tag '%1', if present, must be the last child of tag '%2'."),Xv=new x("DISALLOWED_CHILD_TAG_NAME","Tag '%1' is disallowed as child of tag '%2'. Child tag must be one of %3."), -Yv=new x("DISALLOWED_FIRST_CHILD_TAG_NAME","Tag '%1' is disallowed as first child of tag '%2'. First child tag must be one of %3."),Zv=new x("DISALLOWED_MANUFACTURED_BODY","Tag or text which is only allowed inside the body section found outside of the body section."),$v=new x("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT","The tag '%1', a child tag of '%2', does not satisfy one of the acceptable reference points: %3."),aw=new x("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR","The tag '%1', a child tag of '%2', does not satisfy the reference point '%3'."), -bw=new x("MANDATORY_REFERENCE_POINT_MISSING","The mandatory reference point '%1' for '%2' is missing."),cw=new x("DUPLICATE_REFERENCE_POINT","The reference point '%1' for '%2' must be unique but a duplicate was encountered."),dw=new x("TAG_REFERENCE_POINT_CONFLICT","The tag '%1' conflicts with reference point '%2' because both define reference points."),ew=new x("BASE_TAG_MUST_PRECEED_ALL_URLS","The tag '%1', which contains URLs, was found earlier in the document than the BASE element."),fw=new x("MISSING_REQUIRED_EXTENSION", -"The tag '%1' requires including the '%2' extension JavaScript."),gw=new x("DOCUMENT_TOO_COMPLEX","The document is too complex."),hw=new x("CSS_SYNTAX","CSS syntax error in tag '%1' - %2."),iw=new x("CSS_SYNTAX_INVALID_AT_RULE","CSS syntax error in tag '%1' - saw invalid at rule '@%2'."),jw=new x("CSS_SYNTAX_STRAY_TRAILING_BACKSLASH","CSS syntax error in tag '%1' - stray trailing backslash."),kw=new x("CSS_SYNTAX_UNTERMINATED_COMMENT","CSS syntax error in tag '%1' - unterminated comment."),lw=new x("CSS_SYNTAX_UNTERMINATED_STRING", -"CSS syntax error in tag '%1' - unterminated string."),mw=new x("CSS_SYNTAX_BAD_URL","CSS syntax error in tag '%1' - bad url."),nw=new x("CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE","CSS syntax error in tag '%1' - end of stylesheet encountered in prelude of a qualified rule."),ow=new x("CSS_SYNTAX_INVALID_PROPERTY","CSS syntax error in tag '%1' - invalid property '%2'. The only allowed properties are '%3'."),pw=new x("CSS_SYNTAX_INVALID_PROPERTY_NOLIST","CSS syntax error in tag '%1' - invalid property '%2'."), -qw=new x("CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS","CSS syntax error in tag '%1' - qualified rule '%2' has no declarations."),rw=new x("CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - qualified rule '%2' must be located inside of a keyframe."),sw=new x("CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - keyframe inside keyframe is not allowed."),tw=new x("CSS_SYNTAX_INVALID_DECLARATION","CSS syntax error in tag '%1' - invalid declaration."), -uw=new x("CSS_SYNTAX_INCOMPLETE_DECLARATION","CSS syntax error in tag '%1' - incomplete declaration."),vw=new x("CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR","CSS syntax error in tag '%1' - invalid pseudo selector."),ww=new x("CSS_SYNTAX_MISSING_SELECTOR","CSS syntax error in tag '%1' - missing selector."),xw=new x("CSS_SYNTAX_NOT_A_SELECTOR_START","CSS syntax error in tag '%1' - not a selector start."),yw=new x("CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR","CSS syntax error in tag '%1' - unparsed input remains in selector."), -zw=new x("CSS_SYNTAX_MISSING_URL","CSS syntax error in tag '%1' - missing url."),Aw=new x("CSS_SYNTAX_INVALID_URL","CSS syntax error in tag '%1' - invalid url '%2'."),Bw=new x("CSS_SYNTAX_INVALID_URL_PROTOCOL","CSS syntax error in tag '%1' - invalid url protocol '%2:'."),Cw=new x("CSS_SYNTAX_DISALLOWED_DOMAIN","CSS syntax error in tag '%1' - invalid domain '%2'."),Dw=new x("CSS_SYNTAX_DISALLOWED_RELATIVE_URL","CSS syntax error in tag '%1' - disallowed relative url '%2'."),Ew=new x("CSS_SYNTAX_INVALID_ATTR_SELECTOR", -"CSS syntax error in tag '%1' - invalid attribute selector."),Fw=new x("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'."),Gw=new x("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'. Allowed values: %4."),Hw=new x("CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE","CSS syntax error in tag '%1' - the property '%2' is disallowed within @%3. Allowed properties: %4."), -Iw=new x("CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH","CSS syntax error in tag '%1' - the property '%2' is disallowed together with '%3'. Allowed properties: %4."),Jw=new x("CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION","CSS syntax error in tag '%1' - the property '%2' is disallowed unless the enclosing rule is prefixed with the '%3' qualification."),jl=new y;jl.code="UNKNOWN_CODE";jl.l=0;var kl=new y;kl.code="MANDATORY_CDATA_MISSING_OR_INCORRECT";kl.l=1;var ll=new y;ll.code="CDATA_VIOLATES_BLACKLIST"; -ll.l=2;var ml=new y;ml.code="NON_WHITESPACE_CDATA_ENCOUNTERED";ml.l=3;var nl=new y;nl.code="WRONG_PARENT_TAG";nl.l=4;var ol=new y;ol.code="DISALLOWED_TAG_ANCESTOR";ol.l=5;var pl=new y;pl.code="MANDATORY_TAG_ANCESTOR";pl.l=6;var ql=new y;ql.code="MANDATORY_TAG_ANCESTOR_WITH_HINT";ql.l=7;var rl=new y;rl.code="MANDATORY_TAG_MISSING";rl.l=8;var sl=new y;sl.code="TAG_REQUIRED_BY_MISSING";sl.l=9;var tl=new y;tl.code="MISSING_REQUIRED_EXTENSION";tl.l=10;var ul=new y;ul.code="WARNING_TAG_REQUIRED_BY_MISSING"; -ul.l=11;var vl=new y;vl.code="EXTENSION_UNUSED";vl.l=12;var wl=new y;wl.code="WARNING_EXTENSION_UNUSED";wl.l=13;var xl=new y;xl.code="WARNING_EXTENSION_DEPRECATED_VERSION";xl.l=14;var yl=new y;yl.code="ATTR_REQUIRED_BUT_MISSING";yl.l=15;var zl=new y;zl.code="DISALLOWED_TAG";zl.l=16;var Al=new y;Al.code="DISALLOWED_ATTR";Al.l=17;var Bl=new y;Bl.code="INVALID_ATTR_VALUE";Bl.l=18;var Cl=new y;Cl.code="DUPLICATE_ATTRIBUTE";Cl.l=19;var Dl=new y;Dl.code="ATTR_VALUE_REQUIRED_BY_LAYOUT";Dl.l=20;var El=new y; -El.code="MANDATORY_ATTR_MISSING";El.l=21;var Fl=new y;Fl.code="MANDATORY_ONEOF_ATTR_MISSING";Fl.l=22;var Gl=new y;Gl.code="DUPLICATE_UNIQUE_TAG";Gl.l=23;var Hl=new y;Hl.code="DUPLICATE_UNIQUE_TAG_WARNING";Hl.l=24;var Il=new y;Il.code="STYLESHEET_TOO_LONG";Il.l=25;var Jl=new y;Jl.code="CSS_SYNTAX";Jl.l=26;var Kl=new y;Kl.code="CSS_SYNTAX_INVALID_AT_RULE";Kl.l=27;var Ll=new y;Ll.code="MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE";Ll.l=28;var Ml=new y;Ml.code="INVALID_PROPERTY_VALUE_IN_ATTR_VALUE";Ml.l= -29;var Nl=new y;Nl.code="DISALLOWED_PROPERTY_IN_ATTR_VALUE";Nl.l=30;var Ol=new y;Ol.code="MUTUALLY_EXCLUSIVE_ATTRS";Ol.l=31;var Pl=new y;Pl.code="UNESCAPED_TEMPLATE_IN_ATTR_VALUE";Pl.l=32;var Ql=new y;Ql.code="TEMPLATE_PARTIAL_IN_ATTR_VALUE";Ql.l=33;var Rl=new y;Rl.code="TEMPLATE_IN_ATTR_NAME";Rl.l=34;var Sl=new y;Sl.code="INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT";Sl.l=35;var Tl=new y;Tl.code="IMPLIED_LAYOUT_INVALID";Tl.l=36;var Ul=new y;Ul.code="SPECIFIED_LAYOUT_INVALID";Ul.l=37;var Vl=new y;Vl.code= -"ATTR_DISALLOWED_BY_IMPLIED_LAYOUT";Vl.l=38;var Wl=new y;Wl.code="ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT";Wl.l=39;var Xl=new y;Xl.code="DUPLICATE_DIMENSION";Xl.l=40;var Yl=new y;Yl.code="DISALLOWED_RELATIVE_URL";Yl.l=41;var Zl=new y;Zl.code="MISSING_URL";Zl.l=42;var $l=new y;$l.code="DISALLOWED_DOMAIN";$l.l=43;var am=new y;am.code="INVALID_URL_PROTOCOL";am.l=44;var bm=new y;bm.code="INVALID_URL";bm.l=45;var cm=new y;cm.code="DISALLOWED_STYLE_ATTR";cm.l=46;var dm=new y;dm.code="CSS_SYNTAX_STRAY_TRAILING_BACKSLASH"; -dm.l=47;var em=new y;em.code="CSS_SYNTAX_UNTERMINATED_COMMENT";em.l=48;var fm=new y;fm.code="CSS_SYNTAX_UNTERMINATED_STRING";fm.l=49;var gm=new y;gm.code="CSS_SYNTAX_BAD_URL";gm.l=50;var hm=new y;hm.code="CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE";hm.l=51;var im=new y;im.code="CSS_SYNTAX_INVALID_DECLARATION";im.l=52;var jm=new y;jm.code="CSS_SYNTAX_INCOMPLETE_DECLARATION";jm.l=53;var km=new y;km.code="CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR";km.l=54;var lm=new y;lm.code="CSS_SYNTAX_MISSING_SELECTOR"; -lm.l=55;var mm=new y;mm.code="CSS_SYNTAX_NOT_A_SELECTOR_START";mm.l=56;var nm=new y;nm.code="CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR";nm.l=57;var om=new y;om.code="CSS_SYNTAX_MISSING_URL";om.l=58;var pm=new y;pm.code="CSS_SYNTAX_DISALLOWED_DOMAIN";pm.l=59;var qm=new y;qm.code="CSS_SYNTAX_INVALID_URL";qm.l=60;var rm=new y;rm.code="CSS_SYNTAX_INVALID_URL_PROTOCOL";rm.l=61;var sm=new y;sm.code="CSS_SYNTAX_DISALLOWED_RELATIVE_URL";sm.l=62;var tm=new y;tm.code="INCORRECT_NUM_CHILD_TAGS";tm.l=63; -var um=new y;um.code="DISALLOWED_CHILD_TAG_NAME";um.l=64;var vm=new y;vm.code="DISALLOWED_FIRST_CHILD_TAG_NAME";vm.l=65;var wm=new y;wm.code="CSS_SYNTAX_INVALID_ATTR_SELECTOR";wm.l=66;var xm=new y;xm.code="CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT";xm.l=67;var ym=new y;ym.code="MANDATORY_REFERENCE_POINT_MISSING";ym.l=68;var zm=new y;zm.code="DUPLICATE_REFERENCE_POINT";zm.l=69;var Am=new y;Am.code="TAG_REFERENCE_POINT_CONFLICT";Am.l=70;var Bm=new y;Bm.code="CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR"; -Bm.l=71;var Cm=new y;Cm.code="CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE";Cm.l=72;var Dm=new y;Dm.code="CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT";Dm.l=73;var Em=new y;Em.code="CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE";Em.l=74;var Fm=new y;Fm.code="CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH";Fm.l=75;var Gm=new y;Gm.code="CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION";Gm.l=76;var Hm=new y;Hm.code="BASE_TAG_MUST_PRECEED_ALL_URLS";Hm.l=77;var Im=new y;Im.code="DISALLOWED_SCRIPT_TAG";Im.l=100;var Jm= -new y;Jm.code="GENERAL_DISALLOWED_TAG";Jm.l=101;var Km=new y;Km.code="DEPRECATED_ATTR";Km.l=102;var Lm=new y;Lm.code="DEPRECATED_TAG";Lm.l=103;var Mm=new y;Mm.code="DISALLOWED_MANUFACTURED_BODY";Mm.l=104;var Nm=new y;Nm.code="DOCUMENT_TOO_COMPLEX";Nm.l=105;var Om=new y;Om.code="INCORRECT_MIN_NUM_CHILD_TAGS";Om.l=106;var Pm=new y;Pm.code="TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS";Pm.l=107;var Qm=new y;Qm.code="MANDATORY_LAST_CHILD_TAG";Qm.l=108;var Rm=new y;Rm.code="CSS_SYNTAX_INVALID_PROPERTY";Rm.l=109;var Sm= -new y;Sm.code="CSS_SYNTAX_INVALID_PROPERTY_NOLIST";Sm.l=110;var Tm=new y;Tm.code="CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS";Tm.l=111;var Um=new y;Um.code="CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME";Um.l=112;var Vm=new y;Vm.code="CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME";Vm.l=113;var Wm=new Zj;Wm.name="amp-story-grid-layer-allowed-descendants";Wm.Y="ABBR ADDRESS AMP-ANALYTICS AMP-AUDIO AMP-EXPERIMENT AMP-FIT-TEXT AMP-FONT AMP-GFYCAT AMP-GIST AMP-GOOGLE-VRVIEW-IMAGE AMP-IMG AMP-INSTALL-SERVICEWORKER AMP-LIST AMP-LIVE-LIST AMP-PIXEL AMP-VIDEO ARTICLE ASIDE B BDI BDO BLOCKQUOTE BR CAPTION CITE CODE COL COLGROUP DATA DD DEL DFN DIV DL DT EM FIGCAPTION FIGURE FOOTER H1 H2 H3 H4 H5 H6 HEADER HGROUP HR I INS KBD LI MAIN MARK NAV NOSCRIPT OL P PRE Q RP RT RTC RUBY S SAMP SECTION SMALL SOURCE SPAN STRONG SUB SUP TABLE TBODY TD TFOOT TH THEAD TIME TR TRACK U UL VAR WBR".split(" "); -var z=new fk([a,b,c,d,e,h,k,l,q,D,p,B,L,U,Aa,ta,ca,Ha,Ba,mb,Ua,nb,Jb,Kb,da,Ia,Ja,V,la,O,Va,Ka,ma,P,W,fa,ra,wa,na,sa,Ca,Dc,Mg,Se,Ng,Ec,Fc,Te,Ue,La,Ya,Gc,Og,Hc,Za,Ic,Da,$a,Jc,Pg,Kc,Qg,qk,Rg,Lc,Sg,Mc,Ve,Nc,We,Tg,Ug,Vg,rk,Oc,Rb,Sb,Xe,Ye,Ze,Wg,Xg,$e,Yg,Zg,af,$g,ah,bh,bf,ch,dh,cf,eh,Pc,qb,ab,sk,fh,Tb,Qc,bb,Ma,oa,Ub,Rc,Sc,Tc,Uc,Vc,df,ef,ff,gf,Wc,Xc,Yc,Zc,Vb,$c,ad,bd,cd,dd,hf,ed,fd,jf,kf,gd,hd,id,jd,kd,ld,md,nd,od,pd,qd,rd,sd,td,ud,vd,wd,xd,Wb,Xb,yd,zd,Ad,Bd,Cd,Dd,lf,Ed,mf,Fd,Gd,Hd,nf,Id,Cp,Ju,Dp,Ep,Ku,Lu, -Mu,Fp,Gp,Hp,Jd,Kd,gh,hh,ih,tk,jh,uk,Yb,kh,Ip,lh,vk,mh,wk,Jp,Kp,xk,Nu,cb,db,oh,Zb,Ld,$b,ph,Lp,Mp,Np,Op,Pp,Qp,Rp,Sp,Tp,Up,Vp,Wp,Xp,yk,Yp,Md,of,Nd,qh,Od,pf,sh,rb,Ck,Pd,sf,th,ac,sb,uf,eb,Oa,fb,Pa,uh,tb,wf,vh,bc,wh,cc,ub,xh,dc,zh,Qa,Hk,vb,gb,ec,Ah,fc,Ch,wb,gc,Dh,hc,Eh,ic,Gh,xb,Kk,Qd,Hh,jc,Ih,Jh,kc,Hf,Kh,Sd,Lh,Td,Mh,Ud,Nk,Kf,Nh,Vd,Ok,Oh,Of,Ph,lc,Qh,mc,Rh,Wd,Sh,nc,Th,Xd,Uh,oc,Vh,Yd,Wh,Zd,Xh,$d,Yh,Uf,$h,ae,ai,Wf,bi,be,ci,ce,di,de,ee,fe,$f,ge,ag,bg,hi,ii,ji,ie,ki,je,li,ke,mi,pc,ni,le,oi,me,pi,ne,ri,oe,ti, -yb,fg,ui,vi,qc,pe,qe,wi,re,xi,se,yi,te,zi,zb,Ai,Ab,rc,ue,ve,we,Ci,sc,Di,xe,Ei,ye,og,Bb,hb,Gi,ze,Hi,Ae,Ii,Be,Ji,tc,uc,il,sg]);z.w=269;z.specFileRevision=532;z.c="https://www.ampproject.org/docs/reference/components/dynamic/amp-mustache";z.g=[Yu,Zu,$u,av,bv,cv,dv,ev,fv,gv,hv,iv,jv,kv,lv,mv,nv,ov,pv,qv,rv,sv,tv,uv,vv,wv,xv,yv,zv,Av,Bv,Cv,Dv,Ev,Fv,Gv,Hv,Iv,Jv,Kv,Lv,Mv,Nv,Ov,Pv,Qv,Rv,Sv,Tv,Uv,Vv,Wv,Xv,Yv,Zv,$v,aw,bw,cw,dw,ew,fw,gw,hw,iw,jw,kw,lw,mw,nw,ow,pw,qw,rw,sw,tw,uw,vw,ww,xw,yw,zw,Aw,Bw,Cw,Dw,Ew, -Fw,Gw,Hw,Iw,Jw];z.h=[jl,kl,ll,ml,nl,ol,pl,ql,rl,sl,tl,ul,vl,wl,xl,yl,zl,Al,Bl,Cl,Dl,El,Fl,Gl,Hl,Il,Jl,Kl,Ll,Ml,Nl,Ol,Pl,Ql,Rl,Sl,Tl,Ul,Vl,Wl,Xl,Yl,Zl,$l,am,bm,cm,dm,em,fm,gm,hm,im,jm,km,lm,mm,nm,om,pm,qm,rm,sm,tm,um,vm,wm,xm,ym,zm,Am,Bm,Cm,Dm,Em,Fm,Gm,Hm,Im,Jm,Km,Lm,Mm,Nm,Om,Pm,Qm,Rm,Sm,Tm,Um,Vm];z.i="https://www.ampproject.org/docs/guides/author-develop/responsive/style_pages";z.m=[Wm];z.v="https://www.ampproject.org/docs/reference/spec#html-tags";z.a[7]="rel\x00canonical";z.a[8]="rel\x00manifest"; -z.a[9]="rel\x00stylesheet";z.a[10]="itemprop\x00sameas";z.a[13]="charset";z.a[14]="name\x00viewport";z.a[15]="http-equiv\x00x-ua-compatible";z.a[16]="name\x00apple-itunes-app";z.a[17]="name\x00amp-experiments-opt-in";z.a[18]="name\x00amp-3p-iframe-src";z.a[19]="name\x00amp-experiment-token";z.a[20]="name\x00amp-link-variable-allowed-origin";z.a[21]="name\x00amp-google-client-id-api";z.a[22]="name\x00amp4ads-id";z.a[24]="http-equiv\x00content-type";z.a[25]="http-equiv\x00content-language";z.a[26]= -"http-equiv\x00pics-label";z.a[27]="http-equiv\x00imagetoolbar";z.a[28]="http-equiv\x00content-style-type";z.a[29]="http-equiv\x00content-script-type";z.a[30]="http-equiv\x00origin-trial";z.a[31]="http-equiv\x00resource-type";z.a[36]="amp-boilerplate\x00\x00HEAD";z.a[37]="amp4ads-boilerplate\x00\x00HEAD";z.a[38]="amp-boilerplate\x00\x00NOSCRIPT";z.a[39]="amp-keyframes";z.a[174]="method\x00post";z.a[175]="submitting";z.a[176]="submit-success";z.a[177]="submit-error";z.a[192]="src\x00https://cdn.ampproject.org/v0.js"; -z.a[193]="src\x00https://cdn.ampproject.org/amp4ads-v0.js";z.a[194]="type\x00application/ld+json";z.a[195]="id\x00amp-rtc";z.a[196]="type\x00application/json\x00AMP-IMA-VIDEO";z.a[221]="id\x00amp-access";z.a[227]="type\x00application/json\x00AMP-AD-EXIT";z.a[230]="data-multi-size\x00";z.a[232]="data-multi-size\x00";z.a[234]="type\x00application/json\x00AMP-ANALYTICS";z.a[239]="type\x00application/json\x00AMP-ANIMATION";z.a[252]="type\x00application/json\x00AMP-STATE";z.a[266]="type\x00application/json\x00AMP-EXPERIMENT"; -z.a[341]="toolbar";var Xm=new w("html");Xm.a=!0;Xm.value="";var Ki=new w("\u26a1");Ki.s=["amp"];Ki.a=!0;Ki.value="";var Li=new w("\u26a14ads");Li.s=["amp4ads"];Li.a=!0;Li.value="";var dq=new w("href");dq.value="/";var eq=new w("target");eq.i=-260;var Ym=new w("rel");Ym.a=!0;Ym.h=-261;var Zm=new E(["http","https"]);Zm.a=!0;var Mi=new w("href");Mi.a=!0;Mi.h=-262;Mi.c=Zm;var Ni=new w("rel");Ni.a=!0;Ni.f="NAME_VALUE_DISPATCH";Ni.g="canonical";var Ea=new E(["https"]);Ea.a=!0;var Oi=new w("href");Oi.a= -!0;Oi.h=-262;Oi.c=Ea;var Pi=new w("rel");Pi.a=!0;Pi.f="NAME_VALUE_DISPATCH";Pi.g="manifest";var $m=new w("href");$m.a=!0;$m.b=-263;var Qi=new w("rel");Qi.a=!0;Qi.f="NAME_VALUE_DISPATCH";Qi.g="stylesheet";var fq=new w("type");fq.g="text/css";var gq=new w("href");gq.a=!0;var Ri=new w("itemprop");Ri.a=!0;Ri.f="NAME_VALUE_DISPATCH";Ri.g="sameas";var hq=new w("itemprop");hq.a=!0;var iq=new w("property");iq.a=!0;var Si=new w("charset");Si.a=!0;Si.f="NAME_DISPATCH";Si.g="utf-8";var an=new ak("width");an.a= -!0;an.value="device-width";var Kw=new ak("height"),Lw=new ak("initial-scale"),bn=new ak("minimum-scale");bn.a=!0;bn.b=1;var Mw=new bk([an,Kw,Lw,bn,new ak("maximum-scale"),new ak("shrink-to-fit"),new ak("user-scalable"),new ak("viewport-fit")]),cn=new w("content");cn.a=!0;cn.u=Mw;var Ti=new w("name");Ti.a=!0;Ti.value="viewport";Ti.f="NAME_VALUE_DISPATCH";var Ui=new w("http-equiv");Ui.a=!0;Ui.f="NAME_VALUE_DISPATCH";Ui.g="x-ua-compatible";var jq=new ak("ie");jq.value="edge";var kq=new ak("chrome"); -kq.value="1";var Nw=new bk([jq,kq]),dn=new w("content");dn.a=!0;dn.u=Nw;var Vi=new w("name");Vi.a=!0;Vi.f="NAME_VALUE_DISPATCH";Vi.g="apple-itunes-app";var en=new w("content");en.a=!0;en.b=-264;var Wi=new w("name");Wi.a=!0;Wi.f="NAME_VALUE_DISPATCH";Wi.g="amp-experiments-opt-in";var lq=new w("content");lq.a=!0;var Xi=new w("name");Xi.a=!0;Xi.f="NAME_VALUE_DISPATCH";Xi.g="amp-3p-iframe-src";var Ow=new E(["https"]),fn=new w("content");fn.a=!0;fn.c=Ow;var Yi=new w("name");Yi.a=!0;Yi.f="NAME_VALUE_DISPATCH"; -Yi.g="amp-experiment-token";var Zi=new w("name");Zi.a=!0;Zi.f="NAME_VALUE_DISPATCH";Zi.g="amp-link-variable-allowed-origin";var $i=new w("name");$i.a=!0;$i.f="NAME_VALUE_DISPATCH";$i.g="amp-google-client-id-api";var aj=new w("name");aj.a=!0;aj.f="NAME_VALUE_DISPATCH";aj.g="amp4ads-id";var mq=new w("name");mq.h=-265;var bj=new w("http-equiv");bj.a=!0;bj.f="NAME_VALUE_DISPATCH";bj.g="content-type";var gn=new w("content");gn.a=!0;gn.g="text/html; charset=utf-8";var cj=new w("http-equiv");cj.a=!0;cj.f= -"NAME_VALUE_DISPATCH";cj.g="content-language";var dj=new w("http-equiv");dj.a=!0;dj.f="NAME_VALUE_DISPATCH";dj.g="pics-label";var ej=new w("http-equiv");ej.a=!0;ej.f="NAME_VALUE_DISPATCH";ej.g="imagetoolbar";var fj=new w("http-equiv");fj.a=!0;fj.f="NAME_VALUE_DISPATCH";fj.g="content-style-type";var hn=new w("content");hn.a=!0;hn.g="text/css";var gj=new w("http-equiv");gj.a=!0;gj.f="NAME_VALUE_DISPATCH";gj.g="content-script-type";var jn=new w("content");jn.a=!0;jn.g="text/javascript";var hj=new w("http-equiv"); -hj.a=!0;hj.f="NAME_VALUE_DISPATCH";hj.g="origin-trial";var ij=new w("http-equiv");ij.a=!0;ij.f="NAME_VALUE_DISPATCH";ij.g="resource-type";var kn=new w("amp-custom");kn.a=!0;kn.value="";var jj=new w("amp-boilerplate");jj.a=!0;jj.value="";jj.f="NAME_VALUE_PARENT_DISPATCH";var kj=new w("amp4ads-boilerplate");kj.a=!0;kj.value="";kj.f="NAME_VALUE_PARENT_DISPATCH";var lj=new w("amp-keyframes");lj.a=!0;lj.value="";lj.f="NAME_DISPATCH";var nq=new w("reversed");nq.value="";var oq=new w("start");oq.b=-266; -var pq=new w("type");pq.b=-267;var qq=new w("value");qq.b=-266;var ln=new E("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema twitter viber whatsapp".split(" "));ln.a=!0;ln.b=!0;var mn=new w("href");mn.h=-262;mn.c=ln;var rq=new w("rel");rq.h=-268;var sq=new w("role");sq.w=!0;var tq=new w("tabindex");tq.w=!0;var uq=new w("target");uq.b=-260;var vq=new w("type");vq.g="text/html";var nn=new w("longdesc");nn.h=-262;nn.c=Zm;var on=new E(["data","https"]);on.a=!0;var tg= -new w("src");tg.s=["srcset"];tg.a=!0;tg.h=-262;tg.c=on;var wq=new w("frameborder");wq.b=-269;var xq=new w("resizable");xq.value="";var yq=new w("scrolling");yq.b=-270;var pn=new E(["data","https"]);pn.a=!1;var mj=new w("src");mj.h=-262;mj.j=-271;mj.c=pn;var zq=new w("srcdoc");zq.j=-271;var qn=new w("muted");qn.v="autoplay";qn.C="https://www.ampproject.org/docs/reference/components/amp-video";var rn=new w("src");rn.h=-262;rn.c=pn;var sn=new w("src");sn.h=-262;sn.c=Ea;var nj=new w("src");nj.a=!0;nj.h= --262;nj.c=Ea;var Aq=new w("type");Aq.a=!0;var tn=new E(["data","http","https"]);tn.a=!0;tn.b=!1;var oj=new w("xlink:href");oj.s=["href"];oj.h=-272;oj.c=tn;var Bq=new w("version");Bq.b=-273;var Cq=new w("border");Cq.b=-269;var pj=new w("action");pj.a=!0;pj.h=-262;pj.c=Ea;var un=new w("action-xhr");un.h=-262;un.c=Ea;var Dq=new w("custom-validation-reporting");Dq.b=-274;var Eq=new w("method");Eq.g="get";var vn=new w("target");vn.a=!0;vn.i=-275;var wn=new w("verify-xhr");wn.h=-262;wn.c=Ea;var qj=new w("action-xhr"); -qj.a=!0;qj.h=-262;qj.c=Ea;var Fq=new w("custom-validation-reporting");Fq.b=-276;var rj=new w("method");rj.a=!0;rj.f="NAME_VALUE_DISPATCH";rj.g="post";var xn=new w("submitting");xn.a=!0;xn.f="NAME_DISPATCH";var yn=new w("submit-success");yn.a=!0;yn.f="NAME_DISPATCH";var zn=new w("submit-error");zn.a=!0;zn.f="NAME_DISPATCH";var Gq=new w("type");Gq.h=-277;var Hq=new w("disabled");Hq.value="";var Iq=new w("open-button");Iq.value="";var An=new w("async");An.a=!0;An.value="";var sj=new w("src");sj.a=!0; -sj.value="https://cdn.ampproject.org/v0.js";sj.f="NAME_VALUE_DISPATCH";var Jq=new w("type");Jq.g="text/javascript";var tj=new w("src");tj.a=!0;tj.value="https://cdn.ampproject.org/amp4ads-v0.js";tj.f="NAME_VALUE_DISPATCH";var uj=new w("type");uj.a=!0;uj.f="NAME_VALUE_DISPATCH";uj.g="application/ld+json";var Bn=new w("type");Bn.a=!0;Bn.g="application/json";var vj=new w("id");vj.a=!0;vj.f="NAME_VALUE_DISPATCH";vj.g="amp-rtc";var wj=new w("type");wj.a=!0;wj.f="NAME_VALUE_PARENT_DISPATCH";wj.g="application/json"; -var Kq=new w("referrerpolicy");Kq.value="no-referrer";var xj=new E(["https"]);xj.a=!0;xj.b=!0;var yj=new w("src");yj.a=!0;yj.h=-262;yj.c=xj;var Lq=new w("autoplay");Lq.value="";var Mq=new w("data-id");Mq.a=!0;var zj=new w("id");zj.a=!0;zj.value="amp-access";zj.f="NAME_VALUE_DISPATCH";var Nq=new w("disable-session-states");Nq.value="";var Oq=new w("expanded");Oq.value="";var Pq=new w("id");Pq.a=!0;var Aj=new w("type");Aj.a=!0;Aj.value="application/json";Aj.f="NAME_VALUE_PARENT_DISPATCH";var Bj=new w("data-multi-size"); -Bj.a=!0;Bj.value="";Bj.f="NAME_VALUE_DISPATCH";var Cn=new w("config");Cn.h=-262;Cn.c=xj;var Qq=new w("trigger");Qq.value="visibility";var Dn=new w("data-apester-media-id");Dn.j=-278;Dn.b=-279;var En=new w("data-apester-channel-token");En.j=-278;En.b=-279;var Fn=new w("autoplay");Fn.a=!0;Fn.value="";var Rq=new Uj(["src"]),Sq=new w("credentials");Sq.m=Rq;var Gn=new w("data-outstream");Gn.j=-280;Gn.b=-281;var Hn=new w("data-partner");Hn.a=!0;Hn.b=-281;var In=new w("data-player");In.a=!0;In.b=-281;var Jn= -new w("data-playlist");Jn.j=-280;Jn.b=-281;var Kn=new w("data-video");Kn.j=-280;Kn.b=-281;var Tq=new w("data-account");Tq.a=!0;var Ce=new E(["https"]);Ce.a=!1;var Cj=new w("config");Cj.a=!0;Cj.h=-262;Cj.c=Ce;var Uq=new w("arrows");Uq.value="";var Vq=new w("delay");Vq.b=-281;var Wq=new w("dots");Wq.value="";var Xq=new w("loop");Xq.value="";var Yq=new w("type");Yq.b=-282;var Zq=new w("data-endscreen-enable");Zq.b=-283;var $q=new w("data-info");$q.b=-283;var ar=new w("data-mute");ar.b=-283;var br=new w("data-sharing-enable"); -br.b=-283;var cr=new w("data-start");cr.b=-281;var dr=new w("data-ui-highlight");dr.i=-284;var er=new w("data-ui-logo");er.b=-283;var Ln=new w("data-videoid");Ln.a=!0;Ln.i=-285;var fr=new w("data-href");fr.a=!0;var gr=new E(["http","https"]);gr.a=!1;var Mn=new w("data-href");Mn.a=!0;Mn.c=gr;var hr=new w("font-family");hr.a=!0;var ir=new w("timeout");ir.b=-281;var jr=new w("height");jr.a=!0;var kr=new w("data-gfyid");kr.a=!0;var lr=new w("noautoplay");lr.value="";var mr=new w("data-gistid");mr.a=!0; -var nr=new w("timeline-event-prefix");nr.value="";var or=new w("data-eid");or.a=!0;var pr=new w("allowfullscreen");pr.value="";var qr=new w("allowpaymentrequest");qr.value="";var rr=new w("allowtransparency");rr.value="";var Dj=new w("src");Dj.h=-262;Dj.j=-271;Dj.c=on;var sr=new w("[src]");sr.m=Rq;var Nn=new w("data-src");Nn.h=-262;Nn.c=Ea;var On=new w("data-tag");On.a=!0;On.c=Ea;var tr=new w("data-imgur-id");tr.a=!0;var ur=new w("data-shortcode");ur.a=!0;var Pn=new w("data-iframe-src");Pn.h=-262; -Pn.c=Ea;var Qn=new w("data-videoid");Qn.a=!0;Qn.b=-281;var Rn=new w("data-media-id");Rn.i=-286;Rn.j=-287;var Sn=new w("data-player-id");Sn.a=!0;Sn.i=-286;var Tn=new w("data-playlist-id");Tn.i=-286;Tn.j=-287;var vr=new w("data-partner");vr.a=!0;var Un=new w("data-max-items-per-page");Un.a=!0;Un.b=-288;var wr=new w("data-poll-interval");wr.b=-289;var xr=new w("update");xr.a=!0;var yr=new w("items");yr.a=!0;var zr=new w("pagination");zr.a=!0;var Ar=new w("data-sort-time");Ar.a=!0;var Vn=new w("type"); -Vn.a=!0;Vn.value="amp-mustache";var Br=new w("data-client");Br.a=!0;var Wn=new w("data-mediaid");Wn.a=!0;Wn.b=-290;var Cr=new w("data-mode");Cr.b=-291;var Dr=new E(["https","http"]);Dr.b=!0;var Er=new w("data-origin");Er.c=Dr;var Fr=new w("data-streamtype");Fr.b=-292;var Gr=new w("data-bcid");Gr.a=!0;var Hr=new w("data-pid");Hr.a=!0;var Ir=new w("data-embedcode");Ir.a=!0;var Jr=new w("data-pcode");Jr.a=!0;var Kr=new w("data-playerid");Kr.a=!0;var Lr=new w("data-do");Lr.a=!0;var Mr=new w("src");Mr.j= --293;var Nr=new w("data-item");Nr.j=-293;var Or=new w("data-item-info");Or.i=-294;var Pr=new w("data-share-buttons");Pr.i=-294;var Qr=new w("data-comments");Qr.i=-294;var Rr=new w("intersection-ratios");Rr.b=-295;var Sr=new w("viewport-margins");Sr.b=-296;var Xn=new w("data-embed-id");Xn.a=!0;Xn.b=-297;var Tr=new w("data-embedlive");Tr.i=-294;var Ur=new w("data-embedparent");Ur.i=-294;var Yn=new w("data-embedtype");Yn.a=!0;Yn.i=-298;var Vr=new w("data-src");Vr.a=!0;var Wr=new w("keyboard-select-mode"); -Wr.i=-299;var Xr=new w("multiple");Xr.value="";var Yr=new w("option");Yr.a=!0;var Zr=new w("selected");Zr.value="";var $r=new w("side");$r.b=-300;var Zn=new w("toolbar");Zn.a=!0;Zn.f="NAME_DISPATCH";var as=new w("toolbar-target");as.a=!0;var bs=new E("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema viber whatsapp".split(" "));bs.a=!1;var $n=new w("data-share-endpoint");$n.h=-262;$n.c=bs;var cs=new w("data-color");cs.i=-284;var ao=new w("data-playlistid");ao.j= --301;ao.b=-281;var ds=new w("data-secret-token");ds.b=-302;var bo=new w("data-trackid");bo.j=-301;bo.b=-281;var es=new w("data-visual");es.b=-283;var fs=new w("data-content-id");fs.a=!0;var gs=new w("data-domain");gs.a=!0;var hs=new w("data-items");hs.a=!0;var co=new w("data-mode");co.a=!0;co.i=-303;var eo=new w("data-player-id");eo.a=!0;eo.i=-285;var fo=new w("data-site-id");fo.a=!0;fo.b=-281;var go=new w("standalone");go.a=!0;go.value="";var is=new E(["http","https"]),js=new w("bookend-config-src"); -js.c=is;var ks=new w("background-audio");ks.c=is;var ho=new w("template");ho.a=!0;ho.b=-304;var ls=new w("align-content");ls.b=-305;var ms=new w("align-items");ms.b=-306;var ns=new w("align-self");ns.b=-306;var os=new w("justify-content");os.b=-305;var ps=new w("justify-items");ps.b=-306;var qs=new w("justify-self");qs.b=-306;var rs=new w("animate-in");rs.b=-307;var ss=new w("cutoff");ss.b=-288;var io=new w("datetime");io.a=!0;io.b=-308;var ts=new w("data-tweetid");ts.a=!0;var Ej=new E(["https"]); -Ej.a=!1;Ej.b=!1;var us=new w("data-dismiss-href");us.c=Ej;var vs=new w("data-show-if-href");vs.c=Ej;var ws=new w("enctype");ws.value="application/x-www-form-urlencoded";var xs=new w("poster");xs.a=!0;var ys=new w("data-vineid");ys.a=!0;var zs=new w("data-embedtype");zs.a=!0;var jo=new w("helper-iframe-url");jo.a=!0;jo.c=Ce;var ko=new w("id");ko.a=!0;ko.b=-309;var lo=new w("permission-dialog-url");lo.a=!0;lo.c=Ce;var mo=new w("service-worker-url");mo.a=!0;mo.c=Ce;var no=new w("visibility");no.a=!0; -no.b=-310;var As=new w("credentials");As.i=-311;var oo=new w("data-videoid");oo.a=!0;oo.b=-290;var Bs=new w("charset");Bs.g="utf-8";var po=new E(["http","https"]);po.a=!0;po.b=!0;var qo=new w("cite");qo.h=-262;qo.c=po;var Fj=new w("src");Fj.a=!0;Fj.h=-262;Fj.c=Ce;var Cs=new w("default");Cs.value="";var Ds=new w("kind");Ds.b=-312;var ro=new w("kind");ro.a=!0;ro.g="subtitles";var Es=new w("srclang");Es.a=!0;var so=new E(["http","https"]);so.a=!0;so.b=!1;var to=new w("xlink:href");to.s=["href"];to.c= -so;var Fs=new w("style");Fs.h=-313;var Gs=new w("name");Gs.h=-314;var Hs=new E(["data","http","https"]);Hs.a=!0;var ug=new w("src");ug.s=["srcset"];ug.a=!0;ug.h=-262;ug.c=Hs;var Is=new w("noloading");Is.value="";var Js=new w("rel");Js.h=-315;var Ks=new w("class");Ks.h=-316;var Ls=new w("hidden");Ls.value="";var Ms=new w("id");Ms.h=-317;var Ns=new Uj(["role","tabindex"]);Ns.a=-318;var Os=new w("on");Os.m=Ns;var Ps=new w("placeholder");Ps.value="";var Qs=new w("fallback");Qs.value="";var Rs=new w("validation-for"); -Rs.m=new Uj(["visible-when-invalid"]);var Pw=new Uj(["validation-for"]),uo=new w("visible-when-invalid");uo.b=-319;uo.m=Pw;var Ss=new w("muted");Ss.value="";var Ts=new w("controls");Ts.value="";var Us=new w("disableremoteplayback");Us.value="";var Vs=new w("preload");Vs.b=-320;z.f=[Xm,Ki,Li,dq,eq,Ym,Mi,Ni,Oi,Pi,$m,Qi,fq,gq,Ri,hq,iq,Si,cn,Ti,Ui,dn,Vi,en,Wi,lq,Xi,fn,Yi,Zi,$i,aj,mq,bj,gn,cj,dj,ej,fj,hn,gj,jn,hj,ij,kn,jj,kj,lj,nq,oq,pq,qq,mn,rq,sq,tq,uq,vq,nn,tg,wq,xq,yq,mj,zq,qn,rn,sn,nj,Aq,oj,Bq,Cq, -pj,un,Dq,Eq,vn,wn,qj,Fq,rj,xn,yn,zn,Gq,Hq,Iq,An,sj,Jq,tj,uj,Bn,vj,wj,Kq,yj,Lq,Mq,zj,Nq,Oq,Pq,Aj,Bj,Cn,Qq,Dn,En,Fn,Sq,Gn,Hn,In,Jn,Kn,Tq,Cj,Uq,Vq,Wq,Xq,Yq,Zq,$q,ar,br,cr,dr,er,Ln,fr,Mn,hr,ir,jr,kr,lr,mr,nr,or,pr,qr,rr,Dj,sr,Nn,On,tr,ur,Pn,Qn,Rn,Sn,Tn,vr,Un,wr,xr,yr,zr,Ar,Vn,Br,Wn,Cr,Er,Fr,Gr,Hr,Ir,Jr,Kr,Lr,Mr,Nr,Or,Pr,Qr,Rr,Sr,Xn,Tr,Ur,Yn,Vr,Wr,Xr,Yr,Zr,$r,Zn,as,$n,cs,ao,ds,bo,es,fs,gs,hs,co,eo,fo,go,js,ks,ho,ls,ms,ns,os,ps,qs,rs,ss,io,ts,us,vs,ws,xs,ys,zs,jo,ko,lo,mo,no,As,oo,Bs,qo,Fj,Cs,Ds,ro,Es, -to,Fs,Gs,ug,Is,Js,Ks,Ls,Ms,Os,Ps,Qs,Rs,uo,Ss,Ts,Us,Vs];z.u=[[-6,-2,-251,-3,-22,233,-321],[234],[235,236,237,-198,-322],[235,236,238,-198,239],[-323,-324,-325],[-326,-327,-328,-329],[-31,-330,-32,-61,-62],[-331,-332,-333,-334,-335,-321,-336,-337,-338,-339,-340,-341,-342,-343,-344,-345,-346,-347,-348,-349,-350,-351,-352,-353,-354,-233,-234,-235,-355,-356,-357,-358,-359,-360,-361,-362,-363,-364,-365,-366,-367,-368,-123,-124,-369,-370,-371,-372,-373,-374,-375,-376,-97,-377,-378,-379,-380,-381,-382,-383], -[-384,-385,-386,-122,-387,-388,-389],[-64,-65,240,-66,-67,-68,-69],[241],[242],[243],[-6,244],[],[88,-12,90],[],[-496,-497,-498,-36,-499,122,254,67],[-496,-29,-497,-498,-217,98,255,-499,-7,256,122,254,-165,257,67,-500,-218,-501,-502,-219,-503,-504,-505,-506,-507,-42,-508]];z.s=[-392,-10,-393,-394,-395,-396,-9,-397,-398,-399,-11,245,-400,-401,-402,-403,-153,246,-28,-404,247,248,-405,-172,-406,-407,-408,-409,-410,-411,-412,-413,-414,-415,-416,-417,-418,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428, --429,-430,-431,-432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,249,-444,250,251,-445,-366,-446,-447,-448,-449,-450,-451,-452,-453,-454,-455,-456,-457,252,253,-458,-459,-460,-461,-462,-463,-464,-465,-466,-467,-468,-469,-470,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495];z.j=[-31,-390,-391,-2,-32,-179,-195];z.b=["href","sizes","type","amp-app-banner data source","async","media","crossorigin","integrity","content", -"itemprop","property","nonce","(\x3c!--|(^|\\W)i-amphtml-|!important)","head > style[amp-boilerplate]","body ?{opacity: ?0}","noscript > style[amp-boilerplate]","body ?{opacity: ?1}","\\s*body{-webkit-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-moz-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-ms-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both}@-webkit-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}\\s*", +function amp$htmlparser$ParsedHtmlTag(tagName,opt_attrs){opt_attrs=opt_attrs||[];this.amp_htmlparser_ParsedHtmlTag$tagName_=amp$htmlparser$toUpperCase(tagName);this.attrs_=[];for(tagName=0;tagNameb.name?1:a.nameidx;)JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag&&JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag(new amp$htmlparser$ParsedHtmlTag(JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.TagNameStack$stack_.pop()));break}} +function amp$htmlparser$HtmlParser(){}amp$htmlparser$HtmlParser.prototype.lookupEntity_=function(entity){entity=amp$htmlparser$toLowerCase(entity.substring(1,entity.length-1));if(amp$htmlparser$HtmlParser$Entities.hasOwnProperty(entity))return amp$htmlparser$HtmlParser$Entities[entity];var m=entity.match(amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_);return m?String.fromCharCode(parseInt(m[1],10)):(m=entity.match(amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_))?String.fromCharCode(parseInt(m[1],16)):entity}; +var amp$htmlparser$HtmlParser$Entities={colon:":",lt:"<",gt:">",amp:"&",nbsp:"\u00a0",quot:'"',apos:"'"},amp$htmlparser$HtmlParser$Elements={A:0,ABBR:0,ACRONYM:0,ADDRESS:0,APPLET:16,AREA:2,B:0,BASE:18,BASEFONT:18,BDO:0,BIG:0,BLOCKQUOTE:0,BODY:49,BR:2,BUTTON:0,CANVAS:0,CAPTION:0,CENTER:0,CITE:0,CODE:0,COL:2,COLGROUP:1,DD:1,DEL:0,DFN:0,DIR:0,DIV:0,DL:0,DT:1,EM:0,FIELDSET:0,FONT:0,FORM:0,FRAME:18,FRAMESET:16,H1:0,H2:0,H3:0,H4:0,H5:0,H6:0,HEAD:49,HR:2,HTML:49,I:0,IFRAME:20,IMG:2,INPUT:2,INS:0,ISINDEX:18, +KBD:0,LABEL:0,LEGEND:0,LI:1,LINK:18,MAP:0,MENU:0,META:18,NOFRAMES:20,NOSCRIPT:16,OBJECT:16,OL:0,OPTGROUP:0,OPTION:1,P:1,PARAM:18,PRE:0,Q:0,S:0,SAMP:0,SCRIPT:20,SELECT:0,SMALL:0,SPAN:0,STRIKE:0,STRONG:0,STYLE:20,SUB:0,SUP:0,TABLE:0,TBODY:1,TD:1,TEXTAREA:8,TFOOT:1,TH:1,THEAD:1,TITLE:24,TR:1,TT:0,U:0,UL:0,VAR:0},amp$htmlparser$HtmlParser$LOOSE_AMP_RE_=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,amp$htmlparser$HtmlParser$LT_RE=//g,amp$htmlparser$HtmlParser$NULL_RE_= +/\0/g,amp$htmlparser$HtmlParser$ENTITY_RE_=/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g,amp$htmlparser$HtmlParser$SPACE_RE_=/^\s*$/,amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_=/^#(\d+)$/,amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_=/^#x([0-9A-Fa-f]+)$/,amp$htmlparser$HtmlParser$INSIDE_TAG_TOKEN_=/^[ \t\n\f\r\v]*(?:(?:([^\t\r\n /=>][^\t\r\n =>]*|[^\t\r\n =>]+[^ >]|\/+(?!>))(\s*=\s*("[^"]*"|'[^']*'|(?=[a-z][a-z-]*\s+=)|[^>\s]*))?)|(\/?>)|[^a-z\s>]+)/i,amp$htmlparser$HtmlParser$OUTSIDE_TAG_TOKEN_=/^(?:&(\#[0-9]+|\#[x][0-9a-f]+|\w+);|<[!]--[\s\S]*?(?:--\x3e|$)|<(\/)?([a-z!\?][^\0 \n\r\t\f\v>/]*)|([^<&>]+)|([<&>]))/i; +function amp$htmlparser$HtmlParser$DocLocatorImpl(htmlText){this.amp_htmlparser_HtmlParser_DocLocatorImpl$lineByPos_=[];this.amp_htmlparser_HtmlParser_DocLocatorImpl$colByPos_=[];for(var currentLine=1,currentCol=0,i=0;i",""":'"'};var div=goog$global.document.createElement("div");return str.replace(goog$string$HTML_ENTITY_PATTERN_,function(s,entity){var value=seen[s];if(value)return value;"#"==entity.charAt(0)&&(entity=Number("0"+entity.substr(1)),isNaN(entity)||(value=String.fromCharCode(entity)));value||(div.innerHTML=s+" ",value=div.firstChild.nodeValue.slice(0,-1));return seen[s]=value})} +function goog$string$unescapePureXmlEntities_(str){return str.replace(/&([^;]+);/g,function(s,entity){switch(entity){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=entity.charAt(0)||(entity=Number("0"+entity.substr(1)),isNaN(entity))?s:String.fromCharCode(entity)}})}var goog$string$HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;var EMPTY_string_ARRAY=[],EMPTY_number_ARRAY=[],EMPTY_amp_validator_AtRuleSpec_ARRAY=[],EMPTY_amp_validator_BlackListedCDataRegex_ARRAY=[],EMPTY_amp_validator_DescendantTagList_ARRAY=[],EMPTY_amp_validator_ErrorFormat_ARRAY=[],EMPTY_amp_validator_ErrorSpecificity_ARRAY=[],EMPTY_amp_validator_ReferencePoint_ARRAY=[],EMPTY_amp_validator_HtmlFormat_Code_ARRAY=[]; +function amp$validator$AmpLayout(supportedLayouts){this.supportedLayouts=supportedLayouts;this.definesDefaultHeight=this.definesDefaultWidth=!1}goog$exportSymbol("amp.validator.AmpLayout.Layout",{UNKNOWN:"UNKNOWN",NODISPLAY:"NODISPLAY",FIXED:"FIXED",FIXED_HEIGHT:"FIXED_HEIGHT",RESPONSIVE:"RESPONSIVE",CONTAINER:"CONTAINER",FILL:"FILL",FLEX_ITEM:"FLEX_ITEM",FLUID:"FLUID",INTRINSIC:"INTRINSIC"}); +var amp$validator$AmpLayout$Layout_NamesByIndex="UNKNOWN NODISPLAY FIXED FIXED_HEIGHT RESPONSIVE CONTAINER FILL FLEX_ITEM FLUID INTRINSIC".split(" "),amp$validator$AmpLayout$Layout_ValuesByIndex="UNKNOWN NODISPLAY FIXED FIXED_HEIGHT RESPONSIVE CONTAINER FILL FLEX_ITEM FLUID INTRINSIC".split(" ");function amp$validator$AtRuleSpec(name,type){this.name=name;this.type=type} +goog$exportSymbol("amp.validator.AtRuleSpec.BlockType",{PARSE_AS_ERROR:"PARSE_AS_ERROR",PARSE_AS_IGNORE:"PARSE_AS_IGNORE",PARSE_AS_RULES:"PARSE_AS_RULES",PARSE_AS_DECLARATIONS:"PARSE_AS_DECLARATIONS"}); +function amp$validator$AttrSpec(name){this.name=name;this.alternativeNames=EMPTY_string_ARRAY;this.amp_validator_AttrSpec$mandatory=!1;this.dispatchKey=this.amp_validator_AttrSpec$deprecationUrl=this.amp_validator_AttrSpec$deprecation=this.blacklistedValueRegex=this.trigger=this.valueProperties=this.valueUrl=this.valueRegexCasei=this.valueRegex=this.valueCasei=this.value=this.mandatoryOneof=null;this.implicit=!1} +goog$exportSymbol("amp.validator.AttrSpec.DispatchKeyType",{NONE_DISPATCH:"NONE_DISPATCH",NAME_DISPATCH:"NAME_DISPATCH",NAME_VALUE_DISPATCH:"NAME_VALUE_DISPATCH",NAME_VALUE_PARENT_DISPATCH:"NAME_VALUE_PARENT_DISPATCH"});function amp$validator$AttrTriggerSpec(alsoRequiresAttr){this.ifValueRegex=null;this.alsoRequiresAttr=alsoRequiresAttr}function amp$validator$BlackListedCDataRegex(regex,errorMessage){this.regex=regex;this.errorMessage=errorMessage} +function amp$validator$CdataSpec(){this.maxBytes=-1;this.amp_validator_CdataSpec$cssSpec=this.cdataRegex=this.maxBytesSpecUrl=null;this.whitespaceOnly=!1;this.blacklistedCdataRegex=EMPTY_amp_validator_BlackListedCDataRegex_ARRAY;this.combinedBlacklistedCdataRegex=null}function amp$validator$ChildTagSpec(){this.mandatoryNumChildTags=-1;this.childTagNameOneof=this.firstChildTagNameOneof=EMPTY_string_ARRAY;this.mandatoryMinNumChildTags=-1} +function amp$validator$CssSpec(){this.atRuleSpec=EMPTY_amp_validator_AtRuleSpec_ARRAY;this.fontUrlSpec=this.imageUrlSpec=null;this.validateKeyframes=this.validateAmp4Ads=!1;this.allowedDeclarations=EMPTY_string_ARRAY}function amp$validator$DescendantTagList(){this.name=null;this.allowedTags=EMPTY_string_ARRAY}function amp$validator$ErrorFormat(code,format){this.code=code;this.format=format}function amp$validator$ErrorSpecificity(){this.code=null;this.specificity=0} +function amp$validator$ExtensionSpec(){this.name=null;this.deprecatedVersions=this.allowedVersions=EMPTY_string_ARRAY;this.deprecatedAllowDuplicates=this.isCustomTemplate=!1;this.requiresUsage=null}goog$exportSymbol("amp.validator.ExtensionSpec.ExtensionUsageRequirement",{ERROR:"ERROR",GRANDFATHERED:"GRANDFATHERED",NONE:"NONE"});goog$exportSymbol("amp.validator.HtmlFormat.Code",{AMP:"AMP",AMP4ADS:"AMP4ADS",EXPERIMENTAL:"EXPERIMENTAL"}); +function amp$validator$PropertySpec(name){this.name=name;this.amp_validator_PropertySpec$mandatory=!1;this.valueDouble=this.value=null}function amp$validator$PropertySpecList(properties){this.properties=properties}function amp$validator$ReferencePoint(){this.tagSpecName=null;this.unique=this.amp_validator_ReferencePoint$mandatory=!1} +function amp$validator$TagSpec(tagName){this.htmlFormat=EMPTY_amp_validator_HtmlFormat_Code_ARRAY;this.tagName=tagName;this.extensionSpec=this.specName=null;this.requiresExtension=EMPTY_string_ARRAY;this.amp_validator_TagSpec$mandatory=!1;this.mandatoryAlternatives=null;this.uniqueWarning=this.unique=!1;this.mandatoryAncestorSuggestedAlternative=this.mandatoryAncestor=this.mandatoryParent=null;this.disallowedAncestor=EMPTY_string_ARRAY;this.amp_validator_TagSpec$descendantTagList=null;this.requires= +this.satisfies=this.alsoRequiresTagWarning=EMPTY_number_ARRAY;this.amp_validator_TagSpec$deprecationUrl=this.amp_validator_TagSpec$deprecation=null;this.amp_validator_TagSpec$attrLists=this.amp_validator_TagSpec$attrs=EMPTY_number_ARRAY;this.childTags=this.amp_validator_TagSpec$cdata=null;this.mandatoryLastChild=this.siblingsDisallowed=!1;this.referencePoints=EMPTY_amp_validator_ReferencePoint_ARRAY;this.ampLayout=this.specUrl=null} +function amp$validator$UrlSpec(allowedProtocol){this.allowedProtocol=allowedProtocol;this.allowRelative=!0;this.allowEmpty=!1;this.amp_validator_UrlSpec$disallowedDomain=EMPTY_string_ARRAY}function amp$validator$ValidationError(){this.code=this.severity=null;this.line=1;this.col=0;this.specUrl=null;this.params=EMPTY_string_ARRAY;this.dataAmpReportTestValue=this.category=null}function amp$validator$ValidationResult(){this.status=null;this.errors=[];this.specFileRevision=this.validatorRevision=-1} +goog$exportSymbol("amp.validator.ValidationResult",amp$validator$ValidationResult);amp$validator$ValidationResult.Status={UNKNOWN:"UNKNOWN",PASS:"PASS",FAIL:"FAIL"}; +function amp$validator$ValidatorRules(tags){this.tags=tags;this.minValidatorRevisionRequired=0;this.specFileRevision=-1;this.scriptSpecUrl=this.stylesSpecUrl=this.templateSpecUrl=null;this.errorFormats=EMPTY_amp_validator_ErrorFormat_ARRAY;this.errorSpecificity=EMPTY_amp_validator_ErrorSpecificity_ARRAY;this.amp_validator_ValidatorRules$descendantTagList=EMPTY_amp_validator_DescendantTagList_ARRAY;this.dispatchKeyByTagSpecId=Array(tags.length);this.internedStrings=[];this.amp_validator_ValidatorRules$attrs= +[];this.directAttrLists=[];this.amp_validator_ValidatorRules$globalAttrs=[];this.amp_validator_ValidatorRules$ampLayoutAttrs=[]} +function amp$validator$createRules(){var tagspec_0=new amp$validator$TagSpec("!DOCTYPE");tagspec_0.specName="html doctype";tagspec_0.amp_validator_TagSpec$mandatory=!0;tagspec_0.unique=!0;tagspec_0.mandatoryParent="$ROOT";tagspec_0.amp_validator_TagSpec$attrs=[0];tagspec_0.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";var tagspec_1=new amp$validator$TagSpec("HTML");tagspec_1.specName="html \u26a1 for top-level html";tagspec_1.amp_validator_TagSpec$mandatory=!0;tagspec_1.unique= +!0;tagspec_1.mandatoryParent="!DOCTYPE";tagspec_1.amp_validator_TagSpec$attrs=[1];tagspec_1.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_1.htmlFormat=["AMP"];var tagspec_2=new amp$validator$TagSpec("HTML");tagspec_2.specName="html \u26a14ads for top-level html";tagspec_2.amp_validator_TagSpec$mandatory=!0;tagspec_2.unique=!0;tagspec_2.mandatoryParent="!DOCTYPE";tagspec_2.amp_validator_TagSpec$attrs=[2];tagspec_2.specUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#a4a-format-rules"; +tagspec_2.htmlFormat=["AMP4ADS"];var tagspec_3=new amp$validator$TagSpec("HEAD");tagspec_3.amp_validator_TagSpec$mandatory=!0;tagspec_3.unique=!0;tagspec_3.mandatoryParent="HTML";tagspec_3.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";var tagspec_4=new amp$validator$TagSpec("TITLE");tagspec_4.specName="title";var tagspec_5=new amp$validator$TagSpec("BASE");tagspec_5.unique=!0;tagspec_5.mandatoryParent="HEAD";tagspec_5.amp_validator_TagSpec$attrs=[3,4];tagspec_5.htmlFormat= +["AMP","AMP4ADS"];var tagspec_6=new amp$validator$TagSpec("LINK");tagspec_6.specName="link rel=";tagspec_6.amp_validator_TagSpec$attrs=[-1,5,-2,-3];tagspec_6.amp_validator_TagSpec$attrLists=[0];tagspec_6.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_6.disallowedAncestor=["TEMPLATE"];tagspec_6.htmlFormat=["AMP","AMP4ADS"];var tagspec_7=new amp$validator$TagSpec("LINK");tagspec_7.specName="link rel=canonical";tagspec_7.amp_validator_TagSpec$mandatory=!0;tagspec_7.unique= +!0;tagspec_7.mandatoryParent="HEAD";tagspec_7.amp_validator_TagSpec$attrs=[6,7];tagspec_7.amp_validator_TagSpec$attrLists=[0];tagspec_7.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_7.htmlFormat=["AMP"];var tagspec_8=new amp$validator$TagSpec("LINK");tagspec_8.specName="link rel=manifest";tagspec_8.mandatoryParent="HEAD";tagspec_8.amp_validator_TagSpec$attrs=[8,9];tagspec_8.amp_validator_TagSpec$attrLists=[0];tagspec_8.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags"; +tagspec_8.htmlFormat=["AMP","AMP4ADS"];tagspec_8.satisfies=[-4];var tagspec_9=new amp$validator$TagSpec("LINK");tagspec_9.specName="link rel=stylesheet for fonts";tagspec_9.mandatoryParent="HEAD";tagspec_9.amp_validator_TagSpec$attrs=[-5,10,-6,11,12,-7,-8];tagspec_9.specUrl="https://www.ampproject.org/docs/reference/spec#custom-fonts";tagspec_9.htmlFormat=["AMP","AMP4ADS"];var tagspec_10=new amp$validator$TagSpec("LINK");tagspec_10.specName="link itemprop=sameAs";tagspec_10.amp_validator_TagSpec$attrs= +[13,14];tagspec_10.amp_validator_TagSpec$attrLists=[0];tagspec_10.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_10.htmlFormat=["AMP","AMP4ADS"];var tagspec_11=new amp$validator$TagSpec("LINK");tagspec_11.specName="link itemprop=";tagspec_11.amp_validator_TagSpec$attrs=[13,15];tagspec_11.amp_validator_TagSpec$attrLists=[0];tagspec_11.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_11.htmlFormat=["AMP","AMP4ADS"];var tagspec_12=new amp$validator$TagSpec("LINK"); +tagspec_12.specName="link property=";tagspec_12.amp_validator_TagSpec$attrs=[13,16];tagspec_12.amp_validator_TagSpec$attrLists=[0];tagspec_12.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_12.htmlFormat=["AMP","AMP4ADS"];var tagspec_13=new amp$validator$TagSpec("META");tagspec_13.specName="meta charset=utf-8";tagspec_13.amp_validator_TagSpec$mandatory=!0;tagspec_13.unique=!0;tagspec_13.mandatoryParent="HEAD";tagspec_13.amp_validator_TagSpec$attrs=[17];tagspec_13.specUrl= +"https://www.ampproject.org/docs/reference/spec#required-markup";var tagspec_14=new amp$validator$TagSpec("META");tagspec_14.specName="meta name=viewport";tagspec_14.amp_validator_TagSpec$mandatory=!0;tagspec_14.unique=!0;tagspec_14.mandatoryParent="HEAD";tagspec_14.amp_validator_TagSpec$attrs=[18,19];tagspec_14.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_14.htmlFormat=["AMP","AMP4ADS"];var tagspec_15=new amp$validator$TagSpec("META");tagspec_15.specName="meta http-equiv=X-UA-Compatible"; +tagspec_15.amp_validator_TagSpec$attrs=[20,21];tagspec_15.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_15.mandatoryAncestor="HEAD";tagspec_15.htmlFormat=["AMP","AMP4ADS"];var tagspec_16=new amp$validator$TagSpec("META");tagspec_16.specName="meta name=apple-itunes-app";tagspec_16.mandatoryParent="HEAD";tagspec_16.amp_validator_TagSpec$attrs=[22,23];tagspec_16.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_16.htmlFormat=["AMP","AMP4ADS"];tagspec_16.satisfies= +[-4];var tagspec_17=new amp$validator$TagSpec("META");tagspec_17.specName="meta name=amp-experiments-opt-in";tagspec_17.mandatoryParent="HEAD";tagspec_17.amp_validator_TagSpec$attrs=[24,25];tagspec_17.htmlFormat=["AMP","AMP4ADS"];var tagspec_18=new amp$validator$TagSpec("META");tagspec_18.specName="meta name=amp-3p-iframe-src";tagspec_18.mandatoryParent="HEAD";tagspec_18.amp_validator_TagSpec$attrs=[26,27];tagspec_18.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad";tagspec_18.htmlFormat= +["AMP"];var tagspec_19=new amp$validator$TagSpec("META");tagspec_19.specName="meta name=amp-experiment-token";tagspec_19.mandatoryParent="HEAD";tagspec_19.amp_validator_TagSpec$attrs=[28,25];tagspec_19.htmlFormat=["AMP"];var tagspec_20=new amp$validator$TagSpec("META");tagspec_20.specName="meta name=amp-link-variable-allowed-origin";tagspec_20.mandatoryParent="HEAD";tagspec_20.amp_validator_TagSpec$attrs=[29,25];tagspec_20.htmlFormat=["AMP"];var tagspec_21=new amp$validator$TagSpec("META");tagspec_21.specName= +"meta name=amp-google-clientid-id-api";tagspec_21.mandatoryParent="HEAD";tagspec_21.amp_validator_TagSpec$attrs=[30,25];tagspec_21.htmlFormat=["AMP"];var tagspec_22=new amp$validator$TagSpec("META");tagspec_22.specName="meta name=amp-ad-doubleclick-sra";tagspec_22.mandatoryParent="HEAD";tagspec_22.amp_validator_TagSpec$attrs=[31];tagspec_22.htmlFormat=["AMP"];var tagspec_23=new amp$validator$TagSpec("META");tagspec_23.specName="meta name=amp4ads-id";tagspec_23.mandatoryParent="HEAD";tagspec_23.amp_validator_TagSpec$attrs= +[32,25];tagspec_23.htmlFormat=["AMP4ADS"];var tagspec_24=new amp$validator$TagSpec("META");tagspec_24.specName="meta name= and content=";tagspec_24.amp_validator_TagSpec$attrs=[33,-9,-10,-11];tagspec_24.htmlFormat=["AMP","AMP4ADS"];var tagspec_25=new amp$validator$TagSpec("META");tagspec_25.specName="meta http-equiv=Content-Type";tagspec_25.amp_validator_TagSpec$attrs=[34,35];tagspec_25.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_25.mandatoryAncestor="HEAD";tagspec_25.htmlFormat= +["AMP","AMP4ADS"];var tagspec_26=new amp$validator$TagSpec("META");tagspec_26.specName="meta http-equiv=content-language";tagspec_26.amp_validator_TagSpec$attrs=[36,25];tagspec_26.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_26.mandatoryAncestor="HEAD";tagspec_26.htmlFormat=["AMP","AMP4ADS"];var tagspec_27=new amp$validator$TagSpec("META");tagspec_27.specName="meta http-equiv=pics-label";tagspec_27.amp_validator_TagSpec$attrs=[37,25];tagspec_27.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags"; +tagspec_27.mandatoryAncestor="HEAD";tagspec_27.htmlFormat=["AMP","AMP4ADS"];var tagspec_28=new amp$validator$TagSpec("META");tagspec_28.specName="meta http-equiv=imagetoolbar";tagspec_28.amp_validator_TagSpec$attrs=[38,25];tagspec_28.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_28.mandatoryAncestor="HEAD";tagspec_28.htmlFormat=["AMP","AMP4ADS"];var tagspec_29=new amp$validator$TagSpec("META");tagspec_29.specName="meta http-equiv=Content-Style-Type";tagspec_29.amp_validator_TagSpec$attrs= +[39,40];tagspec_29.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_29.mandatoryAncestor="HEAD";tagspec_29.htmlFormat=["AMP","AMP4ADS"];var tagspec_30=new amp$validator$TagSpec("META");tagspec_30.specName="meta http-equiv=Content-Script-Type";tagspec_30.amp_validator_TagSpec$attrs=[41,42];tagspec_30.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_30.mandatoryAncestor="HEAD";tagspec_30.htmlFormat=["AMP","AMP4ADS"];var tagspec_31=new amp$validator$TagSpec("META"); +tagspec_31.specName="meta http-equiv=origin-trial";tagspec_31.amp_validator_TagSpec$attrs=[43,25];tagspec_31.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_31.mandatoryAncestor="HEAD";tagspec_31.htmlFormat=["AMP","AMP4ADS"];var tagspec_32=new amp$validator$TagSpec("META");tagspec_32.specName="meta http-equiv=resource-type";tagspec_32.amp_validator_TagSpec$attrs=[44,25];tagspec_32.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_32.mandatoryAncestor= +"HEAD";tagspec_32.htmlFormat=["AMP","AMP4ADS"];var tagspec_33=new amp$validator$TagSpec("META");tagspec_33.specName="meta name=amp-ad-enable-refresh";tagspec_33.amp_validator_TagSpec$attrs=[45,25];tagspec_33.mandatoryAncestor="HEAD";tagspec_33.htmlFormat=["AMP","AMP4ADS"];var blacklistedcdataregex_0=new amp$validator$BlackListedCDataRegex("\x3c!--","html comments"),blacklistedcdataregex_1=new amp$validator$BlackListedCDataRegex("(^|\\W)i-amphtml-","CSS i-amphtml- name prefix"),blacklistedcdataregex_2= +new amp$validator$BlackListedCDataRegex("!important","CSS !important"),atrulespec_0=new amp$validator$AtRuleSpec("font-face","PARSE_AS_DECLARATIONS"),atrulespec_1=new amp$validator$AtRuleSpec("keyframes","PARSE_AS_RULES"),atrulespec_2=new amp$validator$AtRuleSpec("media","PARSE_AS_RULES"),atrulespec_3=new amp$validator$AtRuleSpec("supports","PARSE_AS_RULES"),atrulespec_4=new amp$validator$AtRuleSpec("$DEFAULT","PARSE_AS_ERROR"),urlspec_0=new amp$validator$UrlSpec(["https","http","data","absolute"]); +urlspec_0.allowRelative=!0;urlspec_0.allowEmpty=!0;var urlspec_1=new amp$validator$UrlSpec(["https","http","data"]);urlspec_1.allowRelative=!0;urlspec_1.allowEmpty=!0;var cssspec_0=new amp$validator$CssSpec;cssspec_0.atRuleSpec=[atrulespec_0,atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4];cssspec_0.imageUrlSpec=urlspec_0;cssspec_0.fontUrlSpec=urlspec_1;var cdataspec_0=new amp$validator$CdataSpec;cdataspec_0.maxBytes=5E4;cdataspec_0.maxBytesSpecUrl="https://www.ampproject.org/docs/reference/spec#maximum-size"; +cdataspec_0.blacklistedCdataRegex=[blacklistedcdataregex_0,blacklistedcdataregex_1,blacklistedcdataregex_2];cdataspec_0.amp_validator_CdataSpec$cssSpec=cssspec_0;cdataspec_0.combinedBlacklistedCdataRegex=-13;var tagspec_34=new amp$validator$TagSpec("STYLE");tagspec_34.specName="style amp-custom";tagspec_34.unique=!0;tagspec_34.mandatoryParent="HEAD";tagspec_34.amp_validator_TagSpec$attrs=[46,-12,12];tagspec_34.specUrl="https://www.ampproject.org/docs/reference/spec#stylesheets";tagspec_34.amp_validator_TagSpec$cdata= +cdataspec_0;tagspec_34.htmlFormat=["AMP"];var cssspec_1=new amp$validator$CssSpec;cssspec_1.atRuleSpec=[atrulespec_0,atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4];cssspec_1.imageUrlSpec=urlspec_0;cssspec_1.fontUrlSpec=urlspec_1;cssspec_1.validateAmp4Ads=!0;var cdataspec_1=new amp$validator$CdataSpec;cdataspec_1.maxBytes=2E4;cdataspec_1.maxBytesSpecUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#css";cdataspec_1.blacklistedCdataRegex=[blacklistedcdataregex_0, +blacklistedcdataregex_1,blacklistedcdataregex_2];cdataspec_1.amp_validator_CdataSpec$cssSpec=cssspec_1;cdataspec_1.combinedBlacklistedCdataRegex=-13;var tagspec_35=new amp$validator$TagSpec("STYLE");tagspec_35.specName="style amp-custom (AMP4ADS)";tagspec_35.unique=!0;tagspec_35.mandatoryParent="HEAD";tagspec_35.amp_validator_TagSpec$attrs=[46,-12,12];tagspec_35.specUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#css";tagspec_35.amp_validator_TagSpec$cdata= +cdataspec_1;tagspec_35.htmlFormat=["AMP4ADS"];var cdataspec_2=new amp$validator$CdataSpec;cdataspec_2.cdataRegex=-15;var tagspec_36=new amp$validator$TagSpec("STYLE");tagspec_36.specName="head > style[amp-boilerplate] - old variant";tagspec_36.mandatoryAlternatives=-14;tagspec_36.unique=!0;tagspec_36.mandatoryParent="HEAD";tagspec_36.amp_validator_TagSpec$attrs=[-12];tagspec_36.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_36.amp_validator_TagSpec$cdata= +cdataspec_2;tagspec_36.amp_validator_TagSpec$deprecation="head > style[amp-boilerplate]";tagspec_36.amp_validator_TagSpec$deprecationUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_36.htmlFormat=["AMP"];var cdataspec_3=new amp$validator$CdataSpec;cdataspec_3.cdataRegex=-17;var tagspec_37=new amp$validator$TagSpec("STYLE");tagspec_37.specName="noscript > style[amp-boilerplate] - old variant";tagspec_37.mandatoryAlternatives=-16;tagspec_37.unique=!0;tagspec_37.mandatoryParent= +"NOSCRIPT";tagspec_37.amp_validator_TagSpec$attrs=[-12];tagspec_37.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_37.amp_validator_TagSpec$cdata=cdataspec_3;tagspec_37.mandatoryAncestor="HEAD";tagspec_37.amp_validator_TagSpec$deprecation="noscript > style[amp-boilerplate]";tagspec_37.amp_validator_TagSpec$deprecationUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_37.htmlFormat=["AMP"];var cdataspec_4=new amp$validator$CdataSpec; +cdataspec_4.cdataRegex=-18;var tagspec_38=new amp$validator$TagSpec("STYLE");tagspec_38.specName="head > style[amp-boilerplate]";tagspec_38.mandatoryAlternatives=-14;tagspec_38.unique=!0;tagspec_38.mandatoryParent="HEAD";tagspec_38.amp_validator_TagSpec$attrs=[47,-12];tagspec_38.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_38.amp_validator_TagSpec$cdata=cdataspec_4;tagspec_38.htmlFormat=["AMP"];tagspec_38.satisfies=[-14];tagspec_38.requires=[-16];var cdataspec_5= +new amp$validator$CdataSpec;cdataspec_5.cdataRegex=-19;var tagspec_39=new amp$validator$TagSpec("STYLE");tagspec_39.specName="head > style[amp4ads-boilerplate]";tagspec_39.amp_validator_TagSpec$mandatory=!0;tagspec_39.unique=!0;tagspec_39.mandatoryParent="HEAD";tagspec_39.amp_validator_TagSpec$attrs=[48,-12];tagspec_39.specUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#boilerplate";tagspec_39.amp_validator_TagSpec$cdata=cdataspec_5;tagspec_39.htmlFormat= +["AMP4ADS"];var cdataspec_6=new amp$validator$CdataSpec;cdataspec_6.cdataRegex=-20;var tagspec_40=new amp$validator$TagSpec("STYLE");tagspec_40.specName="noscript > style[amp-boilerplate]";tagspec_40.mandatoryAlternatives=-16;tagspec_40.unique=!0;tagspec_40.mandatoryParent="NOSCRIPT";tagspec_40.amp_validator_TagSpec$attrs=[47,-12];tagspec_40.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_40.amp_validator_TagSpec$cdata=cdataspec_6;tagspec_40.mandatoryAncestor= +"HEAD";tagspec_40.htmlFormat=["AMP"];tagspec_40.satisfies=[-16];tagspec_40.requires=[-14];var cssspec_2=new amp$validator$CssSpec;cssspec_2.atRuleSpec=[atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4];cssspec_2.validateKeyframes=!0;cssspec_2.allowedDeclarations=["offset-distance","opacity","transform","visibility"];var cdataspec_7=new amp$validator$CdataSpec;cdataspec_7.maxBytes=5E5;cdataspec_7.maxBytesSpecUrl="https://www.ampproject.org/docs/reference/spec#keyframes-stylesheet";cdataspec_7.amp_validator_CdataSpec$cssSpec= +cssspec_2;var tagspec_41=new amp$validator$TagSpec("STYLE");tagspec_41.specName="style[amp-keyframes]";tagspec_41.unique=!0;tagspec_41.mandatoryParent="BODY";tagspec_41.amp_validator_TagSpec$attrs=[49];tagspec_41.amp_validator_TagSpec$cdata=cdataspec_7;tagspec_41.htmlFormat=["AMP","AMP4ADS"];tagspec_41.mandatoryLastChild=!0;var tagspec_42=new amp$validator$TagSpec("BODY");tagspec_42.amp_validator_TagSpec$mandatory=!0;tagspec_42.unique=!0;tagspec_42.mandatoryParent="HTML";tagspec_42.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup"; +var tagspec_43=new amp$validator$TagSpec("ARTICLE"),tagspec_44=new amp$validator$TagSpec("SECTION");tagspec_44.disallowedAncestor=["AMP-ACCORDION"];var tagspec_45=new amp$validator$TagSpec("NAV"),tagspec_46=new amp$validator$TagSpec("ASIDE"),tagspec_47=new amp$validator$TagSpec("H1");tagspec_47.amp_validator_TagSpec$attrs=[-21];var tagspec_48=new amp$validator$TagSpec("H2");tagspec_48.amp_validator_TagSpec$attrs=[-21];var tagspec_49=new amp$validator$TagSpec("H3");tagspec_49.amp_validator_TagSpec$attrs= +[-21];var tagspec_50=new amp$validator$TagSpec("H4");tagspec_50.amp_validator_TagSpec$attrs=[-21];var tagspec_51=new amp$validator$TagSpec("H5");tagspec_51.amp_validator_TagSpec$attrs=[-21];var tagspec_52=new amp$validator$TagSpec("H6");tagspec_52.amp_validator_TagSpec$attrs=[-21];var tagspec_53=new amp$validator$TagSpec("HEADER"),tagspec_54=new amp$validator$TagSpec("FOOTER"),tagspec_55=new amp$validator$TagSpec("ADDRESS"),tagspec_56=new amp$validator$TagSpec("P");tagspec_56.amp_validator_TagSpec$attrs= +[-21];var tagspec_57=new amp$validator$TagSpec("HR"),tagspec_58=new amp$validator$TagSpec("PRE"),tagspec_59=new amp$validator$TagSpec("BLOCKQUOTE");tagspec_59.amp_validator_TagSpec$attrs=[-21];tagspec_59.amp_validator_TagSpec$attrLists=[1];var tagspec_60=new amp$validator$TagSpec("OL");tagspec_60.amp_validator_TagSpec$attrs=[50,51,52];var tagspec_61=new amp$validator$TagSpec("UL"),tagspec_62=new amp$validator$TagSpec("LI");tagspec_62.amp_validator_TagSpec$attrs=[53];var tagspec_63=new amp$validator$TagSpec("DL"), +tagspec_64=new amp$validator$TagSpec("DT"),tagspec_65=new amp$validator$TagSpec("DD"),tagspec_66=new amp$validator$TagSpec("FIGURE"),tagspec_67=new amp$validator$TagSpec("FIGCAPTION"),tagspec_68=new amp$validator$TagSpec("DIV");tagspec_68.amp_validator_TagSpec$attrs=[-21];var tagspec_69=new amp$validator$TagSpec("MAIN"),tagspec_70=new amp$validator$TagSpec("A");tagspec_70.amp_validator_TagSpec$attrs=[54,-22,55,56,57,58,-23,-6,59,-24,-25,-26];tagspec_70.specUrl="https://www.ampproject.org/docs/reference/spec#links"; +tagspec_70.htmlFormat=["AMP","AMP4ADS"];var tagspec_71=new amp$validator$TagSpec("EM"),tagspec_72=new amp$validator$TagSpec("STRONG"),tagspec_73=new amp$validator$TagSpec("SMALL"),tagspec_74=new amp$validator$TagSpec("S"),tagspec_75=new amp$validator$TagSpec("CITE"),tagspec_76=new amp$validator$TagSpec("Q");tagspec_76.amp_validator_TagSpec$attrLists=[1];var tagspec_77=new amp$validator$TagSpec("DFN"),tagspec_78=new amp$validator$TagSpec("ABBR"),tagspec_79=new amp$validator$TagSpec("DATA"),tagspec_80= +new amp$validator$TagSpec("TIME");tagspec_80.amp_validator_TagSpec$attrs=[-27];var tagspec_81=new amp$validator$TagSpec("CODE"),tagspec_82=new amp$validator$TagSpec("VAR"),tagspec_83=new amp$validator$TagSpec("SAMP"),tagspec_84=new amp$validator$TagSpec("KBD"),tagspec_85=new amp$validator$TagSpec("SUB"),tagspec_86=new amp$validator$TagSpec("SUP"),tagspec_87=new amp$validator$TagSpec("I"),tagspec_88=new amp$validator$TagSpec("B"),tagspec_89=new amp$validator$TagSpec("U"),tagspec_90=new amp$validator$TagSpec("MARK"), +tagspec_91=new amp$validator$TagSpec("RUBY"),tagspec_92=new amp$validator$TagSpec("RB"),tagspec_93=new amp$validator$TagSpec("RT"),tagspec_94=new amp$validator$TagSpec("RTC"),tagspec_95=new amp$validator$TagSpec("RP"),tagspec_96=new amp$validator$TagSpec("BDI"),tagspec_97=new amp$validator$TagSpec("BDO");tagspec_97.amp_validator_TagSpec$attrs=[-28];var tagspec_98=new amp$validator$TagSpec("SPAN"),tagspec_99=new amp$validator$TagSpec("BR"),tagspec_100=new amp$validator$TagSpec("WBR"),tagspec_101=new amp$validator$TagSpec("INS"); +tagspec_101.amp_validator_TagSpec$attrs=[-27];tagspec_101.amp_validator_TagSpec$attrLists=[1];var tagspec_102=new amp$validator$TagSpec("DEL");tagspec_102.amp_validator_TagSpec$attrs=[-27];tagspec_102.amp_validator_TagSpec$attrLists=[1];var tagspec_103=new amp$validator$TagSpec("IMG");tagspec_103.amp_validator_TagSpec$attrs=[-29,-30,60,61,-24,-31,-32];tagspec_103.specUrl="https://www.ampproject.org/docs/reference/components/amp-img";tagspec_103.mandatoryAncestor="NOSCRIPT";tagspec_103.mandatoryAncestorSuggestedAlternative= +"AMP-IMG";tagspec_103.htmlFormat=["AMP"];var tagspec_104=new amp$validator$TagSpec("IFRAME");tagspec_104.amp_validator_TagSpec$attrs=[-25,62,-33,63,-31,-34,64,65,66,-32];tagspec_104.specUrl="https://www.ampproject.org/docs/reference/components/amp-iframe";tagspec_104.mandatoryAncestor="NOSCRIPT";tagspec_104.mandatoryAncestorSuggestedAlternative="AMP-IFRAME";tagspec_104.htmlFormat=["AMP"];var tagspec_105=new amp$validator$TagSpec("VIDEO");tagspec_105.amp_validator_TagSpec$attrs=[-35,-36,-31,-37,67, +-38,-39,-40,68,-32];tagspec_105.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_105.mandatoryAncestor="NOSCRIPT";tagspec_105.mandatoryAncestorSuggestedAlternative="AMP-VIDEO";tagspec_105.htmlFormat=["AMP"];var tagspec_106=new amp$validator$TagSpec("AUDIO");tagspec_106.amp_validator_TagSpec$attrs=[-35,-36,-37,-41,-40,68];tagspec_106.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_106.mandatoryAncestor="NOSCRIPT";tagspec_106.mandatoryAncestorSuggestedAlternative= +"AMP-AUDIO";tagspec_106.htmlFormat=["AMP"];var tagspec_107=new amp$validator$TagSpec("SOURCE");tagspec_107.specName="amp-video > source";tagspec_107.mandatoryParent="AMP-VIDEO";tagspec_107.amp_validator_TagSpec$attrs=[69,-6,-3,-42,-43];tagspec_107.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_107.htmlFormat=["AMP","AMP4ADS"];var tagspec_108=new amp$validator$TagSpec("SOURCE");tagspec_108.specName="amp-audio > source";tagspec_108.mandatoryParent="AMP-AUDIO";tagspec_108.amp_validator_TagSpec$attrs= +[69,-6,-3,-42,-43];tagspec_108.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_108.htmlFormat=["AMP","AMP4ADS"];var tagspec_109=new amp$validator$TagSpec("SOURCE");tagspec_109.specName="audio > source";tagspec_109.mandatoryParent="AUDIO";tagspec_109.amp_validator_TagSpec$attrs=[70,71,-6];tagspec_109.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_109.htmlFormat=["AMP","AMP4ADS"];var tagspec_110=new amp$validator$TagSpec("SOURCE");tagspec_110.specName= +"video > source";tagspec_110.mandatoryParent="VIDEO";tagspec_110.amp_validator_TagSpec$attrs=[70,71,-6];tagspec_110.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_110.htmlFormat=["AMP","AMP4ADS"];var tagspec_111=new amp$validator$TagSpec("SOURCE");tagspec_111.specName="amp-ima-video > source";tagspec_111.mandatoryParent="AMP-IMA-VIDEO";tagspec_111.amp_validator_TagSpec$attrs=[-6,69,-3,-42,-43];tagspec_111.htmlFormat=["AMP","AMP4ADS"];tagspec_111.requiresExtension= +["amp-ima-video"];var tagspec_112=new amp$validator$TagSpec("TRACK");tagspec_112.specName="audio > track";tagspec_112.mandatoryParent="AUDIO";tagspec_112.amp_validator_TagSpec$attrLists=[2];tagspec_112.htmlFormat=["AMP","AMP4ADS"];var tagspec_113=new amp$validator$TagSpec("TRACK");tagspec_113.specName="audio > track[kind=subtitles]";tagspec_113.mandatoryParent="AUDIO";tagspec_113.amp_validator_TagSpec$attrLists=[3];tagspec_113.htmlFormat=["AMP","AMP4ADS"];var tagspec_114=new amp$validator$TagSpec("TRACK"); +tagspec_114.specName="video > track";tagspec_114.mandatoryParent="VIDEO";tagspec_114.amp_validator_TagSpec$attrLists=[2];tagspec_114.htmlFormat=["AMP","AMP4ADS"];var tagspec_115=new amp$validator$TagSpec("TRACK");tagspec_115.specName="video > track[kind=subtitles]";tagspec_115.mandatoryParent="VIDEO";tagspec_115.amp_validator_TagSpec$attrLists=[3];tagspec_115.htmlFormat=["AMP","AMP4ADS"];var tagspec_116=new amp$validator$TagSpec("TRACK");tagspec_116.specName="amp-audio > track";tagspec_116.mandatoryParent= +"AMP-AUDIO";tagspec_116.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_116.amp_validator_TagSpec$attrLists=[2];tagspec_116.htmlFormat=["AMP","AMP4ADS"];var tagspec_117=new amp$validator$TagSpec("TRACK");tagspec_117.specName="amp-audio > track[kind=subtitles]";tagspec_117.mandatoryParent="AMP-AUDIO";tagspec_117.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_117.amp_validator_TagSpec$attrLists=[3];tagspec_117.htmlFormat=["AMP","AMP4ADS"];var tagspec_118=new amp$validator$TagSpec("TRACK");tagspec_118.specName= +"amp-video > track";tagspec_118.mandatoryParent="AMP-VIDEO";tagspec_118.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_118.amp_validator_TagSpec$attrLists=[2];tagspec_118.htmlFormat=["AMP","AMP4ADS"];var tagspec_119=new amp$validator$TagSpec("TRACK");tagspec_119.specName="amp-video > track[kind=subtitles]";tagspec_119.mandatoryParent="AMP-VIDEO";tagspec_119.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_119.amp_validator_TagSpec$attrLists=[3];tagspec_119.htmlFormat=["AMP","AMP4ADS"];var tagspec_120= +new amp$validator$TagSpec("TRACK");tagspec_120.specName="amp-ima-video > track[kind=subtitles]";tagspec_120.mandatoryParent="AMP-IMA-VIDEO";tagspec_120.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_120.amp_validator_TagSpec$attrLists=[3];tagspec_120.specUrl="https://www.ampproject.org/docs/reference/components/amp-ima-video";tagspec_120.htmlFormat=["AMP","AMP4ADS"];var tagspec_121=new amp$validator$TagSpec("G");tagspec_121.amp_validator_TagSpec$attrs=[-46,-47];tagspec_121.amp_validator_TagSpec$attrLists= +[10,4,5,7];tagspec_121.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_121.mandatoryAncestor="SVG";tagspec_121.htmlFormat=["AMP","AMP4ADS"];var tagspec_122=new amp$validator$TagSpec("GLYPH");tagspec_122.amp_validator_TagSpec$attrs=[-48,-49,-50,-51,-52,-53,-54,-55,-56];tagspec_122.amp_validator_TagSpec$attrLists=[10,5,7];tagspec_122.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_122.mandatoryAncestor="SVG";tagspec_122.htmlFormat=["AMP","AMP4ADS"];var tagspec_123= +new amp$validator$TagSpec("GLYPHREF");tagspec_123.amp_validator_TagSpec$attrs=[-57,-58,-59,-60,-61,-62];tagspec_123.amp_validator_TagSpec$attrLists=[10,5,7,9];tagspec_123.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_123.mandatoryAncestor="SVG";tagspec_123.htmlFormat=["AMP","AMP4ADS"];var tagspec_124=new amp$validator$TagSpec("IMAGE");tagspec_124.amp_validator_TagSpec$attrs=[-46,-31,-63,-47,-32,-61,-62,-64,-65,72,-66,-67,-68,-69];tagspec_124.amp_validator_TagSpec$attrLists= +[10,4,5,7];tagspec_124.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_124.mandatoryAncestor="SVG";tagspec_124.htmlFormat=["AMP","AMP4ADS"];var tagspec_125=new amp$validator$TagSpec("MARKER");tagspec_125.amp_validator_TagSpec$attrs=[-46,-70,-71,-72,-73,-63,-74,-75,-47,-76];tagspec_125.amp_validator_TagSpec$attrLists=[10,5,7];tagspec_125.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_125.mandatoryAncestor="SVG";tagspec_125.htmlFormat=["AMP","AMP4ADS"];var tagspec_126= +new amp$validator$TagSpec("METADATA");tagspec_126.amp_validator_TagSpec$attrLists=[10,5];tagspec_126.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_126.mandatoryAncestor="SVG";tagspec_126.htmlFormat=["AMP","AMP4ADS"];var tagspec_127=new amp$validator$TagSpec("PATH");tagspec_127.amp_validator_TagSpec$attrs=[-49,-46,-77,-78,-47];tagspec_127.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_127.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_127.mandatoryAncestor= +"SVG";tagspec_127.htmlFormat=["AMP","AMP4ADS"];var tagspec_128=new amp$validator$TagSpec("SOLIDCOLOR");tagspec_128.amp_validator_TagSpec$attrs=[-79,-80];tagspec_128.amp_validator_TagSpec$attrLists=[10,5,7];tagspec_128.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_128.mandatoryAncestor="SVG";tagspec_128.htmlFormat=["AMP","AMP4ADS"];var tagspec_129=new amp$validator$TagSpec("SVG");tagspec_129.amp_validator_TagSpec$attrs=[-81,-82,-46,-31,-63,73,-76,-32,-61,-62,-83];tagspec_129.amp_validator_TagSpec$attrLists= +[4,5,7];tagspec_129.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_129.htmlFormat=["AMP","AMP4ADS"];var tagspec_130=new amp$validator$TagSpec("SWITCH");tagspec_130.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_130.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_130.mandatoryAncestor="SVG";tagspec_130.htmlFormat=["AMP","AMP4ADS"];var tagspec_131=new amp$validator$TagSpec("VIEW");tagspec_131.amp_validator_TagSpec$attrs=[-46,-63,-76,-84,-83];tagspec_131.amp_validator_TagSpec$attrLists= +[10,5];tagspec_131.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_131.mandatoryAncestor="SVG";tagspec_131.htmlFormat=["AMP","AMP4ADS"];var tagspec_132=new amp$validator$TagSpec("CIRCLE");tagspec_132.amp_validator_TagSpec$attrs=[-85,-86,-46,-87,-78,-47];tagspec_132.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_132.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_132.mandatoryAncestor="SVG";tagspec_132.htmlFormat=["AMP","AMP4ADS"];var tagspec_133=new amp$validator$TagSpec("ELLIPSE"); +tagspec_133.amp_validator_TagSpec$attrs=[-85,-86,-46,-88,-89,-78,-47];tagspec_133.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_133.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_133.mandatoryAncestor="SVG";tagspec_133.htmlFormat=["AMP","AMP4ADS"];var tagspec_134=new amp$validator$TagSpec("LINE");tagspec_134.amp_validator_TagSpec$attrs=[-46,-78,-47,-90,-91,-92,-93];tagspec_134.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_134.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; +tagspec_134.mandatoryAncestor="SVG";tagspec_134.htmlFormat=["AMP","AMP4ADS"];var tagspec_135=new amp$validator$TagSpec("POLYGON");tagspec_135.amp_validator_TagSpec$attrs=[-46,-94,-78,-47];tagspec_135.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_135.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_135.mandatoryAncestor="SVG";tagspec_135.htmlFormat=["AMP","AMP4ADS"];var tagspec_136=new amp$validator$TagSpec("POLYLINE");tagspec_136.amp_validator_TagSpec$attrs=[-46,-94,-78,-47]; +tagspec_136.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_136.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_136.mandatoryAncestor="SVG";tagspec_136.htmlFormat=["AMP","AMP4ADS"];var tagspec_137=new amp$validator$TagSpec("RECT");tagspec_137.amp_validator_TagSpec$attrs=[-46,-31,-88,-89,-78,-47,-32,-61,-62];tagspec_137.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_137.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_137.mandatoryAncestor="SVG";tagspec_137.htmlFormat= +["AMP","AMP4ADS"];var tagspec_138=new amp$validator$TagSpec("TEXT");tagspec_138.amp_validator_TagSpec$attrs=[-57,-58,-46,-95,-96,-97,-98,-47,-61,-62];tagspec_138.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_138.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_138.mandatoryAncestor="SVG";tagspec_138.htmlFormat=["AMP","AMP4ADS"];var tagspec_139=new amp$validator$TagSpec("TEXTPATH");tagspec_139.amp_validator_TagSpec$attrs=[-46,-99,-100,-101];tagspec_139.amp_validator_TagSpec$attrLists= +[10,4,5,7,9];tagspec_139.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_139.mandatoryAncestor="SVG";tagspec_139.htmlFormat=["AMP","AMP4ADS"];var tagspec_140=new amp$validator$TagSpec("TREF");tagspec_140.amp_validator_TagSpec$attrs=[-46];tagspec_140.amp_validator_TagSpec$attrLists=[10,4,5,7,9];tagspec_140.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_140.mandatoryAncestor="SVG";tagspec_140.htmlFormat=["AMP","AMP4ADS"];var tagspec_141=new amp$validator$TagSpec("TSPAN"); +tagspec_141.amp_validator_TagSpec$attrs=[-57,-58,-46,-96,-95,-98,-61,-62];tagspec_141.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_141.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_141.mandatoryAncestor="SVG";tagspec_141.htmlFormat=["AMP","AMP4ADS"];var tagspec_142=new amp$validator$TagSpec("CLIPPATH");tagspec_142.amp_validator_TagSpec$attrs=[-102,-46,-47];tagspec_142.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_142.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; +tagspec_142.mandatoryAncestor="SVG";tagspec_142.htmlFormat=["AMP","AMP4ADS"];var tagspec_143=new amp$validator$TagSpec("FILTER");tagspec_143.amp_validator_TagSpec$attrs=[-46,-103,-104,-31,-105,-32,-61,-62];tagspec_143.amp_validator_TagSpec$attrLists=[10,5,7,9];tagspec_143.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_143.mandatoryAncestor="SVG";tagspec_143.htmlFormat=["AMP","AMP4ADS"];var tagspec_144=new amp$validator$TagSpec("HKERN");tagspec_144.amp_validator_TagSpec$attrs= +[-106,-107,-108,-109,-110];tagspec_144.amp_validator_TagSpec$attrLists=[10,5];tagspec_144.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_144.mandatoryAncestor="SVG";tagspec_144.htmlFormat=["AMP","AMP4ADS"];var tagspec_145=new amp$validator$TagSpec("LINEARGRADIENT");tagspec_145.amp_validator_TagSpec$attrs=[-46,-111,-112,-113,-90,-92,-91,-93];tagspec_145.amp_validator_TagSpec$attrLists=[10,5,7,9];tagspec_145.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_145.mandatoryAncestor= +"SVG";tagspec_145.htmlFormat=["AMP","AMP4ADS"];var tagspec_146=new amp$validator$TagSpec("MASK");tagspec_146.amp_validator_TagSpec$attrs=[-46,-31,-114,-115,-32,-61,-62];tagspec_146.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_146.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_146.mandatoryAncestor="SVG";tagspec_146.htmlFormat=["AMP","AMP4ADS"];var tagspec_147=new amp$validator$TagSpec("PATTERN");tagspec_147.amp_validator_TagSpec$attrs=[-46,-31,-116,-117,-118,-63,-76,-32, +-61,-62];tagspec_147.amp_validator_TagSpec$attrLists=[10,4,5,7,9];tagspec_147.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_147.mandatoryAncestor="SVG";tagspec_147.htmlFormat=["AMP","AMP4ADS"];var tagspec_148=new amp$validator$TagSpec("RADIALGRADIENT");tagspec_148.amp_validator_TagSpec$attrs=[-85,-86,-46,-119,-120,-121,-111,-112,-87,-113];tagspec_148.amp_validator_TagSpec$attrLists=[10,5,7,9];tagspec_148.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_148.mandatoryAncestor= +"SVG";tagspec_148.htmlFormat=["AMP","AMP4ADS"];var tagspec_149=new amp$validator$TagSpec("STOP");tagspec_149.specName="lineargradient > stop";tagspec_149.amp_validator_TagSpec$attrs=[-122,-123,-124];tagspec_149.amp_validator_TagSpec$attrLists=[10];tagspec_149.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_149.mandatoryAncestor="LINEARGRADIENT";tagspec_149.htmlFormat=["AMP","AMP4ADS"];var tagspec_150=new amp$validator$TagSpec("STOP");tagspec_150.specName="radialgradient > stop"; +tagspec_150.amp_validator_TagSpec$attrs=[-122,-123,-124];tagspec_150.amp_validator_TagSpec$attrLists=[10];tagspec_150.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_150.mandatoryAncestor="RADIALGRADIENT";tagspec_150.htmlFormat=["AMP","AMP4ADS"];var tagspec_151=new amp$validator$TagSpec("VKERN");tagspec_151.amp_validator_TagSpec$attrs=[-106,-107,-108,-109,-110];tagspec_151.amp_validator_TagSpec$attrLists=[10,5];tagspec_151.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; +tagspec_151.mandatoryAncestor="SVG";tagspec_151.htmlFormat=["AMP","AMP4ADS"];var tagspec_152=new amp$validator$TagSpec("DEFS");tagspec_152.amp_validator_TagSpec$attrs=[-46,-47];tagspec_152.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_152.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_152.mandatoryAncestor="SVG";tagspec_152.htmlFormat=["AMP","AMP4ADS"];var tagspec_153=new amp$validator$TagSpec("SYMBOL");tagspec_153.amp_validator_TagSpec$attrs=[-46,-63,-76];tagspec_153.amp_validator_TagSpec$attrLists= +[10,5,7];tagspec_153.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_153.mandatoryAncestor="SVG";tagspec_153.htmlFormat=["AMP","AMP4ADS"];var tagspec_154=new amp$validator$TagSpec("USE");tagspec_154.amp_validator_TagSpec$attrs=[-46,-31,-47,-32,-61,-62];tagspec_154.amp_validator_TagSpec$attrLists=[10,4,5,7,9];tagspec_154.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_154.mandatoryAncestor="SVG";tagspec_154.htmlFormat=["AMP","AMP4ADS"];var tagspec_155=new amp$validator$TagSpec("FECOLORMATRIX"); +tagspec_155.amp_validator_TagSpec$attrs=[-125,-3,-126];tagspec_155.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_155.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_155.mandatoryAncestor="SVG";tagspec_155.htmlFormat=["AMP","AMP4ADS"];var tagspec_156=new amp$validator$TagSpec("FECOMPOSITE");tagspec_156.amp_validator_TagSpec$attrs=[-125,-127,-128,-129,-130,-131,-132];tagspec_156.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_156.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; +tagspec_156.mandatoryAncestor="SVG";tagspec_156.htmlFormat=["AMP","AMP4ADS"];var tagspec_157=new amp$validator$TagSpec("FEFLOOD");tagspec_157.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_157.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_157.mandatoryAncestor="SVG";tagspec_157.htmlFormat=["AMP","AMP4ADS"];var tagspec_158=new amp$validator$TagSpec("FEGAUSSIANBLUR");tagspec_158.amp_validator_TagSpec$attrs=[-133,-125,-134];tagspec_158.amp_validator_TagSpec$attrLists=[10,5, +6,7];tagspec_158.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_158.mandatoryAncestor="SVG";tagspec_158.htmlFormat=["AMP","AMP4ADS"];var tagspec_159=new amp$validator$TagSpec("FEMERGE");tagspec_159.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_159.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_159.mandatoryAncestor="SVG";tagspec_159.htmlFormat=["AMP","AMP4ADS"];var tagspec_160=new amp$validator$TagSpec("FEMERGENODE");tagspec_160.amp_validator_TagSpec$attrs= +[-125];tagspec_160.amp_validator_TagSpec$attrLists=[10,5];tagspec_160.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_160.mandatoryAncestor="SVG";tagspec_160.htmlFormat=["AMP","AMP4ADS"];var tagspec_161=new amp$validator$TagSpec("FEOFFSET");tagspec_161.amp_validator_TagSpec$attrs=[-57,-58,-125];tagspec_161.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_161.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_161.mandatoryAncestor="SVG";tagspec_161.htmlFormat= +["AMP","AMP4ADS"];var tagspec_162=new amp$validator$TagSpec("FOREIGNOBJECT");tagspec_162.amp_validator_TagSpec$attrs=[-46,-31,-47,-32,-61,-62];tagspec_162.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_162.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_162.mandatoryAncestor="SVG";tagspec_162.htmlFormat=["AMP","AMP4ADS"];var tagspec_163=new amp$validator$TagSpec("DESC");tagspec_163.amp_validator_TagSpec$attrLists=[10,5];tagspec_163.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; +tagspec_163.mandatoryAncestor="SVG";tagspec_163.htmlFormat=["AMP","AMP4ADS"];var tagspec_164=new amp$validator$TagSpec("TITLE");tagspec_164.specName="svg title";tagspec_164.amp_validator_TagSpec$attrLists=[10,5];tagspec_164.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_164.mandatoryAncestor="SVG";tagspec_164.htmlFormat=["AMP","AMP4ADS"];var tagspec_165=new amp$validator$TagSpec("TABLE");tagspec_165.amp_validator_TagSpec$attrs=[-135,-21,74,-136,-137,-138,-32];var tagspec_166= +new amp$validator$TagSpec("CAPTION"),tagspec_167=new amp$validator$TagSpec("COLGROUP");tagspec_167.amp_validator_TagSpec$attrs=[-139];var tagspec_168=new amp$validator$TagSpec("COL");tagspec_168.amp_validator_TagSpec$attrs=[-139];var tagspec_169=new amp$validator$TagSpec("TBODY"),tagspec_170=new amp$validator$TagSpec("THEAD"),tagspec_171=new amp$validator$TagSpec("TFOOT"),tagspec_172=new amp$validator$TagSpec("TR");tagspec_172.amp_validator_TagSpec$attrs=[-21,-136,-31,-140];var tagspec_173=new amp$validator$TagSpec("TD"); +tagspec_173.amp_validator_TagSpec$attrs=[-141,-142,-143,-21,-136,-31,-140,-32];var tagspec_174=new amp$validator$TagSpec("TH");tagspec_174.amp_validator_TagSpec$attrs=[-144,-141,-142,-143,-145,-146,-21,-136,-31,-140,-32];var tagspec_175=new amp$validator$TagSpec("FORM");tagspec_175.specName="FORM [method=GET]";tagspec_175.amp_validator_TagSpec$attrs=[-147,-148,75,76,-149,77,-150,78,-25,-151,79,80];tagspec_175.disallowedAncestor=["AMP-APP-BANNER"];tagspec_175.htmlFormat=["AMP","AMP4ADS"];tagspec_175.requiresExtension= +["amp-form"];var tagspec_176=new amp$validator$TagSpec("FORM");tagspec_176.specName="FORM [method=POST]";tagspec_176.amp_validator_TagSpec$attrs=[-147,-148,81,-149,82,-150,83,-25,-151,79,80];tagspec_176.disallowedAncestor=["AMP-APP-BANNER"];tagspec_176.htmlFormat=["AMP","AMP4ADS"];tagspec_176.requiresExtension=["amp-form"];var tagspec_177=new amp$validator$TagSpec("DIV");tagspec_177.specName="FORM > DIV [submitting]";tagspec_177.mandatoryParent="FORM";tagspec_177.amp_validator_TagSpec$attrs=[-21, +84];var tagspec_178=new amp$validator$TagSpec("DIV");tagspec_178.specName="FORM > DIV [submit-success]";tagspec_178.mandatoryParent="FORM";tagspec_178.amp_validator_TagSpec$attrs=[-21,85];var tagspec_179=new amp$validator$TagSpec("DIV");tagspec_179.specName="FORM > DIV [submit-success][template]";tagspec_179.mandatoryParent="FORM";tagspec_179.amp_validator_TagSpec$attrs=[-21,85,86];var tagspec_180=new amp$validator$TagSpec("DIV");tagspec_180.specName="FORM > DIV [submit-error]";tagspec_180.mandatoryParent= +"FORM";tagspec_180.amp_validator_TagSpec$attrs=[-21,87];var tagspec_181=new amp$validator$TagSpec("LABEL");tagspec_181.amp_validator_TagSpec$attrs=[-152];tagspec_181.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_182=new amp$validator$TagSpec("INPUT");tagspec_182.amp_validator_TagSpec$attrs=[-147,-153,-149,-154,-155,-156,-31,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,88,-173,-32,-174,-175,-176,-177,-178,-179,-180,-181,-182, +-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-43,-194,-195];tagspec_182.amp_validator_TagSpec$attrLists=[11];tagspec_182.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_183=new amp$validator$TagSpec("BUTTON");tagspec_183.amp_validator_TagSpec$attrs=[89,56,57,-3,-173,-178,-43,-194];tagspec_183.amp_validator_TagSpec$attrLists=[11];var tagspec_184=new amp$validator$TagSpec("BUTTON");tagspec_184.specName="amp-app-banner button[open-button]";tagspec_184.amp_validator_TagSpec$attrs= +[90,56,57,-3,-173];tagspec_184.amp_validator_TagSpec$attrLists=[11];tagspec_184.mandatoryAncestor="AMP-APP-BANNER";tagspec_184.htmlFormat=["AMP","AMP4ADS"];tagspec_184.satisfies=[-196];var tagspec_185=new amp$validator$TagSpec("SELECT");tagspec_185.amp_validator_TagSpec$attrs=[-154,-156,-163,-167,-169,-197,-178,-185,-189,-191];tagspec_185.amp_validator_TagSpec$attrLists=[11];tagspec_185.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_186=new amp$validator$TagSpec("DATALIST"); +tagspec_186.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_187=new amp$validator$TagSpec("OPTGROUP");tagspec_187.mandatoryParent="SELECT";tagspec_187.amp_validator_TagSpec$attrs=[-156,-198,-178,-44];tagspec_187.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_188=new amp$validator$TagSpec("OPTION");tagspec_188.amp_validator_TagSpec$attrs=[-156,-198,-199,-173,-178,-44,-200,-194];tagspec_188.specUrl="https://www.ampproject.org/docs/reference/components/amp-form"; +var tagspec_189=new amp$validator$TagSpec("TEXTAREA");tagspec_189.amp_validator_TagSpec$attrs=[-149,-154,-201,-156,-160,-162,-165,-166,-167,-202,-168,-203,-204,-170,-205,-176,-197,-206,-178,-182,-184,-187,-188,-189,-207,-190,-208,-209,-192,-210];tagspec_189.amp_validator_TagSpec$attrLists=[11];tagspec_189.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_190=new amp$validator$TagSpec("OUTPUT");tagspec_190.amp_validator_TagSpec$attrs=[-152,-211];tagspec_190.amp_validator_TagSpec$attrLists= +[11];var tagspec_191=new amp$validator$TagSpec("PROGRESS");tagspec_191.amp_validator_TagSpec$attrs=[-159,-173];var tagspec_192=new amp$validator$TagSpec("METER");tagspec_192.amp_validator_TagSpec$attrs=[-212,-213,-159,-161,-214,-173];var tagspec_193=new amp$validator$TagSpec("FIELDSET");tagspec_193.amp_validator_TagSpec$attrs=[-156,-178];tagspec_193.amp_validator_TagSpec$attrLists=[11];var tagspec_194=new amp$validator$TagSpec("LEGEND"),cdataspec_8=new amp$validator$CdataSpec;cdataspec_8.blacklistedCdataRegex= +[new amp$validator$BlackListedCDataRegex(".","contents")];cdataspec_8.combinedBlacklistedCdataRegex=-215;var tagspec_195=new amp$validator$TagSpec("SCRIPT");tagspec_195.specName="amphtml engine v0.js script";tagspec_195.amp_validator_TagSpec$mandatory=!0;tagspec_195.unique=!0;tagspec_195.mandatoryParent="HEAD";tagspec_195.amp_validator_TagSpec$attrs=[91,-12,92,93];tagspec_195.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_195.amp_validator_TagSpec$cdata=cdataspec_8; +tagspec_195.htmlFormat=["AMP"];var tagspec_196=new amp$validator$TagSpec("SCRIPT");tagspec_196.specName="amp4ads engine amp4ads-v0.js script";tagspec_196.amp_validator_TagSpec$mandatory=!0;tagspec_196.unique=!0;tagspec_196.mandatoryParent="HEAD";tagspec_196.amp_validator_TagSpec$attrs=[91,-12,94,93];tagspec_196.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_196.amp_validator_TagSpec$cdata=cdataspec_8;tagspec_196.htmlFormat=["AMP4ADS"];var cdataspec_9=new amp$validator$CdataSpec; +cdataspec_9.blacklistedCdataRegex=[blacklistedcdataregex_0];cdataspec_9.combinedBlacklistedCdataRegex=-216;var tagspec_197=new amp$validator$TagSpec("SCRIPT");tagspec_197.specName="script type=application/ld+json";tagspec_197.amp_validator_TagSpec$attrs=[-12,95];tagspec_197.amp_validator_TagSpec$cdata=cdataspec_9;var tagspec_198=new amp$validator$TagSpec("SCRIPT");tagspec_198.specName="script id=amp-rtc";tagspec_198.unique=!0;tagspec_198.mandatoryParent="HEAD";tagspec_198.amp_validator_TagSpec$attrs= +[-12,96,97];tagspec_198.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_198.htmlFormat=["AMP"];var tagspec_199=new amp$validator$TagSpec("SCRIPT");tagspec_199.specName="amp-ima-video > script[type=application/json]";tagspec_199.mandatoryParent="AMP-IMA-VIDEO";tagspec_199.amp_validator_TagSpec$attrs=[98];tagspec_199.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_199.htmlFormat=["AMP"];var tagspec_200=new amp$validator$TagSpec("NOSCRIPT");tagspec_200.specName="noscript enclosure for boilerplate";tagspec_200.amp_validator_TagSpec$mandatory= +!0;tagspec_200.unique=!0;tagspec_200.mandatoryParent="HEAD";tagspec_200.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_200.htmlFormat=["AMP"];var tagspec_201=new amp$validator$TagSpec("NOSCRIPT");tagspec_201.disallowedAncestor=["NOSCRIPT"];tagspec_201.mandatoryAncestor="BODY";tagspec_201.htmlFormat=["AMP"];var tagspec_202=new amp$validator$TagSpec("ACRONYM");tagspec_202.htmlFormat=["AMP"];var tagspec_203=new amp$validator$TagSpec("BIG");tagspec_203.htmlFormat= +["AMP"];var tagspec_204=new amp$validator$TagSpec("CENTER");tagspec_204.htmlFormat=["AMP"];var tagspec_205=new amp$validator$TagSpec("DIR");tagspec_205.htmlFormat=["AMP"];var tagspec_206=new amp$validator$TagSpec("HGROUP");tagspec_206.htmlFormat=["AMP"];var tagspec_207=new amp$validator$TagSpec("LISTING");tagspec_207.htmlFormat=["AMP"];var tagspec_208=new amp$validator$TagSpec("MULTICOL");tagspec_208.htmlFormat=["AMP"];var tagspec_209=new amp$validator$TagSpec("NEXTID");tagspec_209.htmlFormat=["AMP"]; +var tagspec_210=new amp$validator$TagSpec("NOBR");tagspec_210.htmlFormat=["AMP"];var tagspec_211=new amp$validator$TagSpec("SPACER");tagspec_211.htmlFormat=["AMP"];var tagspec_212=new amp$validator$TagSpec("STRIKE");tagspec_212.htmlFormat=["AMP"];var tagspec_213=new amp$validator$TagSpec("TT");tagspec_213.htmlFormat=["AMP"];var tagspec_214=new amp$validator$TagSpec("XMP");tagspec_214.htmlFormat=["AMP"];var tagspec_215=new amp$validator$TagSpec("SLOT");tagspec_215.amp_validator_TagSpec$attrs=[-25]; +tagspec_215.htmlFormat=["AMP"];var tagspec_216=new amp$validator$TagSpec("O:P");tagspec_216.htmlFormat=["AMP"];var amplayout_0=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM INTRINSIC NODISPLAY RESPONSIVE".split(" ")),tagspec_217=new amp$validator$TagSpec("AMP-IMG");tagspec_217.amp_validator_TagSpec$attrs=[-29,-217,-165,-218,-219,-42,-220];tagspec_217.amp_validator_TagSpec$attrLists=[13,12];tagspec_217.specUrl="https://www.ampproject.org/docs/reference/components/amp-img";tagspec_217.ampLayout= +amplayout_0;tagspec_217.htmlFormat=["AMP","AMP4ADS"];var tagspec_218=new amp$validator$TagSpec("AMP-LAYOUT");tagspec_218.amp_validator_TagSpec$attrLists=[13];tagspec_218.specUrl="https://www.ampproject.org/docs/reference/components/amp-layout";tagspec_218.ampLayout=amplayout_0;tagspec_218.htmlFormat=["AMP","AMP4ADS"];var amplayout_1=new amp$validator$AmpLayout(["FIXED","NODISPLAY"]);amplayout_1.definesDefaultWidth=!0;amplayout_1.definesDefaultHeight=!0;var tagspec_219=new amp$validator$TagSpec("AMP-PIXEL"); +tagspec_219.amp_validator_TagSpec$attrs=[-221,99,100];tagspec_219.amp_validator_TagSpec$attrLists=[13];tagspec_219.specUrl="https://www.ampproject.org/docs/reference/components/amp-pixel";tagspec_219.ampLayout=amplayout_1;tagspec_219.htmlFormat=["AMP","AMP4ADS"];var extensionspec_0=new amp$validator$ExtensionSpec;extensionspec_0.name="amp-3q-player";extensionspec_0.allowedVersions=["0.1","latest"];var tagspec_220=new amp$validator$TagSpec("SCRIPT");tagspec_220.amp_validator_TagSpec$attrLists=[15]; +tagspec_220.htmlFormat=["AMP"];tagspec_220.extensionSpec=extensionspec_0;var amplayout_2=new amp$validator$AmpLayout(["FILL","FIXED","FLEX_ITEM","RESPONSIVE"]),tagspec_221=new amp$validator$TagSpec("AMP-3Q-PLAYER");tagspec_221.amp_validator_TagSpec$attrs=[101,102];tagspec_221.amp_validator_TagSpec$attrLists=[13];tagspec_221.ampLayout=amplayout_2;tagspec_221.htmlFormat=["AMP"];tagspec_221.requiresExtension=["amp-3q-player"];var extensionspec_1=new amp$validator$ExtensionSpec;extensionspec_1.name="amp-access-laterpay"; +extensionspec_1.allowedVersions=["0.1","latest"];extensionspec_1.requiresUsage="NONE";var tagspec_222=new amp$validator$TagSpec("SCRIPT");tagspec_222.amp_validator_TagSpec$attrLists=[15];tagspec_222.htmlFormat=["AMP"];tagspec_222.extensionSpec=extensionspec_1;tagspec_222.requiresExtension=["amp-access"];var extensionspec_2=new amp$validator$ExtensionSpec;extensionspec_2.name="amp-access";extensionspec_2.allowedVersions=["0.1","latest"];extensionspec_2.deprecatedAllowDuplicates=!0;extensionspec_2.requiresUsage= +"GRANDFATHERED";var tagspec_223=new amp$validator$TagSpec("SCRIPT");tagspec_223.amp_validator_TagSpec$attrLists=[15];tagspec_223.htmlFormat=["AMP"];tagspec_223.extensionSpec=extensionspec_2;var tagspec_224=new amp$validator$TagSpec("SCRIPT");tagspec_224.specName="amp-access extension .json script";tagspec_224.unique=!0;tagspec_224.mandatoryParent="HEAD";tagspec_224.amp_validator_TagSpec$attrs=[103,-12,96];tagspec_224.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_224.htmlFormat=["AMP"];tagspec_224.requiresExtension= +["amp-access","amp-analytics"];var extensionspec_3=new amp$validator$ExtensionSpec;extensionspec_3.name="amp-accordion";extensionspec_3.allowedVersions=["0.1","latest"];extensionspec_3.deprecatedAllowDuplicates=!0;extensionspec_3.requiresUsage="GRANDFATHERED";var tagspec_225=new amp$validator$TagSpec("SCRIPT");tagspec_225.amp_validator_TagSpec$attrLists=[15];tagspec_225.extensionSpec=extensionspec_3;var amplayout_3=new amp$validator$AmpLayout(["CONTAINER"]),childtagspec_0=new amp$validator$ChildTagSpec; +childtagspec_0.childTagNameOneof=["SECTION"];var tagspec_226=new amp$validator$TagSpec("AMP-ACCORDION");tagspec_226.amp_validator_TagSpec$attrs=[104];tagspec_226.specUrl="https://www.ampproject.org/docs/reference/components/amp-accordion";tagspec_226.ampLayout=amplayout_3;tagspec_226.childTags=childtagspec_0;tagspec_226.requiresExtension=["amp-accordion"];var childtagspec_1=new amp$validator$ChildTagSpec;childtagspec_1.mandatoryNumChildTags=2;childtagspec_1.firstChildTagNameOneof="H1 H2 H3 H4 H5 H6 HEADER".split(" "); +var tagspec_227=new amp$validator$TagSpec("SECTION");tagspec_227.specName="amp-accordion > section";tagspec_227.mandatoryParent="AMP-ACCORDION";tagspec_227.amp_validator_TagSpec$attrs=[105];tagspec_227.childTags=childtagspec_1;var extensionspec_4=new amp$validator$ExtensionSpec;extensionspec_4.name="amp-ad-exit";extensionspec_4.allowedVersions=["0.1","latest"];var tagspec_228=new amp$validator$TagSpec("SCRIPT");tagspec_228.amp_validator_TagSpec$attrLists=[15];tagspec_228.htmlFormat=["AMP4ADS"];tagspec_228.extensionSpec= +extensionspec_4;var tagspec_229=new amp$validator$TagSpec("AMP-AD-EXIT");tagspec_229.amp_validator_TagSpec$attrs=[106];tagspec_229.amp_validator_TagSpec$attrLists=[13];tagspec_229.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad-exit";tagspec_229.htmlFormat=["AMP4ADS"];tagspec_229.requires=[-222];tagspec_229.requiresExtension=["amp-ad-exit"];var tagspec_230=new amp$validator$TagSpec("SCRIPT");tagspec_230.specName="amp-ad-exit configuration JSON";tagspec_230.mandatoryParent="AMP-AD-EXIT"; +tagspec_230.amp_validator_TagSpec$attrs=[-12,107];tagspec_230.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad-exit";tagspec_230.htmlFormat=["AMP4ADS"];tagspec_230.satisfies=[-222];tagspec_230.requiresExtension=["amp-ad-exit"];var extensionspec_5=new amp$validator$ExtensionSpec;extensionspec_5.name="amp-ad";extensionspec_5.allowedVersions=["0.1","latest"];extensionspec_5.deprecatedAllowDuplicates=!0;extensionspec_5.requiresUsage="GRANDFATHERED";var tagspec_231=new amp$validator$TagSpec("SCRIPT"); +tagspec_231.specName="amp-ad extension .js script";tagspec_231.amp_validator_TagSpec$attrLists=[15];tagspec_231.htmlFormat=["AMP"];tagspec_231.extensionSpec=extensionspec_5;var amplayout_4=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM FLUID INTRINSIC NODISPLAY RESPONSIVE".split(" ")),tagspec_232=new amp$validator$TagSpec("AMP-AD");tagspec_232.amp_validator_TagSpec$attrs=[-29,-223,-224,69,71];tagspec_232.amp_validator_TagSpec$attrLists=[13];tagspec_232.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad"; +tagspec_232.ampLayout=amplayout_4;tagspec_232.disallowedAncestor=["AMP-APP-BANNER"];tagspec_232.htmlFormat=["AMP"];tagspec_232.alsoRequiresTagWarning=[231];tagspec_232.requiresExtension=["amp-ad"];var tagspec_233=new amp$validator$TagSpec("AMP-AD");tagspec_233.specName="amp-ad with data-multi-size attribute";tagspec_233.amp_validator_TagSpec$attrs=[-29,108,-223,-224,69,71];tagspec_233.amp_validator_TagSpec$attrLists=[13];tagspec_233.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad"; +tagspec_233.ampLayout=amplayout_4;tagspec_233.disallowedAncestor=["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"];tagspec_233.htmlFormat=["AMP"];tagspec_233.alsoRequiresTagWarning=[231];tagspec_233.requiresExtension=["amp-ad"];var tagspec_234=new amp$validator$TagSpec("AMP-AD");tagspec_234.specName="amp-ad with data-enable-refresh attribute";tagspec_234.amp_validator_TagSpec$attrs=[-29,109,-223,69,71];tagspec_234.amp_validator_TagSpec$attrLists=[13];tagspec_234.specUrl= +"https://www.ampproject.org/docs/reference/components/amp-ad";tagspec_234.ampLayout=amplayout_4;tagspec_234.disallowedAncestor=["AMP-APP-BANNER","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX"];tagspec_234.htmlFormat=["AMP"];tagspec_234.alsoRequiresTagWarning=[231];tagspec_234.requiresExtension=["amp-ad"];var tagspec_235=new amp$validator$TagSpec("AMP-EMBED");tagspec_235.amp_validator_TagSpec$attrs=[-29,-223,-224,69,71];tagspec_235.amp_validator_TagSpec$attrLists=[13];tagspec_235.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad"; +tagspec_235.ampLayout=amplayout_4;tagspec_235.disallowedAncestor=["AMP-APP-BANNER"];tagspec_235.htmlFormat=["AMP"];tagspec_235.alsoRequiresTagWarning=[231];tagspec_235.requiresExtension=["amp-ad"];var tagspec_236=new amp$validator$TagSpec("AMP-EMBED");tagspec_236.specName="amp-embed with data-multi-size attribute";tagspec_236.amp_validator_TagSpec$attrs=[-29,108,-223,-224,69,71];tagspec_236.amp_validator_TagSpec$attrLists=[13];tagspec_236.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad"; +tagspec_236.ampLayout=amplayout_4;tagspec_236.disallowedAncestor=["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"];tagspec_236.htmlFormat=["AMP"];tagspec_236.alsoRequiresTagWarning=[231];tagspec_236.requiresExtension=["amp-ad"];var extensionspec_6=new amp$validator$ExtensionSpec;extensionspec_6.name="amp-analytics";extensionspec_6.allowedVersions=["0.1","latest"];extensionspec_6.deprecatedAllowDuplicates=!0;extensionspec_6.requiresUsage="GRANDFATHERED";var tagspec_237= +new amp$validator$TagSpec("SCRIPT");tagspec_237.amp_validator_TagSpec$attrLists=[15];tagspec_237.htmlFormat=["AMP","AMP4ADS"];tagspec_237.extensionSpec=extensionspec_6;var tagspec_238=new amp$validator$TagSpec("SCRIPT");tagspec_238.specName="amp-analytics extension .json script";tagspec_238.mandatoryParent="AMP-ANALYTICS";tagspec_238.amp_validator_TagSpec$attrs=[-12,98];tagspec_238.specUrl="https://www.ampproject.org/docs/reference/components/amp-analytics";tagspec_238.amp_validator_TagSpec$cdata= +cdataspec_9;tagspec_238.htmlFormat=["AMP","AMP4ADS"];tagspec_238.requiresExtension=["amp-analytics"];var tagspec_239=new amp$validator$TagSpec("AMP-ANALYTICS");tagspec_239.amp_validator_TagSpec$attrs=[-3,110];tagspec_239.specUrl="https://www.ampproject.org/docs/reference/components/amp-analytics";tagspec_239.htmlFormat=["AMP","AMP4ADS"];tagspec_239.requiresExtension=["amp-analytics"];var extensionspec_7=new amp$validator$ExtensionSpec;extensionspec_7.name="amp-anim";extensionspec_7.allowedVersions= +["0.1","latest"];extensionspec_7.deprecatedAllowDuplicates=!0;extensionspec_7.requiresUsage="GRANDFATHERED";var tagspec_240=new amp$validator$TagSpec("SCRIPT");tagspec_240.amp_validator_TagSpec$attrLists=[15];tagspec_240.htmlFormat=["AMP","AMP4ADS"];tagspec_240.extensionSpec=extensionspec_7;var tagspec_241=new amp$validator$TagSpec("AMP-ANIM");tagspec_241.amp_validator_TagSpec$attrs=[-29,-217,-36];tagspec_241.amp_validator_TagSpec$attrLists=[13,12];tagspec_241.specUrl="https://www.ampproject.org/docs/reference/components/amp-anim"; +tagspec_241.ampLayout=amplayout_0;tagspec_241.htmlFormat=["AMP","AMP4ADS"];tagspec_241.requiresExtension=["amp-anim"];var extensionspec_8=new amp$validator$ExtensionSpec;extensionspec_8.name="amp-animation";extensionspec_8.allowedVersions=["0.1","latest"];var tagspec_242=new amp$validator$TagSpec("SCRIPT");tagspec_242.amp_validator_TagSpec$attrLists=[15];tagspec_242.htmlFormat=["AMP","AMP4ADS"];tagspec_242.extensionSpec=extensionspec_8;var tagspec_243=new amp$validator$TagSpec("SCRIPT");tagspec_243.specName= +"amp-animation extension .json script";tagspec_243.mandatoryParent="AMP-ANIMATION";tagspec_243.amp_validator_TagSpec$attrs=[-12,98];tagspec_243.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_243.satisfies=[-225];tagspec_243.requiresExtension=["amp-animation"];var amplayout_5=new amp$validator$AmpLayout(["NODISPLAY"]),childtagspec_2=new amp$validator$ChildTagSpec;childtagspec_2.mandatoryNumChildTags=1;childtagspec_2.childTagNameOneof=["SCRIPT"];var tagspec_244=new amp$validator$TagSpec("AMP-ANIMATION"); +tagspec_244.amp_validator_TagSpec$attrs=[111];tagspec_244.amp_validator_TagSpec$attrLists=[13];tagspec_244.ampLayout=amplayout_5;tagspec_244.childTags=childtagspec_2;tagspec_244.htmlFormat=["AMP","AMP4ADS"];tagspec_244.requires=[-225];tagspec_244.requiresExtension=["amp-animation"];var extensionspec_9=new amp$validator$ExtensionSpec;extensionspec_9.name="amp-apester-media";extensionspec_9.allowedVersions=["0.1","latest"];extensionspec_9.deprecatedAllowDuplicates=!0;extensionspec_9.requiresUsage="GRANDFATHERED"; +var tagspec_245=new amp$validator$TagSpec("SCRIPT");tagspec_245.amp_validator_TagSpec$attrLists=[15];tagspec_245.htmlFormat=["AMP"];tagspec_245.extensionSpec=extensionspec_9;var amplayout_6=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),tagspec_246=new amp$validator$TagSpec("AMP-APESTER-MEDIA");tagspec_246.amp_validator_TagSpec$attrs=[112,113];tagspec_246.amp_validator_TagSpec$attrLists=[13];tagspec_246.specUrl="https://www.ampproject.org/docs/reference/components/amp-apester-media"; +tagspec_246.ampLayout=amplayout_6;tagspec_246.htmlFormat=["AMP"];tagspec_246.requiresExtension=["amp-apester-media"];var extensionspec_10=new amp$validator$ExtensionSpec;extensionspec_10.name="amp-app-banner";extensionspec_10.allowedVersions=["0.1","latest"];extensionspec_10.deprecatedAllowDuplicates=!0;var tagspec_247=new amp$validator$TagSpec("SCRIPT");tagspec_247.amp_validator_TagSpec$attrLists=[15];tagspec_247.htmlFormat=["AMP"];tagspec_247.extensionSpec=extensionspec_10;var tagspec_248=new amp$validator$TagSpec("AMP-APP-BANNER"); +tagspec_248.unique=!0;tagspec_248.mandatoryParent="BODY";tagspec_248.amp_validator_TagSpec$attrs=[106];tagspec_248.amp_validator_TagSpec$attrLists=[13];tagspec_248.specUrl="https://www.ampproject.org/docs/reference/components/amp-app-banner";tagspec_248.ampLayout=amplayout_5;tagspec_248.htmlFormat=["AMP"];tagspec_248.requires=[-4,-196];tagspec_248.requiresExtension=["amp-app-banner"];var extensionspec_11=new amp$validator$ExtensionSpec;extensionspec_11.name="amp-audio";extensionspec_11.allowedVersions= +["0.1","latest"];extensionspec_11.deprecatedAllowDuplicates=!0;extensionspec_11.requiresUsage="GRANDFATHERED";var tagspec_249=new amp$validator$TagSpec("SCRIPT");tagspec_249.amp_validator_TagSpec$attrLists=[15];tagspec_249.extensionSpec=extensionspec_11;var amplayout_7=new amp$validator$AmpLayout(["FIXED","FIXED_HEIGHT","NODISPLAY"]);amplayout_7.definesDefaultWidth=!0;amplayout_7.definesDefaultHeight=!0;var tagspec_250=new amp$validator$TagSpec("AMP-AUDIO");tagspec_250.amp_validator_TagSpec$attrs= +[101];tagspec_250.amp_validator_TagSpec$attrLists=[17,13];tagspec_250.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_250.ampLayout=amplayout_7;tagspec_250.disallowedAncestor=["AMP-STORY"];tagspec_250.htmlFormat=["AMP"];tagspec_250.requiresExtension=["amp-audio"];var tagspec_251=new amp$validator$TagSpec("AMP-AUDIO");tagspec_251.specName="amp-story >> amp-audio";tagspec_251.amp_validator_TagSpec$attrs=[114];tagspec_251.amp_validator_TagSpec$attrLists=[17,13];tagspec_251.specUrl= +"https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_251.ampLayout=amplayout_7;tagspec_251.mandatoryAncestor="AMP-STORY";tagspec_251.htmlFormat=["AMP"];tagspec_251.requiresExtension=["amp-audio"];var tagspec_252=new amp$validator$TagSpec("AMP-AUDIO");tagspec_252.specName="amp-audio (A4A)";tagspec_252.amp_validator_TagSpec$attrLists=[17,13];tagspec_252.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_252.ampLayout=amplayout_7;tagspec_252.htmlFormat= +["AMP4ADS"];tagspec_252.requiresExtension=["amp-audio"];var extensionspec_12=new amp$validator$ExtensionSpec;extensionspec_12.name="amp-auto-ads";extensionspec_12.allowedVersions=["0.1","latest"];var tagspec_253=new amp$validator$TagSpec("SCRIPT");tagspec_253.amp_validator_TagSpec$attrLists=[15];tagspec_253.htmlFormat=["AMP"];tagspec_253.extensionSpec=extensionspec_12;var tagspec_254=new amp$validator$TagSpec("AMP-AUTO-ADS");tagspec_254.mandatoryParent="BODY";tagspec_254.amp_validator_TagSpec$attrs= +[71];tagspec_254.amp_validator_TagSpec$attrLists=[13];tagspec_254.specUrl="https://www.ampproject.org/docs/reference/components/amp-auto-ads";tagspec_254.htmlFormat=["AMP"];tagspec_254.requiresExtension=["amp-auto-ads"];var extensionspec_13=new amp$validator$ExtensionSpec;extensionspec_13.name="amp-bind";extensionspec_13.allowedVersions=["0.1","latest"];extensionspec_13.requiresUsage="NONE";var tagspec_255=new amp$validator$TagSpec("SCRIPT");tagspec_255.amp_validator_TagSpec$attrLists=[15];tagspec_255.htmlFormat= +["AMP"];tagspec_255.extensionSpec=extensionspec_13;var tagspec_256=new amp$validator$TagSpec("SCRIPT");tagspec_256.specName="amp-bind extension .json script";tagspec_256.mandatoryParent="AMP-STATE";tagspec_256.amp_validator_TagSpec$attrs=[-12,98];tagspec_256.specUrl="https://www.ampproject.org/docs/reference/components/amp-bind";tagspec_256.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_256.htmlFormat=["AMP"];tagspec_256.requiresExtension=["amp-bind"];var childtagspec_3=new amp$validator$ChildTagSpec; +childtagspec_3.firstChildTagNameOneof=["SCRIPT"];var tagspec_257=new amp$validator$TagSpec("AMP-STATE");tagspec_257.specName="amp-state";tagspec_257.amp_validator_TagSpec$attrs=[115,106,69,-42];tagspec_257.specUrl="https://www.ampproject.org/docs/reference/components/amp-bind";tagspec_257.childTags=childtagspec_3;tagspec_257.htmlFormat=["AMP"];tagspec_257.requiresExtension=["amp-bind"];var tagspec_258=new amp$validator$TagSpec("AMP-BIND-MACRO");tagspec_258.amp_validator_TagSpec$attrs=[-226,116,106]; +tagspec_258.specUrl="https://www.ampproject.org/docs/reference/components/amp-bind";tagspec_258.htmlFormat=["AMP"];tagspec_258.requiresExtension=["amp-bind"];var extensionspec_14=new amp$validator$ExtensionSpec;extensionspec_14.name="amp-brid-player";extensionspec_14.allowedVersions=["0.1","latest"];extensionspec_14.deprecatedAllowDuplicates=!0;extensionspec_14.requiresUsage="GRANDFATHERED";var tagspec_259=new amp$validator$TagSpec("SCRIPT");tagspec_259.amp_validator_TagSpec$attrLists=[15];tagspec_259.htmlFormat= +["AMP"];tagspec_259.extensionSpec=extensionspec_14;var tagspec_260=new amp$validator$TagSpec("AMP-BRID-PLAYER");tagspec_260.amp_validator_TagSpec$attrs=[-35,117,118,119,120,121];tagspec_260.amp_validator_TagSpec$attrLists=[13];tagspec_260.specUrl="https://www.ampproject.org/docs/reference/components/amp-brid-player";tagspec_260.ampLayout=amplayout_6;tagspec_260.htmlFormat=["AMP"];tagspec_260.requiresExtension=["amp-brid-player"];var extensionspec_15=new amp$validator$ExtensionSpec;extensionspec_15.name= +"amp-brightcove";extensionspec_15.allowedVersions=["0.1","latest"];extensionspec_15.deprecatedAllowDuplicates=!0;extensionspec_15.requiresUsage="GRANDFATHERED";var tagspec_261=new amp$validator$TagSpec("SCRIPT");tagspec_261.amp_validator_TagSpec$attrLists=[15];tagspec_261.htmlFormat=["AMP"];tagspec_261.extensionSpec=extensionspec_15;var tagspec_262=new amp$validator$TagSpec("AMP-BRIGHTCOVE");tagspec_262.amp_validator_TagSpec$attrs=[122,-227,-228,-229,-230,-231,-232];tagspec_262.amp_validator_TagSpec$attrLists= +[13];tagspec_262.specUrl="https://www.ampproject.org/docs/reference/components/amp-brightcove";tagspec_262.ampLayout=amplayout_6;tagspec_262.htmlFormat=["AMP"];tagspec_262.requiresExtension=["amp-brightcove"];var extensionspec_16=new amp$validator$ExtensionSpec;extensionspec_16.name="amp-call-tracking";extensionspec_16.allowedVersions=["0.1","latest"];extensionspec_16.requiresUsage="GRANDFATHERED";var tagspec_263=new amp$validator$TagSpec("SCRIPT");tagspec_263.amp_validator_TagSpec$attrLists=[15]; +tagspec_263.htmlFormat=["AMP"];tagspec_263.extensionSpec=extensionspec_16;var amplayout_8=new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM RESPONSIVE".split(" ")),childtagspec_4=new amp$validator$ChildTagSpec;childtagspec_4.mandatoryNumChildTags=1;childtagspec_4.childTagNameOneof=["A"];var tagspec_264=new amp$validator$TagSpec("AMP-CALL-TRACKING");tagspec_264.amp_validator_TagSpec$attrs=[123];tagspec_264.amp_validator_TagSpec$attrLists=[13];tagspec_264.specUrl="https://www.ampproject.org/docs/reference/components/amp-call-tracking"; +tagspec_264.ampLayout=amplayout_8;tagspec_264.childTags=childtagspec_4;tagspec_264.htmlFormat=["AMP"];tagspec_264.requiresExtension=["amp-call-tracking"];var extensionspec_17=new amp$validator$ExtensionSpec;extensionspec_17.name="amp-carousel";extensionspec_17.allowedVersions=["0.1","latest"];extensionspec_17.deprecatedAllowDuplicates=!0;extensionspec_17.requiresUsage="GRANDFATHERED";var tagspec_265=new amp$validator$TagSpec("SCRIPT");tagspec_265.amp_validator_TagSpec$attrLists=[15];tagspec_265.extensionSpec= +extensionspec_17;var tagspec_266=new amp$validator$TagSpec("AMP-CAROUSEL");tagspec_266.amp_validator_TagSpec$attrs=[124,101,-36,125,126,127,128,-233];tagspec_266.amp_validator_TagSpec$attrLists=[13];tagspec_266.specUrl="https://www.ampproject.org/docs/reference/components/amp-carousel";tagspec_266.ampLayout=amplayout_0;tagspec_266.requiresExtension=["amp-carousel"];var extensionspec_18=new amp$validator$ExtensionSpec;extensionspec_18.name="amp-dailymotion";extensionspec_18.allowedVersions=["0.1", +"latest"];extensionspec_18.deprecatedAllowDuplicates=!0;extensionspec_18.requiresUsage="GRANDFATHERED";var tagspec_267=new amp$validator$TagSpec("SCRIPT");tagspec_267.amp_validator_TagSpec$attrLists=[15];tagspec_267.htmlFormat=["AMP"];tagspec_267.extensionSpec=extensionspec_18;var amplayout_9=new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT","FLEX_ITEM","RESPONSIVE"]),tagspec_268=new amp$validator$TagSpec("AMP-DAILYMOTION");tagspec_268.amp_validator_TagSpec$attrs=[-35,129,130,131,132,133, +134,135,136];tagspec_268.amp_validator_TagSpec$attrLists=[13];tagspec_268.specUrl="https://www.ampproject.org/docs/reference/components/amp-dailymotion";tagspec_268.ampLayout=amplayout_9;tagspec_268.htmlFormat=["AMP"];tagspec_268.requiresExtension=["amp-dailymotion"];var extensionspec_19=new amp$validator$ExtensionSpec;extensionspec_19.name="amp-dynamic-css-classes";extensionspec_19.allowedVersions=["0.1","latest"];extensionspec_19.deprecatedAllowDuplicates=!0;extensionspec_19.requiresUsage="NONE"; +var tagspec_269=new amp$validator$TagSpec("SCRIPT");tagspec_269.amp_validator_TagSpec$attrLists=[15];tagspec_269.htmlFormat=["AMP"];tagspec_269.extensionSpec=extensionspec_19;var extensionspec_20=new amp$validator$ExtensionSpec;extensionspec_20.name="amp-experiment";extensionspec_20.allowedVersions=["0.1","latest"];extensionspec_20.deprecatedAllowDuplicates=!0;extensionspec_20.requiresUsage="GRANDFATHERED";var tagspec_270=new amp$validator$TagSpec("SCRIPT");tagspec_270.amp_validator_TagSpec$attrLists= +[15];tagspec_270.htmlFormat=["AMP"];tagspec_270.extensionSpec=extensionspec_20;var tagspec_271=new amp$validator$TagSpec("SCRIPT");tagspec_271.specName="amp-experiment extension .json script";tagspec_271.mandatoryParent="AMP-EXPERIMENT";tagspec_271.amp_validator_TagSpec$attrs=[-12,98];tagspec_271.specUrl="https://www.ampproject.org/docs/reference/components/amp-experiment";tagspec_271.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_271.htmlFormat=["AMP"];var tagspec_272=new amp$validator$TagSpec("AMP-EXPERIMENT"); +tagspec_272.unique=!0;tagspec_272.specUrl="https://www.ampproject.org/docs/reference/components/amp-experiment";tagspec_272.htmlFormat=["AMP"];tagspec_272.requiresExtension=["amp-experiment"];var extensionspec_21=new amp$validator$ExtensionSpec;extensionspec_21.name="amp-facebook-comments";extensionspec_21.allowedVersions=["0.1","latest"];var tagspec_273=new amp$validator$TagSpec("SCRIPT");tagspec_273.amp_validator_TagSpec$attrLists=[15];tagspec_273.htmlFormat=["AMP"];tagspec_273.extensionSpec=extensionspec_21; +var tagspec_274=new amp$validator$TagSpec("AMP-FACEBOOK-COMMENTS");tagspec_274.amp_validator_TagSpec$attrs=[137];tagspec_274.amp_validator_TagSpec$attrLists=[13];tagspec_274.ampLayout=amplayout_6;tagspec_274.htmlFormat=["AMP"];tagspec_274.requiresExtension=["amp-facebook-comments"];var extensionspec_22=new amp$validator$ExtensionSpec;extensionspec_22.name="amp-facebook-like";extensionspec_22.allowedVersions=["0.1","latest"];var tagspec_275=new amp$validator$TagSpec("SCRIPT");tagspec_275.amp_validator_TagSpec$attrLists= +[15];tagspec_275.htmlFormat=["AMP"];tagspec_275.extensionSpec=extensionspec_22;var tagspec_276=new amp$validator$TagSpec("AMP-FACEBOOK-LIKE");tagspec_276.amp_validator_TagSpec$attrs=[138];tagspec_276.amp_validator_TagSpec$attrLists=[13];tagspec_276.ampLayout=amplayout_6;tagspec_276.htmlFormat=["AMP"];tagspec_276.requiresExtension=["amp-facebook-like"];var extensionspec_23=new amp$validator$ExtensionSpec;extensionspec_23.name="amp-facebook";extensionspec_23.allowedVersions=["0.1","latest"];extensionspec_23.deprecatedAllowDuplicates= +!0;extensionspec_23.requiresUsage="GRANDFATHERED";var tagspec_277=new amp$validator$TagSpec("SCRIPT");tagspec_277.amp_validator_TagSpec$attrLists=[15];tagspec_277.htmlFormat=["AMP"];tagspec_277.extensionSpec=extensionspec_23;var tagspec_278=new amp$validator$TagSpec("AMP-FACEBOOK");tagspec_278.amp_validator_TagSpec$attrs=[137];tagspec_278.amp_validator_TagSpec$attrLists=[13];tagspec_278.ampLayout=amplayout_6;tagspec_278.htmlFormat=["AMP"];tagspec_278.requiresExtension=["amp-facebook"];var extensionspec_24= +new amp$validator$ExtensionSpec;extensionspec_24.name="amp-fit-text";extensionspec_24.allowedVersions=["0.1","latest"];extensionspec_24.deprecatedAllowDuplicates=!0;extensionspec_24.requiresUsage="GRANDFATHERED";var tagspec_279=new amp$validator$TagSpec("SCRIPT");tagspec_279.amp_validator_TagSpec$attrLists=[15];tagspec_279.extensionSpec=extensionspec_24;var tagspec_280=new amp$validator$TagSpec("AMP-FIT-TEXT");tagspec_280.amp_validator_TagSpec$attrs=[-234,-235];tagspec_280.amp_validator_TagSpec$attrLists= +[13];tagspec_280.ampLayout=amplayout_0;tagspec_280.requiresExtension=["amp-fit-text"];var extensionspec_25=new amp$validator$ExtensionSpec;extensionspec_25.name="amp-font";extensionspec_25.allowedVersions=["0.1","latest"];extensionspec_25.deprecatedAllowDuplicates=!0;extensionspec_25.requiresUsage="GRANDFATHERED";var tagspec_281=new amp$validator$TagSpec("SCRIPT");tagspec_281.amp_validator_TagSpec$attrLists=[15];tagspec_281.htmlFormat=["AMP","AMP4ADS"];tagspec_281.extensionSpec=extensionspec_25;var tagspec_282= +new amp$validator$TagSpec("AMP-FONT");tagspec_282.amp_validator_TagSpec$attrs=[139,-236,-237,140,-238,-239,-240,-241,-242];tagspec_282.amp_validator_TagSpec$attrLists=[13];tagspec_282.ampLayout=amplayout_5;tagspec_282.htmlFormat=["AMP","AMP4ADS"];tagspec_282.requiresExtension=["amp-font"];var extensionspec_26=new amp$validator$ExtensionSpec;extensionspec_26.name="amp-form";extensionspec_26.allowedVersions=["0.1","latest"];extensionspec_26.deprecatedAllowDuplicates=!0;extensionspec_26.requiresUsage= +"GRANDFATHERED";var tagspec_283=new amp$validator$TagSpec("SCRIPT");tagspec_283.amp_validator_TagSpec$attrLists=[15];tagspec_283.extensionSpec=extensionspec_26;var extensionspec_27=new amp$validator$ExtensionSpec;extensionspec_27.name="amp-fx-flying-carpet";extensionspec_27.allowedVersions=["0.1","latest"];extensionspec_27.deprecatedAllowDuplicates=!0;extensionspec_27.requiresUsage="GRANDFATHERED";var tagspec_284=new amp$validator$TagSpec("SCRIPT");tagspec_284.amp_validator_TagSpec$attrLists=[15]; +tagspec_284.htmlFormat=["AMP"];tagspec_284.extensionSpec=extensionspec_27;var tagspec_285=new amp$validator$TagSpec("AMP-FX-FLYING-CARPET");tagspec_285.amp_validator_TagSpec$attrs=[141];tagspec_285.amp_validator_TagSpec$attrLists=[13];tagspec_285.htmlFormat=["AMP"];tagspec_285.requiresExtension=["amp-fx-flying-carpet"];var extensionspec_28=new amp$validator$ExtensionSpec;extensionspec_28.name="amp-gfycat";extensionspec_28.allowedVersions=["0.1","latest"];extensionspec_28.deprecatedAllowDuplicates= +!0;extensionspec_28.requiresUsage="GRANDFATHERED";var tagspec_286=new amp$validator$TagSpec("SCRIPT");tagspec_286.amp_validator_TagSpec$attrLists=[15];tagspec_286.htmlFormat=["AMP"];tagspec_286.extensionSpec=extensionspec_28;var tagspec_287=new amp$validator$TagSpec("AMP-GFYCAT");tagspec_287.amp_validator_TagSpec$attrs=[142,143];tagspec_287.amp_validator_TagSpec$attrLists=[13];tagspec_287.specUrl="https://www.ampproject.org/docs/reference/components/amp-gfycat";tagspec_287.ampLayout=amplayout_9;tagspec_287.htmlFormat= +["AMP"];tagspec_287.requiresExtension=["amp-gfycat"];var extensionspec_29=new amp$validator$ExtensionSpec;extensionspec_29.name="amp-gist";extensionspec_29.allowedVersions=["0.1","latest"];var tagspec_288=new amp$validator$TagSpec("SCRIPT");tagspec_288.amp_validator_TagSpec$attrLists=[15];tagspec_288.htmlFormat=["AMP"];tagspec_288.extensionSpec=extensionspec_29;var amplayout_10=new amp$validator$AmpLayout(["FIXED_HEIGHT"]),tagspec_289=new amp$validator$TagSpec("AMP-GIST");tagspec_289.amp_validator_TagSpec$attrs= +[144];tagspec_289.amp_validator_TagSpec$attrLists=[13];tagspec_289.specUrl="https://www.ampproject.org/docs/reference/components/amp-gist";tagspec_289.ampLayout=amplayout_10;tagspec_289.htmlFormat=["AMP"];tagspec_289.requiresExtension=["amp-gist"];var extensionspec_30=new amp$validator$ExtensionSpec;extensionspec_30.name="amp-gwd-animation";extensionspec_30.allowedVersions=["0.1","latest"];var tagspec_290=new amp$validator$TagSpec("SCRIPT");tagspec_290.amp_validator_TagSpec$attrLists=[15];tagspec_290.htmlFormat= +["AMP4ADS"];tagspec_290.extensionSpec=extensionspec_30;var tagspec_291=new amp$validator$TagSpec("AMP-GWD-ANIMATION");tagspec_291.amp_validator_TagSpec$attrs=[-243];tagspec_291.amp_validator_TagSpec$attrLists=[13];tagspec_291.ampLayout=amplayout_5;tagspec_291.htmlFormat=["AMP4ADS"];tagspec_291.requiresExtension=["amp-gwd-animation"];var extensionspec_31=new amp$validator$ExtensionSpec;extensionspec_31.name="amp-hulu";extensionspec_31.allowedVersions=["0.1","latest"];var tagspec_292=new amp$validator$TagSpec("SCRIPT"); +tagspec_292.amp_validator_TagSpec$attrLists=[15];tagspec_292.htmlFormat=["AMP"];tagspec_292.extensionSpec=extensionspec_31;var tagspec_293=new amp$validator$TagSpec("AMP-HULU");tagspec_293.amp_validator_TagSpec$attrs=[145];tagspec_293.amp_validator_TagSpec$attrLists=[13];tagspec_293.specUrl="https://www.ampproject.org/docs/reference/components/amp-hulu";tagspec_293.ampLayout=amplayout_9;tagspec_293.htmlFormat=["AMP"];tagspec_293.requiresExtension=["amp-hulu"];var extensionspec_32=new amp$validator$ExtensionSpec; +extensionspec_32.name="amp-iframe";extensionspec_32.allowedVersions=["0.1","latest"];extensionspec_32.deprecatedAllowDuplicates=!0;extensionspec_32.requiresUsage="GRANDFATHERED";var tagspec_294=new amp$validator$TagSpec("SCRIPT");tagspec_294.amp_validator_TagSpec$attrLists=[15];tagspec_294.htmlFormat=["AMP"];tagspec_294.extensionSpec=extensionspec_32;var tagspec_295=new amp$validator$TagSpec("AMP-IFRAME");tagspec_295.amp_validator_TagSpec$attrs=[-244,146,147,148,62,-33,63,-34,64,149,66,150];tagspec_295.amp_validator_TagSpec$attrLists= +[13];tagspec_295.ampLayout=amplayout_0;tagspec_295.htmlFormat=["AMP"];tagspec_295.requiresExtension=["amp-iframe"];var extensionspec_33=new amp$validator$ExtensionSpec;extensionspec_33.name="amp-ima-video";extensionspec_33.allowedVersions=["0.1","latest"];var tagspec_296=new amp$validator$TagSpec("SCRIPT");tagspec_296.amp_validator_TagSpec$attrLists=[15];tagspec_296.htmlFormat=["AMP"];tagspec_296.extensionSpec=extensionspec_33;var amplayout_11=new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT", +"NODISPLAY","RESPONSIVE"]),tagspec_297=new amp$validator$TagSpec("AMP-IMA-VIDEO");tagspec_297.amp_validator_TagSpec$attrs=[151,152];tagspec_297.amp_validator_TagSpec$attrLists=[13];tagspec_297.specUrl="https://www.ampproject.org/docs/reference/components/amp-ima-video";tagspec_297.ampLayout=amplayout_11;tagspec_297.htmlFormat=["AMP"];tagspec_297.requiresExtension=["amp-ima-video"];var extensionspec_34=new amp$validator$ExtensionSpec;extensionspec_34.name="amp-image-lightbox";extensionspec_34.allowedVersions= +["0.1","latest"];extensionspec_34.deprecatedAllowDuplicates=!0;extensionspec_34.requiresUsage="GRANDFATHERED";var tagspec_298=new amp$validator$TagSpec("SCRIPT");tagspec_298.amp_validator_TagSpec$attrLists=[15];tagspec_298.htmlFormat=["AMP"];tagspec_298.extensionSpec=extensionspec_34;var tagspec_299=new amp$validator$TagSpec("AMP-IMAGE-LIGHTBOX");tagspec_299.amp_validator_TagSpec$attrs=[-36];tagspec_299.amp_validator_TagSpec$attrLists=[13];tagspec_299.ampLayout=amplayout_5;tagspec_299.htmlFormat= +["AMP"];tagspec_299.requiresExtension=["amp-image-lightbox"];var extensionspec_35=new amp$validator$ExtensionSpec;extensionspec_35.name="amp-imgur";extensionspec_35.allowedVersions=["0.1","latest"];var tagspec_300=new amp$validator$TagSpec("SCRIPT");tagspec_300.amp_validator_TagSpec$attrLists=[15];tagspec_300.htmlFormat=["AMP"];tagspec_300.extensionSpec=extensionspec_35;var tagspec_301=new amp$validator$TagSpec("AMP-IMGUR");tagspec_301.amp_validator_TagSpec$attrs=[153];tagspec_301.amp_validator_TagSpec$attrLists= +[13];tagspec_301.ampLayout=amplayout_6;tagspec_301.htmlFormat=["AMP"];tagspec_301.requiresExtension=["amp-imgur"];var extensionspec_36=new amp$validator$ExtensionSpec;extensionspec_36.name="amp-instagram";extensionspec_36.allowedVersions=["0.1","latest"];extensionspec_36.deprecatedAllowDuplicates=!0;extensionspec_36.requiresUsage="GRANDFATHERED";var tagspec_302=new amp$validator$TagSpec("SCRIPT");tagspec_302.amp_validator_TagSpec$attrLists=[15];tagspec_302.htmlFormat=["AMP"];tagspec_302.extensionSpec= +extensionspec_36;var tagspec_303=new amp$validator$TagSpec("AMP-INSTAGRAM");tagspec_303.amp_validator_TagSpec$attrs=[-29,154];tagspec_303.amp_validator_TagSpec$attrLists=[13];tagspec_303.ampLayout=amplayout_6;tagspec_303.htmlFormat=["AMP"];tagspec_303.requiresExtension=["amp-instagram"];var extensionspec_37=new amp$validator$ExtensionSpec;extensionspec_37.name="amp-install-serviceworker";extensionspec_37.allowedVersions=["0.1","latest"];extensionspec_37.deprecatedAllowDuplicates=!0;extensionspec_37.requiresUsage= +"GRANDFATHERED";var tagspec_304=new amp$validator$TagSpec("SCRIPT");tagspec_304.amp_validator_TagSpec$attrLists=[15];tagspec_304.htmlFormat=["AMP"];tagspec_304.extensionSpec=extensionspec_37;var tagspec_305=new amp$validator$TagSpec("AMP-INSTALL-SERVICEWORKER");tagspec_305.amp_validator_TagSpec$attrs=[70,155];tagspec_305.ampLayout=amplayout_5;tagspec_305.htmlFormat=["AMP"];tagspec_305.requiresExtension=["amp-install-serviceworker"];var extensionspec_38=new amp$validator$ExtensionSpec;extensionspec_38.name= +"amp-izlesene";extensionspec_38.allowedVersions=["0.1","latest"];extensionspec_38.requiresUsage="GRANDFATHERED";var tagspec_306=new amp$validator$TagSpec("SCRIPT");tagspec_306.amp_validator_TagSpec$attrLists=[15];tagspec_306.htmlFormat=["AMP"];tagspec_306.extensionSpec=extensionspec_38;var tagspec_307=new amp$validator$TagSpec("AMP-IZLESENE");tagspec_307.amp_validator_TagSpec$attrs=[156];tagspec_307.amp_validator_TagSpec$attrLists=[13];tagspec_307.ampLayout=amplayout_9;tagspec_307.htmlFormat=["AMP"]; +tagspec_307.requiresExtension=["amp-izlesene"];var extensionspec_39=new amp$validator$ExtensionSpec;extensionspec_39.name="amp-jwplayer";extensionspec_39.allowedVersions=["0.1","latest"];extensionspec_39.deprecatedAllowDuplicates=!0;extensionspec_39.requiresUsage="GRANDFATHERED";var tagspec_308=new amp$validator$TagSpec("SCRIPT");tagspec_308.amp_validator_TagSpec$attrLists=[15];tagspec_308.htmlFormat=["AMP"];tagspec_308.extensionSpec=extensionspec_39;var tagspec_309=new amp$validator$TagSpec("AMP-JWPLAYER"); +tagspec_309.amp_validator_TagSpec$attrs=[157,158,159];tagspec_309.ampLayout=amplayout_6;tagspec_309.htmlFormat=["AMP"];tagspec_309.requiresExtension=["amp-jwplayer"];var extensionspec_40=new amp$validator$ExtensionSpec;extensionspec_40.name="amp-kaltura-player";extensionspec_40.allowedVersions=["0.1","latest"];extensionspec_40.deprecatedAllowDuplicates=!0;extensionspec_40.requiresUsage="GRANDFATHERED";var tagspec_310=new amp$validator$TagSpec("SCRIPT");tagspec_310.amp_validator_TagSpec$attrLists= +[15];tagspec_310.htmlFormat=["AMP"];tagspec_310.extensionSpec=extensionspec_40;var tagspec_311=new amp$validator$TagSpec("AMP-KALTURA-PLAYER");tagspec_311.amp_validator_TagSpec$attrs=[160];tagspec_311.amp_validator_TagSpec$attrLists=[13];tagspec_311.ampLayout=amplayout_6;tagspec_311.htmlFormat=["AMP"];tagspec_311.requiresExtension=["amp-kaltura-player"];var extensionspec_41=new amp$validator$ExtensionSpec;extensionspec_41.name="amp-lightbox";extensionspec_41.allowedVersions=["0.1","latest"];extensionspec_41.deprecatedAllowDuplicates= +!0;extensionspec_41.requiresUsage="GRANDFATHERED";var tagspec_312=new amp$validator$TagSpec("SCRIPT");tagspec_312.amp_validator_TagSpec$attrLists=[15];tagspec_312.htmlFormat=["AMP"];tagspec_312.extensionSpec=extensionspec_41;var tagspec_313=new amp$validator$TagSpec("AMP-LIGHTBOX");tagspec_313.amp_validator_TagSpec$attrs=[-36,-245,-246];tagspec_313.amp_validator_TagSpec$attrLists=[13];tagspec_313.ampLayout=amplayout_5;tagspec_313.htmlFormat=["AMP"];tagspec_313.requiresExtension=["amp-lightbox"];var extensionspec_42= +new amp$validator$ExtensionSpec;extensionspec_42.name="amp-list";extensionspec_42.allowedVersions=["0.1","latest"];extensionspec_42.deprecatedAllowDuplicates=!0;extensionspec_42.requiresUsage="GRANDFATHERED";var tagspec_314=new amp$validator$TagSpec("SCRIPT");tagspec_314.amp_validator_TagSpec$attrLists=[15];tagspec_314.htmlFormat=["AMP"];tagspec_314.extensionSpec=extensionspec_42;var tagspec_315=new amp$validator$TagSpec("AMP-LIST");tagspec_315.amp_validator_TagSpec$attrs=[-247,-248,-249,-250,70, +-251,-42,-252];tagspec_315.amp_validator_TagSpec$attrLists=[13];tagspec_315.ampLayout=amplayout_6;tagspec_315.htmlFormat=["AMP"];tagspec_315.requiresExtension=["amp-list"];var extensionspec_43=new amp$validator$ExtensionSpec;extensionspec_43.name="amp-live-list";extensionspec_43.allowedVersions=["0.1","latest"];extensionspec_43.requiresUsage="GRANDFATHERED";var tagspec_316=new amp$validator$TagSpec("SCRIPT");tagspec_316.mandatoryParent="HEAD";tagspec_316.amp_validator_TagSpec$attrLists=[15];tagspec_316.htmlFormat= +["AMP"];tagspec_316.uniqueWarning=!0;tagspec_316.extensionSpec=extensionspec_43;var amplayout_12=new amp$validator$AmpLayout(["CONTAINER","FIXED_HEIGHT"]),referencepoint_0=new amp$validator$ReferencePoint;referencepoint_0.tagSpecName=318;referencepoint_0.amp_validator_ReferencePoint$mandatory=!0;referencepoint_0.unique=!0;var referencepoint_1=new amp$validator$ReferencePoint;referencepoint_1.tagSpecName=319;referencepoint_1.amp_validator_ReferencePoint$mandatory=!0;referencepoint_1.unique=!0;var referencepoint_2= +new amp$validator$ReferencePoint;referencepoint_2.tagSpecName=320;referencepoint_2.unique=!0;var tagspec_317=new amp$validator$TagSpec("AMP-LIVE-LIST");tagspec_317.amp_validator_TagSpec$attrs=[161,162,89,106];tagspec_317.ampLayout=amplayout_12;tagspec_317.referencePoints=[referencepoint_0,referencepoint_1,referencepoint_2];tagspec_317.htmlFormat=["AMP"];tagspec_317.requiresExtension=["amp-live-list"];var tagspec_318=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_318.specName="AMP-LIVE-LIST [update]"; +tagspec_318.amp_validator_TagSpec$attrs=[163];tagspec_318.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#update";tagspec_318.htmlFormat=["AMP"];var referencepoint_3=new amp$validator$ReferencePoint;referencepoint_3.tagSpecName=321;var tagspec_319=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_319.specName="AMP-LIVE-LIST [items]";tagspec_319.amp_validator_TagSpec$attrs=[164];tagspec_319.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#items"; +tagspec_319.referencePoints=[referencepoint_3];tagspec_319.htmlFormat=["AMP"];var tagspec_320=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_320.specName="AMP-LIVE-LIST [pagination]";tagspec_320.amp_validator_TagSpec$attrs=[165];tagspec_320.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#pagination";tagspec_320.htmlFormat=["AMP"];var tagspec_321=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_321.specName="AMP-LIVE-LIST [items] item";tagspec_321.amp_validator_TagSpec$attrs= +[106,166,-253,-254];tagspec_321.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#items";tagspec_321.htmlFormat=["AMP"];var extensionspec_44=new amp$validator$ExtensionSpec;extensionspec_44.name="amp-mustache";extensionspec_44.allowedVersions=["0.1","latest"];extensionspec_44.isCustomTemplate=!0;extensionspec_44.deprecatedAllowDuplicates=!0;extensionspec_44.requiresUsage="GRANDFATHERED";var tagspec_322=new amp$validator$TagSpec("SCRIPT");tagspec_322.amp_validator_TagSpec$attrLists= +[15];tagspec_322.htmlFormat=["AMP"];tagspec_322.extensionSpec=extensionspec_44;var tagspec_323=new amp$validator$TagSpec("TEMPLATE");tagspec_323.amp_validator_TagSpec$attrs=[167];tagspec_323.disallowedAncestor=["TEMPLATE","FORM > DIV [submit-success][template]"];tagspec_323.requiresExtension=["amp-mustache"];var extensionspec_45=new amp$validator$ExtensionSpec;extensionspec_45.name="amp-nexxtv-player";extensionspec_45.allowedVersions=["0.1","latest"];var tagspec_324=new amp$validator$TagSpec("SCRIPT"); +tagspec_324.amp_validator_TagSpec$attrLists=[15];tagspec_324.htmlFormat=["AMP"];tagspec_324.extensionSpec=extensionspec_45;var tagspec_325=new amp$validator$TagSpec("AMP-NEXXTV-PLAYER");tagspec_325.amp_validator_TagSpec$attrs=[168,169,170,171,172];tagspec_325.amp_validator_TagSpec$attrLists=[13];tagspec_325.ampLayout=amplayout_6;tagspec_325.htmlFormat=["AMP"];tagspec_325.requiresExtension=["amp-nexxtv-player"];var extensionspec_46=new amp$validator$ExtensionSpec;extensionspec_46.name="amp-o2-player"; +extensionspec_46.allowedVersions=["0.1","latest"];extensionspec_46.deprecatedAllowDuplicates=!0;extensionspec_46.requiresUsage="GRANDFATHERED";var tagspec_326=new amp$validator$TagSpec("SCRIPT");tagspec_326.amp_validator_TagSpec$attrLists=[15];tagspec_326.htmlFormat=["AMP"];tagspec_326.extensionSpec=extensionspec_46;var tagspec_327=new amp$validator$TagSpec("AMP-O2-PLAYER");tagspec_327.amp_validator_TagSpec$attrs=[173,174];tagspec_327.amp_validator_TagSpec$attrLists=[13];tagspec_327.ampLayout=amplayout_6; +tagspec_327.htmlFormat=["AMP"];tagspec_327.requiresExtension=["amp-o2-player"];var extensionspec_47=new amp$validator$ExtensionSpec;extensionspec_47.name="amp-ooyala-player";extensionspec_47.allowedVersions=["0.1","latest"];var tagspec_328=new amp$validator$TagSpec("SCRIPT");tagspec_328.amp_validator_TagSpec$attrLists=[15];tagspec_328.htmlFormat=["AMP"];tagspec_328.extensionSpec=extensionspec_47;var tagspec_329=new amp$validator$TagSpec("AMP-OOYALA-PLAYER");tagspec_329.amp_validator_TagSpec$attrs= +[175,176,177];tagspec_329.amp_validator_TagSpec$attrLists=[13];tagspec_329.ampLayout=amplayout_2;tagspec_329.htmlFormat=["AMP"];tagspec_329.requiresExtension=["amp-ooyala-player"];var extensionspec_48=new amp$validator$ExtensionSpec;extensionspec_48.name="amp-pinterest";extensionspec_48.allowedVersions=["0.1","latest"];extensionspec_48.deprecatedAllowDuplicates=!0;extensionspec_48.requiresUsage="GRANDFATHERED";var tagspec_330=new amp$validator$TagSpec("SCRIPT");tagspec_330.amp_validator_TagSpec$attrLists= +[15];tagspec_330.htmlFormat=["AMP"];tagspec_330.extensionSpec=extensionspec_48;var tagspec_331=new amp$validator$TagSpec("AMP-PINTEREST");tagspec_331.amp_validator_TagSpec$attrs=[178];tagspec_331.amp_validator_TagSpec$attrLists=[13];tagspec_331.specUrl="https://www.ampproject.org/docs/reference/components/amp-pinterest";tagspec_331.ampLayout=amplayout_6;tagspec_331.htmlFormat=["AMP"];tagspec_331.requiresExtension=["amp-pinterest"];var extensionspec_49=new amp$validator$ExtensionSpec;extensionspec_49.name= +"amp-playbuzz";extensionspec_49.allowedVersions=["0.1","latest"];var tagspec_332=new amp$validator$TagSpec("SCRIPT");tagspec_332.amp_validator_TagSpec$attrLists=[15];tagspec_332.htmlFormat=["AMP"];tagspec_332.extensionSpec=extensionspec_49;var amplayout_13=new amp$validator$AmpLayout(["RESPONSIVE","FIXED_HEIGHT"]),tagspec_333=new amp$validator$TagSpec("AMP-PLAYBUZZ");tagspec_333.amp_validator_TagSpec$attrs=[179,180,181,182,183];tagspec_333.amp_validator_TagSpec$attrLists=[13];tagspec_333.ampLayout= +amplayout_13;tagspec_333.htmlFormat=["AMP"];tagspec_333.requiresExtension=["amp-playbuzz"];var extensionspec_50=new amp$validator$ExtensionSpec;extensionspec_50.name="amp-position-observer";extensionspec_50.allowedVersions=["0.1","latest"];var tagspec_334=new amp$validator$TagSpec("SCRIPT");tagspec_334.amp_validator_TagSpec$attrLists=[15];tagspec_334.htmlFormat=["AMP","AMP4ADS"];tagspec_334.extensionSpec=extensionspec_50;var tagspec_335=new amp$validator$TagSpec("AMP-POSITION-OBSERVER");tagspec_335.amp_validator_TagSpec$attrs= +[184,-255,185];tagspec_335.amp_validator_TagSpec$attrLists=[13];tagspec_335.ampLayout=amplayout_5;tagspec_335.htmlFormat=["AMP","AMP4ADS"];tagspec_335.requiresExtension=["amp-position-observer"];var extensionspec_51=new amp$validator$ExtensionSpec;extensionspec_51.name="amp-reach-player";extensionspec_51.allowedVersions=["0.1","latest"];extensionspec_51.deprecatedAllowDuplicates=!0;extensionspec_51.requiresUsage="GRANDFATHERED";var tagspec_336=new amp$validator$TagSpec("SCRIPT");tagspec_336.amp_validator_TagSpec$attrLists= +[15];tagspec_336.htmlFormat=["AMP"];tagspec_336.extensionSpec=extensionspec_51;var tagspec_337=new amp$validator$TagSpec("AMP-REACH-PLAYER");tagspec_337.amp_validator_TagSpec$attrs=[186];tagspec_337.amp_validator_TagSpec$attrLists=[13];tagspec_337.ampLayout=amplayout_9;tagspec_337.htmlFormat=["AMP"];tagspec_337.requiresExtension=["amp-reach-player"];var extensionspec_52=new amp$validator$ExtensionSpec;extensionspec_52.name="amp-reddit";extensionspec_52.allowedVersions=["0.1","latest"];extensionspec_52.deprecatedAllowDuplicates= +!0;var tagspec_338=new amp$validator$TagSpec("SCRIPT");tagspec_338.amp_validator_TagSpec$attrLists=[15];tagspec_338.htmlFormat=["AMP"];tagspec_338.extensionSpec=extensionspec_52;var tagspec_339=new amp$validator$TagSpec("AMP-REDDIT");tagspec_339.amp_validator_TagSpec$attrs=[187,188,189,190];tagspec_339.amp_validator_TagSpec$attrLists=[13];tagspec_339.ampLayout=amplayout_6;tagspec_339.htmlFormat=["AMP"];tagspec_339.requiresExtension=["amp-reddit"];var extensionspec_53=new amp$validator$ExtensionSpec; +extensionspec_53.name="amp-riddle-quiz";extensionspec_53.allowedVersions=["0.1","latest"];var tagspec_340=new amp$validator$TagSpec("SCRIPT");tagspec_340.amp_validator_TagSpec$attrLists=[15];tagspec_340.htmlFormat=["AMP"];tagspec_340.extensionSpec=extensionspec_53;var amplayout_14=new amp$validator$AmpLayout(["RESPONSIVE"]),tagspec_341=new amp$validator$TagSpec("AMP-RIDDLE-QUIZ");tagspec_341.amp_validator_TagSpec$attrs=[191];tagspec_341.amp_validator_TagSpec$attrLists=[13];tagspec_341.specUrl="https://www.ampproject.org/docs/reference/components/amp-riddle-quiz"; +tagspec_341.ampLayout=amplayout_14;tagspec_341.htmlFormat=["AMP"];tagspec_341.requiresExtension=["amp-riddle-quiz"];var extensionspec_54=new amp$validator$ExtensionSpec;extensionspec_54.name="amp-selector";extensionspec_54.allowedVersions=["0.1","latest"];extensionspec_54.requiresUsage="GRANDFATHERED";var tagspec_342=new amp$validator$TagSpec("SCRIPT");tagspec_342.amp_validator_TagSpec$attrLists=[15];tagspec_342.htmlFormat=["AMP"];tagspec_342.extensionSpec=extensionspec_54;var amplayout_15=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT NODISPLAY RESPONSIVE CONTAINER".split(" ")), +referencepoint_4=new amp$validator$ReferencePoint;referencepoint_4.tagSpecName=344;var referencepoint_5=new amp$validator$ReferencePoint;referencepoint_5.tagSpecName=345;var tagspec_343=new amp$validator$TagSpec("AMP-SELECTOR");tagspec_343.amp_validator_TagSpec$attrs=[89,-211,192,193,-200];tagspec_343.amp_validator_TagSpec$attrLists=[13,11];tagspec_343.ampLayout=amplayout_15;tagspec_343.disallowedAncestor=["AMP-SELECTOR"];tagspec_343.referencePoints=[referencepoint_4,referencepoint_5];tagspec_343.htmlFormat= +["AMP"];tagspec_343.requiresExtension=["amp-selector"];var tagspec_344=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_344.specName="AMP-SELECTOR option";tagspec_344.amp_validator_TagSpec$attrs=[194,89,195];tagspec_344.specUrl="https://www.ampproject.org/docs/reference/components/amp-selector";tagspec_344.htmlFormat=["AMP"];var tagspec_345=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_345.specName="AMP-SELECTOR child";tagspec_345.referencePoints=[referencepoint_4,referencepoint_5];tagspec_345.htmlFormat= +["AMP"];var extensionspec_55=new amp$validator$ExtensionSpec;extensionspec_55.name="amp-sidebar";extensionspec_55.allowedVersions=["0.1","latest"];extensionspec_55.deprecatedAllowDuplicates=!0;extensionspec_55.requiresUsage="GRANDFATHERED";var tagspec_346=new amp$validator$TagSpec("SCRIPT");tagspec_346.amp_validator_TagSpec$attrLists=[15];tagspec_346.htmlFormat=["AMP"];tagspec_346.extensionSpec=extensionspec_55;var tagspec_347=new amp$validator$TagSpec("AMP-SIDEBAR");tagspec_347.mandatoryParent="BODY"; +tagspec_347.amp_validator_TagSpec$attrs=[196];tagspec_347.amp_validator_TagSpec$attrLists=[13];tagspec_347.ampLayout=amplayout_5;tagspec_347.htmlFormat=["AMP"];tagspec_347.requiresExtension=["amp-sidebar"];var childtagspec_5=new amp$validator$ChildTagSpec;childtagspec_5.mandatoryNumChildTags=1;childtagspec_5.childTagNameOneof=["UL"];var tagspec_348=new amp$validator$TagSpec("NAV");tagspec_348.specName="amp-sidebar > nav";tagspec_348.mandatoryParent="AMP-SIDEBAR";tagspec_348.amp_validator_TagSpec$attrs= +[197,198];tagspec_348.childTags=childtagspec_5;tagspec_348.htmlFormat=["AMP"];var extensionspec_56=new amp$validator$ExtensionSpec;extensionspec_56.name="amp-slides";extensionspec_56.allowedVersions=["0.1","latest"];extensionspec_56.deprecatedAllowDuplicates=!0;extensionspec_56.requiresUsage="NONE";var tagspec_349=new amp$validator$TagSpec("SCRIPT");tagspec_349.amp_validator_TagSpec$attrLists=[15];tagspec_349.amp_validator_TagSpec$deprecation="amp-carousel";tagspec_349.amp_validator_TagSpec$deprecationUrl= +"https://www.ampproject.org/docs/reference/components/amp-carousel";tagspec_349.htmlFormat=["AMP"];tagspec_349.extensionSpec=extensionspec_56;var extensionspec_57=new amp$validator$ExtensionSpec;extensionspec_57.name="amp-social-share";extensionspec_57.allowedVersions=["0.1","latest"];extensionspec_57.deprecatedAllowDuplicates=!0;extensionspec_57.requiresUsage="GRANDFATHERED";var tagspec_350=new amp$validator$TagSpec("SCRIPT");tagspec_350.amp_validator_TagSpec$attrLists=[15];tagspec_350.htmlFormat= +["AMP","AMP4ADS"];tagspec_350.extensionSpec=extensionspec_57;var amplayout_16=new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),tagspec_351=new amp$validator$TagSpec("AMP-SOCIAL-SHARE");tagspec_351.amp_validator_TagSpec$attrs=[199,71];tagspec_351.amp_validator_TagSpec$attrLists=[13];tagspec_351.ampLayout=amplayout_16;tagspec_351.htmlFormat=["AMP","AMP4ADS"];tagspec_351.requiresExtension=["amp-social-share"];var extensionspec_58=new amp$validator$ExtensionSpec; +extensionspec_58.name="amp-soundcloud";extensionspec_58.allowedVersions=["0.1","latest"];extensionspec_58.deprecatedAllowDuplicates=!0;extensionspec_58.requiresUsage="GRANDFATHERED";var tagspec_352=new amp$validator$TagSpec("SCRIPT");tagspec_352.amp_validator_TagSpec$attrLists=[15];tagspec_352.htmlFormat=["AMP"];tagspec_352.extensionSpec=extensionspec_58;var tagspec_353=new amp$validator$TagSpec("AMP-SOUNDCLOUD");tagspec_353.amp_validator_TagSpec$attrs=[200,201,202,203,204];tagspec_353.amp_validator_TagSpec$attrLists= +[13];tagspec_353.ampLayout=amplayout_10;tagspec_353.htmlFormat=["AMP"];tagspec_353.requiresExtension=["amp-soundcloud"];var extensionspec_59=new amp$validator$ExtensionSpec;extensionspec_59.name="amp-springboard-player";extensionspec_59.allowedVersions=["0.1","latest"];extensionspec_59.deprecatedAllowDuplicates=!0;extensionspec_59.requiresUsage="GRANDFATHERED";var tagspec_354=new amp$validator$TagSpec("SCRIPT");tagspec_354.amp_validator_TagSpec$attrLists=[15];tagspec_354.htmlFormat=["AMP"];tagspec_354.extensionSpec= +extensionspec_59;var tagspec_355=new amp$validator$TagSpec("AMP-SPRINGBOARD-PLAYER");tagspec_355.amp_validator_TagSpec$attrs=[205,206,207,208,209,210];tagspec_355.amp_validator_TagSpec$attrLists=[13];tagspec_355.ampLayout=amplayout_2;tagspec_355.htmlFormat=["AMP"];tagspec_355.requiresExtension=["amp-springboard-player"];var extensionspec_60=new amp$validator$ExtensionSpec;extensionspec_60.name="amp-sticky-ad";extensionspec_60.allowedVersions=["0.1","1.0","latest"];extensionspec_60.deprecatedVersions= +["0.1"];extensionspec_60.requiresUsage="GRANDFATHERED";var tagspec_356=new amp$validator$TagSpec("SCRIPT");tagspec_356.amp_validator_TagSpec$attrLists=[15];tagspec_356.htmlFormat=["AMP"];tagspec_356.extensionSpec=extensionspec_60;var childtagspec_6=new amp$validator$ChildTagSpec;childtagspec_6.mandatoryNumChildTags=1;childtagspec_6.firstChildTagNameOneof=["AMP-AD"];var tagspec_357=new amp$validator$TagSpec("AMP-STICKY-AD");tagspec_357.unique=!0;tagspec_357.amp_validator_TagSpec$attrLists=[13];tagspec_357.ampLayout= +amplayout_5;tagspec_357.disallowedAncestor=["AMP-APP-BANNER"];tagspec_357.childTags=childtagspec_6;tagspec_357.htmlFormat=["AMP"];tagspec_357.requiresExtension=["amp-sticky-ad"];var extensionspec_61=new amp$validator$ExtensionSpec;extensionspec_61.name="amp-story";extensionspec_61.allowedVersions=["0.1","latest"];var tagspec_358=new amp$validator$TagSpec("SCRIPT");tagspec_358.amp_validator_TagSpec$attrLists=[15];tagspec_358.htmlFormat=["AMP"];tagspec_358.extensionSpec=extensionspec_61;var childtagspec_7= +new amp$validator$ChildTagSpec;childtagspec_7.childTagNameOneof=["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-PAGE"];childtagspec_7.mandatoryMinNumChildTags=1;var tagspec_359=new amp$validator$TagSpec("AMP-STORY");tagspec_359.mandatoryParent="BODY";tagspec_359.amp_validator_TagSpec$attrs=[211,212,213];tagspec_359.childTags=childtagspec_7;tagspec_359.htmlFormat=["AMP"];tagspec_359.requires=[-256];tagspec_359.requiresExtension=["amp-story"];tagspec_359.siblingsDisallowed=!0;var childtagspec_8=new amp$validator$ChildTagSpec; +childtagspec_8.childTagNameOneof=["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-GRID-LAYER"];childtagspec_8.mandatoryMinNumChildTags=1;var tagspec_360=new amp$validator$TagSpec("AMP-STORY-PAGE");tagspec_360.mandatoryParent="AMP-STORY";tagspec_360.amp_validator_TagSpec$attrs=[106,-257,213];tagspec_360.childTags=childtagspec_8;tagspec_360.htmlFormat=["AMP"];tagspec_360.satisfies=[-256];tagspec_360.requiresExtension=["amp-story"];var referencepoint_6=new amp$validator$ReferencePoint;referencepoint_6.tagSpecName= +362;var referencepoint_7=new amp$validator$ReferencePoint;referencepoint_7.tagSpecName=363;var tagspec_361=new amp$validator$TagSpec("AMP-STORY-GRID-LAYER");tagspec_361.amp_validator_TagSpec$attrs=[214];tagspec_361.mandatoryAncestor="AMP-STORY-PAGE";tagspec_361.referencePoints=[referencepoint_6,referencepoint_7];tagspec_361.htmlFormat=["AMP"];tagspec_361.amp_validator_TagSpec$descendantTagList="amp-story-grid-layer-allowed-descendants";var tagspec_362=new amp$validator$TagSpec("$REFERENCE_POINT"); +tagspec_362.specName="AMP-STORY-GRID-LAYER default";tagspec_362.amp_validator_TagSpec$attrs=[-258,215,216,217,218,219,220,221,-259,-260,-261];tagspec_362.specUrl="https://www.ampproject.org/docs/reference/components/amp-story";tagspec_362.referencePoints=[referencepoint_7];tagspec_362.htmlFormat=["AMP"];var tagspec_363=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_363.specName="AMP-STORY-GRID-LAYER animate-in";tagspec_363.amp_validator_TagSpec$attrs=[221,-259,-260,-261];tagspec_363.specUrl= +"https://www.ampproject.org/docs/reference/components/amp-story";tagspec_363.referencePoints=[referencepoint_7];tagspec_363.htmlFormat=["AMP"];var extensionspec_62=new amp$validator$ExtensionSpec;extensionspec_62.name="amp-timeago";extensionspec_62.allowedVersions=["0.1","latest"];var tagspec_364=new amp$validator$TagSpec("SCRIPT");tagspec_364.amp_validator_TagSpec$attrLists=[15];tagspec_364.htmlFormat=["AMP"];tagspec_364.extensionSpec=extensionspec_62;var amplayout_17=new amp$validator$AmpLayout(["FIXED", +"FIXED_HEIGHT","RESPONSIVE"]),tagspec_365=new amp$validator$TagSpec("AMP-TIMEAGO");tagspec_365.amp_validator_TagSpec$attrs=[222,223,-262];tagspec_365.amp_validator_TagSpec$attrLists=[13];tagspec_365.specUrl="https://www.ampproject.org/docs/reference/components/amp-timeago";tagspec_365.ampLayout=amplayout_17;tagspec_365.htmlFormat=["AMP"];tagspec_365.requiresExtension=["amp-timeago"];var extensionspec_63=new amp$validator$ExtensionSpec;extensionspec_63.name="amp-twitter";extensionspec_63.allowedVersions= +["0.1","latest"];extensionspec_63.deprecatedAllowDuplicates=!0;extensionspec_63.requiresUsage="GRANDFATHERED";var tagspec_366=new amp$validator$TagSpec("SCRIPT");tagspec_366.amp_validator_TagSpec$attrLists=[15];tagspec_366.htmlFormat=["AMP"];tagspec_366.extensionSpec=extensionspec_63;var tagspec_367=new amp$validator$TagSpec("AMP-TWITTER");tagspec_367.amp_validator_TagSpec$attrs=[224];tagspec_367.amp_validator_TagSpec$attrLists=[13];tagspec_367.ampLayout=amplayout_0;tagspec_367.htmlFormat=["AMP"]; +tagspec_367.requiresExtension=["amp-twitter"];var extensionspec_64=new amp$validator$ExtensionSpec;extensionspec_64.name="amp-user-notification";extensionspec_64.allowedVersions=["0.1","latest"];extensionspec_64.deprecatedAllowDuplicates=!0;extensionspec_64.requiresUsage="GRANDFATHERED";var tagspec_368=new amp$validator$TagSpec("SCRIPT");tagspec_368.amp_validator_TagSpec$attrLists=[15];tagspec_368.htmlFormat=["AMP"];tagspec_368.extensionSpec=extensionspec_64;var tagspec_369=new amp$validator$TagSpec("AMP-USER-NOTIFICATION"); +tagspec_369.amp_validator_TagSpec$attrs=[225,226,227];tagspec_369.amp_validator_TagSpec$attrLists=[13];tagspec_369.ampLayout=amplayout_5;tagspec_369.htmlFormat=["AMP"];tagspec_369.requiresExtension=["amp-user-notification"];var extensionspec_65=new amp$validator$ExtensionSpec;extensionspec_65.name="amp-video";extensionspec_65.allowedVersions=["0.1","latest"];extensionspec_65.requiresUsage="NONE";var tagspec_370=new amp$validator$TagSpec("SCRIPT");tagspec_370.specName="amp-video extension .js script"; +tagspec_370.amp_validator_TagSpec$attrLists=[15];tagspec_370.htmlFormat=["AMP","AMP4ADS"];tagspec_370.extensionSpec=extensionspec_65;var tagspec_371=new amp$validator$TagSpec("AMP-VIDEO");tagspec_371.amp_validator_TagSpec$attrs=[-39];tagspec_371.amp_validator_TagSpec$attrLists=[13,18];tagspec_371.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_371.ampLayout=amplayout_6;tagspec_371.disallowedAncestor=["AMP-STORY"];tagspec_371.htmlFormat=["AMP","AMP4ADS"];tagspec_371.alsoRequiresTagWarning= +[370];var tagspec_372=new amp$validator$TagSpec("AMP-VIDEO");tagspec_372.specName="amp-story >> amp-video";tagspec_372.amp_validator_TagSpec$attrs=[114,228];tagspec_372.amp_validator_TagSpec$attrLists=[13,18];tagspec_372.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_372.ampLayout=amplayout_6;tagspec_372.mandatoryAncestor="AMP-STORY";tagspec_372.htmlFormat=["AMP","AMP4ADS"];tagspec_372.requiresExtension=["amp-video"];var extensionspec_66=new amp$validator$ExtensionSpec; +extensionspec_66.name="amp-vimeo";extensionspec_66.allowedVersions=["0.1","latest"];extensionspec_66.deprecatedAllowDuplicates=!0;extensionspec_66.requiresUsage="GRANDFATHERED";var tagspec_373=new amp$validator$TagSpec("SCRIPT");tagspec_373.amp_validator_TagSpec$attrLists=[15];tagspec_373.htmlFormat=["AMP"];tagspec_373.extensionSpec=extensionspec_66;var tagspec_374=new amp$validator$TagSpec("AMP-VIMEO");tagspec_374.amp_validator_TagSpec$attrs=[156];tagspec_374.amp_validator_TagSpec$attrLists=[13]; +tagspec_374.ampLayout=amplayout_9;tagspec_374.htmlFormat=["AMP"];tagspec_374.requiresExtension=["amp-vimeo"];var extensionspec_67=new amp$validator$ExtensionSpec;extensionspec_67.name="amp-vine";extensionspec_67.allowedVersions=["0.1","latest"];extensionspec_67.deprecatedAllowDuplicates=!0;extensionspec_67.requiresUsage="GRANDFATHERED";var tagspec_375=new amp$validator$TagSpec("SCRIPT");tagspec_375.amp_validator_TagSpec$attrLists=[15];tagspec_375.htmlFormat=["AMP"];tagspec_375.extensionSpec=extensionspec_67; +var tagspec_376=new amp$validator$TagSpec("AMP-VINE");tagspec_376.amp_validator_TagSpec$attrs=[229];tagspec_376.amp_validator_TagSpec$attrLists=[13];tagspec_376.ampLayout=amplayout_6;tagspec_376.htmlFormat=["AMP"];tagspec_376.requiresExtension=["amp-vine"];var extensionspec_68=new amp$validator$ExtensionSpec;extensionspec_68.name="amp-vk";extensionspec_68.allowedVersions=["0.1","latest"];var tagspec_377=new amp$validator$TagSpec("SCRIPT");tagspec_377.amp_validator_TagSpec$attrLists=[15];tagspec_377.htmlFormat= +["AMP"];tagspec_377.extensionSpec=extensionspec_68;var amplayout_18=new amp$validator$AmpLayout(["FIXED","FLEX_ITEM","RESPONSIVE"]),tagspec_378=new amp$validator$TagSpec("AMP-VK");tagspec_378.amp_validator_TagSpec$attrs=[230];tagspec_378.amp_validator_TagSpec$attrLists=[13];tagspec_378.ampLayout=amplayout_18;tagspec_378.htmlFormat=["AMP"];tagspec_378.requiresExtension=["amp-vk"];var extensionspec_69=new amp$validator$ExtensionSpec;extensionspec_69.name="amp-web-push";extensionspec_69.allowedVersions= +["0.1","latest"];var tagspec_379=new amp$validator$TagSpec("SCRIPT");tagspec_379.amp_validator_TagSpec$attrLists=[15];tagspec_379.htmlFormat=["AMP"];tagspec_379.extensionSpec=extensionspec_69;var tagspec_380=new amp$validator$TagSpec("AMP-WEB-PUSH");tagspec_380.amp_validator_TagSpec$attrs=[231,232,233,234];tagspec_380.amp_validator_TagSpec$attrLists=[13];tagspec_380.specUrl="https://www.ampproject.org/docs/reference/components/amp-web-push";tagspec_380.ampLayout=amplayout_5;tagspec_380.htmlFormat= +["AMP"];tagspec_380.requiresExtension=["amp-web-push"];var amplayout_19=new amp$validator$AmpLayout(["FIXED"]),tagspec_381=new amp$validator$TagSpec("AMP-WEB-PUSH-WIDGET");tagspec_381.amp_validator_TagSpec$attrs=[235];tagspec_381.amp_validator_TagSpec$attrLists=[13];tagspec_381.specUrl="https://www.ampproject.org/docs/reference/components/amp-web-push";tagspec_381.ampLayout=amplayout_19;tagspec_381.htmlFormat=["AMP"];tagspec_381.requiresExtension=["amp-web-push"];var extensionspec_70=new amp$validator$ExtensionSpec; +extensionspec_70.name="amp-youtube";extensionspec_70.allowedVersions=["0.1","latest"];extensionspec_70.deprecatedAllowDuplicates=!0;extensionspec_70.requiresUsage="GRANDFATHERED";var tagspec_382=new amp$validator$TagSpec("SCRIPT");tagspec_382.amp_validator_TagSpec$attrLists=[15];tagspec_382.extensionSpec=extensionspec_70;var tagspec_383=new amp$validator$TagSpec("AMP-YOUTUBE");tagspec_383.amp_validator_TagSpec$attrs=[-35,236,237,238,-263];tagspec_383.amp_validator_TagSpec$attrLists=[13];tagspec_383.ampLayout= +amplayout_6;tagspec_383.requiresExtension=["amp-youtube"];var errorformat_0=new amp$validator$ErrorFormat("UNKNOWN_CODE","Unknown error."),errorformat_1=new amp$validator$ErrorFormat("MANDATORY_TAG_MISSING","The mandatory tag '%1' is missing or incorrect."),errorformat_2=new amp$validator$ErrorFormat("TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'."),errorformat_3=new amp$validator$ErrorFormat("WARNING_TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'. This will soon be an error."), +errorformat_4=new amp$validator$ErrorFormat("WARNING_EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused (no '%2' tag seen). This may become an error in the future."),errorformat_5=new amp$validator$ErrorFormat("EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused. Please remove this extension."),errorformat_6=new amp$validator$ErrorFormat("WARNING_EXTENSION_DEPRECATED_VERSION","The extension '%1' is referenced at version '%2' which is a deprecated version. Please use a more recent version of this extension. This may become an error in the future."), +errorformat_7=new amp$validator$ErrorFormat("ATTR_REQUIRED_BUT_MISSING","The attribute '%1' in tag '%2' is missing or incorrect, but required by attribute '%3'."),errorformat_8=new amp$validator$ErrorFormat("DISALLOWED_TAG","The tag '%1' is disallowed."),errorformat_9=new amp$validator$ErrorFormat("GENERAL_DISALLOWED_TAG","The tag '%1' is disallowed except in specific forms."),errorformat_10=new amp$validator$ErrorFormat("DISALLOWED_SCRIPT_TAG","Only AMP runtime 'script' tags are allowed, and only in the document head."), +errorformat_11=new amp$validator$ErrorFormat("DISALLOWED_ATTR","The attribute '%1' may not appear in tag '%2'."),errorformat_12=new amp$validator$ErrorFormat("DISALLOWED_STYLE_ATTR","The inline 'style' attribute is not allowed in AMP documents. Use 'style amp-custom' tag instead."),errorformat_13=new amp$validator$ErrorFormat("INVALID_ATTR_VALUE","The attribute '%1' in tag '%2' is set to the invalid value '%3'."),errorformat_14=new amp$validator$ErrorFormat("DUPLICATE_ATTRIBUTE","The tag '%1' contains the attribute '%2' repeated multiple times."), +errorformat_15=new amp$validator$ErrorFormat("ATTR_VALUE_REQUIRED_BY_LAYOUT","Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."),errorformat_16=new amp$validator$ErrorFormat("IMPLIED_LAYOUT_INVALID","The implied layout '%1' is not supported by tag '%2'."),errorformat_17=new amp$validator$ErrorFormat("SPECIFIED_LAYOUT_INVALID","The specified layout '%1' is not supported by tag '%2'."),errorformat_18=new amp$validator$ErrorFormat("MANDATORY_ATTR_MISSING", +"The mandatory attribute '%1' is missing in tag '%2'."),errorformat_19=new amp$validator$ErrorFormat("INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT","Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."),errorformat_20=new amp$validator$ErrorFormat("STYLESHEET_TOO_LONG","The author stylesheet specified in tag '%1' is too long - we saw %2 bytes whereas the limit is %3 bytes."),errorformat_21=new amp$validator$ErrorFormat("MANDATORY_CDATA_MISSING_OR_INCORRECT", +"The mandatory text (CDATA) inside tag '%1' is missing or incorrect."),errorformat_22=new amp$validator$ErrorFormat("CDATA_VIOLATES_BLACKLIST","The text (CDATA) inside tag '%1' contains '%2', which is disallowed."),errorformat_23=new amp$validator$ErrorFormat("NON_WHITESPACE_CDATA_ENCOUNTERED","The tag '%1' contains text (CDATA), which is disallowed."),errorformat_24=new amp$validator$ErrorFormat("DISALLOWED_PROPERTY_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is disallowed."), +errorformat_25=new amp$validator$ErrorFormat("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."),errorformat_26=new amp$validator$ErrorFormat("DUPLICATE_DIMENSION","Multiple image candidates with the same width or pixel density found in attribute '%1' in tag '%2'."),errorformat_27=new amp$validator$ErrorFormat("MISSING_URL","Missing URL for attribute '%1' in tag '%2'."),errorformat_28=new amp$validator$ErrorFormat("INVALID_URL", +"Malformed URL '%3' for attribute '%1' in tag '%2'."),errorformat_29=new amp$validator$ErrorFormat("INVALID_URL_PROTOCOL","Invalid URL protocol '%3:' for attribute '%1' in tag '%2'."),errorformat_30=new amp$validator$ErrorFormat("DISALLOWED_DOMAIN","The domain '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_31=new amp$validator$ErrorFormat("DISALLOWED_RELATIVE_URL","The relative URL '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_32=new amp$validator$ErrorFormat("MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE", +"The property '%1' is missing from attribute '%2' in tag '%3'."),errorformat_33=new amp$validator$ErrorFormat("UNESCAPED_TEMPLATE_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."),errorformat_34=new amp$validator$ErrorFormat("TEMPLATE_PARTIAL_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."),errorformat_35=new amp$validator$ErrorFormat("DEPRECATED_TAG","The tag '%1' is deprecated - use '%2' instead."), +errorformat_36=new amp$validator$ErrorFormat("DEPRECATED_ATTR","The attribute '%1' in tag '%2' is deprecated - use '%3' instead."),errorformat_37=new amp$validator$ErrorFormat("MUTUALLY_EXCLUSIVE_ATTRS","Mutually exclusive attributes encountered in tag '%1' - pick one of %2."),errorformat_38=new amp$validator$ErrorFormat("MANDATORY_ONEOF_ATTR_MISSING","The tag '%1' is missing a mandatory attribute - pick one of %2."),errorformat_39=new amp$validator$ErrorFormat("WRONG_PARENT_TAG","The parent tag of tag '%1' is '%2', but it can only be '%3'."), +errorformat_40=new amp$validator$ErrorFormat("DISALLOWED_TAG_ANCESTOR","The tag '%1' may not appear as a descendant of tag '%2'."),errorformat_41=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR","The tag '%1' may only appear as a descendant of tag '%2'."),errorformat_42=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR_WITH_HINT","The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"),errorformat_43=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG","The tag '%1' appears more than once in the document."), +errorformat_44=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG_WARNING","The tag '%1' appears more than once in the document. This will soon be an error."),errorformat_45=new amp$validator$ErrorFormat("TEMPLATE_IN_ATTR_NAME","Mustache template syntax in attribute name '%1' in tag '%2'."),errorformat_46=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_IMPLIED_LAYOUT","The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."),errorformat_47=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT", +"The attribute '%1' in tag '%2' is disallowed by specified layout '%3'."),errorformat_48=new amp$validator$ErrorFormat("INCORRECT_NUM_CHILD_TAGS","Tag '%1' must have %2 child tags - saw %3 child tags."),errorformat_49=new amp$validator$ErrorFormat("INCORRECT_MIN_NUM_CHILD_TAGS","Tag '%1' must have a minimum of %2 child tags - saw %3 child tags."),errorformat_50=new amp$validator$ErrorFormat("TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS","Tag '%1' is not allowed to have any sibling tags ('%2' should only have 1 child)."), +errorformat_51=new amp$validator$ErrorFormat("MANDATORY_LAST_CHILD_TAG","Tag '%1', if present, must be the last child of tag '%2'."),errorformat_52=new amp$validator$ErrorFormat("DISALLOWED_CHILD_TAG_NAME","Tag '%1' is disallowed as child of tag '%2'. Child tag must be one of %3."),errorformat_53=new amp$validator$ErrorFormat("DISALLOWED_FIRST_CHILD_TAG_NAME","Tag '%1' is disallowed as first child of tag '%2'. First child tag must be one of %3."),errorformat_54=new amp$validator$ErrorFormat("DISALLOWED_MANUFACTURED_BODY", +"Tag or text which is only allowed inside the body section found outside of the body section."),errorformat_55=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT","The tag '%1', a child tag of '%2', does not satisfy one of the acceptable reference points: %3."),errorformat_56=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR","The tag '%1', a child tag of '%2', does not satisfy the reference point '%3'."),errorformat_57=new amp$validator$ErrorFormat("MANDATORY_REFERENCE_POINT_MISSING", +"The mandatory reference point '%1' for '%2' is missing."),errorformat_58=new amp$validator$ErrorFormat("DUPLICATE_REFERENCE_POINT","The reference point '%1' for '%2' must be unique but a duplicate was encountered."),errorformat_59=new amp$validator$ErrorFormat("TAG_REFERENCE_POINT_CONFLICT","The tag '%1' conflicts with reference point '%2' because both define reference points."),errorformat_60=new amp$validator$ErrorFormat("BASE_TAG_MUST_PRECEED_ALL_URLS","The tag '%1', which contains URLs, was found earlier in the document than the BASE element."), +errorformat_61=new amp$validator$ErrorFormat("MISSING_REQUIRED_EXTENSION","The tag '%1' requires including the '%2' extension JavaScript."),errorformat_62=new amp$validator$ErrorFormat("DOCUMENT_TOO_COMPLEX","The document is too complex."),errorformat_63=new amp$validator$ErrorFormat("CSS_SYNTAX","CSS syntax error in tag '%1' - %2."),errorformat_64=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_AT_RULE","CSS syntax error in tag '%1' - saw invalid at rule '@%2'."),errorformat_65=new amp$validator$ErrorFormat("CSS_SYNTAX_STRAY_TRAILING_BACKSLASH", +"CSS syntax error in tag '%1' - stray trailing backslash."),errorformat_66=new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_COMMENT","CSS syntax error in tag '%1' - unterminated comment."),errorformat_67=new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_STRING","CSS syntax error in tag '%1' - unterminated string."),errorformat_68=new amp$validator$ErrorFormat("CSS_SYNTAX_BAD_URL","CSS syntax error in tag '%1' - bad url."),errorformat_69=new amp$validator$ErrorFormat("CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE", +"CSS syntax error in tag '%1' - end of stylesheet encountered in prelude of a qualified rule."),errorformat_70=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY","CSS syntax error in tag '%1' - invalid property '%2'. The only allowed properties are '%3'."),errorformat_71=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY_NOLIST","CSS syntax error in tag '%1' - invalid property '%2'."),errorformat_72=new amp$validator$ErrorFormat("CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS","CSS syntax error in tag '%1' - qualified rule '%2' has no declarations."), +errorformat_73=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - qualified rule '%2' must be located inside of a keyframe."),errorformat_74=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - keyframe inside keyframe is not allowed."),errorformat_75=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_DECLARATION","CSS syntax error in tag '%1' - invalid declaration."), +errorformat_76=new amp$validator$ErrorFormat("CSS_SYNTAX_INCOMPLETE_DECLARATION","CSS syntax error in tag '%1' - incomplete declaration."),errorformat_77=new amp$validator$ErrorFormat("CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR","CSS syntax error in tag '%1' - invalid pseudo selector."),errorformat_78=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_SELECTOR","CSS syntax error in tag '%1' - missing selector."),errorformat_79=new amp$validator$ErrorFormat("CSS_SYNTAX_NOT_A_SELECTOR_START","CSS syntax error in tag '%1' - not a selector start."), +errorformat_80=new amp$validator$ErrorFormat("CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR","CSS syntax error in tag '%1' - unparsed input remains in selector."),errorformat_81=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_URL","CSS syntax error in tag '%1' - missing url."),errorformat_82=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL","CSS syntax error in tag '%1' - invalid url '%2'."),errorformat_83=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL_PROTOCOL","CSS syntax error in tag '%1' - invalid url protocol '%2:'."), +errorformat_84=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_DOMAIN","CSS syntax error in tag '%1' - invalid domain '%2'."),errorformat_85=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_RELATIVE_URL","CSS syntax error in tag '%1' - disallowed relative url '%2'."),errorformat_86=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_ATTR_SELECTOR","CSS syntax error in tag '%1' - invalid attribute selector."),errorformat_87=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE", +"CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'."),errorformat_88=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'. Allowed values: %4."),errorformat_89=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE","CSS syntax error in tag '%1' - the property '%2' is disallowed within @%3. Allowed properties: %4."),errorformat_90= +new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH","CSS syntax error in tag '%1' - the property '%2' is disallowed together with '%3'. Allowed properties: %4."),errorformat_91=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION","CSS syntax error in tag '%1' - the property '%2' is disallowed unless the enclosing rule is prefixed with the '%3' qualification."),errorspecificity_0=new amp$validator$ErrorSpecificity;errorspecificity_0.code="UNKNOWN_CODE"; +errorspecificity_0.specificity=0;var errorspecificity_1=new amp$validator$ErrorSpecificity;errorspecificity_1.code="MANDATORY_CDATA_MISSING_OR_INCORRECT";errorspecificity_1.specificity=1;var errorspecificity_2=new amp$validator$ErrorSpecificity;errorspecificity_2.code="CDATA_VIOLATES_BLACKLIST";errorspecificity_2.specificity=2;var errorspecificity_3=new amp$validator$ErrorSpecificity;errorspecificity_3.code="NON_WHITESPACE_CDATA_ENCOUNTERED";errorspecificity_3.specificity=3;var errorspecificity_4= +new amp$validator$ErrorSpecificity;errorspecificity_4.code="WRONG_PARENT_TAG";errorspecificity_4.specificity=4;var errorspecificity_5=new amp$validator$ErrorSpecificity;errorspecificity_5.code="DISALLOWED_TAG_ANCESTOR";errorspecificity_5.specificity=5;var errorspecificity_6=new amp$validator$ErrorSpecificity;errorspecificity_6.code="MANDATORY_TAG_ANCESTOR";errorspecificity_6.specificity=6;var errorspecificity_7=new amp$validator$ErrorSpecificity;errorspecificity_7.code="MANDATORY_TAG_ANCESTOR_WITH_HINT"; +errorspecificity_7.specificity=7;var errorspecificity_8=new amp$validator$ErrorSpecificity;errorspecificity_8.code="MANDATORY_TAG_MISSING";errorspecificity_8.specificity=8;var errorspecificity_9=new amp$validator$ErrorSpecificity;errorspecificity_9.code="TAG_REQUIRED_BY_MISSING";errorspecificity_9.specificity=9;var errorspecificity_10=new amp$validator$ErrorSpecificity;errorspecificity_10.code="MISSING_REQUIRED_EXTENSION";errorspecificity_10.specificity=10;var errorspecificity_11=new amp$validator$ErrorSpecificity; +errorspecificity_11.code="WARNING_TAG_REQUIRED_BY_MISSING";errorspecificity_11.specificity=11;var errorspecificity_12=new amp$validator$ErrorSpecificity;errorspecificity_12.code="EXTENSION_UNUSED";errorspecificity_12.specificity=12;var errorspecificity_13=new amp$validator$ErrorSpecificity;errorspecificity_13.code="WARNING_EXTENSION_UNUSED";errorspecificity_13.specificity=13;var errorspecificity_14=new amp$validator$ErrorSpecificity;errorspecificity_14.code="WARNING_EXTENSION_DEPRECATED_VERSION"; +errorspecificity_14.specificity=14;var errorspecificity_15=new amp$validator$ErrorSpecificity;errorspecificity_15.code="ATTR_REQUIRED_BUT_MISSING";errorspecificity_15.specificity=15;var errorspecificity_16=new amp$validator$ErrorSpecificity;errorspecificity_16.code="DISALLOWED_TAG";errorspecificity_16.specificity=16;var errorspecificity_17=new amp$validator$ErrorSpecificity;errorspecificity_17.code="DISALLOWED_ATTR";errorspecificity_17.specificity=17;var errorspecificity_18=new amp$validator$ErrorSpecificity; +errorspecificity_18.code="INVALID_ATTR_VALUE";errorspecificity_18.specificity=18;var errorspecificity_19=new amp$validator$ErrorSpecificity;errorspecificity_19.code="DUPLICATE_ATTRIBUTE";errorspecificity_19.specificity=19;var errorspecificity_20=new amp$validator$ErrorSpecificity;errorspecificity_20.code="ATTR_VALUE_REQUIRED_BY_LAYOUT";errorspecificity_20.specificity=20;var errorspecificity_21=new amp$validator$ErrorSpecificity;errorspecificity_21.code="MANDATORY_ATTR_MISSING";errorspecificity_21.specificity= +21;var errorspecificity_22=new amp$validator$ErrorSpecificity;errorspecificity_22.code="MANDATORY_ONEOF_ATTR_MISSING";errorspecificity_22.specificity=22;var errorspecificity_23=new amp$validator$ErrorSpecificity;errorspecificity_23.code="DUPLICATE_UNIQUE_TAG";errorspecificity_23.specificity=23;var errorspecificity_24=new amp$validator$ErrorSpecificity;errorspecificity_24.code="DUPLICATE_UNIQUE_TAG_WARNING";errorspecificity_24.specificity=24;var errorspecificity_25=new amp$validator$ErrorSpecificity; +errorspecificity_25.code="STYLESHEET_TOO_LONG";errorspecificity_25.specificity=25;var errorspecificity_26=new amp$validator$ErrorSpecificity;errorspecificity_26.code="CSS_SYNTAX";errorspecificity_26.specificity=26;var errorspecificity_27=new amp$validator$ErrorSpecificity;errorspecificity_27.code="CSS_SYNTAX_INVALID_AT_RULE";errorspecificity_27.specificity=27;var errorspecificity_28=new amp$validator$ErrorSpecificity;errorspecificity_28.code="MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE";errorspecificity_28.specificity= +28;var errorspecificity_29=new amp$validator$ErrorSpecificity;errorspecificity_29.code="INVALID_PROPERTY_VALUE_IN_ATTR_VALUE";errorspecificity_29.specificity=29;var errorspecificity_30=new amp$validator$ErrorSpecificity;errorspecificity_30.code="DISALLOWED_PROPERTY_IN_ATTR_VALUE";errorspecificity_30.specificity=30;var errorspecificity_31=new amp$validator$ErrorSpecificity;errorspecificity_31.code="MUTUALLY_EXCLUSIVE_ATTRS";errorspecificity_31.specificity=31;var errorspecificity_32=new amp$validator$ErrorSpecificity; +errorspecificity_32.code="UNESCAPED_TEMPLATE_IN_ATTR_VALUE";errorspecificity_32.specificity=32;var errorspecificity_33=new amp$validator$ErrorSpecificity;errorspecificity_33.code="TEMPLATE_PARTIAL_IN_ATTR_VALUE";errorspecificity_33.specificity=33;var errorspecificity_34=new amp$validator$ErrorSpecificity;errorspecificity_34.code="TEMPLATE_IN_ATTR_NAME";errorspecificity_34.specificity=34;var errorspecificity_35=new amp$validator$ErrorSpecificity;errorspecificity_35.code="INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT"; +errorspecificity_35.specificity=35;var errorspecificity_36=new amp$validator$ErrorSpecificity;errorspecificity_36.code="IMPLIED_LAYOUT_INVALID";errorspecificity_36.specificity=36;var errorspecificity_37=new amp$validator$ErrorSpecificity;errorspecificity_37.code="SPECIFIED_LAYOUT_INVALID";errorspecificity_37.specificity=37;var errorspecificity_38=new amp$validator$ErrorSpecificity;errorspecificity_38.code="ATTR_DISALLOWED_BY_IMPLIED_LAYOUT";errorspecificity_38.specificity=38;var errorspecificity_39= +new amp$validator$ErrorSpecificity;errorspecificity_39.code="ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT";errorspecificity_39.specificity=39;var errorspecificity_40=new amp$validator$ErrorSpecificity;errorspecificity_40.code="DUPLICATE_DIMENSION";errorspecificity_40.specificity=40;var errorspecificity_41=new amp$validator$ErrorSpecificity;errorspecificity_41.code="DISALLOWED_RELATIVE_URL";errorspecificity_41.specificity=41;var errorspecificity_42=new amp$validator$ErrorSpecificity;errorspecificity_42.code= +"MISSING_URL";errorspecificity_42.specificity=42;var errorspecificity_43=new amp$validator$ErrorSpecificity;errorspecificity_43.code="DISALLOWED_DOMAIN";errorspecificity_43.specificity=43;var errorspecificity_44=new amp$validator$ErrorSpecificity;errorspecificity_44.code="INVALID_URL_PROTOCOL";errorspecificity_44.specificity=44;var errorspecificity_45=new amp$validator$ErrorSpecificity;errorspecificity_45.code="INVALID_URL";errorspecificity_45.specificity=45;var errorspecificity_46=new amp$validator$ErrorSpecificity; +errorspecificity_46.code="DISALLOWED_STYLE_ATTR";errorspecificity_46.specificity=46;var errorspecificity_47=new amp$validator$ErrorSpecificity;errorspecificity_47.code="CSS_SYNTAX_STRAY_TRAILING_BACKSLASH";errorspecificity_47.specificity=47;var errorspecificity_48=new amp$validator$ErrorSpecificity;errorspecificity_48.code="CSS_SYNTAX_UNTERMINATED_COMMENT";errorspecificity_48.specificity=48;var errorspecificity_49=new amp$validator$ErrorSpecificity;errorspecificity_49.code="CSS_SYNTAX_UNTERMINATED_STRING"; +errorspecificity_49.specificity=49;var errorspecificity_50=new amp$validator$ErrorSpecificity;errorspecificity_50.code="CSS_SYNTAX_BAD_URL";errorspecificity_50.specificity=50;var errorspecificity_51=new amp$validator$ErrorSpecificity;errorspecificity_51.code="CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE";errorspecificity_51.specificity=51;var errorspecificity_52=new amp$validator$ErrorSpecificity;errorspecificity_52.code="CSS_SYNTAX_INVALID_DECLARATION";errorspecificity_52.specificity=52;var errorspecificity_53= +new amp$validator$ErrorSpecificity;errorspecificity_53.code="CSS_SYNTAX_INCOMPLETE_DECLARATION";errorspecificity_53.specificity=53;var errorspecificity_54=new amp$validator$ErrorSpecificity;errorspecificity_54.code="CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR";errorspecificity_54.specificity=54;var errorspecificity_55=new amp$validator$ErrorSpecificity;errorspecificity_55.code="CSS_SYNTAX_MISSING_SELECTOR";errorspecificity_55.specificity=55;var errorspecificity_56=new amp$validator$ErrorSpecificity;errorspecificity_56.code= +"CSS_SYNTAX_NOT_A_SELECTOR_START";errorspecificity_56.specificity=56;var errorspecificity_57=new amp$validator$ErrorSpecificity;errorspecificity_57.code="CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR";errorspecificity_57.specificity=57;var errorspecificity_58=new amp$validator$ErrorSpecificity;errorspecificity_58.code="CSS_SYNTAX_MISSING_URL";errorspecificity_58.specificity=58;var errorspecificity_59=new amp$validator$ErrorSpecificity;errorspecificity_59.code="CSS_SYNTAX_DISALLOWED_DOMAIN";errorspecificity_59.specificity= +59;var errorspecificity_60=new amp$validator$ErrorSpecificity;errorspecificity_60.code="CSS_SYNTAX_INVALID_URL";errorspecificity_60.specificity=60;var errorspecificity_61=new amp$validator$ErrorSpecificity;errorspecificity_61.code="CSS_SYNTAX_INVALID_URL_PROTOCOL";errorspecificity_61.specificity=61;var errorspecificity_62=new amp$validator$ErrorSpecificity;errorspecificity_62.code="CSS_SYNTAX_DISALLOWED_RELATIVE_URL";errorspecificity_62.specificity=62;var errorspecificity_63=new amp$validator$ErrorSpecificity; +errorspecificity_63.code="INCORRECT_NUM_CHILD_TAGS";errorspecificity_63.specificity=63;var errorspecificity_64=new amp$validator$ErrorSpecificity;errorspecificity_64.code="DISALLOWED_CHILD_TAG_NAME";errorspecificity_64.specificity=64;var errorspecificity_65=new amp$validator$ErrorSpecificity;errorspecificity_65.code="DISALLOWED_FIRST_CHILD_TAG_NAME";errorspecificity_65.specificity=65;var errorspecificity_66=new amp$validator$ErrorSpecificity;errorspecificity_66.code="CSS_SYNTAX_INVALID_ATTR_SELECTOR"; +errorspecificity_66.specificity=66;var errorspecificity_67=new amp$validator$ErrorSpecificity;errorspecificity_67.code="CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT";errorspecificity_67.specificity=67;var errorspecificity_68=new amp$validator$ErrorSpecificity;errorspecificity_68.code="MANDATORY_REFERENCE_POINT_MISSING";errorspecificity_68.specificity=68;var errorspecificity_69=new amp$validator$ErrorSpecificity;errorspecificity_69.code="DUPLICATE_REFERENCE_POINT";errorspecificity_69.specificity=69; +var errorspecificity_70=new amp$validator$ErrorSpecificity;errorspecificity_70.code="TAG_REFERENCE_POINT_CONFLICT";errorspecificity_70.specificity=70;var errorspecificity_71=new amp$validator$ErrorSpecificity;errorspecificity_71.code="CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR";errorspecificity_71.specificity=71;var errorspecificity_72=new amp$validator$ErrorSpecificity;errorspecificity_72.code="CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE";errorspecificity_72.specificity=72;var errorspecificity_73= +new amp$validator$ErrorSpecificity;errorspecificity_73.code="CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT";errorspecificity_73.specificity=73;var errorspecificity_74=new amp$validator$ErrorSpecificity;errorspecificity_74.code="CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE";errorspecificity_74.specificity=74;var errorspecificity_75=new amp$validator$ErrorSpecificity;errorspecificity_75.code="CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH";errorspecificity_75.specificity=75;var errorspecificity_76= +new amp$validator$ErrorSpecificity;errorspecificity_76.code="CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION";errorspecificity_76.specificity=76;var errorspecificity_77=new amp$validator$ErrorSpecificity;errorspecificity_77.code="BASE_TAG_MUST_PRECEED_ALL_URLS";errorspecificity_77.specificity=77;var errorspecificity_78=new amp$validator$ErrorSpecificity;errorspecificity_78.code="DISALLOWED_SCRIPT_TAG";errorspecificity_78.specificity=100;var errorspecificity_79=new amp$validator$ErrorSpecificity;errorspecificity_79.code= +"GENERAL_DISALLOWED_TAG";errorspecificity_79.specificity=101;var errorspecificity_80=new amp$validator$ErrorSpecificity;errorspecificity_80.code="DEPRECATED_ATTR";errorspecificity_80.specificity=102;var errorspecificity_81=new amp$validator$ErrorSpecificity;errorspecificity_81.code="DEPRECATED_TAG";errorspecificity_81.specificity=103;var errorspecificity_82=new amp$validator$ErrorSpecificity;errorspecificity_82.code="DISALLOWED_MANUFACTURED_BODY";errorspecificity_82.specificity=104;var errorspecificity_83= +new amp$validator$ErrorSpecificity;errorspecificity_83.code="DOCUMENT_TOO_COMPLEX";errorspecificity_83.specificity=105;var errorspecificity_84=new amp$validator$ErrorSpecificity;errorspecificity_84.code="INCORRECT_MIN_NUM_CHILD_TAGS";errorspecificity_84.specificity=106;var errorspecificity_85=new amp$validator$ErrorSpecificity;errorspecificity_85.code="TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS";errorspecificity_85.specificity=107;var errorspecificity_86=new amp$validator$ErrorSpecificity;errorspecificity_86.code= +"MANDATORY_LAST_CHILD_TAG";errorspecificity_86.specificity=108;var errorspecificity_87=new amp$validator$ErrorSpecificity;errorspecificity_87.code="CSS_SYNTAX_INVALID_PROPERTY";errorspecificity_87.specificity=109;var errorspecificity_88=new amp$validator$ErrorSpecificity;errorspecificity_88.code="CSS_SYNTAX_INVALID_PROPERTY_NOLIST";errorspecificity_88.specificity=110;var errorspecificity_89=new amp$validator$ErrorSpecificity;errorspecificity_89.code="CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS"; +errorspecificity_89.specificity=111;var errorspecificity_90=new amp$validator$ErrorSpecificity;errorspecificity_90.code="CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME";errorspecificity_90.specificity=112;var errorspecificity_91=new amp$validator$ErrorSpecificity;errorspecificity_91.code="CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME";errorspecificity_91.specificity=113;var descendanttaglist_0=new amp$validator$DescendantTagList;descendanttaglist_0.name="amp-story-grid-layer-allowed-descendants"; +descendanttaglist_0.allowedTags="ABBR ADDRESS AMP-ANALYTICS AMP-AUDIO AMP-EXPERIMENT AMP-FIT-TEXT AMP-FONT AMP-GFYCAT AMP-GIST AMP-GOOGLE-VRVIEW-IMAGE AMP-IMG AMP-INSTALL-SERVICEWORKER AMP-LIST AMP-LIVE-LIST AMP-PIXEL AMP-VIDEO ARTICLE ASIDE B BDI BDO BLOCKQUOTE BR CAPTION CITE CODE COL COLGROUP DATA DD DEL DFN DIV DL DT EM FIGCAPTION FIGURE FOOTER H1 H2 H3 H4 H5 H6 HEADER HGROUP HR I INS KBD LI MAIN MARK NAV NOSCRIPT OL P PRE Q RP RT RTC RUBY S SAMP SECTION SMALL SOURCE SPAN STRONG SUB SUP TABLE TBODY TD TFOOT TH THEAD TIME TR TRACK U UL VAR WBR".split(" "); +var validatorrules_0=new amp$validator$ValidatorRules([tagspec_0,tagspec_1,tagspec_2,tagspec_3,tagspec_4,tagspec_5,tagspec_6,tagspec_7,tagspec_8,tagspec_9,tagspec_10,tagspec_11,tagspec_12,tagspec_13,tagspec_14,tagspec_15,tagspec_16,tagspec_17,tagspec_18,tagspec_19,tagspec_20,tagspec_21,tagspec_22,tagspec_23,tagspec_24,tagspec_25,tagspec_26,tagspec_27,tagspec_28,tagspec_29,tagspec_30,tagspec_31,tagspec_32,tagspec_33,tagspec_34,tagspec_35,tagspec_36,tagspec_37,tagspec_38,tagspec_39,tagspec_40,tagspec_41, +tagspec_42,tagspec_43,tagspec_44,tagspec_45,tagspec_46,tagspec_47,tagspec_48,tagspec_49,tagspec_50,tagspec_51,tagspec_52,tagspec_53,tagspec_54,tagspec_55,tagspec_56,tagspec_57,tagspec_58,tagspec_59,tagspec_60,tagspec_61,tagspec_62,tagspec_63,tagspec_64,tagspec_65,tagspec_66,tagspec_67,tagspec_68,tagspec_69,tagspec_70,tagspec_71,tagspec_72,tagspec_73,tagspec_74,tagspec_75,tagspec_76,tagspec_77,tagspec_78,tagspec_79,tagspec_80,tagspec_81,tagspec_82,tagspec_83,tagspec_84,tagspec_85,tagspec_86,tagspec_87, +tagspec_88,tagspec_89,tagspec_90,tagspec_91,tagspec_92,tagspec_93,tagspec_94,tagspec_95,tagspec_96,tagspec_97,tagspec_98,tagspec_99,tagspec_100,tagspec_101,tagspec_102,tagspec_103,tagspec_104,tagspec_105,tagspec_106,tagspec_107,tagspec_108,tagspec_109,tagspec_110,tagspec_111,tagspec_112,tagspec_113,tagspec_114,tagspec_115,tagspec_116,tagspec_117,tagspec_118,tagspec_119,tagspec_120,tagspec_121,tagspec_122,tagspec_123,tagspec_124,tagspec_125,tagspec_126,tagspec_127,tagspec_128,tagspec_129,tagspec_130, +tagspec_131,tagspec_132,tagspec_133,tagspec_134,tagspec_135,tagspec_136,tagspec_137,tagspec_138,tagspec_139,tagspec_140,tagspec_141,tagspec_142,tagspec_143,tagspec_144,tagspec_145,tagspec_146,tagspec_147,tagspec_148,tagspec_149,tagspec_150,tagspec_151,tagspec_152,tagspec_153,tagspec_154,tagspec_155,tagspec_156,tagspec_157,tagspec_158,tagspec_159,tagspec_160,tagspec_161,tagspec_162,tagspec_163,tagspec_164,tagspec_165,tagspec_166,tagspec_167,tagspec_168,tagspec_169,tagspec_170,tagspec_171,tagspec_172, +tagspec_173,tagspec_174,tagspec_175,tagspec_176,tagspec_177,tagspec_178,tagspec_179,tagspec_180,tagspec_181,tagspec_182,tagspec_183,tagspec_184,tagspec_185,tagspec_186,tagspec_187,tagspec_188,tagspec_189,tagspec_190,tagspec_191,tagspec_192,tagspec_193,tagspec_194,tagspec_195,tagspec_196,tagspec_197,tagspec_198,tagspec_199,tagspec_200,tagspec_201,tagspec_202,tagspec_203,tagspec_204,tagspec_205,tagspec_206,tagspec_207,tagspec_208,tagspec_209,tagspec_210,tagspec_211,tagspec_212,tagspec_213,tagspec_214, +tagspec_215,tagspec_216,tagspec_217,tagspec_218,tagspec_219,tagspec_220,tagspec_221,tagspec_222,tagspec_223,tagspec_224,tagspec_225,tagspec_226,tagspec_227,tagspec_228,tagspec_229,tagspec_230,tagspec_231,tagspec_232,tagspec_233,tagspec_234,tagspec_235,tagspec_236,tagspec_237,tagspec_238,tagspec_239,tagspec_240,tagspec_241,tagspec_242,tagspec_243,tagspec_244,tagspec_245,tagspec_246,tagspec_247,tagspec_248,tagspec_249,tagspec_250,tagspec_251,tagspec_252,tagspec_253,tagspec_254,tagspec_255,tagspec_256, +tagspec_257,tagspec_258,tagspec_259,tagspec_260,tagspec_261,tagspec_262,tagspec_263,tagspec_264,tagspec_265,tagspec_266,tagspec_267,tagspec_268,tagspec_269,tagspec_270,tagspec_271,tagspec_272,tagspec_273,tagspec_274,tagspec_275,tagspec_276,tagspec_277,tagspec_278,tagspec_279,tagspec_280,tagspec_281,tagspec_282,tagspec_283,tagspec_284,tagspec_285,tagspec_286,tagspec_287,tagspec_288,tagspec_289,tagspec_290,tagspec_291,tagspec_292,tagspec_293,tagspec_294,tagspec_295,tagspec_296,tagspec_297,tagspec_298, +tagspec_299,tagspec_300,tagspec_301,tagspec_302,tagspec_303,tagspec_304,tagspec_305,tagspec_306,tagspec_307,tagspec_308,tagspec_309,tagspec_310,tagspec_311,tagspec_312,tagspec_313,tagspec_314,tagspec_315,tagspec_316,tagspec_317,tagspec_318,tagspec_319,tagspec_320,tagspec_321,tagspec_322,tagspec_323,tagspec_324,tagspec_325,tagspec_326,tagspec_327,tagspec_328,tagspec_329,tagspec_330,tagspec_331,tagspec_332,tagspec_333,tagspec_334,tagspec_335,tagspec_336,tagspec_337,tagspec_338,tagspec_339,tagspec_340, +tagspec_341,tagspec_342,tagspec_343,tagspec_344,tagspec_345,tagspec_346,tagspec_347,tagspec_348,tagspec_349,tagspec_350,tagspec_351,tagspec_352,tagspec_353,tagspec_354,tagspec_355,tagspec_356,tagspec_357,tagspec_358,tagspec_359,tagspec_360,tagspec_361,tagspec_362,tagspec_363,tagspec_364,tagspec_365,tagspec_366,tagspec_367,tagspec_368,tagspec_369,tagspec_370,tagspec_371,tagspec_372,tagspec_373,tagspec_374,tagspec_375,tagspec_376,tagspec_377,tagspec_378,tagspec_379,tagspec_380,tagspec_381,tagspec_382, +tagspec_383]);validatorrules_0.minValidatorRevisionRequired=295;validatorrules_0.specFileRevision=546;validatorrules_0.templateSpecUrl="https://www.ampproject.org/docs/reference/components/dynamic/amp-mustache";validatorrules_0.errorFormats=[errorformat_0,errorformat_1,errorformat_2,errorformat_3,errorformat_4,errorformat_5,errorformat_6,errorformat_7,errorformat_8,errorformat_9,errorformat_10,errorformat_11,errorformat_12,errorformat_13,errorformat_14,errorformat_15,errorformat_16,errorformat_17, +errorformat_18,errorformat_19,errorformat_20,errorformat_21,errorformat_22,errorformat_23,errorformat_24,errorformat_25,errorformat_26,errorformat_27,errorformat_28,errorformat_29,errorformat_30,errorformat_31,errorformat_32,errorformat_33,errorformat_34,errorformat_35,errorformat_36,errorformat_37,errorformat_38,errorformat_39,errorformat_40,errorformat_41,errorformat_42,errorformat_43,errorformat_44,errorformat_45,errorformat_46,errorformat_47,errorformat_48,errorformat_49,errorformat_50,errorformat_51, +errorformat_52,errorformat_53,errorformat_54,errorformat_55,errorformat_56,errorformat_57,errorformat_58,errorformat_59,errorformat_60,errorformat_61,errorformat_62,errorformat_63,errorformat_64,errorformat_65,errorformat_66,errorformat_67,errorformat_68,errorformat_69,errorformat_70,errorformat_71,errorformat_72,errorformat_73,errorformat_74,errorformat_75,errorformat_76,errorformat_77,errorformat_78,errorformat_79,errorformat_80,errorformat_81,errorformat_82,errorformat_83,errorformat_84,errorformat_85, +errorformat_86,errorformat_87,errorformat_88,errorformat_89,errorformat_90,errorformat_91];validatorrules_0.errorSpecificity=[errorspecificity_0,errorspecificity_1,errorspecificity_2,errorspecificity_3,errorspecificity_4,errorspecificity_5,errorspecificity_6,errorspecificity_7,errorspecificity_8,errorspecificity_9,errorspecificity_10,errorspecificity_11,errorspecificity_12,errorspecificity_13,errorspecificity_14,errorspecificity_15,errorspecificity_16,errorspecificity_17,errorspecificity_18,errorspecificity_19, +errorspecificity_20,errorspecificity_21,errorspecificity_22,errorspecificity_23,errorspecificity_24,errorspecificity_25,errorspecificity_26,errorspecificity_27,errorspecificity_28,errorspecificity_29,errorspecificity_30,errorspecificity_31,errorspecificity_32,errorspecificity_33,errorspecificity_34,errorspecificity_35,errorspecificity_36,errorspecificity_37,errorspecificity_38,errorspecificity_39,errorspecificity_40,errorspecificity_41,errorspecificity_42,errorspecificity_43,errorspecificity_44,errorspecificity_45, +errorspecificity_46,errorspecificity_47,errorspecificity_48,errorspecificity_49,errorspecificity_50,errorspecificity_51,errorspecificity_52,errorspecificity_53,errorspecificity_54,errorspecificity_55,errorspecificity_56,errorspecificity_57,errorspecificity_58,errorspecificity_59,errorspecificity_60,errorspecificity_61,errorspecificity_62,errorspecificity_63,errorspecificity_64,errorspecificity_65,errorspecificity_66,errorspecificity_67,errorspecificity_68,errorspecificity_69,errorspecificity_70,errorspecificity_71, +errorspecificity_72,errorspecificity_73,errorspecificity_74,errorspecificity_75,errorspecificity_76,errorspecificity_77,errorspecificity_78,errorspecificity_79,errorspecificity_80,errorspecificity_81,errorspecificity_82,errorspecificity_83,errorspecificity_84,errorspecificity_85,errorspecificity_86,errorspecificity_87,errorspecificity_88,errorspecificity_89,errorspecificity_90,errorspecificity_91];validatorrules_0.stylesSpecUrl="https://www.ampproject.org/docs/guides/author-develop/responsive/style_pages"; +validatorrules_0.amp_validator_ValidatorRules$descendantTagList=[descendanttaglist_0];validatorrules_0.scriptSpecUrl="https://www.ampproject.org/docs/reference/spec#html-tags";validatorrules_0.dispatchKeyByTagSpecId[7]="rel\x00canonical";validatorrules_0.dispatchKeyByTagSpecId[8]="rel\x00manifest";validatorrules_0.dispatchKeyByTagSpecId[9]="rel\x00stylesheet";validatorrules_0.dispatchKeyByTagSpecId[10]="itemprop\x00sameas";validatorrules_0.dispatchKeyByTagSpecId[13]="charset";validatorrules_0.dispatchKeyByTagSpecId[14]= +"name\x00viewport";validatorrules_0.dispatchKeyByTagSpecId[15]="http-equiv\x00x-ua-compatible";validatorrules_0.dispatchKeyByTagSpecId[16]="name\x00apple-itunes-app";validatorrules_0.dispatchKeyByTagSpecId[17]="name\x00amp-experiments-opt-in";validatorrules_0.dispatchKeyByTagSpecId[18]="name\x00amp-3p-iframe-src";validatorrules_0.dispatchKeyByTagSpecId[19]="name\x00amp-experiment-token";validatorrules_0.dispatchKeyByTagSpecId[20]="name\x00amp-link-variable-allowed-origin";validatorrules_0.dispatchKeyByTagSpecId[21]= +"name\x00amp-google-client-id-api";validatorrules_0.dispatchKeyByTagSpecId[22]="name\x00amp-ad-doubleclick-sra";validatorrules_0.dispatchKeyByTagSpecId[23]="name\x00amp4ads-id";validatorrules_0.dispatchKeyByTagSpecId[25]="http-equiv\x00content-type";validatorrules_0.dispatchKeyByTagSpecId[26]="http-equiv\x00content-language";validatorrules_0.dispatchKeyByTagSpecId[27]="http-equiv\x00pics-label";validatorrules_0.dispatchKeyByTagSpecId[28]="http-equiv\x00imagetoolbar";validatorrules_0.dispatchKeyByTagSpecId[29]= +"http-equiv\x00content-style-type";validatorrules_0.dispatchKeyByTagSpecId[30]="http-equiv\x00content-script-type";validatorrules_0.dispatchKeyByTagSpecId[31]="http-equiv\x00origin-trial";validatorrules_0.dispatchKeyByTagSpecId[32]="http-equiv\x00resource-type";validatorrules_0.dispatchKeyByTagSpecId[33]="name\x00amp-ad-enable-refresh";validatorrules_0.dispatchKeyByTagSpecId[38]="amp-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[39]="amp4ads-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[40]= +"amp-boilerplate\x00\x00NOSCRIPT";validatorrules_0.dispatchKeyByTagSpecId[41]="amp-keyframes";validatorrules_0.dispatchKeyByTagSpecId[176]="method\x00post";validatorrules_0.dispatchKeyByTagSpecId[177]="submitting";validatorrules_0.dispatchKeyByTagSpecId[179]="template";validatorrules_0.dispatchKeyByTagSpecId[180]="submit-error";validatorrules_0.dispatchKeyByTagSpecId[195]="src\x00https://cdn.ampproject.org/v0.js";validatorrules_0.dispatchKeyByTagSpecId[196]="src\x00https://cdn.ampproject.org/amp4ads-v0.js"; +validatorrules_0.dispatchKeyByTagSpecId[197]="type\x00application/ld+json";validatorrules_0.dispatchKeyByTagSpecId[198]="id\x00amp-rtc";validatorrules_0.dispatchKeyByTagSpecId[199]="type\x00application/json\x00AMP-IMA-VIDEO";validatorrules_0.dispatchKeyByTagSpecId[224]="id\x00amp-access";validatorrules_0.dispatchKeyByTagSpecId[230]="type\x00application/json\x00AMP-AD-EXIT";validatorrules_0.dispatchKeyByTagSpecId[233]="data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[234]="data-enable-refresh\x00"; +validatorrules_0.dispatchKeyByTagSpecId[236]="data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[238]="type\x00application/json\x00AMP-ANALYTICS";validatorrules_0.dispatchKeyByTagSpecId[243]="type\x00application/json\x00AMP-ANIMATION";validatorrules_0.dispatchKeyByTagSpecId[256]="type\x00application/json\x00AMP-STATE";validatorrules_0.dispatchKeyByTagSpecId[271]="type\x00application/json\x00AMP-EXPERIMENT";validatorrules_0.dispatchKeyByTagSpecId[348]="toolbar";var attrspec_0=new amp$validator$AttrSpec("html"); +attrspec_0.amp_validator_AttrSpec$mandatory=!0;attrspec_0.value="";var attrspec_1=new amp$validator$AttrSpec("\u26a1");attrspec_1.alternativeNames=["amp"];attrspec_1.amp_validator_AttrSpec$mandatory=!0;attrspec_1.value="";var attrspec_2=new amp$validator$AttrSpec("\u26a14ads");attrspec_2.alternativeNames=["amp4ads"];attrspec_2.amp_validator_AttrSpec$mandatory=!0;attrspec_2.value="";var attrspec_3=new amp$validator$AttrSpec("href");attrspec_3.value="/";var attrspec_4=new amp$validator$AttrSpec("target"); +attrspec_4.valueRegexCasei=-264;var attrspec_5=new amp$validator$AttrSpec("rel");attrspec_5.amp_validator_AttrSpec$mandatory=!0;attrspec_5.blacklistedValueRegex=-265;var urlspec_2=new amp$validator$UrlSpec(["http","https"]);urlspec_2.allowRelative=!0;var attrspec_6=new amp$validator$AttrSpec("href");attrspec_6.amp_validator_AttrSpec$mandatory=!0;attrspec_6.blacklistedValueRegex=-266;attrspec_6.valueUrl=urlspec_2;var attrspec_7=new amp$validator$AttrSpec("rel");attrspec_7.amp_validator_AttrSpec$mandatory= +!0;attrspec_7.dispatchKey="NAME_VALUE_DISPATCH";attrspec_7.valueCasei="canonical";var urlspec_3=new amp$validator$UrlSpec(["https"]);urlspec_3.allowRelative=!0;var attrspec_8=new amp$validator$AttrSpec("href");attrspec_8.amp_validator_AttrSpec$mandatory=!0;attrspec_8.blacklistedValueRegex=-266;attrspec_8.valueUrl=urlspec_3;var attrspec_9=new amp$validator$AttrSpec("rel");attrspec_9.amp_validator_AttrSpec$mandatory=!0;attrspec_9.dispatchKey="NAME_VALUE_DISPATCH";attrspec_9.valueCasei="manifest";var attrspec_10= +new amp$validator$AttrSpec("href");attrspec_10.amp_validator_AttrSpec$mandatory=!0;attrspec_10.valueRegex=-267;var attrspec_11=new amp$validator$AttrSpec("rel");attrspec_11.amp_validator_AttrSpec$mandatory=!0;attrspec_11.dispatchKey="NAME_VALUE_DISPATCH";attrspec_11.valueCasei="stylesheet";var attrspec_12=new amp$validator$AttrSpec("type");attrspec_12.valueCasei="text/css";var attrspec_13=new amp$validator$AttrSpec("href");attrspec_13.amp_validator_AttrSpec$mandatory=!0;var attrspec_14=new amp$validator$AttrSpec("itemprop"); +attrspec_14.amp_validator_AttrSpec$mandatory=!0;attrspec_14.dispatchKey="NAME_VALUE_DISPATCH";attrspec_14.valueCasei="sameas";var attrspec_15=new amp$validator$AttrSpec("itemprop");attrspec_15.amp_validator_AttrSpec$mandatory=!0;var attrspec_16=new amp$validator$AttrSpec("property");attrspec_16.amp_validator_AttrSpec$mandatory=!0;var attrspec_17=new amp$validator$AttrSpec("charset");attrspec_17.amp_validator_AttrSpec$mandatory=!0;attrspec_17.dispatchKey="NAME_DISPATCH";attrspec_17.valueCasei="utf-8"; +var propertyspec_0=new amp$validator$PropertySpec("width");propertyspec_0.amp_validator_PropertySpec$mandatory=!0;propertyspec_0.value="device-width";var propertyspec_1=new amp$validator$PropertySpec("height"),propertyspec_2=new amp$validator$PropertySpec("initial-scale"),propertyspec_3=new amp$validator$PropertySpec("minimum-scale");propertyspec_3.amp_validator_PropertySpec$mandatory=!0;propertyspec_3.valueDouble=1;var propertyspeclist_0=new amp$validator$PropertySpecList([propertyspec_0,propertyspec_1, +propertyspec_2,propertyspec_3,new amp$validator$PropertySpec("maximum-scale"),new amp$validator$PropertySpec("shrink-to-fit"),new amp$validator$PropertySpec("user-scalable"),new amp$validator$PropertySpec("viewport-fit")]),attrspec_18=new amp$validator$AttrSpec("content");attrspec_18.amp_validator_AttrSpec$mandatory=!0;attrspec_18.valueProperties=propertyspeclist_0;var attrspec_19=new amp$validator$AttrSpec("name");attrspec_19.amp_validator_AttrSpec$mandatory=!0;attrspec_19.value="viewport";attrspec_19.dispatchKey= +"NAME_VALUE_DISPATCH";var attrspec_20=new amp$validator$AttrSpec("http-equiv");attrspec_20.amp_validator_AttrSpec$mandatory=!0;attrspec_20.dispatchKey="NAME_VALUE_DISPATCH";attrspec_20.valueCasei="x-ua-compatible";var propertyspec_8=new amp$validator$PropertySpec("ie");propertyspec_8.value="edge";var propertyspec_9=new amp$validator$PropertySpec("chrome");propertyspec_9.value="1";var propertyspeclist_1=new amp$validator$PropertySpecList([propertyspec_8,propertyspec_9]),attrspec_21=new amp$validator$AttrSpec("content"); +attrspec_21.amp_validator_AttrSpec$mandatory=!0;attrspec_21.valueProperties=propertyspeclist_1;var attrspec_22=new amp$validator$AttrSpec("name");attrspec_22.amp_validator_AttrSpec$mandatory=!0;attrspec_22.dispatchKey="NAME_VALUE_DISPATCH";attrspec_22.valueCasei="apple-itunes-app";var attrspec_23=new amp$validator$AttrSpec("content");attrspec_23.amp_validator_AttrSpec$mandatory=!0;attrspec_23.valueRegex=-268;var attrspec_24=new amp$validator$AttrSpec("name");attrspec_24.amp_validator_AttrSpec$mandatory= +!0;attrspec_24.dispatchKey="NAME_VALUE_DISPATCH";attrspec_24.valueCasei="amp-experiments-opt-in";var attrspec_25=new amp$validator$AttrSpec("content");attrspec_25.amp_validator_AttrSpec$mandatory=!0;var attrspec_26=new amp$validator$AttrSpec("name");attrspec_26.amp_validator_AttrSpec$mandatory=!0;attrspec_26.dispatchKey="NAME_VALUE_DISPATCH";attrspec_26.valueCasei="amp-3p-iframe-src";var urlspec_4=new amp$validator$UrlSpec(["https"]),attrspec_27=new amp$validator$AttrSpec("content");attrspec_27.amp_validator_AttrSpec$mandatory= +!0;attrspec_27.valueUrl=urlspec_4;var attrspec_28=new amp$validator$AttrSpec("name");attrspec_28.amp_validator_AttrSpec$mandatory=!0;attrspec_28.dispatchKey="NAME_VALUE_DISPATCH";attrspec_28.valueCasei="amp-experiment-token";var attrspec_29=new amp$validator$AttrSpec("name");attrspec_29.amp_validator_AttrSpec$mandatory=!0;attrspec_29.dispatchKey="NAME_VALUE_DISPATCH";attrspec_29.valueCasei="amp-link-variable-allowed-origin";var attrspec_30=new amp$validator$AttrSpec("name");attrspec_30.amp_validator_AttrSpec$mandatory= +!0;attrspec_30.dispatchKey="NAME_VALUE_DISPATCH";attrspec_30.valueCasei="amp-google-client-id-api";var attrspec_31=new amp$validator$AttrSpec("name");attrspec_31.amp_validator_AttrSpec$mandatory=!0;attrspec_31.dispatchKey="NAME_VALUE_DISPATCH";attrspec_31.valueCasei="amp-ad-doubleclick-sra";var attrspec_32=new amp$validator$AttrSpec("name");attrspec_32.amp_validator_AttrSpec$mandatory=!0;attrspec_32.dispatchKey="NAME_VALUE_DISPATCH";attrspec_32.valueCasei="amp4ads-id";var attrspec_33=new amp$validator$AttrSpec("name"); +attrspec_33.blacklistedValueRegex=-269;var attrspec_34=new amp$validator$AttrSpec("http-equiv");attrspec_34.amp_validator_AttrSpec$mandatory=!0;attrspec_34.dispatchKey="NAME_VALUE_DISPATCH";attrspec_34.valueCasei="content-type";var attrspec_35=new amp$validator$AttrSpec("content");attrspec_35.amp_validator_AttrSpec$mandatory=!0;attrspec_35.valueCasei="text/html; charset=utf-8";var attrspec_36=new amp$validator$AttrSpec("http-equiv");attrspec_36.amp_validator_AttrSpec$mandatory=!0;attrspec_36.dispatchKey= +"NAME_VALUE_DISPATCH";attrspec_36.valueCasei="content-language";var attrspec_37=new amp$validator$AttrSpec("http-equiv");attrspec_37.amp_validator_AttrSpec$mandatory=!0;attrspec_37.dispatchKey="NAME_VALUE_DISPATCH";attrspec_37.valueCasei="pics-label";var attrspec_38=new amp$validator$AttrSpec("http-equiv");attrspec_38.amp_validator_AttrSpec$mandatory=!0;attrspec_38.dispatchKey="NAME_VALUE_DISPATCH";attrspec_38.valueCasei="imagetoolbar";var attrspec_39=new amp$validator$AttrSpec("http-equiv");attrspec_39.amp_validator_AttrSpec$mandatory= +!0;attrspec_39.dispatchKey="NAME_VALUE_DISPATCH";attrspec_39.valueCasei="content-style-type";var attrspec_40=new amp$validator$AttrSpec("content");attrspec_40.amp_validator_AttrSpec$mandatory=!0;attrspec_40.valueCasei="text/css";var attrspec_41=new amp$validator$AttrSpec("http-equiv");attrspec_41.amp_validator_AttrSpec$mandatory=!0;attrspec_41.dispatchKey="NAME_VALUE_DISPATCH";attrspec_41.valueCasei="content-script-type";var attrspec_42=new amp$validator$AttrSpec("content");attrspec_42.amp_validator_AttrSpec$mandatory= +!0;attrspec_42.valueCasei="text/javascript";var attrspec_43=new amp$validator$AttrSpec("http-equiv");attrspec_43.amp_validator_AttrSpec$mandatory=!0;attrspec_43.dispatchKey="NAME_VALUE_DISPATCH";attrspec_43.valueCasei="origin-trial";var attrspec_44=new amp$validator$AttrSpec("http-equiv");attrspec_44.amp_validator_AttrSpec$mandatory=!0;attrspec_44.dispatchKey="NAME_VALUE_DISPATCH";attrspec_44.valueCasei="resource-type";var attrspec_45=new amp$validator$AttrSpec("name");attrspec_45.amp_validator_AttrSpec$mandatory= +!0;attrspec_45.dispatchKey="NAME_VALUE_DISPATCH";attrspec_45.valueCasei="amp-ad-enable-refresh";var attrspec_46=new amp$validator$AttrSpec("amp-custom");attrspec_46.amp_validator_AttrSpec$mandatory=!0;attrspec_46.value="";var attrspec_47=new amp$validator$AttrSpec("amp-boilerplate");attrspec_47.amp_validator_AttrSpec$mandatory=!0;attrspec_47.value="";attrspec_47.dispatchKey="NAME_VALUE_PARENT_DISPATCH";var attrspec_48=new amp$validator$AttrSpec("amp4ads-boilerplate");attrspec_48.amp_validator_AttrSpec$mandatory= +!0;attrspec_48.value="";attrspec_48.dispatchKey="NAME_VALUE_PARENT_DISPATCH";var attrspec_49=new amp$validator$AttrSpec("amp-keyframes");attrspec_49.amp_validator_AttrSpec$mandatory=!0;attrspec_49.value="";attrspec_49.dispatchKey="NAME_DISPATCH";var attrspec_50=new amp$validator$AttrSpec("reversed");attrspec_50.value="";var attrspec_51=new amp$validator$AttrSpec("start");attrspec_51.valueRegex=-270;var attrspec_52=new amp$validator$AttrSpec("type");attrspec_52.valueRegex=-271;var attrspec_53=new amp$validator$AttrSpec("value"); +attrspec_53.valueRegex=-270;var urlspec_5=new amp$validator$UrlSpec("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema twitter viber whatsapp".split(" "));urlspec_5.allowRelative=!0;urlspec_5.allowEmpty=!0;var attrspec_54=new amp$validator$AttrSpec("href");attrspec_54.blacklistedValueRegex=-266;attrspec_54.valueUrl=urlspec_5;var attrspec_55=new amp$validator$AttrSpec("rel");attrspec_55.blacklistedValueRegex=-272;var attrspec_56=new amp$validator$AttrSpec("role"); +attrspec_56.implicit=!0;var attrspec_57=new amp$validator$AttrSpec("tabindex");attrspec_57.implicit=!0;var attrspec_58=new amp$validator$AttrSpec("target");attrspec_58.valueRegex=-264;var attrspec_59=new amp$validator$AttrSpec("type");attrspec_59.valueCasei="text/html";var attrspec_60=new amp$validator$AttrSpec("longdesc");attrspec_60.blacklistedValueRegex=-266;attrspec_60.valueUrl=urlspec_2;var urlspec_6=new amp$validator$UrlSpec(["data","https"]);urlspec_6.allowRelative=!0;var attrspec_61=new amp$validator$AttrSpec("src"); +attrspec_61.alternativeNames=["srcset"];attrspec_61.amp_validator_AttrSpec$mandatory=!0;attrspec_61.blacklistedValueRegex=-266;attrspec_61.valueUrl=urlspec_6;var attrspec_62=new amp$validator$AttrSpec("frameborder");attrspec_62.valueRegex=-273;var attrspec_63=new amp$validator$AttrSpec("resizable");attrspec_63.value="";var attrspec_64=new amp$validator$AttrSpec("scrolling");attrspec_64.valueRegex=-274;var urlspec_7=new amp$validator$UrlSpec(["data","https"]);urlspec_7.allowRelative=!1;var attrspec_65= +new amp$validator$AttrSpec("src");attrspec_65.blacklistedValueRegex=-266;attrspec_65.mandatoryOneof=-275;attrspec_65.valueUrl=urlspec_7;var attrspec_66=new amp$validator$AttrSpec("srcdoc");attrspec_66.mandatoryOneof=-275;var attrspec_67=new amp$validator$AttrSpec("muted");attrspec_67.amp_validator_AttrSpec$deprecation="autoplay";attrspec_67.amp_validator_AttrSpec$deprecationUrl="https://www.ampproject.org/docs/reference/components/amp-video";var attrspec_68=new amp$validator$AttrSpec("src");attrspec_68.blacklistedValueRegex= +-266;attrspec_68.valueUrl=urlspec_7;var attrspec_69=new amp$validator$AttrSpec("src");attrspec_69.blacklistedValueRegex=-266;attrspec_69.valueUrl=urlspec_3;var attrspec_70=new amp$validator$AttrSpec("src");attrspec_70.amp_validator_AttrSpec$mandatory=!0;attrspec_70.blacklistedValueRegex=-266;attrspec_70.valueUrl=urlspec_3;var attrspec_71=new amp$validator$AttrSpec("type");attrspec_71.amp_validator_AttrSpec$mandatory=!0;var urlspec_8=new amp$validator$UrlSpec(["data","http","https"]);urlspec_8.allowRelative= +!0;urlspec_8.allowEmpty=!1;var attrspec_72=new amp$validator$AttrSpec("xlink:href");attrspec_72.alternativeNames=["href"];attrspec_72.blacklistedValueRegex=-276;attrspec_72.valueUrl=urlspec_8;var attrspec_73=new amp$validator$AttrSpec("version");attrspec_73.valueRegex=-277;var attrspec_74=new amp$validator$AttrSpec("border");attrspec_74.valueRegex=-273;var attrspec_75=new amp$validator$AttrSpec("action");attrspec_75.amp_validator_AttrSpec$mandatory=!0;attrspec_75.blacklistedValueRegex=-266;attrspec_75.valueUrl= +urlspec_3;var attrspec_76=new amp$validator$AttrSpec("action-xhr");attrspec_76.blacklistedValueRegex=-266;attrspec_76.valueUrl=urlspec_3;var attrspec_77=new amp$validator$AttrSpec("custom-validation-reporting");attrspec_77.valueRegex=-278;var attrspec_78=new amp$validator$AttrSpec("method");attrspec_78.valueCasei="get";var attrspec_79=new amp$validator$AttrSpec("target");attrspec_79.amp_validator_AttrSpec$mandatory=!0;attrspec_79.valueRegexCasei=-279;var attrspec_80=new amp$validator$AttrSpec("verify-xhr"); +attrspec_80.blacklistedValueRegex=-266;attrspec_80.valueUrl=urlspec_3;var attrspec_81=new amp$validator$AttrSpec("action-xhr");attrspec_81.amp_validator_AttrSpec$mandatory=!0;attrspec_81.blacklistedValueRegex=-266;attrspec_81.valueUrl=urlspec_3;var attrspec_82=new amp$validator$AttrSpec("custom-validation-reporting");attrspec_82.valueRegex=-280;var attrspec_83=new amp$validator$AttrSpec("method");attrspec_83.amp_validator_AttrSpec$mandatory=!0;attrspec_83.dispatchKey="NAME_VALUE_DISPATCH";attrspec_83.valueCasei= +"post";var attrspec_84=new amp$validator$AttrSpec("submitting");attrspec_84.amp_validator_AttrSpec$mandatory=!0;attrspec_84.dispatchKey="NAME_DISPATCH";var attrspec_85=new amp$validator$AttrSpec("submit-success");attrspec_85.amp_validator_AttrSpec$mandatory=!0;var attrspec_86=new amp$validator$AttrSpec("template");attrspec_86.amp_validator_AttrSpec$mandatory=!0;attrspec_86.dispatchKey="NAME_DISPATCH";var attrspec_87=new amp$validator$AttrSpec("submit-error");attrspec_87.amp_validator_AttrSpec$mandatory= +!0;attrspec_87.dispatchKey="NAME_DISPATCH";var attrspec_88=new amp$validator$AttrSpec("type");attrspec_88.blacklistedValueRegex=-281;var attrspec_89=new amp$validator$AttrSpec("disabled");attrspec_89.value="";var attrspec_90=new amp$validator$AttrSpec("open-button");attrspec_90.value="";var attrspec_91=new amp$validator$AttrSpec("async");attrspec_91.amp_validator_AttrSpec$mandatory=!0;attrspec_91.value="";var attrspec_92=new amp$validator$AttrSpec("src");attrspec_92.amp_validator_AttrSpec$mandatory= +!0;attrspec_92.value="https://cdn.ampproject.org/v0.js";attrspec_92.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_93=new amp$validator$AttrSpec("type");attrspec_93.valueCasei="text/javascript";var attrspec_94=new amp$validator$AttrSpec("src");attrspec_94.amp_validator_AttrSpec$mandatory=!0;attrspec_94.value="https://cdn.ampproject.org/amp4ads-v0.js";attrspec_94.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_95=new amp$validator$AttrSpec("type");attrspec_95.amp_validator_AttrSpec$mandatory=!0;attrspec_95.dispatchKey= +"NAME_VALUE_DISPATCH";attrspec_95.valueCasei="application/ld+json";var attrspec_96=new amp$validator$AttrSpec("type");attrspec_96.amp_validator_AttrSpec$mandatory=!0;attrspec_96.valueCasei="application/json";var attrspec_97=new amp$validator$AttrSpec("id");attrspec_97.amp_validator_AttrSpec$mandatory=!0;attrspec_97.dispatchKey="NAME_VALUE_DISPATCH";attrspec_97.valueCasei="amp-rtc";var attrspec_98=new amp$validator$AttrSpec("type");attrspec_98.amp_validator_AttrSpec$mandatory=!0;attrspec_98.dispatchKey= +"NAME_VALUE_PARENT_DISPATCH";attrspec_98.valueCasei="application/json";var attrspec_99=new amp$validator$AttrSpec("referrerpolicy");attrspec_99.value="no-referrer";var urlspec_9=new amp$validator$UrlSpec(["https"]);urlspec_9.allowRelative=!0;urlspec_9.allowEmpty=!0;var attrspec_100=new amp$validator$AttrSpec("src");attrspec_100.amp_validator_AttrSpec$mandatory=!0;attrspec_100.blacklistedValueRegex=-266;attrspec_100.valueUrl=urlspec_9;var attrspec_101=new amp$validator$AttrSpec("autoplay");attrspec_101.value= +"";var attrspec_102=new amp$validator$AttrSpec("data-id");attrspec_102.amp_validator_AttrSpec$mandatory=!0;var attrspec_103=new amp$validator$AttrSpec("id");attrspec_103.amp_validator_AttrSpec$mandatory=!0;attrspec_103.value="amp-access";attrspec_103.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_104=new amp$validator$AttrSpec("disable-session-states");attrspec_104.value="";var attrspec_105=new amp$validator$AttrSpec("expanded");attrspec_105.value="";var attrspec_106=new amp$validator$AttrSpec("id"); +attrspec_106.amp_validator_AttrSpec$mandatory=!0;var attrspec_107=new amp$validator$AttrSpec("type");attrspec_107.amp_validator_AttrSpec$mandatory=!0;attrspec_107.value="application/json";attrspec_107.dispatchKey="NAME_VALUE_PARENT_DISPATCH";var attrspec_108=new amp$validator$AttrSpec("data-multi-size");attrspec_108.amp_validator_AttrSpec$mandatory=!0;attrspec_108.value="";attrspec_108.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_109=new amp$validator$AttrSpec("data-enable-refresh");attrspec_109.amp_validator_AttrSpec$mandatory= +!0;attrspec_109.value="";attrspec_109.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_110=new amp$validator$AttrSpec("config");attrspec_110.blacklistedValueRegex=-266;attrspec_110.valueUrl=urlspec_9;var attrspec_111=new amp$validator$AttrSpec("trigger");attrspec_111.value="visibility";var attrspec_112=new amp$validator$AttrSpec("data-apester-media-id");attrspec_112.mandatoryOneof=-282;attrspec_112.valueRegex=-283;var attrspec_113=new amp$validator$AttrSpec("data-apester-channel-token");attrspec_113.mandatoryOneof= +-282;attrspec_113.valueRegex=-283;var attrspec_114=new amp$validator$AttrSpec("autoplay");attrspec_114.amp_validator_AttrSpec$mandatory=!0;attrspec_114.value="";var attrtriggerspec_0=new amp$validator$AttrTriggerSpec(["src"]),attrspec_115=new amp$validator$AttrSpec("credentials");attrspec_115.trigger=attrtriggerspec_0;var attrspec_116=new amp$validator$AttrSpec("expression");attrspec_116.amp_validator_AttrSpec$mandatory=!0;var attrspec_117=new amp$validator$AttrSpec("data-outstream");attrspec_117.mandatoryOneof= +-284;attrspec_117.valueRegex=-285;var attrspec_118=new amp$validator$AttrSpec("data-partner");attrspec_118.amp_validator_AttrSpec$mandatory=!0;attrspec_118.valueRegex=-285;var attrspec_119=new amp$validator$AttrSpec("data-player");attrspec_119.amp_validator_AttrSpec$mandatory=!0;attrspec_119.valueRegex=-285;var attrspec_120=new amp$validator$AttrSpec("data-playlist");attrspec_120.mandatoryOneof=-284;attrspec_120.valueRegex=-285;var attrspec_121=new amp$validator$AttrSpec("data-video");attrspec_121.mandatoryOneof= +-284;attrspec_121.valueRegex=-285;var attrspec_122=new amp$validator$AttrSpec("data-account");attrspec_122.amp_validator_AttrSpec$mandatory=!0;var urlspec_10=new amp$validator$UrlSpec(["https"]);urlspec_10.allowRelative=!1;var attrspec_123=new amp$validator$AttrSpec("config");attrspec_123.amp_validator_AttrSpec$mandatory=!0;attrspec_123.blacklistedValueRegex=-266;attrspec_123.valueUrl=urlspec_10;var attrspec_124=new amp$validator$AttrSpec("arrows");attrspec_124.value="";var attrspec_125=new amp$validator$AttrSpec("delay"); +attrspec_125.valueRegex=-285;var attrspec_126=new amp$validator$AttrSpec("dots");attrspec_126.value="";var attrspec_127=new amp$validator$AttrSpec("loop");attrspec_127.value="";var attrspec_128=new amp$validator$AttrSpec("type");attrspec_128.valueRegex=-286;var attrspec_129=new amp$validator$AttrSpec("data-endscreen-enable");attrspec_129.valueRegex=-287;var attrspec_130=new amp$validator$AttrSpec("data-info");attrspec_130.valueRegex=-287;var attrspec_131=new amp$validator$AttrSpec("data-mute");attrspec_131.valueRegex= +-287;var attrspec_132=new amp$validator$AttrSpec("data-sharing-enable");attrspec_132.valueRegex=-287;var attrspec_133=new amp$validator$AttrSpec("data-start");attrspec_133.valueRegex=-285;var attrspec_134=new amp$validator$AttrSpec("data-ui-highlight");attrspec_134.valueRegexCasei=-288;var attrspec_135=new amp$validator$AttrSpec("data-ui-logo");attrspec_135.valueRegex=-287;var attrspec_136=new amp$validator$AttrSpec("data-videoid");attrspec_136.amp_validator_AttrSpec$mandatory=!0;attrspec_136.valueRegexCasei= +-289;var attrspec_137=new amp$validator$AttrSpec("data-href");attrspec_137.amp_validator_AttrSpec$mandatory=!0;var urlspec_11=new amp$validator$UrlSpec(["http","https"]);urlspec_11.allowRelative=!1;var attrspec_138=new amp$validator$AttrSpec("data-href");attrspec_138.amp_validator_AttrSpec$mandatory=!0;attrspec_138.valueUrl=urlspec_11;var attrspec_139=new amp$validator$AttrSpec("font-family");attrspec_139.amp_validator_AttrSpec$mandatory=!0;var attrspec_140=new amp$validator$AttrSpec("timeout");attrspec_140.valueRegex= +-285;var attrspec_141=new amp$validator$AttrSpec("height");attrspec_141.amp_validator_AttrSpec$mandatory=!0;var attrspec_142=new amp$validator$AttrSpec("data-gfyid");attrspec_142.amp_validator_AttrSpec$mandatory=!0;var attrspec_143=new amp$validator$AttrSpec("noautoplay");attrspec_143.value="";var attrspec_144=new amp$validator$AttrSpec("data-gistid");attrspec_144.amp_validator_AttrSpec$mandatory=!0;var attrspec_145=new amp$validator$AttrSpec("data-eid");attrspec_145.amp_validator_AttrSpec$mandatory= +!0;var attrspec_146=new amp$validator$AttrSpec("allowfullscreen");attrspec_146.value="";var attrspec_147=new amp$validator$AttrSpec("allowpaymentrequest");attrspec_147.value="";var attrspec_148=new amp$validator$AttrSpec("allowtransparency");attrspec_148.value="";var attrspec_149=new amp$validator$AttrSpec("src");attrspec_149.blacklistedValueRegex=-266;attrspec_149.mandatoryOneof=-275;attrspec_149.valueUrl=urlspec_6;var attrspec_150=new amp$validator$AttrSpec("[src]");attrspec_150.trigger=attrtriggerspec_0; +var attrspec_151=new amp$validator$AttrSpec("data-src");attrspec_151.blacklistedValueRegex=-266;attrspec_151.valueUrl=urlspec_3;var attrspec_152=new amp$validator$AttrSpec("data-tag");attrspec_152.amp_validator_AttrSpec$mandatory=!0;attrspec_152.valueUrl=urlspec_3;var attrspec_153=new amp$validator$AttrSpec("data-imgur-id");attrspec_153.amp_validator_AttrSpec$mandatory=!0;var attrspec_154=new amp$validator$AttrSpec("data-shortcode");attrspec_154.amp_validator_AttrSpec$mandatory=!0;var attrspec_155= +new amp$validator$AttrSpec("data-iframe-src");attrspec_155.blacklistedValueRegex=-266;attrspec_155.valueUrl=urlspec_3;var attrspec_156=new amp$validator$AttrSpec("data-videoid");attrspec_156.amp_validator_AttrSpec$mandatory=!0;attrspec_156.valueRegex=-285;var attrspec_157=new amp$validator$AttrSpec("data-media-id");attrspec_157.valueRegexCasei=-290;attrspec_157.mandatoryOneof=-291;var attrspec_158=new amp$validator$AttrSpec("data-player-id");attrspec_158.amp_validator_AttrSpec$mandatory=!0;attrspec_158.valueRegexCasei= +-290;var attrspec_159=new amp$validator$AttrSpec("data-playlist-id");attrspec_159.valueRegexCasei=-290;attrspec_159.mandatoryOneof=-291;var attrspec_160=new amp$validator$AttrSpec("data-partner");attrspec_160.amp_validator_AttrSpec$mandatory=!0;var attrspec_161=new amp$validator$AttrSpec("data-max-items-per-page");attrspec_161.amp_validator_AttrSpec$mandatory=!0;attrspec_161.valueRegex=-292;var attrspec_162=new amp$validator$AttrSpec("data-poll-interval");attrspec_162.valueRegex=-293;var attrspec_163= +new amp$validator$AttrSpec("update");attrspec_163.amp_validator_AttrSpec$mandatory=!0;var attrspec_164=new amp$validator$AttrSpec("items");attrspec_164.amp_validator_AttrSpec$mandatory=!0;var attrspec_165=new amp$validator$AttrSpec("pagination");attrspec_165.amp_validator_AttrSpec$mandatory=!0;var attrspec_166=new amp$validator$AttrSpec("data-sort-time");attrspec_166.amp_validator_AttrSpec$mandatory=!0;var attrspec_167=new amp$validator$AttrSpec("type");attrspec_167.amp_validator_AttrSpec$mandatory= +!0;attrspec_167.value="amp-mustache";var attrspec_168=new amp$validator$AttrSpec("data-client");attrspec_168.amp_validator_AttrSpec$mandatory=!0;var attrspec_169=new amp$validator$AttrSpec("data-mediaid");attrspec_169.amp_validator_AttrSpec$mandatory=!0;attrspec_169.valueRegex=-294;var attrspec_170=new amp$validator$AttrSpec("data-mode");attrspec_170.valueRegex=-295;var urlspec_12=new amp$validator$UrlSpec(["https","http"]);urlspec_12.allowEmpty=!0;var attrspec_171=new amp$validator$AttrSpec("data-origin"); +attrspec_171.valueUrl=urlspec_12;var attrspec_172=new amp$validator$AttrSpec("data-streamtype");attrspec_172.valueRegex=-296;var attrspec_173=new amp$validator$AttrSpec("data-bcid");attrspec_173.amp_validator_AttrSpec$mandatory=!0;var attrspec_174=new amp$validator$AttrSpec("data-pid");attrspec_174.amp_validator_AttrSpec$mandatory=!0;var attrspec_175=new amp$validator$AttrSpec("data-embedcode");attrspec_175.amp_validator_AttrSpec$mandatory=!0;var attrspec_176=new amp$validator$AttrSpec("data-pcode"); +attrspec_176.amp_validator_AttrSpec$mandatory=!0;var attrspec_177=new amp$validator$AttrSpec("data-playerid");attrspec_177.amp_validator_AttrSpec$mandatory=!0;var attrspec_178=new amp$validator$AttrSpec("data-do");attrspec_178.amp_validator_AttrSpec$mandatory=!0;var attrspec_179=new amp$validator$AttrSpec("src");attrspec_179.mandatoryOneof=-297;var attrspec_180=new amp$validator$AttrSpec("data-item");attrspec_180.mandatoryOneof=-297;var attrspec_181=new amp$validator$AttrSpec("data-item-info");attrspec_181.valueRegexCasei= +-298;var attrspec_182=new amp$validator$AttrSpec("data-share-buttons");attrspec_182.valueRegexCasei=-298;var attrspec_183=new amp$validator$AttrSpec("data-comments");attrspec_183.valueRegexCasei=-298;var attrspec_184=new amp$validator$AttrSpec("intersection-ratios");attrspec_184.valueRegex=-299;var attrspec_185=new amp$validator$AttrSpec("viewport-margins");attrspec_185.valueRegex=-300;var attrspec_186=new amp$validator$AttrSpec("data-embed-id");attrspec_186.amp_validator_AttrSpec$mandatory=!0;attrspec_186.valueRegex= +-301;var attrspec_187=new amp$validator$AttrSpec("data-embedlive");attrspec_187.valueRegexCasei=-298;var attrspec_188=new amp$validator$AttrSpec("data-embedparent");attrspec_188.valueRegexCasei=-298;var attrspec_189=new amp$validator$AttrSpec("data-embedtype");attrspec_189.amp_validator_AttrSpec$mandatory=!0;attrspec_189.valueRegexCasei=-302;var attrspec_190=new amp$validator$AttrSpec("data-src");attrspec_190.amp_validator_AttrSpec$mandatory=!0;var attrspec_191=new amp$validator$AttrSpec("data-riddle-id"); +attrspec_191.amp_validator_AttrSpec$mandatory=!0;attrspec_191.valueRegex=-285;var attrspec_192=new amp$validator$AttrSpec("keyboard-select-mode");attrspec_192.valueRegexCasei=-303;var attrspec_193=new amp$validator$AttrSpec("multiple");attrspec_193.value="";var attrspec_194=new amp$validator$AttrSpec("option");attrspec_194.amp_validator_AttrSpec$mandatory=!0;var attrspec_195=new amp$validator$AttrSpec("selected");attrspec_195.value="";var attrspec_196=new amp$validator$AttrSpec("side");attrspec_196.valueRegex= +-304;var attrspec_197=new amp$validator$AttrSpec("toolbar");attrspec_197.amp_validator_AttrSpec$mandatory=!0;attrspec_197.dispatchKey="NAME_DISPATCH";var attrspec_198=new amp$validator$AttrSpec("toolbar-target");attrspec_198.amp_validator_AttrSpec$mandatory=!0;var urlspec_13=new amp$validator$UrlSpec("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema viber whatsapp".split(" "));urlspec_13.allowRelative=!1;var attrspec_199=new amp$validator$AttrSpec("data-share-endpoint"); +attrspec_199.blacklistedValueRegex=-266;attrspec_199.valueUrl=urlspec_13;var attrspec_200=new amp$validator$AttrSpec("data-color");attrspec_200.valueRegexCasei=-288;var attrspec_201=new amp$validator$AttrSpec("data-playlistid");attrspec_201.mandatoryOneof=-305;attrspec_201.valueRegex=-285;var attrspec_202=new amp$validator$AttrSpec("data-secret-token");attrspec_202.valueRegex=-306;var attrspec_203=new amp$validator$AttrSpec("data-trackid");attrspec_203.mandatoryOneof=-305;attrspec_203.valueRegex= +-285;var attrspec_204=new amp$validator$AttrSpec("data-visual");attrspec_204.valueRegex=-287;var attrspec_205=new amp$validator$AttrSpec("data-content-id");attrspec_205.amp_validator_AttrSpec$mandatory=!0;var attrspec_206=new amp$validator$AttrSpec("data-domain");attrspec_206.amp_validator_AttrSpec$mandatory=!0;var attrspec_207=new amp$validator$AttrSpec("data-items");attrspec_207.amp_validator_AttrSpec$mandatory=!0;var attrspec_208=new amp$validator$AttrSpec("data-mode");attrspec_208.amp_validator_AttrSpec$mandatory= +!0;attrspec_208.valueRegexCasei=-307;var attrspec_209=new amp$validator$AttrSpec("data-player-id");attrspec_209.amp_validator_AttrSpec$mandatory=!0;attrspec_209.valueRegexCasei=-289;var attrspec_210=new amp$validator$AttrSpec("data-site-id");attrspec_210.amp_validator_AttrSpec$mandatory=!0;attrspec_210.valueRegex=-285;var attrspec_211=new amp$validator$AttrSpec("standalone");attrspec_211.amp_validator_AttrSpec$mandatory=!0;attrspec_211.value="";var urlspec_14=new amp$validator$UrlSpec(["http","https"]), +attrspec_212=new amp$validator$AttrSpec("bookend-config-src");attrspec_212.valueUrl=urlspec_14;var attrspec_213=new amp$validator$AttrSpec("background-audio");attrspec_213.valueUrl=urlspec_14;var attrspec_214=new amp$validator$AttrSpec("template");attrspec_214.amp_validator_AttrSpec$mandatory=!0;attrspec_214.valueRegex=-308;var attrspec_215=new amp$validator$AttrSpec("align-content");attrspec_215.valueRegex=-309;var attrspec_216=new amp$validator$AttrSpec("align-items");attrspec_216.valueRegex=-310; +var attrspec_217=new amp$validator$AttrSpec("align-self");attrspec_217.valueRegex=-310;var attrspec_218=new amp$validator$AttrSpec("justify-content");attrspec_218.valueRegex=-309;var attrspec_219=new amp$validator$AttrSpec("justify-items");attrspec_219.valueRegex=-310;var attrspec_220=new amp$validator$AttrSpec("justify-self");attrspec_220.valueRegex=-310;var attrspec_221=new amp$validator$AttrSpec("animate-in");attrspec_221.valueRegex=-311;var attrspec_222=new amp$validator$AttrSpec("cutoff");attrspec_222.valueRegex= +-292;var attrspec_223=new amp$validator$AttrSpec("datetime");attrspec_223.amp_validator_AttrSpec$mandatory=!0;attrspec_223.valueRegex=-312;var attrspec_224=new amp$validator$AttrSpec("data-tweetid");attrspec_224.amp_validator_AttrSpec$mandatory=!0;var urlspec_15=new amp$validator$UrlSpec(["https"]);urlspec_15.allowRelative=!1;urlspec_15.allowEmpty=!1;var attrspec_225=new amp$validator$AttrSpec("data-dismiss-href");attrspec_225.valueUrl=urlspec_15;var attrspec_226=new amp$validator$AttrSpec("data-show-if-href"); +attrspec_226.valueUrl=urlspec_15;var attrspec_227=new amp$validator$AttrSpec("enctype");attrspec_227.value="application/x-www-form-urlencoded";var attrspec_228=new amp$validator$AttrSpec("poster");attrspec_228.amp_validator_AttrSpec$mandatory=!0;var attrspec_229=new amp$validator$AttrSpec("data-vineid");attrspec_229.amp_validator_AttrSpec$mandatory=!0;var attrspec_230=new amp$validator$AttrSpec("data-embedtype");attrspec_230.amp_validator_AttrSpec$mandatory=!0;var attrspec_231=new amp$validator$AttrSpec("helper-iframe-url"); +attrspec_231.amp_validator_AttrSpec$mandatory=!0;attrspec_231.valueUrl=urlspec_10;var attrspec_232=new amp$validator$AttrSpec("id");attrspec_232.amp_validator_AttrSpec$mandatory=!0;attrspec_232.valueRegex=-313;var attrspec_233=new amp$validator$AttrSpec("permission-dialog-url");attrspec_233.amp_validator_AttrSpec$mandatory=!0;attrspec_233.valueUrl=urlspec_10;var attrspec_234=new amp$validator$AttrSpec("service-worker-url");attrspec_234.amp_validator_AttrSpec$mandatory=!0;attrspec_234.valueUrl=urlspec_10; +var attrspec_235=new amp$validator$AttrSpec("visibility");attrspec_235.amp_validator_AttrSpec$mandatory=!0;attrspec_235.valueRegex=-314;var attrspec_236=new amp$validator$AttrSpec("credentials");attrspec_236.valueRegexCasei=-315;var attrspec_237=new amp$validator$AttrSpec("data-live-channelid");attrspec_237.mandatoryOneof=-316;attrspec_237.valueRegex=-294;var attrspec_238=new amp$validator$AttrSpec("data-videoid");attrspec_238.mandatoryOneof=-316;attrspec_238.valueRegex=-294;var attrspec_239=new amp$validator$AttrSpec("charset"); +attrspec_239.valueCasei="utf-8";var urlspec_16=new amp$validator$UrlSpec(["http","https"]);urlspec_16.allowRelative=!0;urlspec_16.allowEmpty=!0;var attrspec_240=new amp$validator$AttrSpec("cite");attrspec_240.blacklistedValueRegex=-266;attrspec_240.valueUrl=urlspec_16;var attrspec_241=new amp$validator$AttrSpec("src");attrspec_241.amp_validator_AttrSpec$mandatory=!0;attrspec_241.blacklistedValueRegex=-266;attrspec_241.valueUrl=urlspec_10;var attrspec_242=new amp$validator$AttrSpec("default");attrspec_242.value= +"";var attrspec_243=new amp$validator$AttrSpec("kind");attrspec_243.valueRegex=-317;var attrspec_244=new amp$validator$AttrSpec("kind");attrspec_244.amp_validator_AttrSpec$mandatory=!0;attrspec_244.valueCasei="subtitles";var attrspec_245=new amp$validator$AttrSpec("srclang");attrspec_245.amp_validator_AttrSpec$mandatory=!0;var urlspec_17=new amp$validator$UrlSpec(["http","https"]);urlspec_17.allowRelative=!0;urlspec_17.allowEmpty=!1;var attrspec_246=new amp$validator$AttrSpec("xlink:href");attrspec_246.alternativeNames= +["href"];attrspec_246.valueUrl=urlspec_17;var attrspec_247=new amp$validator$AttrSpec("style");attrspec_247.blacklistedValueRegex=-318;var attrspec_248=new amp$validator$AttrSpec("name");attrspec_248.blacklistedValueRegex=-319;var urlspec_18=new amp$validator$UrlSpec(["data","http","https"]);urlspec_18.allowRelative=!0;var attrspec_249=new amp$validator$AttrSpec("src");attrspec_249.alternativeNames=["srcset"];attrspec_249.amp_validator_AttrSpec$mandatory=!0;attrspec_249.blacklistedValueRegex=-266; +attrspec_249.valueUrl=urlspec_18;var attrspec_250=new amp$validator$AttrSpec("noloading");attrspec_250.value="";var attrspec_251=new amp$validator$AttrSpec("rel");attrspec_251.blacklistedValueRegex=-320;var attrspec_252=new amp$validator$AttrSpec("class");attrspec_252.blacklistedValueRegex=-321;var attrspec_253=new amp$validator$AttrSpec("hidden");attrspec_253.value="";var attrspec_254=new amp$validator$AttrSpec("id");attrspec_254.blacklistedValueRegex=-322;var attrtriggerspec_1=new amp$validator$AttrTriggerSpec(["role", +"tabindex"]);attrtriggerspec_1.ifValueRegex=-323;var attrspec_255=new amp$validator$AttrSpec("on");attrspec_255.trigger=attrtriggerspec_1;var attrspec_256=new amp$validator$AttrSpec("placeholder");attrspec_256.value="";var attrspec_257=new amp$validator$AttrSpec("fallback");attrspec_257.value="";var attrspec_258=new amp$validator$AttrSpec("validation-for");attrspec_258.trigger=new amp$validator$AttrTriggerSpec(["visible-when-invalid"]);var attrtriggerspec_3=new amp$validator$AttrTriggerSpec(["validation-for"]), +attrspec_259=new amp$validator$AttrSpec("visible-when-invalid");attrspec_259.valueRegex=-324;attrspec_259.trigger=attrtriggerspec_3;var attrspec_260=new amp$validator$AttrSpec("muted");attrspec_260.value="";var attrspec_261=new amp$validator$AttrSpec("controls");attrspec_261.value="";var attrspec_262=new amp$validator$AttrSpec("disableremoteplayback");attrspec_262.value="";var attrspec_263=new amp$validator$AttrSpec("preload");attrspec_263.valueRegex=-325;validatorrules_0.amp_validator_ValidatorRules$attrs= +[attrspec_0,attrspec_1,attrspec_2,attrspec_3,attrspec_4,attrspec_5,attrspec_6,attrspec_7,attrspec_8,attrspec_9,attrspec_10,attrspec_11,attrspec_12,attrspec_13,attrspec_14,attrspec_15,attrspec_16,attrspec_17,attrspec_18,attrspec_19,attrspec_20,attrspec_21,attrspec_22,attrspec_23,attrspec_24,attrspec_25,attrspec_26,attrspec_27,attrspec_28,attrspec_29,attrspec_30,attrspec_31,attrspec_32,attrspec_33,attrspec_34,attrspec_35,attrspec_36,attrspec_37,attrspec_38,attrspec_39,attrspec_40,attrspec_41,attrspec_42, +attrspec_43,attrspec_44,attrspec_45,attrspec_46,attrspec_47,attrspec_48,attrspec_49,attrspec_50,attrspec_51,attrspec_52,attrspec_53,attrspec_54,attrspec_55,attrspec_56,attrspec_57,attrspec_58,attrspec_59,attrspec_60,attrspec_61,attrspec_62,attrspec_63,attrspec_64,attrspec_65,attrspec_66,attrspec_67,attrspec_68,attrspec_69,attrspec_70,attrspec_71,attrspec_72,attrspec_73,attrspec_74,attrspec_75,attrspec_76,attrspec_77,attrspec_78,attrspec_79,attrspec_80,attrspec_81,attrspec_82,attrspec_83,attrspec_84, +attrspec_85,attrspec_86,attrspec_87,attrspec_88,attrspec_89,attrspec_90,attrspec_91,attrspec_92,attrspec_93,attrspec_94,attrspec_95,attrspec_96,attrspec_97,attrspec_98,attrspec_99,attrspec_100,attrspec_101,attrspec_102,attrspec_103,attrspec_104,attrspec_105,attrspec_106,attrspec_107,attrspec_108,attrspec_109,attrspec_110,attrspec_111,attrspec_112,attrspec_113,attrspec_114,attrspec_115,attrspec_116,attrspec_117,attrspec_118,attrspec_119,attrspec_120,attrspec_121,attrspec_122,attrspec_123,attrspec_124, +attrspec_125,attrspec_126,attrspec_127,attrspec_128,attrspec_129,attrspec_130,attrspec_131,attrspec_132,attrspec_133,attrspec_134,attrspec_135,attrspec_136,attrspec_137,attrspec_138,attrspec_139,attrspec_140,attrspec_141,attrspec_142,attrspec_143,attrspec_144,attrspec_145,attrspec_146,attrspec_147,attrspec_148,attrspec_149,attrspec_150,attrspec_151,attrspec_152,attrspec_153,attrspec_154,attrspec_155,attrspec_156,attrspec_157,attrspec_158,attrspec_159,attrspec_160,attrspec_161,attrspec_162,attrspec_163, +attrspec_164,attrspec_165,attrspec_166,attrspec_167,attrspec_168,attrspec_169,attrspec_170,attrspec_171,attrspec_172,attrspec_173,attrspec_174,attrspec_175,attrspec_176,attrspec_177,attrspec_178,attrspec_179,attrspec_180,attrspec_181,attrspec_182,attrspec_183,attrspec_184,attrspec_185,attrspec_186,attrspec_187,attrspec_188,attrspec_189,attrspec_190,attrspec_191,attrspec_192,attrspec_193,attrspec_194,attrspec_195,attrspec_196,attrspec_197,attrspec_198,attrspec_199,attrspec_200,attrspec_201,attrspec_202, +attrspec_203,attrspec_204,attrspec_205,attrspec_206,attrspec_207,attrspec_208,attrspec_209,attrspec_210,attrspec_211,attrspec_212,attrspec_213,attrspec_214,attrspec_215,attrspec_216,attrspec_217,attrspec_218,attrspec_219,attrspec_220,attrspec_221,attrspec_222,attrspec_223,attrspec_224,attrspec_225,attrspec_226,attrspec_227,attrspec_228,attrspec_229,attrspec_230,attrspec_231,attrspec_232,attrspec_233,attrspec_234,attrspec_235,attrspec_236,attrspec_237,attrspec_238,attrspec_239,attrspec_240,attrspec_241, +attrspec_242,attrspec_243,attrspec_244,attrspec_245,attrspec_246,attrspec_247,attrspec_248,attrspec_249,attrspec_250,attrspec_251,attrspec_252,attrspec_253,attrspec_254,attrspec_255,attrspec_256,attrspec_257,attrspec_258,attrspec_259,attrspec_260,attrspec_261,attrspec_262,attrspec_263];validatorrules_0.directAttrLists=[[239,-326,-7,-22,-6,-2,-255,-3],[240],[241,242,243,-198,-327],[241,242,244,-198,245],[-328,-329,-330],[-331,-332,-333,-334],[-31,-335,-32,-61,-62],[-336,-337,-338,-339,-340,-326,-341, +-342,-343,-344,-345,-346,-347,-348,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-236,-237,-238,-360,-361,-362,-363,-364,-365,-366,-367,-368,-369,-370,-371,-372,-373,-123,-124,-374,-375,-376,-377,-378,-379,-380,-381,-97,-382,-383,-384,-385,-386,-387,-388],[-389,-390,-391,-122,-392,-393,-394],[-64,-65,246,-66,-67,-68,-69],[247],[248],[249],[-6,250],[],[91,-12,93],[],[-501,-502,-503,-36,-504,127,260,69],[-501,-29,-502,-503,-217,101,261,-504,-7,262,127,260,-165,263,69,-505,-218,-506,-507,-219, +-508,-509,-510,-511,-512,-42,-513]];validatorrules_0.amp_validator_ValidatorRules$globalAttrs=[-397,-10,-398,-399,-400,-401,-9,-402,-403,-404,-11,251,-405,-406,-407,-408,-153,252,-28,-409,253,254,-410,-172,-411,-412,-413,-414,-415,-416,-417,-418,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428,-429,-430,-431,-432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,-444,-445,-446,-447,-448,255,-449,256,257,-450,-371,-451,-452,-453,-454,-455,-456,-457,-458,-459,-460,-461,-462,258,259,-463,-464, +-465,-466,-467,-468,-469,-470,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500];validatorrules_0.amp_validator_ValidatorRules$ampLayoutAttrs=[-31,-395,-396,-2,-32,-179,-195];validatorrules_0.internedStrings=["href","sizes","type","amp-app-banner data source","async","media","crossorigin","integrity","content","itemprop","property","nonce","(\x3c!--|(^|\\W)i-amphtml-|!important)","head > style[amp-boilerplate]", +"body ?{opacity: ?0}","noscript > style[amp-boilerplate]","body ?{opacity: ?1}","\\s*body{-webkit-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-moz-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-ms-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both}@-webkit-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}\\s*", "\\s*body{visibility:hidden}\\s*","\\s*body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}\\s*","align","hreflang","download","border","name","[href]","datetime","dir","alt","ismap","height","width","referrerpolicy","sandbox","autoplay","controls","loop","playsinline","poster","preload","muted","[src]","[type]","[label]","[srclang]","externalresourcesrequired","transform","arabic-form","d","glyph-name","horiz-adv-x","orientation","unicode","vert-origin-x","vert-origin-y", "vert-adv-y","dx","dy","format","glyphref","x","y","preserveaspectratio","xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type","markerunits","markerwidth","markerheight","orient","refx","refy","viewbox","pathlength","sketch:type","solid-color","solid-opacity","contentscripttype","contentstyletype","zoomandpan","viewtarget","cx","cy","r","rx","ry","x1","x2","y1","y2","points","lengthadjust","rotate","text-anchor","textlength","method","spacing","startoffset","clippathunits", "filterres","filterunits","primitiveunits","g1","g2","k","u1","u2","gradientunits","gradienttransform","spreadmethod","maskcontentunits","maskunits","patternunits","patterncontentunits","patterntransform","fr","fx","fy","offset","stop-color","stop-opacity","in","values","in2","k1","k2","k3","k4","operator","edgemode","stddeviation","sortable","bgcolor","cellpadding","cellspacing","span","valign","colspan","headers","rowspan","abbr","scope","sorted","accept","accept-charset","autocomplete","enctype", "novalidate","for","accesskey","autofocus","checked","disabled","inputmode","list","max","maxlength","min","minlength","multiple","pattern","placeholder","readonly","required","selectiondirection","size","spellcheck","step","tabindex","value","[accept]","[accesskey]","[autocomplete]","[checked]","[disabled]","[height]","[inputmode]","[max]","[maxlength]","[min]","[minlength]","[multiple]","[pattern]","[placeholder]","[readonly]","[required]","[selectiondirection]","[size]","[spellcheck]","[step]", -"[value]","[width]","amp-app-banner button[open-button]","[autofocus]","label","selected","[selected]","cols","rows","selectionend","selectionstart","wrap","[cols]","[rows]","[selectionend]","[selectionstart]","[wrap]","form","high","low","optimum","(.)","(\x3c!--)","attribution","[alt]","[attribution]","[srcset]","amp-ad-exit configuration JSON","json","amp-animation extension .json script","[data-account]","[data-embed]","[data-player]","[data-player-id]","[data-playlist-id]","[data-video-id]", -"[slide]","max-font-size","min-font-size","font-style","font-variant","font-weight","on-error-add-class","on-error-remove-class","on-load-add-class","on-load-remove-class","allow","from","scrollable","credentials","items","max-items","single-item","template","[state]","data-update-time","data-tombstone","target","amp-story-page","auto-advance-after","grid-area","animate-in-delay","animate-in-duration","animate-in-after","locale","[data-videoid]","(_blank|_self|_top)","(^|\\s)(canonical|components|import|manifest|serviceworker|stylesheet|subresource|)(\\s|$)", -"__amp_source_origin","https://cdn\\.materialdesignicons\\.com/([0-9]+\\.?)+/css/materialdesignicons\\.min\\.css|https://cloud\\.typography\\.com/[0-9]*/[0-9]*/css/fonts\\.css|https://fast\\.fonts\\.net/.*|https://fonts\\.googleapis\\.com/css\\?.*|https://fonts\\.googleapis\\.com/icon\\?.*|https://fonts\\.googleapis\\.com/earlyaccess/.*\\.css|https://maxcdn\\.bootstrapcdn\\.com/font-awesome/([0-9]+\\.?)+/css/font-awesome\\.min\\.css(\\?.*)?|https://use\\.typekit\\.net/[\\w\\p{L}\\p{N}_]+\\.css",".*app-id=.*", -"(^|\\s)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\\s|$)","[0-9]*","[1AaIi]","(^|\\s)(components|dns-prefetch|import|manifest|preconnect|prefetch|preload|prerender|serviceworker|stylesheet|subresource|)(\\s|$)","0|1","auto|yes|no","['src', 'srcdoc']","(^|\\s)data:image\\/svg\\+xml","(1.0|1.1)","(show-first-on-submit|show-all-on-submit|as-you-go|interact-and-submit)","(_blank|_top)","(show-first-on-submit|show-all-on-submit|as-you-go)","(^|\\s)(button|file|image|password|)(\\s|$)", +"[value]","[width]","amp-app-banner button[open-button]","[autofocus]","label","selected","[selected]","cols","rows","selectionend","selectionstart","wrap","[cols]","[rows]","[selectionend]","[selectionstart]","[wrap]","form","high","low","optimum","(.)","(\x3c!--)","attribution","[alt]","[attribution]","[srcset]","allow-ssr-img","amp-ad-exit configuration JSON","json","rtc-config","amp-animation extension .json script","arguments","[data-account]","[data-embed]","[data-player]","[data-player-id]", +"[data-playlist-id]","[data-video-id]","[slide]","max-font-size","min-font-size","font-style","font-variant","font-weight","on-error-add-class","on-error-remove-class","on-load-add-class","on-load-remove-class","timeline-event-prefix","allow","from","scrollable","credentials","items","max-items","single-item","template","[state]","data-update-time","data-tombstone","target","amp-story-page","auto-advance-after","grid-area","animate-in-delay","animate-in-duration","animate-in-after","locale","[data-videoid]", +"(_blank|_self|_top)","(^|\\s)(canonical|components|import|manifest|serviceworker|stylesheet|subresource|)(\\s|$)","__amp_source_origin","https://cdn\\.materialdesignicons\\.com/([0-9]+\\.?)+/css/materialdesignicons\\.min\\.css|https://cloud\\.typography\\.com/[0-9]*/[0-9]*/css/fonts\\.css|https://fast\\.fonts\\.net/.*|https://fonts\\.googleapis\\.com/css\\?.*|https://fonts\\.googleapis\\.com/icon\\?.*|https://fonts\\.googleapis\\.com/earlyaccess/.*\\.css|https://maxcdn\\.bootstrapcdn\\.com/font-awesome/([0-9]+\\.?)+/css/font-awesome\\.min\\.css(\\?.*)?|https://use\\.typekit\\.net/[\\w\\p{L}\\p{N}_]+\\.css", +".*app-id=.*","(^|\\s)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\\s|$)","[0-9]*","[1AaIi]","(^|\\s)(components|dns-prefetch|import|manifest|preconnect|prefetch|preload|prerender|serviceworker|stylesheet|subresource|)(\\s|$)","0|1","auto|yes|no","['src', 'srcdoc']","(^|\\s)data:image\\/svg\\+xml","(1.0|1.1)","(show-first-on-submit|show-all-on-submit|as-you-go|interact-and-submit)","(_blank|_top)","(show-first-on-submit|show-all-on-submit|as-you-go)","(^|\\s)(button|file|image|password|)(\\s|$)", "['data-apester-media-id', 'data-apester-channel-token']","[0-9a-zA-Z]+","['data-outstream', 'data-playlist', 'data-video']","[0-9]+","slides|carousel","true|false","([0-9a-f]{3}){1,2}","[a-z0-9]+","[0-9a-z]{8}","data-media-id or data-playlist-id","\\d+","\\d{5,}","[^=/?:]+","api|static","album|audio|live|playlist|playlist-marked|video","['src', 'data-item']","(false|true)","^([0]*?\\.\\d*$|1$|0$)|([0]*?\\.\\d*|1|0)\\s{1}([0]*?\\.\\d*$|1$|0$)","^(\\d+$|\\d+px$|\\d+vh$)|((\\d+|\\d+px|\\d+vh)\\s{1}(\\d+$|\\d+px$|\\d+vh$))", "[0-9a-z-]+","(comment|post)","focus|none|select","(left|right)","['data-trackid', 'data-playlistid']","[A-Za-z0-9_-]+","playlist|video","(fill|horizontal|vertical|thirds)","(start|end|center|stretch|space-around|space-between|space-evenly)","(start|end|center|stretch)","(drop|fade-in|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|pulse|rotate-in-left|rotate-in-right|twirl-in|whoosh-in-left|whoosh-in-right)","\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?(Z|[+-][0-1][0-9]:[0-5][0-9])", -"amp-web-push","(blocked|subscribed|unsubscribed)","(include|omit)","(captions|descriptions|chapters|metadata)","!important","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", +"amp-web-push","(blocked|subscribed|unsubscribed)","(include|omit)","['data-live-channelid', 'data-videoid']","(captions|descriptions|chapters|metadata)","!important","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", "(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","(^|\\W)i-amphtml-","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", "tap:.*","(badInput|customError|patternMismatch|rangeOverflow|rangeUnderflow|stepMismatch|tooLong|typeMismatch|valueMissing)","(none|metadata|auto|)","color","srclang","requiredextensions","requiredfeatures","systemlanguage","xml:lang","xml:space","xmlns","xmlns:xlink","result","alignment-baseline","baseline-shift","clip","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cursor","direction","display","dominant-baseline","enable-background", "fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","glyph-orientation-horizontal","glyph-orientation-vertical","image-rendering","kerning","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","pointer-events","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-decoration", "text-rendering","unicode-bidi","vector-effect","visibility","word-spacing","writing-mode","amplitude","exponent","intercept","slope","table","tablevalues","heights","layout","itemid","itemref","itemscope","itemtype","about","datatype","inlist","prefix","resource","rev","typeof","vocab","draggable","lang","title","translate","aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-controls","aria-current","aria-describedby","aria-disabled","aria-dropeffect","aria-expanded", "aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","role","lightbox","amp-access","amp-access-behavior","amp-access-hide","amp-access-id","amp-access-loader","amp-access-loading", "amp-access-off","amp-access-on","amp-access-show","amp-access-style","amp-access-template","i-amp-access-id","[aria-activedescendant]","[aria-atomic]","[aria-autocomplete]","[aria-busy]","[aria-checked]","[aria-controls]","[aria-describedby]","[aria-disabled]","[aria-dropeffect]","[aria-expanded]","[aria-flowto]","[aria-grabbed]","[aria-haspopup]","[aria-hidden]","[aria-invalid]","[aria-label]","[aria-labelledby]","[aria-level]","[aria-live]","[aria-multiline]","[aria-multiselectable]","[aria-orientation]", -"[aria-owns]","[aria-posinset]","[aria-pressed]","[aria-readonly]","[aria-relevant]","[aria-required]","[aria-selected]","[aria-setsize]","[aria-sort]","[aria-valuemax]","[aria-valuemin]","[aria-valuenow]","[aria-valuetext]","[class]","[hidden]","[text]","album","artist","artwork","controlslist","[album]","[artist]","[artwork]","[controls]","[controlslist]","[loop]","[poster]","[preload]","[title]"];return z};/* +"[aria-owns]","[aria-posinset]","[aria-pressed]","[aria-readonly]","[aria-relevant]","[aria-required]","[aria-selected]","[aria-setsize]","[aria-sort]","[aria-valuemax]","[aria-valuemin]","[aria-valuenow]","[aria-valuetext]","[class]","[hidden]","[text]","album","artist","artwork","controlslist","[album]","[artist]","[artwork]","[controls]","[controlslist]","[loop]","[poster]","[preload]","[title]"];return validatorrules_0};/* Copyright 2015 The AMP HTML Authors. All Rights Reserved. @@ -262,43 +512,127 @@ to,Fs,Gs,ug,Is,Js,Ks,Ls,Ms,Os,Ps,Qs,Rs,uo,Ss,Ts,Us,Vs];z.u=[[-6,-2,-251,-3,-22,2 licensed under the CC0 license (http://creativecommons.org/publicdomain/zero/1.0/). */ -function hk(a){return 48<=a&&57>=a}function ik(a){return hk(a)||65<=a&&70>=a||97<=a&&102>=a}function jk(a){return 65<=a&&90>=a||97<=a&&122>=a||128<=a||95===a}function kk(a){return jk(a)||hk(a)||45===a}function lk(a){return 10===a||9===a||32===a}function F(a){if(65535>=a)return String.fromCharCode(a);a-=Math.pow(2,20);return String.fromCharCode(Math.floor(a/Math.pow(2,10))+55296)+String.fromCharCode(a%Math.pow(2,10)+56320)} -function mk(a,b,c,d){this.h=[];this.i=d;d=[];for(var e=0;e=h)k=a.charCodeAt(e+1),k=56320<=k&&57343>=k;k&&(h=Math.pow(2,20)+(h-55296)*Math.pow(2,10)+(a.charCodeAt(e+1)-56320),e++);d.push(h)}this.c=d;this.b=-1;this.g=[];this.f=[];a=b||1;b=c||0;for(c=0;cMath.min(a.b,a.g.length-1)?1:a.g[a.b]}function wo(a){return 0>Math.min(a.b,a.f.length-1)?0:a.f[a.b]}function xo(a,b){return b>=a.c.length?-1:a.c[b]}mk.prototype.next=function(a){a=a||1;t(3>=a,"Spec Error: no more than three codepoints of lookahead.");return xo(this,this.b+a)};function H(a,b){a.b+=b||1;a.a=xo(a,a.b)} -function ok(a,b){return-1===(b||a.a)} -function pk(a){a:{var b=new I;b.line=vo(a);for(b.col=wo(a);47===a.next(1)&&42===a.next(2);)for(H(a,2);;)if(H(a),42===a.a&&47===a.next()){H(a);break}else if(ok(a)){a.i.push(K(b,new yo("CSS_SYNTAX_UNTERMINATED_COMMENT",["style"])));break a}}H(a);b=new I;b.line=vo(a);b.col=wo(a);if(lk(a.a)){for(;lk(a.next());)H(a);return K(b,new zo)}if(34===a.a)return K(b,Ao(a));if(35===a.a){var c;if(!(c=kk(a.next()))){c=a.next(1);var d=a.next(2);c=92!=c||10===d?!1:!0}return c?(c=null,Bo(a.next(1),a.next(2),a.next(3))&& -(c="id"),d=new Co,d.value=Do(a),null!==c&&(d.type=c),K(b,d)):K(b,new Eo(a.a))}return 36===a.a?61===a.next()?(H(a),K(b,new Fo)):K(b,new Eo(a.a)):39===a.a?K(b,Ao(a)):40===a.a?K(b,new Go):41===a.a?K(b,new Ho):42===a.a?61===a.next()?(H(a),K(b,new Io)):K(b,new Eo(a.a)):43===a.a?Jo(a)?(--a.b,K(b,Ko(a))):K(b,new Eo(a.a)):44===a.a?K(b,new Lo):45===a.a?Jo(a)?(--a.b,K(b,Ko(a))):45===a.next(1)&&62===a.next(2)?(H(a,2),K(b,new Mo)):Bo(a.a,a.next(1),a.next(2))?(--a.b,K(b,No(a))):K(b,new Eo(a.a)):46===a.a?Jo(a)? -(--a.b,K(b,Ko(a))):K(b,new Eo(a.a)):58===a.a?K(b,new Oo):59===a.a?K(b,new Po):60===a.a?33===a.next(1)&&45===a.next(2)&&45===a.next(3)?(H(a,3),K(b,new Qo)):K(b,new Eo(a.a)):64===a.a?Bo(a.next(1),a.next(2),a.next(3))?(c=new Ro,c.value=Do(a),K(b,c)):K(b,new Eo(a.a)):91===a.a?K(b,new So):92===a.a?To(a)?(--a.b,K(b,No(a))):K(b,new yo("CSS_SYNTAX_STRAY_TRAILING_BACKSLASH",["style"])):93===a.a?K(b,new Uo):94===a.a?61===a.next()?(H(a),K(b,new Vo)):K(b,new Eo(a.a)):123===a.a?K(b,new Wo):124===a.a?61===a.next()? -(H(a),K(b,new Xo)):124===a.next()?(H(a),K(b,new Yo)):K(b,new Eo(a.a)):125===a.a?K(b,new Zo):126===a.a?61===a.next()?(H(a),K(b,new $o)):K(b,new Eo(a.a)):hk(a.a)?(--a.b,K(b,Ko(a))):jk(a.a)?(--a.b,K(b,No(a))):ok(a)?K(b,new nk):K(b,new Eo(a.a))} -function Ko(a){t(ap(a.next(1),a.next(2),a.next(3)),"Internal Error: consumeANumericToken precondition not met");t(ap(a.next(1),a.next(2),a.next(3)),"Internal Error: consumeANumber precondition not met");var b="",c="integer";if(43===a.next()||45===a.next())H(a),b+=F(a.a);for(;hk(a.next());)H(a),b+=F(a.a);if(46===a.next(1)&&hk(a.next(2)))for(H(a),b+=F(a.a),c="number";hk(a.next());)H(a),b+=F(a.a);var d=a.next(1),e=a.next(2),h=a.next(3);if((69===d||101===d)&&hk(e))for(H(a),b+=F(a.a),c="number";hk(a.next());)H(a), -b+=F(a.a);else if(!(69!==d&&101!==d||43!==e&&45!==e)&&hk(h))for(H(a),b+=F(a.a),H(a),b+=F(a.a),c="number";hk(a.next());)H(a),b+=F(a.a);d=new bp;d.type=c;d.value=+b;d.a=b;return Bo(a.next(1),a.next(2),a.next(3))?(b=new cp,b.value=d.value,b.a=d.a,b.type=d.type,b.b=Do(a),b):37===a.next()?(H(a),a=new dp,a.value=d.value,a.a=d.a,a):d} -function No(a){var b=Do(a);if("url"===b.toLowerCase()&&40===a.next()){for(H(a);lk(a.next(1))&&lk(a.next(2));)H(a);if(34===a.next()||39===a.next())return a=new ep,a.value=b,a;if(!lk(a.next())||34!==a.next(2)&&39!==a.next(2))return fp(a);a=new ep;a.value=b;return a}if(40===a.next())return H(a),a=new ep,a.value=b,a;a=new gp;a.value=b;return a} -function Ao(a){t(34===a.a||39===a.a,"Internal Error: consumeAStringToken precondition not met");for(var b=a.a,c="";;){H(a);if(a.a===b||ok(a))return a=new hp,a.value=c,a;if(10===a.a)return--a.b,new yo("CSS_SYNTAX_UNTERMINATED_STRING",["style"]);92===a.a?ok(a,a.next())||(10===a.next()?H(a):c+=F(ip(a))):c+=F(a.a)}} -function fp(a){for(var b=new jp;lk(a.next());)H(a);if(ok(a,a.next()))return b;for(;;){H(a);if(41===a.a||ok(a))return b;if(lk(a.a)){for(;lk(a.next());)H(a);if(41===a.next()||ok(a,a.next()))return H(a),b;kp(a);return new yo("CSS_SYNTAX_BAD_URL",["style"])}var c;(c=34===a.a||39===a.a||40===a.a)||(c=a.a,c=0<=c&&8>=c||11===c||14<=c&&31>=c||127===c);if(c)return kp(a),new yo("CSS_SYNTAX_BAD_URL",["style"]);if(92===a.a)if(To(a))b.value+=F(ip(a));else return kp(a),new yo("CSS_SYNTAX_BAD_URL",["style"]);else b.value+= -F(a.a)}}function ip(a){H(a);if(ik(a.a)){for(var b=[a.a],c=0;5>c;c++)if(ik(a.next()))H(a),b.push(a.a);else break;lk(a.next())&&H(a);a=parseInt(b.map(function(a){return String.fromCharCode(a)}).join(""),16);1114111",""":'"'};var c=r.document.createElement("div");return a.replace(et,function(a,e){var d=b[a];if(d)return d;"#"==e.charAt(0)&&(e=Number("0"+e.substr(1)),isNaN(e)||(d=String.fromCharCode(e)));d||(c.innerHTML=a+" ",d=c.firstChild.nodeValue.slice(0,-1));return b[a]=d})} -function ft(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=c.charAt(0)||(c=Number("0"+c.substr(1)),isNaN(c))?a:String.fromCharCode(c)}})}var et=/&([^;\s<&]+);?/g;/* +function digit(code){return 48<=code&&57>=code}function hexDigit(code){return digit(code)||65<=code&&70>=code||97<=code&&102>=code}function nameStartChar(code){return 65<=code&&90>=code||97<=code&&122>=code||128<=code||95===code}function nameChar(code){return nameStartChar(code)||digit(code)||45===code}function whitespace(code){return 10===code||9===code||32===code} +function stringFromCode(code){if(65535>=code)return String.fromCharCode(code);code-=Math.pow(2,20);return String.fromCharCode(Math.floor(code/Math.pow(2,10))+55296)+String.fromCharCode(code%Math.pow(2,10)+56320)} +function Tokenizer(strIn,line,col,errors){this.tokens_=[];this.errors_=errors;errors=[];for(var i=0;i=code)JSCompiler_temp=strIn.charCodeAt(i+1),JSCompiler_temp=56320<=JSCompiler_temp&&57343>=JSCompiler_temp;JSCompiler_temp&&(code=Math.pow(2,20)+(code-55296)*Math.pow(2,10)+(strIn.charCodeAt(i+ +1)-56320),i++);errors.push(code)}this.codepoints_=errors;this.Tokenizer$pos_=-1;this.Tokenizer$lineByPos_=[];this.Tokenizer$colByPos_=[];strIn=line||1;line=col||0;for(col=0;colMath.min(JSCompiler_StaticMethods_Tokenizer_prototype$getLine$self.Tokenizer$pos_,JSCompiler_StaticMethods_Tokenizer_prototype$getLine$self.Tokenizer$lineByPos_.length-1)?1:JSCompiler_StaticMethods_Tokenizer_prototype$getLine$self.Tokenizer$lineByPos_[JSCompiler_StaticMethods_Tokenizer_prototype$getLine$self.Tokenizer$pos_]} +function JSCompiler_StaticMethods_Tokenizer_prototype$getCol(JSCompiler_StaticMethods_Tokenizer_prototype$getCol$self){return 0>Math.min(JSCompiler_StaticMethods_Tokenizer_prototype$getCol$self.Tokenizer$pos_,JSCompiler_StaticMethods_Tokenizer_prototype$getCol$self.Tokenizer$colByPos_.length-1)?0:JSCompiler_StaticMethods_Tokenizer_prototype$getCol$self.Tokenizer$colByPos_[JSCompiler_StaticMethods_Tokenizer_prototype$getCol$self.Tokenizer$pos_]} +function JSCompiler_StaticMethods_codepoint(JSCompiler_StaticMethods_codepoint$self,num){return num>=JSCompiler_StaticMethods_codepoint$self.codepoints_.length?-1:JSCompiler_StaticMethods_codepoint$self.codepoints_[num]}Tokenizer.prototype.next=function(opt_num){opt_num=opt_num||1;goog$asserts$assert(3>=opt_num,"Spec Error: no more than three codepoints of lookahead.");return JSCompiler_StaticMethods_codepoint(this,this.Tokenizer$pos_+opt_num)}; +function JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_Tokenizer_prototype$consume$self,opt_num){JSCompiler_StaticMethods_Tokenizer_prototype$consume$self.Tokenizer$pos_+=opt_num||1;JSCompiler_StaticMethods_Tokenizer_prototype$consume$self.code_=JSCompiler_StaticMethods_codepoint(JSCompiler_StaticMethods_Tokenizer_prototype$consume$self,JSCompiler_StaticMethods_Tokenizer_prototype$consume$self.Tokenizer$pos_)} +function JSCompiler_StaticMethods_Tokenizer_prototype$eof(JSCompiler_StaticMethods_Tokenizer_prototype$eof$self,opt_codepoint){return-1===(opt_codepoint||JSCompiler_StaticMethods_Tokenizer_prototype$eof$self.code_)} +function JSCompiler_StaticMethods_consumeAToken(JSCompiler_StaticMethods_consumeAToken$self){a:{var mark=new parse_css$Token;mark.line=JSCompiler_StaticMethods_Tokenizer_prototype$getLine(JSCompiler_StaticMethods_consumeAToken$self);for(mark.col=JSCompiler_StaticMethods_Tokenizer_prototype$getCol(JSCompiler_StaticMethods_consumeAToken$self);47===JSCompiler_StaticMethods_consumeAToken$self.next(1)&&42===JSCompiler_StaticMethods_consumeAToken$self.next(2);)for(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self, +2);;)if(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self),42===JSCompiler_StaticMethods_consumeAToken$self.code_&&47===JSCompiler_StaticMethods_consumeAToken$self.next()){JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self);break}else if(JSCompiler_StaticMethods_Tokenizer_prototype$eof(JSCompiler_StaticMethods_consumeAToken$self)){JSCompiler_StaticMethods_consumeAToken$self.errors_.push(JSCompiler_StaticMethods_copyPosTo(mark, +new parse_css$ErrorToken("CSS_SYNTAX_UNTERMINATED_COMMENT",["style"])));break a}}JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self);mark=new parse_css$Token;mark.line=JSCompiler_StaticMethods_Tokenizer_prototype$getLine(JSCompiler_StaticMethods_consumeAToken$self);mark.col=JSCompiler_StaticMethods_Tokenizer_prototype$getCol(JSCompiler_StaticMethods_consumeAToken$self);if(whitespace(JSCompiler_StaticMethods_consumeAToken$self.code_)){for(;whitespace(JSCompiler_StaticMethods_consumeAToken$self.next());)JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self); +return JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$WhitespaceToken)}if(34===JSCompiler_StaticMethods_consumeAToken$self.code_)return JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_StaticMethods_consumeAStringToken(JSCompiler_StaticMethods_consumeAToken$self));if(35===JSCompiler_StaticMethods_consumeAToken$self.code_){var JSCompiler_temp;if(!(JSCompiler_temp=nameChar(JSCompiler_StaticMethods_consumeAToken$self.next()))){JSCompiler_temp=JSCompiler_StaticMethods_consumeAToken$self.next(1); +var c2=JSCompiler_StaticMethods_consumeAToken$self.next(2);JSCompiler_temp=92!=JSCompiler_temp||10===c2?!1:!0}return JSCompiler_temp?(JSCompiler_temp=null,JSCompiler_StaticMethods_wouldStartAnIdentifier(JSCompiler_StaticMethods_consumeAToken$self.next(1),JSCompiler_StaticMethods_consumeAToken$self.next(2),JSCompiler_StaticMethods_consumeAToken$self.next(3))&&(JSCompiler_temp="id"),c2=new parse_css$HashToken,c2.value=JSCompiler_StaticMethods_consumeAName(JSCompiler_StaticMethods_consumeAToken$self), +null!==JSCompiler_temp&&(c2.type=JSCompiler_temp),JSCompiler_StaticMethods_copyPosTo(mark,c2)):JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_))}return 36===JSCompiler_StaticMethods_consumeAToken$self.code_?61===JSCompiler_StaticMethods_consumeAToken$self.next()?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self),JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$SuffixMatchToken)): +JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):39===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_StaticMethods_consumeAStringToken(JSCompiler_StaticMethods_consumeAToken$self)):40===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$OpenParenToken):41===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark, +new parse_css$CloseParenToken):42===JSCompiler_StaticMethods_consumeAToken$self.code_?61===JSCompiler_StaticMethods_consumeAToken$self.next()?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self),JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$SubstringMatchToken)):JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):43===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_startsWithANumber(JSCompiler_StaticMethods_consumeAToken$self)? +(--JSCompiler_StaticMethods_consumeAToken$self.Tokenizer$pos_,JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_StaticMethods_consumeANumericToken(JSCompiler_StaticMethods_consumeAToken$self))):JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):44===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$CommaToken):45===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_startsWithANumber(JSCompiler_StaticMethods_consumeAToken$self)? +(--JSCompiler_StaticMethods_consumeAToken$self.Tokenizer$pos_,JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_StaticMethods_consumeANumericToken(JSCompiler_StaticMethods_consumeAToken$self))):45===JSCompiler_StaticMethods_consumeAToken$self.next(1)&&62===JSCompiler_StaticMethods_consumeAToken$self.next(2)?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self,2),JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$CDCToken)):JSCompiler_StaticMethods_wouldStartAnIdentifier(JSCompiler_StaticMethods_consumeAToken$self.code_, +JSCompiler_StaticMethods_consumeAToken$self.next(1),JSCompiler_StaticMethods_consumeAToken$self.next(2))?(--JSCompiler_StaticMethods_consumeAToken$self.Tokenizer$pos_,JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_StaticMethods_consumeAnIdentlikeToken(JSCompiler_StaticMethods_consumeAToken$self))):JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):46===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_startsWithANumber(JSCompiler_StaticMethods_consumeAToken$self)? +(--JSCompiler_StaticMethods_consumeAToken$self.Tokenizer$pos_,JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_StaticMethods_consumeANumericToken(JSCompiler_StaticMethods_consumeAToken$self))):JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):58===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$ColonToken):59===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark, +new parse_css$SemicolonToken):60===JSCompiler_StaticMethods_consumeAToken$self.code_?33===JSCompiler_StaticMethods_consumeAToken$self.next(1)&&45===JSCompiler_StaticMethods_consumeAToken$self.next(2)&&45===JSCompiler_StaticMethods_consumeAToken$self.next(3)?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self,3),JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$CDOToken)):JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)): +64===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_wouldStartAnIdentifier(JSCompiler_StaticMethods_consumeAToken$self.next(1),JSCompiler_StaticMethods_consumeAToken$self.next(2),JSCompiler_StaticMethods_consumeAToken$self.next(3))?(JSCompiler_temp=new parse_css$AtKeywordToken,JSCompiler_temp.value=JSCompiler_StaticMethods_consumeAName(JSCompiler_StaticMethods_consumeAToken$self),JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_temp)):JSCompiler_StaticMethods_copyPosTo(mark, +new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):91===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$OpenSquareToken):92===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_startsWithAValidEscape(JSCompiler_StaticMethods_consumeAToken$self)?(--JSCompiler_StaticMethods_consumeAToken$self.Tokenizer$pos_,JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_StaticMethods_consumeAnIdentlikeToken(JSCompiler_StaticMethods_consumeAToken$self))): +JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$ErrorToken("CSS_SYNTAX_STRAY_TRAILING_BACKSLASH",["style"])):93===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$CloseSquareToken):94===JSCompiler_StaticMethods_consumeAToken$self.code_?61===JSCompiler_StaticMethods_consumeAToken$self.next()?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self),JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$PrefixMatchToken)): +JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):123===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$OpenCurlyToken):124===JSCompiler_StaticMethods_consumeAToken$self.code_?61===JSCompiler_StaticMethods_consumeAToken$self.next()?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self),JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DashMatchToken)): +124===JSCompiler_StaticMethods_consumeAToken$self.next()?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self),JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$ColumnToken)):JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):125===JSCompiler_StaticMethods_consumeAToken$self.code_?JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$CloseCurlyToken):126===JSCompiler_StaticMethods_consumeAToken$self.code_? +61===JSCompiler_StaticMethods_consumeAToken$self.next()?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAToken$self),JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$IncludeMatchToken)):JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_)):digit(JSCompiler_StaticMethods_consumeAToken$self.code_)?(--JSCompiler_StaticMethods_consumeAToken$self.Tokenizer$pos_,JSCompiler_StaticMethods_copyPosTo(mark, +JSCompiler_StaticMethods_consumeANumericToken(JSCompiler_StaticMethods_consumeAToken$self))):nameStartChar(JSCompiler_StaticMethods_consumeAToken$self.code_)?(--JSCompiler_StaticMethods_consumeAToken$self.Tokenizer$pos_,JSCompiler_StaticMethods_copyPosTo(mark,JSCompiler_StaticMethods_consumeAnIdentlikeToken(JSCompiler_StaticMethods_consumeAToken$self))):JSCompiler_StaticMethods_Tokenizer_prototype$eof(JSCompiler_StaticMethods_consumeAToken$self)?JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$EOFToken): +JSCompiler_StaticMethods_copyPosTo(mark,new parse_css$DelimToken(JSCompiler_StaticMethods_consumeAToken$self.code_))} +function JSCompiler_StaticMethods_consumeANumericToken(JSCompiler_StaticMethods_consumeANumericToken$self){goog$asserts$assert(JSCompiler_StaticMethods_wouldStartANumber(JSCompiler_StaticMethods_consumeANumericToken$self.next(1),JSCompiler_StaticMethods_consumeANumericToken$self.next(2),JSCompiler_StaticMethods_consumeANumericToken$self.next(3)),"Internal Error: consumeANumericToken precondition not met");goog$asserts$assert(JSCompiler_StaticMethods_wouldStartANumber(JSCompiler_StaticMethods_consumeANumericToken$self.next(1), +JSCompiler_StaticMethods_consumeANumericToken$self.next(2),JSCompiler_StaticMethods_consumeANumericToken$self.next(3)),"Internal Error: consumeANumber precondition not met");var repr="",type="integer";if(43===JSCompiler_StaticMethods_consumeANumericToken$self.next()||45===JSCompiler_StaticMethods_consumeANumericToken$self.next())JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),repr+=stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_); +for(;digit(JSCompiler_StaticMethods_consumeANumericToken$self.next());)JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),repr+=stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_);if(46===JSCompiler_StaticMethods_consumeANumericToken$self.next(1)&&digit(JSCompiler_StaticMethods_consumeANumericToken$self.next(2)))for(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),repr+= +stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_),type="number";digit(JSCompiler_StaticMethods_consumeANumericToken$self.next());)JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),repr+=stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_);var c1=JSCompiler_StaticMethods_consumeANumericToken$self.next(1),c2=JSCompiler_StaticMethods_consumeANumericToken$self.next(2),c3=JSCompiler_StaticMethods_consumeANumericToken$self.next(3); +if((69===c1||101===c1)&&digit(c2))for(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),repr+=stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_),type="number";digit(JSCompiler_StaticMethods_consumeANumericToken$self.next());)JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),repr+=stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_);else if(!(69!== +c1&&101!==c1||43!==c2&&45!==c2)&&digit(c3))for(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),repr+=stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_),JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),repr+=stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_),type="number";digit(JSCompiler_StaticMethods_consumeANumericToken$self.next());)JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self), +repr+=stringFromCode(JSCompiler_StaticMethods_consumeANumericToken$self.code_);c1=new parse_css$NumberToken;c1.type=type;c1.value=+repr;c1.parse_css_NumberToken$repr=repr;return JSCompiler_StaticMethods_wouldStartAnIdentifier(JSCompiler_StaticMethods_consumeANumericToken$self.next(1),JSCompiler_StaticMethods_consumeANumericToken$self.next(2),JSCompiler_StaticMethods_consumeANumericToken$self.next(3))?(repr=new parse_css$DimensionToken,repr.value=c1.value,repr.parse_css_DimensionToken$repr=c1.parse_css_NumberToken$repr, +repr.type=c1.type,repr.parse_css_DimensionToken$unit=JSCompiler_StaticMethods_consumeAName(JSCompiler_StaticMethods_consumeANumericToken$self),repr):37===JSCompiler_StaticMethods_consumeANumericToken$self.next()?(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeANumericToken$self),JSCompiler_StaticMethods_consumeANumericToken$self=new parse_css$PercentageToken,JSCompiler_StaticMethods_consumeANumericToken$self.value=c1.value,JSCompiler_StaticMethods_consumeANumericToken$self.parse_css_PercentageToken$repr= +c1.parse_css_NumberToken$repr,JSCompiler_StaticMethods_consumeANumericToken$self):c1} +function JSCompiler_StaticMethods_consumeAnIdentlikeToken(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self){var name=JSCompiler_StaticMethods_consumeAName(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self);if("url"===name.toLowerCase()&&40===JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next()){for(JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self);whitespace(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next(1))&&whitespace(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next(2));)JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self); +if(34===JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next()||39===JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next())return JSCompiler_StaticMethods_consumeAnIdentlikeToken$self=new parse_css$FunctionToken,JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.value=name,JSCompiler_StaticMethods_consumeAnIdentlikeToken$self;if(!whitespace(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next())||34!==JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next(2)&&39!==JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next(2))return JSCompiler_StaticMethods_consumeAURLToken(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self); +JSCompiler_StaticMethods_consumeAnIdentlikeToken$self=new parse_css$FunctionToken;JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.value=name;return JSCompiler_StaticMethods_consumeAnIdentlikeToken$self}if(40===JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.next())return JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAnIdentlikeToken$self),JSCompiler_StaticMethods_consumeAnIdentlikeToken$self=new parse_css$FunctionToken,JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.value= +name,JSCompiler_StaticMethods_consumeAnIdentlikeToken$self;JSCompiler_StaticMethods_consumeAnIdentlikeToken$self=new parse_css$IdentToken;JSCompiler_StaticMethods_consumeAnIdentlikeToken$self.value=name;return JSCompiler_StaticMethods_consumeAnIdentlikeToken$self} +function JSCompiler_StaticMethods_consumeAStringToken(JSCompiler_StaticMethods_consumeAStringToken$self){goog$asserts$assert(34===JSCompiler_StaticMethods_consumeAStringToken$self.code_||39===JSCompiler_StaticMethods_consumeAStringToken$self.code_,"Internal Error: consumeAStringToken precondition not met");for(var endingCodePoint=JSCompiler_StaticMethods_consumeAStringToken$self.code_,string="";;){JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAStringToken$self); +if(JSCompiler_StaticMethods_consumeAStringToken$self.code_===endingCodePoint||JSCompiler_StaticMethods_Tokenizer_prototype$eof(JSCompiler_StaticMethods_consumeAStringToken$self))return JSCompiler_StaticMethods_consumeAStringToken$self=new parse_css$StringToken,JSCompiler_StaticMethods_consumeAStringToken$self.value=string,JSCompiler_StaticMethods_consumeAStringToken$self;if(10===JSCompiler_StaticMethods_consumeAStringToken$self.code_)return--JSCompiler_StaticMethods_consumeAStringToken$self.Tokenizer$pos_, +new parse_css$ErrorToken("CSS_SYNTAX_UNTERMINATED_STRING",["style"]);92===JSCompiler_StaticMethods_consumeAStringToken$self.code_?JSCompiler_StaticMethods_Tokenizer_prototype$eof(JSCompiler_StaticMethods_consumeAStringToken$self,JSCompiler_StaticMethods_consumeAStringToken$self.next())||(10===JSCompiler_StaticMethods_consumeAStringToken$self.next()?JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAStringToken$self):string+=stringFromCode(JSCompiler_StaticMethods_consumeEscape(JSCompiler_StaticMethods_consumeAStringToken$self))): +string+=stringFromCode(JSCompiler_StaticMethods_consumeAStringToken$self.code_)}} +function JSCompiler_StaticMethods_consumeAURLToken(JSCompiler_StaticMethods_consumeAURLToken$self){for(var token=new parse_css$URLToken;whitespace(JSCompiler_StaticMethods_consumeAURLToken$self.next());)JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAURLToken$self);if(JSCompiler_StaticMethods_Tokenizer_prototype$eof(JSCompiler_StaticMethods_consumeAURLToken$self,JSCompiler_StaticMethods_consumeAURLToken$self.next()))return token;for(;;){JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAURLToken$self); +if(41===JSCompiler_StaticMethods_consumeAURLToken$self.code_||JSCompiler_StaticMethods_Tokenizer_prototype$eof(JSCompiler_StaticMethods_consumeAURLToken$self))return token;if(whitespace(JSCompiler_StaticMethods_consumeAURLToken$self.code_)){for(;whitespace(JSCompiler_StaticMethods_consumeAURLToken$self.next());)JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAURLToken$self);if(41===JSCompiler_StaticMethods_consumeAURLToken$self.next()||JSCompiler_StaticMethods_Tokenizer_prototype$eof(JSCompiler_StaticMethods_consumeAURLToken$self, +JSCompiler_StaticMethods_consumeAURLToken$self.next()))return JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeAURLToken$self),token;JSCompiler_StaticMethods_consumeTheRemnantsOfABadURL(JSCompiler_StaticMethods_consumeAURLToken$self);return new parse_css$ErrorToken("CSS_SYNTAX_BAD_URL",["style"])}var JSCompiler_temp;(JSCompiler_temp=34===JSCompiler_StaticMethods_consumeAURLToken$self.code_||39===JSCompiler_StaticMethods_consumeAURLToken$self.code_||40===JSCompiler_StaticMethods_consumeAURLToken$self.code_)|| +(JSCompiler_temp=JSCompiler_StaticMethods_consumeAURLToken$self.code_,JSCompiler_temp=0<=JSCompiler_temp&&8>=JSCompiler_temp||11===JSCompiler_temp||14<=JSCompiler_temp&&31>=JSCompiler_temp||127===JSCompiler_temp);if(JSCompiler_temp)return JSCompiler_StaticMethods_consumeTheRemnantsOfABadURL(JSCompiler_StaticMethods_consumeAURLToken$self),new parse_css$ErrorToken("CSS_SYNTAX_BAD_URL",["style"]);if(92===JSCompiler_StaticMethods_consumeAURLToken$self.code_)if(JSCompiler_StaticMethods_startsWithAValidEscape(JSCompiler_StaticMethods_consumeAURLToken$self))token.value+= +stringFromCode(JSCompiler_StaticMethods_consumeEscape(JSCompiler_StaticMethods_consumeAURLToken$self));else return JSCompiler_StaticMethods_consumeTheRemnantsOfABadURL(JSCompiler_StaticMethods_consumeAURLToken$self),new parse_css$ErrorToken("CSS_SYNTAX_BAD_URL",["style"]);else token.value+=stringFromCode(JSCompiler_StaticMethods_consumeAURLToken$self.code_)}} +function JSCompiler_StaticMethods_consumeEscape(JSCompiler_StaticMethods_consumeEscape$self){JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeEscape$self);if(hexDigit(JSCompiler_StaticMethods_consumeEscape$self.code_)){for(var digits=[JSCompiler_StaticMethods_consumeEscape$self.code_],total=0;5>total;total++)if(hexDigit(JSCompiler_StaticMethods_consumeEscape$self.next()))JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeEscape$self), +digits.push(JSCompiler_StaticMethods_consumeEscape$self.code_);else break;whitespace(JSCompiler_StaticMethods_consumeEscape$self.next())&&JSCompiler_StaticMethods_Tokenizer_prototype$consume(JSCompiler_StaticMethods_consumeEscape$self);JSCompiler_StaticMethods_consumeEscape$self=parseInt(digits.map(function(x){return String.fromCharCode(x)}).join(""),16);1114111D&&!l?!1:!0}if(c)++d,--h;else{this.b=!1;break a}}d=a.substr(d,h-d);if(!c)b:{h=d;d="";try{d=decodeURIComponent(h)}catch(L){this.b= -!1;d=h;break b}for(h=0;h=e||97<=e&&122>=e||65<=e&&90>=e||43===e||45===e))return a.c=!1,a.a=a.g,b}a.c=!0;a.a=b.substr(0,c).toLowerCase();b=b.substr(c+1);"http"!=a.a&&"https"!=a.a&&"ftp"!=a.a&&"sftp"!=a.a&&(b="");return b};function it(a){return a.replace(/^-[a-z]+-/,"")}function jt(a,b,c){b=new yo(b,c);K(a,b);return b}function kt(a){return 0===a.length?"":17===a[0].o?a[0].value:2<=a.length&&29===a[0].o&&17===a[1].o?a[1].value:""}function lt(a){this.errors=a;this.a=null}m(lt,xp);lt.prototype.f=function(a){if("position"===a.name){var b=kt(a.value);"fixed"!==b&&"sticky"!==b||this.errors.push(jt(a,"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE",["style","position",b]))}}; -lt.prototype.g=function(a){for(var b=null,c=n(a.b),d=c.next();!d.done;d=c.next()){d=d.value;var e=it(d.name);if("transition"===e||"animation"===e)b=d;if("transition"===e){var h=kt(d.value),k=it(h);"opacity"!==k&&"transform"!==k&&this.errors.push(jt(d,"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT",["style","transition",h,"['opacity', 'transform']"]))}null!==this.a&&"transform"!==e&&"opacity"!==e&&"animation-timing-function"!==e&&this.errors.push(jt(d,"CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE", -["style",d.name,this.a.name,"['animation-timing-function', 'opacity', 'transform']"]))}if(null!==b)for(a=n(a.b),d=a.next();!d.done;d=a.next())c=d.value,d=["animation","opacity","transform","transition","visibility"],-1===d.indexOf(it(c.name))&&this.errors.push(jt(c,"CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH",["style",c.name,b.name,"['"+d.join("', '")+"']"]))};lt.prototype.b=function(a){"keyframes"===it(a.name)?this.a=a:this.a=null};lt.prototype.c=function(){this.a=null};/* +function parse_url$URL(url){this.parse_url_URL$isValid=!0;this.hasProtocol=!1;this.parse_url_URL$protocol="";this.defaultProtocol="https";this.parse_url_URL$host="";this.port=-1;url=url.trim();url=url.replace(/[\t\r\n]/g,"");url=JSCompiler_StaticMethods_parseProtocol_(this,url);if(goog$string$startsWith(url,"//")){url=url.substr(2);a:{var idx=0,skipColons=!1;""!==url&&91===url.charCodeAt(0)&&(skipColons=!0,idx++);for(var atIdx=-1,portIdx=-1,passwordIdx=-1,charCode=url.charCodeAt(idx);35!==charCode&& +47!==charCode&&63!==charCode&&92!==charCode&&!isNaN(charCode);charCode=url.charCodeAt(++idx))switch(charCode){case 64:atIdx=idx;passwordIdx=portIdx;portIdx=-1;91===url.charCodeAt(idx+1)?(skipColons=!0,idx++):skipColons=!1;break;case 58:-1!==portIdx||skipColons||(portIdx=idx+1);break;case 91:skipColons=!1;break;case 93:skipColons=!1}-1!==atIdx&&(skipColons=atIdx,-1!==passwordIdx&&passwordIdx===atIdx&&skipColons--);atIdx=-1!==atIdx?atIdx+1:0;passwordIdx=-1!==portIdx?portIdx-1:idx;skipColons=!1;if(91=== +url.charCodeAt(atIdx)&&93===url.charCodeAt(passwordIdx-1)&&atIdx!=passwordIdx){b:{skipColons=/^[0-9A-Fa-f]{1,4}$/;charCode=/^([0-9]{1,3}\.){3}[0-9]{1,3}$/;for(var hasEmpty=!1,parts=url.substr(atIdx+1,passwordIdx-atIdx-2).split(":"),numParts=parts.length,i=0;inumParts&&!hasEmpty?!1:!0}if(skipColons)++atIdx,--passwordIdx;else{this.parse_url_URL$isValid=!1;break a}}atIdx=url.substr(atIdx,passwordIdx-atIdx);if(!skipColons)b:{passwordIdx=atIdx;atIdx="";try{atIdx=decodeURIComponent(passwordIdx)}catch(e){this.parse_url_URL$isValid=!1;atIdx=passwordIdx;break b}for(passwordIdx=0;passwordIdx=code||97<=code&&122>=code||65<=code&&90>=code||43===code||45===code))return JSCompiler_StaticMethods_parseProtocol_$self.hasProtocol=!1,JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol= +JSCompiler_StaticMethods_parseProtocol_$self.defaultProtocol,unparsed}JSCompiler_StaticMethods_parseProtocol_$self.hasProtocol=!0;JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol=unparsed.substr(0,colon).toLowerCase();unparsed=unparsed.substr(colon+1);"http"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&"https"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&"ftp"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&& +"sftp"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&(unparsed="");return unparsed};function createParseErrorTokenAt(positionToken,code,params){code=new parse_css$ErrorToken(code,params);JSCompiler_StaticMethods_copyPosTo(positionToken,code);return code}function firstIdent(tokens){return 0===tokens.length?"":17===tokens[0].tokenType?tokens[0].value:2<=tokens.length&&29===tokens[0].tokenType&&17===tokens[1].tokenType?tokens[1].value:""}function Amp4AdsVisitor(errors){this.errors=errors;this.inKeyframes=null}$jscomp$inherits(Amp4AdsVisitor,parse_css$RuleVisitor); +Amp4AdsVisitor.prototype.visitDeclaration=function(declaration){if("position"===declaration.name){var ident=firstIdent(declaration.value);"fixed"!==ident&&"sticky"!==ident||this.errors.push(createParseErrorTokenAt(declaration,"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE",["style","position",ident]))}}; +Amp4AdsVisitor.prototype.visitQualifiedRule=function(qualifiedRule){for(var transitionOrAnimation=null,$jscomp$iter$10=$jscomp$makeIterator(qualifiedRule.parse_css_QualifiedRule$declarations),$jscomp$key$decl=$jscomp$iter$10.next();!$jscomp$key$decl.done;$jscomp$key$decl=$jscomp$iter$10.next()){$jscomp$key$decl=$jscomp$key$decl.value;var name=parse_css$stripVendorPrefix($jscomp$key$decl.name);if("transition"===name||"animation"===name)transitionOrAnimation=$jscomp$key$decl;if("transition"===name){var transitionedProperty= +firstIdent($jscomp$key$decl.value),transitionedPropertyStripped=parse_css$stripVendorPrefix(transitionedProperty);"opacity"!==transitionedPropertyStripped&&"transform"!==transitionedPropertyStripped&&this.errors.push(createParseErrorTokenAt($jscomp$key$decl,"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT",["style","transition",transitionedProperty,"['opacity', 'transform']"]))}null!==this.inKeyframes&&"transform"!==name&&"opacity"!==name&&"animation-timing-function"!==name&&this.errors.push(createParseErrorTokenAt($jscomp$key$decl, +"CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE",["style",$jscomp$key$decl.name,this.inKeyframes.name,"['animation-timing-function', 'opacity', 'transform']"]))}if(null!==transitionOrAnimation)for(qualifiedRule=$jscomp$makeIterator(qualifiedRule.parse_css_QualifiedRule$declarations),$jscomp$key$decl=qualifiedRule.next();!$jscomp$key$decl.done;$jscomp$key$decl=qualifiedRule.next())$jscomp$iter$10=$jscomp$key$decl.value,$jscomp$key$decl=["animation","opacity","transform","transition","visibility"],-1=== +$jscomp$key$decl.indexOf(parse_css$stripVendorPrefix($jscomp$iter$10.name))&&this.errors.push(createParseErrorTokenAt($jscomp$iter$10,"CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH",["style",$jscomp$iter$10.name,transitionOrAnimation.name,"['"+$jscomp$key$decl.join("', '")+"']"]))};Amp4AdsVisitor.prototype.visitAtRule=function(atRule){"keyframes"===parse_css$stripVendorPrefix(atRule.name)?this.inKeyframes=atRule:this.inKeyframes=null}; +Amp4AdsVisitor.prototype.leaveAtRule=function(){this.inKeyframes=null};/* Copyright 2017 The AMP HTML Authors. All Rights Reserved. @@ -336,10 +680,11 @@ lt.prototype.g=function(a){for(var b=null,c=n(a.b),d=c.next();!d.done;d=c.next() See the License for the specific language governing permissions and limitations under the license. */ -function mt(a,b,c){b=new yo(b,c);K(a,b);return b}function nt(a){this.errors=a;this.a=!1}m(nt,xp);nt.prototype.g=function(a){this.a?0=d.D.length)throw ot;var e=d.D[b++];return a?e:d.a[e]};return e};function st(){this.a=new qt}function tt(a){var b=typeof a;return"object"==b&&a||"function"==b?"o"+(a[lb]||(a[lb]=++Cb)):b.substr(0,1)+a}st.prototype.add=function(a){this.a.set(tt(a),a)};st.prototype.contains=function(a){a=tt(a);return Object.prototype.hasOwnProperty.call(this.a.a,a)};st.prototype.ea=function(){return this.a.ea()};st.prototype.b=function(){return this.a.b(!1)};/* +function createErrorTokenAt(positionToken,code,params){code=new parse_css$ErrorToken(code,params);JSCompiler_StaticMethods_copyPosTo(positionToken,code);return code}function KeyframesVisitor(errors){this.errors=errors;this.parentIsKeyframesAtRule=!1}$jscomp$inherits(KeyframesVisitor,parse_css$RuleVisitor); +KeyframesVisitor.prototype.visitQualifiedRule=function(qualifiedRule){this.parentIsKeyframesAtRule?0a.b&&(a.b++,b.next=a.a,a.a=b)};var yt;a:{var zt=r.navigator;if(zt){var At=zt.userAgent;if(At){yt=At;break a}}yt=""};function Bt(a){r.setTimeout(function(){throw a;},0)}var Ct; -function Dt(){var a=r.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&-1==yt.indexOf("Presto")&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var b=a.contentWindow;a=b.document;a.open();a.write("");a.close();var c="callImmediate"+Math.random(),d="file:"==b.location.protocol?"*":b.location.protocol+"//"+b.location.host;a=Fb(function(a){if(("*"==d||a.origin== -d)&&a.data==c)this.port1.onmessage()},this);b.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a&&-1==yt.indexOf("Trident")&&-1==yt.indexOf("MSIE")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var a=c.ka;c.ka=null;a()}};return function(a){d.next={ka:a};d=d.next;b.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(a){var b= -document.createElement("SCRIPT");b.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){r.setTimeout(a,0)}};function Et(){this.b=this.a=null}var Gt=new wt(function(){return new Ft},function(a){a.reset()});Et.prototype.add=function(a,b){var c=Gt.get();c.set(a,b);this.b?this.b.next=c:(t(!this.a),this.a=c);this.b=c};function Ht(){var a=It,b=null;a.a&&(b=a.a,a.a=a.a.next,a.a||(a.b=null),b.next=null);return b}function Ft(){this.next=this.b=this.a=null}Ft.prototype.set=function(a,b){this.a=a;this.b=b;this.next=null};Ft.prototype.reset=function(){this.next=this.b=this.a=null};function Jt(a,b){Kt||Lt();Mt||(Kt(),Mt=!0);It.add(a,b)}var Kt;function Lt(){if(-1!=String(r.Promise).indexOf("[native code]")){var a=r.Promise.resolve(void 0);Kt=function(){a.then(Nt)}}else Kt=function(){var a=Nt;!kb(r.setImmediate)||r.Window&&r.Window.prototype&&-1==yt.indexOf("Edge")&&r.Window.prototype.setImmediate==r.setImmediate?(Ct||(Ct=Dt()),Ct(a)):r.setImmediate(a)}}var Mt=!1,It=new Et;function Nt(){for(var a;a=Ht();){try{a.a.call(a.b)}catch(b){Bt(b)}xt(Gt,a)}Mt=!1};function Ot(a){this.a=0;this.i=void 0;this.f=this.b=this.c=null;this.g=this.h=!1;if(a!=ib)try{var b=this;a.call(void 0,function(a){Pt(b,2,a)},function(a){if(!(a instanceof Qt))try{if(a instanceof Error)throw a;throw Error("Promise rejected.");}catch(d){}Pt(b,3,a)})}catch(c){Pt(this,3,c)}}function Rt(){this.next=this.f=this.c=this.b=this.a=null;this.g=!1}Rt.prototype.reset=function(){this.f=this.c=this.b=this.a=null;this.g=!1};var St=new wt(function(){return new Rt},function(a){a.reset()}); -function Tt(a,b,c){var d=St.get();d.b=a;d.c=b;d.f=c;return d}Ot.prototype.then=function(a,b,c){null!=a&&Ee(a,"opt_onFulfilled should be a function.");null!=b&&Ee(b,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");return Ut(this,kb(a)?a:null,kb(b)?b:null,c)};Ot.prototype.then=Ot.prototype.then;Ot.prototype.$goog_Thenable=!0;Ot.prototype.cancel=function(a){0==this.a&&Jt(function(){var b=new Qt(a);Vt(this,b)},this)}; -function Vt(a,b){if(0==a.a)if(a.c){var c=a.c;if(c.b){for(var d=0,e=null,h=null,k=c.b;k&&(k.g||(d++,k.a==a&&(e=k),!(e&&1b?a:a.substr(0,b)};function eu(a){if(!(2>a.length)){Fe(a);for(var b=0,c=1;cb?a.h[-1-b]:a.b[b].name} -function mu(a,b,c,d){this.s=c;this.u=d;this.f=new iu(c);this.b="$REFERENCE_POINT"===c.tagName;this.v=b;this.a=Object.create(null);this.m=[];this.c=[];this.j=[];this.i=!1;null===c.i||this.b||nu(this,a.c,a);nu(this,c.b,a);b=n(c.c);for(d=b.next();!d.done;d=b.next())nu(this,a.f[d.value],a);this.b||nu(this,a.g,a);eu(this.c);null!==c.h&&(this.s.f=this.s.h.name+" extension .js script",this.s.j="HEAD",this.s.h.c?this.s.X=!0:this.s.unique=!0,this.s.u=new Wj,this.s.u.i=!0)} -function nu(a,b,c){b=n(b);for(var d=b.next();!d.done;d=b.next()){d=d.value;var e=lu(c,d);if(!(e in a.a||(a.a[e]=d,0>d))){e=ku(c,d).a;e.a&&a.m.push(d);null!==e.j&&a.c.push(e.j);for(var h=n(e.s),k=h.next();!k.done;k=h.next())a.a[k.value]=d;e.w&&a.j.push(d);e.c&&(a.i=!0)}}}mu.prototype.id=aa("u");mu.prototype.xa=aa("s");mu.prototype.H=function(){return this.s.H}; -function ou(a,b){t(null!==a.status);t(null!==b.status);"UNKNOWN"!==b.status&&(a.status=b.status);Array.prototype.push.apply(a.errors,b.errors)}function pu(a,b){t(null!==a.status);t(null!==b.status);a.status=b.status;var c=[];Array.prototype.push.apply(c,b.errors);a.errors=c}function qu(a,b){this.f=a;this.c=b}qu.prototype.b=aa("f");qu.prototype.a=aa("c");var ru=new qu(1,0);function su(a){this.a=a;this.b=0;this.c=ru}function tu(a,b){this.b=a;this.a=b;this.f=ru;this.c=[];t(0!==b.a.v.length)} -function uu(){this.a=[];this.a.push(vu("$ROOT"));this.b=[]}function vu(a){return{tagName:a,T:!1,V:0,ga:"",ua:null,ra:0,fa:"",sa:"",qa:null,Z:null,$:null,O:null}}function wu(a){t(0/.test(c.value)&&Z("TEMPLATE_PARTIAL_IN_ATTR_VALUE",b.a,[c.name,S(a.s),c.value],b.c.a.c,d)} -function Vw(a,b,c,d){t(null!==a.h);var e=a.h;if(e.f||"custom-element"!==c.name){if(e.f&&"custom-template"===c.name)return e.name!==c.value?(t(e.name===c.value.toLowerCase()),!1):!0;if("src"===c.name){var h=/^https:\/\/cdn\.ampproject\.org\/v0\/(amp-[a-z0-9-]*)-([a-z0-9.]*)\.js$/.exec(c.value);if(null!==h&&h[1]===e.name){h=h[2];if(-1!==e.g.indexOf(h))return Fu("WARNING_EXTENSION_DEPRECATED_VERSION",b.a,[e.name,h],T(a),d),!0;if(-1!==e.a.indexOf(h))return!0}Z("INVALID_ATTR_VALUE",b.a,[c.name,S(a),c.value], -T(a),d);return!0}}else return e.name!==c.value?(t(e.name===c.value.toLowerCase()),!1):!0;return!1}function Ww(){this.a=null;this.b=[]}function Xw(a,b,c){null===a.a&&(a.a=Object.create(null));t(!(b in a.a));a.a[b]=c}function Yw(a,b,c,d){if(null===a.a)return-1;var e=Sw("NAME_VALUE_PARENT_DISPATCH",b,c,d);e=a.a[e];if(void 0!==e)return e;e=Sw("NAME_VALUE_DISPATCH",b,c,"");e=a.a[e];if(void 0!==e)return e;e=Sw("NAME_DISPATCH",b,"","");e=a.a[e];return void 0!==e?e:b===c?Yw(a,b,"",d):-1} -function Zw(a,b,c){var d=new ek;d.status="UNKNOWN";var e=a.s;null!==e.j&&e.j!==X(b.b).tagName&&Z("WRONG_PARENT_TAG",b.a,[S(e),X(b.b).tagName.toLowerCase(),e.j.toLowerCase()],T(e),d);a:{var h=a.s;if(null!==h.m){var k=h.m;if(!xu(b.b,k)){null!==h.N?Z("MANDATORY_TAG_ANCESTOR_WITH_HINT",b.a,[S(h),k.toLowerCase(),h.N.toLowerCase()],T(h),d):Z("MANDATORY_TAG_ANCESTOR",b.a,[S(h),k.toLowerCase()],T(h),d);break a}}for(var l=n(h.C),q=l.next();!q.done;q=l.next()){var D=q.value;if(xu(b.b,D)){Z("DISALLOWED_TAG_ANCESTOR", -b.a,[S(h),D.toLowerCase()],T(h),d);break}}}if("FAIL"!==d.status){var p=a.s;if(null!==p.i)a:{var B=a.s;t(null!==B.i);if(null===c.c){c.c=Object.create(null);for(var L=n(c.b),U=L.next();!U.done;U=L.next()){var Aa=U.value;c.c[Aa.name]=Aa.value}}var ta=c.c;var ca=ta.layout,Ha=ta.width,Ba=ta.height,mb=ta.sizes,Ua=ta.heights;if(!xu(b.b,"TEMPLATE")||!(Tw(ca)||Tw(Ha)||Tw(Ba)||Tw(mb)||Tw(Ua))){if(void 0===ca)var nb="UNKNOWN";else{var Jb=ca.toUpperCase().replace("-","_"),Kb=Rj.indexOf(Jb);nb=-1===Kb?"UNKNOWN": -Sj[Kb]}var da=nb;if(void 0!==ca&&"UNKNOWN"===da)Z("INVALID_ATTR_VALUE",b.a,["layout",S(B),ca],T(B),d);else{var Ia=new Rw(Ha,!0);if(Ia.b){var Ja=new Rw(Ba,!0);if(Ja.b){var V="UNKNOWN"!==da&&"FIXED"!==da||Ia.a||!B.i.b?Ia:new Rw("1px",!1),la="UNKNOWN"!==da&&"FIXED"!==da&&"FIXED_HEIGHT"!==da||Ja.a||!B.i.a?Ja:new Rw("1px",!1),O="UNKNOWN"!==da?da:V.a||la.a?!la.a||V.a&&!V.f?la.a&&V.a&&(void 0!==mb||void 0!==Ua)?"RESPONSIVE":"FIXED":"FIXED_HEIGHT":"CONTAINER";if(la.f&&"FLEX_ITEM"!==O)Z("INVALID_ATTR_VALUE", -b.a,["height",S(B),Ba],T(B),d);else if(-1===B.i.c.indexOf(O))Z(void 0===ca?"IMPLIED_LAYOUT_INVALID":"SPECIFIED_LAYOUT_INVALID",b.a,[O,S(B)],T(B),d);else if("FIXED"!==O&&"FIXED_HEIGHT"!==O&&"RESPONSIVE"!==O||la.a)if("FIXED_HEIGHT"===O&&V.a&&!V.f)Z("ATTR_VALUE_REQUIRED_BY_LAYOUT",b.a,[Ha,"width",S(B),"FIXED_HEIGHT","auto"],T(B),d);else{if("FIXED"===O||"RESPONSIVE"===O){if(!V.a){Z("MANDATORY_ATTR_MISSING",b.a,["width",S(B)],T(B),d);break a}if(V.f){Z("INVALID_ATTR_VALUE",b.a,["width",S(B),"auto"],T(B), -d);break a}}"RESPONSIVE"===O&&V.c!==la.c?Z("INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT",b.a,[S(B),V.c,la.c],T(B),d):void 0!==Ua&&"RESPONSIVE"!==O&&Z(void 0===ca?"ATTR_DISALLOWED_BY_IMPLIED_LAYOUT":"ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT",b.a,["heights",S(B),O],T(B),d)}else Z("MANDATORY_ATTR_MISSING",b.a,["height",S(B)],T(B),d)}else Z("INVALID_ATTR_VALUE",b.a,["height",S(B),Ba],T(B),d)}else Z("INVALID_ATTR_VALUE",b.a,["width",S(B),Ha],T(B),d)}}}for(var Va=!1,Ka=xu(b.b,"TEMPLATE"),yc=[],zc=[],Qe=[],Lb=[], -Ac=n(a.j),Mb=Ac.next();!Mb.done;Mb=Ac.next())Lb[Mb.value]=0;for(var ob=a.a,Bc=n(c.b),Nb=Bc.next();!Nb.done;Nb=Bc.next()){var J=Nb.value;if(J.name in ob){if(Ka&&(Uw(a,b,J,d),"FAIL"===d.status))continue;var Ob=ob[J.name];if(0>Ob)Lb[Ob]=0;else{var Q=ku(b.c.c,Ob),ea=Q.a;null!==ea.v&&Fu("DEPRECATED_ATTR",b.a,[J.name,S(p),ea.v],ea.C,d);if(!Ka||!Tw(J.value)){var ua=b,R=J,ma=d,Y=Q.a;if(null!==Y.value)R.value!==Y.value&&Z("INVALID_ATTR_VALUE",ua.a,[R.name,S(p),R.value],T(p),ma);else if(null!==Y.g)R.value.toLowerCase()!== -Y.g&&Z("INVALID_ATTR_VALUE",ua.a,[R.name,S(p),R.value],T(p),ma);else if(null!==Y.b||null!==Y.i)(null!==Y.b?$w(ua.c,Y.b):ax(ua.c,Y.i)).test(R.value)||Z("INVALID_ATTR_VALUE",ua.a,[R.name,S(p),R.value],T(p),ma);else if(null!==Y.c)a:{var va=ua,P=R,Wa=ma,W=[];if("srcset"!==P.name)W.push(P.value);else{if(""===P.value){Z("MISSING_URL",va.a,[P.name,S(p)],T(p),Wa);break a}var Xa=vt(P.value);if(!Xa.c){"DUPLICATE_DIMENSION"===Xa.a?Z(Xa.a,va.a,[P.name,S(p)],T(p),Wa):Z(Xa.a,va.a,[P.name,S(p),P.value],T(p),Wa); -break a}if(null!==Xa.b)for(var fa=n(Xa.b),Cc=fa.next();!Cc.done;Cc=fa.next())W.push(Cc.value.url)}if(0===W.length)Z("MISSING_URL",va.a,[P.name,S(p)],T(p),Wa);else{eu(W);for(var ra=new Iu(P.name),Re=n(W),wa=Re.next();!wa.done;wa=Re.next()){var Pb=wa.value;var na=-1!=Pb.indexOf("&")?"document"in r?dt(Pb):ft(Pb):Pb;null===Q.c&&(Q.c=new fu(Q.a.c));Qw(Q.c,ra,va,na,p,Wa);if("FAIL"===Wa.status)break}}}else{if(null===Q.a.u)var pb=null;else null===Q.b&&(Q.b=new gu(Q.a.u)),pb=Q.b;if(null!==pb){for(var Qb=pb, -sa=ua,Ca=R,Dc=ma,Mg=Ca.value.split(/[,;]/),Se=Object.create(null),Ng=n(Mg),Ec=Ng.next();!Ec.done;Ec=Ng.next()){var Fc=Ec.value.split("=");2>Fc.length||(Se[Fc[0].trim().toLowerCase()]=Fc[1])}for(var Te=Object.keys(Se).sort(),Ue=n(Te),La=Ue.next();!La.done;La=Ue.next()){var Ya=La.value,Gc=Se[Ya],Og=Qb.b;if(Ya in Og){var Hc=Og[Ya];null!==Hc.value?Hc.value!==Gc.toLowerCase()&&Z("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",sa.a,[Ya,Ca.name,S(p),Gc],T(p),Dc):null!==Hc.b&&parseFloat(Gc)!==Hc.b&&Z("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE", -sa.a,[Ya,Ca.name,S(p),Gc],T(p),Dc)}else Z("DISALLOWED_PROPERTY_IN_ATTR_VALUE",sa.a,[Ya,Ca.name,S(p)],T(p),Dc)}for(var Za=Qb.a,Ic=Te,Da=0,$a=0,Jc=[];Da=Ic.length?(Jc.push(Za[Da]),Da++):Ic[$a]>Za[Da]?(Jc.push(Za[Da]),Da++):(Ic[$a]X(ab).ra&&Z("MANDATORY_LAST_CHILD_TAG",X(ab).qa,[X(ab).fa.toLowerCase(),X(ab).tagName.toLowerCase()],X(ab).sa,d);if(xu(b.b,"BODY"))for(var sk=b.f,fh=n(a.s.g),Tb=fh.next();!Tb.done;Tb=fh.next()){var Qc=Tb.value;Qc in sk.a||Z("MISSING_REQUIRED_EXTENSION",b.a,[S(a.s),Qc],T(a),d)}if("FAIL"!=d.status){var bb=a.s;bb.unique&&b.g.hasOwnProperty(a.id())&& -Z("DUPLICATE_UNIQUE_TAG",b.a,[S(bb)],T(a),d)}if(0!==a.f.a.v.length){var Ma=wu(b.b).O;null!==Ma&&Z("TAG_REFERENCE_POINT_CONFLICT",b.a,[S(a.s),S(Ma.a.a)],T(Ma.a.a),d)}if("FAIL"!==d.status){var oa=a.s;null!==oa.R&&Fu("DEPRECATED_TAG",b.a,[S(oa),oa.R],oa.W,d);oa.X&&b.g.hasOwnProperty(a.id())&&Fu("DUPLICATE_UNIQUE_TAG_WARNING",b.a,[S(oa)],T(oa),d)}return d} -function dx(a){this.a=gk();this.v=Array(this.a.tags.length);this.f=Object.create(null);this.u=[];this.i=[];this.h=[];this.j=[];this.g={};this.s=function(b){return 0===b.a.length||-1!==b.a.indexOf(a)};this.c=new ju(this.a);this.m=[];for(var b=this.a.tags.length,c=0;cex(a,c.errors)?b:ex(a,c.errors)>ex(a,b.errors)?c:b} -function cx(a,b){var c=a.v[b];if(void 0!==c)return c;c=a.a.tags[b];t(void 0!==c);c=new mu(a.c,c.F||c.unique||0e.c){Z("STYLESHEET_TOO_LONG",c.a,[S(b.a),h.toString(),e.c.toString()],e.h,d);break a}}if(null!==b.a.u.a){if(!$w(c.c,b.a.u.a).test(a)){Z("MANDATORY_CDATA_MISSING_OR_INCORRECT",c.a,[S(b.a)],T(b.a),d);break a}}else if(null!==e.f){h=e.f;for(var k=[],l=(new mk(a,b.b.b(),b.b.a(),k)).h,q=Object.create(null),D= -n(h.a),p=D.next();!p.done;p=D.next())p=p.value,"PARSE_AS_ERROR"===p.type||"PARSE_AS_IGNORE"===p.type?q[p.name]="PARSE_AS_IGNORE":"PARSE_AS_RULES"===p.type?q[p.name]="PARSE_AS_RULES":"PARSE_AS_DECLARATIONS"===p.type?q[p.name]="PARSE_AS_DECLARATIONS":xc("Unrecognized atRuleSpec type: "+p.type);p="PARSE_AS_IGNORE";0B&&(B=a.length);L&4?b.ca&&b.ca(a.substring(0,B)):b.va&&a.substring(0,B).replace(Fg,"&$1").replace(Gg,"<").replace(Hg,">");if(l){var L=l;var U=a.substring(0,B);L.f=L.c;L.c+=U.length}a=a.substring(B)}B=L=U=void 0;h.length=0;e&&l&&Hj(l);e=!1}}else if(q[1])yg(k,q[0]);else if(q[3])U=!q[2],!e&&l&&Hj(l),e=!0,B=He(q[3]),L=Eg.hasOwnProperty(B)?Eg[B]:64;else if(q[4])!e&&l&&Hj(l),yg(k,q[4]);else if(q[5])switch(q[5]){case "<":yg(k, -"<");break;case ">":yg(k,">");break;default:yg(k,"&")}}for(!e&&l&&Hj(l);0 style[amp-boilerplate]")||N(a.params[0],"noscript > style[amp-boilerplate]"))|| -("DISALLOWED_PROPERTY_IN_ATTR_VALUE"===a.code||"INVALID_PROPERTY_VALUE_IN_ATTR_VALUE"===a.code||"MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE"===a.code)&&"meta name=viewport"===a.params[2]?"MANDATORY_AMP_TAG_MISSING_OR_INCORRECT":"ATTR_VALUE_REQUIRED_BY_LAYOUT"!==a.code&&"IMPLIED_LAYOUT_INVALID"!==a.code&&"SPECIFIED_LAYOUT_INVALID"!==a.code&&"INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT"!==a.code&&("INVALID_ATTR_VALUE"!==a.code&&"MANDATORY_ATTR_MISSING"!==a.code||"width"!==a.params[0]&&"height"!==a.params[0]&& -"layout"!==a.params[0])&&"ATTR_DISALLOWED_BY_IMPLIED_LAYOUT"!==a.code&&"ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT"!==a.code?"INVALID_ATTR_VALUE"===a.code&&"src"===a.params[0]&&ct(a.params[1],"script")||"GENERAL_DISALLOWED_TAG"===a.code&&"script"===a.params[0]||"DISALLOWED_SCRIPT_TAG"===a.code||"INVALID_ATTR_VALUE"===a.code&&N(a.params[1],"script")&&"type"===a.params[0]?"CUSTOM_JAVASCRIPT_DISALLOWED":"INVALID_ATTR_VALUE"===a.code||"DISALLOWED_ATTR"===a.code||"MANDATORY_ATTR_MISSING"===a.code?N(a.params[1], -"amp-")?"AMP_TAG_PROBLEM":N(a.params[1],"on")?"CUSTOM_JAVASCRIPT_DISALLOWED":"style"===a.params[1]||"link rel=stylesheet for fonts"===a.params[1]?"AUTHOR_STYLESHEET_PROBLEM":"DISALLOWED_HTML":"MANDATORY_ONEOF_ATTR_MISSING"===a.code?"AMP_TAG_PROBLEM":"DEPRECATED_ATTR"===a.code||"DEPRECATED_TAG"===a.code||"WARNING_EXTENSION_DEPRECATED_VERSION"===a.code||"WARNING_TAG_REQUIRED_BY_MISSING"===a.code?"DEPRECATION":"WRONG_PARENT_TAG"===a.code?N(a.params[0],"amp-")||N(a.params[1],"amp-")||N(a.params[2],"amp-")? -"AMP_TAG_PROBLEM":"DISALLOWED_HTML":"MISSING_REQUIRED_EXTENSION"==a.code||"EXTENSION_UNUSED"==a.code||"TAG_REQUIRED_BY_MISSING"===a.code&&(N(a.params[1],"amp-")||"template"===a.params[1])?"AMP_TAG_PROBLEM":"ATTR_REQUIRED_BUT_MISSING"===a.code?"DISALLOWED_HTML":"MUTUALLY_EXCLUSIVE_ATTRS"===a.code&&N(a.params[0],"amp-")?"AMP_TAG_PROBLEM":"DUPLICATE_UNIQUE_TAG"===a.code||"DUPLICATE_UNIQUE_TAG_WARNING"===a.code?"MANDATORY_AMP_TAG_MISSING_OR_INCORRECT":"UNESCAPED_TEMPLATE_IN_ATTR_VALUE"===a.code||"TEMPLATE_PARTIAL_IN_ATTR_VALUE"=== -a.code||"TEMPLATE_IN_ATTR_NAME"===a.code?"AMP_HTML_TEMPLATE_PROBLEM":"DISALLOWED_TAG_ANCESTOR"===a.code&&N(a.params[1],"amp-")?"AMP_TAG_PROBLEM":"DISALLOWED_TAG_ANCESTOR"===a.code&&"template"===a.params[1]?"AMP_HTML_TEMPLATE_PROBLEM":"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR"===a.code?"AMP_TAG_PROBLEM":"MISSING_URL"===a.code||"INVALID_URL"===a.code||"INVALID_URL_PROTOCOL"===a.code||"DISALLOWED_DOMAIN"===a.code||"DISALLOWED_RELATIVE_URL"===a.code?N(a.params[1],"amp-")?"AMP_TAG_PROBLEM": -"DISALLOWED_HTML":"DUPLICATE_DIMENSION"===a.code?"DISALLOWED_HTML":"CSS_SYNTAX_INVALID_PROPERTY"===a.code||"CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS"===a.code||"CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME"===a.code||"CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME"===a.code||"CSS_SYNTAX_INVALID_AT_RULE"===a.code?"AUTHOR_STYLESHEET_PROBLEM":"GENERIC":"AMP_LAYOUT_PROBLEM"}Gb("amp.validator.categorizeError",rx); -Gb("amp.validator.annotateWithErrorCategories",function(a){a=n(a.errors);for(var b=a.next();!b.done;b=a.next())b=b.value,b.category=rx(b)});Gb("amp.validator.validateSaxEvents",function(){throw"not implemented";});function sx(a){return new Ot(function(b,c){var d=new XMLHttpRequest;d.onreadystatechange=function(){4==d.readyState&&(200==d.status?b(d.responseText):c("Fetching file for validation failed: "+a))};d.open("GET",a,!0);d.send()})} -Gb("amp.validator.validateUrlAndLog",function(a,b,c){sx(a).then(function(d){var e=kx(d);b&&(d=new ek,d.status="UNKNOWN",ou(e,d));a:{d=new lx;var h=c||null,k=e.status;if("PASS"===k){if((console.info||console.log).call(console,"AMP validation successful."),0===e.errors.length)break a}else if("FAIL"!==k){d.error("AMP validation had unknown results. This indicates a validator bug. Please report at https://github.com/ampproject/amphtml/issues .");break a}if(null===h)"FAIL"===k?d.error("AMP validation had errors:"): -mx("AMP validation had warnings:"),k=e.errors;else{k=[];e=n(e.errors);for(var l=e.next();!l.done;l=e.next())l=l.value,""+rx(l)===h&&k.push(l);e=du(a)+"#development=1";0===k.length?d.error("AMP validation - no errors matching filter="+h+" found. To see all errors, visit "+e):d.error("AMP validation - displaying errors matching filter="+h+". To see all errors, visit "+e)}e=n(k);for(l=e.next();!l.done;l=e.next())l=l.value,"ERROR"===l.severity?d.error(px(a,l)):mx(px(a,l));null===h&&0!==k.length&&(d="See also https://validator.ampproject.org/#url="+ -encodeURIComponent(du(a)),(console.info||console.log).call(console,d))}},function(a){console.error(a)})}); +function parse_srcset$SrcsetParsingResult(){this.success=!1;this.parse_srcset_SrcsetParsingResult$errorCode="UNKNOWN_CODE";this.srcsetImages=[]} +function parse_srcset$parseSrcset(srcset){for(var imageCandidateRegex=/\s*(?:,\s*)?([^,\s]\S*[^,\s])\s*([\d]+.?[\d]*[w|x])?\s*(?:(,)\s*)?/g,remainingSrcset=srcset,seenWidthOrPixelDensity=new goog$structs$Set,result=new parse_srcset$SrcsetParsingResult,srcsetImages=result.srcsetImages,source;source=imageCandidateRegex.exec(srcset);){remainingSrcset=source[1];var widthOrPixelDensity=source[2];source=source[3];void 0===widthOrPixelDensity&&(widthOrPixelDensity="1x");var key=goog$structs$Set$getKey_(widthOrPixelDensity); +if(Object.prototype.hasOwnProperty.call(seenWidthOrPixelDensity.goog_structs_Set$map_.goog_structs_Map$map_,key))return result.parse_srcset_SrcsetParsingResult$errorCode="DUPLICATE_DIMENSION",result;seenWidthOrPixelDensity.add(widthOrPixelDensity);srcsetImages.push({url:remainingSrcset,widthOrPixelDensity:widthOrPixelDensity});remainingSrcset=srcset.substr(imageCandidateRegex.lastIndex);if(srcset.length<=imageCandidateRegex.lastIndex)break;if(void 0===source)return result.parse_srcset_SrcsetParsingResult$errorCode= +"INVALID_ATTR_VALUE",result}if(""!==remainingSrcset||0===srcsetImages.length)return result.parse_srcset_SrcsetParsingResult$errorCode="INVALID_ATTR_VALUE",result;result.success=!0;return result}goog$exportSymbol("parse_srcset.parseSrcset",parse_srcset$parseSrcset);function goog$async$FreeList(create,reset){this.create_=create;this.reset_=reset;this.occupants_=0;this.head_=null}goog$async$FreeList.prototype.get=function(){if(0JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.occupants_&&(JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.occupants_++,item.next=JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.head_,JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.head_= +item)};var goog$labs$userAgent$util$userAgent_;a:{var navigator$jscomp$inline_274=goog$global.navigator;if(navigator$jscomp$inline_274){var userAgent$jscomp$inline_275=navigator$jscomp$inline_274.userAgent;if(userAgent$jscomp$inline_275){goog$labs$userAgent$util$userAgent_=userAgent$jscomp$inline_275;break a}}goog$labs$userAgent$util$userAgent_=""};function goog$async$throwException(exception){goog$global.setTimeout(function(){throw exception;},0)}var goog$async$nextTick$setImmediate_; +function goog$async$nextTick$getSetImmediateEmulator_(){var Channel=goog$global.MessageChannel;"undefined"===typeof Channel&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Presto")&&(Channel=function(){var iframe=document.createElement("IFRAME");iframe.style.display="none";iframe.src="";document.documentElement.appendChild(iframe);var win=iframe.contentWindow;iframe=win.document;iframe.open();iframe.write("");iframe.close(); +var message="callImmediate"+Math.random(),origin="file:"==win.location.protocol?"*":win.location.protocol+"//"+win.location.host;iframe=goog$bind(function(e){if(("*"==origin||e.origin==origin)&&e.data==message)this.port1.onmessage()},this);win.addEventListener("message",iframe,!1);this.port1={};this.port2={postMessage:function(){win.postMessage(message,origin)}}});if("undefined"!==typeof Channel&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Trident")&&-1==goog$labs$userAgent$util$userAgent_.indexOf("MSIE")){var channel= +new Channel,head={},tail=head;channel.port1.onmessage=function(){if(void 0!==head.next){head=head.next;var cb=head.cb;head.cb=null;cb()}};return function(cb){tail.next={cb:cb};tail=tail.next;channel.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(cb){var script=document.createElement("SCRIPT");script.onreadystatechange=function(){script.onreadystatechange=null;script.parentNode.removeChild(script);script=null;cb();cb=null}; +document.documentElement.appendChild(script)}:function(cb){goog$global.setTimeout(cb,0)}};function goog$async$WorkQueue(){this.workTail_=this.workHead_=null}var goog$async$WorkQueue$freelist_=new goog$async$FreeList(function(){return new goog$async$WorkItem},function(item){item.reset()});goog$async$WorkQueue.prototype.add=function(fn,scope){var item=goog$async$WorkQueue$freelist_.get();item.set(fn,scope);this.workTail_?this.workTail_.next=item:(goog$asserts$assert(!this.workHead_),this.workHead_=item);this.workTail_=item}; +function JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove(){var JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self=goog$async$run$workQueue_,item=null;JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_&&(item=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_,JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_.next, +JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_||(JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workTail_=null),item.next=null);return item}function goog$async$WorkItem(){this.next=this.goog_async_WorkItem$scope=this.fn=null}goog$async$WorkItem.prototype.set=function(fn,scope){this.fn=fn;this.goog_async_WorkItem$scope=scope;this.next=null};goog$async$WorkItem.prototype.reset=function(){this.next=this.goog_async_WorkItem$scope=this.fn=null};function goog$async$run(callback,opt_context){goog$async$run$schedule_||goog$async$run$initializeRunner_();goog$async$run$workQueueScheduled_||(goog$async$run$schedule_(),goog$async$run$workQueueScheduled_=!0);goog$async$run$workQueue_.add(callback,opt_context)}var goog$async$run$schedule_; +function goog$async$run$initializeRunner_(){if(-1!=String(goog$global.Promise).indexOf("[native code]")){var promise=goog$global.Promise.resolve(void 0);goog$async$run$schedule_=function(){promise.then(goog$async$run$processWorkQueue)}}else goog$async$run$schedule_=function(){var cb=goog$async$run$processWorkQueue;!goog$isFunction(goog$global.setImmediate)||goog$global.Window&&goog$global.Window.prototype&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Edge")&&goog$global.Window.prototype.setImmediate== +goog$global.setImmediate?(goog$async$nextTick$setImmediate_||(goog$async$nextTick$setImmediate_=goog$async$nextTick$getSetImmediateEmulator_()),goog$async$nextTick$setImmediate_(cb)):goog$global.setImmediate(cb)}}var goog$async$run$workQueueScheduled_=!1,goog$async$run$workQueue_=new goog$async$WorkQueue; +function goog$async$run$processWorkQueue(){for(var item;item=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove();){try{item.fn.call(item.goog_async_WorkItem$scope)}catch(e){goog$async$throwException(e)}JSCompiler_StaticMethods_goog_async_FreeList_prototype$put(goog$async$WorkQueue$freelist_,item)}goog$async$run$workQueueScheduled_=!1};function goog$Promise(resolver){this.state_=0;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.hadUnhandledRejection_=this.executing_=!1;if(resolver!=goog$nullFunction)try{var self=this;resolver.call(void 0,function(value){JSCompiler_StaticMethods_resolve_(self,2,value)},function(reason){if(!(reason instanceof goog$Promise$CancellationError))try{if(reason instanceof Error)throw reason;throw Error("Promise rejected.");}catch(e){}JSCompiler_StaticMethods_resolve_(self, +3,reason)})}catch(e){JSCompiler_StaticMethods_resolve_(this,3,e)}}function goog$Promise$CallbackEntry_(){this.next=this.goog_Promise_CallbackEntry_$context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1}goog$Promise$CallbackEntry_.prototype.reset=function(){this.goog_Promise_CallbackEntry_$context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};var goog$Promise$freelist_=new goog$async$FreeList(function(){return new goog$Promise$CallbackEntry_},function(item){item.reset()}); +function goog$Promise$getCallbackEntry_(onFulfilled,onRejected,context){var entry=goog$Promise$freelist_.get();entry.onFulfilled=onFulfilled;entry.onRejected=onRejected;entry.goog_Promise_CallbackEntry_$context=context;return entry} +goog$Promise.prototype.then=function(opt_onFulfilled,opt_onRejected,opt_context){null!=opt_onFulfilled&&goog$asserts$assertFunction(opt_onFulfilled,"opt_onFulfilled should be a function.");null!=opt_onRejected&&goog$asserts$assertFunction(opt_onRejected,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");return JSCompiler_StaticMethods_addChildPromise_(this,goog$isFunction(opt_onFulfilled)?opt_onFulfilled:null,goog$isFunction(opt_onRejected)? +opt_onRejected:null,opt_context)};goog$Promise.prototype.then=goog$Promise.prototype.then;goog$Promise.prototype.$goog_Thenable=!0;goog$Promise.prototype.cancel=function(opt_message){0==this.state_&&goog$async$run(function(){var err=new goog$Promise$CancellationError(opt_message);JSCompiler_StaticMethods_cancelInternal_(this,err)},this)}; +function JSCompiler_StaticMethods_cancelInternal_(JSCompiler_StaticMethods_cancelInternal_$self,err){if(0==JSCompiler_StaticMethods_cancelInternal_$self.state_)if(JSCompiler_StaticMethods_cancelInternal_$self.parent_){var JSCompiler_StaticMethods_cancelChild_$self=JSCompiler_StaticMethods_cancelInternal_$self.parent_;if(JSCompiler_StaticMethods_cancelChild_$self.callbackEntries_){for(var childCount=0,childEntry=null,beforeChildEntry=null,entry=JSCompiler_StaticMethods_cancelChild_$self.callbackEntries_;entry&& +(entry.always||(childCount++,entry.child==JSCompiler_StaticMethods_cancelInternal_$self&&(childEntry=entry),!(childEntry&&1hashIndex?uri:uri.substr(0,hashIndex)};function sortAndUniquify(arrayValue){if(!(2>arrayValue.length)){goog$array$sort(arrayValue);for(var uniqIdx=0,i=1;iid?JSCompiler_StaticMethods_getNameByAttrSpecId$self.internedStrings_[-1-id]:JSCompiler_StaticMethods_getNameByAttrSpecId$self.attrSpecs_[id].name} +function ParsedTagSpec(parsedAttrSpecs,shouldRecordTagspecValidated,tagSpec,id){this.ParsedTagSpec$spec_=tagSpec;this.ParsedTagSpec$id_=id;this.referencePoints_=new ParsedReferencePoints(tagSpec);this.isReferencePoint_="$REFERENCE_POINT"===tagSpec.tagName;this.attrsByName_=Object.create(null);this.mandatoryAttrIds_=[];this.mandatoryOneofs_=[];this.implicitAttrspecs_=[];this.containsUrl_=!1;null===tagSpec.ampLayout||this.isReferencePoint_||JSCompiler_StaticMethods_mergeAttrs(this,parsedAttrSpecs.ParsedAttrSpecs$ampLayoutAttrs, +parsedAttrSpecs);JSCompiler_StaticMethods_mergeAttrs(this,tagSpec.amp_validator_TagSpec$attrs,parsedAttrSpecs);shouldRecordTagspecValidated=$jscomp$makeIterator(tagSpec.amp_validator_TagSpec$attrLists);for(id=shouldRecordTagspecValidated.next();!id.done;id=shouldRecordTagspecValidated.next())JSCompiler_StaticMethods_mergeAttrs(this,parsedAttrSpecs.ParsedAttrSpecs$attrLists[id.value],parsedAttrSpecs);this.isReferencePoint_||JSCompiler_StaticMethods_mergeAttrs(this,parsedAttrSpecs.ParsedAttrSpecs$globalAttrs, +parsedAttrSpecs);sortAndUniquify(this.mandatoryOneofs_);null!==tagSpec.extensionSpec&&(this.ParsedTagSpec$spec_.specName=this.ParsedTagSpec$spec_.extensionSpec.name+" extension .js script",this.ParsedTagSpec$spec_.mandatoryParent="HEAD",this.ParsedTagSpec$spec_.extensionSpec.deprecatedAllowDuplicates?this.ParsedTagSpec$spec_.uniqueWarning=!0:this.ParsedTagSpec$spec_.unique=!0,this.ParsedTagSpec$spec_.amp_validator_TagSpec$cdata=new amp$validator$CdataSpec,this.ParsedTagSpec$spec_.amp_validator_TagSpec$cdata.whitespaceOnly= +!0)} +function JSCompiler_StaticMethods_mergeAttrs(JSCompiler_StaticMethods_mergeAttrs$self,attrs,parsedAttrSpecs){attrs=$jscomp$makeIterator(attrs);for(var $jscomp$key$attrId=attrs.next();!$jscomp$key$attrId.done;$jscomp$key$attrId=attrs.next()){$jscomp$key$attrId=$jscomp$key$attrId.value;var name=JSCompiler_StaticMethods_getNameByAttrSpecId(parsedAttrSpecs,$jscomp$key$attrId);if(!(name in JSCompiler_StaticMethods_mergeAttrs$self.attrsByName_||(JSCompiler_StaticMethods_mergeAttrs$self.attrsByName_[name]=$jscomp$key$attrId, +0>$jscomp$key$attrId))){name=JSCompiler_StaticMethods_getByAttrSpecId(parsedAttrSpecs,$jscomp$key$attrId).ParsedAttrSpec$spec_;name.amp_validator_AttrSpec$mandatory&&JSCompiler_StaticMethods_mergeAttrs$self.mandatoryAttrIds_.push($jscomp$key$attrId);null!==name.mandatoryOneof&&JSCompiler_StaticMethods_mergeAttrs$self.mandatoryOneofs_.push(name.mandatoryOneof);for(var $jscomp$iter$16=$jscomp$makeIterator(name.alternativeNames),$jscomp$key$altName=$jscomp$iter$16.next();!$jscomp$key$altName.done;$jscomp$key$altName= +$jscomp$iter$16.next())JSCompiler_StaticMethods_mergeAttrs$self.attrsByName_[$jscomp$key$altName.value]=$jscomp$key$attrId;name.implicit&&JSCompiler_StaticMethods_mergeAttrs$self.implicitAttrspecs_.push($jscomp$key$attrId);name.valueUrl&&(JSCompiler_StaticMethods_mergeAttrs$self.containsUrl_=!0)}}}ParsedTagSpec.prototype.id=function(){return this.ParsedTagSpec$id_};ParsedTagSpec.prototype.ParsedTagSpec_prototype$getSpec=function(){return this.ParsedTagSpec$spec_}; +ParsedTagSpec.prototype.cdataMatcher=function(lineCol){return null!==this.ParsedTagSpec$spec_.amp_validator_TagSpec$cdata?new CdataMatcher(this.ParsedTagSpec$spec_,lineCol):null};ParsedTagSpec.prototype.childTagMatcher=function(lineCol){return null!==this.ParsedTagSpec$spec_.childTags?new ChildTagMatcher(this.ParsedTagSpec$spec_,lineCol):null}; +ParsedTagSpec.prototype.referencePointMatcher=function(rules,lineCol){return 0===this.referencePoints_.parentTagSpec_.referencePoints.length?null:new ReferencePointMatcher(rules,this.referencePoints_,lineCol)};ParsedTagSpec.prototype.requires=function(){return this.ParsedTagSpec$spec_.requires}; +function JSCompiler_StaticMethods_mergeFrom(JSCompiler_StaticMethods_mergeFrom$self,other){goog$asserts$assert(null!==JSCompiler_StaticMethods_mergeFrom$self.status);goog$asserts$assert(null!==other.status);"FAIL"===other.status&&(JSCompiler_StaticMethods_mergeFrom$self.status="FAIL");Array.prototype.push.apply(JSCompiler_StaticMethods_mergeFrom$self.errors,other.errors)} +function JSCompiler_StaticMethods_copyFrom(JSCompiler_StaticMethods_copyFrom$self,other){goog$asserts$assert(null!==JSCompiler_StaticMethods_copyFrom$self.status);goog$asserts$assert(null!==other.status);JSCompiler_StaticMethods_copyFrom$self.status=other.status;var newErrors=[];Array.prototype.push.apply(newErrors,other.errors);JSCompiler_StaticMethods_copyFrom$self.errors=newErrors} +function ChildTagMatcher(parentSpec,lineCol){this.parentSpec_=parentSpec;this.ChildTagMatcher$lineCol_=lineCol;goog$asserts$assert(null!==this.parentSpec_.childTags)} +function ReferencePointMatcher(parsedValidatorRules,parsedReferencePoints,lineCol){this.parsedValidatorRules_=parsedValidatorRules;this.parsedReferencePoints_=parsedReferencePoints;this.ReferencePointMatcher$lineCol_=lineCol;this.referencePointsMatched_=[];goog$asserts$assert(0!==parsedReferencePoints.parentTagSpec_.referencePoints.length)} +function TagStack(){this.TagStack$stack_=[];this.TagStack$stack_.push(JSCompiler_StaticMethods_createNewTagStackEntry("$ROOT"));this.allowedDescendantsList_=[]} +function JSCompiler_StaticMethods_createNewTagStackEntry(tagName){return{tagName:tagName,tagSpec:null,referencePoint:null,hasDescendantConstraintLists:!1,numChildren:0,onlyChildTagName:"",onlyChildErrorLineCol:null,lastChildSiblingCount:0,lastChildTagName:"",lastChildUrl:"",lastChildErrorLineCol:null,cdataMatcher:null,childTagMatcher:null,referencePointMatcher:null}} +function JSCompiler_StaticMethods_updateStackEntryFromTagResult_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self,result,parsedRules,lineCol){if(null!==result.bestMatchTagSpec){var parsedTagSpec=result.bestMatchTagSpec,matcher=parsedTagSpec.referencePointMatcher(parsedRules,lineCol);null!==matcher&&(JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).referencePointMatcher=matcher);if("PASS"===result.validationResult.status&&(result=parsedTagSpec.childTagMatcher(lineCol), +null!==result&&(JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).childTagMatcher=result),lineCol=parsedTagSpec.cdataMatcher(lineCol),null!==lineCol&&(JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).cdataMatcher=lineCol),null!==parsedTagSpec.ParsedTagSpec$spec_.amp_validator_TagSpec$descendantTagList)){lineCol=[];parsedRules=$jscomp$makeIterator(parsedRules.ParsedValidatorRules$rules_.amp_validator_ValidatorRules$descendantTagList); +for(result=parsedRules.next();!result.done;result=parsedRules.next())if(result=result.value,parsedTagSpec.ParsedTagSpec$spec_.amp_validator_TagSpec$descendantTagList===result.name)for(result=$jscomp$makeIterator(result.allowedTags),matcher=result.next();!matcher.done;matcher=result.next())lineCol.push(matcher.value);JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self.allowedDescendantsList_.push({tagName:getTagSpecName(parsedTagSpec.ParsedTagSpec$spec_),allowedTags:lineCol});JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).hasDescendantConstraintLists= +!0}}}function JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_back_$self){goog$asserts$assert(0/.test(attr.value)&&JSCompiler_StaticMethods_addError("TEMPLATE_PARTIAL_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context), +[attr.name,getTagSpecName(parsedTagSpec.ParsedTagSpec$spec_),attr.value],context.Context$rules_.ParsedValidatorRules$rules_.templateSpecUrl,result)} +function validateAttributeInExtension(tagSpec,context,attr,result){goog$asserts$assert(null!==tagSpec.extensionSpec);var extensionSpec=tagSpec.extensionSpec;if(extensionSpec.isCustomTemplate||"custom-element"!==attr.name){if(extensionSpec.isCustomTemplate&&"custom-template"===attr.name)return extensionSpec.name!==attr.value?(goog$asserts$assert(extensionSpec.name===attr.value.toLowerCase()),!1):!0;if("src"===attr.name){var reResult=/^https:\/\/cdn\.ampproject\.org\/v0\/(amp-[a-z0-9-]*)-([a-z0-9.]*)\.js$/.exec(attr.value); +if(null!==reResult&&reResult[1]===extensionSpec.name){reResult=reResult[2];if(-1!==extensionSpec.deprecatedVersions.indexOf(reResult))return JSCompiler_StaticMethods_addWarning("WARNING_EXTENSION_DEPRECATED_VERSION",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[extensionSpec.name,reResult],getTagSpecUrl(tagSpec),result),!0;if(-1!==extensionSpec.allowedVersions.indexOf(reResult))return!0}JSCompiler_StaticMethods_addError("INVALID_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context), +[attr.name,getTagSpecName(tagSpec),attr.value],getTagSpecUrl(tagSpec),result);return!0}}else return extensionSpec.name!==attr.value?(goog$asserts$assert(extensionSpec.name===attr.value.toLowerCase()),!1):!0;return!1}function TagSpecDispatch(){this.tagSpecsByDispatch_=null;this.allTagSpecs_=[]} +function JSCompiler_StaticMethods_registerDispatchKey(JSCompiler_StaticMethods_registerDispatchKey$self,dispatchKey,tagSpecId){null===JSCompiler_StaticMethods_registerDispatchKey$self.tagSpecsByDispatch_&&(JSCompiler_StaticMethods_registerDispatchKey$self.tagSpecsByDispatch_=Object.create(null));goog$asserts$assert(!(dispatchKey in JSCompiler_StaticMethods_registerDispatchKey$self.tagSpecsByDispatch_));JSCompiler_StaticMethods_registerDispatchKey$self.tagSpecsByDispatch_[dispatchKey]=tagSpecId} +function JSCompiler_StaticMethods_matchingDispatchKey(JSCompiler_StaticMethods_matchingDispatchKey$self,attrName,attrValue,mandatoryParent){if(null===JSCompiler_StaticMethods_matchingDispatchKey$self.tagSpecsByDispatch_)return-1;var dispatchKey=makeDispatchKey("NAME_VALUE_PARENT_DISPATCH",attrName,attrValue,mandatoryParent);dispatchKey=JSCompiler_StaticMethods_matchingDispatchKey$self.tagSpecsByDispatch_[dispatchKey];if(void 0!==dispatchKey)return dispatchKey;dispatchKey=makeDispatchKey("NAME_VALUE_DISPATCH", +attrName,attrValue,"");dispatchKey=JSCompiler_StaticMethods_matchingDispatchKey$self.tagSpecsByDispatch_[dispatchKey];if(void 0!==dispatchKey)return dispatchKey;dispatchKey=makeDispatchKey("NAME_DISPATCH",attrName,"","");dispatchKey=JSCompiler_StaticMethods_matchingDispatchKey$self.tagSpecsByDispatch_[dispatchKey];return void 0!==dispatchKey?dispatchKey:attrName===attrValue?JSCompiler_StaticMethods_matchingDispatchKey(JSCompiler_StaticMethods_matchingDispatchKey$self,attrName,"",mandatoryParent): +-1} +function validateTagAgainstSpec(parsedTagSpec$jscomp$0,bestMatchReferencePoint,context$jscomp$3,encounteredTag){var resultForAttempt=new amp$validator$ValidationResult;resultForAttempt.status="PASS";var spec=parsedTagSpec$jscomp$0.ParsedTagSpec$spec_;null!==spec.mandatoryParent&&spec.mandatoryParent!==JSCompiler_StaticMethods_parentStackEntry_(context$jscomp$3.tagStack_).tagName&&JSCompiler_StaticMethods_addError("WRONG_PARENT_TAG",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$3),[getTagSpecName(spec), +JSCompiler_StaticMethods_parentStackEntry_(context$jscomp$3.tagStack_).tagName.toLowerCase(),spec.mandatoryParent.toLowerCase()],getTagSpecUrl(spec),resultForAttempt);a:{var spec$jscomp$0=parsedTagSpec$jscomp$0.ParsedTagSpec$spec_;if(null!==spec$jscomp$0.mandatoryAncestor){var mandatoryAncestor=spec$jscomp$0.mandatoryAncestor;if(!JSCompiler_StaticMethods_hasAncestor(context$jscomp$3.tagStack_,mandatoryAncestor)){null!==spec$jscomp$0.mandatoryAncestorSuggestedAlternative?JSCompiler_StaticMethods_addError("MANDATORY_TAG_ANCESTOR_WITH_HINT", +JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$3),[getTagSpecName(spec$jscomp$0),mandatoryAncestor.toLowerCase(),spec$jscomp$0.mandatoryAncestorSuggestedAlternative.toLowerCase()],getTagSpecUrl(spec$jscomp$0),resultForAttempt):JSCompiler_StaticMethods_addError("MANDATORY_TAG_ANCESTOR",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$3),[getTagSpecName(spec$jscomp$0),mandatoryAncestor.toLowerCase()],getTagSpecUrl(spec$jscomp$0),resultForAttempt);break a}}for(var $jscomp$inline_415= +$jscomp$makeIterator(spec$jscomp$0.disallowedAncestor),$jscomp$inline_416=$jscomp$inline_415.next();!$jscomp$inline_416.done;$jscomp$inline_416=$jscomp$inline_415.next()){var disallowedAncestor=$jscomp$inline_416.value;if(JSCompiler_StaticMethods_hasAncestor(context$jscomp$3.tagStack_,disallowedAncestor)){JSCompiler_StaticMethods_addError("DISALLOWED_TAG_ANCESTOR",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$3),[getTagSpecName(spec$jscomp$0),disallowedAncestor.toLowerCase()], +getTagSpecUrl(spec$jscomp$0),resultForAttempt);break}}}var matcher=JSCompiler_StaticMethods_parentStackEntry_(context$jscomp$3.tagStack_).childTagMatcher;if(null!==matcher){var childTags=matcher.parentSpec_.childTags;if(0attrId)attrspecsValidated[attrId]=0;else{var parsedAttrSpec=JSCompiler_StaticMethods_getByAttrSpecId(context$jscomp$3.Context$rules_.ParsedValidatorRules$parsedAttrSpecs_,attrId), +attrSpec=parsedAttrSpec.ParsedAttrSpec$spec_;null!==attrSpec.amp_validator_AttrSpec$deprecation&&JSCompiler_StaticMethods_addWarning("DEPRECATED_ATTR",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$3),[attr$jscomp$0.name,getTagSpecName(spec$jscomp$1),attrSpec.amp_validator_AttrSpec$deprecation],attrSpec.amp_validator_AttrSpec$deprecationUrl,resultForAttempt);if(!hasTemplateAncestor||!attrValueHasTemplateSyntax(attr$jscomp$0.value)){var context=context$jscomp$3,attr$jscomp$1= +attr$jscomp$0,result=resultForAttempt,spec$jscomp$3=parsedAttrSpec.ParsedAttrSpec$spec_;if(null!==spec$jscomp$3.value)attr$jscomp$1.value!==spec$jscomp$3.value&&JSCompiler_StaticMethods_addError("INVALID_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[attr$jscomp$1.name,getTagSpecName(spec$jscomp$1),attr$jscomp$1.value],getTagSpecUrl(spec$jscomp$1),result);else if(null!==spec$jscomp$3.valueCasei)attr$jscomp$1.value.toLowerCase()!==spec$jscomp$3.valueCasei&&JSCompiler_StaticMethods_addError("INVALID_ATTR_VALUE", +JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[attr$jscomp$1.name,getTagSpecName(spec$jscomp$1),attr$jscomp$1.value],getTagSpecUrl(spec$jscomp$1),result);else if(null!==spec$jscomp$3.valueRegex||null!==spec$jscomp$3.valueRegexCasei)(null!==spec$jscomp$3.valueRegex?JSCompiler_StaticMethods_getFullMatchRegex(context.Context$rules_,spec$jscomp$3.valueRegex):JSCompiler_StaticMethods_getFullMatchCaseiRegex(context.Context$rules_,spec$jscomp$3.valueRegexCasei)).test(attr$jscomp$1.value)|| +JSCompiler_StaticMethods_addError("INVALID_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[attr$jscomp$1.name,getTagSpecName(spec$jscomp$1),attr$jscomp$1.value],getTagSpecUrl(spec$jscomp$1),result);else if(null!==spec$jscomp$3.valueUrl)a:{var context$jscomp$0=context,attr$jscomp$2=attr$jscomp$1,result$jscomp$0=result,maybeUris=[];if("srcset"!==attr$jscomp$2.name)maybeUris.push(attr$jscomp$2.value);else{if(""===attr$jscomp$2.value){JSCompiler_StaticMethods_addError("MISSING_URL", +JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$0),[attr$jscomp$2.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$0);break a}var parseResult=parse_srcset$parseSrcset(attr$jscomp$2.value);if(!parseResult.success){"DUPLICATE_DIMENSION"===parseResult.parse_srcset_SrcsetParsingResult$errorCode?JSCompiler_StaticMethods_addError(parseResult.parse_srcset_SrcsetParsingResult$errorCode,JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$0), +[attr$jscomp$2.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$0):JSCompiler_StaticMethods_addError(parseResult.parse_srcset_SrcsetParsingResult$errorCode,JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$0),[attr$jscomp$2.name,getTagSpecName(spec$jscomp$1),attr$jscomp$2.value],getTagSpecUrl(spec$jscomp$1),result$jscomp$0);break a}if(null!==parseResult.srcsetImages)for(var $jscomp$inline_922=$jscomp$makeIterator(parseResult.srcsetImages),$jscomp$inline_923= +$jscomp$inline_922.next();!$jscomp$inline_923.done;$jscomp$inline_923=$jscomp$inline_922.next())maybeUris.push($jscomp$inline_923.value.url)}if(0===maybeUris.length)JSCompiler_StaticMethods_addError("MISSING_URL",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$0),[attr$jscomp$2.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$0);else{sortAndUniquify(maybeUris);for(var adapter=new UrlErrorInAttrAdapter(attr$jscomp$2.name),$jscomp$inline_925=$jscomp$makeIterator(maybeUris), +$jscomp$inline_926=$jscomp$inline_925.next();!$jscomp$inline_926.done;$jscomp$inline_926=$jscomp$inline_925.next()){var str=$jscomp$inline_926.value;var unescapedMaybeUri=-1!=str.indexOf("&")?"document"in goog$global?goog$string$unescapeEntitiesUsingDom_(str):goog$string$unescapePureXmlEntities_(str):str;null===parsedAttrSpec.valueUrlSpec_&&(parsedAttrSpec.valueUrlSpec_=new ParsedUrlSpec(parsedAttrSpec.ParsedAttrSpec$spec_.valueUrl));validateUrlAndProtocol(parsedAttrSpec.valueUrlSpec_,adapter,context$jscomp$0, +unescapedMaybeUri,spec$jscomp$1,result$jscomp$0);if("FAIL"===result$jscomp$0.status)break}}}else{if(null===parsedAttrSpec.ParsedAttrSpec$spec_.valueProperties)var valueProperties=null;else null===parsedAttrSpec.valueProperties_&&(parsedAttrSpec.valueProperties_=new ParsedValueProperties(parsedAttrSpec.ParsedAttrSpec$spec_.valueProperties)),valueProperties=parsedAttrSpec.valueProperties_;if(null!==valueProperties){for(var parsedValueProperties=valueProperties,context$jscomp$1=context,attr$jscomp$3= +attr$jscomp$1,result$jscomp$1=result,segments=attr$jscomp$3.value.split(/[,;]/),properties=Object.create(null),$jscomp$inline_938=$jscomp$makeIterator(segments),$jscomp$inline_939=$jscomp$inline_938.next();!$jscomp$inline_939.done;$jscomp$inline_939=$jscomp$inline_938.next()){var keyValue=$jscomp$inline_939.value.split("=");2>keyValue.length||(properties[keyValue[0].trim().toLowerCase()]=keyValue[1])}for(var names$jscomp$0=Object.keys(properties).sort(),$jscomp$inline_942=$jscomp$makeIterator(names$jscomp$0), +$jscomp$inline_943=$jscomp$inline_942.next();!$jscomp$inline_943.done;$jscomp$inline_943=$jscomp$inline_942.next()){var name=$jscomp$inline_943.value,value=properties[name],valuePropertyByName=parsedValueProperties.valuePropertyByName_;if(name in valuePropertyByName){var propertySpec=valuePropertyByName[name];null!==propertySpec.value?propertySpec.value!==value.toLowerCase()&&JSCompiler_StaticMethods_addError("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$1), +[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1),value],getTagSpecUrl(spec$jscomp$1),result$jscomp$1):null!==propertySpec.valueDouble&&parseFloat(value)!==propertySpec.valueDouble&&JSCompiler_StaticMethods_addError("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$1),[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1),value],getTagSpecUrl(spec$jscomp$1),result$jscomp$1)}else JSCompiler_StaticMethods_addError("DISALLOWED_PROPERTY_IN_ATTR_VALUE", +JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$1),[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$1)}for(var left=parsedValueProperties.mandatoryValuePropertyNames_,right=names$jscomp$0,l=0,r=0,diff=[];l=right.length?(diff.push(left[l]),l++):right[r]>left[l]?(diff.push(left[l]),l++):(right[r]JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self, +resultB.errors))return!0;JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultB.errors);JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultA.errors);return!1} +function JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self,context,validationResult){for(var $jscomp$inline_501=$jscomp$makeIterator(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.mandatoryTagSpecs_),$jscomp$key$tagSpecId=$jscomp$inline_501.next();!$jscomp$key$tagSpecId.done;$jscomp$key$tagSpecId=$jscomp$inline_501.next())$jscomp$key$tagSpecId=$jscomp$key$tagSpecId.value,context.tagspecsValidated_.hasOwnProperty($jscomp$key$tagSpecId)|| +($jscomp$key$tagSpecId=JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self,$jscomp$key$tagSpecId).ParsedTagSpec$spec_,JSCompiler_StaticMethods_addError("MANDATORY_TAG_MISSING",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[getTagSpecName($jscomp$key$tagSpecId)],getTagSpecUrl($jscomp$key$tagSpecId),validationResult));$jscomp$inline_501=Object.keys(context.tagspecsValidated_).map(Number);goog$array$sort($jscomp$inline_501);$jscomp$inline_501= +$jscomp$makeIterator($jscomp$inline_501);for($jscomp$key$tagSpecId=$jscomp$inline_501.next();!$jscomp$key$tagSpecId.done;$jscomp$key$tagSpecId=$jscomp$inline_501.next()){$jscomp$key$tagSpecId=JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self,$jscomp$key$tagSpecId.value);for(var $jscomp$inline_513=$jscomp$makeIterator($jscomp$key$tagSpecId.requires()),$jscomp$key$condition=$jscomp$inline_513.next();!$jscomp$key$condition.done;$jscomp$key$condition= +$jscomp$inline_513.next())$jscomp$key$condition=$jscomp$key$condition.value,context.conditionsSatisfied_.hasOwnProperty($jscomp$key$condition)||JSCompiler_StaticMethods_addError("TAG_REQUIRED_BY_MISSING",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[context.Context$rules_.ParsedValidatorRules$rules_.internedStrings[-1-$jscomp$key$condition],getTagSpecName($jscomp$key$tagSpecId.ParsedTagSpec$spec_)],getTagSpecUrl($jscomp$key$tagSpecId),validationResult);$jscomp$inline_513=$jscomp$makeIterator($jscomp$key$tagSpecId.ParsedTagSpec$spec_.alsoRequiresTagWarning); +for($jscomp$key$condition=$jscomp$inline_513.next();!$jscomp$key$condition.done;$jscomp$key$condition=$jscomp$inline_513.next())$jscomp$key$condition=$jscomp$key$condition.value,context.tagspecsValidated_.hasOwnProperty($jscomp$key$condition)||($jscomp$key$condition=JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self,$jscomp$key$condition),JSCompiler_StaticMethods_addWarning("WARNING_TAG_REQUIRED_BY_MISSING",JSCompiler_StaticMethods_Context_prototype$getLineCol(context), +[getTagSpecName($jscomp$key$condition.ParsedTagSpec$spec_),getTagSpecName($jscomp$key$tagSpecId.ParsedTagSpec$spec_)],getTagSpecUrl($jscomp$key$tagSpecId),validationResult))}$jscomp$inline_501=context.extensions_;$jscomp$key$tagSpecId=[];$jscomp$inline_513=$jscomp$makeIterator($jscomp$inline_501.extensionsUnusedRequired_);for($jscomp$key$condition=$jscomp$inline_513.next();!$jscomp$key$condition.done;$jscomp$key$condition=$jscomp$inline_513.next())$jscomp$key$condition=$jscomp$key$condition.value, +$jscomp$key$condition in $jscomp$inline_501.extensionsUsed_||$jscomp$key$tagSpecId.push($jscomp$key$condition);$jscomp$key$tagSpecId.sort();$jscomp$inline_501=$jscomp$makeIterator($jscomp$key$tagSpecId);for($jscomp$key$tagSpecId=$jscomp$inline_501.next();!$jscomp$key$tagSpecId.done;$jscomp$key$tagSpecId=$jscomp$inline_501.next())JSCompiler_StaticMethods_addError("EXTENSION_UNUSED",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[$jscomp$key$tagSpecId.value],"",validationResult);$jscomp$key$tagSpecId= +context.mandatoryAlternativesSatisfied_;$jscomp$inline_513=[];$jscomp$inline_501=Object.create(null);$jscomp$key$condition=$jscomp$makeIterator(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.ParsedValidatorRules$rules_.tags);for(var $jscomp$inline_531=$jscomp$key$condition.next();!$jscomp$inline_531.done;$jscomp$inline_531=$jscomp$key$condition.next())if($jscomp$inline_531=$jscomp$inline_531.value,null!==$jscomp$inline_531.mandatoryAlternatives&&JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.isTagSpecCorrectHtmlFormat_($jscomp$inline_531)){var alternative= +$jscomp$inline_531.mandatoryAlternatives;-1===$jscomp$key$tagSpecId.indexOf(alternative)&&(alternative=context.Context$rules_.ParsedValidatorRules$rules_.internedStrings[-1-alternative],$jscomp$inline_513.push(alternative),$jscomp$inline_501[alternative]=getTagSpecUrl($jscomp$inline_531))}sortAndUniquify($jscomp$inline_513);JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self=$jscomp$makeIterator($jscomp$inline_513);for($jscomp$key$tagSpecId=JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.next();!$jscomp$key$tagSpecId.done;$jscomp$key$tagSpecId= +JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.next())$jscomp$key$tagSpecId=$jscomp$key$tagSpecId.value,JSCompiler_StaticMethods_addError("MANDATORY_TAG_MISSING",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[$jscomp$key$tagSpecId],$jscomp$inline_501[$jscomp$key$tagSpecId],validationResult)} +function JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_getByTagSpecId$self,id){var parsed=JSCompiler_StaticMethods_getByTagSpecId$self.parsedTagSpecById_[id];if(void 0!==parsed)return parsed;parsed=JSCompiler_StaticMethods_getByTagSpecId$self.ParsedValidatorRules$rules_.tags[id];goog$asserts$assert(void 0!==parsed);parsed=new ParsedTagSpec(JSCompiler_StaticMethods_getByTagSpecId$self.ParsedValidatorRules$parsedAttrSpecs_,parsed.amp_validator_TagSpec$mandatory||parsed.unique||0< +parsed.requires.length||JSCompiler_StaticMethods_getByTagSpecId$self.tagSpecIdsToTrack_.hasOwnProperty(id)||parsed.uniqueWarning,parsed,id);return JSCompiler_StaticMethods_getByTagSpecId$self.parsedTagSpecById_[id]=parsed} +function JSCompiler_StaticMethods_getReferencePointName(JSCompiler_StaticMethods_getReferencePointName$self,referencePoint){JSCompiler_StaticMethods_getReferencePointName$self=JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_getReferencePointName$self,referencePoint.tagSpecName);return getTagSpecName(JSCompiler_StaticMethods_getReferencePointName$self.ParsedTagSpec$spec_)}var parsedValidatorRulesByFormat=Object.create(null); +function getParsedValidatorRules(htmlFormat){if(!(htmlFormat in parsedValidatorRulesByFormat)){var rules=new ParsedValidatorRules(htmlFormat);return parsedValidatorRulesByFormat[htmlFormat]=rules}return parsedValidatorRulesByFormat[htmlFormat]} +function amp$validator$ValidationHandler(htmlFormat){this.validationResult_=new amp$validator$ValidationResult;this.validationResult_.status="UNKNOWN";this.amp_validator_ValidationHandler$rules_=getParsedValidatorRules(htmlFormat);this.context_=new Context(this.amp_validator_ValidationHandler$rules_)}$jscomp$inherits(amp$validator$ValidationHandler,amp$htmlparser$HtmlSaxHandlerWithLocation); +amp$validator$ValidationHandler.prototype.amp_htmlparser_HtmlSaxHandlerWithLocation_prototype$setDocLocator=function(locator){null===locator?goog$asserts$fail("Null DocLocator set"):this.context_.docLocator_=locator};amp$validator$ValidationHandler.prototype.startDoc=function(){this.validationResult_=new amp$validator$ValidationResult;this.validationResult_.status="UNKNOWN"}; +amp$validator$ValidationHandler.prototype.effectiveBodyTag=function(attributes){var encounteredAttrs=this.context_.encounteredBodyAttrs_;if(null!==encounteredAttrs){var differenceSeen=attributes.length!==encounteredAttrs.length;if(!differenceSeen)for(var ii=0;iicdataSpec.maxBytes){JSCompiler_StaticMethods_addError("STYLESHEET_TOO_LONG",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[getTagSpecName(matcher.tagSpec_),JSCompiler_inline_result.toString(),cdataSpec.maxBytes.toString()],cdataSpec.maxBytesSpecUrl,validationResult);break a}}if(null!==matcher.tagSpec_.amp_validator_TagSpec$cdata.cdataRegex){if(!JSCompiler_StaticMethods_getFullMatchRegex(context.Context$rules_,matcher.tagSpec_.amp_validator_TagSpec$cdata.cdataRegex).test(text)){JSCompiler_StaticMethods_addError("MANDATORY_CDATA_MISSING_OR_INCORRECT", +JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[getTagSpecName(matcher.tagSpec_)],getTagSpecUrl(matcher.tagSpec_),validationResult);break a}}else if(null!==cdataSpec.amp_validator_CdataSpec$cssSpec){JSCompiler_inline_result=cdataSpec.amp_validator_CdataSpec$cssSpec;for(var cssErrors=[],tokenList=(new Tokenizer(text,matcher.CdataMatcher$lineCol_.LineCol$line_,matcher.CdataMatcher$lineCol_.LineCol$col_,cssErrors)).tokens_,ampAtRuleParsingSpec=Object.create(null),$jscomp$inline_824=$jscomp$makeIterator(JSCompiler_inline_result.atRuleSpec), +$jscomp$key$atRuleSpec=$jscomp$inline_824.next();!$jscomp$key$atRuleSpec.done;$jscomp$key$atRuleSpec=$jscomp$inline_824.next())$jscomp$key$atRuleSpec=$jscomp$key$atRuleSpec.value,"PARSE_AS_ERROR"===$jscomp$key$atRuleSpec.type||"PARSE_AS_IGNORE"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_IGNORE":"PARSE_AS_RULES"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_RULES":"PARSE_AS_DECLARATIONS"===$jscomp$key$atRuleSpec.type? +ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_DECLARATIONS":goog$asserts$fail("Unrecognized atRuleSpec type: "+$jscomp$key$atRuleSpec.type);$jscomp$key$atRuleSpec="PARSE_AS_IGNORE";0tagName&&(tagName= +inputDocContents.length);eflags&4?opt_htmlFormat.amp_htmlparser_HtmlSaxHandler_prototype$cdata&&opt_htmlFormat.amp_htmlparser_HtmlSaxHandler_prototype$cdata(inputDocContents.substring(0,tagName)):opt_htmlFormat.rcdata&&inputDocContents.substring(0,tagName).replace(amp$htmlparser$HtmlParser$LOOSE_AMP_RE_,"&$1").replace(amp$htmlparser$HtmlParser$LT_RE,"<").replace(amp$htmlparser$HtmlParser$GT_RE,">");if(locator){var eflags=locator;var openTag=inputDocContents.substring(0,tagName);eflags.previousPos_= +eflags.amp_htmlparser_HtmlParser_DocLocatorImpl$pos_;eflags.amp_htmlparser_HtmlParser_DocLocatorImpl$pos_+=openTag.length}inputDocContents=inputDocContents.substring(tagName)}tagName=eflags=openTag=void 0;attribs.length=0;locator&&JSCompiler_StaticMethods_snapshotPos(locator);inTag=!1}}else if(m[1])JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,m[0]);else if(m[3])openTag=!m[2],locator&&JSCompiler_StaticMethods_snapshotPos(locator),inTag=!0,tagName=amp$htmlparser$toUpperCase(m[3]), +eflags=amp$htmlparser$HtmlParser$Elements.hasOwnProperty(tagName)?amp$htmlparser$HtmlParser$Elements[tagName]:64;else if(m[4])locator&&JSCompiler_StaticMethods_snapshotPos(locator),JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,m[4]);else if(m[5])switch(m[5]){case "<":JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,"<");break;case ">":JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,">");break;default:JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack, +"&")}}for(!inTag&&locator&&JSCompiler_StaticMethods_snapshotPos(locator);0 style[amp-boilerplate]")||goog$string$startsWith(error.params[0],"noscript > style[amp-boilerplate]"))|| +("DISALLOWED_PROPERTY_IN_ATTR_VALUE"===error.code||"INVALID_PROPERTY_VALUE_IN_ATTR_VALUE"===error.code||"MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE"===error.code)&&"meta name=viewport"===error.params[2]?"MANDATORY_AMP_TAG_MISSING_OR_INCORRECT":"ATTR_VALUE_REQUIRED_BY_LAYOUT"!==error.code&&"IMPLIED_LAYOUT_INVALID"!==error.code&&"SPECIFIED_LAYOUT_INVALID"!==error.code&&"INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT"!==error.code&&("INVALID_ATTR_VALUE"!==error.code&&"MANDATORY_ATTR_MISSING"!==error.code|| +"width"!==error.params[0]&&"height"!==error.params[0]&&"layout"!==error.params[0])&&"ATTR_DISALLOWED_BY_IMPLIED_LAYOUT"!==error.code&&"ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT"!==error.code?"INVALID_ATTR_VALUE"===error.code&&"src"===error.params[0]&&goog$string$endsWith(error.params[1],"script")||"GENERAL_DISALLOWED_TAG"===error.code&&"script"===error.params[0]||"DISALLOWED_SCRIPT_TAG"===error.code||"INVALID_ATTR_VALUE"===error.code&&goog$string$startsWith(error.params[1],"script")&&"type"===error.params[0]? +"CUSTOM_JAVASCRIPT_DISALLOWED":"INVALID_ATTR_VALUE"===error.code||"DISALLOWED_ATTR"===error.code||"MANDATORY_ATTR_MISSING"===error.code?goog$string$startsWith(error.params[1],"amp-")?"AMP_TAG_PROBLEM":goog$string$startsWith(error.params[1],"on")?"CUSTOM_JAVASCRIPT_DISALLOWED":"style"===error.params[1]||"link rel=stylesheet for fonts"===error.params[1]?"AUTHOR_STYLESHEET_PROBLEM":"DISALLOWED_HTML":"MANDATORY_ONEOF_ATTR_MISSING"===error.code?"AMP_TAG_PROBLEM":"DEPRECATED_ATTR"===error.code||"DEPRECATED_TAG"=== +error.code||"WARNING_EXTENSION_DEPRECATED_VERSION"===error.code||"WARNING_TAG_REQUIRED_BY_MISSING"===error.code?"DEPRECATION":"WRONG_PARENT_TAG"===error.code?goog$string$startsWith(error.params[0],"amp-")||goog$string$startsWith(error.params[1],"amp-")||goog$string$startsWith(error.params[2],"amp-")?"AMP_TAG_PROBLEM":"DISALLOWED_HTML":"MISSING_REQUIRED_EXTENSION"==error.code||"EXTENSION_UNUSED"==error.code||"TAG_REQUIRED_BY_MISSING"===error.code&&(goog$string$startsWith(error.params[1],"amp-")||"template"=== +error.params[1])?"AMP_TAG_PROBLEM":"ATTR_REQUIRED_BUT_MISSING"===error.code?"DISALLOWED_HTML":"MUTUALLY_EXCLUSIVE_ATTRS"===error.code&&goog$string$startsWith(error.params[0],"amp-")?"AMP_TAG_PROBLEM":"DUPLICATE_UNIQUE_TAG"===error.code||"DUPLICATE_UNIQUE_TAG_WARNING"===error.code?"MANDATORY_AMP_TAG_MISSING_OR_INCORRECT":"UNESCAPED_TEMPLATE_IN_ATTR_VALUE"===error.code||"TEMPLATE_PARTIAL_IN_ATTR_VALUE"===error.code||"TEMPLATE_IN_ATTR_NAME"===error.code?"AMP_HTML_TEMPLATE_PROBLEM":"DISALLOWED_TAG_ANCESTOR"=== +error.code&&goog$string$startsWith(error.params[1],"amp-")?"AMP_TAG_PROBLEM":"DISALLOWED_TAG_ANCESTOR"!==error.code||"template"!==error.params[0]&&"template"!==error.params[1]?"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR"===error.code?"AMP_TAG_PROBLEM":"MISSING_URL"===error.code||"INVALID_URL"===error.code||"INVALID_URL_PROTOCOL"===error.code||"DISALLOWED_DOMAIN"===error.code||"DISALLOWED_RELATIVE_URL"===error.code?goog$string$startsWith(error.params[1],"amp-")?"AMP_TAG_PROBLEM":"DISALLOWED_HTML": +"DUPLICATE_DIMENSION"===error.code?"DISALLOWED_HTML":"CSS_SYNTAX_INVALID_PROPERTY"===error.code||"CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS"===error.code||"CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME"===error.code||"CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME"===error.code||"CSS_SYNTAX_INVALID_AT_RULE"===error.code?"AUTHOR_STYLESHEET_PROBLEM":"GENERIC":"AMP_HTML_TEMPLATE_PROBLEM":"AMP_LAYOUT_PROBLEM"}goog$exportSymbol("amp.validator.categorizeError",amp$validator$categorizeError); +goog$exportSymbol("amp.validator.annotateWithErrorCategories",function(result){result=$jscomp$makeIterator(result.errors);for(var $jscomp$key$error=result.next();!$jscomp$key$error.done;$jscomp$key$error=result.next())$jscomp$key$error=$jscomp$key$error.value,$jscomp$key$error.category=amp$validator$categorizeError($jscomp$key$error)});goog$exportSymbol("amp.validator.validateSaxEvents",function(){throw"not implemented";});function getUrl(url){return new goog$Promise(function(resolve,reject){var xhr=new XMLHttpRequest;xhr.onreadystatechange=function(){4==xhr.readyState&&(200==xhr.status?resolve(xhr.responseText):reject("Fetching file for validation failed: "+url))};xhr.open("GET",url,!0);xhr.send()})} +goog$exportSymbol("amp.validator.validateUrlAndLog",function(url,opt_doc,opt_errorCategoryFilter){getUrl(url).then(function(html){var validationResult=amp$validator$validateString(html);opt_doc&&(html=new amp$validator$ValidationResult,html.status="UNKNOWN",JSCompiler_StaticMethods_mergeFrom(validationResult,html));a:{html=new amp$validator$Terminal;var errorCategoryFilter=opt_errorCategoryFilter||null,status=validationResult.status;if("PASS"===status){if((console.info||console.log).call(console, +"AMP validation successful."),0===validationResult.errors.length)break a}else if("FAIL"!==status){html.error("AMP validation had unknown results. This indicates a validator bug. Please report at https://github.com/ampproject/amphtml/issues .");break a}if(null===errorCategoryFilter)"FAIL"===status?html.error("AMP validation had errors:"):JSCompiler_StaticMethods_amp_validator_Terminal_prototype$warn("AMP validation had warnings:"),status=validationResult.errors;else{status=[];validationResult=$jscomp$makeIterator(validationResult.errors); +for(var $jscomp$key$error=validationResult.next();!$jscomp$key$error.done;$jscomp$key$error=validationResult.next())$jscomp$key$error=$jscomp$key$error.value,""+amp$validator$categorizeError($jscomp$key$error)===errorCategoryFilter&&status.push($jscomp$key$error);validationResult=goog$uri$utils$removeFragment(url)+"#development=1";0===status.length?html.error("AMP validation - no errors matching filter="+errorCategoryFilter+" found. To see all errors, visit "+validationResult):html.error("AMP validation - displaying errors matching filter="+ +errorCategoryFilter+". To see all errors, visit "+validationResult)}validationResult=$jscomp$makeIterator(status);for($jscomp$key$error=validationResult.next();!$jscomp$key$error.done;$jscomp$key$error=validationResult.next())$jscomp$key$error=$jscomp$key$error.value,"ERROR"===$jscomp$key$error.severity?html.error(errorLine(url,$jscomp$key$error)):JSCompiler_StaticMethods_amp_validator_Terminal_prototype$warn(errorLine(url,$jscomp$key$error));null===errorCategoryFilter&&0!==status.length&&(html="See also https://validator.ampproject.org/#url="+ +encodeURIComponent(goog$uri$utils$removeFragment(url)),(console.info||console.log).call(console,html))}},function(reason){console.error(reason)})}); //# sourceMappingURL=validator_minified.js.sourcemap From 744409dcb0d43b2edb3e713988e14cff841ccded Mon Sep 17 00:00:00 2001 From: Juan Chaur Date: Fri, 16 Feb 2018 10:14:12 -0500 Subject: [PATCH 03/13] fix canonical URL validation for valid characters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Valid characters like ```á``` where failing while validating the canonicalURL --- ampbench_lib.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ampbench_lib.js b/ampbench_lib.js index 3dcd7f4..edf0f9a 100644 --- a/ampbench_lib.js +++ b/ampbench_lib.js @@ -1659,9 +1659,9 @@ function parse_body_for_amplinks(body, http_response) { href = {rel: rel, url: href_url}; if ('canonical' === rel) { // only take the first occurrence - __return.canonical_url = '' === __return.canonical_url + __return.canonical_url = encodeURI('' === __return.canonical_url ? href_url - : __return.canonical_url; + : __return.canonical_url); } if ('amphtml' === rel) { // only take the first occurrence From 80e619872881d0c41a7974dd21f9b6f3ecb53306 Mon Sep 17 00:00:00 2001 From: Juan Chaur Date: Mon, 19 Feb 2018 12:28:49 -0500 Subject: [PATCH 04/13] middleware to encode url for valid urls Fixes an issue when consuming the API with url that contains accented characters. --- ampbench_routes.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ampbench_routes.js b/ampbench_routes.js index 4bded95..669b3b6 100644 --- a/ampbench_routes.js +++ b/ampbench_routes.js @@ -129,6 +129,13 @@ const results_template = fs.readFileSync(__dirname + '/views/results.hbs', 'utf8 // TODO: WIP20160426 - bulk support routes // const multi_url_template = fs.readFileSync(__dirname + '/views/multi_url.hbs', 'utf8'); +app.use(function(req, res, next) { + if (req.query && req.query.url) { + req.query.url = encodeURI(req.query.url); + } + next(); +}); + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // ERRORS // From a36afbadd684dd54628a93577151c4dbea450361 Mon Sep 17 00:00:00 2001 From: juanchaur1 Date: Mon, 19 Feb 2018 22:50:03 -0500 Subject: [PATCH 05/13] Adding warning when multiple amphtml links found in canonical page --- ampbench_handlers.js | 13 ++++++++----- ampbench_lib.js | 10 +++++----- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ampbench_handlers.js b/ampbench_handlers.js index 25696c7..660e16a 100644 --- a/ampbench_handlers.js +++ b/ampbench_handlers.js @@ -129,7 +129,7 @@ function validate(route, user_agent, user_agent_name, req, res, on_validate_call canonical_parsed_return.result = ''; // make a result field let canonical_url_found = canonical_parsed_return.canonical_url, - amphtml_url_found = canonical_parsed_return.amphtml_url, + amphtml_url_found = canonical_parsed_return.amphtml_url.split(','), fetch_duration_amp = http_response.duration_in_milliseconds, fetch_duration_canonical = http_response_canonical.duration_in_milliseconds, fetch_duration_amp_cache = 0, fetch_status_amp_cache = ''; @@ -141,12 +141,15 @@ function validate(route, user_agent, user_agent_name, req, res, on_validate_call canonical_parsed_return.canonical_url = benchlib.make_url_href( canonical_url_found, canonical_url_found); } - if ('' !== amphtml_url_found) { - canonical_parsed_return.result += '[AMP link found in Canonical page]'; - if (url_to_validate !== amphtml_url_found) { // amp link not pointing back!!! + if ('' !== amphtml_url_found[0]) { + canonical_parsed_return.result += '[AMP link found in Canonical page]'; + if (!amphtml_url_found.includes(url_to_validate)) { // amp link not pointing back!!! canonical_parsed_return.status = CHECK_FAIL; canonical_parsed_return.result += '[FAIL: AMP link in Canonical page does not refer to the current AMP page]'; - } else { + } else if(amphtml_url_found.length > 1) { + canonical_parsed_return.status = CHECK_WARN; + canonical_parsed_return.result += '[WARNING: Multiple AMP links found in Canonical page]'; + } else { canonical_parsed_return.status = CHECK_PASS; canonical_parsed_return.result += '[AMP link in Canonical page refers to the current AMP page]'; } diff --git a/ampbench_lib.js b/ampbench_lib.js index edf0f9a..f72edcd 100644 --- a/ampbench_lib.js +++ b/ampbench_lib.js @@ -1034,8 +1034,9 @@ function fetch_and_parse_url_for_amplinks(request_url, on_parsed_callback) { __return.url = full_path; __return.canonical_url = __temp.canonical_url; __return.amphtml_url = __temp.amphtml_url; - __return.has_dns_prefetch = __temp.has_dns_prefetch; - __return.status = CHECK_PASS; // status indicates successful fetch and parse, nothing more + __return.has_dns_prefetch = __temp.has_dns_prefetch; + __return.status = __temp.amphtml_url.indexOf(",") > -1 ? CHECK_WARN : CHECK_PASS; + on_parsed_callback(http_response, __return); // !!! RETURN to front-end - - - - - - - - - - - - - - - }); }; @@ -1664,10 +1665,9 @@ function parse_body_for_amplinks(body, http_response) { : __return.canonical_url); } if ('amphtml' === rel) { - // only take the first occurrence - __return.amphtml_url = '' === __return.amphtml_url + __return.amphtml_url += '' === __return.amphtml_url ? href_url - : __return.amphtml_url; + : `,${href_url}`; } } }); From 6a6d36cb8d866ba5bbc851bab35b66b9527454c5 Mon Sep 17 00:00:00 2001 From: Pieter Greyling Date: Fri, 9 Mar 2018 17:46:19 +0000 Subject: [PATCH 06/13] Additional support for multiple amphtml links in the canonical https://github.com/ampproject/ampbench/issues/35 --- ampbench_handlers.js | 5 +- ampbench_lib.js | 42 +- ampbench_routes.js | 8 +- validator/validator.js | 1279 ++++++++++++++++++---------------------- views/results.hbs | 2 +- 5 files changed, 625 insertions(+), 711 deletions(-) diff --git a/ampbench_handlers.js b/ampbench_handlers.js index 660e16a..486b670 100644 --- a/ampbench_handlers.js +++ b/ampbench_handlers.js @@ -129,7 +129,7 @@ function validate(route, user_agent, user_agent_name, req, res, on_validate_call canonical_parsed_return.result = ''; // make a result field let canonical_url_found = canonical_parsed_return.canonical_url, - amphtml_url_found = canonical_parsed_return.amphtml_url.split(','), + amphtml_url_found = canonical_parsed_return.amphtml_urls, // could be multiples fetch_duration_amp = http_response.duration_in_milliseconds, fetch_duration_canonical = http_response_canonical.duration_in_milliseconds, fetch_duration_amp_cache = 0, fetch_status_amp_cache = ''; @@ -154,7 +154,8 @@ function validate(route, user_agent, user_agent_name, req, res, on_validate_call canonical_parsed_return.result += '[AMP link in Canonical page refers to the current AMP page]'; } canonical_parsed_return.amphtml_url = benchlib.make_url_href( - amphtml_url_found, amphtml_url_found); + amphtml_url_found[0], amphtml_url_found[0]); // could be multiples, if so take the 1st one + canonical_parsed_return.amphtml_urls = benchlib.make_url_href_list(canonical_parsed_return.amphtml_urls); } else { canonical_parsed_return.status = CHECK_WARN; let _can_result = diff --git a/ampbench_lib.js b/ampbench_lib.js index f72edcd..759d97c 100644 --- a/ampbench_lib.js +++ b/ampbench_lib.js @@ -988,6 +988,7 @@ function fetch_and_parse_url_for_amplinks(request_url, on_parsed_callback) { url: request_url, canonical_url: '', amphtml_url: '', + amphtml_urls: [], has_dns_prefetch: false }; @@ -1017,6 +1018,7 @@ function fetch_and_parse_url_for_amplinks(request_url, on_parsed_callback) { __return.url = full_path; __return.canonical_url = ''; __return.amphtml_url = ''; + __return.amphtml_urls = []; __return.has_dns_prefetch = false; __return.status = CHECK_FAIL; http_response.http_response_body = ''; @@ -1032,10 +1034,11 @@ function fetch_and_parse_url_for_amplinks(request_url, on_parsed_callback) { http_response.http_response_body = body; __temp = parse_body_for_amplinks(body, http_response); __return.url = full_path; - __return.canonical_url = __temp.canonical_url; - __return.amphtml_url = __temp.amphtml_url; + __return.canonical_url = __temp.canonical_url; + __return.amphtml_url = __temp.amphtml_url; + __return.amphtml_urls = __temp.amphtml_urls; __return.has_dns_prefetch = __temp.has_dns_prefetch; - __return.status = __temp.amphtml_url.indexOf(",") > -1 ? CHECK_WARN : CHECK_PASS; + __return.status = __temp.amphtml_urls.length > 0 ? CHECK_WARN : CHECK_PASS; on_parsed_callback(http_response, __return); // !!! RETURN to front-end - - - - - - - - - - - - - - - }); @@ -1052,6 +1055,7 @@ function fetch_and_parse_url_for_amplinks(request_url, on_parsed_callback) { __return.url = full_path; __return.canonical_url = ''; __return.amphtml_url = ''; + __return.amphtml_urls = []; __return.has_dns_prefetch = false; __return.status = CHECK_FAIL; on_parsed_callback(http_response, __return); // !!! RETURN to front-end - - - - - - - - - - - - - - - - @@ -1062,6 +1066,7 @@ function fetch_and_parse_url_for_amplinks(request_url, on_parsed_callback) { __return.url = request_url; __return.canonical_url = ''; __return.amphtml_url = ''; + __return.amphtml_urls = []; __return.has_dns_prefetch = false; __return.status = CHECK_FAIL; http_response.http_response_body = ''; @@ -1578,6 +1583,7 @@ function parse_page_content(http_response) { let __return = { canonical_url: '', amphtml_url: '', + amphtml_urls: [], http_body_sniffer: null, has_dns_prefetch: false, amp_uses_feed: http_response.urlIsGoogleAmpFeed(), @@ -1598,6 +1604,7 @@ function parse_page_content(http_response) { __temp = parse_body_for_amplinks_and_robots_metatags(http_response); __return.canonical_url = __temp.canonical_url; __return.amphtml_url = __temp.amphtml_url; + __return.amphtml_urls = __temp.amphtml_urls; __return.has_dns_prefetch = __temp.has_dns_prefetch; __return.check_robots_meta_status = __temp.check_robots_meta_status; __return.check_robots_meta_result = __temp.check_robots_meta_result; @@ -1633,6 +1640,7 @@ function parse_body_for_amplinks(body, http_response) { let __return = { canonical_url: '', amphtml_url: '', + amphtml_urls: [], has_dns_prefetch: false }; @@ -1665,9 +1673,12 @@ function parse_body_for_amplinks(body, http_response) { : __return.canonical_url); } if ('amphtml' === rel) { - __return.amphtml_url += '' === __return.amphtml_url + // only take and keep the first occurrence + __return.amphtml_url = '' === __return.amphtml_url ? href_url - : `,${href_url}`; + : __return.amphtml_url; + // here save all occurrences + __return.amphtml_urls.push(href_url); } } }); @@ -1680,9 +1691,10 @@ function parse_body_for_amplinks_and_robots_metatags(http_response) { const __links = parse_body_for_amplinks(http_response.http_response_body, http_response); const - canonical_url = __links.canonical_url, - amphtml_url = __links.amphtml_url, - has_dns_prefetch = __links.has_dns_prefetch; + canonical_url = __links.canonical_url, + amphtml_url = __links.amphtml_url, + amphtml_urls = __links.amphtml_urls, + has_dns_prefetch = __links.has_dns_prefetch; let check_robots_meta_status = CHECK_PASS, check_robots_meta_result = ''; @@ -1729,10 +1741,11 @@ function parse_body_for_amplinks_and_robots_metatags(http_response) { // console.log('=> [check_robots_meta_result: ' + check_robots_meta_result + ']'); return { - canonical_url: canonical_url, - amphtml_url: amphtml_url, - has_dns_prefetch: has_dns_prefetch, - amp_uses_feed: (-1 < http_response.url.indexOf('googleusercontent.com/amphtml')), + canonical_url: canonical_url, + amphtml_url: amphtml_url, + amphtml_urls: amphtml_urls, + has_dns_prefetch: has_dns_prefetch, + amp_uses_feed: (-1 < http_response.url.indexOf('googleusercontent.com/amphtml')), check_robots_meta_status: check_robots_meta_status, check_robots_meta_result: check_robots_meta_result }; @@ -1835,7 +1848,7 @@ function parse_headers_for_if_modified_since_or_etag(http_response) { if (typeof(http_response.response.headers['if-modified-since']) === "undefined") { check_ims_or_etag_header.check_ims_header_result = 'Header entry for If-Modified-Since not found'; - check_ims_or_etag_header.check_ims_header_status = CHECK_WARN; + check_ims_or_etag_header.check_ims_header_status = CHECK_INFO; } else { check_ims_or_etag_header.check_ims_header_result = 'Found header entry for If-Modified-Since' + http_response.response.headers['if-modified-since']; @@ -1844,7 +1857,7 @@ function parse_headers_for_if_modified_since_or_etag(http_response) { if (typeof(http_response.response.headers['etag']) === "undefined") { check_ims_or_etag_header.check_etag_header_result = 'Header entry for ETag not found'; - check_ims_or_etag_header.check_etag_header_status = CHECK_WARN; + check_ims_or_etag_header.check_etag_header_status = CHECK_INFO; } else { check_ims_or_etag_header.check_etag_header_result = 'Found header entry for ETag' + http_response.response.headers['etag']; @@ -2101,6 +2114,7 @@ exports.multiline_to_html = multiline_to_html; exports.make_url_validate_link = make_url_validate_link; exports.make_url_validate_href = make_url_validate_href; exports.make_url_href = make_url_href; +exports.make_url_href_list = make_url_href_list; exports.str_encode_hard_amp = str_encode_hard_amp; exports.str_rtrim_char = str_rtrim_char; diff --git a/ampbench_routes.js b/ampbench_routes.js index 4bded95..6f20897 100644 --- a/ampbench_routes.js +++ b/ampbench_routes.js @@ -468,9 +468,10 @@ const make_api_http_response = (http_response) => { const make_api_amp_links = (parse_amplinks) => { return { - canonical_url: parse_amplinks.canonical_url, - amphtml_url: parse_amplinks.amphtml_url, - amp_uses_feed: parse_amplinks.amp_uses_feed + canonical_url: parse_amplinks.canonical_url, + amphtml_url: parse_amplinks.amphtml_url, + amphtml_urls: parse_amplinks.amphtml_urls, + amp_uses_feed: parse_amplinks.amp_uses_feed }; }; @@ -618,6 +619,7 @@ app.get('/api2/', (req, res) => { let parse_amplinks = {}; // <== function parse_page_content(http_response): // canonical_url: '', // amphtml_url: '', + // amphtml_urls: '', // check_robots_meta_results: 'Page content could not be read.', // check_robots_meta_status: CHECK_FAIL, // check_x_robots_tag_header_results: 'Response header could not be read.', diff --git a/validator/validator.js b/validator/validator.js index 2b576f5..267f2f7 100644 --- a/validator/validator.js +++ b/validator/validator.js @@ -1,6 +1,10 @@ -'use strict';function JSCompiler_emptyFn(){return function(){}}var $jscomp$objectCreate="function"==typeof Object.create?Object.create:function(prototype){function ctor(){}ctor.prototype=prototype;return new ctor},JSCompiler_temp$jscomp$95; -if("function"==typeof Object.setPrototypeOf)JSCompiler_temp$jscomp$95=Object.setPrototypeOf;else{var JSCompiler_inline_result$jscomp$96;a:{var x$jscomp$inline_136={a:!0},y$jscomp$inline_137={};try{y$jscomp$inline_137.__proto__=x$jscomp$inline_136;JSCompiler_inline_result$jscomp$96=y$jscomp$inline_137.a;break a}catch(e){}JSCompiler_inline_result$jscomp$96=!1}JSCompiler_temp$jscomp$95=JSCompiler_inline_result$jscomp$96?function(target,proto){target.__proto__=proto;if(target.__proto__!==proto)throw new TypeError(target+ -" is not extensible");return target}:null}var $jscomp$setPrototypeOf=JSCompiler_temp$jscomp$95; +/** + * @license Apache-2.0 + * Copyright 2018 The AMP HTML Authors. All Rights Reserved. + */ +(function() {'use strict';function JSCompiler_emptyFn(){return function(){}}var $jscomp$objectCreate="function"==typeof Object.create?Object.create:function(prototype){function ctor(){}ctor.prototype=prototype;return new ctor},JSCompiler_temp$jscomp$89; +if("function"==typeof Object.setPrototypeOf)JSCompiler_temp$jscomp$89=Object.setPrototypeOf;else{var JSCompiler_inline_result$jscomp$90;a:{var x$jscomp$inline_130={a:!0},y$jscomp$inline_131={};try{y$jscomp$inline_131.__proto__=x$jscomp$inline_130;JSCompiler_inline_result$jscomp$90=y$jscomp$inline_131.a;break a}catch(e){}JSCompiler_inline_result$jscomp$90=!1}JSCompiler_temp$jscomp$89=JSCompiler_inline_result$jscomp$90?function(target,proto){target.__proto__=proto;if(target.__proto__!==proto)throw new TypeError(target+ +" is not extensible");return target}:null}var $jscomp$setPrototypeOf=JSCompiler_temp$jscomp$89; function $jscomp$inherits(childCtor,parentCtor){childCtor.prototype=$jscomp$objectCreate(parentCtor.prototype);childCtor.prototype.constructor=childCtor;if($jscomp$setPrototypeOf)$jscomp$setPrototypeOf(childCtor,parentCtor);else for(var p in parentCtor)if("prototype"!=p)if(Object.defineProperties){var descriptor=Object.getOwnPropertyDescriptor(parentCtor,p);descriptor&&Object.defineProperty(childCtor,p,descriptor)}else childCtor[p]=parentCtor[p];childCtor.superClass_=parentCtor.prototype} var $jscomp$defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(target,property,descriptor){target!=Array.prototype&&target!=Object.prototype&&(target[property]=descriptor.value)},$jscomp$global="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;function $jscomp$initSymbol(){$jscomp$initSymbol=JSCompiler_emptyFn();$jscomp$global.Symbol||($jscomp$global.Symbol=$jscomp$Symbol)} var $jscomp$Symbol=function(){var counter=0;return function(opt_description){return"jscomp_symbol_"+(opt_description||"")+counter++}}(); @@ -8,6 +12,7 @@ function $jscomp$initSymbolIterator(){$jscomp$initSymbol();var symbolIterator=$j function $jscomp$arrayIterator(array){var index=0;return $jscomp$iteratorPrototype(function(){return indexb?1:ab.name?1:a.nameidx;)JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag&&JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag(new amp$htmlparser$ParsedHtmlTag(JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.TagNameStack$stack_.pop()));break}} -function amp$htmlparser$HtmlParser(){}amp$htmlparser$HtmlParser.prototype.lookupEntity_=function(entity){entity=amp$htmlparser$toLowerCase(entity.substring(1,entity.length-1));if(amp$htmlparser$HtmlParser$Entities.hasOwnProperty(entity))return amp$htmlparser$HtmlParser$Entities[entity];var m=entity.match(amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_);return m?String.fromCharCode(parseInt(m[1],10)):(m=entity.match(amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_))?String.fromCharCode(parseInt(m[1],16)):entity}; -var amp$htmlparser$HtmlParser$Entities={colon:":",lt:"<",gt:">",amp:"&",nbsp:"\u00a0",quot:'"',apos:"'"},amp$htmlparser$HtmlParser$Elements={A:0,ABBR:0,ACRONYM:0,ADDRESS:0,APPLET:16,AREA:2,B:0,BASE:18,BASEFONT:18,BDO:0,BIG:0,BLOCKQUOTE:0,BODY:49,BR:2,BUTTON:0,CANVAS:0,CAPTION:0,CENTER:0,CITE:0,CODE:0,COL:2,COLGROUP:1,DD:1,DEL:0,DFN:0,DIR:0,DIV:0,DL:0,DT:1,EM:0,FIELDSET:0,FONT:0,FORM:0,FRAME:18,FRAMESET:16,H1:0,H2:0,H3:0,H4:0,H5:0,H6:0,HEAD:49,HR:2,HTML:49,I:0,IFRAME:20,IMG:2,INPUT:2,INS:0,ISINDEX:18, -KBD:0,LABEL:0,LEGEND:0,LI:1,LINK:18,MAP:0,MENU:0,META:18,NOFRAMES:20,NOSCRIPT:16,OBJECT:16,OL:0,OPTGROUP:0,OPTION:1,P:1,PARAM:18,PRE:0,Q:0,S:0,SAMP:0,SCRIPT:20,SELECT:0,SMALL:0,SPAN:0,STRIKE:0,STRONG:0,STYLE:20,SUB:0,SUP:0,TABLE:0,TBODY:1,TD:1,TEXTAREA:8,TFOOT:1,TH:1,THEAD:1,TITLE:24,TR:1,TT:0,U:0,UL:0,VAR:0},amp$htmlparser$HtmlParser$LOOSE_AMP_RE_=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,amp$htmlparser$HtmlParser$LT_RE=//g,amp$htmlparser$HtmlParser$NULL_RE_= -/\0/g,amp$htmlparser$HtmlParser$ENTITY_RE_=/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g,amp$htmlparser$HtmlParser$SPACE_RE_=/^\s*$/,amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_=/^#(\d+)$/,amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_=/^#x([0-9A-Fa-f]+)$/,amp$htmlparser$HtmlParser$INSIDE_TAG_TOKEN_=/^[ \t\n\f\r\v]*(?:(?:([^\t\r\n /=>][^\t\r\n =>]*|[^\t\r\n =>]+[^ >]|\/+(?!>))(\s*=\s*("[^"]*"|'[^']*'|(?=[a-z][a-z-]*\s+=)|[^>\s]*))?)|(\/?>)|[^a-z\s>]+)/i,amp$htmlparser$HtmlParser$OUTSIDE_TAG_TOKEN_=/^(?:&(\#[0-9]+|\#[x][0-9a-f]+|\w+);|<[!]--[\s\S]*?(?:--\x3e|$)|<(\/)?([a-z!\?][^\0 \n\r\t\f\v>/]*)|([^<&>]+)|([<&>]))/i; -function amp$htmlparser$HtmlParser$DocLocatorImpl(htmlText){this.amp_htmlparser_HtmlParser_DocLocatorImpl$lineByPos_=[];this.amp_htmlparser_HtmlParser_DocLocatorImpl$colByPos_=[];for(var currentLine=1,currentCol=0,i=0;ib?1:aJSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.occupants_&&(JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.occupants_++,item.next=JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.head_,JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.head_= +item)};function goog$string$startsWith(str,prefix){return 0==str.lastIndexOf(prefix,0)}function goog$string$endsWith(str,suffix){var l=str.length-suffix.length;return 0<=l&&str.indexOf(suffix,l)==l} function goog$string$unescapeEntitiesUsingDom_(str){var seen={"&":"&","<":"<",">":">",""":'"'};var div=goog$global.document.createElement("div");return str.replace(goog$string$HTML_ENTITY_PATTERN_,function(s,entity){var value=seen[s];if(value)return value;"#"==entity.charAt(0)&&(entity=Number("0"+entity.substr(1)),isNaN(entity)||(value=String.fromCharCode(entity)));value||(div.innerHTML=s+" ",value=div.firstChild.nodeValue.slice(0,-1));return seen[s]=value})} -function goog$string$unescapePureXmlEntities_(str){return str.replace(/&([^;]+);/g,function(s,entity){switch(entity){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=entity.charAt(0)||(entity=Number("0"+entity.substr(1)),isNaN(entity))?s:String.fromCharCode(entity)}})}var goog$string$HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;var EMPTY_string_ARRAY=[],EMPTY_number_ARRAY=[],EMPTY_amp_validator_AtRuleSpec_ARRAY=[],EMPTY_amp_validator_BlackListedCDataRegex_ARRAY=[],EMPTY_amp_validator_DescendantTagList_ARRAY=[],EMPTY_amp_validator_ErrorFormat_ARRAY=[],EMPTY_amp_validator_ErrorSpecificity_ARRAY=[],EMPTY_amp_validator_ReferencePoint_ARRAY=[],EMPTY_amp_validator_HtmlFormat_Code_ARRAY=[]; +function goog$string$unescapePureXmlEntities_(str){return str.replace(/&([^;]+);/g,function(s,entity){switch(entity){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=entity.charAt(0)||(entity=Number("0"+entity.substr(1)),isNaN(entity))?s:String.fromCharCode(entity)}})}var goog$string$HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;var goog$labs$userAgent$util$userAgent_;a:{var navigator$jscomp$inline_152=goog$global.navigator;if(navigator$jscomp$inline_152){var userAgent$jscomp$inline_153=navigator$jscomp$inline_152.userAgent;if(userAgent$jscomp$inline_153){goog$labs$userAgent$util$userAgent_=userAgent$jscomp$inline_153;break a}}goog$labs$userAgent$util$userAgent_=""};function goog$async$throwException(exception){goog$global.setTimeout(function(){throw exception;},0)}var goog$async$nextTick$setImmediate_; +function goog$async$nextTick$getSetImmediateEmulator_(){var Channel=goog$global.MessageChannel;"undefined"===typeof Channel&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Presto")&&(Channel=function(){var iframe=document.createElement("IFRAME");iframe.style.display="none";iframe.src="";document.documentElement.appendChild(iframe);var win=iframe.contentWindow;iframe=win.document;iframe.open();iframe.write("");iframe.close(); +var message="callImmediate"+Math.random(),origin="file:"==win.location.protocol?"*":win.location.protocol+"//"+win.location.host;iframe=goog$bind(function(e){if(("*"==origin||e.origin==origin)&&e.data==message)this.port1.onmessage()},this);win.addEventListener("message",iframe,!1);this.port1={};this.port2={postMessage:function(){win.postMessage(message,origin)}}});if("undefined"!==typeof Channel&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Trident")&&-1==goog$labs$userAgent$util$userAgent_.indexOf("MSIE")){var channel= +new Channel,head={},tail=head;channel.port1.onmessage=function(){if(void 0!==head.next){head=head.next;var cb=head.cb;head.cb=null;cb()}};return function(cb){tail.next={cb:cb};tail=tail.next;channel.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(cb){var script=document.createElement("SCRIPT");script.onreadystatechange=function(){script.onreadystatechange=null;script.parentNode.removeChild(script);script=null;cb();cb=null}; +document.documentElement.appendChild(script)}:function(cb){goog$global.setTimeout(cb,0)}};function goog$async$WorkQueue(){this.workTail_=this.workHead_=null}var goog$async$WorkQueue$freelist_=new goog$async$FreeList(function(){return new goog$async$WorkItem},function(item){item.reset()});goog$async$WorkQueue.prototype.add=function(fn,scope){var item=goog$async$WorkQueue$freelist_.get();item.set(fn,scope);this.workTail_?this.workTail_.next=item:(goog$asserts$assert(!this.workHead_),this.workHead_=item);this.workTail_=item}; +function JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove(){var JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self=goog$async$run$workQueue_,item=null;JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_&&(item=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_,JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_.next, +JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_||(JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workTail_=null),item.next=null);return item}function goog$async$WorkItem(){this.next=this.goog_async_WorkItem$scope=this.fn=null}goog$async$WorkItem.prototype.set=function(fn,scope){this.fn=fn;this.goog_async_WorkItem$scope=scope;this.next=null};goog$async$WorkItem.prototype.reset=function(){this.next=this.goog_async_WorkItem$scope=this.fn=null};function goog$async$run(callback,opt_context){goog$async$run$schedule_||goog$async$run$initializeRunner_();goog$async$run$workQueueScheduled_||(goog$async$run$schedule_(),goog$async$run$workQueueScheduled_=!0);goog$async$run$workQueue_.add(callback,opt_context)}var goog$async$run$schedule_; +function goog$async$run$initializeRunner_(){if(-1!=String(goog$global.Promise).indexOf("[native code]")){var promise=goog$global.Promise.resolve(void 0);goog$async$run$schedule_=function(){promise.then(goog$async$run$processWorkQueue)}}else goog$async$run$schedule_=function(){var cb=goog$async$run$processWorkQueue;!goog$isFunction(goog$global.setImmediate)||goog$global.Window&&goog$global.Window.prototype&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Edge")&&goog$global.Window.prototype.setImmediate== +goog$global.setImmediate?(goog$async$nextTick$setImmediate_||(goog$async$nextTick$setImmediate_=goog$async$nextTick$getSetImmediateEmulator_()),goog$async$nextTick$setImmediate_(cb)):goog$global.setImmediate(cb)}}var goog$async$run$workQueueScheduled_=!1,goog$async$run$workQueue_=new goog$async$WorkQueue; +function goog$async$run$processWorkQueue(){for(var item;item=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove();){try{item.fn.call(item.goog_async_WorkItem$scope)}catch(e){goog$async$throwException(e)}JSCompiler_StaticMethods_goog_async_FreeList_prototype$put(goog$async$WorkQueue$freelist_,item)}goog$async$run$workQueueScheduled_=!1};function goog$Promise(resolver){this.state_=0;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.hadUnhandledRejection_=this.executing_=!1;if(resolver!=goog$nullFunction)try{var self=this;resolver.call(void 0,function(value){JSCompiler_StaticMethods_resolve_(self,2,value)},function(reason){if(!(reason instanceof goog$Promise$CancellationError))try{if(reason instanceof Error)throw reason;throw Error("Promise rejected.");}catch(e){}JSCompiler_StaticMethods_resolve_(self, +3,reason)})}catch(e){JSCompiler_StaticMethods_resolve_(this,3,e)}}function goog$Promise$CallbackEntry_(){this.next=this.goog_Promise_CallbackEntry_$context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1}goog$Promise$CallbackEntry_.prototype.reset=function(){this.goog_Promise_CallbackEntry_$context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};var goog$Promise$freelist_=new goog$async$FreeList(function(){return new goog$Promise$CallbackEntry_},function(item){item.reset()}); +function goog$Promise$getCallbackEntry_(onFulfilled,onRejected,context){var entry=goog$Promise$freelist_.get();entry.onFulfilled=onFulfilled;entry.onRejected=onRejected;entry.goog_Promise_CallbackEntry_$context=context;return entry} +goog$Promise.prototype.then=function(opt_onFulfilled,opt_onRejected,opt_context){null!=opt_onFulfilled&&goog$asserts$assertFunction(opt_onFulfilled,"opt_onFulfilled should be a function.");null!=opt_onRejected&&goog$asserts$assertFunction(opt_onRejected,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");return JSCompiler_StaticMethods_addChildPromise_(this,goog$isFunction(opt_onFulfilled)?opt_onFulfilled:null,goog$isFunction(opt_onRejected)? +opt_onRejected:null,opt_context)};goog$Promise.prototype.then=goog$Promise.prototype.then;goog$Promise.prototype.$goog_Thenable=!0;goog$Promise.prototype.cancel=function(opt_message){0==this.state_&&goog$async$run(function(){var err=new goog$Promise$CancellationError(opt_message);JSCompiler_StaticMethods_cancelInternal_(this,err)},this)}; +function JSCompiler_StaticMethods_cancelInternal_(JSCompiler_StaticMethods_cancelInternal_$self,err){if(0==JSCompiler_StaticMethods_cancelInternal_$self.state_)if(JSCompiler_StaticMethods_cancelInternal_$self.parent_){var JSCompiler_StaticMethods_cancelChild_$self=JSCompiler_StaticMethods_cancelInternal_$self.parent_;if(JSCompiler_StaticMethods_cancelChild_$self.callbackEntries_){for(var childCount=0,childEntry=null,beforeChildEntry=null,entry=JSCompiler_StaticMethods_cancelChild_$self.callbackEntries_;entry&& +(entry.always||(childCount++,entry.child==JSCompiler_StaticMethods_cancelInternal_$self&&(childEntry=entry),!(childEntry&&1hashIndex?uri:uri.substr(0,hashIndex)};var EMPTY_string_ARRAY=[],EMPTY_number_ARRAY=[],EMPTY_amp_validator_AtRuleSpec_ARRAY=[],EMPTY_amp_validator_BlackListedCDataRegex_ARRAY=[],EMPTY_amp_validator_DescendantTagList_ARRAY=[],EMPTY_amp_validator_ErrorFormat_ARRAY=[],EMPTY_amp_validator_ErrorSpecificity_ARRAY=[],EMPTY_amp_validator_ReferencePoint_ARRAY=[],EMPTY_amp_validator_HtmlFormat_Code_ARRAY=[]; function amp$validator$AmpLayout(supportedLayouts){this.supportedLayouts=supportedLayouts;this.definesDefaultHeight=this.definesDefaultWidth=!1}goog$exportSymbol("amp.validator.AmpLayout.Layout",{UNKNOWN:"UNKNOWN",NODISPLAY:"NODISPLAY",FIXED:"FIXED",FIXED_HEIGHT:"FIXED_HEIGHT",RESPONSIVE:"RESPONSIVE",CONTAINER:"CONTAINER",FILL:"FILL",FLEX_ITEM:"FLEX_ITEM",FLUID:"FLUID",INTRINSIC:"INTRINSIC"}); var amp$validator$AmpLayout$Layout_NamesByIndex="UNKNOWN NODISPLAY FIXED FIXED_HEIGHT RESPONSIVE CONTAINER FILL FLEX_ITEM FLUID INTRINSIC".split(" "),amp$validator$AmpLayout$Layout_ValuesByIndex="UNKNOWN NODISPLAY FIXED FIXED_HEIGHT RESPONSIVE CONTAINER FILL FLEX_ITEM FLUID INTRINSIC".split(" ");function amp$validator$AtRuleSpec(name,type){this.name=name;this.type=type} goog$exportSymbol("amp.validator.AtRuleSpec.BlockType",{PARSE_AS_ERROR:"PARSE_AS_ERROR",PARSE_AS_IGNORE:"PARSE_AS_IGNORE",PARSE_AS_RULES:"PARSE_AS_RULES",PARSE_AS_DECLARATIONS:"PARSE_AS_DECLARATIONS"}); -function amp$validator$AttrSpec(name){this.name=name;this.alternativeNames=EMPTY_string_ARRAY;this.amp_validator_AttrSpec$mandatory=!1;this.dispatchKey=this.amp_validator_AttrSpec$deprecationUrl=this.amp_validator_AttrSpec$deprecation=this.blacklistedValueRegex=this.trigger=this.valueProperties=this.valueUrl=this.valueRegexCasei=this.valueRegex=this.valueCasei=this.value=this.mandatoryOneof=null;this.implicit=!1} +function amp$validator$AttrSpec(name){this.name=name;this.alternativeNames=EMPTY_string_ARRAY;this.mandatory=!1;this.dispatchKey=this.deprecationUrl=this.deprecation=this.blacklistedValueRegex=this.trigger=this.valueProperties=this.valueUrl=this.valueRegexCasei=this.valueRegex=this.valueCasei=this.value=this.mandatoryOneof=null;this.implicit=!1;this.requiresExtension=EMPTY_string_ARRAY} goog$exportSymbol("amp.validator.AttrSpec.DispatchKeyType",{NONE_DISPATCH:"NONE_DISPATCH",NAME_DISPATCH:"NAME_DISPATCH",NAME_VALUE_DISPATCH:"NAME_VALUE_DISPATCH",NAME_VALUE_PARENT_DISPATCH:"NAME_VALUE_PARENT_DISPATCH"});function amp$validator$AttrTriggerSpec(alsoRequiresAttr){this.ifValueRegex=null;this.alsoRequiresAttr=alsoRequiresAttr}function amp$validator$BlackListedCDataRegex(regex,errorMessage){this.regex=regex;this.errorMessage=errorMessage} -function amp$validator$CdataSpec(){this.maxBytes=-1;this.amp_validator_CdataSpec$cssSpec=this.cdataRegex=this.maxBytesSpecUrl=null;this.whitespaceOnly=!1;this.blacklistedCdataRegex=EMPTY_amp_validator_BlackListedCDataRegex_ARRAY;this.combinedBlacklistedCdataRegex=null}function amp$validator$ChildTagSpec(){this.mandatoryNumChildTags=-1;this.childTagNameOneof=this.firstChildTagNameOneof=EMPTY_string_ARRAY;this.mandatoryMinNumChildTags=-1} +function amp$validator$CdataSpec(){this.maxBytes=-1;this.cssSpec=this.cdataRegex=this.maxBytesSpecUrl=null;this.whitespaceOnly=!1;this.blacklistedCdataRegex=EMPTY_amp_validator_BlackListedCDataRegex_ARRAY;this.combinedBlacklistedCdataRegex=null}function amp$validator$ChildTagSpec(){this.mandatoryNumChildTags=-1;this.childTagNameOneof=this.firstChildTagNameOneof=EMPTY_string_ARRAY;this.mandatoryMinNumChildTags=-1} function amp$validator$CssSpec(){this.atRuleSpec=EMPTY_amp_validator_AtRuleSpec_ARRAY;this.fontUrlSpec=this.imageUrlSpec=null;this.validateKeyframes=this.validateAmp4Ads=!1;this.allowedDeclarations=EMPTY_string_ARRAY}function amp$validator$DescendantTagList(){this.name=null;this.allowedTags=EMPTY_string_ARRAY}function amp$validator$ErrorFormat(code,format){this.code=code;this.format=format}function amp$validator$ErrorSpecificity(){this.code=null;this.specificity=0} -function amp$validator$ExtensionSpec(){this.name=null;this.deprecatedVersions=this.allowedVersions=EMPTY_string_ARRAY;this.deprecatedAllowDuplicates=this.isCustomTemplate=!1;this.requiresUsage=null}goog$exportSymbol("amp.validator.ExtensionSpec.ExtensionUsageRequirement",{ERROR:"ERROR",GRANDFATHERED:"GRANDFATHERED",NONE:"NONE"});goog$exportSymbol("amp.validator.HtmlFormat.Code",{AMP:"AMP",AMP4ADS:"AMP4ADS",EXPERIMENTAL:"EXPERIMENTAL"}); -function amp$validator$PropertySpec(name){this.name=name;this.amp_validator_PropertySpec$mandatory=!1;this.valueDouble=this.value=null}function amp$validator$PropertySpecList(properties){this.properties=properties}function amp$validator$ReferencePoint(){this.tagSpecName=null;this.unique=this.amp_validator_ReferencePoint$mandatory=!1} -function amp$validator$TagSpec(tagName){this.htmlFormat=EMPTY_amp_validator_HtmlFormat_Code_ARRAY;this.tagName=tagName;this.extensionSpec=this.specName=null;this.requiresExtension=EMPTY_string_ARRAY;this.amp_validator_TagSpec$mandatory=!1;this.mandatoryAlternatives=null;this.uniqueWarning=this.unique=!1;this.mandatoryAncestorSuggestedAlternative=this.mandatoryAncestor=this.mandatoryParent=null;this.disallowedAncestor=EMPTY_string_ARRAY;this.amp_validator_TagSpec$descendantTagList=null;this.requires= -this.satisfies=this.alsoRequiresTagWarning=EMPTY_number_ARRAY;this.amp_validator_TagSpec$deprecationUrl=this.amp_validator_TagSpec$deprecation=null;this.amp_validator_TagSpec$attrLists=this.amp_validator_TagSpec$attrs=EMPTY_number_ARRAY;this.childTags=this.amp_validator_TagSpec$cdata=null;this.mandatoryLastChild=this.siblingsDisallowed=!1;this.referencePoints=EMPTY_amp_validator_ReferencePoint_ARRAY;this.ampLayout=this.specUrl=null} -function amp$validator$UrlSpec(allowedProtocol){this.allowedProtocol=allowedProtocol;this.allowRelative=!0;this.allowEmpty=!1;this.amp_validator_UrlSpec$disallowedDomain=EMPTY_string_ARRAY}function amp$validator$ValidationError(){this.code=this.severity=null;this.line=1;this.col=0;this.specUrl=null;this.params=EMPTY_string_ARRAY;this.dataAmpReportTestValue=this.category=null}function amp$validator$ValidationResult(){this.status=null;this.errors=[];this.specFileRevision=this.validatorRevision=-1} -goog$exportSymbol("amp.validator.ValidationResult",amp$validator$ValidationResult);amp$validator$ValidationResult.Status={UNKNOWN:"UNKNOWN",PASS:"PASS",FAIL:"FAIL"}; -function amp$validator$ValidatorRules(tags){this.tags=tags;this.minValidatorRevisionRequired=0;this.specFileRevision=-1;this.scriptSpecUrl=this.stylesSpecUrl=this.templateSpecUrl=null;this.errorFormats=EMPTY_amp_validator_ErrorFormat_ARRAY;this.errorSpecificity=EMPTY_amp_validator_ErrorSpecificity_ARRAY;this.amp_validator_ValidatorRules$descendantTagList=EMPTY_amp_validator_DescendantTagList_ARRAY;this.dispatchKeyByTagSpecId=Array(tags.length);this.internedStrings=[];this.amp_validator_ValidatorRules$attrs= -[];this.directAttrLists=[];this.amp_validator_ValidatorRules$globalAttrs=[];this.amp_validator_ValidatorRules$ampLayoutAttrs=[]} -function amp$validator$createRules(){var tagspec_0=new amp$validator$TagSpec("!DOCTYPE");tagspec_0.specName="html doctype";tagspec_0.amp_validator_TagSpec$mandatory=!0;tagspec_0.unique=!0;tagspec_0.mandatoryParent="$ROOT";tagspec_0.amp_validator_TagSpec$attrs=[0];tagspec_0.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";var tagspec_1=new amp$validator$TagSpec("HTML");tagspec_1.specName="html \u26a1 for top-level html";tagspec_1.amp_validator_TagSpec$mandatory=!0;tagspec_1.unique= -!0;tagspec_1.mandatoryParent="!DOCTYPE";tagspec_1.amp_validator_TagSpec$attrs=[1];tagspec_1.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_1.htmlFormat=["AMP"];var tagspec_2=new amp$validator$TagSpec("HTML");tagspec_2.specName="html \u26a14ads for top-level html";tagspec_2.amp_validator_TagSpec$mandatory=!0;tagspec_2.unique=!0;tagspec_2.mandatoryParent="!DOCTYPE";tagspec_2.amp_validator_TagSpec$attrs=[2];tagspec_2.specUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#a4a-format-rules"; -tagspec_2.htmlFormat=["AMP4ADS"];var tagspec_3=new amp$validator$TagSpec("HEAD");tagspec_3.amp_validator_TagSpec$mandatory=!0;tagspec_3.unique=!0;tagspec_3.mandatoryParent="HTML";tagspec_3.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";var tagspec_4=new amp$validator$TagSpec("TITLE");tagspec_4.specName="title";var tagspec_5=new amp$validator$TagSpec("BASE");tagspec_5.unique=!0;tagspec_5.mandatoryParent="HEAD";tagspec_5.amp_validator_TagSpec$attrs=[3,4];tagspec_5.htmlFormat= -["AMP","AMP4ADS"];var tagspec_6=new amp$validator$TagSpec("LINK");tagspec_6.specName="link rel=";tagspec_6.amp_validator_TagSpec$attrs=[-1,5,-2,-3];tagspec_6.amp_validator_TagSpec$attrLists=[0];tagspec_6.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_6.disallowedAncestor=["TEMPLATE"];tagspec_6.htmlFormat=["AMP","AMP4ADS"];var tagspec_7=new amp$validator$TagSpec("LINK");tagspec_7.specName="link rel=canonical";tagspec_7.amp_validator_TagSpec$mandatory=!0;tagspec_7.unique= -!0;tagspec_7.mandatoryParent="HEAD";tagspec_7.amp_validator_TagSpec$attrs=[6,7];tagspec_7.amp_validator_TagSpec$attrLists=[0];tagspec_7.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_7.htmlFormat=["AMP"];var tagspec_8=new amp$validator$TagSpec("LINK");tagspec_8.specName="link rel=manifest";tagspec_8.mandatoryParent="HEAD";tagspec_8.amp_validator_TagSpec$attrs=[8,9];tagspec_8.amp_validator_TagSpec$attrLists=[0];tagspec_8.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags"; -tagspec_8.htmlFormat=["AMP","AMP4ADS"];tagspec_8.satisfies=[-4];var tagspec_9=new amp$validator$TagSpec("LINK");tagspec_9.specName="link rel=stylesheet for fonts";tagspec_9.mandatoryParent="HEAD";tagspec_9.amp_validator_TagSpec$attrs=[-5,10,-6,11,12,-7,-8];tagspec_9.specUrl="https://www.ampproject.org/docs/reference/spec#custom-fonts";tagspec_9.htmlFormat=["AMP","AMP4ADS"];var tagspec_10=new amp$validator$TagSpec("LINK");tagspec_10.specName="link itemprop=sameAs";tagspec_10.amp_validator_TagSpec$attrs= -[13,14];tagspec_10.amp_validator_TagSpec$attrLists=[0];tagspec_10.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_10.htmlFormat=["AMP","AMP4ADS"];var tagspec_11=new amp$validator$TagSpec("LINK");tagspec_11.specName="link itemprop=";tagspec_11.amp_validator_TagSpec$attrs=[13,15];tagspec_11.amp_validator_TagSpec$attrLists=[0];tagspec_11.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_11.htmlFormat=["AMP","AMP4ADS"];var tagspec_12=new amp$validator$TagSpec("LINK"); -tagspec_12.specName="link property=";tagspec_12.amp_validator_TagSpec$attrs=[13,16];tagspec_12.amp_validator_TagSpec$attrLists=[0];tagspec_12.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_12.htmlFormat=["AMP","AMP4ADS"];var tagspec_13=new amp$validator$TagSpec("META");tagspec_13.specName="meta charset=utf-8";tagspec_13.amp_validator_TagSpec$mandatory=!0;tagspec_13.unique=!0;tagspec_13.mandatoryParent="HEAD";tagspec_13.amp_validator_TagSpec$attrs=[17];tagspec_13.specUrl= -"https://www.ampproject.org/docs/reference/spec#required-markup";var tagspec_14=new amp$validator$TagSpec("META");tagspec_14.specName="meta name=viewport";tagspec_14.amp_validator_TagSpec$mandatory=!0;tagspec_14.unique=!0;tagspec_14.mandatoryParent="HEAD";tagspec_14.amp_validator_TagSpec$attrs=[18,19];tagspec_14.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_14.htmlFormat=["AMP","AMP4ADS"];var tagspec_15=new amp$validator$TagSpec("META");tagspec_15.specName="meta http-equiv=X-UA-Compatible"; -tagspec_15.amp_validator_TagSpec$attrs=[20,21];tagspec_15.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_15.mandatoryAncestor="HEAD";tagspec_15.htmlFormat=["AMP","AMP4ADS"];var tagspec_16=new amp$validator$TagSpec("META");tagspec_16.specName="meta name=apple-itunes-app";tagspec_16.mandatoryParent="HEAD";tagspec_16.amp_validator_TagSpec$attrs=[22,23];tagspec_16.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_16.htmlFormat=["AMP","AMP4ADS"];tagspec_16.satisfies= -[-4];var tagspec_17=new amp$validator$TagSpec("META");tagspec_17.specName="meta name=amp-experiments-opt-in";tagspec_17.mandatoryParent="HEAD";tagspec_17.amp_validator_TagSpec$attrs=[24,25];tagspec_17.htmlFormat=["AMP","AMP4ADS"];var tagspec_18=new amp$validator$TagSpec("META");tagspec_18.specName="meta name=amp-3p-iframe-src";tagspec_18.mandatoryParent="HEAD";tagspec_18.amp_validator_TagSpec$attrs=[26,27];tagspec_18.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad";tagspec_18.htmlFormat= -["AMP"];var tagspec_19=new amp$validator$TagSpec("META");tagspec_19.specName="meta name=amp-experiment-token";tagspec_19.mandatoryParent="HEAD";tagspec_19.amp_validator_TagSpec$attrs=[28,25];tagspec_19.htmlFormat=["AMP"];var tagspec_20=new amp$validator$TagSpec("META");tagspec_20.specName="meta name=amp-link-variable-allowed-origin";tagspec_20.mandatoryParent="HEAD";tagspec_20.amp_validator_TagSpec$attrs=[29,25];tagspec_20.htmlFormat=["AMP"];var tagspec_21=new amp$validator$TagSpec("META");tagspec_21.specName= -"meta name=amp-google-clientid-id-api";tagspec_21.mandatoryParent="HEAD";tagspec_21.amp_validator_TagSpec$attrs=[30,25];tagspec_21.htmlFormat=["AMP"];var tagspec_22=new amp$validator$TagSpec("META");tagspec_22.specName="meta name=amp-ad-doubleclick-sra";tagspec_22.mandatoryParent="HEAD";tagspec_22.amp_validator_TagSpec$attrs=[31];tagspec_22.htmlFormat=["AMP"];var tagspec_23=new amp$validator$TagSpec("META");tagspec_23.specName="meta name=amp4ads-id";tagspec_23.mandatoryParent="HEAD";tagspec_23.amp_validator_TagSpec$attrs= -[32,25];tagspec_23.htmlFormat=["AMP4ADS"];var tagspec_24=new amp$validator$TagSpec("META");tagspec_24.specName="meta name= and content=";tagspec_24.amp_validator_TagSpec$attrs=[33,-9,-10,-11];tagspec_24.htmlFormat=["AMP","AMP4ADS"];var tagspec_25=new amp$validator$TagSpec("META");tagspec_25.specName="meta http-equiv=Content-Type";tagspec_25.amp_validator_TagSpec$attrs=[34,35];tagspec_25.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_25.mandatoryAncestor="HEAD";tagspec_25.htmlFormat= -["AMP","AMP4ADS"];var tagspec_26=new amp$validator$TagSpec("META");tagspec_26.specName="meta http-equiv=content-language";tagspec_26.amp_validator_TagSpec$attrs=[36,25];tagspec_26.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_26.mandatoryAncestor="HEAD";tagspec_26.htmlFormat=["AMP","AMP4ADS"];var tagspec_27=new amp$validator$TagSpec("META");tagspec_27.specName="meta http-equiv=pics-label";tagspec_27.amp_validator_TagSpec$attrs=[37,25];tagspec_27.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags"; -tagspec_27.mandatoryAncestor="HEAD";tagspec_27.htmlFormat=["AMP","AMP4ADS"];var tagspec_28=new amp$validator$TagSpec("META");tagspec_28.specName="meta http-equiv=imagetoolbar";tagspec_28.amp_validator_TagSpec$attrs=[38,25];tagspec_28.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_28.mandatoryAncestor="HEAD";tagspec_28.htmlFormat=["AMP","AMP4ADS"];var tagspec_29=new amp$validator$TagSpec("META");tagspec_29.specName="meta http-equiv=Content-Style-Type";tagspec_29.amp_validator_TagSpec$attrs= -[39,40];tagspec_29.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_29.mandatoryAncestor="HEAD";tagspec_29.htmlFormat=["AMP","AMP4ADS"];var tagspec_30=new amp$validator$TagSpec("META");tagspec_30.specName="meta http-equiv=Content-Script-Type";tagspec_30.amp_validator_TagSpec$attrs=[41,42];tagspec_30.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_30.mandatoryAncestor="HEAD";tagspec_30.htmlFormat=["AMP","AMP4ADS"];var tagspec_31=new amp$validator$TagSpec("META"); -tagspec_31.specName="meta http-equiv=origin-trial";tagspec_31.amp_validator_TagSpec$attrs=[43,25];tagspec_31.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_31.mandatoryAncestor="HEAD";tagspec_31.htmlFormat=["AMP","AMP4ADS"];var tagspec_32=new amp$validator$TagSpec("META");tagspec_32.specName="meta http-equiv=resource-type";tagspec_32.amp_validator_TagSpec$attrs=[44,25];tagspec_32.specUrl="https://www.ampproject.org/docs/reference/spec#html-tags";tagspec_32.mandatoryAncestor= -"HEAD";tagspec_32.htmlFormat=["AMP","AMP4ADS"];var tagspec_33=new amp$validator$TagSpec("META");tagspec_33.specName="meta name=amp-ad-enable-refresh";tagspec_33.amp_validator_TagSpec$attrs=[45,25];tagspec_33.mandatoryAncestor="HEAD";tagspec_33.htmlFormat=["AMP","AMP4ADS"];var blacklistedcdataregex_0=new amp$validator$BlackListedCDataRegex("\x3c!--","html comments"),blacklistedcdataregex_1=new amp$validator$BlackListedCDataRegex("(^|\\W)i-amphtml-","CSS i-amphtml- name prefix"),blacklistedcdataregex_2= -new amp$validator$BlackListedCDataRegex("!important","CSS !important"),atrulespec_0=new amp$validator$AtRuleSpec("font-face","PARSE_AS_DECLARATIONS"),atrulespec_1=new amp$validator$AtRuleSpec("keyframes","PARSE_AS_RULES"),atrulespec_2=new amp$validator$AtRuleSpec("media","PARSE_AS_RULES"),atrulespec_3=new amp$validator$AtRuleSpec("supports","PARSE_AS_RULES"),atrulespec_4=new amp$validator$AtRuleSpec("$DEFAULT","PARSE_AS_ERROR"),urlspec_0=new amp$validator$UrlSpec(["https","http","data","absolute"]); -urlspec_0.allowRelative=!0;urlspec_0.allowEmpty=!0;var urlspec_1=new amp$validator$UrlSpec(["https","http","data"]);urlspec_1.allowRelative=!0;urlspec_1.allowEmpty=!0;var cssspec_0=new amp$validator$CssSpec;cssspec_0.atRuleSpec=[atrulespec_0,atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4];cssspec_0.imageUrlSpec=urlspec_0;cssspec_0.fontUrlSpec=urlspec_1;var cdataspec_0=new amp$validator$CdataSpec;cdataspec_0.maxBytes=5E4;cdataspec_0.maxBytesSpecUrl="https://www.ampproject.org/docs/reference/spec#maximum-size"; -cdataspec_0.blacklistedCdataRegex=[blacklistedcdataregex_0,blacklistedcdataregex_1,blacklistedcdataregex_2];cdataspec_0.amp_validator_CdataSpec$cssSpec=cssspec_0;cdataspec_0.combinedBlacklistedCdataRegex=-13;var tagspec_34=new amp$validator$TagSpec("STYLE");tagspec_34.specName="style amp-custom";tagspec_34.unique=!0;tagspec_34.mandatoryParent="HEAD";tagspec_34.amp_validator_TagSpec$attrs=[46,-12,12];tagspec_34.specUrl="https://www.ampproject.org/docs/reference/spec#stylesheets";tagspec_34.amp_validator_TagSpec$cdata= -cdataspec_0;tagspec_34.htmlFormat=["AMP"];var cssspec_1=new amp$validator$CssSpec;cssspec_1.atRuleSpec=[atrulespec_0,atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4];cssspec_1.imageUrlSpec=urlspec_0;cssspec_1.fontUrlSpec=urlspec_1;cssspec_1.validateAmp4Ads=!0;var cdataspec_1=new amp$validator$CdataSpec;cdataspec_1.maxBytes=2E4;cdataspec_1.maxBytesSpecUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#css";cdataspec_1.blacklistedCdataRegex=[blacklistedcdataregex_0, -blacklistedcdataregex_1,blacklistedcdataregex_2];cdataspec_1.amp_validator_CdataSpec$cssSpec=cssspec_1;cdataspec_1.combinedBlacklistedCdataRegex=-13;var tagspec_35=new amp$validator$TagSpec("STYLE");tagspec_35.specName="style amp-custom (AMP4ADS)";tagspec_35.unique=!0;tagspec_35.mandatoryParent="HEAD";tagspec_35.amp_validator_TagSpec$attrs=[46,-12,12];tagspec_35.specUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#css";tagspec_35.amp_validator_TagSpec$cdata= -cdataspec_1;tagspec_35.htmlFormat=["AMP4ADS"];var cdataspec_2=new amp$validator$CdataSpec;cdataspec_2.cdataRegex=-15;var tagspec_36=new amp$validator$TagSpec("STYLE");tagspec_36.specName="head > style[amp-boilerplate] - old variant";tagspec_36.mandatoryAlternatives=-14;tagspec_36.unique=!0;tagspec_36.mandatoryParent="HEAD";tagspec_36.amp_validator_TagSpec$attrs=[-12];tagspec_36.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_36.amp_validator_TagSpec$cdata= -cdataspec_2;tagspec_36.amp_validator_TagSpec$deprecation="head > style[amp-boilerplate]";tagspec_36.amp_validator_TagSpec$deprecationUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_36.htmlFormat=["AMP"];var cdataspec_3=new amp$validator$CdataSpec;cdataspec_3.cdataRegex=-17;var tagspec_37=new amp$validator$TagSpec("STYLE");tagspec_37.specName="noscript > style[amp-boilerplate] - old variant";tagspec_37.mandatoryAlternatives=-16;tagspec_37.unique=!0;tagspec_37.mandatoryParent= -"NOSCRIPT";tagspec_37.amp_validator_TagSpec$attrs=[-12];tagspec_37.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_37.amp_validator_TagSpec$cdata=cdataspec_3;tagspec_37.mandatoryAncestor="HEAD";tagspec_37.amp_validator_TagSpec$deprecation="noscript > style[amp-boilerplate]";tagspec_37.amp_validator_TagSpec$deprecationUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_37.htmlFormat=["AMP"];var cdataspec_4=new amp$validator$CdataSpec; -cdataspec_4.cdataRegex=-18;var tagspec_38=new amp$validator$TagSpec("STYLE");tagspec_38.specName="head > style[amp-boilerplate]";tagspec_38.mandatoryAlternatives=-14;tagspec_38.unique=!0;tagspec_38.mandatoryParent="HEAD";tagspec_38.amp_validator_TagSpec$attrs=[47,-12];tagspec_38.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_38.amp_validator_TagSpec$cdata=cdataspec_4;tagspec_38.htmlFormat=["AMP"];tagspec_38.satisfies=[-14];tagspec_38.requires=[-16];var cdataspec_5= -new amp$validator$CdataSpec;cdataspec_5.cdataRegex=-19;var tagspec_39=new amp$validator$TagSpec("STYLE");tagspec_39.specName="head > style[amp4ads-boilerplate]";tagspec_39.amp_validator_TagSpec$mandatory=!0;tagspec_39.unique=!0;tagspec_39.mandatoryParent="HEAD";tagspec_39.amp_validator_TagSpec$attrs=[48,-12];tagspec_39.specUrl="https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#boilerplate";tagspec_39.amp_validator_TagSpec$cdata=cdataspec_5;tagspec_39.htmlFormat= -["AMP4ADS"];var cdataspec_6=new amp$validator$CdataSpec;cdataspec_6.cdataRegex=-20;var tagspec_40=new amp$validator$TagSpec("STYLE");tagspec_40.specName="noscript > style[amp-boilerplate]";tagspec_40.mandatoryAlternatives=-16;tagspec_40.unique=!0;tagspec_40.mandatoryParent="NOSCRIPT";tagspec_40.amp_validator_TagSpec$attrs=[47,-12];tagspec_40.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_40.amp_validator_TagSpec$cdata=cdataspec_6;tagspec_40.mandatoryAncestor= -"HEAD";tagspec_40.htmlFormat=["AMP"];tagspec_40.satisfies=[-16];tagspec_40.requires=[-14];var cssspec_2=new amp$validator$CssSpec;cssspec_2.atRuleSpec=[atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4];cssspec_2.validateKeyframes=!0;cssspec_2.allowedDeclarations=["offset-distance","opacity","transform","visibility"];var cdataspec_7=new amp$validator$CdataSpec;cdataspec_7.maxBytes=5E5;cdataspec_7.maxBytesSpecUrl="https://www.ampproject.org/docs/reference/spec#keyframes-stylesheet";cdataspec_7.amp_validator_CdataSpec$cssSpec= -cssspec_2;var tagspec_41=new amp$validator$TagSpec("STYLE");tagspec_41.specName="style[amp-keyframes]";tagspec_41.unique=!0;tagspec_41.mandatoryParent="BODY";tagspec_41.amp_validator_TagSpec$attrs=[49];tagspec_41.amp_validator_TagSpec$cdata=cdataspec_7;tagspec_41.htmlFormat=["AMP","AMP4ADS"];tagspec_41.mandatoryLastChild=!0;var tagspec_42=new amp$validator$TagSpec("BODY");tagspec_42.amp_validator_TagSpec$mandatory=!0;tagspec_42.unique=!0;tagspec_42.mandatoryParent="HTML";tagspec_42.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup"; -var tagspec_43=new amp$validator$TagSpec("ARTICLE"),tagspec_44=new amp$validator$TagSpec("SECTION");tagspec_44.disallowedAncestor=["AMP-ACCORDION"];var tagspec_45=new amp$validator$TagSpec("NAV"),tagspec_46=new amp$validator$TagSpec("ASIDE"),tagspec_47=new amp$validator$TagSpec("H1");tagspec_47.amp_validator_TagSpec$attrs=[-21];var tagspec_48=new amp$validator$TagSpec("H2");tagspec_48.amp_validator_TagSpec$attrs=[-21];var tagspec_49=new amp$validator$TagSpec("H3");tagspec_49.amp_validator_TagSpec$attrs= -[-21];var tagspec_50=new amp$validator$TagSpec("H4");tagspec_50.amp_validator_TagSpec$attrs=[-21];var tagspec_51=new amp$validator$TagSpec("H5");tagspec_51.amp_validator_TagSpec$attrs=[-21];var tagspec_52=new amp$validator$TagSpec("H6");tagspec_52.amp_validator_TagSpec$attrs=[-21];var tagspec_53=new amp$validator$TagSpec("HEADER"),tagspec_54=new amp$validator$TagSpec("FOOTER"),tagspec_55=new amp$validator$TagSpec("ADDRESS"),tagspec_56=new amp$validator$TagSpec("P");tagspec_56.amp_validator_TagSpec$attrs= -[-21];var tagspec_57=new amp$validator$TagSpec("HR"),tagspec_58=new amp$validator$TagSpec("PRE"),tagspec_59=new amp$validator$TagSpec("BLOCKQUOTE");tagspec_59.amp_validator_TagSpec$attrs=[-21];tagspec_59.amp_validator_TagSpec$attrLists=[1];var tagspec_60=new amp$validator$TagSpec("OL");tagspec_60.amp_validator_TagSpec$attrs=[50,51,52];var tagspec_61=new amp$validator$TagSpec("UL"),tagspec_62=new amp$validator$TagSpec("LI");tagspec_62.amp_validator_TagSpec$attrs=[53];var tagspec_63=new amp$validator$TagSpec("DL"), -tagspec_64=new amp$validator$TagSpec("DT"),tagspec_65=new amp$validator$TagSpec("DD"),tagspec_66=new amp$validator$TagSpec("FIGURE"),tagspec_67=new amp$validator$TagSpec("FIGCAPTION"),tagspec_68=new amp$validator$TagSpec("DIV");tagspec_68.amp_validator_TagSpec$attrs=[-21];var tagspec_69=new amp$validator$TagSpec("MAIN"),tagspec_70=new amp$validator$TagSpec("A");tagspec_70.amp_validator_TagSpec$attrs=[54,-22,55,56,57,58,-23,-6,59,-24,-25,-26];tagspec_70.specUrl="https://www.ampproject.org/docs/reference/spec#links"; -tagspec_70.htmlFormat=["AMP","AMP4ADS"];var tagspec_71=new amp$validator$TagSpec("EM"),tagspec_72=new amp$validator$TagSpec("STRONG"),tagspec_73=new amp$validator$TagSpec("SMALL"),tagspec_74=new amp$validator$TagSpec("S"),tagspec_75=new amp$validator$TagSpec("CITE"),tagspec_76=new amp$validator$TagSpec("Q");tagspec_76.amp_validator_TagSpec$attrLists=[1];var tagspec_77=new amp$validator$TagSpec("DFN"),tagspec_78=new amp$validator$TagSpec("ABBR"),tagspec_79=new amp$validator$TagSpec("DATA"),tagspec_80= -new amp$validator$TagSpec("TIME");tagspec_80.amp_validator_TagSpec$attrs=[-27];var tagspec_81=new amp$validator$TagSpec("CODE"),tagspec_82=new amp$validator$TagSpec("VAR"),tagspec_83=new amp$validator$TagSpec("SAMP"),tagspec_84=new amp$validator$TagSpec("KBD"),tagspec_85=new amp$validator$TagSpec("SUB"),tagspec_86=new amp$validator$TagSpec("SUP"),tagspec_87=new amp$validator$TagSpec("I"),tagspec_88=new amp$validator$TagSpec("B"),tagspec_89=new amp$validator$TagSpec("U"),tagspec_90=new amp$validator$TagSpec("MARK"), -tagspec_91=new amp$validator$TagSpec("RUBY"),tagspec_92=new amp$validator$TagSpec("RB"),tagspec_93=new amp$validator$TagSpec("RT"),tagspec_94=new amp$validator$TagSpec("RTC"),tagspec_95=new amp$validator$TagSpec("RP"),tagspec_96=new amp$validator$TagSpec("BDI"),tagspec_97=new amp$validator$TagSpec("BDO");tagspec_97.amp_validator_TagSpec$attrs=[-28];var tagspec_98=new amp$validator$TagSpec("SPAN"),tagspec_99=new amp$validator$TagSpec("BR"),tagspec_100=new amp$validator$TagSpec("WBR"),tagspec_101=new amp$validator$TagSpec("INS"); -tagspec_101.amp_validator_TagSpec$attrs=[-27];tagspec_101.amp_validator_TagSpec$attrLists=[1];var tagspec_102=new amp$validator$TagSpec("DEL");tagspec_102.amp_validator_TagSpec$attrs=[-27];tagspec_102.amp_validator_TagSpec$attrLists=[1];var tagspec_103=new amp$validator$TagSpec("IMG");tagspec_103.amp_validator_TagSpec$attrs=[-29,-30,60,61,-24,-31,-32];tagspec_103.specUrl="https://www.ampproject.org/docs/reference/components/amp-img";tagspec_103.mandatoryAncestor="NOSCRIPT";tagspec_103.mandatoryAncestorSuggestedAlternative= -"AMP-IMG";tagspec_103.htmlFormat=["AMP"];var tagspec_104=new amp$validator$TagSpec("IFRAME");tagspec_104.amp_validator_TagSpec$attrs=[-25,62,-33,63,-31,-34,64,65,66,-32];tagspec_104.specUrl="https://www.ampproject.org/docs/reference/components/amp-iframe";tagspec_104.mandatoryAncestor="NOSCRIPT";tagspec_104.mandatoryAncestorSuggestedAlternative="AMP-IFRAME";tagspec_104.htmlFormat=["AMP"];var tagspec_105=new amp$validator$TagSpec("VIDEO");tagspec_105.amp_validator_TagSpec$attrs=[-35,-36,-31,-37,67, --38,-39,-40,68,-32];tagspec_105.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_105.mandatoryAncestor="NOSCRIPT";tagspec_105.mandatoryAncestorSuggestedAlternative="AMP-VIDEO";tagspec_105.htmlFormat=["AMP"];var tagspec_106=new amp$validator$TagSpec("AUDIO");tagspec_106.amp_validator_TagSpec$attrs=[-35,-36,-37,-41,-40,68];tagspec_106.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_106.mandatoryAncestor="NOSCRIPT";tagspec_106.mandatoryAncestorSuggestedAlternative= -"AMP-AUDIO";tagspec_106.htmlFormat=["AMP"];var tagspec_107=new amp$validator$TagSpec("SOURCE");tagspec_107.specName="amp-video > source";tagspec_107.mandatoryParent="AMP-VIDEO";tagspec_107.amp_validator_TagSpec$attrs=[69,-6,-3,-42,-43];tagspec_107.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_107.htmlFormat=["AMP","AMP4ADS"];var tagspec_108=new amp$validator$TagSpec("SOURCE");tagspec_108.specName="amp-audio > source";tagspec_108.mandatoryParent="AMP-AUDIO";tagspec_108.amp_validator_TagSpec$attrs= -[69,-6,-3,-42,-43];tagspec_108.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_108.htmlFormat=["AMP","AMP4ADS"];var tagspec_109=new amp$validator$TagSpec("SOURCE");tagspec_109.specName="audio > source";tagspec_109.mandatoryParent="AUDIO";tagspec_109.amp_validator_TagSpec$attrs=[70,71,-6];tagspec_109.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_109.htmlFormat=["AMP","AMP4ADS"];var tagspec_110=new amp$validator$TagSpec("SOURCE");tagspec_110.specName= -"video > source";tagspec_110.mandatoryParent="VIDEO";tagspec_110.amp_validator_TagSpec$attrs=[70,71,-6];tagspec_110.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_110.htmlFormat=["AMP","AMP4ADS"];var tagspec_111=new amp$validator$TagSpec("SOURCE");tagspec_111.specName="amp-ima-video > source";tagspec_111.mandatoryParent="AMP-IMA-VIDEO";tagspec_111.amp_validator_TagSpec$attrs=[-6,69,-3,-42,-43];tagspec_111.htmlFormat=["AMP","AMP4ADS"];tagspec_111.requiresExtension= -["amp-ima-video"];var tagspec_112=new amp$validator$TagSpec("TRACK");tagspec_112.specName="audio > track";tagspec_112.mandatoryParent="AUDIO";tagspec_112.amp_validator_TagSpec$attrLists=[2];tagspec_112.htmlFormat=["AMP","AMP4ADS"];var tagspec_113=new amp$validator$TagSpec("TRACK");tagspec_113.specName="audio > track[kind=subtitles]";tagspec_113.mandatoryParent="AUDIO";tagspec_113.amp_validator_TagSpec$attrLists=[3];tagspec_113.htmlFormat=["AMP","AMP4ADS"];var tagspec_114=new amp$validator$TagSpec("TRACK"); -tagspec_114.specName="video > track";tagspec_114.mandatoryParent="VIDEO";tagspec_114.amp_validator_TagSpec$attrLists=[2];tagspec_114.htmlFormat=["AMP","AMP4ADS"];var tagspec_115=new amp$validator$TagSpec("TRACK");tagspec_115.specName="video > track[kind=subtitles]";tagspec_115.mandatoryParent="VIDEO";tagspec_115.amp_validator_TagSpec$attrLists=[3];tagspec_115.htmlFormat=["AMP","AMP4ADS"];var tagspec_116=new amp$validator$TagSpec("TRACK");tagspec_116.specName="amp-audio > track";tagspec_116.mandatoryParent= -"AMP-AUDIO";tagspec_116.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_116.amp_validator_TagSpec$attrLists=[2];tagspec_116.htmlFormat=["AMP","AMP4ADS"];var tagspec_117=new amp$validator$TagSpec("TRACK");tagspec_117.specName="amp-audio > track[kind=subtitles]";tagspec_117.mandatoryParent="AMP-AUDIO";tagspec_117.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_117.amp_validator_TagSpec$attrLists=[3];tagspec_117.htmlFormat=["AMP","AMP4ADS"];var tagspec_118=new amp$validator$TagSpec("TRACK");tagspec_118.specName= -"amp-video > track";tagspec_118.mandatoryParent="AMP-VIDEO";tagspec_118.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_118.amp_validator_TagSpec$attrLists=[2];tagspec_118.htmlFormat=["AMP","AMP4ADS"];var tagspec_119=new amp$validator$TagSpec("TRACK");tagspec_119.specName="amp-video > track[kind=subtitles]";tagspec_119.mandatoryParent="AMP-VIDEO";tagspec_119.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_119.amp_validator_TagSpec$attrLists=[3];tagspec_119.htmlFormat=["AMP","AMP4ADS"];var tagspec_120= -new amp$validator$TagSpec("TRACK");tagspec_120.specName="amp-ima-video > track[kind=subtitles]";tagspec_120.mandatoryParent="AMP-IMA-VIDEO";tagspec_120.amp_validator_TagSpec$attrs=[-44,-42,-45];tagspec_120.amp_validator_TagSpec$attrLists=[3];tagspec_120.specUrl="https://www.ampproject.org/docs/reference/components/amp-ima-video";tagspec_120.htmlFormat=["AMP","AMP4ADS"];var tagspec_121=new amp$validator$TagSpec("G");tagspec_121.amp_validator_TagSpec$attrs=[-46,-47];tagspec_121.amp_validator_TagSpec$attrLists= -[10,4,5,7];tagspec_121.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_121.mandatoryAncestor="SVG";tagspec_121.htmlFormat=["AMP","AMP4ADS"];var tagspec_122=new amp$validator$TagSpec("GLYPH");tagspec_122.amp_validator_TagSpec$attrs=[-48,-49,-50,-51,-52,-53,-54,-55,-56];tagspec_122.amp_validator_TagSpec$attrLists=[10,5,7];tagspec_122.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_122.mandatoryAncestor="SVG";tagspec_122.htmlFormat=["AMP","AMP4ADS"];var tagspec_123= -new amp$validator$TagSpec("GLYPHREF");tagspec_123.amp_validator_TagSpec$attrs=[-57,-58,-59,-60,-61,-62];tagspec_123.amp_validator_TagSpec$attrLists=[10,5,7,9];tagspec_123.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_123.mandatoryAncestor="SVG";tagspec_123.htmlFormat=["AMP","AMP4ADS"];var tagspec_124=new amp$validator$TagSpec("IMAGE");tagspec_124.amp_validator_TagSpec$attrs=[-46,-31,-63,-47,-32,-61,-62,-64,-65,72,-66,-67,-68,-69];tagspec_124.amp_validator_TagSpec$attrLists= -[10,4,5,7];tagspec_124.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_124.mandatoryAncestor="SVG";tagspec_124.htmlFormat=["AMP","AMP4ADS"];var tagspec_125=new amp$validator$TagSpec("MARKER");tagspec_125.amp_validator_TagSpec$attrs=[-46,-70,-71,-72,-73,-63,-74,-75,-47,-76];tagspec_125.amp_validator_TagSpec$attrLists=[10,5,7];tagspec_125.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_125.mandatoryAncestor="SVG";tagspec_125.htmlFormat=["AMP","AMP4ADS"];var tagspec_126= -new amp$validator$TagSpec("METADATA");tagspec_126.amp_validator_TagSpec$attrLists=[10,5];tagspec_126.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_126.mandatoryAncestor="SVG";tagspec_126.htmlFormat=["AMP","AMP4ADS"];var tagspec_127=new amp$validator$TagSpec("PATH");tagspec_127.amp_validator_TagSpec$attrs=[-49,-46,-77,-78,-47];tagspec_127.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_127.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_127.mandatoryAncestor= -"SVG";tagspec_127.htmlFormat=["AMP","AMP4ADS"];var tagspec_128=new amp$validator$TagSpec("SOLIDCOLOR");tagspec_128.amp_validator_TagSpec$attrs=[-79,-80];tagspec_128.amp_validator_TagSpec$attrLists=[10,5,7];tagspec_128.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_128.mandatoryAncestor="SVG";tagspec_128.htmlFormat=["AMP","AMP4ADS"];var tagspec_129=new amp$validator$TagSpec("SVG");tagspec_129.amp_validator_TagSpec$attrs=[-81,-82,-46,-31,-63,73,-76,-32,-61,-62,-83];tagspec_129.amp_validator_TagSpec$attrLists= -[4,5,7];tagspec_129.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_129.htmlFormat=["AMP","AMP4ADS"];var tagspec_130=new amp$validator$TagSpec("SWITCH");tagspec_130.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_130.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_130.mandatoryAncestor="SVG";tagspec_130.htmlFormat=["AMP","AMP4ADS"];var tagspec_131=new amp$validator$TagSpec("VIEW");tagspec_131.amp_validator_TagSpec$attrs=[-46,-63,-76,-84,-83];tagspec_131.amp_validator_TagSpec$attrLists= -[10,5];tagspec_131.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_131.mandatoryAncestor="SVG";tagspec_131.htmlFormat=["AMP","AMP4ADS"];var tagspec_132=new amp$validator$TagSpec("CIRCLE");tagspec_132.amp_validator_TagSpec$attrs=[-85,-86,-46,-87,-78,-47];tagspec_132.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_132.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_132.mandatoryAncestor="SVG";tagspec_132.htmlFormat=["AMP","AMP4ADS"];var tagspec_133=new amp$validator$TagSpec("ELLIPSE"); -tagspec_133.amp_validator_TagSpec$attrs=[-85,-86,-46,-88,-89,-78,-47];tagspec_133.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_133.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_133.mandatoryAncestor="SVG";tagspec_133.htmlFormat=["AMP","AMP4ADS"];var tagspec_134=new amp$validator$TagSpec("LINE");tagspec_134.amp_validator_TagSpec$attrs=[-46,-78,-47,-90,-91,-92,-93];tagspec_134.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_134.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; -tagspec_134.mandatoryAncestor="SVG";tagspec_134.htmlFormat=["AMP","AMP4ADS"];var tagspec_135=new amp$validator$TagSpec("POLYGON");tagspec_135.amp_validator_TagSpec$attrs=[-46,-94,-78,-47];tagspec_135.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_135.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_135.mandatoryAncestor="SVG";tagspec_135.htmlFormat=["AMP","AMP4ADS"];var tagspec_136=new amp$validator$TagSpec("POLYLINE");tagspec_136.amp_validator_TagSpec$attrs=[-46,-94,-78,-47]; -tagspec_136.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_136.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_136.mandatoryAncestor="SVG";tagspec_136.htmlFormat=["AMP","AMP4ADS"];var tagspec_137=new amp$validator$TagSpec("RECT");tagspec_137.amp_validator_TagSpec$attrs=[-46,-31,-88,-89,-78,-47,-32,-61,-62];tagspec_137.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_137.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_137.mandatoryAncestor="SVG";tagspec_137.htmlFormat= -["AMP","AMP4ADS"];var tagspec_138=new amp$validator$TagSpec("TEXT");tagspec_138.amp_validator_TagSpec$attrs=[-57,-58,-46,-95,-96,-97,-98,-47,-61,-62];tagspec_138.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_138.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_138.mandatoryAncestor="SVG";tagspec_138.htmlFormat=["AMP","AMP4ADS"];var tagspec_139=new amp$validator$TagSpec("TEXTPATH");tagspec_139.amp_validator_TagSpec$attrs=[-46,-99,-100,-101];tagspec_139.amp_validator_TagSpec$attrLists= -[10,4,5,7,9];tagspec_139.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_139.mandatoryAncestor="SVG";tagspec_139.htmlFormat=["AMP","AMP4ADS"];var tagspec_140=new amp$validator$TagSpec("TREF");tagspec_140.amp_validator_TagSpec$attrs=[-46];tagspec_140.amp_validator_TagSpec$attrLists=[10,4,5,7,9];tagspec_140.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_140.mandatoryAncestor="SVG";tagspec_140.htmlFormat=["AMP","AMP4ADS"];var tagspec_141=new amp$validator$TagSpec("TSPAN"); -tagspec_141.amp_validator_TagSpec$attrs=[-57,-58,-46,-96,-95,-98,-61,-62];tagspec_141.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_141.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_141.mandatoryAncestor="SVG";tagspec_141.htmlFormat=["AMP","AMP4ADS"];var tagspec_142=new amp$validator$TagSpec("CLIPPATH");tagspec_142.amp_validator_TagSpec$attrs=[-102,-46,-47];tagspec_142.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_142.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; -tagspec_142.mandatoryAncestor="SVG";tagspec_142.htmlFormat=["AMP","AMP4ADS"];var tagspec_143=new amp$validator$TagSpec("FILTER");tagspec_143.amp_validator_TagSpec$attrs=[-46,-103,-104,-31,-105,-32,-61,-62];tagspec_143.amp_validator_TagSpec$attrLists=[10,5,7,9];tagspec_143.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_143.mandatoryAncestor="SVG";tagspec_143.htmlFormat=["AMP","AMP4ADS"];var tagspec_144=new amp$validator$TagSpec("HKERN");tagspec_144.amp_validator_TagSpec$attrs= -[-106,-107,-108,-109,-110];tagspec_144.amp_validator_TagSpec$attrLists=[10,5];tagspec_144.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_144.mandatoryAncestor="SVG";tagspec_144.htmlFormat=["AMP","AMP4ADS"];var tagspec_145=new amp$validator$TagSpec("LINEARGRADIENT");tagspec_145.amp_validator_TagSpec$attrs=[-46,-111,-112,-113,-90,-92,-91,-93];tagspec_145.amp_validator_TagSpec$attrLists=[10,5,7,9];tagspec_145.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_145.mandatoryAncestor= -"SVG";tagspec_145.htmlFormat=["AMP","AMP4ADS"];var tagspec_146=new amp$validator$TagSpec("MASK");tagspec_146.amp_validator_TagSpec$attrs=[-46,-31,-114,-115,-32,-61,-62];tagspec_146.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_146.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_146.mandatoryAncestor="SVG";tagspec_146.htmlFormat=["AMP","AMP4ADS"];var tagspec_147=new amp$validator$TagSpec("PATTERN");tagspec_147.amp_validator_TagSpec$attrs=[-46,-31,-116,-117,-118,-63,-76,-32, --61,-62];tagspec_147.amp_validator_TagSpec$attrLists=[10,4,5,7,9];tagspec_147.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_147.mandatoryAncestor="SVG";tagspec_147.htmlFormat=["AMP","AMP4ADS"];var tagspec_148=new amp$validator$TagSpec("RADIALGRADIENT");tagspec_148.amp_validator_TagSpec$attrs=[-85,-86,-46,-119,-120,-121,-111,-112,-87,-113];tagspec_148.amp_validator_TagSpec$attrLists=[10,5,7,9];tagspec_148.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_148.mandatoryAncestor= -"SVG";tagspec_148.htmlFormat=["AMP","AMP4ADS"];var tagspec_149=new amp$validator$TagSpec("STOP");tagspec_149.specName="lineargradient > stop";tagspec_149.amp_validator_TagSpec$attrs=[-122,-123,-124];tagspec_149.amp_validator_TagSpec$attrLists=[10];tagspec_149.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_149.mandatoryAncestor="LINEARGRADIENT";tagspec_149.htmlFormat=["AMP","AMP4ADS"];var tagspec_150=new amp$validator$TagSpec("STOP");tagspec_150.specName="radialgradient > stop"; -tagspec_150.amp_validator_TagSpec$attrs=[-122,-123,-124];tagspec_150.amp_validator_TagSpec$attrLists=[10];tagspec_150.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_150.mandatoryAncestor="RADIALGRADIENT";tagspec_150.htmlFormat=["AMP","AMP4ADS"];var tagspec_151=new amp$validator$TagSpec("VKERN");tagspec_151.amp_validator_TagSpec$attrs=[-106,-107,-108,-109,-110];tagspec_151.amp_validator_TagSpec$attrLists=[10,5];tagspec_151.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; -tagspec_151.mandatoryAncestor="SVG";tagspec_151.htmlFormat=["AMP","AMP4ADS"];var tagspec_152=new amp$validator$TagSpec("DEFS");tagspec_152.amp_validator_TagSpec$attrs=[-46,-47];tagspec_152.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_152.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_152.mandatoryAncestor="SVG";tagspec_152.htmlFormat=["AMP","AMP4ADS"];var tagspec_153=new amp$validator$TagSpec("SYMBOL");tagspec_153.amp_validator_TagSpec$attrs=[-46,-63,-76];tagspec_153.amp_validator_TagSpec$attrLists= -[10,5,7];tagspec_153.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_153.mandatoryAncestor="SVG";tagspec_153.htmlFormat=["AMP","AMP4ADS"];var tagspec_154=new amp$validator$TagSpec("USE");tagspec_154.amp_validator_TagSpec$attrs=[-46,-31,-47,-32,-61,-62];tagspec_154.amp_validator_TagSpec$attrLists=[10,4,5,7,9];tagspec_154.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_154.mandatoryAncestor="SVG";tagspec_154.htmlFormat=["AMP","AMP4ADS"];var tagspec_155=new amp$validator$TagSpec("FECOLORMATRIX"); -tagspec_155.amp_validator_TagSpec$attrs=[-125,-3,-126];tagspec_155.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_155.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_155.mandatoryAncestor="SVG";tagspec_155.htmlFormat=["AMP","AMP4ADS"];var tagspec_156=new amp$validator$TagSpec("FECOMPOSITE");tagspec_156.amp_validator_TagSpec$attrs=[-125,-127,-128,-129,-130,-131,-132];tagspec_156.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_156.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; -tagspec_156.mandatoryAncestor="SVG";tagspec_156.htmlFormat=["AMP","AMP4ADS"];var tagspec_157=new amp$validator$TagSpec("FEFLOOD");tagspec_157.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_157.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_157.mandatoryAncestor="SVG";tagspec_157.htmlFormat=["AMP","AMP4ADS"];var tagspec_158=new amp$validator$TagSpec("FEGAUSSIANBLUR");tagspec_158.amp_validator_TagSpec$attrs=[-133,-125,-134];tagspec_158.amp_validator_TagSpec$attrLists=[10,5, -6,7];tagspec_158.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_158.mandatoryAncestor="SVG";tagspec_158.htmlFormat=["AMP","AMP4ADS"];var tagspec_159=new amp$validator$TagSpec("FEMERGE");tagspec_159.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_159.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_159.mandatoryAncestor="SVG";tagspec_159.htmlFormat=["AMP","AMP4ADS"];var tagspec_160=new amp$validator$TagSpec("FEMERGENODE");tagspec_160.amp_validator_TagSpec$attrs= -[-125];tagspec_160.amp_validator_TagSpec$attrLists=[10,5];tagspec_160.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_160.mandatoryAncestor="SVG";tagspec_160.htmlFormat=["AMP","AMP4ADS"];var tagspec_161=new amp$validator$TagSpec("FEOFFSET");tagspec_161.amp_validator_TagSpec$attrs=[-57,-58,-125];tagspec_161.amp_validator_TagSpec$attrLists=[10,5,6,7];tagspec_161.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_161.mandatoryAncestor="SVG";tagspec_161.htmlFormat= -["AMP","AMP4ADS"];var tagspec_162=new amp$validator$TagSpec("FOREIGNOBJECT");tagspec_162.amp_validator_TagSpec$attrs=[-46,-31,-47,-32,-61,-62];tagspec_162.amp_validator_TagSpec$attrLists=[10,4,5,7];tagspec_162.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_162.mandatoryAncestor="SVG";tagspec_162.htmlFormat=["AMP","AMP4ADS"];var tagspec_163=new amp$validator$TagSpec("DESC");tagspec_163.amp_validator_TagSpec$attrLists=[10,5];tagspec_163.specUrl="https://www.ampproject.org/docs/reference/spec#svg"; -tagspec_163.mandatoryAncestor="SVG";tagspec_163.htmlFormat=["AMP","AMP4ADS"];var tagspec_164=new amp$validator$TagSpec("TITLE");tagspec_164.specName="svg title";tagspec_164.amp_validator_TagSpec$attrLists=[10,5];tagspec_164.specUrl="https://www.ampproject.org/docs/reference/spec#svg";tagspec_164.mandatoryAncestor="SVG";tagspec_164.htmlFormat=["AMP","AMP4ADS"];var tagspec_165=new amp$validator$TagSpec("TABLE");tagspec_165.amp_validator_TagSpec$attrs=[-135,-21,74,-136,-137,-138,-32];var tagspec_166= -new amp$validator$TagSpec("CAPTION"),tagspec_167=new amp$validator$TagSpec("COLGROUP");tagspec_167.amp_validator_TagSpec$attrs=[-139];var tagspec_168=new amp$validator$TagSpec("COL");tagspec_168.amp_validator_TagSpec$attrs=[-139];var tagspec_169=new amp$validator$TagSpec("TBODY"),tagspec_170=new amp$validator$TagSpec("THEAD"),tagspec_171=new amp$validator$TagSpec("TFOOT"),tagspec_172=new amp$validator$TagSpec("TR");tagspec_172.amp_validator_TagSpec$attrs=[-21,-136,-31,-140];var tagspec_173=new amp$validator$TagSpec("TD"); -tagspec_173.amp_validator_TagSpec$attrs=[-141,-142,-143,-21,-136,-31,-140,-32];var tagspec_174=new amp$validator$TagSpec("TH");tagspec_174.amp_validator_TagSpec$attrs=[-144,-141,-142,-143,-145,-146,-21,-136,-31,-140,-32];var tagspec_175=new amp$validator$TagSpec("FORM");tagspec_175.specName="FORM [method=GET]";tagspec_175.amp_validator_TagSpec$attrs=[-147,-148,75,76,-149,77,-150,78,-25,-151,79,80];tagspec_175.disallowedAncestor=["AMP-APP-BANNER"];tagspec_175.htmlFormat=["AMP","AMP4ADS"];tagspec_175.requiresExtension= -["amp-form"];var tagspec_176=new amp$validator$TagSpec("FORM");tagspec_176.specName="FORM [method=POST]";tagspec_176.amp_validator_TagSpec$attrs=[-147,-148,81,-149,82,-150,83,-25,-151,79,80];tagspec_176.disallowedAncestor=["AMP-APP-BANNER"];tagspec_176.htmlFormat=["AMP","AMP4ADS"];tagspec_176.requiresExtension=["amp-form"];var tagspec_177=new amp$validator$TagSpec("DIV");tagspec_177.specName="FORM > DIV [submitting]";tagspec_177.mandatoryParent="FORM";tagspec_177.amp_validator_TagSpec$attrs=[-21, -84];var tagspec_178=new amp$validator$TagSpec("DIV");tagspec_178.specName="FORM > DIV [submit-success]";tagspec_178.mandatoryParent="FORM";tagspec_178.amp_validator_TagSpec$attrs=[-21,85];var tagspec_179=new amp$validator$TagSpec("DIV");tagspec_179.specName="FORM > DIV [submit-success][template]";tagspec_179.mandatoryParent="FORM";tagspec_179.amp_validator_TagSpec$attrs=[-21,85,86];var tagspec_180=new amp$validator$TagSpec("DIV");tagspec_180.specName="FORM > DIV [submit-error]";tagspec_180.mandatoryParent= -"FORM";tagspec_180.amp_validator_TagSpec$attrs=[-21,87];var tagspec_181=new amp$validator$TagSpec("LABEL");tagspec_181.amp_validator_TagSpec$attrs=[-152];tagspec_181.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_182=new amp$validator$TagSpec("INPUT");tagspec_182.amp_validator_TagSpec$attrs=[-147,-153,-149,-154,-155,-156,-31,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,88,-173,-32,-174,-175,-176,-177,-178,-179,-180,-181,-182, --183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-43,-194,-195];tagspec_182.amp_validator_TagSpec$attrLists=[11];tagspec_182.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_183=new amp$validator$TagSpec("BUTTON");tagspec_183.amp_validator_TagSpec$attrs=[89,56,57,-3,-173,-178,-43,-194];tagspec_183.amp_validator_TagSpec$attrLists=[11];var tagspec_184=new amp$validator$TagSpec("BUTTON");tagspec_184.specName="amp-app-banner button[open-button]";tagspec_184.amp_validator_TagSpec$attrs= -[90,56,57,-3,-173];tagspec_184.amp_validator_TagSpec$attrLists=[11];tagspec_184.mandatoryAncestor="AMP-APP-BANNER";tagspec_184.htmlFormat=["AMP","AMP4ADS"];tagspec_184.satisfies=[-196];var tagspec_185=new amp$validator$TagSpec("SELECT");tagspec_185.amp_validator_TagSpec$attrs=[-154,-156,-163,-167,-169,-197,-178,-185,-189,-191];tagspec_185.amp_validator_TagSpec$attrLists=[11];tagspec_185.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_186=new amp$validator$TagSpec("DATALIST"); -tagspec_186.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_187=new amp$validator$TagSpec("OPTGROUP");tagspec_187.mandatoryParent="SELECT";tagspec_187.amp_validator_TagSpec$attrs=[-156,-198,-178,-44];tagspec_187.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_188=new amp$validator$TagSpec("OPTION");tagspec_188.amp_validator_TagSpec$attrs=[-156,-198,-199,-173,-178,-44,-200,-194];tagspec_188.specUrl="https://www.ampproject.org/docs/reference/components/amp-form"; -var tagspec_189=new amp$validator$TagSpec("TEXTAREA");tagspec_189.amp_validator_TagSpec$attrs=[-149,-154,-201,-156,-160,-162,-165,-166,-167,-202,-168,-203,-204,-170,-205,-176,-197,-206,-178,-182,-184,-187,-188,-189,-207,-190,-208,-209,-192,-210];tagspec_189.amp_validator_TagSpec$attrLists=[11];tagspec_189.specUrl="https://www.ampproject.org/docs/reference/components/amp-form";var tagspec_190=new amp$validator$TagSpec("OUTPUT");tagspec_190.amp_validator_TagSpec$attrs=[-152,-211];tagspec_190.amp_validator_TagSpec$attrLists= -[11];var tagspec_191=new amp$validator$TagSpec("PROGRESS");tagspec_191.amp_validator_TagSpec$attrs=[-159,-173];var tagspec_192=new amp$validator$TagSpec("METER");tagspec_192.amp_validator_TagSpec$attrs=[-212,-213,-159,-161,-214,-173];var tagspec_193=new amp$validator$TagSpec("FIELDSET");tagspec_193.amp_validator_TagSpec$attrs=[-156,-178];tagspec_193.amp_validator_TagSpec$attrLists=[11];var tagspec_194=new amp$validator$TagSpec("LEGEND"),cdataspec_8=new amp$validator$CdataSpec;cdataspec_8.blacklistedCdataRegex= -[new amp$validator$BlackListedCDataRegex(".","contents")];cdataspec_8.combinedBlacklistedCdataRegex=-215;var tagspec_195=new amp$validator$TagSpec("SCRIPT");tagspec_195.specName="amphtml engine v0.js script";tagspec_195.amp_validator_TagSpec$mandatory=!0;tagspec_195.unique=!0;tagspec_195.mandatoryParent="HEAD";tagspec_195.amp_validator_TagSpec$attrs=[91,-12,92,93];tagspec_195.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_195.amp_validator_TagSpec$cdata=cdataspec_8; -tagspec_195.htmlFormat=["AMP"];var tagspec_196=new amp$validator$TagSpec("SCRIPT");tagspec_196.specName="amp4ads engine amp4ads-v0.js script";tagspec_196.amp_validator_TagSpec$mandatory=!0;tagspec_196.unique=!0;tagspec_196.mandatoryParent="HEAD";tagspec_196.amp_validator_TagSpec$attrs=[91,-12,94,93];tagspec_196.specUrl="https://www.ampproject.org/docs/reference/spec#required-markup";tagspec_196.amp_validator_TagSpec$cdata=cdataspec_8;tagspec_196.htmlFormat=["AMP4ADS"];var cdataspec_9=new amp$validator$CdataSpec; -cdataspec_9.blacklistedCdataRegex=[blacklistedcdataregex_0];cdataspec_9.combinedBlacklistedCdataRegex=-216;var tagspec_197=new amp$validator$TagSpec("SCRIPT");tagspec_197.specName="script type=application/ld+json";tagspec_197.amp_validator_TagSpec$attrs=[-12,95];tagspec_197.amp_validator_TagSpec$cdata=cdataspec_9;var tagspec_198=new amp$validator$TagSpec("SCRIPT");tagspec_198.specName="script id=amp-rtc";tagspec_198.unique=!0;tagspec_198.mandatoryParent="HEAD";tagspec_198.amp_validator_TagSpec$attrs= -[-12,96,97];tagspec_198.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_198.htmlFormat=["AMP"];var tagspec_199=new amp$validator$TagSpec("SCRIPT");tagspec_199.specName="amp-ima-video > script[type=application/json]";tagspec_199.mandatoryParent="AMP-IMA-VIDEO";tagspec_199.amp_validator_TagSpec$attrs=[98];tagspec_199.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_199.htmlFormat=["AMP"];var tagspec_200=new amp$validator$TagSpec("NOSCRIPT");tagspec_200.specName="noscript enclosure for boilerplate";tagspec_200.amp_validator_TagSpec$mandatory= -!0;tagspec_200.unique=!0;tagspec_200.mandatoryParent="HEAD";tagspec_200.specUrl="https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md";tagspec_200.htmlFormat=["AMP"];var tagspec_201=new amp$validator$TagSpec("NOSCRIPT");tagspec_201.disallowedAncestor=["NOSCRIPT"];tagspec_201.mandatoryAncestor="BODY";tagspec_201.htmlFormat=["AMP"];var tagspec_202=new amp$validator$TagSpec("ACRONYM");tagspec_202.htmlFormat=["AMP"];var tagspec_203=new amp$validator$TagSpec("BIG");tagspec_203.htmlFormat= -["AMP"];var tagspec_204=new amp$validator$TagSpec("CENTER");tagspec_204.htmlFormat=["AMP"];var tagspec_205=new amp$validator$TagSpec("DIR");tagspec_205.htmlFormat=["AMP"];var tagspec_206=new amp$validator$TagSpec("HGROUP");tagspec_206.htmlFormat=["AMP"];var tagspec_207=new amp$validator$TagSpec("LISTING");tagspec_207.htmlFormat=["AMP"];var tagspec_208=new amp$validator$TagSpec("MULTICOL");tagspec_208.htmlFormat=["AMP"];var tagspec_209=new amp$validator$TagSpec("NEXTID");tagspec_209.htmlFormat=["AMP"]; -var tagspec_210=new amp$validator$TagSpec("NOBR");tagspec_210.htmlFormat=["AMP"];var tagspec_211=new amp$validator$TagSpec("SPACER");tagspec_211.htmlFormat=["AMP"];var tagspec_212=new amp$validator$TagSpec("STRIKE");tagspec_212.htmlFormat=["AMP"];var tagspec_213=new amp$validator$TagSpec("TT");tagspec_213.htmlFormat=["AMP"];var tagspec_214=new amp$validator$TagSpec("XMP");tagspec_214.htmlFormat=["AMP"];var tagspec_215=new amp$validator$TagSpec("SLOT");tagspec_215.amp_validator_TagSpec$attrs=[-25]; -tagspec_215.htmlFormat=["AMP"];var tagspec_216=new amp$validator$TagSpec("O:P");tagspec_216.htmlFormat=["AMP"];var amplayout_0=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM INTRINSIC NODISPLAY RESPONSIVE".split(" ")),tagspec_217=new amp$validator$TagSpec("AMP-IMG");tagspec_217.amp_validator_TagSpec$attrs=[-29,-217,-165,-218,-219,-42,-220];tagspec_217.amp_validator_TagSpec$attrLists=[13,12];tagspec_217.specUrl="https://www.ampproject.org/docs/reference/components/amp-img";tagspec_217.ampLayout= -amplayout_0;tagspec_217.htmlFormat=["AMP","AMP4ADS"];var tagspec_218=new amp$validator$TagSpec("AMP-LAYOUT");tagspec_218.amp_validator_TagSpec$attrLists=[13];tagspec_218.specUrl="https://www.ampproject.org/docs/reference/components/amp-layout";tagspec_218.ampLayout=amplayout_0;tagspec_218.htmlFormat=["AMP","AMP4ADS"];var amplayout_1=new amp$validator$AmpLayout(["FIXED","NODISPLAY"]);amplayout_1.definesDefaultWidth=!0;amplayout_1.definesDefaultHeight=!0;var tagspec_219=new amp$validator$TagSpec("AMP-PIXEL"); -tagspec_219.amp_validator_TagSpec$attrs=[-221,99,100];tagspec_219.amp_validator_TagSpec$attrLists=[13];tagspec_219.specUrl="https://www.ampproject.org/docs/reference/components/amp-pixel";tagspec_219.ampLayout=amplayout_1;tagspec_219.htmlFormat=["AMP","AMP4ADS"];var extensionspec_0=new amp$validator$ExtensionSpec;extensionspec_0.name="amp-3q-player";extensionspec_0.allowedVersions=["0.1","latest"];var tagspec_220=new amp$validator$TagSpec("SCRIPT");tagspec_220.amp_validator_TagSpec$attrLists=[15]; -tagspec_220.htmlFormat=["AMP"];tagspec_220.extensionSpec=extensionspec_0;var amplayout_2=new amp$validator$AmpLayout(["FILL","FIXED","FLEX_ITEM","RESPONSIVE"]),tagspec_221=new amp$validator$TagSpec("AMP-3Q-PLAYER");tagspec_221.amp_validator_TagSpec$attrs=[101,102];tagspec_221.amp_validator_TagSpec$attrLists=[13];tagspec_221.ampLayout=amplayout_2;tagspec_221.htmlFormat=["AMP"];tagspec_221.requiresExtension=["amp-3q-player"];var extensionspec_1=new amp$validator$ExtensionSpec;extensionspec_1.name="amp-access-laterpay"; -extensionspec_1.allowedVersions=["0.1","latest"];extensionspec_1.requiresUsage="NONE";var tagspec_222=new amp$validator$TagSpec("SCRIPT");tagspec_222.amp_validator_TagSpec$attrLists=[15];tagspec_222.htmlFormat=["AMP"];tagspec_222.extensionSpec=extensionspec_1;tagspec_222.requiresExtension=["amp-access"];var extensionspec_2=new amp$validator$ExtensionSpec;extensionspec_2.name="amp-access";extensionspec_2.allowedVersions=["0.1","latest"];extensionspec_2.deprecatedAllowDuplicates=!0;extensionspec_2.requiresUsage= -"GRANDFATHERED";var tagspec_223=new amp$validator$TagSpec("SCRIPT");tagspec_223.amp_validator_TagSpec$attrLists=[15];tagspec_223.htmlFormat=["AMP"];tagspec_223.extensionSpec=extensionspec_2;var tagspec_224=new amp$validator$TagSpec("SCRIPT");tagspec_224.specName="amp-access extension .json script";tagspec_224.unique=!0;tagspec_224.mandatoryParent="HEAD";tagspec_224.amp_validator_TagSpec$attrs=[103,-12,96];tagspec_224.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_224.htmlFormat=["AMP"];tagspec_224.requiresExtension= -["amp-access","amp-analytics"];var extensionspec_3=new amp$validator$ExtensionSpec;extensionspec_3.name="amp-accordion";extensionspec_3.allowedVersions=["0.1","latest"];extensionspec_3.deprecatedAllowDuplicates=!0;extensionspec_3.requiresUsage="GRANDFATHERED";var tagspec_225=new amp$validator$TagSpec("SCRIPT");tagspec_225.amp_validator_TagSpec$attrLists=[15];tagspec_225.extensionSpec=extensionspec_3;var amplayout_3=new amp$validator$AmpLayout(["CONTAINER"]),childtagspec_0=new amp$validator$ChildTagSpec; -childtagspec_0.childTagNameOneof=["SECTION"];var tagspec_226=new amp$validator$TagSpec("AMP-ACCORDION");tagspec_226.amp_validator_TagSpec$attrs=[104];tagspec_226.specUrl="https://www.ampproject.org/docs/reference/components/amp-accordion";tagspec_226.ampLayout=amplayout_3;tagspec_226.childTags=childtagspec_0;tagspec_226.requiresExtension=["amp-accordion"];var childtagspec_1=new amp$validator$ChildTagSpec;childtagspec_1.mandatoryNumChildTags=2;childtagspec_1.firstChildTagNameOneof="H1 H2 H3 H4 H5 H6 HEADER".split(" "); -var tagspec_227=new amp$validator$TagSpec("SECTION");tagspec_227.specName="amp-accordion > section";tagspec_227.mandatoryParent="AMP-ACCORDION";tagspec_227.amp_validator_TagSpec$attrs=[105];tagspec_227.childTags=childtagspec_1;var extensionspec_4=new amp$validator$ExtensionSpec;extensionspec_4.name="amp-ad-exit";extensionspec_4.allowedVersions=["0.1","latest"];var tagspec_228=new amp$validator$TagSpec("SCRIPT");tagspec_228.amp_validator_TagSpec$attrLists=[15];tagspec_228.htmlFormat=["AMP4ADS"];tagspec_228.extensionSpec= -extensionspec_4;var tagspec_229=new amp$validator$TagSpec("AMP-AD-EXIT");tagspec_229.amp_validator_TagSpec$attrs=[106];tagspec_229.amp_validator_TagSpec$attrLists=[13];tagspec_229.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad-exit";tagspec_229.htmlFormat=["AMP4ADS"];tagspec_229.requires=[-222];tagspec_229.requiresExtension=["amp-ad-exit"];var tagspec_230=new amp$validator$TagSpec("SCRIPT");tagspec_230.specName="amp-ad-exit configuration JSON";tagspec_230.mandatoryParent="AMP-AD-EXIT"; -tagspec_230.amp_validator_TagSpec$attrs=[-12,107];tagspec_230.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad-exit";tagspec_230.htmlFormat=["AMP4ADS"];tagspec_230.satisfies=[-222];tagspec_230.requiresExtension=["amp-ad-exit"];var extensionspec_5=new amp$validator$ExtensionSpec;extensionspec_5.name="amp-ad";extensionspec_5.allowedVersions=["0.1","latest"];extensionspec_5.deprecatedAllowDuplicates=!0;extensionspec_5.requiresUsage="GRANDFATHERED";var tagspec_231=new amp$validator$TagSpec("SCRIPT"); -tagspec_231.specName="amp-ad extension .js script";tagspec_231.amp_validator_TagSpec$attrLists=[15];tagspec_231.htmlFormat=["AMP"];tagspec_231.extensionSpec=extensionspec_5;var amplayout_4=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM FLUID INTRINSIC NODISPLAY RESPONSIVE".split(" ")),tagspec_232=new amp$validator$TagSpec("AMP-AD");tagspec_232.amp_validator_TagSpec$attrs=[-29,-223,-224,69,71];tagspec_232.amp_validator_TagSpec$attrLists=[13];tagspec_232.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad"; -tagspec_232.ampLayout=amplayout_4;tagspec_232.disallowedAncestor=["AMP-APP-BANNER"];tagspec_232.htmlFormat=["AMP"];tagspec_232.alsoRequiresTagWarning=[231];tagspec_232.requiresExtension=["amp-ad"];var tagspec_233=new amp$validator$TagSpec("AMP-AD");tagspec_233.specName="amp-ad with data-multi-size attribute";tagspec_233.amp_validator_TagSpec$attrs=[-29,108,-223,-224,69,71];tagspec_233.amp_validator_TagSpec$attrLists=[13];tagspec_233.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad"; -tagspec_233.ampLayout=amplayout_4;tagspec_233.disallowedAncestor=["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"];tagspec_233.htmlFormat=["AMP"];tagspec_233.alsoRequiresTagWarning=[231];tagspec_233.requiresExtension=["amp-ad"];var tagspec_234=new amp$validator$TagSpec("AMP-AD");tagspec_234.specName="amp-ad with data-enable-refresh attribute";tagspec_234.amp_validator_TagSpec$attrs=[-29,109,-223,69,71];tagspec_234.amp_validator_TagSpec$attrLists=[13];tagspec_234.specUrl= -"https://www.ampproject.org/docs/reference/components/amp-ad";tagspec_234.ampLayout=amplayout_4;tagspec_234.disallowedAncestor=["AMP-APP-BANNER","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX"];tagspec_234.htmlFormat=["AMP"];tagspec_234.alsoRequiresTagWarning=[231];tagspec_234.requiresExtension=["amp-ad"];var tagspec_235=new amp$validator$TagSpec("AMP-EMBED");tagspec_235.amp_validator_TagSpec$attrs=[-29,-223,-224,69,71];tagspec_235.amp_validator_TagSpec$attrLists=[13];tagspec_235.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad"; -tagspec_235.ampLayout=amplayout_4;tagspec_235.disallowedAncestor=["AMP-APP-BANNER"];tagspec_235.htmlFormat=["AMP"];tagspec_235.alsoRequiresTagWarning=[231];tagspec_235.requiresExtension=["amp-ad"];var tagspec_236=new amp$validator$TagSpec("AMP-EMBED");tagspec_236.specName="amp-embed with data-multi-size attribute";tagspec_236.amp_validator_TagSpec$attrs=[-29,108,-223,-224,69,71];tagspec_236.amp_validator_TagSpec$attrLists=[13];tagspec_236.specUrl="https://www.ampproject.org/docs/reference/components/amp-ad"; -tagspec_236.ampLayout=amplayout_4;tagspec_236.disallowedAncestor=["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"];tagspec_236.htmlFormat=["AMP"];tagspec_236.alsoRequiresTagWarning=[231];tagspec_236.requiresExtension=["amp-ad"];var extensionspec_6=new amp$validator$ExtensionSpec;extensionspec_6.name="amp-analytics";extensionspec_6.allowedVersions=["0.1","latest"];extensionspec_6.deprecatedAllowDuplicates=!0;extensionspec_6.requiresUsage="GRANDFATHERED";var tagspec_237= -new amp$validator$TagSpec("SCRIPT");tagspec_237.amp_validator_TagSpec$attrLists=[15];tagspec_237.htmlFormat=["AMP","AMP4ADS"];tagspec_237.extensionSpec=extensionspec_6;var tagspec_238=new amp$validator$TagSpec("SCRIPT");tagspec_238.specName="amp-analytics extension .json script";tagspec_238.mandatoryParent="AMP-ANALYTICS";tagspec_238.amp_validator_TagSpec$attrs=[-12,98];tagspec_238.specUrl="https://www.ampproject.org/docs/reference/components/amp-analytics";tagspec_238.amp_validator_TagSpec$cdata= -cdataspec_9;tagspec_238.htmlFormat=["AMP","AMP4ADS"];tagspec_238.requiresExtension=["amp-analytics"];var tagspec_239=new amp$validator$TagSpec("AMP-ANALYTICS");tagspec_239.amp_validator_TagSpec$attrs=[-3,110];tagspec_239.specUrl="https://www.ampproject.org/docs/reference/components/amp-analytics";tagspec_239.htmlFormat=["AMP","AMP4ADS"];tagspec_239.requiresExtension=["amp-analytics"];var extensionspec_7=new amp$validator$ExtensionSpec;extensionspec_7.name="amp-anim";extensionspec_7.allowedVersions= -["0.1","latest"];extensionspec_7.deprecatedAllowDuplicates=!0;extensionspec_7.requiresUsage="GRANDFATHERED";var tagspec_240=new amp$validator$TagSpec("SCRIPT");tagspec_240.amp_validator_TagSpec$attrLists=[15];tagspec_240.htmlFormat=["AMP","AMP4ADS"];tagspec_240.extensionSpec=extensionspec_7;var tagspec_241=new amp$validator$TagSpec("AMP-ANIM");tagspec_241.amp_validator_TagSpec$attrs=[-29,-217,-36];tagspec_241.amp_validator_TagSpec$attrLists=[13,12];tagspec_241.specUrl="https://www.ampproject.org/docs/reference/components/amp-anim"; -tagspec_241.ampLayout=amplayout_0;tagspec_241.htmlFormat=["AMP","AMP4ADS"];tagspec_241.requiresExtension=["amp-anim"];var extensionspec_8=new amp$validator$ExtensionSpec;extensionspec_8.name="amp-animation";extensionspec_8.allowedVersions=["0.1","latest"];var tagspec_242=new amp$validator$TagSpec("SCRIPT");tagspec_242.amp_validator_TagSpec$attrLists=[15];tagspec_242.htmlFormat=["AMP","AMP4ADS"];tagspec_242.extensionSpec=extensionspec_8;var tagspec_243=new amp$validator$TagSpec("SCRIPT");tagspec_243.specName= -"amp-animation extension .json script";tagspec_243.mandatoryParent="AMP-ANIMATION";tagspec_243.amp_validator_TagSpec$attrs=[-12,98];tagspec_243.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_243.satisfies=[-225];tagspec_243.requiresExtension=["amp-animation"];var amplayout_5=new amp$validator$AmpLayout(["NODISPLAY"]),childtagspec_2=new amp$validator$ChildTagSpec;childtagspec_2.mandatoryNumChildTags=1;childtagspec_2.childTagNameOneof=["SCRIPT"];var tagspec_244=new amp$validator$TagSpec("AMP-ANIMATION"); -tagspec_244.amp_validator_TagSpec$attrs=[111];tagspec_244.amp_validator_TagSpec$attrLists=[13];tagspec_244.ampLayout=amplayout_5;tagspec_244.childTags=childtagspec_2;tagspec_244.htmlFormat=["AMP","AMP4ADS"];tagspec_244.requires=[-225];tagspec_244.requiresExtension=["amp-animation"];var extensionspec_9=new amp$validator$ExtensionSpec;extensionspec_9.name="amp-apester-media";extensionspec_9.allowedVersions=["0.1","latest"];extensionspec_9.deprecatedAllowDuplicates=!0;extensionspec_9.requiresUsage="GRANDFATHERED"; -var tagspec_245=new amp$validator$TagSpec("SCRIPT");tagspec_245.amp_validator_TagSpec$attrLists=[15];tagspec_245.htmlFormat=["AMP"];tagspec_245.extensionSpec=extensionspec_9;var amplayout_6=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),tagspec_246=new amp$validator$TagSpec("AMP-APESTER-MEDIA");tagspec_246.amp_validator_TagSpec$attrs=[112,113];tagspec_246.amp_validator_TagSpec$attrLists=[13];tagspec_246.specUrl="https://www.ampproject.org/docs/reference/components/amp-apester-media"; -tagspec_246.ampLayout=amplayout_6;tagspec_246.htmlFormat=["AMP"];tagspec_246.requiresExtension=["amp-apester-media"];var extensionspec_10=new amp$validator$ExtensionSpec;extensionspec_10.name="amp-app-banner";extensionspec_10.allowedVersions=["0.1","latest"];extensionspec_10.deprecatedAllowDuplicates=!0;var tagspec_247=new amp$validator$TagSpec("SCRIPT");tagspec_247.amp_validator_TagSpec$attrLists=[15];tagspec_247.htmlFormat=["AMP"];tagspec_247.extensionSpec=extensionspec_10;var tagspec_248=new amp$validator$TagSpec("AMP-APP-BANNER"); -tagspec_248.unique=!0;tagspec_248.mandatoryParent="BODY";tagspec_248.amp_validator_TagSpec$attrs=[106];tagspec_248.amp_validator_TagSpec$attrLists=[13];tagspec_248.specUrl="https://www.ampproject.org/docs/reference/components/amp-app-banner";tagspec_248.ampLayout=amplayout_5;tagspec_248.htmlFormat=["AMP"];tagspec_248.requires=[-4,-196];tagspec_248.requiresExtension=["amp-app-banner"];var extensionspec_11=new amp$validator$ExtensionSpec;extensionspec_11.name="amp-audio";extensionspec_11.allowedVersions= -["0.1","latest"];extensionspec_11.deprecatedAllowDuplicates=!0;extensionspec_11.requiresUsage="GRANDFATHERED";var tagspec_249=new amp$validator$TagSpec("SCRIPT");tagspec_249.amp_validator_TagSpec$attrLists=[15];tagspec_249.extensionSpec=extensionspec_11;var amplayout_7=new amp$validator$AmpLayout(["FIXED","FIXED_HEIGHT","NODISPLAY"]);amplayout_7.definesDefaultWidth=!0;amplayout_7.definesDefaultHeight=!0;var tagspec_250=new amp$validator$TagSpec("AMP-AUDIO");tagspec_250.amp_validator_TagSpec$attrs= -[101];tagspec_250.amp_validator_TagSpec$attrLists=[17,13];tagspec_250.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_250.ampLayout=amplayout_7;tagspec_250.disallowedAncestor=["AMP-STORY"];tagspec_250.htmlFormat=["AMP"];tagspec_250.requiresExtension=["amp-audio"];var tagspec_251=new amp$validator$TagSpec("AMP-AUDIO");tagspec_251.specName="amp-story >> amp-audio";tagspec_251.amp_validator_TagSpec$attrs=[114];tagspec_251.amp_validator_TagSpec$attrLists=[17,13];tagspec_251.specUrl= -"https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_251.ampLayout=amplayout_7;tagspec_251.mandatoryAncestor="AMP-STORY";tagspec_251.htmlFormat=["AMP"];tagspec_251.requiresExtension=["amp-audio"];var tagspec_252=new amp$validator$TagSpec("AMP-AUDIO");tagspec_252.specName="amp-audio (A4A)";tagspec_252.amp_validator_TagSpec$attrLists=[17,13];tagspec_252.specUrl="https://www.ampproject.org/docs/reference/components/amp-audio";tagspec_252.ampLayout=amplayout_7;tagspec_252.htmlFormat= -["AMP4ADS"];tagspec_252.requiresExtension=["amp-audio"];var extensionspec_12=new amp$validator$ExtensionSpec;extensionspec_12.name="amp-auto-ads";extensionspec_12.allowedVersions=["0.1","latest"];var tagspec_253=new amp$validator$TagSpec("SCRIPT");tagspec_253.amp_validator_TagSpec$attrLists=[15];tagspec_253.htmlFormat=["AMP"];tagspec_253.extensionSpec=extensionspec_12;var tagspec_254=new amp$validator$TagSpec("AMP-AUTO-ADS");tagspec_254.mandatoryParent="BODY";tagspec_254.amp_validator_TagSpec$attrs= -[71];tagspec_254.amp_validator_TagSpec$attrLists=[13];tagspec_254.specUrl="https://www.ampproject.org/docs/reference/components/amp-auto-ads";tagspec_254.htmlFormat=["AMP"];tagspec_254.requiresExtension=["amp-auto-ads"];var extensionspec_13=new amp$validator$ExtensionSpec;extensionspec_13.name="amp-bind";extensionspec_13.allowedVersions=["0.1","latest"];extensionspec_13.requiresUsage="NONE";var tagspec_255=new amp$validator$TagSpec("SCRIPT");tagspec_255.amp_validator_TagSpec$attrLists=[15];tagspec_255.htmlFormat= -["AMP"];tagspec_255.extensionSpec=extensionspec_13;var tagspec_256=new amp$validator$TagSpec("SCRIPT");tagspec_256.specName="amp-bind extension .json script";tagspec_256.mandatoryParent="AMP-STATE";tagspec_256.amp_validator_TagSpec$attrs=[-12,98];tagspec_256.specUrl="https://www.ampproject.org/docs/reference/components/amp-bind";tagspec_256.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_256.htmlFormat=["AMP"];tagspec_256.requiresExtension=["amp-bind"];var childtagspec_3=new amp$validator$ChildTagSpec; -childtagspec_3.firstChildTagNameOneof=["SCRIPT"];var tagspec_257=new amp$validator$TagSpec("AMP-STATE");tagspec_257.specName="amp-state";tagspec_257.amp_validator_TagSpec$attrs=[115,106,69,-42];tagspec_257.specUrl="https://www.ampproject.org/docs/reference/components/amp-bind";tagspec_257.childTags=childtagspec_3;tagspec_257.htmlFormat=["AMP"];tagspec_257.requiresExtension=["amp-bind"];var tagspec_258=new amp$validator$TagSpec("AMP-BIND-MACRO");tagspec_258.amp_validator_TagSpec$attrs=[-226,116,106]; -tagspec_258.specUrl="https://www.ampproject.org/docs/reference/components/amp-bind";tagspec_258.htmlFormat=["AMP"];tagspec_258.requiresExtension=["amp-bind"];var extensionspec_14=new amp$validator$ExtensionSpec;extensionspec_14.name="amp-brid-player";extensionspec_14.allowedVersions=["0.1","latest"];extensionspec_14.deprecatedAllowDuplicates=!0;extensionspec_14.requiresUsage="GRANDFATHERED";var tagspec_259=new amp$validator$TagSpec("SCRIPT");tagspec_259.amp_validator_TagSpec$attrLists=[15];tagspec_259.htmlFormat= -["AMP"];tagspec_259.extensionSpec=extensionspec_14;var tagspec_260=new amp$validator$TagSpec("AMP-BRID-PLAYER");tagspec_260.amp_validator_TagSpec$attrs=[-35,117,118,119,120,121];tagspec_260.amp_validator_TagSpec$attrLists=[13];tagspec_260.specUrl="https://www.ampproject.org/docs/reference/components/amp-brid-player";tagspec_260.ampLayout=amplayout_6;tagspec_260.htmlFormat=["AMP"];tagspec_260.requiresExtension=["amp-brid-player"];var extensionspec_15=new amp$validator$ExtensionSpec;extensionspec_15.name= -"amp-brightcove";extensionspec_15.allowedVersions=["0.1","latest"];extensionspec_15.deprecatedAllowDuplicates=!0;extensionspec_15.requiresUsage="GRANDFATHERED";var tagspec_261=new amp$validator$TagSpec("SCRIPT");tagspec_261.amp_validator_TagSpec$attrLists=[15];tagspec_261.htmlFormat=["AMP"];tagspec_261.extensionSpec=extensionspec_15;var tagspec_262=new amp$validator$TagSpec("AMP-BRIGHTCOVE");tagspec_262.amp_validator_TagSpec$attrs=[122,-227,-228,-229,-230,-231,-232];tagspec_262.amp_validator_TagSpec$attrLists= -[13];tagspec_262.specUrl="https://www.ampproject.org/docs/reference/components/amp-brightcove";tagspec_262.ampLayout=amplayout_6;tagspec_262.htmlFormat=["AMP"];tagspec_262.requiresExtension=["amp-brightcove"];var extensionspec_16=new amp$validator$ExtensionSpec;extensionspec_16.name="amp-call-tracking";extensionspec_16.allowedVersions=["0.1","latest"];extensionspec_16.requiresUsage="GRANDFATHERED";var tagspec_263=new amp$validator$TagSpec("SCRIPT");tagspec_263.amp_validator_TagSpec$attrLists=[15]; -tagspec_263.htmlFormat=["AMP"];tagspec_263.extensionSpec=extensionspec_16;var amplayout_8=new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM RESPONSIVE".split(" ")),childtagspec_4=new amp$validator$ChildTagSpec;childtagspec_4.mandatoryNumChildTags=1;childtagspec_4.childTagNameOneof=["A"];var tagspec_264=new amp$validator$TagSpec("AMP-CALL-TRACKING");tagspec_264.amp_validator_TagSpec$attrs=[123];tagspec_264.amp_validator_TagSpec$attrLists=[13];tagspec_264.specUrl="https://www.ampproject.org/docs/reference/components/amp-call-tracking"; -tagspec_264.ampLayout=amplayout_8;tagspec_264.childTags=childtagspec_4;tagspec_264.htmlFormat=["AMP"];tagspec_264.requiresExtension=["amp-call-tracking"];var extensionspec_17=new amp$validator$ExtensionSpec;extensionspec_17.name="amp-carousel";extensionspec_17.allowedVersions=["0.1","latest"];extensionspec_17.deprecatedAllowDuplicates=!0;extensionspec_17.requiresUsage="GRANDFATHERED";var tagspec_265=new amp$validator$TagSpec("SCRIPT");tagspec_265.amp_validator_TagSpec$attrLists=[15];tagspec_265.extensionSpec= -extensionspec_17;var tagspec_266=new amp$validator$TagSpec("AMP-CAROUSEL");tagspec_266.amp_validator_TagSpec$attrs=[124,101,-36,125,126,127,128,-233];tagspec_266.amp_validator_TagSpec$attrLists=[13];tagspec_266.specUrl="https://www.ampproject.org/docs/reference/components/amp-carousel";tagspec_266.ampLayout=amplayout_0;tagspec_266.requiresExtension=["amp-carousel"];var extensionspec_18=new amp$validator$ExtensionSpec;extensionspec_18.name="amp-dailymotion";extensionspec_18.allowedVersions=["0.1", -"latest"];extensionspec_18.deprecatedAllowDuplicates=!0;extensionspec_18.requiresUsage="GRANDFATHERED";var tagspec_267=new amp$validator$TagSpec("SCRIPT");tagspec_267.amp_validator_TagSpec$attrLists=[15];tagspec_267.htmlFormat=["AMP"];tagspec_267.extensionSpec=extensionspec_18;var amplayout_9=new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT","FLEX_ITEM","RESPONSIVE"]),tagspec_268=new amp$validator$TagSpec("AMP-DAILYMOTION");tagspec_268.amp_validator_TagSpec$attrs=[-35,129,130,131,132,133, -134,135,136];tagspec_268.amp_validator_TagSpec$attrLists=[13];tagspec_268.specUrl="https://www.ampproject.org/docs/reference/components/amp-dailymotion";tagspec_268.ampLayout=amplayout_9;tagspec_268.htmlFormat=["AMP"];tagspec_268.requiresExtension=["amp-dailymotion"];var extensionspec_19=new amp$validator$ExtensionSpec;extensionspec_19.name="amp-dynamic-css-classes";extensionspec_19.allowedVersions=["0.1","latest"];extensionspec_19.deprecatedAllowDuplicates=!0;extensionspec_19.requiresUsage="NONE"; -var tagspec_269=new amp$validator$TagSpec("SCRIPT");tagspec_269.amp_validator_TagSpec$attrLists=[15];tagspec_269.htmlFormat=["AMP"];tagspec_269.extensionSpec=extensionspec_19;var extensionspec_20=new amp$validator$ExtensionSpec;extensionspec_20.name="amp-experiment";extensionspec_20.allowedVersions=["0.1","latest"];extensionspec_20.deprecatedAllowDuplicates=!0;extensionspec_20.requiresUsage="GRANDFATHERED";var tagspec_270=new amp$validator$TagSpec("SCRIPT");tagspec_270.amp_validator_TagSpec$attrLists= -[15];tagspec_270.htmlFormat=["AMP"];tagspec_270.extensionSpec=extensionspec_20;var tagspec_271=new amp$validator$TagSpec("SCRIPT");tagspec_271.specName="amp-experiment extension .json script";tagspec_271.mandatoryParent="AMP-EXPERIMENT";tagspec_271.amp_validator_TagSpec$attrs=[-12,98];tagspec_271.specUrl="https://www.ampproject.org/docs/reference/components/amp-experiment";tagspec_271.amp_validator_TagSpec$cdata=cdataspec_9;tagspec_271.htmlFormat=["AMP"];var tagspec_272=new amp$validator$TagSpec("AMP-EXPERIMENT"); -tagspec_272.unique=!0;tagspec_272.specUrl="https://www.ampproject.org/docs/reference/components/amp-experiment";tagspec_272.htmlFormat=["AMP"];tagspec_272.requiresExtension=["amp-experiment"];var extensionspec_21=new amp$validator$ExtensionSpec;extensionspec_21.name="amp-facebook-comments";extensionspec_21.allowedVersions=["0.1","latest"];var tagspec_273=new amp$validator$TagSpec("SCRIPT");tagspec_273.amp_validator_TagSpec$attrLists=[15];tagspec_273.htmlFormat=["AMP"];tagspec_273.extensionSpec=extensionspec_21; -var tagspec_274=new amp$validator$TagSpec("AMP-FACEBOOK-COMMENTS");tagspec_274.amp_validator_TagSpec$attrs=[137];tagspec_274.amp_validator_TagSpec$attrLists=[13];tagspec_274.ampLayout=amplayout_6;tagspec_274.htmlFormat=["AMP"];tagspec_274.requiresExtension=["amp-facebook-comments"];var extensionspec_22=new amp$validator$ExtensionSpec;extensionspec_22.name="amp-facebook-like";extensionspec_22.allowedVersions=["0.1","latest"];var tagspec_275=new amp$validator$TagSpec("SCRIPT");tagspec_275.amp_validator_TagSpec$attrLists= -[15];tagspec_275.htmlFormat=["AMP"];tagspec_275.extensionSpec=extensionspec_22;var tagspec_276=new amp$validator$TagSpec("AMP-FACEBOOK-LIKE");tagspec_276.amp_validator_TagSpec$attrs=[138];tagspec_276.amp_validator_TagSpec$attrLists=[13];tagspec_276.ampLayout=amplayout_6;tagspec_276.htmlFormat=["AMP"];tagspec_276.requiresExtension=["amp-facebook-like"];var extensionspec_23=new amp$validator$ExtensionSpec;extensionspec_23.name="amp-facebook";extensionspec_23.allowedVersions=["0.1","latest"];extensionspec_23.deprecatedAllowDuplicates= -!0;extensionspec_23.requiresUsage="GRANDFATHERED";var tagspec_277=new amp$validator$TagSpec("SCRIPT");tagspec_277.amp_validator_TagSpec$attrLists=[15];tagspec_277.htmlFormat=["AMP"];tagspec_277.extensionSpec=extensionspec_23;var tagspec_278=new amp$validator$TagSpec("AMP-FACEBOOK");tagspec_278.amp_validator_TagSpec$attrs=[137];tagspec_278.amp_validator_TagSpec$attrLists=[13];tagspec_278.ampLayout=amplayout_6;tagspec_278.htmlFormat=["AMP"];tagspec_278.requiresExtension=["amp-facebook"];var extensionspec_24= -new amp$validator$ExtensionSpec;extensionspec_24.name="amp-fit-text";extensionspec_24.allowedVersions=["0.1","latest"];extensionspec_24.deprecatedAllowDuplicates=!0;extensionspec_24.requiresUsage="GRANDFATHERED";var tagspec_279=new amp$validator$TagSpec("SCRIPT");tagspec_279.amp_validator_TagSpec$attrLists=[15];tagspec_279.extensionSpec=extensionspec_24;var tagspec_280=new amp$validator$TagSpec("AMP-FIT-TEXT");tagspec_280.amp_validator_TagSpec$attrs=[-234,-235];tagspec_280.amp_validator_TagSpec$attrLists= -[13];tagspec_280.ampLayout=amplayout_0;tagspec_280.requiresExtension=["amp-fit-text"];var extensionspec_25=new amp$validator$ExtensionSpec;extensionspec_25.name="amp-font";extensionspec_25.allowedVersions=["0.1","latest"];extensionspec_25.deprecatedAllowDuplicates=!0;extensionspec_25.requiresUsage="GRANDFATHERED";var tagspec_281=new amp$validator$TagSpec("SCRIPT");tagspec_281.amp_validator_TagSpec$attrLists=[15];tagspec_281.htmlFormat=["AMP","AMP4ADS"];tagspec_281.extensionSpec=extensionspec_25;var tagspec_282= -new amp$validator$TagSpec("AMP-FONT");tagspec_282.amp_validator_TagSpec$attrs=[139,-236,-237,140,-238,-239,-240,-241,-242];tagspec_282.amp_validator_TagSpec$attrLists=[13];tagspec_282.ampLayout=amplayout_5;tagspec_282.htmlFormat=["AMP","AMP4ADS"];tagspec_282.requiresExtension=["amp-font"];var extensionspec_26=new amp$validator$ExtensionSpec;extensionspec_26.name="amp-form";extensionspec_26.allowedVersions=["0.1","latest"];extensionspec_26.deprecatedAllowDuplicates=!0;extensionspec_26.requiresUsage= -"GRANDFATHERED";var tagspec_283=new amp$validator$TagSpec("SCRIPT");tagspec_283.amp_validator_TagSpec$attrLists=[15];tagspec_283.extensionSpec=extensionspec_26;var extensionspec_27=new amp$validator$ExtensionSpec;extensionspec_27.name="amp-fx-flying-carpet";extensionspec_27.allowedVersions=["0.1","latest"];extensionspec_27.deprecatedAllowDuplicates=!0;extensionspec_27.requiresUsage="GRANDFATHERED";var tagspec_284=new amp$validator$TagSpec("SCRIPT");tagspec_284.amp_validator_TagSpec$attrLists=[15]; -tagspec_284.htmlFormat=["AMP"];tagspec_284.extensionSpec=extensionspec_27;var tagspec_285=new amp$validator$TagSpec("AMP-FX-FLYING-CARPET");tagspec_285.amp_validator_TagSpec$attrs=[141];tagspec_285.amp_validator_TagSpec$attrLists=[13];tagspec_285.htmlFormat=["AMP"];tagspec_285.requiresExtension=["amp-fx-flying-carpet"];var extensionspec_28=new amp$validator$ExtensionSpec;extensionspec_28.name="amp-gfycat";extensionspec_28.allowedVersions=["0.1","latest"];extensionspec_28.deprecatedAllowDuplicates= -!0;extensionspec_28.requiresUsage="GRANDFATHERED";var tagspec_286=new amp$validator$TagSpec("SCRIPT");tagspec_286.amp_validator_TagSpec$attrLists=[15];tagspec_286.htmlFormat=["AMP"];tagspec_286.extensionSpec=extensionspec_28;var tagspec_287=new amp$validator$TagSpec("AMP-GFYCAT");tagspec_287.amp_validator_TagSpec$attrs=[142,143];tagspec_287.amp_validator_TagSpec$attrLists=[13];tagspec_287.specUrl="https://www.ampproject.org/docs/reference/components/amp-gfycat";tagspec_287.ampLayout=amplayout_9;tagspec_287.htmlFormat= -["AMP"];tagspec_287.requiresExtension=["amp-gfycat"];var extensionspec_29=new amp$validator$ExtensionSpec;extensionspec_29.name="amp-gist";extensionspec_29.allowedVersions=["0.1","latest"];var tagspec_288=new amp$validator$TagSpec("SCRIPT");tagspec_288.amp_validator_TagSpec$attrLists=[15];tagspec_288.htmlFormat=["AMP"];tagspec_288.extensionSpec=extensionspec_29;var amplayout_10=new amp$validator$AmpLayout(["FIXED_HEIGHT"]),tagspec_289=new amp$validator$TagSpec("AMP-GIST");tagspec_289.amp_validator_TagSpec$attrs= -[144];tagspec_289.amp_validator_TagSpec$attrLists=[13];tagspec_289.specUrl="https://www.ampproject.org/docs/reference/components/amp-gist";tagspec_289.ampLayout=amplayout_10;tagspec_289.htmlFormat=["AMP"];tagspec_289.requiresExtension=["amp-gist"];var extensionspec_30=new amp$validator$ExtensionSpec;extensionspec_30.name="amp-gwd-animation";extensionspec_30.allowedVersions=["0.1","latest"];var tagspec_290=new amp$validator$TagSpec("SCRIPT");tagspec_290.amp_validator_TagSpec$attrLists=[15];tagspec_290.htmlFormat= -["AMP4ADS"];tagspec_290.extensionSpec=extensionspec_30;var tagspec_291=new amp$validator$TagSpec("AMP-GWD-ANIMATION");tagspec_291.amp_validator_TagSpec$attrs=[-243];tagspec_291.amp_validator_TagSpec$attrLists=[13];tagspec_291.ampLayout=amplayout_5;tagspec_291.htmlFormat=["AMP4ADS"];tagspec_291.requiresExtension=["amp-gwd-animation"];var extensionspec_31=new amp$validator$ExtensionSpec;extensionspec_31.name="amp-hulu";extensionspec_31.allowedVersions=["0.1","latest"];var tagspec_292=new amp$validator$TagSpec("SCRIPT"); -tagspec_292.amp_validator_TagSpec$attrLists=[15];tagspec_292.htmlFormat=["AMP"];tagspec_292.extensionSpec=extensionspec_31;var tagspec_293=new amp$validator$TagSpec("AMP-HULU");tagspec_293.amp_validator_TagSpec$attrs=[145];tagspec_293.amp_validator_TagSpec$attrLists=[13];tagspec_293.specUrl="https://www.ampproject.org/docs/reference/components/amp-hulu";tagspec_293.ampLayout=amplayout_9;tagspec_293.htmlFormat=["AMP"];tagspec_293.requiresExtension=["amp-hulu"];var extensionspec_32=new amp$validator$ExtensionSpec; -extensionspec_32.name="amp-iframe";extensionspec_32.allowedVersions=["0.1","latest"];extensionspec_32.deprecatedAllowDuplicates=!0;extensionspec_32.requiresUsage="GRANDFATHERED";var tagspec_294=new amp$validator$TagSpec("SCRIPT");tagspec_294.amp_validator_TagSpec$attrLists=[15];tagspec_294.htmlFormat=["AMP"];tagspec_294.extensionSpec=extensionspec_32;var tagspec_295=new amp$validator$TagSpec("AMP-IFRAME");tagspec_295.amp_validator_TagSpec$attrs=[-244,146,147,148,62,-33,63,-34,64,149,66,150];tagspec_295.amp_validator_TagSpec$attrLists= -[13];tagspec_295.ampLayout=amplayout_0;tagspec_295.htmlFormat=["AMP"];tagspec_295.requiresExtension=["amp-iframe"];var extensionspec_33=new amp$validator$ExtensionSpec;extensionspec_33.name="amp-ima-video";extensionspec_33.allowedVersions=["0.1","latest"];var tagspec_296=new amp$validator$TagSpec("SCRIPT");tagspec_296.amp_validator_TagSpec$attrLists=[15];tagspec_296.htmlFormat=["AMP"];tagspec_296.extensionSpec=extensionspec_33;var amplayout_11=new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT", -"NODISPLAY","RESPONSIVE"]),tagspec_297=new amp$validator$TagSpec("AMP-IMA-VIDEO");tagspec_297.amp_validator_TagSpec$attrs=[151,152];tagspec_297.amp_validator_TagSpec$attrLists=[13];tagspec_297.specUrl="https://www.ampproject.org/docs/reference/components/amp-ima-video";tagspec_297.ampLayout=amplayout_11;tagspec_297.htmlFormat=["AMP"];tagspec_297.requiresExtension=["amp-ima-video"];var extensionspec_34=new amp$validator$ExtensionSpec;extensionspec_34.name="amp-image-lightbox";extensionspec_34.allowedVersions= -["0.1","latest"];extensionspec_34.deprecatedAllowDuplicates=!0;extensionspec_34.requiresUsage="GRANDFATHERED";var tagspec_298=new amp$validator$TagSpec("SCRIPT");tagspec_298.amp_validator_TagSpec$attrLists=[15];tagspec_298.htmlFormat=["AMP"];tagspec_298.extensionSpec=extensionspec_34;var tagspec_299=new amp$validator$TagSpec("AMP-IMAGE-LIGHTBOX");tagspec_299.amp_validator_TagSpec$attrs=[-36];tagspec_299.amp_validator_TagSpec$attrLists=[13];tagspec_299.ampLayout=amplayout_5;tagspec_299.htmlFormat= -["AMP"];tagspec_299.requiresExtension=["amp-image-lightbox"];var extensionspec_35=new amp$validator$ExtensionSpec;extensionspec_35.name="amp-imgur";extensionspec_35.allowedVersions=["0.1","latest"];var tagspec_300=new amp$validator$TagSpec("SCRIPT");tagspec_300.amp_validator_TagSpec$attrLists=[15];tagspec_300.htmlFormat=["AMP"];tagspec_300.extensionSpec=extensionspec_35;var tagspec_301=new amp$validator$TagSpec("AMP-IMGUR");tagspec_301.amp_validator_TagSpec$attrs=[153];tagspec_301.amp_validator_TagSpec$attrLists= -[13];tagspec_301.ampLayout=amplayout_6;tagspec_301.htmlFormat=["AMP"];tagspec_301.requiresExtension=["amp-imgur"];var extensionspec_36=new amp$validator$ExtensionSpec;extensionspec_36.name="amp-instagram";extensionspec_36.allowedVersions=["0.1","latest"];extensionspec_36.deprecatedAllowDuplicates=!0;extensionspec_36.requiresUsage="GRANDFATHERED";var tagspec_302=new amp$validator$TagSpec("SCRIPT");tagspec_302.amp_validator_TagSpec$attrLists=[15];tagspec_302.htmlFormat=["AMP"];tagspec_302.extensionSpec= -extensionspec_36;var tagspec_303=new amp$validator$TagSpec("AMP-INSTAGRAM");tagspec_303.amp_validator_TagSpec$attrs=[-29,154];tagspec_303.amp_validator_TagSpec$attrLists=[13];tagspec_303.ampLayout=amplayout_6;tagspec_303.htmlFormat=["AMP"];tagspec_303.requiresExtension=["amp-instagram"];var extensionspec_37=new amp$validator$ExtensionSpec;extensionspec_37.name="amp-install-serviceworker";extensionspec_37.allowedVersions=["0.1","latest"];extensionspec_37.deprecatedAllowDuplicates=!0;extensionspec_37.requiresUsage= -"GRANDFATHERED";var tagspec_304=new amp$validator$TagSpec("SCRIPT");tagspec_304.amp_validator_TagSpec$attrLists=[15];tagspec_304.htmlFormat=["AMP"];tagspec_304.extensionSpec=extensionspec_37;var tagspec_305=new amp$validator$TagSpec("AMP-INSTALL-SERVICEWORKER");tagspec_305.amp_validator_TagSpec$attrs=[70,155];tagspec_305.ampLayout=amplayout_5;tagspec_305.htmlFormat=["AMP"];tagspec_305.requiresExtension=["amp-install-serviceworker"];var extensionspec_38=new amp$validator$ExtensionSpec;extensionspec_38.name= -"amp-izlesene";extensionspec_38.allowedVersions=["0.1","latest"];extensionspec_38.requiresUsage="GRANDFATHERED";var tagspec_306=new amp$validator$TagSpec("SCRIPT");tagspec_306.amp_validator_TagSpec$attrLists=[15];tagspec_306.htmlFormat=["AMP"];tagspec_306.extensionSpec=extensionspec_38;var tagspec_307=new amp$validator$TagSpec("AMP-IZLESENE");tagspec_307.amp_validator_TagSpec$attrs=[156];tagspec_307.amp_validator_TagSpec$attrLists=[13];tagspec_307.ampLayout=amplayout_9;tagspec_307.htmlFormat=["AMP"]; -tagspec_307.requiresExtension=["amp-izlesene"];var extensionspec_39=new amp$validator$ExtensionSpec;extensionspec_39.name="amp-jwplayer";extensionspec_39.allowedVersions=["0.1","latest"];extensionspec_39.deprecatedAllowDuplicates=!0;extensionspec_39.requiresUsage="GRANDFATHERED";var tagspec_308=new amp$validator$TagSpec("SCRIPT");tagspec_308.amp_validator_TagSpec$attrLists=[15];tagspec_308.htmlFormat=["AMP"];tagspec_308.extensionSpec=extensionspec_39;var tagspec_309=new amp$validator$TagSpec("AMP-JWPLAYER"); -tagspec_309.amp_validator_TagSpec$attrs=[157,158,159];tagspec_309.ampLayout=amplayout_6;tagspec_309.htmlFormat=["AMP"];tagspec_309.requiresExtension=["amp-jwplayer"];var extensionspec_40=new amp$validator$ExtensionSpec;extensionspec_40.name="amp-kaltura-player";extensionspec_40.allowedVersions=["0.1","latest"];extensionspec_40.deprecatedAllowDuplicates=!0;extensionspec_40.requiresUsage="GRANDFATHERED";var tagspec_310=new amp$validator$TagSpec("SCRIPT");tagspec_310.amp_validator_TagSpec$attrLists= -[15];tagspec_310.htmlFormat=["AMP"];tagspec_310.extensionSpec=extensionspec_40;var tagspec_311=new amp$validator$TagSpec("AMP-KALTURA-PLAYER");tagspec_311.amp_validator_TagSpec$attrs=[160];tagspec_311.amp_validator_TagSpec$attrLists=[13];tagspec_311.ampLayout=amplayout_6;tagspec_311.htmlFormat=["AMP"];tagspec_311.requiresExtension=["amp-kaltura-player"];var extensionspec_41=new amp$validator$ExtensionSpec;extensionspec_41.name="amp-lightbox";extensionspec_41.allowedVersions=["0.1","latest"];extensionspec_41.deprecatedAllowDuplicates= -!0;extensionspec_41.requiresUsage="GRANDFATHERED";var tagspec_312=new amp$validator$TagSpec("SCRIPT");tagspec_312.amp_validator_TagSpec$attrLists=[15];tagspec_312.htmlFormat=["AMP"];tagspec_312.extensionSpec=extensionspec_41;var tagspec_313=new amp$validator$TagSpec("AMP-LIGHTBOX");tagspec_313.amp_validator_TagSpec$attrs=[-36,-245,-246];tagspec_313.amp_validator_TagSpec$attrLists=[13];tagspec_313.ampLayout=amplayout_5;tagspec_313.htmlFormat=["AMP"];tagspec_313.requiresExtension=["amp-lightbox"];var extensionspec_42= -new amp$validator$ExtensionSpec;extensionspec_42.name="amp-list";extensionspec_42.allowedVersions=["0.1","latest"];extensionspec_42.deprecatedAllowDuplicates=!0;extensionspec_42.requiresUsage="GRANDFATHERED";var tagspec_314=new amp$validator$TagSpec("SCRIPT");tagspec_314.amp_validator_TagSpec$attrLists=[15];tagspec_314.htmlFormat=["AMP"];tagspec_314.extensionSpec=extensionspec_42;var tagspec_315=new amp$validator$TagSpec("AMP-LIST");tagspec_315.amp_validator_TagSpec$attrs=[-247,-248,-249,-250,70, --251,-42,-252];tagspec_315.amp_validator_TagSpec$attrLists=[13];tagspec_315.ampLayout=amplayout_6;tagspec_315.htmlFormat=["AMP"];tagspec_315.requiresExtension=["amp-list"];var extensionspec_43=new amp$validator$ExtensionSpec;extensionspec_43.name="amp-live-list";extensionspec_43.allowedVersions=["0.1","latest"];extensionspec_43.requiresUsage="GRANDFATHERED";var tagspec_316=new amp$validator$TagSpec("SCRIPT");tagspec_316.mandatoryParent="HEAD";tagspec_316.amp_validator_TagSpec$attrLists=[15];tagspec_316.htmlFormat= -["AMP"];tagspec_316.uniqueWarning=!0;tagspec_316.extensionSpec=extensionspec_43;var amplayout_12=new amp$validator$AmpLayout(["CONTAINER","FIXED_HEIGHT"]),referencepoint_0=new amp$validator$ReferencePoint;referencepoint_0.tagSpecName=318;referencepoint_0.amp_validator_ReferencePoint$mandatory=!0;referencepoint_0.unique=!0;var referencepoint_1=new amp$validator$ReferencePoint;referencepoint_1.tagSpecName=319;referencepoint_1.amp_validator_ReferencePoint$mandatory=!0;referencepoint_1.unique=!0;var referencepoint_2= -new amp$validator$ReferencePoint;referencepoint_2.tagSpecName=320;referencepoint_2.unique=!0;var tagspec_317=new amp$validator$TagSpec("AMP-LIVE-LIST");tagspec_317.amp_validator_TagSpec$attrs=[161,162,89,106];tagspec_317.ampLayout=amplayout_12;tagspec_317.referencePoints=[referencepoint_0,referencepoint_1,referencepoint_2];tagspec_317.htmlFormat=["AMP"];tagspec_317.requiresExtension=["amp-live-list"];var tagspec_318=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_318.specName="AMP-LIVE-LIST [update]"; -tagspec_318.amp_validator_TagSpec$attrs=[163];tagspec_318.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#update";tagspec_318.htmlFormat=["AMP"];var referencepoint_3=new amp$validator$ReferencePoint;referencepoint_3.tagSpecName=321;var tagspec_319=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_319.specName="AMP-LIVE-LIST [items]";tagspec_319.amp_validator_TagSpec$attrs=[164];tagspec_319.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#items"; -tagspec_319.referencePoints=[referencepoint_3];tagspec_319.htmlFormat=["AMP"];var tagspec_320=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_320.specName="AMP-LIVE-LIST [pagination]";tagspec_320.amp_validator_TagSpec$attrs=[165];tagspec_320.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#pagination";tagspec_320.htmlFormat=["AMP"];var tagspec_321=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_321.specName="AMP-LIVE-LIST [items] item";tagspec_321.amp_validator_TagSpec$attrs= -[106,166,-253,-254];tagspec_321.specUrl="https://www.ampproject.org/docs/reference/components/amp-live-list#items";tagspec_321.htmlFormat=["AMP"];var extensionspec_44=new amp$validator$ExtensionSpec;extensionspec_44.name="amp-mustache";extensionspec_44.allowedVersions=["0.1","latest"];extensionspec_44.isCustomTemplate=!0;extensionspec_44.deprecatedAllowDuplicates=!0;extensionspec_44.requiresUsage="GRANDFATHERED";var tagspec_322=new amp$validator$TagSpec("SCRIPT");tagspec_322.amp_validator_TagSpec$attrLists= -[15];tagspec_322.htmlFormat=["AMP"];tagspec_322.extensionSpec=extensionspec_44;var tagspec_323=new amp$validator$TagSpec("TEMPLATE");tagspec_323.amp_validator_TagSpec$attrs=[167];tagspec_323.disallowedAncestor=["TEMPLATE","FORM > DIV [submit-success][template]"];tagspec_323.requiresExtension=["amp-mustache"];var extensionspec_45=new amp$validator$ExtensionSpec;extensionspec_45.name="amp-nexxtv-player";extensionspec_45.allowedVersions=["0.1","latest"];var tagspec_324=new amp$validator$TagSpec("SCRIPT"); -tagspec_324.amp_validator_TagSpec$attrLists=[15];tagspec_324.htmlFormat=["AMP"];tagspec_324.extensionSpec=extensionspec_45;var tagspec_325=new amp$validator$TagSpec("AMP-NEXXTV-PLAYER");tagspec_325.amp_validator_TagSpec$attrs=[168,169,170,171,172];tagspec_325.amp_validator_TagSpec$attrLists=[13];tagspec_325.ampLayout=amplayout_6;tagspec_325.htmlFormat=["AMP"];tagspec_325.requiresExtension=["amp-nexxtv-player"];var extensionspec_46=new amp$validator$ExtensionSpec;extensionspec_46.name="amp-o2-player"; -extensionspec_46.allowedVersions=["0.1","latest"];extensionspec_46.deprecatedAllowDuplicates=!0;extensionspec_46.requiresUsage="GRANDFATHERED";var tagspec_326=new amp$validator$TagSpec("SCRIPT");tagspec_326.amp_validator_TagSpec$attrLists=[15];tagspec_326.htmlFormat=["AMP"];tagspec_326.extensionSpec=extensionspec_46;var tagspec_327=new amp$validator$TagSpec("AMP-O2-PLAYER");tagspec_327.amp_validator_TagSpec$attrs=[173,174];tagspec_327.amp_validator_TagSpec$attrLists=[13];tagspec_327.ampLayout=amplayout_6; -tagspec_327.htmlFormat=["AMP"];tagspec_327.requiresExtension=["amp-o2-player"];var extensionspec_47=new amp$validator$ExtensionSpec;extensionspec_47.name="amp-ooyala-player";extensionspec_47.allowedVersions=["0.1","latest"];var tagspec_328=new amp$validator$TagSpec("SCRIPT");tagspec_328.amp_validator_TagSpec$attrLists=[15];tagspec_328.htmlFormat=["AMP"];tagspec_328.extensionSpec=extensionspec_47;var tagspec_329=new amp$validator$TagSpec("AMP-OOYALA-PLAYER");tagspec_329.amp_validator_TagSpec$attrs= -[175,176,177];tagspec_329.amp_validator_TagSpec$attrLists=[13];tagspec_329.ampLayout=amplayout_2;tagspec_329.htmlFormat=["AMP"];tagspec_329.requiresExtension=["amp-ooyala-player"];var extensionspec_48=new amp$validator$ExtensionSpec;extensionspec_48.name="amp-pinterest";extensionspec_48.allowedVersions=["0.1","latest"];extensionspec_48.deprecatedAllowDuplicates=!0;extensionspec_48.requiresUsage="GRANDFATHERED";var tagspec_330=new amp$validator$TagSpec("SCRIPT");tagspec_330.amp_validator_TagSpec$attrLists= -[15];tagspec_330.htmlFormat=["AMP"];tagspec_330.extensionSpec=extensionspec_48;var tagspec_331=new amp$validator$TagSpec("AMP-PINTEREST");tagspec_331.amp_validator_TagSpec$attrs=[178];tagspec_331.amp_validator_TagSpec$attrLists=[13];tagspec_331.specUrl="https://www.ampproject.org/docs/reference/components/amp-pinterest";tagspec_331.ampLayout=amplayout_6;tagspec_331.htmlFormat=["AMP"];tagspec_331.requiresExtension=["amp-pinterest"];var extensionspec_49=new amp$validator$ExtensionSpec;extensionspec_49.name= -"amp-playbuzz";extensionspec_49.allowedVersions=["0.1","latest"];var tagspec_332=new amp$validator$TagSpec("SCRIPT");tagspec_332.amp_validator_TagSpec$attrLists=[15];tagspec_332.htmlFormat=["AMP"];tagspec_332.extensionSpec=extensionspec_49;var amplayout_13=new amp$validator$AmpLayout(["RESPONSIVE","FIXED_HEIGHT"]),tagspec_333=new amp$validator$TagSpec("AMP-PLAYBUZZ");tagspec_333.amp_validator_TagSpec$attrs=[179,180,181,182,183];tagspec_333.amp_validator_TagSpec$attrLists=[13];tagspec_333.ampLayout= -amplayout_13;tagspec_333.htmlFormat=["AMP"];tagspec_333.requiresExtension=["amp-playbuzz"];var extensionspec_50=new amp$validator$ExtensionSpec;extensionspec_50.name="amp-position-observer";extensionspec_50.allowedVersions=["0.1","latest"];var tagspec_334=new amp$validator$TagSpec("SCRIPT");tagspec_334.amp_validator_TagSpec$attrLists=[15];tagspec_334.htmlFormat=["AMP","AMP4ADS"];tagspec_334.extensionSpec=extensionspec_50;var tagspec_335=new amp$validator$TagSpec("AMP-POSITION-OBSERVER");tagspec_335.amp_validator_TagSpec$attrs= -[184,-255,185];tagspec_335.amp_validator_TagSpec$attrLists=[13];tagspec_335.ampLayout=amplayout_5;tagspec_335.htmlFormat=["AMP","AMP4ADS"];tagspec_335.requiresExtension=["amp-position-observer"];var extensionspec_51=new amp$validator$ExtensionSpec;extensionspec_51.name="amp-reach-player";extensionspec_51.allowedVersions=["0.1","latest"];extensionspec_51.deprecatedAllowDuplicates=!0;extensionspec_51.requiresUsage="GRANDFATHERED";var tagspec_336=new amp$validator$TagSpec("SCRIPT");tagspec_336.amp_validator_TagSpec$attrLists= -[15];tagspec_336.htmlFormat=["AMP"];tagspec_336.extensionSpec=extensionspec_51;var tagspec_337=new amp$validator$TagSpec("AMP-REACH-PLAYER");tagspec_337.amp_validator_TagSpec$attrs=[186];tagspec_337.amp_validator_TagSpec$attrLists=[13];tagspec_337.ampLayout=amplayout_9;tagspec_337.htmlFormat=["AMP"];tagspec_337.requiresExtension=["amp-reach-player"];var extensionspec_52=new amp$validator$ExtensionSpec;extensionspec_52.name="amp-reddit";extensionspec_52.allowedVersions=["0.1","latest"];extensionspec_52.deprecatedAllowDuplicates= -!0;var tagspec_338=new amp$validator$TagSpec("SCRIPT");tagspec_338.amp_validator_TagSpec$attrLists=[15];tagspec_338.htmlFormat=["AMP"];tagspec_338.extensionSpec=extensionspec_52;var tagspec_339=new amp$validator$TagSpec("AMP-REDDIT");tagspec_339.amp_validator_TagSpec$attrs=[187,188,189,190];tagspec_339.amp_validator_TagSpec$attrLists=[13];tagspec_339.ampLayout=amplayout_6;tagspec_339.htmlFormat=["AMP"];tagspec_339.requiresExtension=["amp-reddit"];var extensionspec_53=new amp$validator$ExtensionSpec; -extensionspec_53.name="amp-riddle-quiz";extensionspec_53.allowedVersions=["0.1","latest"];var tagspec_340=new amp$validator$TagSpec("SCRIPT");tagspec_340.amp_validator_TagSpec$attrLists=[15];tagspec_340.htmlFormat=["AMP"];tagspec_340.extensionSpec=extensionspec_53;var amplayout_14=new amp$validator$AmpLayout(["RESPONSIVE"]),tagspec_341=new amp$validator$TagSpec("AMP-RIDDLE-QUIZ");tagspec_341.amp_validator_TagSpec$attrs=[191];tagspec_341.amp_validator_TagSpec$attrLists=[13];tagspec_341.specUrl="https://www.ampproject.org/docs/reference/components/amp-riddle-quiz"; -tagspec_341.ampLayout=amplayout_14;tagspec_341.htmlFormat=["AMP"];tagspec_341.requiresExtension=["amp-riddle-quiz"];var extensionspec_54=new amp$validator$ExtensionSpec;extensionspec_54.name="amp-selector";extensionspec_54.allowedVersions=["0.1","latest"];extensionspec_54.requiresUsage="GRANDFATHERED";var tagspec_342=new amp$validator$TagSpec("SCRIPT");tagspec_342.amp_validator_TagSpec$attrLists=[15];tagspec_342.htmlFormat=["AMP"];tagspec_342.extensionSpec=extensionspec_54;var amplayout_15=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT NODISPLAY RESPONSIVE CONTAINER".split(" ")), -referencepoint_4=new amp$validator$ReferencePoint;referencepoint_4.tagSpecName=344;var referencepoint_5=new amp$validator$ReferencePoint;referencepoint_5.tagSpecName=345;var tagspec_343=new amp$validator$TagSpec("AMP-SELECTOR");tagspec_343.amp_validator_TagSpec$attrs=[89,-211,192,193,-200];tagspec_343.amp_validator_TagSpec$attrLists=[13,11];tagspec_343.ampLayout=amplayout_15;tagspec_343.disallowedAncestor=["AMP-SELECTOR"];tagspec_343.referencePoints=[referencepoint_4,referencepoint_5];tagspec_343.htmlFormat= -["AMP"];tagspec_343.requiresExtension=["amp-selector"];var tagspec_344=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_344.specName="AMP-SELECTOR option";tagspec_344.amp_validator_TagSpec$attrs=[194,89,195];tagspec_344.specUrl="https://www.ampproject.org/docs/reference/components/amp-selector";tagspec_344.htmlFormat=["AMP"];var tagspec_345=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_345.specName="AMP-SELECTOR child";tagspec_345.referencePoints=[referencepoint_4,referencepoint_5];tagspec_345.htmlFormat= -["AMP"];var extensionspec_55=new amp$validator$ExtensionSpec;extensionspec_55.name="amp-sidebar";extensionspec_55.allowedVersions=["0.1","latest"];extensionspec_55.deprecatedAllowDuplicates=!0;extensionspec_55.requiresUsage="GRANDFATHERED";var tagspec_346=new amp$validator$TagSpec("SCRIPT");tagspec_346.amp_validator_TagSpec$attrLists=[15];tagspec_346.htmlFormat=["AMP"];tagspec_346.extensionSpec=extensionspec_55;var tagspec_347=new amp$validator$TagSpec("AMP-SIDEBAR");tagspec_347.mandatoryParent="BODY"; -tagspec_347.amp_validator_TagSpec$attrs=[196];tagspec_347.amp_validator_TagSpec$attrLists=[13];tagspec_347.ampLayout=amplayout_5;tagspec_347.htmlFormat=["AMP"];tagspec_347.requiresExtension=["amp-sidebar"];var childtagspec_5=new amp$validator$ChildTagSpec;childtagspec_5.mandatoryNumChildTags=1;childtagspec_5.childTagNameOneof=["UL"];var tagspec_348=new amp$validator$TagSpec("NAV");tagspec_348.specName="amp-sidebar > nav";tagspec_348.mandatoryParent="AMP-SIDEBAR";tagspec_348.amp_validator_TagSpec$attrs= -[197,198];tagspec_348.childTags=childtagspec_5;tagspec_348.htmlFormat=["AMP"];var extensionspec_56=new amp$validator$ExtensionSpec;extensionspec_56.name="amp-slides";extensionspec_56.allowedVersions=["0.1","latest"];extensionspec_56.deprecatedAllowDuplicates=!0;extensionspec_56.requiresUsage="NONE";var tagspec_349=new amp$validator$TagSpec("SCRIPT");tagspec_349.amp_validator_TagSpec$attrLists=[15];tagspec_349.amp_validator_TagSpec$deprecation="amp-carousel";tagspec_349.amp_validator_TagSpec$deprecationUrl= -"https://www.ampproject.org/docs/reference/components/amp-carousel";tagspec_349.htmlFormat=["AMP"];tagspec_349.extensionSpec=extensionspec_56;var extensionspec_57=new amp$validator$ExtensionSpec;extensionspec_57.name="amp-social-share";extensionspec_57.allowedVersions=["0.1","latest"];extensionspec_57.deprecatedAllowDuplicates=!0;extensionspec_57.requiresUsage="GRANDFATHERED";var tagspec_350=new amp$validator$TagSpec("SCRIPT");tagspec_350.amp_validator_TagSpec$attrLists=[15];tagspec_350.htmlFormat= -["AMP","AMP4ADS"];tagspec_350.extensionSpec=extensionspec_57;var amplayout_16=new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),tagspec_351=new amp$validator$TagSpec("AMP-SOCIAL-SHARE");tagspec_351.amp_validator_TagSpec$attrs=[199,71];tagspec_351.amp_validator_TagSpec$attrLists=[13];tagspec_351.ampLayout=amplayout_16;tagspec_351.htmlFormat=["AMP","AMP4ADS"];tagspec_351.requiresExtension=["amp-social-share"];var extensionspec_58=new amp$validator$ExtensionSpec; -extensionspec_58.name="amp-soundcloud";extensionspec_58.allowedVersions=["0.1","latest"];extensionspec_58.deprecatedAllowDuplicates=!0;extensionspec_58.requiresUsage="GRANDFATHERED";var tagspec_352=new amp$validator$TagSpec("SCRIPT");tagspec_352.amp_validator_TagSpec$attrLists=[15];tagspec_352.htmlFormat=["AMP"];tagspec_352.extensionSpec=extensionspec_58;var tagspec_353=new amp$validator$TagSpec("AMP-SOUNDCLOUD");tagspec_353.amp_validator_TagSpec$attrs=[200,201,202,203,204];tagspec_353.amp_validator_TagSpec$attrLists= -[13];tagspec_353.ampLayout=amplayout_10;tagspec_353.htmlFormat=["AMP"];tagspec_353.requiresExtension=["amp-soundcloud"];var extensionspec_59=new amp$validator$ExtensionSpec;extensionspec_59.name="amp-springboard-player";extensionspec_59.allowedVersions=["0.1","latest"];extensionspec_59.deprecatedAllowDuplicates=!0;extensionspec_59.requiresUsage="GRANDFATHERED";var tagspec_354=new amp$validator$TagSpec("SCRIPT");tagspec_354.amp_validator_TagSpec$attrLists=[15];tagspec_354.htmlFormat=["AMP"];tagspec_354.extensionSpec= -extensionspec_59;var tagspec_355=new amp$validator$TagSpec("AMP-SPRINGBOARD-PLAYER");tagspec_355.amp_validator_TagSpec$attrs=[205,206,207,208,209,210];tagspec_355.amp_validator_TagSpec$attrLists=[13];tagspec_355.ampLayout=amplayout_2;tagspec_355.htmlFormat=["AMP"];tagspec_355.requiresExtension=["amp-springboard-player"];var extensionspec_60=new amp$validator$ExtensionSpec;extensionspec_60.name="amp-sticky-ad";extensionspec_60.allowedVersions=["0.1","1.0","latest"];extensionspec_60.deprecatedVersions= -["0.1"];extensionspec_60.requiresUsage="GRANDFATHERED";var tagspec_356=new amp$validator$TagSpec("SCRIPT");tagspec_356.amp_validator_TagSpec$attrLists=[15];tagspec_356.htmlFormat=["AMP"];tagspec_356.extensionSpec=extensionspec_60;var childtagspec_6=new amp$validator$ChildTagSpec;childtagspec_6.mandatoryNumChildTags=1;childtagspec_6.firstChildTagNameOneof=["AMP-AD"];var tagspec_357=new amp$validator$TagSpec("AMP-STICKY-AD");tagspec_357.unique=!0;tagspec_357.amp_validator_TagSpec$attrLists=[13];tagspec_357.ampLayout= -amplayout_5;tagspec_357.disallowedAncestor=["AMP-APP-BANNER"];tagspec_357.childTags=childtagspec_6;tagspec_357.htmlFormat=["AMP"];tagspec_357.requiresExtension=["amp-sticky-ad"];var extensionspec_61=new amp$validator$ExtensionSpec;extensionspec_61.name="amp-story";extensionspec_61.allowedVersions=["0.1","latest"];var tagspec_358=new amp$validator$TagSpec("SCRIPT");tagspec_358.amp_validator_TagSpec$attrLists=[15];tagspec_358.htmlFormat=["AMP"];tagspec_358.extensionSpec=extensionspec_61;var childtagspec_7= -new amp$validator$ChildTagSpec;childtagspec_7.childTagNameOneof=["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-PAGE"];childtagspec_7.mandatoryMinNumChildTags=1;var tagspec_359=new amp$validator$TagSpec("AMP-STORY");tagspec_359.mandatoryParent="BODY";tagspec_359.amp_validator_TagSpec$attrs=[211,212,213];tagspec_359.childTags=childtagspec_7;tagspec_359.htmlFormat=["AMP"];tagspec_359.requires=[-256];tagspec_359.requiresExtension=["amp-story"];tagspec_359.siblingsDisallowed=!0;var childtagspec_8=new amp$validator$ChildTagSpec; -childtagspec_8.childTagNameOneof=["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-GRID-LAYER"];childtagspec_8.mandatoryMinNumChildTags=1;var tagspec_360=new amp$validator$TagSpec("AMP-STORY-PAGE");tagspec_360.mandatoryParent="AMP-STORY";tagspec_360.amp_validator_TagSpec$attrs=[106,-257,213];tagspec_360.childTags=childtagspec_8;tagspec_360.htmlFormat=["AMP"];tagspec_360.satisfies=[-256];tagspec_360.requiresExtension=["amp-story"];var referencepoint_6=new amp$validator$ReferencePoint;referencepoint_6.tagSpecName= -362;var referencepoint_7=new amp$validator$ReferencePoint;referencepoint_7.tagSpecName=363;var tagspec_361=new amp$validator$TagSpec("AMP-STORY-GRID-LAYER");tagspec_361.amp_validator_TagSpec$attrs=[214];tagspec_361.mandatoryAncestor="AMP-STORY-PAGE";tagspec_361.referencePoints=[referencepoint_6,referencepoint_7];tagspec_361.htmlFormat=["AMP"];tagspec_361.amp_validator_TagSpec$descendantTagList="amp-story-grid-layer-allowed-descendants";var tagspec_362=new amp$validator$TagSpec("$REFERENCE_POINT"); -tagspec_362.specName="AMP-STORY-GRID-LAYER default";tagspec_362.amp_validator_TagSpec$attrs=[-258,215,216,217,218,219,220,221,-259,-260,-261];tagspec_362.specUrl="https://www.ampproject.org/docs/reference/components/amp-story";tagspec_362.referencePoints=[referencepoint_7];tagspec_362.htmlFormat=["AMP"];var tagspec_363=new amp$validator$TagSpec("$REFERENCE_POINT");tagspec_363.specName="AMP-STORY-GRID-LAYER animate-in";tagspec_363.amp_validator_TagSpec$attrs=[221,-259,-260,-261];tagspec_363.specUrl= -"https://www.ampproject.org/docs/reference/components/amp-story";tagspec_363.referencePoints=[referencepoint_7];tagspec_363.htmlFormat=["AMP"];var extensionspec_62=new amp$validator$ExtensionSpec;extensionspec_62.name="amp-timeago";extensionspec_62.allowedVersions=["0.1","latest"];var tagspec_364=new amp$validator$TagSpec("SCRIPT");tagspec_364.amp_validator_TagSpec$attrLists=[15];tagspec_364.htmlFormat=["AMP"];tagspec_364.extensionSpec=extensionspec_62;var amplayout_17=new amp$validator$AmpLayout(["FIXED", -"FIXED_HEIGHT","RESPONSIVE"]),tagspec_365=new amp$validator$TagSpec("AMP-TIMEAGO");tagspec_365.amp_validator_TagSpec$attrs=[222,223,-262];tagspec_365.amp_validator_TagSpec$attrLists=[13];tagspec_365.specUrl="https://www.ampproject.org/docs/reference/components/amp-timeago";tagspec_365.ampLayout=amplayout_17;tagspec_365.htmlFormat=["AMP"];tagspec_365.requiresExtension=["amp-timeago"];var extensionspec_63=new amp$validator$ExtensionSpec;extensionspec_63.name="amp-twitter";extensionspec_63.allowedVersions= -["0.1","latest"];extensionspec_63.deprecatedAllowDuplicates=!0;extensionspec_63.requiresUsage="GRANDFATHERED";var tagspec_366=new amp$validator$TagSpec("SCRIPT");tagspec_366.amp_validator_TagSpec$attrLists=[15];tagspec_366.htmlFormat=["AMP"];tagspec_366.extensionSpec=extensionspec_63;var tagspec_367=new amp$validator$TagSpec("AMP-TWITTER");tagspec_367.amp_validator_TagSpec$attrs=[224];tagspec_367.amp_validator_TagSpec$attrLists=[13];tagspec_367.ampLayout=amplayout_0;tagspec_367.htmlFormat=["AMP"]; -tagspec_367.requiresExtension=["amp-twitter"];var extensionspec_64=new amp$validator$ExtensionSpec;extensionspec_64.name="amp-user-notification";extensionspec_64.allowedVersions=["0.1","latest"];extensionspec_64.deprecatedAllowDuplicates=!0;extensionspec_64.requiresUsage="GRANDFATHERED";var tagspec_368=new amp$validator$TagSpec("SCRIPT");tagspec_368.amp_validator_TagSpec$attrLists=[15];tagspec_368.htmlFormat=["AMP"];tagspec_368.extensionSpec=extensionspec_64;var tagspec_369=new amp$validator$TagSpec("AMP-USER-NOTIFICATION"); -tagspec_369.amp_validator_TagSpec$attrs=[225,226,227];tagspec_369.amp_validator_TagSpec$attrLists=[13];tagspec_369.ampLayout=amplayout_5;tagspec_369.htmlFormat=["AMP"];tagspec_369.requiresExtension=["amp-user-notification"];var extensionspec_65=new amp$validator$ExtensionSpec;extensionspec_65.name="amp-video";extensionspec_65.allowedVersions=["0.1","latest"];extensionspec_65.requiresUsage="NONE";var tagspec_370=new amp$validator$TagSpec("SCRIPT");tagspec_370.specName="amp-video extension .js script"; -tagspec_370.amp_validator_TagSpec$attrLists=[15];tagspec_370.htmlFormat=["AMP","AMP4ADS"];tagspec_370.extensionSpec=extensionspec_65;var tagspec_371=new amp$validator$TagSpec("AMP-VIDEO");tagspec_371.amp_validator_TagSpec$attrs=[-39];tagspec_371.amp_validator_TagSpec$attrLists=[13,18];tagspec_371.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_371.ampLayout=amplayout_6;tagspec_371.disallowedAncestor=["AMP-STORY"];tagspec_371.htmlFormat=["AMP","AMP4ADS"];tagspec_371.alsoRequiresTagWarning= -[370];var tagspec_372=new amp$validator$TagSpec("AMP-VIDEO");tagspec_372.specName="amp-story >> amp-video";tagspec_372.amp_validator_TagSpec$attrs=[114,228];tagspec_372.amp_validator_TagSpec$attrLists=[13,18];tagspec_372.specUrl="https://www.ampproject.org/docs/reference/components/amp-video";tagspec_372.ampLayout=amplayout_6;tagspec_372.mandatoryAncestor="AMP-STORY";tagspec_372.htmlFormat=["AMP","AMP4ADS"];tagspec_372.requiresExtension=["amp-video"];var extensionspec_66=new amp$validator$ExtensionSpec; -extensionspec_66.name="amp-vimeo";extensionspec_66.allowedVersions=["0.1","latest"];extensionspec_66.deprecatedAllowDuplicates=!0;extensionspec_66.requiresUsage="GRANDFATHERED";var tagspec_373=new amp$validator$TagSpec("SCRIPT");tagspec_373.amp_validator_TagSpec$attrLists=[15];tagspec_373.htmlFormat=["AMP"];tagspec_373.extensionSpec=extensionspec_66;var tagspec_374=new amp$validator$TagSpec("AMP-VIMEO");tagspec_374.amp_validator_TagSpec$attrs=[156];tagspec_374.amp_validator_TagSpec$attrLists=[13]; -tagspec_374.ampLayout=amplayout_9;tagspec_374.htmlFormat=["AMP"];tagspec_374.requiresExtension=["amp-vimeo"];var extensionspec_67=new amp$validator$ExtensionSpec;extensionspec_67.name="amp-vine";extensionspec_67.allowedVersions=["0.1","latest"];extensionspec_67.deprecatedAllowDuplicates=!0;extensionspec_67.requiresUsage="GRANDFATHERED";var tagspec_375=new amp$validator$TagSpec("SCRIPT");tagspec_375.amp_validator_TagSpec$attrLists=[15];tagspec_375.htmlFormat=["AMP"];tagspec_375.extensionSpec=extensionspec_67; -var tagspec_376=new amp$validator$TagSpec("AMP-VINE");tagspec_376.amp_validator_TagSpec$attrs=[229];tagspec_376.amp_validator_TagSpec$attrLists=[13];tagspec_376.ampLayout=amplayout_6;tagspec_376.htmlFormat=["AMP"];tagspec_376.requiresExtension=["amp-vine"];var extensionspec_68=new amp$validator$ExtensionSpec;extensionspec_68.name="amp-vk";extensionspec_68.allowedVersions=["0.1","latest"];var tagspec_377=new amp$validator$TagSpec("SCRIPT");tagspec_377.amp_validator_TagSpec$attrLists=[15];tagspec_377.htmlFormat= -["AMP"];tagspec_377.extensionSpec=extensionspec_68;var amplayout_18=new amp$validator$AmpLayout(["FIXED","FLEX_ITEM","RESPONSIVE"]),tagspec_378=new amp$validator$TagSpec("AMP-VK");tagspec_378.amp_validator_TagSpec$attrs=[230];tagspec_378.amp_validator_TagSpec$attrLists=[13];tagspec_378.ampLayout=amplayout_18;tagspec_378.htmlFormat=["AMP"];tagspec_378.requiresExtension=["amp-vk"];var extensionspec_69=new amp$validator$ExtensionSpec;extensionspec_69.name="amp-web-push";extensionspec_69.allowedVersions= -["0.1","latest"];var tagspec_379=new amp$validator$TagSpec("SCRIPT");tagspec_379.amp_validator_TagSpec$attrLists=[15];tagspec_379.htmlFormat=["AMP"];tagspec_379.extensionSpec=extensionspec_69;var tagspec_380=new amp$validator$TagSpec("AMP-WEB-PUSH");tagspec_380.amp_validator_TagSpec$attrs=[231,232,233,234];tagspec_380.amp_validator_TagSpec$attrLists=[13];tagspec_380.specUrl="https://www.ampproject.org/docs/reference/components/amp-web-push";tagspec_380.ampLayout=amplayout_5;tagspec_380.htmlFormat= -["AMP"];tagspec_380.requiresExtension=["amp-web-push"];var amplayout_19=new amp$validator$AmpLayout(["FIXED"]),tagspec_381=new amp$validator$TagSpec("AMP-WEB-PUSH-WIDGET");tagspec_381.amp_validator_TagSpec$attrs=[235];tagspec_381.amp_validator_TagSpec$attrLists=[13];tagspec_381.specUrl="https://www.ampproject.org/docs/reference/components/amp-web-push";tagspec_381.ampLayout=amplayout_19;tagspec_381.htmlFormat=["AMP"];tagspec_381.requiresExtension=["amp-web-push"];var extensionspec_70=new amp$validator$ExtensionSpec; -extensionspec_70.name="amp-youtube";extensionspec_70.allowedVersions=["0.1","latest"];extensionspec_70.deprecatedAllowDuplicates=!0;extensionspec_70.requiresUsage="GRANDFATHERED";var tagspec_382=new amp$validator$TagSpec("SCRIPT");tagspec_382.amp_validator_TagSpec$attrLists=[15];tagspec_382.extensionSpec=extensionspec_70;var tagspec_383=new amp$validator$TagSpec("AMP-YOUTUBE");tagspec_383.amp_validator_TagSpec$attrs=[-35,236,237,238,-263];tagspec_383.amp_validator_TagSpec$attrLists=[13];tagspec_383.ampLayout= -amplayout_6;tagspec_383.requiresExtension=["amp-youtube"];var errorformat_0=new amp$validator$ErrorFormat("UNKNOWN_CODE","Unknown error."),errorformat_1=new amp$validator$ErrorFormat("MANDATORY_TAG_MISSING","The mandatory tag '%1' is missing or incorrect."),errorformat_2=new amp$validator$ErrorFormat("TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'."),errorformat_3=new amp$validator$ErrorFormat("WARNING_TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'. This will soon be an error."), -errorformat_4=new amp$validator$ErrorFormat("WARNING_EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused (no '%2' tag seen). This may become an error in the future."),errorformat_5=new amp$validator$ErrorFormat("EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused. Please remove this extension."),errorformat_6=new amp$validator$ErrorFormat("WARNING_EXTENSION_DEPRECATED_VERSION","The extension '%1' is referenced at version '%2' which is a deprecated version. Please use a more recent version of this extension. This may become an error in the future."), -errorformat_7=new amp$validator$ErrorFormat("ATTR_REQUIRED_BUT_MISSING","The attribute '%1' in tag '%2' is missing or incorrect, but required by attribute '%3'."),errorformat_8=new amp$validator$ErrorFormat("DISALLOWED_TAG","The tag '%1' is disallowed."),errorformat_9=new amp$validator$ErrorFormat("GENERAL_DISALLOWED_TAG","The tag '%1' is disallowed except in specific forms."),errorformat_10=new amp$validator$ErrorFormat("DISALLOWED_SCRIPT_TAG","Only AMP runtime 'script' tags are allowed, and only in the document head."), -errorformat_11=new amp$validator$ErrorFormat("DISALLOWED_ATTR","The attribute '%1' may not appear in tag '%2'."),errorformat_12=new amp$validator$ErrorFormat("DISALLOWED_STYLE_ATTR","The inline 'style' attribute is not allowed in AMP documents. Use 'style amp-custom' tag instead."),errorformat_13=new amp$validator$ErrorFormat("INVALID_ATTR_VALUE","The attribute '%1' in tag '%2' is set to the invalid value '%3'."),errorformat_14=new amp$validator$ErrorFormat("DUPLICATE_ATTRIBUTE","The tag '%1' contains the attribute '%2' repeated multiple times."), -errorformat_15=new amp$validator$ErrorFormat("ATTR_VALUE_REQUIRED_BY_LAYOUT","Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."),errorformat_16=new amp$validator$ErrorFormat("IMPLIED_LAYOUT_INVALID","The implied layout '%1' is not supported by tag '%2'."),errorformat_17=new amp$validator$ErrorFormat("SPECIFIED_LAYOUT_INVALID","The specified layout '%1' is not supported by tag '%2'."),errorformat_18=new amp$validator$ErrorFormat("MANDATORY_ATTR_MISSING", -"The mandatory attribute '%1' is missing in tag '%2'."),errorformat_19=new amp$validator$ErrorFormat("INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT","Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."),errorformat_20=new amp$validator$ErrorFormat("STYLESHEET_TOO_LONG","The author stylesheet specified in tag '%1' is too long - we saw %2 bytes whereas the limit is %3 bytes."),errorformat_21=new amp$validator$ErrorFormat("MANDATORY_CDATA_MISSING_OR_INCORRECT", -"The mandatory text (CDATA) inside tag '%1' is missing or incorrect."),errorformat_22=new amp$validator$ErrorFormat("CDATA_VIOLATES_BLACKLIST","The text (CDATA) inside tag '%1' contains '%2', which is disallowed."),errorformat_23=new amp$validator$ErrorFormat("NON_WHITESPACE_CDATA_ENCOUNTERED","The tag '%1' contains text (CDATA), which is disallowed."),errorformat_24=new amp$validator$ErrorFormat("DISALLOWED_PROPERTY_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is disallowed."), -errorformat_25=new amp$validator$ErrorFormat("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."),errorformat_26=new amp$validator$ErrorFormat("DUPLICATE_DIMENSION","Multiple image candidates with the same width or pixel density found in attribute '%1' in tag '%2'."),errorformat_27=new amp$validator$ErrorFormat("MISSING_URL","Missing URL for attribute '%1' in tag '%2'."),errorformat_28=new amp$validator$ErrorFormat("INVALID_URL", -"Malformed URL '%3' for attribute '%1' in tag '%2'."),errorformat_29=new amp$validator$ErrorFormat("INVALID_URL_PROTOCOL","Invalid URL protocol '%3:' for attribute '%1' in tag '%2'."),errorformat_30=new amp$validator$ErrorFormat("DISALLOWED_DOMAIN","The domain '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_31=new amp$validator$ErrorFormat("DISALLOWED_RELATIVE_URL","The relative URL '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_32=new amp$validator$ErrorFormat("MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE", -"The property '%1' is missing from attribute '%2' in tag '%3'."),errorformat_33=new amp$validator$ErrorFormat("UNESCAPED_TEMPLATE_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."),errorformat_34=new amp$validator$ErrorFormat("TEMPLATE_PARTIAL_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."),errorformat_35=new amp$validator$ErrorFormat("DEPRECATED_TAG","The tag '%1' is deprecated - use '%2' instead."), -errorformat_36=new amp$validator$ErrorFormat("DEPRECATED_ATTR","The attribute '%1' in tag '%2' is deprecated - use '%3' instead."),errorformat_37=new amp$validator$ErrorFormat("MUTUALLY_EXCLUSIVE_ATTRS","Mutually exclusive attributes encountered in tag '%1' - pick one of %2."),errorformat_38=new amp$validator$ErrorFormat("MANDATORY_ONEOF_ATTR_MISSING","The tag '%1' is missing a mandatory attribute - pick one of %2."),errorformat_39=new amp$validator$ErrorFormat("WRONG_PARENT_TAG","The parent tag of tag '%1' is '%2', but it can only be '%3'."), -errorformat_40=new amp$validator$ErrorFormat("DISALLOWED_TAG_ANCESTOR","The tag '%1' may not appear as a descendant of tag '%2'."),errorformat_41=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR","The tag '%1' may only appear as a descendant of tag '%2'."),errorformat_42=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR_WITH_HINT","The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"),errorformat_43=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG","The tag '%1' appears more than once in the document."), -errorformat_44=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG_WARNING","The tag '%1' appears more than once in the document. This will soon be an error."),errorformat_45=new amp$validator$ErrorFormat("TEMPLATE_IN_ATTR_NAME","Mustache template syntax in attribute name '%1' in tag '%2'."),errorformat_46=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_IMPLIED_LAYOUT","The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."),errorformat_47=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT", -"The attribute '%1' in tag '%2' is disallowed by specified layout '%3'."),errorformat_48=new amp$validator$ErrorFormat("INCORRECT_NUM_CHILD_TAGS","Tag '%1' must have %2 child tags - saw %3 child tags."),errorformat_49=new amp$validator$ErrorFormat("INCORRECT_MIN_NUM_CHILD_TAGS","Tag '%1' must have a minimum of %2 child tags - saw %3 child tags."),errorformat_50=new amp$validator$ErrorFormat("TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS","Tag '%1' is not allowed to have any sibling tags ('%2' should only have 1 child)."), -errorformat_51=new amp$validator$ErrorFormat("MANDATORY_LAST_CHILD_TAG","Tag '%1', if present, must be the last child of tag '%2'."),errorformat_52=new amp$validator$ErrorFormat("DISALLOWED_CHILD_TAG_NAME","Tag '%1' is disallowed as child of tag '%2'. Child tag must be one of %3."),errorformat_53=new amp$validator$ErrorFormat("DISALLOWED_FIRST_CHILD_TAG_NAME","Tag '%1' is disallowed as first child of tag '%2'. First child tag must be one of %3."),errorformat_54=new amp$validator$ErrorFormat("DISALLOWED_MANUFACTURED_BODY", -"Tag or text which is only allowed inside the body section found outside of the body section."),errorformat_55=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT","The tag '%1', a child tag of '%2', does not satisfy one of the acceptable reference points: %3."),errorformat_56=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR","The tag '%1', a child tag of '%2', does not satisfy the reference point '%3'."),errorformat_57=new amp$validator$ErrorFormat("MANDATORY_REFERENCE_POINT_MISSING", -"The mandatory reference point '%1' for '%2' is missing."),errorformat_58=new amp$validator$ErrorFormat("DUPLICATE_REFERENCE_POINT","The reference point '%1' for '%2' must be unique but a duplicate was encountered."),errorformat_59=new amp$validator$ErrorFormat("TAG_REFERENCE_POINT_CONFLICT","The tag '%1' conflicts with reference point '%2' because both define reference points."),errorformat_60=new amp$validator$ErrorFormat("BASE_TAG_MUST_PRECEED_ALL_URLS","The tag '%1', which contains URLs, was found earlier in the document than the BASE element."), -errorformat_61=new amp$validator$ErrorFormat("MISSING_REQUIRED_EXTENSION","The tag '%1' requires including the '%2' extension JavaScript."),errorformat_62=new amp$validator$ErrorFormat("DOCUMENT_TOO_COMPLEX","The document is too complex."),errorformat_63=new amp$validator$ErrorFormat("CSS_SYNTAX","CSS syntax error in tag '%1' - %2."),errorformat_64=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_AT_RULE","CSS syntax error in tag '%1' - saw invalid at rule '@%2'."),errorformat_65=new amp$validator$ErrorFormat("CSS_SYNTAX_STRAY_TRAILING_BACKSLASH", -"CSS syntax error in tag '%1' - stray trailing backslash."),errorformat_66=new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_COMMENT","CSS syntax error in tag '%1' - unterminated comment."),errorformat_67=new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_STRING","CSS syntax error in tag '%1' - unterminated string."),errorformat_68=new amp$validator$ErrorFormat("CSS_SYNTAX_BAD_URL","CSS syntax error in tag '%1' - bad url."),errorformat_69=new amp$validator$ErrorFormat("CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE", -"CSS syntax error in tag '%1' - end of stylesheet encountered in prelude of a qualified rule."),errorformat_70=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY","CSS syntax error in tag '%1' - invalid property '%2'. The only allowed properties are '%3'."),errorformat_71=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY_NOLIST","CSS syntax error in tag '%1' - invalid property '%2'."),errorformat_72=new amp$validator$ErrorFormat("CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS","CSS syntax error in tag '%1' - qualified rule '%2' has no declarations."), -errorformat_73=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - qualified rule '%2' must be located inside of a keyframe."),errorformat_74=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - keyframe inside keyframe is not allowed."),errorformat_75=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_DECLARATION","CSS syntax error in tag '%1' - invalid declaration."), -errorformat_76=new amp$validator$ErrorFormat("CSS_SYNTAX_INCOMPLETE_DECLARATION","CSS syntax error in tag '%1' - incomplete declaration."),errorformat_77=new amp$validator$ErrorFormat("CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR","CSS syntax error in tag '%1' - invalid pseudo selector."),errorformat_78=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_SELECTOR","CSS syntax error in tag '%1' - missing selector."),errorformat_79=new amp$validator$ErrorFormat("CSS_SYNTAX_NOT_A_SELECTOR_START","CSS syntax error in tag '%1' - not a selector start."), -errorformat_80=new amp$validator$ErrorFormat("CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR","CSS syntax error in tag '%1' - unparsed input remains in selector."),errorformat_81=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_URL","CSS syntax error in tag '%1' - missing url."),errorformat_82=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL","CSS syntax error in tag '%1' - invalid url '%2'."),errorformat_83=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL_PROTOCOL","CSS syntax error in tag '%1' - invalid url protocol '%2:'."), -errorformat_84=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_DOMAIN","CSS syntax error in tag '%1' - invalid domain '%2'."),errorformat_85=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_RELATIVE_URL","CSS syntax error in tag '%1' - disallowed relative url '%2'."),errorformat_86=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_ATTR_SELECTOR","CSS syntax error in tag '%1' - invalid attribute selector."),errorformat_87=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE", -"CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'."),errorformat_88=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'. Allowed values: %4."),errorformat_89=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE","CSS syntax error in tag '%1' - the property '%2' is disallowed within @%3. Allowed properties: %4."),errorformat_90= -new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH","CSS syntax error in tag '%1' - the property '%2' is disallowed together with '%3'. Allowed properties: %4."),errorformat_91=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION","CSS syntax error in tag '%1' - the property '%2' is disallowed unless the enclosing rule is prefixed with the '%3' qualification."),errorspecificity_0=new amp$validator$ErrorSpecificity;errorspecificity_0.code="UNKNOWN_CODE"; -errorspecificity_0.specificity=0;var errorspecificity_1=new amp$validator$ErrorSpecificity;errorspecificity_1.code="MANDATORY_CDATA_MISSING_OR_INCORRECT";errorspecificity_1.specificity=1;var errorspecificity_2=new amp$validator$ErrorSpecificity;errorspecificity_2.code="CDATA_VIOLATES_BLACKLIST";errorspecificity_2.specificity=2;var errorspecificity_3=new amp$validator$ErrorSpecificity;errorspecificity_3.code="NON_WHITESPACE_CDATA_ENCOUNTERED";errorspecificity_3.specificity=3;var errorspecificity_4= -new amp$validator$ErrorSpecificity;errorspecificity_4.code="WRONG_PARENT_TAG";errorspecificity_4.specificity=4;var errorspecificity_5=new amp$validator$ErrorSpecificity;errorspecificity_5.code="DISALLOWED_TAG_ANCESTOR";errorspecificity_5.specificity=5;var errorspecificity_6=new amp$validator$ErrorSpecificity;errorspecificity_6.code="MANDATORY_TAG_ANCESTOR";errorspecificity_6.specificity=6;var errorspecificity_7=new amp$validator$ErrorSpecificity;errorspecificity_7.code="MANDATORY_TAG_ANCESTOR_WITH_HINT"; -errorspecificity_7.specificity=7;var errorspecificity_8=new amp$validator$ErrorSpecificity;errorspecificity_8.code="MANDATORY_TAG_MISSING";errorspecificity_8.specificity=8;var errorspecificity_9=new amp$validator$ErrorSpecificity;errorspecificity_9.code="TAG_REQUIRED_BY_MISSING";errorspecificity_9.specificity=9;var errorspecificity_10=new amp$validator$ErrorSpecificity;errorspecificity_10.code="MISSING_REQUIRED_EXTENSION";errorspecificity_10.specificity=10;var errorspecificity_11=new amp$validator$ErrorSpecificity; -errorspecificity_11.code="WARNING_TAG_REQUIRED_BY_MISSING";errorspecificity_11.specificity=11;var errorspecificity_12=new amp$validator$ErrorSpecificity;errorspecificity_12.code="EXTENSION_UNUSED";errorspecificity_12.specificity=12;var errorspecificity_13=new amp$validator$ErrorSpecificity;errorspecificity_13.code="WARNING_EXTENSION_UNUSED";errorspecificity_13.specificity=13;var errorspecificity_14=new amp$validator$ErrorSpecificity;errorspecificity_14.code="WARNING_EXTENSION_DEPRECATED_VERSION"; -errorspecificity_14.specificity=14;var errorspecificity_15=new amp$validator$ErrorSpecificity;errorspecificity_15.code="ATTR_REQUIRED_BUT_MISSING";errorspecificity_15.specificity=15;var errorspecificity_16=new amp$validator$ErrorSpecificity;errorspecificity_16.code="DISALLOWED_TAG";errorspecificity_16.specificity=16;var errorspecificity_17=new amp$validator$ErrorSpecificity;errorspecificity_17.code="DISALLOWED_ATTR";errorspecificity_17.specificity=17;var errorspecificity_18=new amp$validator$ErrorSpecificity; -errorspecificity_18.code="INVALID_ATTR_VALUE";errorspecificity_18.specificity=18;var errorspecificity_19=new amp$validator$ErrorSpecificity;errorspecificity_19.code="DUPLICATE_ATTRIBUTE";errorspecificity_19.specificity=19;var errorspecificity_20=new amp$validator$ErrorSpecificity;errorspecificity_20.code="ATTR_VALUE_REQUIRED_BY_LAYOUT";errorspecificity_20.specificity=20;var errorspecificity_21=new amp$validator$ErrorSpecificity;errorspecificity_21.code="MANDATORY_ATTR_MISSING";errorspecificity_21.specificity= -21;var errorspecificity_22=new amp$validator$ErrorSpecificity;errorspecificity_22.code="MANDATORY_ONEOF_ATTR_MISSING";errorspecificity_22.specificity=22;var errorspecificity_23=new amp$validator$ErrorSpecificity;errorspecificity_23.code="DUPLICATE_UNIQUE_TAG";errorspecificity_23.specificity=23;var errorspecificity_24=new amp$validator$ErrorSpecificity;errorspecificity_24.code="DUPLICATE_UNIQUE_TAG_WARNING";errorspecificity_24.specificity=24;var errorspecificity_25=new amp$validator$ErrorSpecificity; -errorspecificity_25.code="STYLESHEET_TOO_LONG";errorspecificity_25.specificity=25;var errorspecificity_26=new amp$validator$ErrorSpecificity;errorspecificity_26.code="CSS_SYNTAX";errorspecificity_26.specificity=26;var errorspecificity_27=new amp$validator$ErrorSpecificity;errorspecificity_27.code="CSS_SYNTAX_INVALID_AT_RULE";errorspecificity_27.specificity=27;var errorspecificity_28=new amp$validator$ErrorSpecificity;errorspecificity_28.code="MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE";errorspecificity_28.specificity= -28;var errorspecificity_29=new amp$validator$ErrorSpecificity;errorspecificity_29.code="INVALID_PROPERTY_VALUE_IN_ATTR_VALUE";errorspecificity_29.specificity=29;var errorspecificity_30=new amp$validator$ErrorSpecificity;errorspecificity_30.code="DISALLOWED_PROPERTY_IN_ATTR_VALUE";errorspecificity_30.specificity=30;var errorspecificity_31=new amp$validator$ErrorSpecificity;errorspecificity_31.code="MUTUALLY_EXCLUSIVE_ATTRS";errorspecificity_31.specificity=31;var errorspecificity_32=new amp$validator$ErrorSpecificity; -errorspecificity_32.code="UNESCAPED_TEMPLATE_IN_ATTR_VALUE";errorspecificity_32.specificity=32;var errorspecificity_33=new amp$validator$ErrorSpecificity;errorspecificity_33.code="TEMPLATE_PARTIAL_IN_ATTR_VALUE";errorspecificity_33.specificity=33;var errorspecificity_34=new amp$validator$ErrorSpecificity;errorspecificity_34.code="TEMPLATE_IN_ATTR_NAME";errorspecificity_34.specificity=34;var errorspecificity_35=new amp$validator$ErrorSpecificity;errorspecificity_35.code="INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT"; -errorspecificity_35.specificity=35;var errorspecificity_36=new amp$validator$ErrorSpecificity;errorspecificity_36.code="IMPLIED_LAYOUT_INVALID";errorspecificity_36.specificity=36;var errorspecificity_37=new amp$validator$ErrorSpecificity;errorspecificity_37.code="SPECIFIED_LAYOUT_INVALID";errorspecificity_37.specificity=37;var errorspecificity_38=new amp$validator$ErrorSpecificity;errorspecificity_38.code="ATTR_DISALLOWED_BY_IMPLIED_LAYOUT";errorspecificity_38.specificity=38;var errorspecificity_39= -new amp$validator$ErrorSpecificity;errorspecificity_39.code="ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT";errorspecificity_39.specificity=39;var errorspecificity_40=new amp$validator$ErrorSpecificity;errorspecificity_40.code="DUPLICATE_DIMENSION";errorspecificity_40.specificity=40;var errorspecificity_41=new amp$validator$ErrorSpecificity;errorspecificity_41.code="DISALLOWED_RELATIVE_URL";errorspecificity_41.specificity=41;var errorspecificity_42=new amp$validator$ErrorSpecificity;errorspecificity_42.code= -"MISSING_URL";errorspecificity_42.specificity=42;var errorspecificity_43=new amp$validator$ErrorSpecificity;errorspecificity_43.code="DISALLOWED_DOMAIN";errorspecificity_43.specificity=43;var errorspecificity_44=new amp$validator$ErrorSpecificity;errorspecificity_44.code="INVALID_URL_PROTOCOL";errorspecificity_44.specificity=44;var errorspecificity_45=new amp$validator$ErrorSpecificity;errorspecificity_45.code="INVALID_URL";errorspecificity_45.specificity=45;var errorspecificity_46=new amp$validator$ErrorSpecificity; -errorspecificity_46.code="DISALLOWED_STYLE_ATTR";errorspecificity_46.specificity=46;var errorspecificity_47=new amp$validator$ErrorSpecificity;errorspecificity_47.code="CSS_SYNTAX_STRAY_TRAILING_BACKSLASH";errorspecificity_47.specificity=47;var errorspecificity_48=new amp$validator$ErrorSpecificity;errorspecificity_48.code="CSS_SYNTAX_UNTERMINATED_COMMENT";errorspecificity_48.specificity=48;var errorspecificity_49=new amp$validator$ErrorSpecificity;errorspecificity_49.code="CSS_SYNTAX_UNTERMINATED_STRING"; -errorspecificity_49.specificity=49;var errorspecificity_50=new amp$validator$ErrorSpecificity;errorspecificity_50.code="CSS_SYNTAX_BAD_URL";errorspecificity_50.specificity=50;var errorspecificity_51=new amp$validator$ErrorSpecificity;errorspecificity_51.code="CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE";errorspecificity_51.specificity=51;var errorspecificity_52=new amp$validator$ErrorSpecificity;errorspecificity_52.code="CSS_SYNTAX_INVALID_DECLARATION";errorspecificity_52.specificity=52;var errorspecificity_53= -new amp$validator$ErrorSpecificity;errorspecificity_53.code="CSS_SYNTAX_INCOMPLETE_DECLARATION";errorspecificity_53.specificity=53;var errorspecificity_54=new amp$validator$ErrorSpecificity;errorspecificity_54.code="CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR";errorspecificity_54.specificity=54;var errorspecificity_55=new amp$validator$ErrorSpecificity;errorspecificity_55.code="CSS_SYNTAX_MISSING_SELECTOR";errorspecificity_55.specificity=55;var errorspecificity_56=new amp$validator$ErrorSpecificity;errorspecificity_56.code= -"CSS_SYNTAX_NOT_A_SELECTOR_START";errorspecificity_56.specificity=56;var errorspecificity_57=new amp$validator$ErrorSpecificity;errorspecificity_57.code="CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR";errorspecificity_57.specificity=57;var errorspecificity_58=new amp$validator$ErrorSpecificity;errorspecificity_58.code="CSS_SYNTAX_MISSING_URL";errorspecificity_58.specificity=58;var errorspecificity_59=new amp$validator$ErrorSpecificity;errorspecificity_59.code="CSS_SYNTAX_DISALLOWED_DOMAIN";errorspecificity_59.specificity= -59;var errorspecificity_60=new amp$validator$ErrorSpecificity;errorspecificity_60.code="CSS_SYNTAX_INVALID_URL";errorspecificity_60.specificity=60;var errorspecificity_61=new amp$validator$ErrorSpecificity;errorspecificity_61.code="CSS_SYNTAX_INVALID_URL_PROTOCOL";errorspecificity_61.specificity=61;var errorspecificity_62=new amp$validator$ErrorSpecificity;errorspecificity_62.code="CSS_SYNTAX_DISALLOWED_RELATIVE_URL";errorspecificity_62.specificity=62;var errorspecificity_63=new amp$validator$ErrorSpecificity; -errorspecificity_63.code="INCORRECT_NUM_CHILD_TAGS";errorspecificity_63.specificity=63;var errorspecificity_64=new amp$validator$ErrorSpecificity;errorspecificity_64.code="DISALLOWED_CHILD_TAG_NAME";errorspecificity_64.specificity=64;var errorspecificity_65=new amp$validator$ErrorSpecificity;errorspecificity_65.code="DISALLOWED_FIRST_CHILD_TAG_NAME";errorspecificity_65.specificity=65;var errorspecificity_66=new amp$validator$ErrorSpecificity;errorspecificity_66.code="CSS_SYNTAX_INVALID_ATTR_SELECTOR"; -errorspecificity_66.specificity=66;var errorspecificity_67=new amp$validator$ErrorSpecificity;errorspecificity_67.code="CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT";errorspecificity_67.specificity=67;var errorspecificity_68=new amp$validator$ErrorSpecificity;errorspecificity_68.code="MANDATORY_REFERENCE_POINT_MISSING";errorspecificity_68.specificity=68;var errorspecificity_69=new amp$validator$ErrorSpecificity;errorspecificity_69.code="DUPLICATE_REFERENCE_POINT";errorspecificity_69.specificity=69; -var errorspecificity_70=new amp$validator$ErrorSpecificity;errorspecificity_70.code="TAG_REFERENCE_POINT_CONFLICT";errorspecificity_70.specificity=70;var errorspecificity_71=new amp$validator$ErrorSpecificity;errorspecificity_71.code="CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR";errorspecificity_71.specificity=71;var errorspecificity_72=new amp$validator$ErrorSpecificity;errorspecificity_72.code="CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE";errorspecificity_72.specificity=72;var errorspecificity_73= -new amp$validator$ErrorSpecificity;errorspecificity_73.code="CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT";errorspecificity_73.specificity=73;var errorspecificity_74=new amp$validator$ErrorSpecificity;errorspecificity_74.code="CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE";errorspecificity_74.specificity=74;var errorspecificity_75=new amp$validator$ErrorSpecificity;errorspecificity_75.code="CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH";errorspecificity_75.specificity=75;var errorspecificity_76= -new amp$validator$ErrorSpecificity;errorspecificity_76.code="CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION";errorspecificity_76.specificity=76;var errorspecificity_77=new amp$validator$ErrorSpecificity;errorspecificity_77.code="BASE_TAG_MUST_PRECEED_ALL_URLS";errorspecificity_77.specificity=77;var errorspecificity_78=new amp$validator$ErrorSpecificity;errorspecificity_78.code="DISALLOWED_SCRIPT_TAG";errorspecificity_78.specificity=100;var errorspecificity_79=new amp$validator$ErrorSpecificity;errorspecificity_79.code= -"GENERAL_DISALLOWED_TAG";errorspecificity_79.specificity=101;var errorspecificity_80=new amp$validator$ErrorSpecificity;errorspecificity_80.code="DEPRECATED_ATTR";errorspecificity_80.specificity=102;var errorspecificity_81=new amp$validator$ErrorSpecificity;errorspecificity_81.code="DEPRECATED_TAG";errorspecificity_81.specificity=103;var errorspecificity_82=new amp$validator$ErrorSpecificity;errorspecificity_82.code="DISALLOWED_MANUFACTURED_BODY";errorspecificity_82.specificity=104;var errorspecificity_83= -new amp$validator$ErrorSpecificity;errorspecificity_83.code="DOCUMENT_TOO_COMPLEX";errorspecificity_83.specificity=105;var errorspecificity_84=new amp$validator$ErrorSpecificity;errorspecificity_84.code="INCORRECT_MIN_NUM_CHILD_TAGS";errorspecificity_84.specificity=106;var errorspecificity_85=new amp$validator$ErrorSpecificity;errorspecificity_85.code="TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS";errorspecificity_85.specificity=107;var errorspecificity_86=new amp$validator$ErrorSpecificity;errorspecificity_86.code= -"MANDATORY_LAST_CHILD_TAG";errorspecificity_86.specificity=108;var errorspecificity_87=new amp$validator$ErrorSpecificity;errorspecificity_87.code="CSS_SYNTAX_INVALID_PROPERTY";errorspecificity_87.specificity=109;var errorspecificity_88=new amp$validator$ErrorSpecificity;errorspecificity_88.code="CSS_SYNTAX_INVALID_PROPERTY_NOLIST";errorspecificity_88.specificity=110;var errorspecificity_89=new amp$validator$ErrorSpecificity;errorspecificity_89.code="CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS"; -errorspecificity_89.specificity=111;var errorspecificity_90=new amp$validator$ErrorSpecificity;errorspecificity_90.code="CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME";errorspecificity_90.specificity=112;var errorspecificity_91=new amp$validator$ErrorSpecificity;errorspecificity_91.code="CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME";errorspecificity_91.specificity=113;var descendanttaglist_0=new amp$validator$DescendantTagList;descendanttaglist_0.name="amp-story-grid-layer-allowed-descendants"; -descendanttaglist_0.allowedTags="ABBR ADDRESS AMP-ANALYTICS AMP-AUDIO AMP-EXPERIMENT AMP-FIT-TEXT AMP-FONT AMP-GFYCAT AMP-GIST AMP-GOOGLE-VRVIEW-IMAGE AMP-IMG AMP-INSTALL-SERVICEWORKER AMP-LIST AMP-LIVE-LIST AMP-PIXEL AMP-VIDEO ARTICLE ASIDE B BDI BDO BLOCKQUOTE BR CAPTION CITE CODE COL COLGROUP DATA DD DEL DFN DIV DL DT EM FIGCAPTION FIGURE FOOTER H1 H2 H3 H4 H5 H6 HEADER HGROUP HR I INS KBD LI MAIN MARK NAV NOSCRIPT OL P PRE Q RP RT RTC RUBY S SAMP SECTION SMALL SOURCE SPAN STRONG SUB SUP TABLE TBODY TD TFOOT TH THEAD TIME TR TRACK U UL VAR WBR".split(" "); -var validatorrules_0=new amp$validator$ValidatorRules([tagspec_0,tagspec_1,tagspec_2,tagspec_3,tagspec_4,tagspec_5,tagspec_6,tagspec_7,tagspec_8,tagspec_9,tagspec_10,tagspec_11,tagspec_12,tagspec_13,tagspec_14,tagspec_15,tagspec_16,tagspec_17,tagspec_18,tagspec_19,tagspec_20,tagspec_21,tagspec_22,tagspec_23,tagspec_24,tagspec_25,tagspec_26,tagspec_27,tagspec_28,tagspec_29,tagspec_30,tagspec_31,tagspec_32,tagspec_33,tagspec_34,tagspec_35,tagspec_36,tagspec_37,tagspec_38,tagspec_39,tagspec_40,tagspec_41, -tagspec_42,tagspec_43,tagspec_44,tagspec_45,tagspec_46,tagspec_47,tagspec_48,tagspec_49,tagspec_50,tagspec_51,tagspec_52,tagspec_53,tagspec_54,tagspec_55,tagspec_56,tagspec_57,tagspec_58,tagspec_59,tagspec_60,tagspec_61,tagspec_62,tagspec_63,tagspec_64,tagspec_65,tagspec_66,tagspec_67,tagspec_68,tagspec_69,tagspec_70,tagspec_71,tagspec_72,tagspec_73,tagspec_74,tagspec_75,tagspec_76,tagspec_77,tagspec_78,tagspec_79,tagspec_80,tagspec_81,tagspec_82,tagspec_83,tagspec_84,tagspec_85,tagspec_86,tagspec_87, -tagspec_88,tagspec_89,tagspec_90,tagspec_91,tagspec_92,tagspec_93,tagspec_94,tagspec_95,tagspec_96,tagspec_97,tagspec_98,tagspec_99,tagspec_100,tagspec_101,tagspec_102,tagspec_103,tagspec_104,tagspec_105,tagspec_106,tagspec_107,tagspec_108,tagspec_109,tagspec_110,tagspec_111,tagspec_112,tagspec_113,tagspec_114,tagspec_115,tagspec_116,tagspec_117,tagspec_118,tagspec_119,tagspec_120,tagspec_121,tagspec_122,tagspec_123,tagspec_124,tagspec_125,tagspec_126,tagspec_127,tagspec_128,tagspec_129,tagspec_130, -tagspec_131,tagspec_132,tagspec_133,tagspec_134,tagspec_135,tagspec_136,tagspec_137,tagspec_138,tagspec_139,tagspec_140,tagspec_141,tagspec_142,tagspec_143,tagspec_144,tagspec_145,tagspec_146,tagspec_147,tagspec_148,tagspec_149,tagspec_150,tagspec_151,tagspec_152,tagspec_153,tagspec_154,tagspec_155,tagspec_156,tagspec_157,tagspec_158,tagspec_159,tagspec_160,tagspec_161,tagspec_162,tagspec_163,tagspec_164,tagspec_165,tagspec_166,tagspec_167,tagspec_168,tagspec_169,tagspec_170,tagspec_171,tagspec_172, -tagspec_173,tagspec_174,tagspec_175,tagspec_176,tagspec_177,tagspec_178,tagspec_179,tagspec_180,tagspec_181,tagspec_182,tagspec_183,tagspec_184,tagspec_185,tagspec_186,tagspec_187,tagspec_188,tagspec_189,tagspec_190,tagspec_191,tagspec_192,tagspec_193,tagspec_194,tagspec_195,tagspec_196,tagspec_197,tagspec_198,tagspec_199,tagspec_200,tagspec_201,tagspec_202,tagspec_203,tagspec_204,tagspec_205,tagspec_206,tagspec_207,tagspec_208,tagspec_209,tagspec_210,tagspec_211,tagspec_212,tagspec_213,tagspec_214, -tagspec_215,tagspec_216,tagspec_217,tagspec_218,tagspec_219,tagspec_220,tagspec_221,tagspec_222,tagspec_223,tagspec_224,tagspec_225,tagspec_226,tagspec_227,tagspec_228,tagspec_229,tagspec_230,tagspec_231,tagspec_232,tagspec_233,tagspec_234,tagspec_235,tagspec_236,tagspec_237,tagspec_238,tagspec_239,tagspec_240,tagspec_241,tagspec_242,tagspec_243,tagspec_244,tagspec_245,tagspec_246,tagspec_247,tagspec_248,tagspec_249,tagspec_250,tagspec_251,tagspec_252,tagspec_253,tagspec_254,tagspec_255,tagspec_256, -tagspec_257,tagspec_258,tagspec_259,tagspec_260,tagspec_261,tagspec_262,tagspec_263,tagspec_264,tagspec_265,tagspec_266,tagspec_267,tagspec_268,tagspec_269,tagspec_270,tagspec_271,tagspec_272,tagspec_273,tagspec_274,tagspec_275,tagspec_276,tagspec_277,tagspec_278,tagspec_279,tagspec_280,tagspec_281,tagspec_282,tagspec_283,tagspec_284,tagspec_285,tagspec_286,tagspec_287,tagspec_288,tagspec_289,tagspec_290,tagspec_291,tagspec_292,tagspec_293,tagspec_294,tagspec_295,tagspec_296,tagspec_297,tagspec_298, -tagspec_299,tagspec_300,tagspec_301,tagspec_302,tagspec_303,tagspec_304,tagspec_305,tagspec_306,tagspec_307,tagspec_308,tagspec_309,tagspec_310,tagspec_311,tagspec_312,tagspec_313,tagspec_314,tagspec_315,tagspec_316,tagspec_317,tagspec_318,tagspec_319,tagspec_320,tagspec_321,tagspec_322,tagspec_323,tagspec_324,tagspec_325,tagspec_326,tagspec_327,tagspec_328,tagspec_329,tagspec_330,tagspec_331,tagspec_332,tagspec_333,tagspec_334,tagspec_335,tagspec_336,tagspec_337,tagspec_338,tagspec_339,tagspec_340, -tagspec_341,tagspec_342,tagspec_343,tagspec_344,tagspec_345,tagspec_346,tagspec_347,tagspec_348,tagspec_349,tagspec_350,tagspec_351,tagspec_352,tagspec_353,tagspec_354,tagspec_355,tagspec_356,tagspec_357,tagspec_358,tagspec_359,tagspec_360,tagspec_361,tagspec_362,tagspec_363,tagspec_364,tagspec_365,tagspec_366,tagspec_367,tagspec_368,tagspec_369,tagspec_370,tagspec_371,tagspec_372,tagspec_373,tagspec_374,tagspec_375,tagspec_376,tagspec_377,tagspec_378,tagspec_379,tagspec_380,tagspec_381,tagspec_382, -tagspec_383]);validatorrules_0.minValidatorRevisionRequired=295;validatorrules_0.specFileRevision=546;validatorrules_0.templateSpecUrl="https://www.ampproject.org/docs/reference/components/dynamic/amp-mustache";validatorrules_0.errorFormats=[errorformat_0,errorformat_1,errorformat_2,errorformat_3,errorformat_4,errorformat_5,errorformat_6,errorformat_7,errorformat_8,errorformat_9,errorformat_10,errorformat_11,errorformat_12,errorformat_13,errorformat_14,errorformat_15,errorformat_16,errorformat_17, -errorformat_18,errorformat_19,errorformat_20,errorformat_21,errorformat_22,errorformat_23,errorformat_24,errorformat_25,errorformat_26,errorformat_27,errorformat_28,errorformat_29,errorformat_30,errorformat_31,errorformat_32,errorformat_33,errorformat_34,errorformat_35,errorformat_36,errorformat_37,errorformat_38,errorformat_39,errorformat_40,errorformat_41,errorformat_42,errorformat_43,errorformat_44,errorformat_45,errorformat_46,errorformat_47,errorformat_48,errorformat_49,errorformat_50,errorformat_51, -errorformat_52,errorformat_53,errorformat_54,errorformat_55,errorformat_56,errorformat_57,errorformat_58,errorformat_59,errorformat_60,errorformat_61,errorformat_62,errorformat_63,errorformat_64,errorformat_65,errorformat_66,errorformat_67,errorformat_68,errorformat_69,errorformat_70,errorformat_71,errorformat_72,errorformat_73,errorformat_74,errorformat_75,errorformat_76,errorformat_77,errorformat_78,errorformat_79,errorformat_80,errorformat_81,errorformat_82,errorformat_83,errorformat_84,errorformat_85, -errorformat_86,errorformat_87,errorformat_88,errorformat_89,errorformat_90,errorformat_91];validatorrules_0.errorSpecificity=[errorspecificity_0,errorspecificity_1,errorspecificity_2,errorspecificity_3,errorspecificity_4,errorspecificity_5,errorspecificity_6,errorspecificity_7,errorspecificity_8,errorspecificity_9,errorspecificity_10,errorspecificity_11,errorspecificity_12,errorspecificity_13,errorspecificity_14,errorspecificity_15,errorspecificity_16,errorspecificity_17,errorspecificity_18,errorspecificity_19, -errorspecificity_20,errorspecificity_21,errorspecificity_22,errorspecificity_23,errorspecificity_24,errorspecificity_25,errorspecificity_26,errorspecificity_27,errorspecificity_28,errorspecificity_29,errorspecificity_30,errorspecificity_31,errorspecificity_32,errorspecificity_33,errorspecificity_34,errorspecificity_35,errorspecificity_36,errorspecificity_37,errorspecificity_38,errorspecificity_39,errorspecificity_40,errorspecificity_41,errorspecificity_42,errorspecificity_43,errorspecificity_44,errorspecificity_45, -errorspecificity_46,errorspecificity_47,errorspecificity_48,errorspecificity_49,errorspecificity_50,errorspecificity_51,errorspecificity_52,errorspecificity_53,errorspecificity_54,errorspecificity_55,errorspecificity_56,errorspecificity_57,errorspecificity_58,errorspecificity_59,errorspecificity_60,errorspecificity_61,errorspecificity_62,errorspecificity_63,errorspecificity_64,errorspecificity_65,errorspecificity_66,errorspecificity_67,errorspecificity_68,errorspecificity_69,errorspecificity_70,errorspecificity_71, -errorspecificity_72,errorspecificity_73,errorspecificity_74,errorspecificity_75,errorspecificity_76,errorspecificity_77,errorspecificity_78,errorspecificity_79,errorspecificity_80,errorspecificity_81,errorspecificity_82,errorspecificity_83,errorspecificity_84,errorspecificity_85,errorspecificity_86,errorspecificity_87,errorspecificity_88,errorspecificity_89,errorspecificity_90,errorspecificity_91];validatorrules_0.stylesSpecUrl="https://www.ampproject.org/docs/guides/author-develop/responsive/style_pages"; -validatorrules_0.amp_validator_ValidatorRules$descendantTagList=[descendanttaglist_0];validatorrules_0.scriptSpecUrl="https://www.ampproject.org/docs/reference/spec#html-tags";validatorrules_0.dispatchKeyByTagSpecId[7]="rel\x00canonical";validatorrules_0.dispatchKeyByTagSpecId[8]="rel\x00manifest";validatorrules_0.dispatchKeyByTagSpecId[9]="rel\x00stylesheet";validatorrules_0.dispatchKeyByTagSpecId[10]="itemprop\x00sameas";validatorrules_0.dispatchKeyByTagSpecId[13]="charset";validatorrules_0.dispatchKeyByTagSpecId[14]= -"name\x00viewport";validatorrules_0.dispatchKeyByTagSpecId[15]="http-equiv\x00x-ua-compatible";validatorrules_0.dispatchKeyByTagSpecId[16]="name\x00apple-itunes-app";validatorrules_0.dispatchKeyByTagSpecId[17]="name\x00amp-experiments-opt-in";validatorrules_0.dispatchKeyByTagSpecId[18]="name\x00amp-3p-iframe-src";validatorrules_0.dispatchKeyByTagSpecId[19]="name\x00amp-experiment-token";validatorrules_0.dispatchKeyByTagSpecId[20]="name\x00amp-link-variable-allowed-origin";validatorrules_0.dispatchKeyByTagSpecId[21]= -"name\x00amp-google-client-id-api";validatorrules_0.dispatchKeyByTagSpecId[22]="name\x00amp-ad-doubleclick-sra";validatorrules_0.dispatchKeyByTagSpecId[23]="name\x00amp4ads-id";validatorrules_0.dispatchKeyByTagSpecId[25]="http-equiv\x00content-type";validatorrules_0.dispatchKeyByTagSpecId[26]="http-equiv\x00content-language";validatorrules_0.dispatchKeyByTagSpecId[27]="http-equiv\x00pics-label";validatorrules_0.dispatchKeyByTagSpecId[28]="http-equiv\x00imagetoolbar";validatorrules_0.dispatchKeyByTagSpecId[29]= -"http-equiv\x00content-style-type";validatorrules_0.dispatchKeyByTagSpecId[30]="http-equiv\x00content-script-type";validatorrules_0.dispatchKeyByTagSpecId[31]="http-equiv\x00origin-trial";validatorrules_0.dispatchKeyByTagSpecId[32]="http-equiv\x00resource-type";validatorrules_0.dispatchKeyByTagSpecId[33]="name\x00amp-ad-enable-refresh";validatorrules_0.dispatchKeyByTagSpecId[38]="amp-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[39]="amp4ads-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[40]= -"amp-boilerplate\x00\x00NOSCRIPT";validatorrules_0.dispatchKeyByTagSpecId[41]="amp-keyframes";validatorrules_0.dispatchKeyByTagSpecId[176]="method\x00post";validatorrules_0.dispatchKeyByTagSpecId[177]="submitting";validatorrules_0.dispatchKeyByTagSpecId[179]="template";validatorrules_0.dispatchKeyByTagSpecId[180]="submit-error";validatorrules_0.dispatchKeyByTagSpecId[195]="src\x00https://cdn.ampproject.org/v0.js";validatorrules_0.dispatchKeyByTagSpecId[196]="src\x00https://cdn.ampproject.org/amp4ads-v0.js"; -validatorrules_0.dispatchKeyByTagSpecId[197]="type\x00application/ld+json";validatorrules_0.dispatchKeyByTagSpecId[198]="id\x00amp-rtc";validatorrules_0.dispatchKeyByTagSpecId[199]="type\x00application/json\x00AMP-IMA-VIDEO";validatorrules_0.dispatchKeyByTagSpecId[224]="id\x00amp-access";validatorrules_0.dispatchKeyByTagSpecId[230]="type\x00application/json\x00AMP-AD-EXIT";validatorrules_0.dispatchKeyByTagSpecId[233]="data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[234]="data-enable-refresh\x00"; -validatorrules_0.dispatchKeyByTagSpecId[236]="data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[238]="type\x00application/json\x00AMP-ANALYTICS";validatorrules_0.dispatchKeyByTagSpecId[243]="type\x00application/json\x00AMP-ANIMATION";validatorrules_0.dispatchKeyByTagSpecId[256]="type\x00application/json\x00AMP-STATE";validatorrules_0.dispatchKeyByTagSpecId[271]="type\x00application/json\x00AMP-EXPERIMENT";validatorrules_0.dispatchKeyByTagSpecId[348]="toolbar";var attrspec_0=new amp$validator$AttrSpec("html"); -attrspec_0.amp_validator_AttrSpec$mandatory=!0;attrspec_0.value="";var attrspec_1=new amp$validator$AttrSpec("\u26a1");attrspec_1.alternativeNames=["amp"];attrspec_1.amp_validator_AttrSpec$mandatory=!0;attrspec_1.value="";var attrspec_2=new amp$validator$AttrSpec("\u26a14ads");attrspec_2.alternativeNames=["amp4ads"];attrspec_2.amp_validator_AttrSpec$mandatory=!0;attrspec_2.value="";var attrspec_3=new amp$validator$AttrSpec("href");attrspec_3.value="/";var attrspec_4=new amp$validator$AttrSpec("target"); -attrspec_4.valueRegexCasei=-264;var attrspec_5=new amp$validator$AttrSpec("rel");attrspec_5.amp_validator_AttrSpec$mandatory=!0;attrspec_5.blacklistedValueRegex=-265;var urlspec_2=new amp$validator$UrlSpec(["http","https"]);urlspec_2.allowRelative=!0;var attrspec_6=new amp$validator$AttrSpec("href");attrspec_6.amp_validator_AttrSpec$mandatory=!0;attrspec_6.blacklistedValueRegex=-266;attrspec_6.valueUrl=urlspec_2;var attrspec_7=new amp$validator$AttrSpec("rel");attrspec_7.amp_validator_AttrSpec$mandatory= -!0;attrspec_7.dispatchKey="NAME_VALUE_DISPATCH";attrspec_7.valueCasei="canonical";var urlspec_3=new amp$validator$UrlSpec(["https"]);urlspec_3.allowRelative=!0;var attrspec_8=new amp$validator$AttrSpec("href");attrspec_8.amp_validator_AttrSpec$mandatory=!0;attrspec_8.blacklistedValueRegex=-266;attrspec_8.valueUrl=urlspec_3;var attrspec_9=new amp$validator$AttrSpec("rel");attrspec_9.amp_validator_AttrSpec$mandatory=!0;attrspec_9.dispatchKey="NAME_VALUE_DISPATCH";attrspec_9.valueCasei="manifest";var attrspec_10= -new amp$validator$AttrSpec("href");attrspec_10.amp_validator_AttrSpec$mandatory=!0;attrspec_10.valueRegex=-267;var attrspec_11=new amp$validator$AttrSpec("rel");attrspec_11.amp_validator_AttrSpec$mandatory=!0;attrspec_11.dispatchKey="NAME_VALUE_DISPATCH";attrspec_11.valueCasei="stylesheet";var attrspec_12=new amp$validator$AttrSpec("type");attrspec_12.valueCasei="text/css";var attrspec_13=new amp$validator$AttrSpec("href");attrspec_13.amp_validator_AttrSpec$mandatory=!0;var attrspec_14=new amp$validator$AttrSpec("itemprop"); -attrspec_14.amp_validator_AttrSpec$mandatory=!0;attrspec_14.dispatchKey="NAME_VALUE_DISPATCH";attrspec_14.valueCasei="sameas";var attrspec_15=new amp$validator$AttrSpec("itemprop");attrspec_15.amp_validator_AttrSpec$mandatory=!0;var attrspec_16=new amp$validator$AttrSpec("property");attrspec_16.amp_validator_AttrSpec$mandatory=!0;var attrspec_17=new amp$validator$AttrSpec("charset");attrspec_17.amp_validator_AttrSpec$mandatory=!0;attrspec_17.dispatchKey="NAME_DISPATCH";attrspec_17.valueCasei="utf-8"; -var propertyspec_0=new amp$validator$PropertySpec("width");propertyspec_0.amp_validator_PropertySpec$mandatory=!0;propertyspec_0.value="device-width";var propertyspec_1=new amp$validator$PropertySpec("height"),propertyspec_2=new amp$validator$PropertySpec("initial-scale"),propertyspec_3=new amp$validator$PropertySpec("minimum-scale");propertyspec_3.amp_validator_PropertySpec$mandatory=!0;propertyspec_3.valueDouble=1;var propertyspeclist_0=new amp$validator$PropertySpecList([propertyspec_0,propertyspec_1, -propertyspec_2,propertyspec_3,new amp$validator$PropertySpec("maximum-scale"),new amp$validator$PropertySpec("shrink-to-fit"),new amp$validator$PropertySpec("user-scalable"),new amp$validator$PropertySpec("viewport-fit")]),attrspec_18=new amp$validator$AttrSpec("content");attrspec_18.amp_validator_AttrSpec$mandatory=!0;attrspec_18.valueProperties=propertyspeclist_0;var attrspec_19=new amp$validator$AttrSpec("name");attrspec_19.amp_validator_AttrSpec$mandatory=!0;attrspec_19.value="viewport";attrspec_19.dispatchKey= -"NAME_VALUE_DISPATCH";var attrspec_20=new amp$validator$AttrSpec("http-equiv");attrspec_20.amp_validator_AttrSpec$mandatory=!0;attrspec_20.dispatchKey="NAME_VALUE_DISPATCH";attrspec_20.valueCasei="x-ua-compatible";var propertyspec_8=new amp$validator$PropertySpec("ie");propertyspec_8.value="edge";var propertyspec_9=new amp$validator$PropertySpec("chrome");propertyspec_9.value="1";var propertyspeclist_1=new amp$validator$PropertySpecList([propertyspec_8,propertyspec_9]),attrspec_21=new amp$validator$AttrSpec("content"); -attrspec_21.amp_validator_AttrSpec$mandatory=!0;attrspec_21.valueProperties=propertyspeclist_1;var attrspec_22=new amp$validator$AttrSpec("name");attrspec_22.amp_validator_AttrSpec$mandatory=!0;attrspec_22.dispatchKey="NAME_VALUE_DISPATCH";attrspec_22.valueCasei="apple-itunes-app";var attrspec_23=new amp$validator$AttrSpec("content");attrspec_23.amp_validator_AttrSpec$mandatory=!0;attrspec_23.valueRegex=-268;var attrspec_24=new amp$validator$AttrSpec("name");attrspec_24.amp_validator_AttrSpec$mandatory= -!0;attrspec_24.dispatchKey="NAME_VALUE_DISPATCH";attrspec_24.valueCasei="amp-experiments-opt-in";var attrspec_25=new amp$validator$AttrSpec("content");attrspec_25.amp_validator_AttrSpec$mandatory=!0;var attrspec_26=new amp$validator$AttrSpec("name");attrspec_26.amp_validator_AttrSpec$mandatory=!0;attrspec_26.dispatchKey="NAME_VALUE_DISPATCH";attrspec_26.valueCasei="amp-3p-iframe-src";var urlspec_4=new amp$validator$UrlSpec(["https"]),attrspec_27=new amp$validator$AttrSpec("content");attrspec_27.amp_validator_AttrSpec$mandatory= -!0;attrspec_27.valueUrl=urlspec_4;var attrspec_28=new amp$validator$AttrSpec("name");attrspec_28.amp_validator_AttrSpec$mandatory=!0;attrspec_28.dispatchKey="NAME_VALUE_DISPATCH";attrspec_28.valueCasei="amp-experiment-token";var attrspec_29=new amp$validator$AttrSpec("name");attrspec_29.amp_validator_AttrSpec$mandatory=!0;attrspec_29.dispatchKey="NAME_VALUE_DISPATCH";attrspec_29.valueCasei="amp-link-variable-allowed-origin";var attrspec_30=new amp$validator$AttrSpec("name");attrspec_30.amp_validator_AttrSpec$mandatory= -!0;attrspec_30.dispatchKey="NAME_VALUE_DISPATCH";attrspec_30.valueCasei="amp-google-client-id-api";var attrspec_31=new amp$validator$AttrSpec("name");attrspec_31.amp_validator_AttrSpec$mandatory=!0;attrspec_31.dispatchKey="NAME_VALUE_DISPATCH";attrspec_31.valueCasei="amp-ad-doubleclick-sra";var attrspec_32=new amp$validator$AttrSpec("name");attrspec_32.amp_validator_AttrSpec$mandatory=!0;attrspec_32.dispatchKey="NAME_VALUE_DISPATCH";attrspec_32.valueCasei="amp4ads-id";var attrspec_33=new amp$validator$AttrSpec("name"); -attrspec_33.blacklistedValueRegex=-269;var attrspec_34=new amp$validator$AttrSpec("http-equiv");attrspec_34.amp_validator_AttrSpec$mandatory=!0;attrspec_34.dispatchKey="NAME_VALUE_DISPATCH";attrspec_34.valueCasei="content-type";var attrspec_35=new amp$validator$AttrSpec("content");attrspec_35.amp_validator_AttrSpec$mandatory=!0;attrspec_35.valueCasei="text/html; charset=utf-8";var attrspec_36=new amp$validator$AttrSpec("http-equiv");attrspec_36.amp_validator_AttrSpec$mandatory=!0;attrspec_36.dispatchKey= -"NAME_VALUE_DISPATCH";attrspec_36.valueCasei="content-language";var attrspec_37=new amp$validator$AttrSpec("http-equiv");attrspec_37.amp_validator_AttrSpec$mandatory=!0;attrspec_37.dispatchKey="NAME_VALUE_DISPATCH";attrspec_37.valueCasei="pics-label";var attrspec_38=new amp$validator$AttrSpec("http-equiv");attrspec_38.amp_validator_AttrSpec$mandatory=!0;attrspec_38.dispatchKey="NAME_VALUE_DISPATCH";attrspec_38.valueCasei="imagetoolbar";var attrspec_39=new amp$validator$AttrSpec("http-equiv");attrspec_39.amp_validator_AttrSpec$mandatory= -!0;attrspec_39.dispatchKey="NAME_VALUE_DISPATCH";attrspec_39.valueCasei="content-style-type";var attrspec_40=new amp$validator$AttrSpec("content");attrspec_40.amp_validator_AttrSpec$mandatory=!0;attrspec_40.valueCasei="text/css";var attrspec_41=new amp$validator$AttrSpec("http-equiv");attrspec_41.amp_validator_AttrSpec$mandatory=!0;attrspec_41.dispatchKey="NAME_VALUE_DISPATCH";attrspec_41.valueCasei="content-script-type";var attrspec_42=new amp$validator$AttrSpec("content");attrspec_42.amp_validator_AttrSpec$mandatory= -!0;attrspec_42.valueCasei="text/javascript";var attrspec_43=new amp$validator$AttrSpec("http-equiv");attrspec_43.amp_validator_AttrSpec$mandatory=!0;attrspec_43.dispatchKey="NAME_VALUE_DISPATCH";attrspec_43.valueCasei="origin-trial";var attrspec_44=new amp$validator$AttrSpec("http-equiv");attrspec_44.amp_validator_AttrSpec$mandatory=!0;attrspec_44.dispatchKey="NAME_VALUE_DISPATCH";attrspec_44.valueCasei="resource-type";var attrspec_45=new amp$validator$AttrSpec("name");attrspec_45.amp_validator_AttrSpec$mandatory= -!0;attrspec_45.dispatchKey="NAME_VALUE_DISPATCH";attrspec_45.valueCasei="amp-ad-enable-refresh";var attrspec_46=new amp$validator$AttrSpec("amp-custom");attrspec_46.amp_validator_AttrSpec$mandatory=!0;attrspec_46.value="";var attrspec_47=new amp$validator$AttrSpec("amp-boilerplate");attrspec_47.amp_validator_AttrSpec$mandatory=!0;attrspec_47.value="";attrspec_47.dispatchKey="NAME_VALUE_PARENT_DISPATCH";var attrspec_48=new amp$validator$AttrSpec("amp4ads-boilerplate");attrspec_48.amp_validator_AttrSpec$mandatory= -!0;attrspec_48.value="";attrspec_48.dispatchKey="NAME_VALUE_PARENT_DISPATCH";var attrspec_49=new amp$validator$AttrSpec("amp-keyframes");attrspec_49.amp_validator_AttrSpec$mandatory=!0;attrspec_49.value="";attrspec_49.dispatchKey="NAME_DISPATCH";var attrspec_50=new amp$validator$AttrSpec("reversed");attrspec_50.value="";var attrspec_51=new amp$validator$AttrSpec("start");attrspec_51.valueRegex=-270;var attrspec_52=new amp$validator$AttrSpec("type");attrspec_52.valueRegex=-271;var attrspec_53=new amp$validator$AttrSpec("value"); -attrspec_53.valueRegex=-270;var urlspec_5=new amp$validator$UrlSpec("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema twitter viber whatsapp".split(" "));urlspec_5.allowRelative=!0;urlspec_5.allowEmpty=!0;var attrspec_54=new amp$validator$AttrSpec("href");attrspec_54.blacklistedValueRegex=-266;attrspec_54.valueUrl=urlspec_5;var attrspec_55=new amp$validator$AttrSpec("rel");attrspec_55.blacklistedValueRegex=-272;var attrspec_56=new amp$validator$AttrSpec("role"); -attrspec_56.implicit=!0;var attrspec_57=new amp$validator$AttrSpec("tabindex");attrspec_57.implicit=!0;var attrspec_58=new amp$validator$AttrSpec("target");attrspec_58.valueRegex=-264;var attrspec_59=new amp$validator$AttrSpec("type");attrspec_59.valueCasei="text/html";var attrspec_60=new amp$validator$AttrSpec("longdesc");attrspec_60.blacklistedValueRegex=-266;attrspec_60.valueUrl=urlspec_2;var urlspec_6=new amp$validator$UrlSpec(["data","https"]);urlspec_6.allowRelative=!0;var attrspec_61=new amp$validator$AttrSpec("src"); -attrspec_61.alternativeNames=["srcset"];attrspec_61.amp_validator_AttrSpec$mandatory=!0;attrspec_61.blacklistedValueRegex=-266;attrspec_61.valueUrl=urlspec_6;var attrspec_62=new amp$validator$AttrSpec("frameborder");attrspec_62.valueRegex=-273;var attrspec_63=new amp$validator$AttrSpec("resizable");attrspec_63.value="";var attrspec_64=new amp$validator$AttrSpec("scrolling");attrspec_64.valueRegex=-274;var urlspec_7=new amp$validator$UrlSpec(["data","https"]);urlspec_7.allowRelative=!1;var attrspec_65= -new amp$validator$AttrSpec("src");attrspec_65.blacklistedValueRegex=-266;attrspec_65.mandatoryOneof=-275;attrspec_65.valueUrl=urlspec_7;var attrspec_66=new amp$validator$AttrSpec("srcdoc");attrspec_66.mandatoryOneof=-275;var attrspec_67=new amp$validator$AttrSpec("muted");attrspec_67.amp_validator_AttrSpec$deprecation="autoplay";attrspec_67.amp_validator_AttrSpec$deprecationUrl="https://www.ampproject.org/docs/reference/components/amp-video";var attrspec_68=new amp$validator$AttrSpec("src");attrspec_68.blacklistedValueRegex= --266;attrspec_68.valueUrl=urlspec_7;var attrspec_69=new amp$validator$AttrSpec("src");attrspec_69.blacklistedValueRegex=-266;attrspec_69.valueUrl=urlspec_3;var attrspec_70=new amp$validator$AttrSpec("src");attrspec_70.amp_validator_AttrSpec$mandatory=!0;attrspec_70.blacklistedValueRegex=-266;attrspec_70.valueUrl=urlspec_3;var attrspec_71=new amp$validator$AttrSpec("type");attrspec_71.amp_validator_AttrSpec$mandatory=!0;var urlspec_8=new amp$validator$UrlSpec(["data","http","https"]);urlspec_8.allowRelative= -!0;urlspec_8.allowEmpty=!1;var attrspec_72=new amp$validator$AttrSpec("xlink:href");attrspec_72.alternativeNames=["href"];attrspec_72.blacklistedValueRegex=-276;attrspec_72.valueUrl=urlspec_8;var attrspec_73=new amp$validator$AttrSpec("version");attrspec_73.valueRegex=-277;var attrspec_74=new amp$validator$AttrSpec("border");attrspec_74.valueRegex=-273;var attrspec_75=new amp$validator$AttrSpec("action");attrspec_75.amp_validator_AttrSpec$mandatory=!0;attrspec_75.blacklistedValueRegex=-266;attrspec_75.valueUrl= -urlspec_3;var attrspec_76=new amp$validator$AttrSpec("action-xhr");attrspec_76.blacklistedValueRegex=-266;attrspec_76.valueUrl=urlspec_3;var attrspec_77=new amp$validator$AttrSpec("custom-validation-reporting");attrspec_77.valueRegex=-278;var attrspec_78=new amp$validator$AttrSpec("method");attrspec_78.valueCasei="get";var attrspec_79=new amp$validator$AttrSpec("target");attrspec_79.amp_validator_AttrSpec$mandatory=!0;attrspec_79.valueRegexCasei=-279;var attrspec_80=new amp$validator$AttrSpec("verify-xhr"); -attrspec_80.blacklistedValueRegex=-266;attrspec_80.valueUrl=urlspec_3;var attrspec_81=new amp$validator$AttrSpec("action-xhr");attrspec_81.amp_validator_AttrSpec$mandatory=!0;attrspec_81.blacklistedValueRegex=-266;attrspec_81.valueUrl=urlspec_3;var attrspec_82=new amp$validator$AttrSpec("custom-validation-reporting");attrspec_82.valueRegex=-280;var attrspec_83=new amp$validator$AttrSpec("method");attrspec_83.amp_validator_AttrSpec$mandatory=!0;attrspec_83.dispatchKey="NAME_VALUE_DISPATCH";attrspec_83.valueCasei= -"post";var attrspec_84=new amp$validator$AttrSpec("submitting");attrspec_84.amp_validator_AttrSpec$mandatory=!0;attrspec_84.dispatchKey="NAME_DISPATCH";var attrspec_85=new amp$validator$AttrSpec("submit-success");attrspec_85.amp_validator_AttrSpec$mandatory=!0;var attrspec_86=new amp$validator$AttrSpec("template");attrspec_86.amp_validator_AttrSpec$mandatory=!0;attrspec_86.dispatchKey="NAME_DISPATCH";var attrspec_87=new amp$validator$AttrSpec("submit-error");attrspec_87.amp_validator_AttrSpec$mandatory= -!0;attrspec_87.dispatchKey="NAME_DISPATCH";var attrspec_88=new amp$validator$AttrSpec("type");attrspec_88.blacklistedValueRegex=-281;var attrspec_89=new amp$validator$AttrSpec("disabled");attrspec_89.value="";var attrspec_90=new amp$validator$AttrSpec("open-button");attrspec_90.value="";var attrspec_91=new amp$validator$AttrSpec("async");attrspec_91.amp_validator_AttrSpec$mandatory=!0;attrspec_91.value="";var attrspec_92=new amp$validator$AttrSpec("src");attrspec_92.amp_validator_AttrSpec$mandatory= -!0;attrspec_92.value="https://cdn.ampproject.org/v0.js";attrspec_92.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_93=new amp$validator$AttrSpec("type");attrspec_93.valueCasei="text/javascript";var attrspec_94=new amp$validator$AttrSpec("src");attrspec_94.amp_validator_AttrSpec$mandatory=!0;attrspec_94.value="https://cdn.ampproject.org/amp4ads-v0.js";attrspec_94.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_95=new amp$validator$AttrSpec("type");attrspec_95.amp_validator_AttrSpec$mandatory=!0;attrspec_95.dispatchKey= -"NAME_VALUE_DISPATCH";attrspec_95.valueCasei="application/ld+json";var attrspec_96=new amp$validator$AttrSpec("type");attrspec_96.amp_validator_AttrSpec$mandatory=!0;attrspec_96.valueCasei="application/json";var attrspec_97=new amp$validator$AttrSpec("id");attrspec_97.amp_validator_AttrSpec$mandatory=!0;attrspec_97.dispatchKey="NAME_VALUE_DISPATCH";attrspec_97.valueCasei="amp-rtc";var attrspec_98=new amp$validator$AttrSpec("type");attrspec_98.amp_validator_AttrSpec$mandatory=!0;attrspec_98.dispatchKey= -"NAME_VALUE_PARENT_DISPATCH";attrspec_98.valueCasei="application/json";var attrspec_99=new amp$validator$AttrSpec("referrerpolicy");attrspec_99.value="no-referrer";var urlspec_9=new amp$validator$UrlSpec(["https"]);urlspec_9.allowRelative=!0;urlspec_9.allowEmpty=!0;var attrspec_100=new amp$validator$AttrSpec("src");attrspec_100.amp_validator_AttrSpec$mandatory=!0;attrspec_100.blacklistedValueRegex=-266;attrspec_100.valueUrl=urlspec_9;var attrspec_101=new amp$validator$AttrSpec("autoplay");attrspec_101.value= -"";var attrspec_102=new amp$validator$AttrSpec("data-id");attrspec_102.amp_validator_AttrSpec$mandatory=!0;var attrspec_103=new amp$validator$AttrSpec("id");attrspec_103.amp_validator_AttrSpec$mandatory=!0;attrspec_103.value="amp-access";attrspec_103.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_104=new amp$validator$AttrSpec("disable-session-states");attrspec_104.value="";var attrspec_105=new amp$validator$AttrSpec("expanded");attrspec_105.value="";var attrspec_106=new amp$validator$AttrSpec("id"); -attrspec_106.amp_validator_AttrSpec$mandatory=!0;var attrspec_107=new amp$validator$AttrSpec("type");attrspec_107.amp_validator_AttrSpec$mandatory=!0;attrspec_107.value="application/json";attrspec_107.dispatchKey="NAME_VALUE_PARENT_DISPATCH";var attrspec_108=new amp$validator$AttrSpec("data-multi-size");attrspec_108.amp_validator_AttrSpec$mandatory=!0;attrspec_108.value="";attrspec_108.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_109=new amp$validator$AttrSpec("data-enable-refresh");attrspec_109.amp_validator_AttrSpec$mandatory= -!0;attrspec_109.value="";attrspec_109.dispatchKey="NAME_VALUE_DISPATCH";var attrspec_110=new amp$validator$AttrSpec("config");attrspec_110.blacklistedValueRegex=-266;attrspec_110.valueUrl=urlspec_9;var attrspec_111=new amp$validator$AttrSpec("trigger");attrspec_111.value="visibility";var attrspec_112=new amp$validator$AttrSpec("data-apester-media-id");attrspec_112.mandatoryOneof=-282;attrspec_112.valueRegex=-283;var attrspec_113=new amp$validator$AttrSpec("data-apester-channel-token");attrspec_113.mandatoryOneof= --282;attrspec_113.valueRegex=-283;var attrspec_114=new amp$validator$AttrSpec("autoplay");attrspec_114.amp_validator_AttrSpec$mandatory=!0;attrspec_114.value="";var attrtriggerspec_0=new amp$validator$AttrTriggerSpec(["src"]),attrspec_115=new amp$validator$AttrSpec("credentials");attrspec_115.trigger=attrtriggerspec_0;var attrspec_116=new amp$validator$AttrSpec("expression");attrspec_116.amp_validator_AttrSpec$mandatory=!0;var attrspec_117=new amp$validator$AttrSpec("data-outstream");attrspec_117.mandatoryOneof= --284;attrspec_117.valueRegex=-285;var attrspec_118=new amp$validator$AttrSpec("data-partner");attrspec_118.amp_validator_AttrSpec$mandatory=!0;attrspec_118.valueRegex=-285;var attrspec_119=new amp$validator$AttrSpec("data-player");attrspec_119.amp_validator_AttrSpec$mandatory=!0;attrspec_119.valueRegex=-285;var attrspec_120=new amp$validator$AttrSpec("data-playlist");attrspec_120.mandatoryOneof=-284;attrspec_120.valueRegex=-285;var attrspec_121=new amp$validator$AttrSpec("data-video");attrspec_121.mandatoryOneof= --284;attrspec_121.valueRegex=-285;var attrspec_122=new amp$validator$AttrSpec("data-account");attrspec_122.amp_validator_AttrSpec$mandatory=!0;var urlspec_10=new amp$validator$UrlSpec(["https"]);urlspec_10.allowRelative=!1;var attrspec_123=new amp$validator$AttrSpec("config");attrspec_123.amp_validator_AttrSpec$mandatory=!0;attrspec_123.blacklistedValueRegex=-266;attrspec_123.valueUrl=urlspec_10;var attrspec_124=new amp$validator$AttrSpec("arrows");attrspec_124.value="";var attrspec_125=new amp$validator$AttrSpec("delay"); -attrspec_125.valueRegex=-285;var attrspec_126=new amp$validator$AttrSpec("dots");attrspec_126.value="";var attrspec_127=new amp$validator$AttrSpec("loop");attrspec_127.value="";var attrspec_128=new amp$validator$AttrSpec("type");attrspec_128.valueRegex=-286;var attrspec_129=new amp$validator$AttrSpec("data-endscreen-enable");attrspec_129.valueRegex=-287;var attrspec_130=new amp$validator$AttrSpec("data-info");attrspec_130.valueRegex=-287;var attrspec_131=new amp$validator$AttrSpec("data-mute");attrspec_131.valueRegex= --287;var attrspec_132=new amp$validator$AttrSpec("data-sharing-enable");attrspec_132.valueRegex=-287;var attrspec_133=new amp$validator$AttrSpec("data-start");attrspec_133.valueRegex=-285;var attrspec_134=new amp$validator$AttrSpec("data-ui-highlight");attrspec_134.valueRegexCasei=-288;var attrspec_135=new amp$validator$AttrSpec("data-ui-logo");attrspec_135.valueRegex=-287;var attrspec_136=new amp$validator$AttrSpec("data-videoid");attrspec_136.amp_validator_AttrSpec$mandatory=!0;attrspec_136.valueRegexCasei= --289;var attrspec_137=new amp$validator$AttrSpec("data-href");attrspec_137.amp_validator_AttrSpec$mandatory=!0;var urlspec_11=new amp$validator$UrlSpec(["http","https"]);urlspec_11.allowRelative=!1;var attrspec_138=new amp$validator$AttrSpec("data-href");attrspec_138.amp_validator_AttrSpec$mandatory=!0;attrspec_138.valueUrl=urlspec_11;var attrspec_139=new amp$validator$AttrSpec("font-family");attrspec_139.amp_validator_AttrSpec$mandatory=!0;var attrspec_140=new amp$validator$AttrSpec("timeout");attrspec_140.valueRegex= --285;var attrspec_141=new amp$validator$AttrSpec("height");attrspec_141.amp_validator_AttrSpec$mandatory=!0;var attrspec_142=new amp$validator$AttrSpec("data-gfyid");attrspec_142.amp_validator_AttrSpec$mandatory=!0;var attrspec_143=new amp$validator$AttrSpec("noautoplay");attrspec_143.value="";var attrspec_144=new amp$validator$AttrSpec("data-gistid");attrspec_144.amp_validator_AttrSpec$mandatory=!0;var attrspec_145=new amp$validator$AttrSpec("data-eid");attrspec_145.amp_validator_AttrSpec$mandatory= -!0;var attrspec_146=new amp$validator$AttrSpec("allowfullscreen");attrspec_146.value="";var attrspec_147=new amp$validator$AttrSpec("allowpaymentrequest");attrspec_147.value="";var attrspec_148=new amp$validator$AttrSpec("allowtransparency");attrspec_148.value="";var attrspec_149=new amp$validator$AttrSpec("src");attrspec_149.blacklistedValueRegex=-266;attrspec_149.mandatoryOneof=-275;attrspec_149.valueUrl=urlspec_6;var attrspec_150=new amp$validator$AttrSpec("[src]");attrspec_150.trigger=attrtriggerspec_0; -var attrspec_151=new amp$validator$AttrSpec("data-src");attrspec_151.blacklistedValueRegex=-266;attrspec_151.valueUrl=urlspec_3;var attrspec_152=new amp$validator$AttrSpec("data-tag");attrspec_152.amp_validator_AttrSpec$mandatory=!0;attrspec_152.valueUrl=urlspec_3;var attrspec_153=new amp$validator$AttrSpec("data-imgur-id");attrspec_153.amp_validator_AttrSpec$mandatory=!0;var attrspec_154=new amp$validator$AttrSpec("data-shortcode");attrspec_154.amp_validator_AttrSpec$mandatory=!0;var attrspec_155= -new amp$validator$AttrSpec("data-iframe-src");attrspec_155.blacklistedValueRegex=-266;attrspec_155.valueUrl=urlspec_3;var attrspec_156=new amp$validator$AttrSpec("data-videoid");attrspec_156.amp_validator_AttrSpec$mandatory=!0;attrspec_156.valueRegex=-285;var attrspec_157=new amp$validator$AttrSpec("data-media-id");attrspec_157.valueRegexCasei=-290;attrspec_157.mandatoryOneof=-291;var attrspec_158=new amp$validator$AttrSpec("data-player-id");attrspec_158.amp_validator_AttrSpec$mandatory=!0;attrspec_158.valueRegexCasei= --290;var attrspec_159=new amp$validator$AttrSpec("data-playlist-id");attrspec_159.valueRegexCasei=-290;attrspec_159.mandatoryOneof=-291;var attrspec_160=new amp$validator$AttrSpec("data-partner");attrspec_160.amp_validator_AttrSpec$mandatory=!0;var attrspec_161=new amp$validator$AttrSpec("data-max-items-per-page");attrspec_161.amp_validator_AttrSpec$mandatory=!0;attrspec_161.valueRegex=-292;var attrspec_162=new amp$validator$AttrSpec("data-poll-interval");attrspec_162.valueRegex=-293;var attrspec_163= -new amp$validator$AttrSpec("update");attrspec_163.amp_validator_AttrSpec$mandatory=!0;var attrspec_164=new amp$validator$AttrSpec("items");attrspec_164.amp_validator_AttrSpec$mandatory=!0;var attrspec_165=new amp$validator$AttrSpec("pagination");attrspec_165.amp_validator_AttrSpec$mandatory=!0;var attrspec_166=new amp$validator$AttrSpec("data-sort-time");attrspec_166.amp_validator_AttrSpec$mandatory=!0;var attrspec_167=new amp$validator$AttrSpec("type");attrspec_167.amp_validator_AttrSpec$mandatory= -!0;attrspec_167.value="amp-mustache";var attrspec_168=new amp$validator$AttrSpec("data-client");attrspec_168.amp_validator_AttrSpec$mandatory=!0;var attrspec_169=new amp$validator$AttrSpec("data-mediaid");attrspec_169.amp_validator_AttrSpec$mandatory=!0;attrspec_169.valueRegex=-294;var attrspec_170=new amp$validator$AttrSpec("data-mode");attrspec_170.valueRegex=-295;var urlspec_12=new amp$validator$UrlSpec(["https","http"]);urlspec_12.allowEmpty=!0;var attrspec_171=new amp$validator$AttrSpec("data-origin"); -attrspec_171.valueUrl=urlspec_12;var attrspec_172=new amp$validator$AttrSpec("data-streamtype");attrspec_172.valueRegex=-296;var attrspec_173=new amp$validator$AttrSpec("data-bcid");attrspec_173.amp_validator_AttrSpec$mandatory=!0;var attrspec_174=new amp$validator$AttrSpec("data-pid");attrspec_174.amp_validator_AttrSpec$mandatory=!0;var attrspec_175=new amp$validator$AttrSpec("data-embedcode");attrspec_175.amp_validator_AttrSpec$mandatory=!0;var attrspec_176=new amp$validator$AttrSpec("data-pcode"); -attrspec_176.amp_validator_AttrSpec$mandatory=!0;var attrspec_177=new amp$validator$AttrSpec("data-playerid");attrspec_177.amp_validator_AttrSpec$mandatory=!0;var attrspec_178=new amp$validator$AttrSpec("data-do");attrspec_178.amp_validator_AttrSpec$mandatory=!0;var attrspec_179=new amp$validator$AttrSpec("src");attrspec_179.mandatoryOneof=-297;var attrspec_180=new amp$validator$AttrSpec("data-item");attrspec_180.mandatoryOneof=-297;var attrspec_181=new amp$validator$AttrSpec("data-item-info");attrspec_181.valueRegexCasei= --298;var attrspec_182=new amp$validator$AttrSpec("data-share-buttons");attrspec_182.valueRegexCasei=-298;var attrspec_183=new amp$validator$AttrSpec("data-comments");attrspec_183.valueRegexCasei=-298;var attrspec_184=new amp$validator$AttrSpec("intersection-ratios");attrspec_184.valueRegex=-299;var attrspec_185=new amp$validator$AttrSpec("viewport-margins");attrspec_185.valueRegex=-300;var attrspec_186=new amp$validator$AttrSpec("data-embed-id");attrspec_186.amp_validator_AttrSpec$mandatory=!0;attrspec_186.valueRegex= --301;var attrspec_187=new amp$validator$AttrSpec("data-embedlive");attrspec_187.valueRegexCasei=-298;var attrspec_188=new amp$validator$AttrSpec("data-embedparent");attrspec_188.valueRegexCasei=-298;var attrspec_189=new amp$validator$AttrSpec("data-embedtype");attrspec_189.amp_validator_AttrSpec$mandatory=!0;attrspec_189.valueRegexCasei=-302;var attrspec_190=new amp$validator$AttrSpec("data-src");attrspec_190.amp_validator_AttrSpec$mandatory=!0;var attrspec_191=new amp$validator$AttrSpec("data-riddle-id"); -attrspec_191.amp_validator_AttrSpec$mandatory=!0;attrspec_191.valueRegex=-285;var attrspec_192=new amp$validator$AttrSpec("keyboard-select-mode");attrspec_192.valueRegexCasei=-303;var attrspec_193=new amp$validator$AttrSpec("multiple");attrspec_193.value="";var attrspec_194=new amp$validator$AttrSpec("option");attrspec_194.amp_validator_AttrSpec$mandatory=!0;var attrspec_195=new amp$validator$AttrSpec("selected");attrspec_195.value="";var attrspec_196=new amp$validator$AttrSpec("side");attrspec_196.valueRegex= --304;var attrspec_197=new amp$validator$AttrSpec("toolbar");attrspec_197.amp_validator_AttrSpec$mandatory=!0;attrspec_197.dispatchKey="NAME_DISPATCH";var attrspec_198=new amp$validator$AttrSpec("toolbar-target");attrspec_198.amp_validator_AttrSpec$mandatory=!0;var urlspec_13=new amp$validator$UrlSpec("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema viber whatsapp".split(" "));urlspec_13.allowRelative=!1;var attrspec_199=new amp$validator$AttrSpec("data-share-endpoint"); -attrspec_199.blacklistedValueRegex=-266;attrspec_199.valueUrl=urlspec_13;var attrspec_200=new amp$validator$AttrSpec("data-color");attrspec_200.valueRegexCasei=-288;var attrspec_201=new amp$validator$AttrSpec("data-playlistid");attrspec_201.mandatoryOneof=-305;attrspec_201.valueRegex=-285;var attrspec_202=new amp$validator$AttrSpec("data-secret-token");attrspec_202.valueRegex=-306;var attrspec_203=new amp$validator$AttrSpec("data-trackid");attrspec_203.mandatoryOneof=-305;attrspec_203.valueRegex= --285;var attrspec_204=new amp$validator$AttrSpec("data-visual");attrspec_204.valueRegex=-287;var attrspec_205=new amp$validator$AttrSpec("data-content-id");attrspec_205.amp_validator_AttrSpec$mandatory=!0;var attrspec_206=new amp$validator$AttrSpec("data-domain");attrspec_206.amp_validator_AttrSpec$mandatory=!0;var attrspec_207=new amp$validator$AttrSpec("data-items");attrspec_207.amp_validator_AttrSpec$mandatory=!0;var attrspec_208=new amp$validator$AttrSpec("data-mode");attrspec_208.amp_validator_AttrSpec$mandatory= -!0;attrspec_208.valueRegexCasei=-307;var attrspec_209=new amp$validator$AttrSpec("data-player-id");attrspec_209.amp_validator_AttrSpec$mandatory=!0;attrspec_209.valueRegexCasei=-289;var attrspec_210=new amp$validator$AttrSpec("data-site-id");attrspec_210.amp_validator_AttrSpec$mandatory=!0;attrspec_210.valueRegex=-285;var attrspec_211=new amp$validator$AttrSpec("standalone");attrspec_211.amp_validator_AttrSpec$mandatory=!0;attrspec_211.value="";var urlspec_14=new amp$validator$UrlSpec(["http","https"]), -attrspec_212=new amp$validator$AttrSpec("bookend-config-src");attrspec_212.valueUrl=urlspec_14;var attrspec_213=new amp$validator$AttrSpec("background-audio");attrspec_213.valueUrl=urlspec_14;var attrspec_214=new amp$validator$AttrSpec("template");attrspec_214.amp_validator_AttrSpec$mandatory=!0;attrspec_214.valueRegex=-308;var attrspec_215=new amp$validator$AttrSpec("align-content");attrspec_215.valueRegex=-309;var attrspec_216=new amp$validator$AttrSpec("align-items");attrspec_216.valueRegex=-310; -var attrspec_217=new amp$validator$AttrSpec("align-self");attrspec_217.valueRegex=-310;var attrspec_218=new amp$validator$AttrSpec("justify-content");attrspec_218.valueRegex=-309;var attrspec_219=new amp$validator$AttrSpec("justify-items");attrspec_219.valueRegex=-310;var attrspec_220=new amp$validator$AttrSpec("justify-self");attrspec_220.valueRegex=-310;var attrspec_221=new amp$validator$AttrSpec("animate-in");attrspec_221.valueRegex=-311;var attrspec_222=new amp$validator$AttrSpec("cutoff");attrspec_222.valueRegex= --292;var attrspec_223=new amp$validator$AttrSpec("datetime");attrspec_223.amp_validator_AttrSpec$mandatory=!0;attrspec_223.valueRegex=-312;var attrspec_224=new amp$validator$AttrSpec("data-tweetid");attrspec_224.amp_validator_AttrSpec$mandatory=!0;var urlspec_15=new amp$validator$UrlSpec(["https"]);urlspec_15.allowRelative=!1;urlspec_15.allowEmpty=!1;var attrspec_225=new amp$validator$AttrSpec("data-dismiss-href");attrspec_225.valueUrl=urlspec_15;var attrspec_226=new amp$validator$AttrSpec("data-show-if-href"); -attrspec_226.valueUrl=urlspec_15;var attrspec_227=new amp$validator$AttrSpec("enctype");attrspec_227.value="application/x-www-form-urlencoded";var attrspec_228=new amp$validator$AttrSpec("poster");attrspec_228.amp_validator_AttrSpec$mandatory=!0;var attrspec_229=new amp$validator$AttrSpec("data-vineid");attrspec_229.amp_validator_AttrSpec$mandatory=!0;var attrspec_230=new amp$validator$AttrSpec("data-embedtype");attrspec_230.amp_validator_AttrSpec$mandatory=!0;var attrspec_231=new amp$validator$AttrSpec("helper-iframe-url"); -attrspec_231.amp_validator_AttrSpec$mandatory=!0;attrspec_231.valueUrl=urlspec_10;var attrspec_232=new amp$validator$AttrSpec("id");attrspec_232.amp_validator_AttrSpec$mandatory=!0;attrspec_232.valueRegex=-313;var attrspec_233=new amp$validator$AttrSpec("permission-dialog-url");attrspec_233.amp_validator_AttrSpec$mandatory=!0;attrspec_233.valueUrl=urlspec_10;var attrspec_234=new amp$validator$AttrSpec("service-worker-url");attrspec_234.amp_validator_AttrSpec$mandatory=!0;attrspec_234.valueUrl=urlspec_10; -var attrspec_235=new amp$validator$AttrSpec("visibility");attrspec_235.amp_validator_AttrSpec$mandatory=!0;attrspec_235.valueRegex=-314;var attrspec_236=new amp$validator$AttrSpec("credentials");attrspec_236.valueRegexCasei=-315;var attrspec_237=new amp$validator$AttrSpec("data-live-channelid");attrspec_237.mandatoryOneof=-316;attrspec_237.valueRegex=-294;var attrspec_238=new amp$validator$AttrSpec("data-videoid");attrspec_238.mandatoryOneof=-316;attrspec_238.valueRegex=-294;var attrspec_239=new amp$validator$AttrSpec("charset"); -attrspec_239.valueCasei="utf-8";var urlspec_16=new amp$validator$UrlSpec(["http","https"]);urlspec_16.allowRelative=!0;urlspec_16.allowEmpty=!0;var attrspec_240=new amp$validator$AttrSpec("cite");attrspec_240.blacklistedValueRegex=-266;attrspec_240.valueUrl=urlspec_16;var attrspec_241=new amp$validator$AttrSpec("src");attrspec_241.amp_validator_AttrSpec$mandatory=!0;attrspec_241.blacklistedValueRegex=-266;attrspec_241.valueUrl=urlspec_10;var attrspec_242=new amp$validator$AttrSpec("default");attrspec_242.value= -"";var attrspec_243=new amp$validator$AttrSpec("kind");attrspec_243.valueRegex=-317;var attrspec_244=new amp$validator$AttrSpec("kind");attrspec_244.amp_validator_AttrSpec$mandatory=!0;attrspec_244.valueCasei="subtitles";var attrspec_245=new amp$validator$AttrSpec("srclang");attrspec_245.amp_validator_AttrSpec$mandatory=!0;var urlspec_17=new amp$validator$UrlSpec(["http","https"]);urlspec_17.allowRelative=!0;urlspec_17.allowEmpty=!1;var attrspec_246=new amp$validator$AttrSpec("xlink:href");attrspec_246.alternativeNames= -["href"];attrspec_246.valueUrl=urlspec_17;var attrspec_247=new amp$validator$AttrSpec("style");attrspec_247.blacklistedValueRegex=-318;var attrspec_248=new amp$validator$AttrSpec("name");attrspec_248.blacklistedValueRegex=-319;var urlspec_18=new amp$validator$UrlSpec(["data","http","https"]);urlspec_18.allowRelative=!0;var attrspec_249=new amp$validator$AttrSpec("src");attrspec_249.alternativeNames=["srcset"];attrspec_249.amp_validator_AttrSpec$mandatory=!0;attrspec_249.blacklistedValueRegex=-266; -attrspec_249.valueUrl=urlspec_18;var attrspec_250=new amp$validator$AttrSpec("noloading");attrspec_250.value="";var attrspec_251=new amp$validator$AttrSpec("rel");attrspec_251.blacklistedValueRegex=-320;var attrspec_252=new amp$validator$AttrSpec("class");attrspec_252.blacklistedValueRegex=-321;var attrspec_253=new amp$validator$AttrSpec("hidden");attrspec_253.value="";var attrspec_254=new amp$validator$AttrSpec("id");attrspec_254.blacklistedValueRegex=-322;var attrtriggerspec_1=new amp$validator$AttrTriggerSpec(["role", -"tabindex"]);attrtriggerspec_1.ifValueRegex=-323;var attrspec_255=new amp$validator$AttrSpec("on");attrspec_255.trigger=attrtriggerspec_1;var attrspec_256=new amp$validator$AttrSpec("placeholder");attrspec_256.value="";var attrspec_257=new amp$validator$AttrSpec("fallback");attrspec_257.value="";var attrspec_258=new amp$validator$AttrSpec("validation-for");attrspec_258.trigger=new amp$validator$AttrTriggerSpec(["visible-when-invalid"]);var attrtriggerspec_3=new amp$validator$AttrTriggerSpec(["validation-for"]), -attrspec_259=new amp$validator$AttrSpec("visible-when-invalid");attrspec_259.valueRegex=-324;attrspec_259.trigger=attrtriggerspec_3;var attrspec_260=new amp$validator$AttrSpec("muted");attrspec_260.value="";var attrspec_261=new amp$validator$AttrSpec("controls");attrspec_261.value="";var attrspec_262=new amp$validator$AttrSpec("disableremoteplayback");attrspec_262.value="";var attrspec_263=new amp$validator$AttrSpec("preload");attrspec_263.valueRegex=-325;validatorrules_0.amp_validator_ValidatorRules$attrs= -[attrspec_0,attrspec_1,attrspec_2,attrspec_3,attrspec_4,attrspec_5,attrspec_6,attrspec_7,attrspec_8,attrspec_9,attrspec_10,attrspec_11,attrspec_12,attrspec_13,attrspec_14,attrspec_15,attrspec_16,attrspec_17,attrspec_18,attrspec_19,attrspec_20,attrspec_21,attrspec_22,attrspec_23,attrspec_24,attrspec_25,attrspec_26,attrspec_27,attrspec_28,attrspec_29,attrspec_30,attrspec_31,attrspec_32,attrspec_33,attrspec_34,attrspec_35,attrspec_36,attrspec_37,attrspec_38,attrspec_39,attrspec_40,attrspec_41,attrspec_42, -attrspec_43,attrspec_44,attrspec_45,attrspec_46,attrspec_47,attrspec_48,attrspec_49,attrspec_50,attrspec_51,attrspec_52,attrspec_53,attrspec_54,attrspec_55,attrspec_56,attrspec_57,attrspec_58,attrspec_59,attrspec_60,attrspec_61,attrspec_62,attrspec_63,attrspec_64,attrspec_65,attrspec_66,attrspec_67,attrspec_68,attrspec_69,attrspec_70,attrspec_71,attrspec_72,attrspec_73,attrspec_74,attrspec_75,attrspec_76,attrspec_77,attrspec_78,attrspec_79,attrspec_80,attrspec_81,attrspec_82,attrspec_83,attrspec_84, -attrspec_85,attrspec_86,attrspec_87,attrspec_88,attrspec_89,attrspec_90,attrspec_91,attrspec_92,attrspec_93,attrspec_94,attrspec_95,attrspec_96,attrspec_97,attrspec_98,attrspec_99,attrspec_100,attrspec_101,attrspec_102,attrspec_103,attrspec_104,attrspec_105,attrspec_106,attrspec_107,attrspec_108,attrspec_109,attrspec_110,attrspec_111,attrspec_112,attrspec_113,attrspec_114,attrspec_115,attrspec_116,attrspec_117,attrspec_118,attrspec_119,attrspec_120,attrspec_121,attrspec_122,attrspec_123,attrspec_124, -attrspec_125,attrspec_126,attrspec_127,attrspec_128,attrspec_129,attrspec_130,attrspec_131,attrspec_132,attrspec_133,attrspec_134,attrspec_135,attrspec_136,attrspec_137,attrspec_138,attrspec_139,attrspec_140,attrspec_141,attrspec_142,attrspec_143,attrspec_144,attrspec_145,attrspec_146,attrspec_147,attrspec_148,attrspec_149,attrspec_150,attrspec_151,attrspec_152,attrspec_153,attrspec_154,attrspec_155,attrspec_156,attrspec_157,attrspec_158,attrspec_159,attrspec_160,attrspec_161,attrspec_162,attrspec_163, -attrspec_164,attrspec_165,attrspec_166,attrspec_167,attrspec_168,attrspec_169,attrspec_170,attrspec_171,attrspec_172,attrspec_173,attrspec_174,attrspec_175,attrspec_176,attrspec_177,attrspec_178,attrspec_179,attrspec_180,attrspec_181,attrspec_182,attrspec_183,attrspec_184,attrspec_185,attrspec_186,attrspec_187,attrspec_188,attrspec_189,attrspec_190,attrspec_191,attrspec_192,attrspec_193,attrspec_194,attrspec_195,attrspec_196,attrspec_197,attrspec_198,attrspec_199,attrspec_200,attrspec_201,attrspec_202, -attrspec_203,attrspec_204,attrspec_205,attrspec_206,attrspec_207,attrspec_208,attrspec_209,attrspec_210,attrspec_211,attrspec_212,attrspec_213,attrspec_214,attrspec_215,attrspec_216,attrspec_217,attrspec_218,attrspec_219,attrspec_220,attrspec_221,attrspec_222,attrspec_223,attrspec_224,attrspec_225,attrspec_226,attrspec_227,attrspec_228,attrspec_229,attrspec_230,attrspec_231,attrspec_232,attrspec_233,attrspec_234,attrspec_235,attrspec_236,attrspec_237,attrspec_238,attrspec_239,attrspec_240,attrspec_241, -attrspec_242,attrspec_243,attrspec_244,attrspec_245,attrspec_246,attrspec_247,attrspec_248,attrspec_249,attrspec_250,attrspec_251,attrspec_252,attrspec_253,attrspec_254,attrspec_255,attrspec_256,attrspec_257,attrspec_258,attrspec_259,attrspec_260,attrspec_261,attrspec_262,attrspec_263];validatorrules_0.directAttrLists=[[239,-326,-7,-22,-6,-2,-255,-3],[240],[241,242,243,-198,-327],[241,242,244,-198,245],[-328,-329,-330],[-331,-332,-333,-334],[-31,-335,-32,-61,-62],[-336,-337,-338,-339,-340,-326,-341, --342,-343,-344,-345,-346,-347,-348,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-236,-237,-238,-360,-361,-362,-363,-364,-365,-366,-367,-368,-369,-370,-371,-372,-373,-123,-124,-374,-375,-376,-377,-378,-379,-380,-381,-97,-382,-383,-384,-385,-386,-387,-388],[-389,-390,-391,-122,-392,-393,-394],[-64,-65,246,-66,-67,-68,-69],[247],[248],[249],[-6,250],[],[91,-12,93],[],[-501,-502,-503,-36,-504,127,260,69],[-501,-29,-502,-503,-217,101,261,-504,-7,262,127,260,-165,263,69,-505,-218,-506,-507,-219, --508,-509,-510,-511,-512,-42,-513]];validatorrules_0.amp_validator_ValidatorRules$globalAttrs=[-397,-10,-398,-399,-400,-401,-9,-402,-403,-404,-11,251,-405,-406,-407,-408,-153,252,-28,-409,253,254,-410,-172,-411,-412,-413,-414,-415,-416,-417,-418,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428,-429,-430,-431,-432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,-444,-445,-446,-447,-448,255,-449,256,257,-450,-371,-451,-452,-453,-454,-455,-456,-457,-458,-459,-460,-461,-462,258,259,-463,-464, --465,-466,-467,-468,-469,-470,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500];validatorrules_0.amp_validator_ValidatorRules$ampLayoutAttrs=[-31,-395,-396,-2,-32,-179,-195];validatorrules_0.internedStrings=["href","sizes","type","amp-app-banner data source","async","media","crossorigin","integrity","content","itemprop","property","nonce","(\x3c!--|(^|\\W)i-amphtml-|!important)","head > style[amp-boilerplate]", -"body ?{opacity: ?0}","noscript > style[amp-boilerplate]","body ?{opacity: ?1}","\\s*body{-webkit-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-moz-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-ms-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both}@-webkit-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}\\s*", -"\\s*body{visibility:hidden}\\s*","\\s*body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}\\s*","align","hreflang","download","border","name","[href]","datetime","dir","alt","ismap","height","width","referrerpolicy","sandbox","autoplay","controls","loop","playsinline","poster","preload","muted","[src]","[type]","[label]","[srclang]","externalresourcesrequired","transform","arabic-form","d","glyph-name","horiz-adv-x","orientation","unicode","vert-origin-x","vert-origin-y", -"vert-adv-y","dx","dy","format","glyphref","x","y","preserveaspectratio","xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type","markerunits","markerwidth","markerheight","orient","refx","refy","viewbox","pathlength","sketch:type","solid-color","solid-opacity","contentscripttype","contentstyletype","zoomandpan","viewtarget","cx","cy","r","rx","ry","x1","x2","y1","y2","points","lengthadjust","rotate","text-anchor","textlength","method","spacing","startoffset","clippathunits", -"filterres","filterunits","primitiveunits","g1","g2","k","u1","u2","gradientunits","gradienttransform","spreadmethod","maskcontentunits","maskunits","patternunits","patterncontentunits","patterntransform","fr","fx","fy","offset","stop-color","stop-opacity","in","values","in2","k1","k2","k3","k4","operator","edgemode","stddeviation","sortable","bgcolor","cellpadding","cellspacing","span","valign","colspan","headers","rowspan","abbr","scope","sorted","accept","accept-charset","autocomplete","enctype", -"novalidate","for","accesskey","autofocus","checked","disabled","inputmode","list","max","maxlength","min","minlength","multiple","pattern","placeholder","readonly","required","selectiondirection","size","spellcheck","step","tabindex","value","[accept]","[accesskey]","[autocomplete]","[checked]","[disabled]","[height]","[inputmode]","[max]","[maxlength]","[min]","[minlength]","[multiple]","[pattern]","[placeholder]","[readonly]","[required]","[selectiondirection]","[size]","[spellcheck]","[step]", -"[value]","[width]","amp-app-banner button[open-button]","[autofocus]","label","selected","[selected]","cols","rows","selectionend","selectionstart","wrap","[cols]","[rows]","[selectionend]","[selectionstart]","[wrap]","form","high","low","optimum","(.)","(\x3c!--)","attribution","[alt]","[attribution]","[srcset]","allow-ssr-img","amp-ad-exit configuration JSON","json","rtc-config","amp-animation extension .json script","arguments","[data-account]","[data-embed]","[data-player]","[data-player-id]", -"[data-playlist-id]","[data-video-id]","[slide]","max-font-size","min-font-size","font-style","font-variant","font-weight","on-error-add-class","on-error-remove-class","on-load-add-class","on-load-remove-class","timeline-event-prefix","allow","from","scrollable","credentials","items","max-items","single-item","template","[state]","data-update-time","data-tombstone","target","amp-story-page","auto-advance-after","grid-area","animate-in-delay","animate-in-duration","animate-in-after","locale","[data-videoid]", -"(_blank|_self|_top)","(^|\\s)(canonical|components|import|manifest|serviceworker|stylesheet|subresource|)(\\s|$)","__amp_source_origin","https://cdn\\.materialdesignicons\\.com/([0-9]+\\.?)+/css/materialdesignicons\\.min\\.css|https://cloud\\.typography\\.com/[0-9]*/[0-9]*/css/fonts\\.css|https://fast\\.fonts\\.net/.*|https://fonts\\.googleapis\\.com/css\\?.*|https://fonts\\.googleapis\\.com/icon\\?.*|https://fonts\\.googleapis\\.com/earlyaccess/.*\\.css|https://maxcdn\\.bootstrapcdn\\.com/font-awesome/([0-9]+\\.?)+/css/font-awesome\\.min\\.css(\\?.*)?|https://use\\.typekit\\.net/[\\w\\p{L}\\p{N}_]+\\.css", -".*app-id=.*","(^|\\s)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\\s|$)","[0-9]*","[1AaIi]","(^|\\s)(components|dns-prefetch|import|manifest|preconnect|prefetch|preload|prerender|serviceworker|stylesheet|subresource|)(\\s|$)","0|1","auto|yes|no","['src', 'srcdoc']","(^|\\s)data:image\\/svg\\+xml","(1.0|1.1)","(show-first-on-submit|show-all-on-submit|as-you-go|interact-and-submit)","(_blank|_top)","(show-first-on-submit|show-all-on-submit|as-you-go)","(^|\\s)(button|file|image|password|)(\\s|$)", -"['data-apester-media-id', 'data-apester-channel-token']","[0-9a-zA-Z]+","['data-outstream', 'data-playlist', 'data-video']","[0-9]+","slides|carousel","true|false","([0-9a-f]{3}){1,2}","[a-z0-9]+","[0-9a-z]{8}","data-media-id or data-playlist-id","\\d+","\\d{5,}","[^=/?:]+","api|static","album|audio|live|playlist|playlist-marked|video","['src', 'data-item']","(false|true)","^([0]*?\\.\\d*$|1$|0$)|([0]*?\\.\\d*|1|0)\\s{1}([0]*?\\.\\d*$|1$|0$)","^(\\d+$|\\d+px$|\\d+vh$)|((\\d+|\\d+px|\\d+vh)\\s{1}(\\d+$|\\d+px$|\\d+vh$))", -"[0-9a-z-]+","(comment|post)","focus|none|select","(left|right)","['data-trackid', 'data-playlistid']","[A-Za-z0-9_-]+","playlist|video","(fill|horizontal|vertical|thirds)","(start|end|center|stretch|space-around|space-between|space-evenly)","(start|end|center|stretch)","(drop|fade-in|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|pulse|rotate-in-left|rotate-in-right|twirl-in|whoosh-in-left|whoosh-in-right)","\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?(Z|[+-][0-1][0-9]:[0-5][0-9])", -"amp-web-push","(blocked|subscribed|unsubscribed)","(include|omit)","['data-live-channelid', 'data-videoid']","(captions|descriptions|chapters|metadata)","!important","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", -"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","(^|\\W)i-amphtml-","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", -"tap:.*","(badInput|customError|patternMismatch|rangeOverflow|rangeUnderflow|stepMismatch|tooLong|typeMismatch|valueMissing)","(none|metadata|auto|)","color","srclang","requiredextensions","requiredfeatures","systemlanguage","xml:lang","xml:space","xmlns","xmlns:xlink","result","alignment-baseline","baseline-shift","clip","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cursor","direction","display","dominant-baseline","enable-background", -"fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","glyph-orientation-horizontal","glyph-orientation-vertical","image-rendering","kerning","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","pointer-events","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-decoration", -"text-rendering","unicode-bidi","vector-effect","visibility","word-spacing","writing-mode","amplitude","exponent","intercept","slope","table","tablevalues","heights","layout","itemid","itemref","itemscope","itemtype","about","datatype","inlist","prefix","resource","rev","typeof","vocab","draggable","lang","title","translate","aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-controls","aria-current","aria-describedby","aria-disabled","aria-dropeffect","aria-expanded", -"aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","role","lightbox","amp-access","amp-access-behavior","amp-access-hide","amp-access-id","amp-access-loader","amp-access-loading", -"amp-access-off","amp-access-on","amp-access-show","amp-access-style","amp-access-template","i-amp-access-id","[aria-activedescendant]","[aria-atomic]","[aria-autocomplete]","[aria-busy]","[aria-checked]","[aria-controls]","[aria-describedby]","[aria-disabled]","[aria-dropeffect]","[aria-expanded]","[aria-flowto]","[aria-grabbed]","[aria-haspopup]","[aria-hidden]","[aria-invalid]","[aria-label]","[aria-labelledby]","[aria-level]","[aria-live]","[aria-multiline]","[aria-multiselectable]","[aria-orientation]", -"[aria-owns]","[aria-posinset]","[aria-pressed]","[aria-readonly]","[aria-relevant]","[aria-required]","[aria-selected]","[aria-setsize]","[aria-sort]","[aria-valuemax]","[aria-valuemin]","[aria-valuenow]","[aria-valuetext]","[class]","[hidden]","[text]","album","artist","artwork","controlslist","[album]","[artist]","[artwork]","[controls]","[controlslist]","[loop]","[poster]","[preload]","[title]"];return validatorrules_0};/* +function amp$validator$ExtensionSpec(){this.name=null;this.deprecatedVersions=this.allowedVersions=EMPTY_string_ARRAY;this.deprecatedAllowDuplicates=this.isCustomTemplate=!1;this.requiresUsage=null}goog$exportSymbol("amp.validator.ExtensionSpec.ExtensionUsageRequirement",{ERROR:"ERROR",GRANDFATHERED:"GRANDFATHERED",NONE:"NONE"});goog$exportSymbol("amp.validator.HtmlFormat.Code",{AMP:"AMP",AMP4ADS:"AMP4ADS",AMP4EMAIL:"AMP4EMAIL",EXPERIMENTAL:"EXPERIMENTAL"}); +function amp$validator$PropertySpec(name){this.name=name;this.mandatory=!1;this.valueDouble=this.value=null}function amp$validator$PropertySpecList(properties){this.properties=properties}function amp$validator$ReferencePoint(){this.tagSpecName=null;this.unique=this.mandatory=!1} +function amp$validator$TagSpec(tagName){this.htmlFormat=EMPTY_amp_validator_HtmlFormat_Code_ARRAY;this.tagName=tagName;this.extensionSpec=this.specName=null;this.requiresExtension=EMPTY_string_ARRAY;this.mandatory=!1;this.mandatoryAlternatives=null;this.uniqueWarning=this.unique=!1;this.mandatoryAncestorSuggestedAlternative=this.mandatoryAncestor=this.mandatoryParent=null;this.disallowedAncestor=EMPTY_string_ARRAY;this.descendantTagList=null;this.requires=this.satisfies=this.alsoRequiresTagWarning= +EMPTY_number_ARRAY;this.deprecationUrl=this.deprecation=null;this.attrLists=this.attrs=EMPTY_number_ARRAY;this.childTags=this.cdata=null;this.mandatoryLastChild=this.siblingsDisallowed=!1;this.referencePoints=EMPTY_amp_validator_ReferencePoint_ARRAY;this.ampLayout=this.specUrl=null}function amp$validator$UrlSpec(allowedProtocol){this.allowedProtocol=allowedProtocol;this.allowRelative=!0;this.allowEmpty=!1;this.amp_validator_UrlSpec$disallowedDomain=EMPTY_string_ARRAY} +function amp$validator$ValidationError(){this.code=this.severity=null;this.line=1;this.col=0;this.specUrl=null;this.params=EMPTY_string_ARRAY;this.dataAmpReportTestValue=this.category=null}function amp$validator$ValidationResult(){this.status=null;this.errors=[];this.specFileRevision=this.validatorRevision=-1}goog$exportSymbol("amp.validator.ValidationResult",amp$validator$ValidationResult);amp$validator$ValidationResult.Status={UNKNOWN:"UNKNOWN",PASS:"PASS",FAIL:"FAIL"}; +function amp$validator$ValidatorRules(tags){this.tags=tags;this.minValidatorRevisionRequired=0;this.specFileRevision=-1;this.scriptSpecUrl=this.stylesSpecUrl=this.templateSpecUrl=null;this.errorFormats=EMPTY_amp_validator_ErrorFormat_ARRAY;this.errorSpecificity=EMPTY_amp_validator_ErrorSpecificity_ARRAY;this.descendantTagList=EMPTY_amp_validator_DescendantTagList_ARRAY;this.dispatchKeyByTagSpecId=Array(tags.length);this.internedStrings=[];this.attrs=[];this.directAttrLists=[];this.amp_validator_ValidatorRules$globalAttrs= +[];this.amp_validator_ValidatorRules$ampLayoutAttrs=[]};/* Copyright 2015 The AMP HTML Authors. All Rights Reserved. @@ -598,11 +186,11 @@ function JSCompiler_StaticMethods_tokenAt(JSCompiler_StaticMethods_tokenAt$self, function JSCompiler_StaticMethods_parse_css_TokenStream_prototype$current(JSCompiler_StaticMethods_parse_css_TokenStream_prototype$current$self){return JSCompiler_StaticMethods_tokenAt(JSCompiler_StaticMethods_parse_css_TokenStream_prototype$current$self,JSCompiler_StaticMethods_parse_css_TokenStream_prototype$current$self.pos)}parse_css$TokenStream.prototype.next=function(){return JSCompiler_StaticMethods_tokenAt(this,this.pos+1)}; function parse_css$stripVendorPrefix(prefixedString){if(""!==prefixedString&&"-"===prefixedString[0]){if(goog$string$startsWith(prefixedString,"-o-"))return prefixedString.substr(3);if(goog$string$startsWith(prefixedString,"-moz-"))return prefixedString.substr(5);if(goog$string$startsWith(prefixedString,"-ms-"))return prefixedString.substr(4);if(goog$string$startsWith(prefixedString,"-webkit-"))return prefixedString.substr(8)}return prefixedString} function parse_css$Rule(){parse_css$Token.call(this);this.tokenType=0}$jscomp$inherits(parse_css$Rule,parse_css$Token);parse_css$Rule.prototype.parse_css_Rule_prototype$accept=JSCompiler_emptyFn();parse_css$Rule.prototype.toString=function(opt_indent){return JSON.stringify(this.toJSON(),null,opt_indent)};function parse_css$Stylesheet(){parse_css$Rule.call(this);this.parse_css_Stylesheet$rules=[];this.parse_css_Stylesheet$eof=null;this.tokenType=31}$jscomp$inherits(parse_css$Stylesheet,parse_css$Rule); -parse_css$Stylesheet.prototype.parse_css_Rule_prototype$accept=function(visitor){for(var $jscomp$iter$3=$jscomp$makeIterator(this.parse_css_Stylesheet$rules),$jscomp$key$rule=$jscomp$iter$3.next();!$jscomp$key$rule.done;$jscomp$key$rule=$jscomp$iter$3.next())$jscomp$key$rule.value.parse_css_Rule_prototype$accept(visitor)}; +parse_css$Stylesheet.prototype.parse_css_Rule_prototype$accept=function(visitor){for(var $jscomp$iter$0=$jscomp$makeIterator(this.parse_css_Stylesheet$rules),$jscomp$key$rule=$jscomp$iter$0.next();!$jscomp$key$rule.done;$jscomp$key$rule=$jscomp$iter$0.next())$jscomp$key$rule.value.parse_css_Rule_prototype$accept(visitor)}; parse_css$Stylesheet.prototype.toJSON=function(){var json=parse_css$Rule.prototype.toJSON.call(this);json.rules=arrayToJSON(this.parse_css_Stylesheet$rules);json.eof=this.parse_css_Stylesheet$eof.toJSON();return json};function parse_css$AtRule(name){parse_css$Rule.call(this);this.name=name;this.parse_css_AtRule$prelude=[];this.parse_css_AtRule$rules=[];this.parse_css_AtRule$declarations=[];this.tokenType=32}$jscomp$inherits(parse_css$AtRule,parse_css$Rule); -parse_css$AtRule.prototype.parse_css_Rule_prototype$accept=function(visitor){visitor.visitAtRule(this);for(var $jscomp$iter$4=$jscomp$makeIterator(this.parse_css_AtRule$rules),$jscomp$key$rule=$jscomp$iter$4.next();!$jscomp$key$rule.done;$jscomp$key$rule=$jscomp$iter$4.next())$jscomp$key$rule.value.parse_css_Rule_prototype$accept(visitor);$jscomp$iter$4=$jscomp$makeIterator(this.parse_css_AtRule$declarations);for($jscomp$key$rule=$jscomp$iter$4.next();!$jscomp$key$rule.done;$jscomp$key$rule=$jscomp$iter$4.next())$jscomp$key$rule.value.parse_css_Rule_prototype$accept(visitor); +parse_css$AtRule.prototype.parse_css_Rule_prototype$accept=function(visitor){visitor.visitAtRule(this);for(var $jscomp$iter$1=$jscomp$makeIterator(this.parse_css_AtRule$rules),$jscomp$key$rule=$jscomp$iter$1.next();!$jscomp$key$rule.done;$jscomp$key$rule=$jscomp$iter$1.next())$jscomp$key$rule.value.parse_css_Rule_prototype$accept(visitor);$jscomp$iter$1=$jscomp$makeIterator(this.parse_css_AtRule$declarations);for($jscomp$key$rule=$jscomp$iter$1.next();!$jscomp$key$rule.done;$jscomp$key$rule=$jscomp$iter$1.next())$jscomp$key$rule.value.parse_css_Rule_prototype$accept(visitor); visitor.leaveAtRule()};parse_css$AtRule.prototype.toJSON=function(){var json=parse_css$Rule.prototype.toJSON.call(this);json.name=this.name;json.prelude=arrayToJSON(this.parse_css_AtRule$prelude);json.rules=arrayToJSON(this.parse_css_AtRule$rules);json.declarations=arrayToJSON(this.parse_css_AtRule$declarations);return json};function parse_css$QualifiedRule(){parse_css$Rule.call(this);this.parse_css_QualifiedRule$prelude=[];this.parse_css_QualifiedRule$declarations=[];this.tokenType=33} -$jscomp$inherits(parse_css$QualifiedRule,parse_css$Rule);parse_css$QualifiedRule.prototype.parse_css_Rule_prototype$accept=function(visitor){visitor.visitQualifiedRule(this);for(var $jscomp$iter$6=$jscomp$makeIterator(this.parse_css_QualifiedRule$declarations),$jscomp$key$declaration=$jscomp$iter$6.next();!$jscomp$key$declaration.done;$jscomp$key$declaration=$jscomp$iter$6.next())$jscomp$key$declaration.value.parse_css_Rule_prototype$accept(visitor)}; +$jscomp$inherits(parse_css$QualifiedRule,parse_css$Rule);parse_css$QualifiedRule.prototype.parse_css_Rule_prototype$accept=function(visitor){visitor.visitQualifiedRule(this);for(var $jscomp$iter$3=$jscomp$makeIterator(this.parse_css_QualifiedRule$declarations),$jscomp$key$declaration=$jscomp$iter$3.next();!$jscomp$key$declaration.done;$jscomp$key$declaration=$jscomp$iter$3.next())$jscomp$key$declaration.value.parse_css_Rule_prototype$accept(visitor)}; parse_css$QualifiedRule.prototype.toJSON=function(){var json=parse_css$Rule.prototype.toJSON.call(this);json.prelude=arrayToJSON(this.parse_css_QualifiedRule$prelude);json.declarations=arrayToJSON(this.parse_css_QualifiedRule$declarations);return json}; function JSCompiler_StaticMethods_ruleName(JSCompiler_StaticMethods_ruleName$self){for(var ruleName="",i=0;ib.name?1:a.nameidx;)JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag&&JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag(new amp$htmlparser$ParsedHtmlTag(JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.TagNameStack$stack_.pop()));break}} +function amp$htmlparser$HtmlParser(){}amp$htmlparser$HtmlParser.prototype.lookupEntity_=function(entity){entity=amp$htmlparser$toLowerCase(entity.substring(1,entity.length-1));if(amp$htmlparser$HtmlParser$Entities.hasOwnProperty(entity))return amp$htmlparser$HtmlParser$Entities[entity];var m=entity.match(amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_);return m?String.fromCharCode(parseInt(m[1],10)):(m=entity.match(amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_))?String.fromCharCode(parseInt(m[1],16)):entity}; +var amp$htmlparser$HtmlParser$Entities={colon:":",lt:"<",gt:">",amp:"&",nbsp:"\u00a0",quot:'"',apos:"'"},amp$htmlparser$HtmlParser$Elements={A:0,ABBR:0,ACRONYM:0,ADDRESS:0,APPLET:16,AREA:2,B:0,BASE:18,BASEFONT:18,BDO:0,BIG:0,BLOCKQUOTE:0,BODY:49,BR:2,BUTTON:0,CANVAS:0,CAPTION:0,CENTER:0,CITE:0,CODE:0,COL:2,COLGROUP:1,DD:1,DEL:0,DFN:0,DIR:0,DIV:0,DL:0,DT:1,EM:0,FIELDSET:0,FONT:0,FORM:0,FRAME:18,FRAMESET:16,H1:0,H2:0,H3:0,H4:0,H5:0,H6:0,HEAD:49,HR:2,HTML:49,I:0,IFRAME:20,IMG:2,INPUT:2,INS:0,ISINDEX:18, +KBD:0,LABEL:0,LEGEND:0,LI:1,LINK:18,MAP:0,MENU:0,META:18,NOFRAMES:20,NOSCRIPT:16,OBJECT:16,OL:0,OPTGROUP:0,OPTION:1,P:1,PARAM:18,PRE:0,Q:0,S:0,SAMP:0,SCRIPT:20,SELECT:0,SMALL:0,SPAN:0,STRIKE:0,STRONG:0,STYLE:20,SUB:0,SUP:0,TABLE:0,TBODY:1,TD:1,TEXTAREA:8,TFOOT:1,TH:1,THEAD:1,TITLE:24,TR:1,TT:0,U:0,UL:0,VAR:0},amp$htmlparser$HtmlParser$LOOSE_AMP_RE_=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,amp$htmlparser$HtmlParser$LT_RE=//g,amp$htmlparser$HtmlParser$NULL_RE_= +/\0/g,amp$htmlparser$HtmlParser$ENTITY_RE_=/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g,amp$htmlparser$HtmlParser$SPACE_RE_=/^\s*$/,amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_=/^#(\d+)$/,amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_=/^#x([0-9A-Fa-f]+)$/,amp$htmlparser$HtmlParser$INSIDE_TAG_TOKEN_=/^[ \t\n\f\r\v]*(?:(?:([^\t\r\n /=>][^\t\r\n =>]*|[^\t\r\n =>]+[^ >]|\/+(?!>))(\s*=\s*("[^"]*"|'[^']*'|(?=[a-z][a-z-]*\s+=)|[^>\s]*))?)|(\/?>)|[^a-z\s>]+)/i,amp$htmlparser$HtmlParser$OUTSIDE_TAG_TOKEN_=/^(?:&(\#[0-9]+|\#[x][0-9a-f]+|\w+);|<[!]--[\s\S]*?(?:--\x3e|$)|<(\/)?([a-z!\?][^\0 \n\r\t\f\v>/]*)|([^<&>]+)|([<&>]))/i; +function amp$htmlparser$HtmlParser$DocLocatorImpl(htmlText){this.amp_htmlparser_HtmlParser_DocLocatorImpl$lineByPos_=[];this.amp_htmlparser_HtmlParser_DocLocatorImpl$colByPos_=[];for(var currentLine=1,currentCol=0,i=0;inumParts&&!hasEmpty?!1:!0}if(skipColons)++atIdx,--passwordIdx;else{this.parse_url_URL$isValid=!1;break a}}atIdx=url.substr(atIdx,passwordIdx-atIdx);if(!skipColons)b:{passwordIdx=atIdx;atIdx="";try{atIdx=decodeURIComponent(passwordIdx)}catch(e){this.parse_url_URL$isValid=!1;atIdx=passwordIdx;break b}for(passwordIdx=0;passwordIdx=code||97<=code&&122>=code||65<=code&&90>=code||43===code||45===code))return JSCompiler_StaticMethods_parseProtocol_$self.hasProtocol=!1,JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol= JSCompiler_StaticMethods_parseProtocol_$self.defaultProtocol,unparsed}JSCompiler_StaticMethods_parseProtocol_$self.hasProtocol=!0;JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol=unparsed.substr(0,colon).toLowerCase();unparsed=unparsed.substr(colon+1);"http"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&"https"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&"ftp"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&& -"sftp"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&(unparsed="");return unparsed};function createParseErrorTokenAt(positionToken,code,params){code=new parse_css$ErrorToken(code,params);JSCompiler_StaticMethods_copyPosTo(positionToken,code);return code}function firstIdent(tokens){return 0===tokens.length?"":17===tokens[0].tokenType?tokens[0].value:2<=tokens.length&&29===tokens[0].tokenType&&17===tokens[1].tokenType?tokens[1].value:""}function Amp4AdsVisitor(errors){this.errors=errors;this.inKeyframes=null}$jscomp$inherits(Amp4AdsVisitor,parse_css$RuleVisitor); -Amp4AdsVisitor.prototype.visitDeclaration=function(declaration){if("position"===declaration.name){var ident=firstIdent(declaration.value);"fixed"!==ident&&"sticky"!==ident||this.errors.push(createParseErrorTokenAt(declaration,"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE",["style","position",ident]))}}; -Amp4AdsVisitor.prototype.visitQualifiedRule=function(qualifiedRule){for(var transitionOrAnimation=null,$jscomp$iter$10=$jscomp$makeIterator(qualifiedRule.parse_css_QualifiedRule$declarations),$jscomp$key$decl=$jscomp$iter$10.next();!$jscomp$key$decl.done;$jscomp$key$decl=$jscomp$iter$10.next()){$jscomp$key$decl=$jscomp$key$decl.value;var name=parse_css$stripVendorPrefix($jscomp$key$decl.name);if("transition"===name||"animation"===name)transitionOrAnimation=$jscomp$key$decl;if("transition"===name){var transitionedProperty= -firstIdent($jscomp$key$decl.value),transitionedPropertyStripped=parse_css$stripVendorPrefix(transitionedProperty);"opacity"!==transitionedPropertyStripped&&"transform"!==transitionedPropertyStripped&&this.errors.push(createParseErrorTokenAt($jscomp$key$decl,"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT",["style","transition",transitionedProperty,"['opacity', 'transform']"]))}null!==this.inKeyframes&&"transform"!==name&&"opacity"!==name&&"animation-timing-function"!==name&&this.errors.push(createParseErrorTokenAt($jscomp$key$decl, -"CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE",["style",$jscomp$key$decl.name,this.inKeyframes.name,"['animation-timing-function', 'opacity', 'transform']"]))}if(null!==transitionOrAnimation)for(qualifiedRule=$jscomp$makeIterator(qualifiedRule.parse_css_QualifiedRule$declarations),$jscomp$key$decl=qualifiedRule.next();!$jscomp$key$decl.done;$jscomp$key$decl=qualifiedRule.next())$jscomp$iter$10=$jscomp$key$decl.value,$jscomp$key$decl=["animation","opacity","transform","transition","visibility"],-1=== -$jscomp$key$decl.indexOf(parse_css$stripVendorPrefix($jscomp$iter$10.name))&&this.errors.push(createParseErrorTokenAt($jscomp$iter$10,"CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH",["style",$jscomp$iter$10.name,transitionOrAnimation.name,"['"+$jscomp$key$decl.join("', '")+"']"]))};Amp4AdsVisitor.prototype.visitAtRule=function(atRule){"keyframes"===parse_css$stripVendorPrefix(atRule.name)?this.inKeyframes=atRule:this.inKeyframes=null}; -Amp4AdsVisitor.prototype.leaveAtRule=function(){this.inKeyframes=null};/* - - Copyright 2017 The AMP HTML Authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS-IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the license. -*/ -function createErrorTokenAt(positionToken,code,params){code=new parse_css$ErrorToken(code,params);JSCompiler_StaticMethods_copyPosTo(positionToken,code);return code}function KeyframesVisitor(errors){this.errors=errors;this.parentIsKeyframesAtRule=!1}$jscomp$inherits(KeyframesVisitor,parse_css$RuleVisitor); -KeyframesVisitor.prototype.visitQualifiedRule=function(qualifiedRule){this.parentIsKeyframesAtRule?0JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.occupants_&&(JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.occupants_++,item.next=JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.head_,JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.head_= -item)};var goog$labs$userAgent$util$userAgent_;a:{var navigator$jscomp$inline_274=goog$global.navigator;if(navigator$jscomp$inline_274){var userAgent$jscomp$inline_275=navigator$jscomp$inline_274.userAgent;if(userAgent$jscomp$inline_275){goog$labs$userAgent$util$userAgent_=userAgent$jscomp$inline_275;break a}}goog$labs$userAgent$util$userAgent_=""};function goog$async$throwException(exception){goog$global.setTimeout(function(){throw exception;},0)}var goog$async$nextTick$setImmediate_; -function goog$async$nextTick$getSetImmediateEmulator_(){var Channel=goog$global.MessageChannel;"undefined"===typeof Channel&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Presto")&&(Channel=function(){var iframe=document.createElement("IFRAME");iframe.style.display="none";iframe.src="";document.documentElement.appendChild(iframe);var win=iframe.contentWindow;iframe=win.document;iframe.open();iframe.write("");iframe.close(); -var message="callImmediate"+Math.random(),origin="file:"==win.location.protocol?"*":win.location.protocol+"//"+win.location.host;iframe=goog$bind(function(e){if(("*"==origin||e.origin==origin)&&e.data==message)this.port1.onmessage()},this);win.addEventListener("message",iframe,!1);this.port1={};this.port2={postMessage:function(){win.postMessage(message,origin)}}});if("undefined"!==typeof Channel&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Trident")&&-1==goog$labs$userAgent$util$userAgent_.indexOf("MSIE")){var channel= -new Channel,head={},tail=head;channel.port1.onmessage=function(){if(void 0!==head.next){head=head.next;var cb=head.cb;head.cb=null;cb()}};return function(cb){tail.next={cb:cb};tail=tail.next;channel.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(cb){var script=document.createElement("SCRIPT");script.onreadystatechange=function(){script.onreadystatechange=null;script.parentNode.removeChild(script);script=null;cb();cb=null}; -document.documentElement.appendChild(script)}:function(cb){goog$global.setTimeout(cb,0)}};function goog$async$WorkQueue(){this.workTail_=this.workHead_=null}var goog$async$WorkQueue$freelist_=new goog$async$FreeList(function(){return new goog$async$WorkItem},function(item){item.reset()});goog$async$WorkQueue.prototype.add=function(fn,scope){var item=goog$async$WorkQueue$freelist_.get();item.set(fn,scope);this.workTail_?this.workTail_.next=item:(goog$asserts$assert(!this.workHead_),this.workHead_=item);this.workTail_=item}; -function JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove(){var JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self=goog$async$run$workQueue_,item=null;JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_&&(item=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_,JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_.next, -JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_||(JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workTail_=null),item.next=null);return item}function goog$async$WorkItem(){this.next=this.goog_async_WorkItem$scope=this.fn=null}goog$async$WorkItem.prototype.set=function(fn,scope){this.fn=fn;this.goog_async_WorkItem$scope=scope;this.next=null};goog$async$WorkItem.prototype.reset=function(){this.next=this.goog_async_WorkItem$scope=this.fn=null};function goog$async$run(callback,opt_context){goog$async$run$schedule_||goog$async$run$initializeRunner_();goog$async$run$workQueueScheduled_||(goog$async$run$schedule_(),goog$async$run$workQueueScheduled_=!0);goog$async$run$workQueue_.add(callback,opt_context)}var goog$async$run$schedule_; -function goog$async$run$initializeRunner_(){if(-1!=String(goog$global.Promise).indexOf("[native code]")){var promise=goog$global.Promise.resolve(void 0);goog$async$run$schedule_=function(){promise.then(goog$async$run$processWorkQueue)}}else goog$async$run$schedule_=function(){var cb=goog$async$run$processWorkQueue;!goog$isFunction(goog$global.setImmediate)||goog$global.Window&&goog$global.Window.prototype&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Edge")&&goog$global.Window.prototype.setImmediate== -goog$global.setImmediate?(goog$async$nextTick$setImmediate_||(goog$async$nextTick$setImmediate_=goog$async$nextTick$getSetImmediateEmulator_()),goog$async$nextTick$setImmediate_(cb)):goog$global.setImmediate(cb)}}var goog$async$run$workQueueScheduled_=!1,goog$async$run$workQueue_=new goog$async$WorkQueue; -function goog$async$run$processWorkQueue(){for(var item;item=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove();){try{item.fn.call(item.goog_async_WorkItem$scope)}catch(e){goog$async$throwException(e)}JSCompiler_StaticMethods_goog_async_FreeList_prototype$put(goog$async$WorkQueue$freelist_,item)}goog$async$run$workQueueScheduled_=!1};function goog$Promise(resolver){this.state_=0;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.hadUnhandledRejection_=this.executing_=!1;if(resolver!=goog$nullFunction)try{var self=this;resolver.call(void 0,function(value){JSCompiler_StaticMethods_resolve_(self,2,value)},function(reason){if(!(reason instanceof goog$Promise$CancellationError))try{if(reason instanceof Error)throw reason;throw Error("Promise rejected.");}catch(e){}JSCompiler_StaticMethods_resolve_(self, -3,reason)})}catch(e){JSCompiler_StaticMethods_resolve_(this,3,e)}}function goog$Promise$CallbackEntry_(){this.next=this.goog_Promise_CallbackEntry_$context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1}goog$Promise$CallbackEntry_.prototype.reset=function(){this.goog_Promise_CallbackEntry_$context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};var goog$Promise$freelist_=new goog$async$FreeList(function(){return new goog$Promise$CallbackEntry_},function(item){item.reset()}); -function goog$Promise$getCallbackEntry_(onFulfilled,onRejected,context){var entry=goog$Promise$freelist_.get();entry.onFulfilled=onFulfilled;entry.onRejected=onRejected;entry.goog_Promise_CallbackEntry_$context=context;return entry} -goog$Promise.prototype.then=function(opt_onFulfilled,opt_onRejected,opt_context){null!=opt_onFulfilled&&goog$asserts$assertFunction(opt_onFulfilled,"opt_onFulfilled should be a function.");null!=opt_onRejected&&goog$asserts$assertFunction(opt_onRejected,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");return JSCompiler_StaticMethods_addChildPromise_(this,goog$isFunction(opt_onFulfilled)?opt_onFulfilled:null,goog$isFunction(opt_onRejected)? -opt_onRejected:null,opt_context)};goog$Promise.prototype.then=goog$Promise.prototype.then;goog$Promise.prototype.$goog_Thenable=!0;goog$Promise.prototype.cancel=function(opt_message){0==this.state_&&goog$async$run(function(){var err=new goog$Promise$CancellationError(opt_message);JSCompiler_StaticMethods_cancelInternal_(this,err)},this)}; -function JSCompiler_StaticMethods_cancelInternal_(JSCompiler_StaticMethods_cancelInternal_$self,err){if(0==JSCompiler_StaticMethods_cancelInternal_$self.state_)if(JSCompiler_StaticMethods_cancelInternal_$self.parent_){var JSCompiler_StaticMethods_cancelChild_$self=JSCompiler_StaticMethods_cancelInternal_$self.parent_;if(JSCompiler_StaticMethods_cancelChild_$self.callbackEntries_){for(var childCount=0,childEntry=null,beforeChildEntry=null,entry=JSCompiler_StaticMethods_cancelChild_$self.callbackEntries_;entry&& -(entry.always||(childCount++,entry.child==JSCompiler_StaticMethods_cancelInternal_$self&&(childEntry=entry),!(childEntry&&1hashIndex?uri:uri.substr(0,hashIndex)};function sortAndUniquify(arrayValue){if(!(2>arrayValue.length)){goog$array$sort(arrayValue);for(var uniqIdx=0,i=1;i style[amp-boilerplate] - old variant",mandatoryAlternatives:-14,unique:!0,mandatoryParent:"HEAD",attrs:[-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_3,deprecation:"head > style[amp-boilerplate]",deprecationUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", +htmlFormat:["AMP","EXPERIMENTAL"]}),cdataspec_4=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-17}),tagspec_40=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"noscript > style[amp-boilerplate] - old variant",mandatoryAlternatives:-16,unique:!0,mandatoryParent:"NOSCRIPT",attrs:[-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_4,mandatoryAncestor:"HEAD",deprecation:"noscript > style[amp-boilerplate]",deprecationUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", +htmlFormat:["AMP"]}),cdataspec_5=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-18}),tagspec_41=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp-boilerplate]",mandatoryAlternatives:-14,unique:!0,mandatoryParent:"HEAD",attrs:[49,-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_5,htmlFormat:["AMP","EXPERIMENTAL"],satisfies:[-14],requires:[-16]}),cdataspec_6=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-19}), +tagspec_42=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp4ads-boilerplate]",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[50,-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#boilerplate",cdata:cdataspec_6,htmlFormat:["AMP4ADS"]}),tagspec_43=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp4email-boilerplate]",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[51,-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", +cdata:cdataspec_6,htmlFormat:["AMP4EMAIL"]}),cdataspec_7=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-20}),tagspec_44=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"noscript > style[amp-boilerplate]",mandatoryAlternatives:-16,unique:!0,mandatoryParent:"NOSCRIPT",attrs:[49,-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_7,mandatoryAncestor:"HEAD",htmlFormat:["AMP","EXPERIMENTAL"],satisfies:[-16],requires:[-14]}),cssspec_3= +Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4],validateKeyframes:!0,allowedDeclarations:["animation-timing-function","offset-distance","opacity","transform","visibility"]}),cdataspec_8=Object.assign(new amp$validator$CdataSpec,{maxBytes:5E5,maxBytesSpecUrl:"https://www.ampproject.org/docs/reference/spec#keyframes-stylesheet",cssSpec:cssspec_3}),tagspec_45=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style[amp-keyframes]",unique:!0, +mandatoryParent:"BODY",attrs:[52],cdata:cdataspec_8,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],mandatoryLastChild:!0}),tagspec_46=Object.assign(new amp$validator$TagSpec("BODY"),{mandatory:!0,unique:!0,mandatoryParent:"HTML",specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup"}),tagspec_47=new amp$validator$TagSpec("ARTICLE"),tagspec_48=Object.assign(new amp$validator$TagSpec("SECTION"),{disallowedAncestor:["AMP-ACCORDION"]}),tagspec_49=new amp$validator$TagSpec("NAV"),tagspec_50= +new amp$validator$TagSpec("ASIDE"),tagspec_51=Object.assign(new amp$validator$TagSpec("H1"),{attrs:[-21]}),tagspec_52=Object.assign(new amp$validator$TagSpec("H2"),{attrs:[-21]}),tagspec_53=Object.assign(new amp$validator$TagSpec("H3"),{attrs:[-21]}),tagspec_54=Object.assign(new amp$validator$TagSpec("H4"),{attrs:[-21]}),tagspec_55=Object.assign(new amp$validator$TagSpec("H5"),{attrs:[-21]}),tagspec_56=Object.assign(new amp$validator$TagSpec("H6"),{attrs:[-21]}),tagspec_57=new amp$validator$TagSpec("HEADER"), +tagspec_58=new amp$validator$TagSpec("FOOTER"),tagspec_59=new amp$validator$TagSpec("ADDRESS"),tagspec_60=Object.assign(new amp$validator$TagSpec("P"),{attrs:[-21]}),tagspec_61=new amp$validator$TagSpec("HR"),tagspec_62=new amp$validator$TagSpec("PRE"),tagspec_63=Object.assign(new amp$validator$TagSpec("BLOCKQUOTE"),{attrs:[-21],attrLists:[1]}),tagspec_64=Object.assign(new amp$validator$TagSpec("OL"),{attrs:[53,54,55]}),tagspec_65=new amp$validator$TagSpec("UL"),tagspec_66=Object.assign(new amp$validator$TagSpec("LI"), +{attrs:[56]}),tagspec_67=new amp$validator$TagSpec("DL"),tagspec_68=new amp$validator$TagSpec("DT"),tagspec_69=new amp$validator$TagSpec("DD"),tagspec_70=new amp$validator$TagSpec("FIGURE"),tagspec_71=new amp$validator$TagSpec("FIGCAPTION"),tagspec_72=Object.assign(new amp$validator$TagSpec("DIV"),{attrs:[-21]}),tagspec_73=new amp$validator$TagSpec("MAIN"),tagspec_74=Object.assign(new amp$validator$TagSpec("A"),{attrs:[57,-22,58,59,60,61,-23,-6,62,-24,-25,-26],specUrl:"https://www.ampproject.org/docs/reference/spec#links", +htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_75=Object.assign(new amp$validator$TagSpec("A"),{specName:"A (AMP4EMAIL)",attrs:[63,-22,59,60,64,-6,62,-24,-25],htmlFormat:["AMP4EMAIL"]}),tagspec_76=new amp$validator$TagSpec("EM"),tagspec_77=new amp$validator$TagSpec("STRONG"),tagspec_78=new amp$validator$TagSpec("SMALL"),tagspec_79=new amp$validator$TagSpec("S"),tagspec_80=new amp$validator$TagSpec("CITE"),tagspec_81=Object.assign(new amp$validator$TagSpec("Q"),{attrLists:[1]}),tagspec_82=new amp$validator$TagSpec("DFN"), +tagspec_83=new amp$validator$TagSpec("ABBR"),tagspec_84=new amp$validator$TagSpec("DATA"),tagspec_85=Object.assign(new amp$validator$TagSpec("TIME"),{attrs:[-27]}),tagspec_86=new amp$validator$TagSpec("CODE"),tagspec_87=new amp$validator$TagSpec("VAR"),tagspec_88=new amp$validator$TagSpec("SAMP"),tagspec_89=new amp$validator$TagSpec("KBD"),tagspec_90=new amp$validator$TagSpec("SUB"),tagspec_91=new amp$validator$TagSpec("SUP"),tagspec_92=new amp$validator$TagSpec("I"),tagspec_93=new amp$validator$TagSpec("B"), +tagspec_94=new amp$validator$TagSpec("U"),tagspec_95=new amp$validator$TagSpec("MARK"),tagspec_96=new amp$validator$TagSpec("RUBY"),tagspec_97=new amp$validator$TagSpec("RB"),tagspec_98=new amp$validator$TagSpec("RT"),tagspec_99=new amp$validator$TagSpec("RTC"),tagspec_100=new amp$validator$TagSpec("RP"),tagspec_101=new amp$validator$TagSpec("BDI"),tagspec_102=Object.assign(new amp$validator$TagSpec("BDO"),{attrs:[-28]}),tagspec_103=new amp$validator$TagSpec("SPAN"),tagspec_104=new amp$validator$TagSpec("BR"), +tagspec_105=new amp$validator$TagSpec("WBR"),tagspec_106=Object.assign(new amp$validator$TagSpec("INS"),{attrs:[-27],attrLists:[1]}),tagspec_107=Object.assign(new amp$validator$TagSpec("DEL"),{attrs:[-27],attrLists:[1]}),tagspec_108=Object.assign(new amp$validator$TagSpec("IMG"),{attrs:[-29,-30,65,66,-24,-31,-32],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-IMG",htmlFormat:["AMP"]}),tagspec_109=Object.assign(new amp$validator$TagSpec("IFRAME"), +{attrs:[-25,67,-33,68,-31,-34,69,70,71,-32],specUrl:"https://www.ampproject.org/docs/reference/components/amp-iframe",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-IFRAME",htmlFormat:["AMP"]}),tagspec_110=Object.assign(new amp$validator$TagSpec("VIDEO"),{attrs:[-35,-36,-31,-37,72,-38,-39,-40,73,-32],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-VIDEO",htmlFormat:["AMP"]}),tagspec_111= +Object.assign(new amp$validator$TagSpec("AUDIO"),{attrs:[-35,-36,-37,-41,-40,73],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-AUDIO",htmlFormat:["AMP"]}),tagspec_112=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-video > source",mandatoryParent:"AMP-VIDEO",attrs:[74,-6,-3,-42,-43],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_113=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-audio > source",mandatoryParent:"AMP-AUDIO",attrs:[74,-6,-3,-42,-43],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_114=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"audio > source",mandatoryParent:"AUDIO",attrs:[75,76,-6],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_115=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"video > source",mandatoryParent:"VIDEO",attrs:[75,76,-6],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_116=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-ima-video > source",mandatoryParent:"AMP-IMA-VIDEO",attrs:[-6,74,-3,-42,-43],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-ima-video"]}), +tagspec_117=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"audio > track",mandatoryParent:"AUDIO",attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_118=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"audio > track[kind=subtitles]",mandatoryParent:"AUDIO",attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_119=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"video > track",mandatoryParent:"VIDEO",attrLists:[2],htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_120=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"video > track[kind=subtitles]",mandatoryParent:"VIDEO",attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_121=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-audio > track",mandatoryParent:"AMP-AUDIO",attrs:[-44,-42,-45],attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_122=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-audio > track[kind=subtitles]", +mandatoryParent:"AMP-AUDIO",attrs:[-44,-42,-45],attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_123=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-video > track",mandatoryParent:"AMP-VIDEO",attrs:[-44,-42,-45],attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_124=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-video > track[kind=subtitles]",mandatoryParent:"AMP-VIDEO",attrs:[-44,-42,-45],attrLists:[3],htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_125=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-ima-video > track[kind=subtitles]",mandatoryParent:"AMP-IMA-VIDEO",attrs:[-44,-42,-45],attrLists:[3],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ima-video",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_126=Object.assign(new amp$validator$TagSpec("G"),{attrs:[-46,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_127=Object.assign(new amp$validator$TagSpec("GLYPH"),{attrs:[-48,-49,-50,-51,-52,-53,-54,-55,-56],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_128=Object.assign(new amp$validator$TagSpec("GLYPHREF"),{attrs:[-57,-58,-59,-60,-61,-62],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_129=Object.assign(new amp$validator$TagSpec("IMAGE"),{attrs:[-46,-31,-63,-47,-32,-61,-62,-64,-65,77,-66,-67,-68,-69],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_130=Object.assign(new amp$validator$TagSpec("MARKER"),{attrs:[-46,-70,-71,-72,-73,-63,-74,-75,-47,-76],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG", +htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_131=Object.assign(new amp$validator$TagSpec("METADATA"),{attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_132=Object.assign(new amp$validator$TagSpec("PATH"),{attrs:[-49,-46,-77,-78,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_133= +Object.assign(new amp$validator$TagSpec("SOLIDCOLOR"),{attrs:[-79,-80],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_134=Object.assign(new amp$validator$TagSpec("SVG"),{attrs:[-81,-82,-46,-31,-63,78,-76,-32,-61,-62,-83],attrLists:[4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_135=Object.assign(new amp$validator$TagSpec("SWITCH"), +{attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_136=Object.assign(new amp$validator$TagSpec("VIEW"),{attrs:[-46,-63,-76,-84,-83],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_137=Object.assign(new amp$validator$TagSpec("CIRCLE"),{attrs:[-85,-86,-46,-87,-78,-47],attrLists:[10,4, +5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_138=Object.assign(new amp$validator$TagSpec("ELLIPSE"),{attrs:[-85,-86,-46,-88,-89,-78,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_139=Object.assign(new amp$validator$TagSpec("LINE"),{attrs:[-46,-78,-47,-90,-91,-92,-93],attrLists:[10,4, +5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_140=Object.assign(new amp$validator$TagSpec("POLYGON"),{attrs:[-46,-94,-78,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_141=Object.assign(new amp$validator$TagSpec("POLYLINE"),{attrs:[-46,-94,-78,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_142=Object.assign(new amp$validator$TagSpec("RECT"),{attrs:[-46,-31,-88,-89,-78,-47,-32,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_143=Object.assign(new amp$validator$TagSpec("TEXT"),{attrs:[-57,-58,-46,-95,-96,-97,-98,-47,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_144=Object.assign(new amp$validator$TagSpec("TEXTPATH"),{attrs:[-46,-99,-100,-101],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_145=Object.assign(new amp$validator$TagSpec("TREF"),{attrs:[-46],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_146=Object.assign(new amp$validator$TagSpec("TSPAN"),{attrs:[-57,-58,-46,-96,-95,-98,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_147=Object.assign(new amp$validator$TagSpec("CLIPPATH"),{attrs:[-102,-46,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_148=Object.assign(new amp$validator$TagSpec("FILTER"),{attrs:[-46,-103,-104,-31,-105,-32,-61,-62],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_149=Object.assign(new amp$validator$TagSpec("HKERN"),{attrs:[-106,-107,-108,-109,-110],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_150=Object.assign(new amp$validator$TagSpec("LINEARGRADIENT"),{attrs:[-46,-111,-112,-113,-90,-92,-91,-93],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_151=Object.assign(new amp$validator$TagSpec("MASK"),{attrs:[-46,-31,-114,-115,-32,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_152=Object.assign(new amp$validator$TagSpec("PATTERN"),{attrs:[-46,-31,-116,-117,-118,-63,-76,-32,-61,-62],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_153=Object.assign(new amp$validator$TagSpec("RADIALGRADIENT"),{attrs:[-85,-86,-46,-119,-120,-121,-111,-112,-87,-113],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_154=Object.assign(new amp$validator$TagSpec("STOP"),{specName:"lineargradient > stop",attrs:[-122,-123,-124],attrLists:[10],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"LINEARGRADIENT",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_155=Object.assign(new amp$validator$TagSpec("STOP"),{specName:"radialgradient > stop",attrs:[-122,-123,-124],attrLists:[10],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"RADIALGRADIENT",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_156=Object.assign(new amp$validator$TagSpec("VKERN"),{attrs:[-106,-107,-108,-109,-110],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_157=Object.assign(new amp$validator$TagSpec("DEFS"),{attrs:[-46,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG", +htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_158=Object.assign(new amp$validator$TagSpec("SYMBOL"),{attrs:[-46,-63,-76],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_159=Object.assign(new amp$validator$TagSpec("USE"),{attrs:[-46,-31,-47,-32,-61,-62],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_160=Object.assign(new amp$validator$TagSpec("FECOLORMATRIX"),{attrs:[-125,-3,-126],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_161=Object.assign(new amp$validator$TagSpec("FECOMPOSITE"),{attrs:[-125,-127,-128,-129,-130,-131,-132],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_162=Object.assign(new amp$validator$TagSpec("FEFLOOD"),{attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_163=Object.assign(new amp$validator$TagSpec("FEGAUSSIANBLUR"),{attrs:[-133,-125,-134],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_164=Object.assign(new amp$validator$TagSpec("FEMERGE"), +{attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_165=Object.assign(new amp$validator$TagSpec("FEMERGENODE"),{attrs:[-125],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_166=Object.assign(new amp$validator$TagSpec("FEOFFSET"),{attrs:[-57,-58,-125],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_167=Object.assign(new amp$validator$TagSpec("FOREIGNOBJECT"),{attrs:[-46,-31,-47,-32,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_168=Object.assign(new amp$validator$TagSpec("DESC"),{attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_169=Object.assign(new amp$validator$TagSpec("TITLE"),{specName:"svg title",attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_170=Object.assign(new amp$validator$TagSpec("TABLE"),{attrs:[-135,-21,79,-136,-137,-138,-32]}),tagspec_171=new amp$validator$TagSpec("CAPTION"),tagspec_172=Object.assign(new amp$validator$TagSpec("COLGROUP"),{attrs:[-139]}),tagspec_173= +Object.assign(new amp$validator$TagSpec("COL"),{attrs:[-139]}),tagspec_174=new amp$validator$TagSpec("TBODY"),tagspec_175=new amp$validator$TagSpec("THEAD"),tagspec_176=new amp$validator$TagSpec("TFOOT"),tagspec_177=Object.assign(new amp$validator$TagSpec("TR"),{attrs:[-21,-136,-31,-140]}),tagspec_178=Object.assign(new amp$validator$TagSpec("TD"),{attrs:[-141,-142,-143,-21,-136,-31,-140,-32]}),tagspec_179=Object.assign(new amp$validator$TagSpec("TH"),{attrs:[-144,-141,-142,-143,-145,-146,-21,-136, +-31,-140,-32]}),tagspec_180=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=GET]",attrs:[-147,-148,80,81,-149,82,-150,83,-25,-151,84,85],disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-form"]}),tagspec_181=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=POST]",attrs:[-147,-148,86,-149,87,-150,88,-25,-151,84,85],disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"], +requiresExtension:["amp-form"]}),tagspec_182=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=GET] (AMP4EMAIL)",attrs:[-147,-148,89,-149,90,-150,83,-25,-151,91],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-form"]}),tagspec_183=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=POST] (AMP4EMAIL)",attrs:[-147,-148,92,-149,93,-150,88,-25,-151,91],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-form"]}),tagspec_184=Object.assign(new amp$validator$TagSpec("DIV"), +{specName:"FORM > DIV [submitting]",mandatoryParent:"FORM",attrs:[-21,94]}),tagspec_185=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-success]",mandatoryParent:"FORM",attrs:[-21,95]}),tagspec_186=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-success][template]",mandatoryParent:"FORM",attrs:[-21,95,96]}),tagspec_187=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-error]",mandatoryParent:"FORM",attrs:[-21,97]}), +tagspec_188=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-error][template]",mandatoryParent:"FORM",attrs:[-21,97,96]}),tagspec_189=Object.assign(new amp$validator$TagSpec("LABEL"),{attrs:[-152],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_190=Object.assign(new amp$validator$TagSpec("INPUT"),{attrs:[-147,-153,-149,-154,-155,-156,-31,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,98,-173,-32,-174,-175, +-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-43,-194,-195],attrLists:[11],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_191=Object.assign(new amp$validator$TagSpec("BUTTON"),{attrs:[99,59,60,-3,-173,-178,-43,-194],attrLists:[11]}),tagspec_192=Object.assign(new amp$validator$TagSpec("BUTTON"),{specName:"amp-app-banner button[open-button]",attrs:[100,59,60,-3,-173],attrLists:[11],mandatoryAncestor:"AMP-APP-BANNER",htmlFormat:["AMP", +"AMP4ADS"],satisfies:[-196]}),tagspec_193=Object.assign(new amp$validator$TagSpec("SELECT"),{attrs:[-154,-156,-163,-167,-169,-197,-178,-185,-189,-191],attrLists:[11],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_194=Object.assign(new amp$validator$TagSpec("DATALIST"),{specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_195=Object.assign(new amp$validator$TagSpec("OPTGROUP"),{mandatoryParent:"SELECT",attrs:[-156,-198,-178,-44],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}), +tagspec_196=Object.assign(new amp$validator$TagSpec("OPTION"),{attrs:[-156,-198,-199,-173,-178,-44,-200,-194],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_197=Object.assign(new amp$validator$TagSpec("TEXTAREA"),{attrs:[-149,-154,-201,-156,-160,-162,-165,-166,-167,-202,-168,-203,-204,-170,-205,-176,-197,-206,-178,-182,-184,-187,-188,-189,-207,-190,-208,-209,-192,-210],attrLists:[11],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_198= +Object.assign(new amp$validator$TagSpec("OUTPUT"),{attrs:[-152,-211],attrLists:[11]}),tagspec_199=Object.assign(new amp$validator$TagSpec("PROGRESS"),{attrs:[-159,-173]}),tagspec_200=Object.assign(new amp$validator$TagSpec("METER"),{attrs:[-212,-213,-159,-161,-214,-173]}),tagspec_201=Object.assign(new amp$validator$TagSpec("FIELDSET"),{attrs:[-156,-178],attrLists:[11]}),tagspec_202=new amp$validator$TagSpec("LEGEND"),cdataspec_9=Object.assign(new amp$validator$CdataSpec,{blacklistedCdataRegex:[new amp$validator$BlackListedCDataRegex(".", +"contents")]});cdataspec_9.combinedBlacklistedCdataRegex=-215;var tagspec_203=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amphtml engine v0.js script",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[101,-12,102,103],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",cdata:cdataspec_9,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),tagspec_204=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp4ads engine amp4ads-v0.js script",mandatory:!0,unique:!0, +mandatoryParent:"HEAD",attrs:[101,-12,104,103],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",cdata:cdataspec_9,htmlFormat:["AMP4ADS"]}),cdataspec_10=Object.assign(new amp$validator$CdataSpec,{blacklistedCdataRegex:[blacklistedcdataregex_0]});cdataspec_10.combinedBlacklistedCdataRegex=-216;var tagspec_205=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"script type=application/ld+json",attrs:[-12,105],cdata:cdataspec_10}),tagspec_206=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{specName:"script id=amp-rtc",unique:!0,mandatoryParent:"HEAD",attrs:[-12,106,107],cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_207=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-ima-video > script[type=application/json]",mandatoryParent:"AMP-IMA-VIDEO",attrs:[108],cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_208=Object.assign(new amp$validator$TagSpec("NOSCRIPT"),{specName:"noscript enclosure for boilerplate",mandatory:!0,unique:!0,mandatoryParent:"HEAD", +specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_209=Object.assign(new amp$validator$TagSpec("NOSCRIPT"),{disallowedAncestor:["NOSCRIPT"],mandatoryAncestor:"BODY",htmlFormat:["AMP"]}),tagspec_210=Object.assign(new amp$validator$TagSpec("ACRONYM"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_211=Object.assign(new amp$validator$TagSpec("BIG"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_212=Object.assign(new amp$validator$TagSpec("CENTER"), +{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_213=Object.assign(new amp$validator$TagSpec("DIR"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_214=Object.assign(new amp$validator$TagSpec("HGROUP"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_215=Object.assign(new amp$validator$TagSpec("LISTING"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_216=Object.assign(new amp$validator$TagSpec("MULTICOL"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_217=Object.assign(new amp$validator$TagSpec("NEXTID"),{htmlFormat:["AMP", +"EXPERIMENTAL"]}),tagspec_218=Object.assign(new amp$validator$TagSpec("NOBR"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_219=Object.assign(new amp$validator$TagSpec("SPACER"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_220=Object.assign(new amp$validator$TagSpec("STRIKE"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_221=Object.assign(new amp$validator$TagSpec("TT"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_222=Object.assign(new amp$validator$TagSpec("XMP"),{htmlFormat:["AMP","EXPERIMENTAL"]}), +tagspec_223=Object.assign(new amp$validator$TagSpec("SLOT"),{attrs:[-25],htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_224=Object.assign(new amp$validator$TagSpec("O:P"),{htmlFormat:["AMP"]}),amplayout_0=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM INTRINSIC NODISPLAY RESPONSIVE".split(" ")),tagspec_225=Object.assign(new amp$validator$TagSpec("AMP-IMG"),{attrs:[-29,-217,-165,-218,-219,-42,-220],attrLists:[15,12],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img", +ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),amplayout_1=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),tagspec_226=Object.assign(new amp$validator$TagSpec("AMP-IMG"),{specName:"AMP-IMG (AMP4EMAIL)",attrs:[-29,-217,-165,-218,-219],attrLists:[15,13],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img",ampLayout:amplayout_1,htmlFormat:["AMP4EMAIL"]}),tagspec_227=Object.assign(new amp$validator$TagSpec("AMP-LAYOUT"), +{attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-layout",ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),amplayout_2=Object.assign(new amp$validator$AmpLayout(["FIXED","NODISPLAY"]),{definesDefaultWidth:!0,definesDefaultHeight:!0}),tagspec_228=Object.assign(new amp$validator$TagSpec("AMP-PIXEL"),{attrs:[-221,109,110],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-pixel",ampLayout:amplayout_2,htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),extensionspec_0=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-3q-player",allowedVersions:["0.1","latest"]}),tagspec_229=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_0}),amplayout_3=new amp$validator$AmpLayout(["FILL","FIXED","FLEX_ITEM","RESPONSIVE"]),tagspec_230=Object.assign(new amp$validator$TagSpec("AMP-3Q-PLAYER"),{attrs:[111,112],attrLists:[15],ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-3q-player"]}), +extensionspec_1=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access-laterpay",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_231=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_1,requiresExtension:["amp-access"]}),extensionspec_2=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access-scroll",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_232=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_2,requiresExtension:["amp-access"]}),extensionspec_3=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_233=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_3}),tagspec_234=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-access extension .json script", +unique:!0,mandatoryParent:"HEAD",attrs:[113,-12,106],cdata:cdataspec_10,htmlFormat:["AMP"],requiresExtension:["amp-access","amp-analytics"]}),extensionspec_4=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-accordion",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_235=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_4}),amplayout_4=new amp$validator$AmpLayout(["CONTAINER"]),childtagspec_0=Object.assign(new amp$validator$ChildTagSpec, +{childTagNameOneof:["SECTION"]}),tagspec_236=Object.assign(new amp$validator$TagSpec("AMP-ACCORDION"),{attrs:[114],specUrl:"https://www.ampproject.org/docs/reference/components/amp-accordion",ampLayout:amplayout_4,childTags:childtagspec_0,requiresExtension:["amp-accordion"]}),childtagspec_1=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:2,firstChildTagNameOneof:"H1 H2 H3 H4 H5 H6 HEADER".split(" ")}),tagspec_237=Object.assign(new amp$validator$TagSpec("SECTION"),{specName:"amp-accordion > section", +mandatoryParent:"AMP-ACCORDION",attrs:[115,116],childTags:childtagspec_1}),extensionspec_5=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ad-exit",allowedVersions:["0.1","latest"]}),tagspec_238=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP4ADS"],extensionSpec:extensionspec_5}),amplayout_5=new amp$validator$AmpLayout(["NODISPLAY","CONTAINER"]),childtagspec_2=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["SCRIPT"]}), +tagspec_239=Object.assign(new amp$validator$TagSpec("AMP-AD-EXIT"),{attrs:[117],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad-exit",ampLayout:amplayout_5,childTags:childtagspec_2,htmlFormat:["AMP4ADS"],requires:[-222],requiresExtension:["amp-ad-exit"]}),tagspec_240=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-ad-exit configuration JSON",mandatoryParent:"AMP-AD-EXIT",attrs:[-12,118],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad-exit", +htmlFormat:["AMP4ADS"],satisfies:[-222],requiresExtension:["amp-ad-exit"]}),extensionspec_6=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ad",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_241=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-ad extension .js script",attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_6}),amplayout_6=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM FLUID INTRINSIC NODISPLAY RESPONSIVE".split(" ")), +tagspec_242=Object.assign(new amp$validator$TagSpec("AMP-AD"),{attrs:[-29,-223,-224,-225,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),tagspec_243=Object.assign(new amp$validator$TagSpec("AMP-AD"),{specName:"amp-ad with data-multi-size attribute",attrs:[-29,119,-223,-224,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad", +ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),tagspec_244=Object.assign(new amp$validator$TagSpec("AMP-AD"),{specName:"amp-ad with data-enable-refresh attribute",attrs:[-29,120,-223,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-FX-FLYING-CARPET", +"AMP-LIGHTBOX"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),tagspec_245=Object.assign(new amp$validator$TagSpec("AMP-EMBED"),{attrs:[-29,-223,-224,-225,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),tagspec_246=Object.assign(new amp$validator$TagSpec("AMP-EMBED"),{specName:"amp-embed with data-multi-size attribute", +attrs:[-29,119,-223,-224,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),extensionspec_7=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-analytics",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}), +tagspec_247=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_7}),tagspec_248=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-analytics extension .json script",mandatoryParent:"AMP-ANALYTICS",attrs:[-12,108],specUrl:"https://www.ampproject.org/docs/reference/components/amp-analytics",cdata:cdataspec_10,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-analytics"]}),tagspec_249= +Object.assign(new amp$validator$TagSpec("AMP-ANALYTICS"),{attrs:[-3,121],specUrl:"https://www.ampproject.org/docs/reference/components/amp-analytics",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-analytics"]}),extensionspec_8=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-anim",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_250=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_8}),extensionspec_9=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-anim",allowedVersions:["0.1","latest"]}),tagspec_251=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-anim extension .js script (AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_9}),tagspec_252=Object.assign(new amp$validator$TagSpec("AMP-ANIM"),{attrs:[-29,-217,-36],attrLists:[15,12],specUrl:"https://www.ampproject.org/docs/reference/components/amp-anim", +ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-anim"]}),tagspec_253=Object.assign(new amp$validator$TagSpec("AMP-ANIM"),{specName:"AMP-ANIM (AMP4EMAIL)",attrs:[-29,-217,-36],attrLists:[15,13],specUrl:"https://www.ampproject.org/docs/reference/components/amp-anim",ampLayout:amplayout_1,htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-anim"]}),extensionspec_10=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-animation",allowedVersions:["0.1","latest"]}), +tagspec_254=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_10}),tagspec_255=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-animation extension .json script",mandatoryParent:"AMP-ANIMATION",attrs:[-12,108],cdata:cdataspec_10,satisfies:[-226],requiresExtension:["amp-animation"]}),amplayout_7=new amp$validator$AmpLayout(["NODISPLAY"]),tagspec_256=Object.assign(new amp$validator$TagSpec("AMP-ANIMATION"), +{attrs:[122],attrLists:[15],ampLayout:amplayout_7,childTags:childtagspec_2,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requires:[-226],requiresExtension:["amp-animation"]}),extensionspec_11=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-apester-media",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_257=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_11}),tagspec_258=Object.assign(new amp$validator$TagSpec("AMP-APESTER-MEDIA"), +{attrs:[123,124],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-apester-media",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-apester-media"]}),extensionspec_12=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-app-banner",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0}),tagspec_259=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_12}),tagspec_260=Object.assign(new amp$validator$TagSpec("AMP-APP-BANNER"), +{unique:!0,mandatoryParent:"BODY",attrs:[117],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-app-banner",ampLayout:amplayout_7,htmlFormat:["AMP"],requires:[-4,-196],requiresExtension:["amp-app-banner"]}),extensionspec_13=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-audio",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_261=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_13}), +amplayout_8=Object.assign(new amp$validator$AmpLayout(["FIXED","FIXED_HEIGHT","NODISPLAY"]),{definesDefaultWidth:!0,definesDefaultHeight:!0}),tagspec_262=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{attrs:[111,125],attrLists:[19,15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",ampLayout:amplayout_8,disallowedAncestor:["AMP-STORY"],htmlFormat:["AMP"],requiresExtension:["amp-audio"]}),tagspec_263=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{specName:"amp-story >> amp-audio", +attrs:[126],attrLists:[19,15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",ampLayout:amplayout_8,mandatoryAncestor:"AMP-STORY",htmlFormat:["AMP"],requiresExtension:["amp-audio"]}),tagspec_264=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{specName:"amp-audio (A4A)",attrLists:[19,15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",ampLayout:amplayout_8,htmlFormat:["AMP4ADS"],requiresExtension:["amp-audio"]}),extensionspec_14=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-auto-ads",allowedVersions:["0.1","latest"]}),tagspec_265=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_14}),tagspec_266=Object.assign(new amp$validator$TagSpec("AMP-AUTO-ADS"),{mandatoryParent:"BODY",attrs:[76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-auto-ads",htmlFormat:["AMP"],requiresExtension:["amp-auto-ads"]}),extensionspec_15=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-bind", +allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_267=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_15}),tagspec_268=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-bind extension .json script",mandatoryParent:"AMP-STATE",attrs:[-12,108],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",cdata:cdataspec_10,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-bind"]}), +childtagspec_3=Object.assign(new amp$validator$ChildTagSpec,{firstChildTagNameOneof:["SCRIPT"]}),tagspec_269=Object.assign(new amp$validator$TagSpec("AMP-STATE"),{specName:"amp-state",attrs:[127,117,-227,74,-42],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",childTags:childtagspec_3,htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-bind"]}),tagspec_270=Object.assign(new amp$validator$TagSpec("AMP-STATE"),{specName:"amp-state (AMP4EMAIL)",attrs:[117],attrLists:[14], +specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",disallowedAncestor:["AMP-LIST","AMP-STATE"],childTags:childtagspec_3,htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-bind"]}),tagspec_271=Object.assign(new amp$validator$TagSpec("AMP-BIND-MACRO"),{attrs:[-228,128,117],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-bind"]}),extensionspec_16=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-brid-player", +allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_272=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_16}),tagspec_273=Object.assign(new amp$validator$TagSpec("AMP-BRID-PLAYER"),{attrs:[-35,129,130,131,132,133],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-brid-player",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-brid-player"]}), +extensionspec_17=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-brightcove",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_274=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_17}),tagspec_275=Object.assign(new amp$validator$TagSpec("AMP-BRIGHTCOVE"),{attrs:[134,-229,-230,-231,-232,-233,-234],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-brightcove", +ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-brightcove"]}),extensionspec_18=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-byside-content",allowedVersions:["0.1","latest"]}),tagspec_276=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_18}),tagspec_277=Object.assign(new amp$validator$TagSpec("AMP-BYSIDE-CONTENT"),{attrs:[135,136],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-byside-content"]}), +extensionspec_19=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-call-tracking",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_278=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_19}),amplayout_9=new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM RESPONSIVE".split(" ")),childtagspec_4=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["A"]}), +tagspec_279=Object.assign(new amp$validator$TagSpec("AMP-CALL-TRACKING"),{attrs:[137],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-call-tracking",ampLayout:amplayout_9,childTags:childtagspec_4,htmlFormat:["AMP"],requiresExtension:["amp-call-tracking"]}),extensionspec_20=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-carousel",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_280=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[17],extensionSpec:extensionspec_20}),tagspec_281=Object.assign(new amp$validator$TagSpec("AMP-CAROUSEL"),{attrs:[138,111,-36,139,140,141,142,-235],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-carousel",ampLayout:amplayout_0,requiresExtension:["amp-carousel"]}),extensionspec_21=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-dailymotion",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_282= +Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_21}),amplayout_10=new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT","FLEX_ITEM","RESPONSIVE"]),tagspec_283=Object.assign(new amp$validator$TagSpec("AMP-DAILYMOTION"),{attrs:[-35,143,144,145,146,147,148,149,150],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-dailymotion",ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-dailymotion"]}), +extensionspec_22=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-dynamic-css-classes",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"NONE"}),tagspec_284=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_22}),extensionspec_23=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-experiment",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_285= +Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_23}),tagspec_286=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-experiment extension .json script",mandatoryParent:"AMP-EXPERIMENT",attrs:[-12,108],specUrl:"https://www.ampproject.org/docs/reference/components/amp-experiment",cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_287=Object.assign(new amp$validator$TagSpec("AMP-EXPERIMENT"),{unique:!0, +specUrl:"https://www.ampproject.org/docs/reference/components/amp-experiment",htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-experiment"]}),extensionspec_24=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook-comments",allowedVersions:["0.1","latest"]}),tagspec_288=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_24}),tagspec_289=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-COMMENTS"),{attrs:[151],attrLists:[15], +ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-comments"]}),extensionspec_25=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook-like",allowedVersions:["0.1","latest"]}),tagspec_290=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_25}),tagspec_291=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-LIKE"),{attrs:[152],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-like"]}), +extensionspec_26=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook-page",allowedVersions:["0.1","latest"]}),tagspec_292=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_26}),tagspec_293=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-PAGE"),{attrs:[152],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-page"]}),extensionspec_27=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-facebook",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_294=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_27}),tagspec_295=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK"),{attrs:[151],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook"]}),extensionspec_28=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-fit-text", +allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_296=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_28}),tagspec_297=Object.assign(new amp$validator$TagSpec("AMP-FIT-TEXT"),{attrs:[-236,-237],attrLists:[15],ampLayout:amplayout_0,requiresExtension:["amp-fit-text"]}),extensionspec_29=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-font",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, +requiresUsage:"GRANDFATHERED"}),tagspec_298=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_29}),tagspec_299=Object.assign(new amp$validator$TagSpec("AMP-FONT"),{attrs:[153,-238,-239,154,-240,-241,-242,-243,-244],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-font"]}),extensionspec_30=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-form",allowedVersions:["0.1", +"latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_300=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_30}),extensionspec_31=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-fx-collection",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_301=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_31}),extensionspec_32=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-fx-flying-carpet",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_302=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_32}),tagspec_303=Object.assign(new amp$validator$TagSpec("AMP-FX-FLYING-CARPET"),{attrs:[155],attrLists:[15],htmlFormat:["AMP"],requiresExtension:["amp-fx-flying-carpet"]}),extensionspec_33=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-gfycat", +allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_304=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_33}),tagspec_305=Object.assign(new amp$validator$TagSpec("AMP-GFYCAT"),{attrs:[156,157],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-gfycat",ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-gfycat"]}),extensionspec_34=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-gist",allowedVersions:["0.1","latest"]}),tagspec_306=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_34}),amplayout_11=new amp$validator$AmpLayout(["FIXED_HEIGHT"]),tagspec_307=Object.assign(new amp$validator$TagSpec("AMP-GIST"),{attrs:[158],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-gist",ampLayout:amplayout_11,htmlFormat:["AMP"],requiresExtension:["amp-gist"]}),extensionspec_35=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-gwd-animation",allowedVersions:["0.1","latest"]}),tagspec_308=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP4ADS"],extensionSpec:extensionspec_35}),tagspec_309=Object.assign(new amp$validator$TagSpec("AMP-GWD-ANIMATION"),{attrs:[-245],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP4ADS"],requiresExtension:["amp-gwd-animation"]}),extensionspec_36=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-hulu",allowedVersions:["0.1","latest"]}),tagspec_310= +Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_36}),tagspec_311=Object.assign(new amp$validator$TagSpec("AMP-HULU"),{attrs:[159],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-hulu",ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-hulu"]}),extensionspec_37=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-iframe",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, +requiresUsage:"GRANDFATHERED"}),tagspec_312=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_37}),tagspec_313=Object.assign(new amp$validator$TagSpec("AMP-IFRAME"),{attrs:[-246,160,161,162,67,-33,68,-34,69,163,71,164],attrLists:[15],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-iframe"]}),extensionspec_38=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ima-video",allowedVersions:["0.1","latest"]}),tagspec_314= +Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_38}),tagspec_315=Object.assign(new amp$validator$TagSpec("AMP-IMA-VIDEO"),{attrs:[165,166],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ima-video",ampLayout:new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT","NODISPLAY","RESPONSIVE"]),htmlFormat:["AMP"],requiresExtension:["amp-ima-video"]}),extensionspec_39=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-image-lightbox",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_316=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_39}),extensionspec_40=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-image-lightbox",allowedVersions:["0.1","latest"]}),tagspec_317=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-image-lightbox] (AMP4EMAIL)", +attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_40}),tagspec_318=Object.assign(new amp$validator$TagSpec("AMP-IMAGE-LIGHTBOX"),{attrs:[-36],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL"],requiresExtension:["amp-image-lightbox"]}),extensionspec_41=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-imgur",allowedVersions:["0.1","latest"]}),tagspec_319=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_41}), +tagspec_320=Object.assign(new amp$validator$TagSpec("AMP-IMGUR"),{attrs:[167],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-imgur"]}),extensionspec_42=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-instagram",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_321=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_42}),tagspec_322=Object.assign(new amp$validator$TagSpec("AMP-INSTAGRAM"), +{attrs:[-29,168],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-instagram"]}),extensionspec_43=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-install-serviceworker",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_323=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_43}),tagspec_324=Object.assign(new amp$validator$TagSpec("AMP-INSTALL-SERVICEWORKER"), +{attrs:[75,169],ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-install-serviceworker"]}),extensionspec_44=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-izlesene",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_325=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_44}),tagspec_326=Object.assign(new amp$validator$TagSpec("AMP-IZLESENE"),{attrs:[170],attrLists:[15],ampLayout:amplayout_10, +htmlFormat:["AMP"],requiresExtension:["amp-izlesene"]}),extensionspec_45=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-jwplayer",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_327=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_45}),tagspec_328=Object.assign(new amp$validator$TagSpec("AMP-JWPLAYER"),{attrs:[171,172,173],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-jwplayer"]}), +extensionspec_46=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-kaltura-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_329=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_46}),tagspec_330=Object.assign(new amp$validator$TagSpec("AMP-KALTURA-PLAYER"),{attrs:[174],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-kaltura-player"]}),extensionspec_47= +Object.assign(new amp$validator$ExtensionSpec,{name:"amp-lightbox",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_331=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_47}),extensionspec_48=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-lightbox",allowedVersions:["0.1","latest"]}),tagspec_332=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-lightbox] (AMP4EMAIL)", +attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_48}),tagspec_333=Object.assign(new amp$validator$TagSpec("AMP-LIGHTBOX"),{attrs:[-36,-247,-248],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-lightbox"]}),extensionspec_49=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-list",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_334=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_49}),extensionspec_50=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-list",allowedVersions:["0.1","latest"]}),tagspec_335=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-list] (AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_50}),tagspec_336=Object.assign(new amp$validator$TagSpec("AMP-LIST"),{attrs:[-249,-250,-251,-252,75,-225,-42,-253],attrLists:[15], +ampLayout:amplayout_1,htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-list"]}),tagspec_337=Object.assign(new amp$validator$TagSpec("AMP-LIST"),{specName:"AMP-LIST (AMP4EMAIL)",attrs:[175,-250,-251,-252,-225,-253],attrLists:[15],ampLayout:amplayout_1,disallowedAncestor:["AMP-LIST","AMP-STATE"],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-list"]}),extensionspec_51=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-live-list",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}), +tagspec_338=Object.assign(new amp$validator$TagSpec("SCRIPT"),{mandatoryParent:"HEAD",attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],uniqueWarning:!0,extensionSpec:extensionspec_51}),amplayout_13=new amp$validator$AmpLayout(["CONTAINER","FIXED_HEIGHT"]),referencepoint_0=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:340,mandatory:!0,unique:!0}),referencepoint_1=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:341,mandatory:!0,unique:!0}),referencepoint_2=Object.assign(new amp$validator$ReferencePoint, +{tagSpecName:342,unique:!0}),tagspec_339=Object.assign(new amp$validator$TagSpec("AMP-LIVE-LIST"),{attrs:[176,177,99,117],ampLayout:amplayout_13,referencePoints:[referencepoint_0,referencepoint_1,referencepoint_2],htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-live-list"]}),tagspec_340=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [update]",attrs:[178],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#update",htmlFormat:["AMP", +"EXPERIMENTAL"]}),referencepoint_3=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:343}),tagspec_341=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [items]",attrs:[179],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#items",referencePoints:[referencepoint_3],htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_342=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [pagination]",attrs:[180],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#pagination", +htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_343=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [items] item",attrs:[117,181,-254,-255],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#items",htmlFormat:["AMP","EXPERIMENTAL"]}),extensionspec_52=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-mathml",allowedVersions:["0.1","latest"]}),tagspec_344=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"], +extensionSpec:extensionspec_52}),tagspec_345=Object.assign(new amp$validator$TagSpec("AMP-MATHML"),{attrs:[182,-256],attrLists:[15],ampLayout:amplayout_4,htmlFormat:["AMP"],requiresExtension:["amp-mathml"]}),extensionspec_53=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-mustache",allowedVersions:["0.1","latest"],isCustomTemplate:!0,deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_346=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"], +extensionSpec:extensionspec_53}),extensionspec_54=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-mustache",allowedVersions:["0.1","latest"],isCustomTemplate:!0}),tagspec_347=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-mustache] (AMP4ADS/AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4ADS","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_54}),tagspec_348=Object.assign(new amp$validator$TagSpec("TEMPLATE"),{attrs:[183],disallowedAncestor:["TEMPLATE", +"FORM > DIV [submit-success][template]","FORM > DIV [submit-error][template]"],requiresExtension:["amp-mustache"]}),extensionspec_55=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-nexxtv-player",allowedVersions:["0.1","latest"]}),tagspec_349=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_55}),tagspec_350=Object.assign(new amp$validator$TagSpec("AMP-NEXXTV-PLAYER"),{attrs:[184,185,186,187,188],attrLists:[15],ampLayout:amplayout_1, +htmlFormat:["AMP"],requiresExtension:["amp-nexxtv-player"]}),extensionspec_56=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-o2-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_351=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_56}),tagspec_352=Object.assign(new amp$validator$TagSpec("AMP-O2-PLAYER"),{attrs:[189,190],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"], +requiresExtension:["amp-o2-player"]}),extensionspec_57=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ooyala-player",allowedVersions:["0.1","latest"]}),tagspec_353=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_57}),tagspec_354=Object.assign(new amp$validator$TagSpec("AMP-OOYALA-PLAYER"),{attrs:[191,192,193],attrLists:[15],ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-ooyala-player"]}),extensionspec_58= +Object.assign(new amp$validator$ExtensionSpec,{name:"amp-pinterest",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_355=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_58}),tagspec_356=Object.assign(new amp$validator$TagSpec("AMP-PINTEREST"),{attrs:[194,-29],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-pinterest",ampLayout:amplayout_1,htmlFormat:["AMP"], +requiresExtension:["amp-pinterest"]}),extensionspec_59=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-playbuzz",allowedVersions:["0.1","latest"]}),tagspec_357=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_59}),tagspec_358=Object.assign(new amp$validator$TagSpec("AMP-PLAYBUZZ"),{attrs:[195,196,197,198,199],attrLists:[15],ampLayout:new amp$validator$AmpLayout(["RESPONSIVE","FIXED_HEIGHT"]),htmlFormat:["AMP"],requiresExtension:["amp-playbuzz"]}), +extensionspec_60=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-position-observer",allowedVersions:["0.1","latest"]}),tagspec_359=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_60}),tagspec_360=Object.assign(new amp$validator$TagSpec("AMP-POSITION-OBSERVER"),{attrs:[200,-257,201],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-position-observer"]}), +extensionspec_61=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-reach-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_361=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_61}),tagspec_362=Object.assign(new amp$validator$TagSpec("AMP-REACH-PLAYER"),{attrs:[202],attrLists:[15],ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-reach-player"]}),extensionspec_62= +Object.assign(new amp$validator$ExtensionSpec,{name:"amp-reddit",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0}),tagspec_363=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_62}),tagspec_364=Object.assign(new amp$validator$TagSpec("AMP-REDDIT"),{attrs:[203,204,205,206],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-reddit"]}),extensionspec_63=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-riddle-quiz",allowedVersions:["0.1","latest"]}),tagspec_365=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_63}),tagspec_366=Object.assign(new amp$validator$TagSpec("AMP-RIDDLE-QUIZ"),{attrs:[207],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-riddle-quiz",ampLayout:new amp$validator$AmpLayout(["RESPONSIVE"]),htmlFormat:["AMP"],requiresExtension:["amp-riddle-quiz"]}),extensionspec_64=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-selector",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_367=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_64}),tagspec_368=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-selector] (AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_64}),amplayout_16=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT NODISPLAY RESPONSIVE CONTAINER".split(" ")), +referencepoint_4=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:370}),referencepoint_5=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:371}),tagspec_369=Object.assign(new amp$validator$TagSpec("AMP-SELECTOR"),{attrs:[99,-211,208,209,-178,-200],attrLists:[15,11],ampLayout:amplayout_16,disallowedAncestor:["AMP-SELECTOR"],referencePoints:[referencepoint_4,referencepoint_5],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-selector"]}),tagspec_370=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"), +{specName:"AMP-SELECTOR option",attrs:[210,99,211],specUrl:"https://www.ampproject.org/docs/reference/components/amp-selector",htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),tagspec_371=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-SELECTOR child",referencePoints:[referencepoint_4,referencepoint_5],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),extensionspec_65=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sidebar",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, +requiresUsage:"GRANDFATHERED"}),tagspec_372=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_65}),extensionspec_66=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sidebar",allowedVersions:["0.1","latest"]}),tagspec_373=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-sidebar] (AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_66}),tagspec_374= +Object.assign(new amp$validator$TagSpec("AMP-SIDEBAR"),{mandatoryParent:"BODY",attrs:[212],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-sidebar"]}),childtagspec_5=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["UL"]}),tagspec_375=Object.assign(new amp$validator$TagSpec("NAV"),{specName:"amp-sidebar > nav",mandatoryParent:"AMP-SIDEBAR",attrs:[213,214],childTags:childtagspec_5,htmlFormat:["AMP","AMP4EMAIL", +"EXPERIMENTAL"]}),extensionspec_67=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-slides",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"NONE"}),tagspec_376=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],deprecation:"amp-carousel",deprecationUrl:"https://www.ampproject.org/docs/reference/components/amp-carousel",htmlFormat:["AMP"],extensionSpec:extensionspec_67}),extensionspec_68=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-social-share", +allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_377=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS"],extensionSpec:extensionspec_68}),tagspec_378=Object.assign(new amp$validator$TagSpec("AMP-SOCIAL-SHARE"),{attrs:[215,76],attrLists:[15],ampLayout:new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),htmlFormat:["AMP","AMP4ADS"],requiresExtension:["amp-social-share"]}), +extensionspec_69=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-soundcloud",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_379=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_69}),tagspec_380=Object.assign(new amp$validator$TagSpec("AMP-SOUNDCLOUD"),{attrs:[216,217,218,219,220],attrLists:[15],ampLayout:amplayout_11,htmlFormat:["AMP"],requiresExtension:["amp-soundcloud"]}), +extensionspec_70=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-springboard-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_381=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_70}),tagspec_382=Object.assign(new amp$validator$TagSpec("AMP-SPRINGBOARD-PLAYER"),{attrs:[221,222,223,224,225,226],attrLists:[15],ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-springboard-player"]}), +extensionspec_71=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sticky-ad",allowedVersions:["0.1","1.0","latest"],deprecatedVersions:["0.1"],requiresUsage:"GRANDFATHERED"}),tagspec_383=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_71}),childtagspec_6=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,firstChildTagNameOneof:["AMP-AD"]}),tagspec_384=Object.assign(new amp$validator$TagSpec("AMP-STICKY-AD"), +{unique:!0,attrLists:[15],ampLayout:amplayout_7,disallowedAncestor:["AMP-APP-BANNER"],childTags:childtagspec_6,htmlFormat:["AMP"],requiresExtension:["amp-sticky-ad"]}),extensionspec_72=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-story",allowedVersions:["0.1","latest"]}),tagspec_385=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_72}),childtagspec_7=Object.assign(new amp$validator$ChildTagSpec,{childTagNameOneof:["AMP-ANALYTICS", +"AMP-PIXEL","AMP-STORY-PAGE"],mandatoryMinNumChildTags:1}),tagspec_386=Object.assign(new amp$validator$TagSpec("AMP-STORY"),{mandatoryParent:"BODY",attrs:[227,228,229],childTags:childtagspec_7,htmlFormat:["AMP"],requires:[-258],requiresExtension:["amp-story"],siblingsDisallowed:!0}),childtagspec_8=Object.assign(new amp$validator$ChildTagSpec,{childTagNameOneof:["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-GRID-LAYER"],mandatoryMinNumChildTags:1}),tagspec_387=Object.assign(new amp$validator$TagSpec("AMP-STORY-PAGE"), +{mandatoryParent:"AMP-STORY",attrs:[117,-259,229],childTags:childtagspec_8,htmlFormat:["AMP"],satisfies:[-258],requiresExtension:["amp-story"]}),referencepoint_6=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:389}),referencepoint_7=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:390}),tagspec_388=Object.assign(new amp$validator$TagSpec("AMP-STORY-GRID-LAYER"),{attrs:[230],mandatoryAncestor:"AMP-STORY-PAGE",referencePoints:[referencepoint_6,referencepoint_7],htmlFormat:["AMP"], +descendantTagList:"amp-story-grid-layer-allowed-descendants"}),tagspec_389=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-STORY-GRID-LAYER default",attrs:[-260,231,232,233,234,235,236,237,-261,-262,-263],specUrl:"https://www.ampproject.org/docs/reference/components/amp-story",referencePoints:[referencepoint_7],htmlFormat:["AMP"]}),tagspec_390=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-STORY-GRID-LAYER animate-in",attrs:[237,-261,-262,-263], +specUrl:"https://www.ampproject.org/docs/reference/components/amp-story",referencePoints:[referencepoint_7],htmlFormat:["AMP"]}),extensionspec_73=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-timeago",allowedVersions:["0.1","latest"]}),tagspec_391=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_73}),tagspec_392=Object.assign(new amp$validator$TagSpec("AMP-TIMEAGO"),{attrs:[238,239,-264],attrLists:[15], +specUrl:"https://www.ampproject.org/docs/reference/components/amp-timeago",ampLayout:new amp$validator$AmpLayout(["FIXED","FIXED_HEIGHT","RESPONSIVE"]),htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-timeago"]}),extensionspec_74=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-twitter",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_393=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"], +extensionSpec:extensionspec_74}),tagspec_394=Object.assign(new amp$validator$TagSpec("AMP-TWITTER"),{attrs:[240],attrLists:[15],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-twitter"]}),extensionspec_75=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-user-notification",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_395=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_75}), +tagspec_396=Object.assign(new amp$validator$TagSpec("AMP-USER-NOTIFICATION"),{attrs:[241,242,243],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-user-notification"]}),extensionspec_76=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-video",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_397=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-video extension .js script",attrLists:[17],htmlFormat:["AMP","AMP4ADS"],extensionSpec:extensionspec_76}), +tagspec_398=Object.assign(new amp$validator$TagSpec("AMP-VIDEO"),{attrs:[-39],attrLists:[15,20],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",ampLayout:amplayout_1,disallowedAncestor:["AMP-STORY"],htmlFormat:["AMP","AMP4ADS"],alsoRequiresTagWarning:[397]}),tagspec_399=Object.assign(new amp$validator$TagSpec("AMP-VIDEO"),{specName:"amp-story >> amp-video",attrs:[126,244],attrLists:[15,20],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",ampLayout:amplayout_1, +mandatoryAncestor:"AMP-STORY",htmlFormat:["AMP","AMP4ADS"],requiresExtension:["amp-video"]}),extensionspec_77=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vimeo",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_400=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_77}),tagspec_401=Object.assign(new amp$validator$TagSpec("AMP-VIMEO"),{attrs:[170],attrLists:[15],ampLayout:amplayout_10, +htmlFormat:["AMP"],requiresExtension:["amp-vimeo"]}),extensionspec_78=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vine",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_402=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_78}),tagspec_403=Object.assign(new amp$validator$TagSpec("AMP-VINE"),{attrs:[245],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-vine"]}), +extensionspec_79=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vk",allowedVersions:["0.1","latest"]}),tagspec_404=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_79}),tagspec_405=Object.assign(new amp$validator$TagSpec("AMP-VK"),{attrs:[246],attrLists:[15],ampLayout:new amp$validator$AmpLayout(["FIXED","FLEX_ITEM","RESPONSIVE"]),htmlFormat:["AMP"],requiresExtension:["amp-vk"]}),extensionspec_80=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-web-push",allowedVersions:["0.1","latest"]}),tagspec_406=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_80}),tagspec_407=Object.assign(new amp$validator$TagSpec("AMP-WEB-PUSH"),{attrs:[247,248,249,250],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-web-push",ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-web-push"]}),tagspec_408=Object.assign(new amp$validator$TagSpec("AMP-WEB-PUSH-WIDGET"), +{attrs:[251],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-web-push",ampLayout:new amp$validator$AmpLayout(["FIXED"]),htmlFormat:["AMP"],requiresExtension:["amp-web-push"]}),extensionspec_81=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-wistia-player",allowedVersions:["0.1","latest"]}),tagspec_409=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_81}),tagspec_410=Object.assign(new amp$validator$TagSpec("AMP-WISTIA-PLAYER"), +{attrs:[252],attrLists:[15],ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-wistia-player"]}),extensionspec_82=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-youtube",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_411=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_82}),tagspec_412=Object.assign(new amp$validator$TagSpec("AMP-YOUTUBE"),{attrs:[-35,253,254,255,-265],attrLists:[15], +ampLayout:amplayout_1,requiresExtension:["amp-youtube"]}),errorformat_0=new amp$validator$ErrorFormat("UNKNOWN_CODE","Unknown error."),errorformat_1=new amp$validator$ErrorFormat("MANDATORY_TAG_MISSING","The mandatory tag '%1' is missing or incorrect."),errorformat_2=new amp$validator$ErrorFormat("TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'."),errorformat_3=new amp$validator$ErrorFormat("WARNING_TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'. This will soon be an error."), +errorformat_4=new amp$validator$ErrorFormat("WARNING_EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused (no '%2' tag seen). This may become an error in the future."),errorformat_5=new amp$validator$ErrorFormat("EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused. Please remove this extension."),errorformat_6=new amp$validator$ErrorFormat("WARNING_EXTENSION_DEPRECATED_VERSION","The extension '%1' is referenced at version '%2' which is a deprecated version. Please use a more recent version of this extension. This may become an error in the future."), +errorformat_7=new amp$validator$ErrorFormat("ATTR_REQUIRED_BUT_MISSING","The attribute '%1' in tag '%2' is missing or incorrect, but required by attribute '%3'."),errorformat_8=new amp$validator$ErrorFormat("DISALLOWED_TAG","The tag '%1' is disallowed."),errorformat_9=new amp$validator$ErrorFormat("GENERAL_DISALLOWED_TAG","The tag '%1' is disallowed except in specific forms."),errorformat_10=new amp$validator$ErrorFormat("DISALLOWED_SCRIPT_TAG","Only AMP runtime 'script' tags are allowed, and only in the document head."), +errorformat_11=new amp$validator$ErrorFormat("DISALLOWED_ATTR","The attribute '%1' may not appear in tag '%2'."),errorformat_12=new amp$validator$ErrorFormat("DISALLOWED_STYLE_ATTR","The inline 'style' attribute is not allowed in AMP documents. Use 'style amp-custom' tag instead."),errorformat_13=new amp$validator$ErrorFormat("INVALID_ATTR_VALUE","The attribute '%1' in tag '%2' is set to the invalid value '%3'."),errorformat_14=new amp$validator$ErrorFormat("DUPLICATE_ATTRIBUTE","The tag '%1' contains the attribute '%2' repeated multiple times."), +errorformat_15=new amp$validator$ErrorFormat("ATTR_VALUE_REQUIRED_BY_LAYOUT","Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."),errorformat_16=new amp$validator$ErrorFormat("IMPLIED_LAYOUT_INVALID","The implied layout '%1' is not supported by tag '%2'."),errorformat_17=new amp$validator$ErrorFormat("SPECIFIED_LAYOUT_INVALID","The specified layout '%1' is not supported by tag '%2'."),errorformat_18=new amp$validator$ErrorFormat("MANDATORY_ATTR_MISSING", +"The mandatory attribute '%1' is missing in tag '%2'."),errorformat_19=new amp$validator$ErrorFormat("INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT","Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."),errorformat_20=new amp$validator$ErrorFormat("STYLESHEET_TOO_LONG","The author stylesheet specified in tag '%1' is too long - we saw %2 bytes whereas the limit is %3 bytes."),errorformat_21=new amp$validator$ErrorFormat("MANDATORY_CDATA_MISSING_OR_INCORRECT", +"The mandatory text inside tag '%1' is missing or incorrect."),errorformat_22=new amp$validator$ErrorFormat("CDATA_VIOLATES_BLACKLIST","The text inside tag '%1' contains '%2', which is disallowed."),errorformat_23=new amp$validator$ErrorFormat("NON_WHITESPACE_CDATA_ENCOUNTERED","The tag '%1' contains text, which is disallowed."),errorformat_24=new amp$validator$ErrorFormat("DISALLOWED_PROPERTY_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is disallowed."),errorformat_25=new amp$validator$ErrorFormat("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE", +"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."),errorformat_26=new amp$validator$ErrorFormat("DUPLICATE_DIMENSION","Multiple image candidates with the same width or pixel density found in attribute '%1' in tag '%2'."),errorformat_27=new amp$validator$ErrorFormat("MISSING_URL","Missing URL for attribute '%1' in tag '%2'."),errorformat_28=new amp$validator$ErrorFormat("INVALID_URL","Malformed URL '%3' for attribute '%1' in tag '%2'."),errorformat_29=new amp$validator$ErrorFormat("INVALID_URL_PROTOCOL", +"Invalid URL protocol '%3:' for attribute '%1' in tag '%2'."),errorformat_30=new amp$validator$ErrorFormat("DISALLOWED_DOMAIN","The domain '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_31=new amp$validator$ErrorFormat("DISALLOWED_RELATIVE_URL","The relative URL '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_32=new amp$validator$ErrorFormat("MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE","The property '%1' is missing from attribute '%2' in tag '%3'."),errorformat_33= +new amp$validator$ErrorFormat("UNESCAPED_TEMPLATE_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."),errorformat_34=new amp$validator$ErrorFormat("TEMPLATE_PARTIAL_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."),errorformat_35=new amp$validator$ErrorFormat("DEPRECATED_TAG","The tag '%1' is deprecated - use '%2' instead."),errorformat_36=new amp$validator$ErrorFormat("DEPRECATED_ATTR", +"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."),errorformat_37=new amp$validator$ErrorFormat("MUTUALLY_EXCLUSIVE_ATTRS","Mutually exclusive attributes encountered in tag '%1' - pick one of %2."),errorformat_38=new amp$validator$ErrorFormat("MANDATORY_ONEOF_ATTR_MISSING","The tag '%1' is missing a mandatory attribute - pick one of %2."),errorformat_39=new amp$validator$ErrorFormat("WRONG_PARENT_TAG","The parent tag of tag '%1' is '%2', but it can only be '%3'."),errorformat_40= +new amp$validator$ErrorFormat("DISALLOWED_TAG_ANCESTOR","The tag '%1' may not appear as a descendant of tag '%2'."),errorformat_41=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR","The tag '%1' may only appear as a descendant of tag '%2'."),errorformat_42=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR_WITH_HINT","The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"),errorformat_43=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG","The tag '%1' appears more than once in the document."), +errorformat_44=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG_WARNING","The tag '%1' appears more than once in the document. This will soon be an error."),errorformat_45=new amp$validator$ErrorFormat("TEMPLATE_IN_ATTR_NAME","Mustache template syntax in attribute name '%1' in tag '%2'."),errorformat_46=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_IMPLIED_LAYOUT","The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."),errorformat_47=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT", +"The attribute '%1' in tag '%2' is disallowed by specified layout '%3'."),errorformat_48=new amp$validator$ErrorFormat("INCORRECT_NUM_CHILD_TAGS","Tag '%1' must have %2 child tags - saw %3 child tags."),errorformat_49=new amp$validator$ErrorFormat("INCORRECT_MIN_NUM_CHILD_TAGS","Tag '%1' must have a minimum of %2 child tags - saw %3 child tags."),errorformat_50=new amp$validator$ErrorFormat("TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS","Tag '%1' is not allowed to have any sibling tags ('%2' should only have 1 child)."), +errorformat_51=new amp$validator$ErrorFormat("MANDATORY_LAST_CHILD_TAG","Tag '%1', if present, must be the last child of tag '%2'."),errorformat_52=new amp$validator$ErrorFormat("DISALLOWED_CHILD_TAG_NAME","Tag '%1' is disallowed as child of tag '%2'. Child tag must be one of %3."),errorformat_53=new amp$validator$ErrorFormat("DISALLOWED_FIRST_CHILD_TAG_NAME","Tag '%1' is disallowed as first child of tag '%2'. First child tag must be one of %3."),errorformat_54=new amp$validator$ErrorFormat("DISALLOWED_MANUFACTURED_BODY", +"Tag or text which is only allowed inside the body section found outside of the body section."),errorformat_55=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT","The tag '%1', a child tag of '%2', does not satisfy one of the acceptable reference points: %3."),errorformat_56=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR","The tag '%1', a child tag of '%2', does not satisfy the reference point '%3'."),errorformat_57=new amp$validator$ErrorFormat("MANDATORY_REFERENCE_POINT_MISSING", +"The mandatory reference point '%1' for '%2' is missing."),errorformat_58=new amp$validator$ErrorFormat("DUPLICATE_REFERENCE_POINT","The reference point '%1' for '%2' must be unique but a duplicate was encountered."),errorformat_59=new amp$validator$ErrorFormat("TAG_REFERENCE_POINT_CONFLICT","The tag '%1' conflicts with reference point '%2' because both define reference points."),errorformat_60=new amp$validator$ErrorFormat("BASE_TAG_MUST_PRECEED_ALL_URLS","The tag '%1', which contains URLs, was found earlier in the document than the BASE element."), +errorformat_61=new amp$validator$ErrorFormat("MISSING_REQUIRED_EXTENSION","The tag '%1' requires including the '%2' extension JavaScript."),errorformat_62=new amp$validator$ErrorFormat("ATTR_MISSING_REQUIRED_EXTENSION","The attribute '%1' requires including the '%2' extension JavaScript."),errorformat_63=new amp$validator$ErrorFormat("DOCUMENT_TOO_COMPLEX","The document is too complex."),errorformat_64=new amp$validator$ErrorFormat("INVALID_UTF8","The document contains invalid UTF8."),errorformat_65= +new amp$validator$ErrorFormat("CSS_SYNTAX","CSS syntax error in tag '%1' - %2."),errorformat_66=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_AT_RULE","CSS syntax error in tag '%1' - saw invalid at rule '@%2'."),errorformat_67=new amp$validator$ErrorFormat("CSS_SYNTAX_STRAY_TRAILING_BACKSLASH","CSS syntax error in tag '%1' - stray trailing backslash."),errorformat_68=new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_COMMENT","CSS syntax error in tag '%1' - unterminated comment."),errorformat_69= +new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_STRING","CSS syntax error in tag '%1' - unterminated string."),errorformat_70=new amp$validator$ErrorFormat("CSS_SYNTAX_BAD_URL","CSS syntax error in tag '%1' - bad url."),errorformat_71=new amp$validator$ErrorFormat("CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE","CSS syntax error in tag '%1' - end of stylesheet encountered in prelude of a qualified rule."),errorformat_72=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY","CSS syntax error in tag '%1' - invalid property '%2'. The only allowed properties are '%3'."), +errorformat_73=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY_NOLIST","CSS syntax error in tag '%1' - invalid property '%2'."),errorformat_74=new amp$validator$ErrorFormat("CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS","CSS syntax error in tag '%1' - qualified rule '%2' has no declarations."),errorformat_75=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - qualified rule '%2' must be located inside of a keyframe."), +errorformat_76=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - keyframe inside keyframe is not allowed."),errorformat_77=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_DECLARATION","CSS syntax error in tag '%1' - invalid declaration."),errorformat_78=new amp$validator$ErrorFormat("CSS_SYNTAX_INCOMPLETE_DECLARATION","CSS syntax error in tag '%1' - incomplete declaration."),errorformat_79=new amp$validator$ErrorFormat("CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR", +"CSS syntax error in tag '%1' - invalid pseudo selector."),errorformat_80=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_SELECTOR","CSS syntax error in tag '%1' - missing selector."),errorformat_81=new amp$validator$ErrorFormat("CSS_SYNTAX_NOT_A_SELECTOR_START","CSS syntax error in tag '%1' - not a selector start."),errorformat_82=new amp$validator$ErrorFormat("CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR","CSS syntax error in tag '%1' - unparsed input remains in selector."),errorformat_83=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_URL", +"CSS syntax error in tag '%1' - missing url."),errorformat_84=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL","CSS syntax error in tag '%1' - invalid url '%2'."),errorformat_85=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL_PROTOCOL","CSS syntax error in tag '%1' - invalid url protocol '%2:'."),errorformat_86=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_DOMAIN","CSS syntax error in tag '%1' - invalid domain '%2'."),errorformat_87=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_RELATIVE_URL", +"CSS syntax error in tag '%1' - disallowed relative url '%2'."),errorformat_88=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_ATTR_SELECTOR","CSS syntax error in tag '%1' - invalid attribute selector."),errorformat_89=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'."),errorformat_90=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'. Allowed values: %4."), +errorformat_91=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE","CSS syntax error in tag '%1' - the property '%2' is disallowed within @%3. Allowed properties: %4."),errorformat_92=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH","CSS syntax error in tag '%1' - the property '%2' is disallowed together with '%3'. Allowed properties: %4."),errorformat_93=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION","CSS syntax error in tag '%1' - the property '%2' is disallowed unless the enclosing rule is prefixed with the '%3' qualification."), +errorformat_94=new amp$validator$ErrorFormat("CSS_SYNTAX_MALFORMED_MEDIA_QUERY","CSS syntax error in tag '%1' - malformed media query."),errorformat_95=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_MEDIA_TYPE","CSS syntax error in tag '%1' - disallowed media type '%2'."),errorformat_96=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE","CSS syntax error in tag '%1' - disallowed media feature '%2'."),errorspecificity_0=Object.assign(new amp$validator$ErrorSpecificity,{code:"UNKNOWN_CODE", +specificity:0}),errorspecificity_1=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_CDATA_MISSING_OR_INCORRECT",specificity:1}),errorspecificity_2=Object.assign(new amp$validator$ErrorSpecificity,{code:"CDATA_VIOLATES_BLACKLIST",specificity:2}),errorspecificity_3=Object.assign(new amp$validator$ErrorSpecificity,{code:"NON_WHITESPACE_CDATA_ENCOUNTERED",specificity:3}),errorspecificity_4=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_TAG_ANCESTOR",specificity:4}), +errorspecificity_5=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_TAG_ANCESTOR",specificity:5}),errorspecificity_6=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_TAG_ANCESTOR_WITH_HINT",specificity:6}),errorspecificity_7=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_TAG_MISSING",specificity:7}),errorspecificity_8=Object.assign(new amp$validator$ErrorSpecificity,{code:"WRONG_PARENT_TAG",specificity:8}),errorspecificity_9=Object.assign(new amp$validator$ErrorSpecificity, +{code:"TAG_REQUIRED_BY_MISSING",specificity:9}),errorspecificity_10=Object.assign(new amp$validator$ErrorSpecificity,{code:"MISSING_REQUIRED_EXTENSION",specificity:10}),errorspecificity_11=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_MISSING_REQUIRED_EXTENSION",specificity:11}),errorspecificity_12=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_TAG_REQUIRED_BY_MISSING",specificity:12}),errorspecificity_13=Object.assign(new amp$validator$ErrorSpecificity,{code:"EXTENSION_UNUSED", +specificity:13}),errorspecificity_14=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_EXTENSION_UNUSED",specificity:14}),errorspecificity_15=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_EXTENSION_DEPRECATED_VERSION",specificity:15}),errorspecificity_16=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_TAG",specificity:16}),errorspecificity_17=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_ATTR",specificity:17}),errorspecificity_18= +Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_ATTR_VALUE",specificity:18}),errorspecificity_19=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_ATTRIBUTE",specificity:19}),errorspecificity_20=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_VALUE_REQUIRED_BY_LAYOUT",specificity:20}),errorspecificity_21=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_ATTR_MISSING",specificity:21}),errorspecificity_22=Object.assign(new amp$validator$ErrorSpecificity, +{code:"MANDATORY_ONEOF_ATTR_MISSING",specificity:22}),errorspecificity_23=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_REQUIRED_BUT_MISSING",specificity:23}),errorspecificity_24=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_UNIQUE_TAG",specificity:24}),errorspecificity_25=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_UNIQUE_TAG_WARNING",specificity:25}),errorspecificity_26=Object.assign(new amp$validator$ErrorSpecificity,{code:"STYLESHEET_TOO_LONG", +specificity:26}),errorspecificity_27=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX",specificity:27}),errorspecificity_28=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_AT_RULE",specificity:28}),errorspecificity_29=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE",specificity:29}),errorspecificity_30=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",specificity:30}), +errorspecificity_31=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_PROPERTY_IN_ATTR_VALUE",specificity:31}),errorspecificity_32=Object.assign(new amp$validator$ErrorSpecificity,{code:"MUTUALLY_EXCLUSIVE_ATTRS",specificity:32}),errorspecificity_33=Object.assign(new amp$validator$ErrorSpecificity,{code:"UNESCAPED_TEMPLATE_IN_ATTR_VALUE",specificity:33}),errorspecificity_34=Object.assign(new amp$validator$ErrorSpecificity,{code:"TEMPLATE_PARTIAL_IN_ATTR_VALUE",specificity:34}),errorspecificity_35= +Object.assign(new amp$validator$ErrorSpecificity,{code:"TEMPLATE_IN_ATTR_NAME",specificity:35}),errorspecificity_36=Object.assign(new amp$validator$ErrorSpecificity,{code:"INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT",specificity:36}),errorspecificity_37=Object.assign(new amp$validator$ErrorSpecificity,{code:"IMPLIED_LAYOUT_INVALID",specificity:37}),errorspecificity_38=Object.assign(new amp$validator$ErrorSpecificity,{code:"SPECIFIED_LAYOUT_INVALID",specificity:38}),errorspecificity_39=Object.assign(new amp$validator$ErrorSpecificity, +{code:"ATTR_DISALLOWED_BY_IMPLIED_LAYOUT",specificity:39}),errorspecificity_40=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT",specificity:40}),errorspecificity_41=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_DIMENSION",specificity:41}),errorspecificity_42=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_RELATIVE_URL",specificity:42}),errorspecificity_43=Object.assign(new amp$validator$ErrorSpecificity,{code:"MISSING_URL", +specificity:43}),errorspecificity_44=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_DOMAIN",specificity:44}),errorspecificity_45=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_URL_PROTOCOL",specificity:45}),errorspecificity_46=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_URL",specificity:46}),errorspecificity_47=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_STYLE_ATTR",specificity:47}),errorspecificity_48=Object.assign(new amp$validator$ErrorSpecificity, +{code:"CSS_SYNTAX_STRAY_TRAILING_BACKSLASH",specificity:48}),errorspecificity_49=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNTERMINATED_COMMENT",specificity:49}),errorspecificity_50=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNTERMINATED_STRING",specificity:50}),errorspecificity_51=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_BAD_URL",specificity:51}),errorspecificity_52=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE", +specificity:52}),errorspecificity_53=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_DECLARATION",specificity:53}),errorspecificity_54=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INCOMPLETE_DECLARATION",specificity:54}),errorspecificity_55=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR",specificity:55}),errorspecificity_56=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_MISSING_SELECTOR", +specificity:56}),errorspecificity_57=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_NOT_A_SELECTOR_START",specificity:57}),errorspecificity_58=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR",specificity:58}),errorspecificity_59=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_MISSING_URL",specificity:59}),errorspecificity_60=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_DOMAIN", +specificity:60}),errorspecificity_61=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_URL",specificity:61}),errorspecificity_62=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_URL_PROTOCOL",specificity:62}),errorspecificity_63=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_RELATIVE_URL",specificity:63}),errorspecificity_64=Object.assign(new amp$validator$ErrorSpecificity,{code:"INCORRECT_NUM_CHILD_TAGS",specificity:64}), +errorspecificity_65=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_CHILD_TAG_NAME",specificity:65}),errorspecificity_66=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_FIRST_CHILD_TAG_NAME",specificity:66}),errorspecificity_67=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_ATTR_SELECTOR",specificity:67}),errorspecificity_68=Object.assign(new amp$validator$ErrorSpecificity,{code:"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT",specificity:68}), +errorspecificity_69=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_REFERENCE_POINT_MISSING",specificity:69}),errorspecificity_70=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_REFERENCE_POINT",specificity:70}),errorspecificity_71=Object.assign(new amp$validator$ErrorSpecificity,{code:"TAG_REFERENCE_POINT_CONFLICT",specificity:71}),errorspecificity_72=Object.assign(new amp$validator$ErrorSpecificity,{code:"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR",specificity:72}), +errorspecificity_73=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE",specificity:73}),errorspecificity_74=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT",specificity:74}),errorspecificity_75=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE",specificity:75}),errorspecificity_76=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH", +specificity:76}),errorspecificity_77=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION",specificity:77}),errorspecificity_78=Object.assign(new amp$validator$ErrorSpecificity,{code:"BASE_TAG_MUST_PRECEED_ALL_URLS",specificity:78}),errorspecificity_79=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_SCRIPT_TAG",specificity:100}),errorspecificity_80=Object.assign(new amp$validator$ErrorSpecificity,{code:"GENERAL_DISALLOWED_TAG",specificity:101}), +errorspecificity_81=Object.assign(new amp$validator$ErrorSpecificity,{code:"DEPRECATED_ATTR",specificity:102}),errorspecificity_82=Object.assign(new amp$validator$ErrorSpecificity,{code:"DEPRECATED_TAG",specificity:103}),errorspecificity_83=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_MANUFACTURED_BODY",specificity:104}),errorspecificity_84=Object.assign(new amp$validator$ErrorSpecificity,{code:"DOCUMENT_TOO_COMPLEX",specificity:105}),errorspecificity_85=Object.assign(new amp$validator$ErrorSpecificity, +{code:"INCORRECT_MIN_NUM_CHILD_TAGS",specificity:106}),errorspecificity_86=Object.assign(new amp$validator$ErrorSpecificity,{code:"TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS",specificity:107}),errorspecificity_87=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_LAST_CHILD_TAG",specificity:108}),errorspecificity_88=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_PROPERTY",specificity:109}),errorspecificity_89=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_PROPERTY_NOLIST", +specificity:110}),errorspecificity_90=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS",specificity:111}),errorspecificity_91=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME",specificity:112}),errorspecificity_92=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME",specificity:113}),errorspecificity_93=Object.assign(new amp$validator$ErrorSpecificity, +{code:"CSS_SYNTAX_MALFORMED_MEDIA_QUERY",specificity:115}),errorspecificity_94=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_MEDIA_TYPE",specificity:116}),errorspecificity_95=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE",specificity:117}),errorspecificity_96=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_UTF8",specificity:118}),descendanttaglist_0=Object.assign(new amp$validator$DescendantTagList,{name:"amp-story-grid-layer-allowed-descendants", +allowedTags:"ABBR ADDRESS AMP-ANALYTICS AMP-AUDIO AMP-EXPERIMENT AMP-FIT-TEXT AMP-FONT AMP-GFYCAT AMP-GIST AMP-GOOGLE-VRVIEW-IMAGE AMP-IMG AMP-INSTALL-SERVICEWORKER AMP-LIST AMP-LIVE-LIST AMP-PIXEL AMP-VIDEO ARTICLE ASIDE B BDI BDO BLOCKQUOTE BR CAPTION CITE CODE COL COLGROUP DATA DD DEL DFN DIV DL DT EM FIGCAPTION FIGURE FOOTER H1 H2 H3 H4 H5 H6 HEADER HGROUP HR I INS KBD LI MAIN MARK NAV NOSCRIPT OL P PRE Q RP RT RTC RUBY S SAMP SECTION SMALL SOURCE SPAN STRONG SUB SUP TABLE TBODY TD TFOOT TH THEAD TIME TR TRACK U UL VAR WBR".split(" ")}), +validatorrules_0=Object.assign(new amp$validator$ValidatorRules([tagspec_0,tagspec_1,tagspec_2,tagspec_3,tagspec_4,tagspec_5,tagspec_6,tagspec_7,tagspec_8,tagspec_9,tagspec_10,tagspec_11,tagspec_12,tagspec_13,tagspec_14,tagspec_15,tagspec_16,tagspec_17,tagspec_18,tagspec_19,tagspec_20,tagspec_21,tagspec_22,tagspec_23,tagspec_24,tagspec_25,tagspec_26,tagspec_27,tagspec_28,tagspec_29,tagspec_30,tagspec_31,tagspec_32,tagspec_33,tagspec_34,tagspec_35,tagspec_36,tagspec_37,tagspec_38,tagspec_39,tagspec_40, +tagspec_41,tagspec_42,tagspec_43,tagspec_44,tagspec_45,tagspec_46,tagspec_47,tagspec_48,tagspec_49,tagspec_50,tagspec_51,tagspec_52,tagspec_53,tagspec_54,tagspec_55,tagspec_56,tagspec_57,tagspec_58,tagspec_59,tagspec_60,tagspec_61,tagspec_62,tagspec_63,tagspec_64,tagspec_65,tagspec_66,tagspec_67,tagspec_68,tagspec_69,tagspec_70,tagspec_71,tagspec_72,tagspec_73,tagspec_74,tagspec_75,tagspec_76,tagspec_77,tagspec_78,tagspec_79,tagspec_80,tagspec_81,tagspec_82,tagspec_83,tagspec_84,tagspec_85,tagspec_86, +tagspec_87,tagspec_88,tagspec_89,tagspec_90,tagspec_91,tagspec_92,tagspec_93,tagspec_94,tagspec_95,tagspec_96,tagspec_97,tagspec_98,tagspec_99,tagspec_100,tagspec_101,tagspec_102,tagspec_103,tagspec_104,tagspec_105,tagspec_106,tagspec_107,tagspec_108,tagspec_109,tagspec_110,tagspec_111,tagspec_112,tagspec_113,tagspec_114,tagspec_115,tagspec_116,tagspec_117,tagspec_118,tagspec_119,tagspec_120,tagspec_121,tagspec_122,tagspec_123,tagspec_124,tagspec_125,tagspec_126,tagspec_127,tagspec_128,tagspec_129, +tagspec_130,tagspec_131,tagspec_132,tagspec_133,tagspec_134,tagspec_135,tagspec_136,tagspec_137,tagspec_138,tagspec_139,tagspec_140,tagspec_141,tagspec_142,tagspec_143,tagspec_144,tagspec_145,tagspec_146,tagspec_147,tagspec_148,tagspec_149,tagspec_150,tagspec_151,tagspec_152,tagspec_153,tagspec_154,tagspec_155,tagspec_156,tagspec_157,tagspec_158,tagspec_159,tagspec_160,tagspec_161,tagspec_162,tagspec_163,tagspec_164,tagspec_165,tagspec_166,tagspec_167,tagspec_168,tagspec_169,tagspec_170,tagspec_171, +tagspec_172,tagspec_173,tagspec_174,tagspec_175,tagspec_176,tagspec_177,tagspec_178,tagspec_179,tagspec_180,tagspec_181,tagspec_182,tagspec_183,tagspec_184,tagspec_185,tagspec_186,tagspec_187,tagspec_188,tagspec_189,tagspec_190,tagspec_191,tagspec_192,tagspec_193,tagspec_194,tagspec_195,tagspec_196,tagspec_197,tagspec_198,tagspec_199,tagspec_200,tagspec_201,tagspec_202,tagspec_203,tagspec_204,tagspec_205,tagspec_206,tagspec_207,tagspec_208,tagspec_209,tagspec_210,tagspec_211,tagspec_212,tagspec_213, +tagspec_214,tagspec_215,tagspec_216,tagspec_217,tagspec_218,tagspec_219,tagspec_220,tagspec_221,tagspec_222,tagspec_223,tagspec_224,tagspec_225,tagspec_226,tagspec_227,tagspec_228,tagspec_229,tagspec_230,tagspec_231,tagspec_232,tagspec_233,tagspec_234,tagspec_235,tagspec_236,tagspec_237,tagspec_238,tagspec_239,tagspec_240,tagspec_241,tagspec_242,tagspec_243,tagspec_244,tagspec_245,tagspec_246,tagspec_247,tagspec_248,tagspec_249,tagspec_250,tagspec_251,tagspec_252,tagspec_253,tagspec_254,tagspec_255, +tagspec_256,tagspec_257,tagspec_258,tagspec_259,tagspec_260,tagspec_261,tagspec_262,tagspec_263,tagspec_264,tagspec_265,tagspec_266,tagspec_267,tagspec_268,tagspec_269,tagspec_270,tagspec_271,tagspec_272,tagspec_273,tagspec_274,tagspec_275,tagspec_276,tagspec_277,tagspec_278,tagspec_279,tagspec_280,tagspec_281,tagspec_282,tagspec_283,tagspec_284,tagspec_285,tagspec_286,tagspec_287,tagspec_288,tagspec_289,tagspec_290,tagspec_291,tagspec_292,tagspec_293,tagspec_294,tagspec_295,tagspec_296,tagspec_297, +tagspec_298,tagspec_299,tagspec_300,tagspec_301,tagspec_302,tagspec_303,tagspec_304,tagspec_305,tagspec_306,tagspec_307,tagspec_308,tagspec_309,tagspec_310,tagspec_311,tagspec_312,tagspec_313,tagspec_314,tagspec_315,tagspec_316,tagspec_317,tagspec_318,tagspec_319,tagspec_320,tagspec_321,tagspec_322,tagspec_323,tagspec_324,tagspec_325,tagspec_326,tagspec_327,tagspec_328,tagspec_329,tagspec_330,tagspec_331,tagspec_332,tagspec_333,tagspec_334,tagspec_335,tagspec_336,tagspec_337,tagspec_338,tagspec_339, +tagspec_340,tagspec_341,tagspec_342,tagspec_343,tagspec_344,tagspec_345,tagspec_346,tagspec_347,tagspec_348,tagspec_349,tagspec_350,tagspec_351,tagspec_352,tagspec_353,tagspec_354,tagspec_355,tagspec_356,tagspec_357,tagspec_358,tagspec_359,tagspec_360,tagspec_361,tagspec_362,tagspec_363,tagspec_364,tagspec_365,tagspec_366,tagspec_367,tagspec_368,tagspec_369,tagspec_370,tagspec_371,tagspec_372,tagspec_373,tagspec_374,tagspec_375,tagspec_376,tagspec_377,tagspec_378,tagspec_379,tagspec_380,tagspec_381, +tagspec_382,tagspec_383,tagspec_384,tagspec_385,tagspec_386,tagspec_387,tagspec_388,tagspec_389,tagspec_390,tagspec_391,tagspec_392,tagspec_393,tagspec_394,tagspec_395,tagspec_396,tagspec_397,tagspec_398,tagspec_399,tagspec_400,tagspec_401,tagspec_402,tagspec_403,tagspec_404,tagspec_405,tagspec_406,tagspec_407,tagspec_408,tagspec_409,tagspec_410,tagspec_411,tagspec_412]),{minValidatorRevisionRequired:319,specFileRevision:573,templateSpecUrl:"https://www.ampproject.org/docs/reference/components/dynamic/amp-mustache", +errorFormats:[errorformat_0,errorformat_1,errorformat_2,errorformat_3,errorformat_4,errorformat_5,errorformat_6,errorformat_7,errorformat_8,errorformat_9,errorformat_10,errorformat_11,errorformat_12,errorformat_13,errorformat_14,errorformat_15,errorformat_16,errorformat_17,errorformat_18,errorformat_19,errorformat_20,errorformat_21,errorformat_22,errorformat_23,errorformat_24,errorformat_25,errorformat_26,errorformat_27,errorformat_28,errorformat_29,errorformat_30,errorformat_31,errorformat_32,errorformat_33, +errorformat_34,errorformat_35,errorformat_36,errorformat_37,errorformat_38,errorformat_39,errorformat_40,errorformat_41,errorformat_42,errorformat_43,errorformat_44,errorformat_45,errorformat_46,errorformat_47,errorformat_48,errorformat_49,errorformat_50,errorformat_51,errorformat_52,errorformat_53,errorformat_54,errorformat_55,errorformat_56,errorformat_57,errorformat_58,errorformat_59,errorformat_60,errorformat_61,errorformat_62,errorformat_63,errorformat_64,errorformat_65,errorformat_66,errorformat_67, +errorformat_68,errorformat_69,errorformat_70,errorformat_71,errorformat_72,errorformat_73,errorformat_74,errorformat_75,errorformat_76,errorformat_77,errorformat_78,errorformat_79,errorformat_80,errorformat_81,errorformat_82,errorformat_83,errorformat_84,errorformat_85,errorformat_86,errorformat_87,errorformat_88,errorformat_89,errorformat_90,errorformat_91,errorformat_92,errorformat_93,errorformat_94,errorformat_95,errorformat_96],errorSpecificity:[errorspecificity_0,errorspecificity_1,errorspecificity_2, +errorspecificity_3,errorspecificity_4,errorspecificity_5,errorspecificity_6,errorspecificity_7,errorspecificity_8,errorspecificity_9,errorspecificity_10,errorspecificity_11,errorspecificity_12,errorspecificity_13,errorspecificity_14,errorspecificity_15,errorspecificity_16,errorspecificity_17,errorspecificity_18,errorspecificity_19,errorspecificity_20,errorspecificity_21,errorspecificity_22,errorspecificity_23,errorspecificity_24,errorspecificity_25,errorspecificity_26,errorspecificity_27,errorspecificity_28, +errorspecificity_29,errorspecificity_30,errorspecificity_31,errorspecificity_32,errorspecificity_33,errorspecificity_34,errorspecificity_35,errorspecificity_36,errorspecificity_37,errorspecificity_38,errorspecificity_39,errorspecificity_40,errorspecificity_41,errorspecificity_42,errorspecificity_43,errorspecificity_44,errorspecificity_45,errorspecificity_46,errorspecificity_47,errorspecificity_48,errorspecificity_49,errorspecificity_50,errorspecificity_51,errorspecificity_52,errorspecificity_53,errorspecificity_54, +errorspecificity_55,errorspecificity_56,errorspecificity_57,errorspecificity_58,errorspecificity_59,errorspecificity_60,errorspecificity_61,errorspecificity_62,errorspecificity_63,errorspecificity_64,errorspecificity_65,errorspecificity_66,errorspecificity_67,errorspecificity_68,errorspecificity_69,errorspecificity_70,errorspecificity_71,errorspecificity_72,errorspecificity_73,errorspecificity_74,errorspecificity_75,errorspecificity_76,errorspecificity_77,errorspecificity_78,errorspecificity_79,errorspecificity_80, +errorspecificity_81,errorspecificity_82,errorspecificity_83,errorspecificity_84,errorspecificity_85,errorspecificity_86,errorspecificity_87,errorspecificity_88,errorspecificity_89,errorspecificity_90,errorspecificity_91,errorspecificity_92,errorspecificity_93,errorspecificity_94,errorspecificity_95,errorspecificity_96],stylesSpecUrl:"https://www.ampproject.org/docs/guides/author-develop/responsive/style_pages",descendantTagList:[descendanttaglist_0],scriptSpecUrl:"https://www.ampproject.org/docs/reference/spec#html-tags"}); +validatorrules_0.dispatchKeyByTagSpecId[8]="rel\x00canonical";validatorrules_0.dispatchKeyByTagSpecId[9]="rel\x00manifest";validatorrules_0.dispatchKeyByTagSpecId[10]="rel\x00stylesheet";validatorrules_0.dispatchKeyByTagSpecId[11]="itemprop\x00sameas";validatorrules_0.dispatchKeyByTagSpecId[14]="charset";validatorrules_0.dispatchKeyByTagSpecId[15]="name\x00viewport";validatorrules_0.dispatchKeyByTagSpecId[16]="http-equiv\x00x-ua-compatible";validatorrules_0.dispatchKeyByTagSpecId[17]="name\x00apple-itunes-app"; +validatorrules_0.dispatchKeyByTagSpecId[18]="name\x00amp-experiments-opt-in";validatorrules_0.dispatchKeyByTagSpecId[19]="name\x00amp-3p-iframe-src";validatorrules_0.dispatchKeyByTagSpecId[20]="name\x00amp-experiment-token";validatorrules_0.dispatchKeyByTagSpecId[21]="name\x00amp-link-variable-allowed-origin";validatorrules_0.dispatchKeyByTagSpecId[22]="name\x00amp-google-client-id-api";validatorrules_0.dispatchKeyByTagSpecId[23]="name\x00amp-ad-doubleclick-sra";validatorrules_0.dispatchKeyByTagSpecId[24]= +"name\x00amp4ads-id";validatorrules_0.dispatchKeyByTagSpecId[26]="http-equiv\x00content-type";validatorrules_0.dispatchKeyByTagSpecId[27]="http-equiv\x00content-language";validatorrules_0.dispatchKeyByTagSpecId[28]="http-equiv\x00pics-label";validatorrules_0.dispatchKeyByTagSpecId[29]="http-equiv\x00imagetoolbar";validatorrules_0.dispatchKeyByTagSpecId[30]="http-equiv\x00content-style-type";validatorrules_0.dispatchKeyByTagSpecId[31]="http-equiv\x00content-script-type";validatorrules_0.dispatchKeyByTagSpecId[32]= +"http-equiv\x00origin-trial";validatorrules_0.dispatchKeyByTagSpecId[33]="http-equiv\x00resource-type";validatorrules_0.dispatchKeyByTagSpecId[34]="name\x00amp-ad-enable-refresh";validatorrules_0.dispatchKeyByTagSpecId[35]="name\x00amp-to-amp-navigation";validatorrules_0.dispatchKeyByTagSpecId[41]="amp-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[42]="amp4ads-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[43]="amp4email-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[44]= +"amp-boilerplate\x00\x00NOSCRIPT";validatorrules_0.dispatchKeyByTagSpecId[45]="amp-keyframes";validatorrules_0.dispatchKeyByTagSpecId[181]="method\x00post";validatorrules_0.dispatchKeyByTagSpecId[183]="method\x00post";validatorrules_0.dispatchKeyByTagSpecId[184]="submitting";validatorrules_0.dispatchKeyByTagSpecId[203]="src\x00https://cdn.ampproject.org/v0.js";validatorrules_0.dispatchKeyByTagSpecId[204]="src\x00https://cdn.ampproject.org/amp4ads-v0.js";validatorrules_0.dispatchKeyByTagSpecId[205]= +"type\x00application/ld+json";validatorrules_0.dispatchKeyByTagSpecId[206]="id\x00amp-rtc";validatorrules_0.dispatchKeyByTagSpecId[207]="type\x00application/json\x00AMP-IMA-VIDEO";validatorrules_0.dispatchKeyByTagSpecId[234]="id\x00amp-access";validatorrules_0.dispatchKeyByTagSpecId[240]="type\x00application/json\x00AMP-AD-EXIT";validatorrules_0.dispatchKeyByTagSpecId[243]="data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[244]="data-enable-refresh\x00";validatorrules_0.dispatchKeyByTagSpecId[246]= +"data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[248]="type\x00application/json\x00AMP-ANALYTICS";validatorrules_0.dispatchKeyByTagSpecId[255]="type\x00application/json\x00AMP-ANIMATION";validatorrules_0.dispatchKeyByTagSpecId[268]="type\x00application/json\x00AMP-STATE";validatorrules_0.dispatchKeyByTagSpecId[286]="type\x00application/json\x00AMP-EXPERIMENT";validatorrules_0.dispatchKeyByTagSpecId[375]="toolbar";var attrspec_0=Object.assign(new amp$validator$AttrSpec("html"),{mandatory:!0, +value:""}),attrspec_1=Object.assign(new amp$validator$AttrSpec("\u26a1"),{alternativeNames:["amp"],mandatory:!0,value:""}),attrspec_2=Object.assign(new amp$validator$AttrSpec("\u26a14ads"),{alternativeNames:["amp4ads"],mandatory:!0,value:""}),attrspec_3=Object.assign(new amp$validator$AttrSpec("\u26a14email"),{alternativeNames:["amp4email"],mandatory:!0,value:""}),attrspec_4=Object.assign(new amp$validator$AttrSpec("href"),{value:"/"}),attrspec_5=Object.assign(new amp$validator$AttrSpec("target"), +{valueRegexCasei:-266}),attrspec_6=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,blacklistedValueRegex:-267}),urlspec_3=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0}),attrspec_7=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_3}),attrspec_8=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"canonical"}),urlspec_4=Object.assign(new amp$validator$UrlSpec(["https"]), +{allowRelative:!0}),attrspec_9=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_10=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"manifest"}),attrspec_11=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,valueRegex:-269}),attrspec_12=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"stylesheet"}), +attrspec_13=Object.assign(new amp$validator$AttrSpec("type"),{valueCasei:"text/css"}),attrspec_14=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0}),attrspec_15=Object.assign(new amp$validator$AttrSpec("itemprop"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"sameas"}),attrspec_16=Object.assign(new amp$validator$AttrSpec("itemprop"),{mandatory:!0}),attrspec_17=Object.assign(new amp$validator$AttrSpec("property"),{mandatory:!0}),attrspec_18=Object.assign(new amp$validator$AttrSpec("charset"), +{mandatory:!0,dispatchKey:"NAME_DISPATCH",valueCasei:"utf-8"}),propertyspec_0=Object.assign(new amp$validator$PropertySpec("width"),{mandatory:!0,value:"device-width"}),propertyspec_1=new amp$validator$PropertySpec("height"),propertyspec_2=new amp$validator$PropertySpec("initial-scale"),propertyspec_3=Object.assign(new amp$validator$PropertySpec("minimum-scale"),{mandatory:!0,valueDouble:1}),attrspec_19=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueProperties:new amp$validator$PropertySpecList([propertyspec_0, +propertyspec_1,propertyspec_2,propertyspec_3,new amp$validator$PropertySpec("maximum-scale"),new amp$validator$PropertySpec("shrink-to-fit"),new amp$validator$PropertySpec("user-scalable"),new amp$validator$PropertySpec("viewport-fit")])}),attrspec_20=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,value:"viewport",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_21=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"x-ua-compatible"}), +propertyspec_8=Object.assign(new amp$validator$PropertySpec("ie"),{value:"edge"}),propertyspec_9=Object.assign(new amp$validator$PropertySpec("chrome"),{value:"1"}),attrspec_22=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueProperties:new amp$validator$PropertySpecList([propertyspec_8,propertyspec_9])}),attrspec_23=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"apple-itunes-app"}),attrspec_24=Object.assign(new amp$validator$AttrSpec("content"), +{mandatory:!0,valueRegex:-270}),attrspec_25=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-experiments-opt-in"}),attrspec_26=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0}),attrspec_27=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-3p-iframe-src"}),attrspec_28=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueUrl:urlspec_2}),attrspec_29= +Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-experiment-token"}),attrspec_30=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-link-variable-allowed-origin"}),attrspec_31=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-google-client-id-api"}),attrspec_32=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0, +dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-ad-doubleclick-sra"}),attrspec_33=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp4ads-id"}),attrspec_34=Object.assign(new amp$validator$AttrSpec("name"),{blacklistedValueRegex:-271}),attrspec_35=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-type"}),attrspec_36=Object.assign(new amp$validator$AttrSpec("content"), +{mandatory:!0,valueCasei:"text/html; charset=utf-8"}),attrspec_37=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-language"}),attrspec_38=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"pics-label"}),attrspec_39=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"imagetoolbar"}),attrspec_40=Object.assign(new amp$validator$AttrSpec("http-equiv"), +{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-style-type"}),attrspec_41=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueCasei:"text/css"}),attrspec_42=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-script-type"}),attrspec_43=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueCasei:"text/javascript"}),attrspec_44=Object.assign(new amp$validator$AttrSpec("http-equiv"), +{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"origin-trial"}),attrspec_45=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"resource-type"}),attrspec_46=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-ad-enable-refresh"}),attrspec_47=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-to-amp-navigation"}), +attrspec_48=Object.assign(new amp$validator$AttrSpec("amp-custom"),{mandatory:!0,value:""}),attrspec_49=Object.assign(new amp$validator$AttrSpec("amp-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_50=Object.assign(new amp$validator$AttrSpec("amp4ads-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_51=Object.assign(new amp$validator$AttrSpec("amp4email-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}), +attrspec_52=Object.assign(new amp$validator$AttrSpec("amp-keyframes"),{mandatory:!0,value:"",dispatchKey:"NAME_DISPATCH"}),attrspec_53=Object.assign(new amp$validator$AttrSpec("reversed"),{value:""}),attrspec_54=Object.assign(new amp$validator$AttrSpec("start"),{valueRegex:-272}),attrspec_55=Object.assign(new amp$validator$AttrSpec("type"),{valueRegex:-273}),attrspec_56=Object.assign(new amp$validator$AttrSpec("value"),{valueRegex:-272}),urlspec_5=Object.assign(new amp$validator$UrlSpec("ftp geo http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema twitter viber whatsapp".split(" ")), +{allowRelative:!0,allowEmpty:!0}),attrspec_57=Object.assign(new amp$validator$AttrSpec("href"),{blacklistedValueRegex:-268,valueUrl:urlspec_5}),attrspec_58=Object.assign(new amp$validator$AttrSpec("rel"),{blacklistedValueRegex:-274}),attrspec_59=Object.assign(new amp$validator$AttrSpec("role"),{implicit:!0}),attrspec_60=Object.assign(new amp$validator$AttrSpec("tabindex"),{implicit:!0}),attrspec_61=Object.assign(new amp$validator$AttrSpec("target"),{valueRegex:-266}),attrspec_62=Object.assign(new amp$validator$AttrSpec("type"), +{valueCasei:"text/html"}),urlspec_6=Object.assign(new amp$validator$UrlSpec(["https","mailto"]),{allowRelative:!1}),attrspec_63=Object.assign(new amp$validator$AttrSpec("href"),{blacklistedValueRegex:-275,valueUrl:urlspec_6}),attrspec_64=Object.assign(new amp$validator$AttrSpec("target"),{valueRegex:-276}),attrspec_65=Object.assign(new amp$validator$AttrSpec("longdesc"),{blacklistedValueRegex:-268,valueUrl:urlspec_3}),urlspec_7=Object.assign(new amp$validator$UrlSpec(["data","https"]),{allowRelative:!0}), +attrspec_66=Object.assign(new amp$validator$AttrSpec("src"),{alternativeNames:["srcset"],mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_7}),attrspec_67=Object.assign(new amp$validator$AttrSpec("frameborder"),{valueRegex:-277}),attrspec_68=Object.assign(new amp$validator$AttrSpec("resizable"),{value:""}),attrspec_69=Object.assign(new amp$validator$AttrSpec("scrolling"),{valueRegex:-278}),urlspec_8=Object.assign(new amp$validator$UrlSpec(["data","https"]),{allowRelative:!1}),attrspec_70=Object.assign(new amp$validator$AttrSpec("src"), +{blacklistedValueRegex:-268,mandatoryOneof:-279,valueUrl:urlspec_8}),attrspec_71=Object.assign(new amp$validator$AttrSpec("srcdoc"),{mandatoryOneof:-279}),attrspec_72=Object.assign(new amp$validator$AttrSpec("muted"),{deprecation:"autoplay",deprecationUrl:"https://www.ampproject.org/docs/reference/components/amp-video"}),attrspec_73=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-268,valueUrl:urlspec_8}),attrspec_74=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-268, +valueUrl:urlspec_4}),attrspec_75=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_76=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0}),urlspec_9=Object.assign(new amp$validator$UrlSpec(["data","http","https"]),{allowRelative:!0,allowEmpty:!1}),attrspec_77=Object.assign(new amp$validator$AttrSpec("xlink:href"),{alternativeNames:["href"],blacklistedValueRegex:-280,valueUrl:urlspec_9}),attrspec_78=Object.assign(new amp$validator$AttrSpec("version"), +{valueRegex:-281}),attrspec_79=Object.assign(new amp$validator$AttrSpec("border"),{valueRegex:-277}),attrspec_80=Object.assign(new amp$validator$AttrSpec("action"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_81=Object.assign(new amp$validator$AttrSpec("action-xhr"),{blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_82=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-282}),attrspec_83=Object.assign(new amp$validator$AttrSpec("method"), +{valueCasei:"get"}),attrspec_84=Object.assign(new amp$validator$AttrSpec("target"),{mandatory:!0,valueRegexCasei:-283}),attrspec_85=Object.assign(new amp$validator$AttrSpec("verify-xhr"),{blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_86=Object.assign(new amp$validator$AttrSpec("action-xhr"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_87=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-284}),attrspec_88=Object.assign(new amp$validator$AttrSpec("method"), +{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"post"}),attrspec_89=Object.assign(new amp$validator$AttrSpec("action-xhr"),{blacklistedValueRegex:-285,valueUrl:urlspec_2}),attrspec_90=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-286}),urlspec_10=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!1}),attrspec_91=Object.assign(new amp$validator$AttrSpec("verify-xhr"),{blacklistedValueRegex:-268,valueUrl:urlspec_10}),attrspec_92=Object.assign(new amp$validator$AttrSpec("action-xhr"), +{mandatory:!0,blacklistedValueRegex:-285,valueUrl:urlspec_10}),attrspec_93=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-287}),attrspec_94=Object.assign(new amp$validator$AttrSpec("submitting"),{mandatory:!0,dispatchKey:"NAME_DISPATCH"}),attrspec_95=Object.assign(new amp$validator$AttrSpec("submit-success"),{mandatory:!0}),attrspec_96=Object.assign(new amp$validator$AttrSpec("template"),{mandatory:!0}),attrspec_97=Object.assign(new amp$validator$AttrSpec("submit-error"), +{mandatory:!0}),attrspec_98=Object.assign(new amp$validator$AttrSpec("type"),{blacklistedValueRegex:-288}),attrspec_99=Object.assign(new amp$validator$AttrSpec("disabled"),{value:""}),attrspec_100=Object.assign(new amp$validator$AttrSpec("open-button"),{value:""}),attrspec_101=Object.assign(new amp$validator$AttrSpec("async"),{mandatory:!0,value:""}),attrspec_102=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,value:"https://cdn.ampproject.org/v0.js",dispatchKey:"NAME_VALUE_DISPATCH"}), +attrspec_103=Object.assign(new amp$validator$AttrSpec("type"),{valueCasei:"text/javascript"}),attrspec_104=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,value:"https://cdn.ampproject.org/amp4ads-v0.js",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_105=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"application/ld+json"}),attrspec_106=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,valueCasei:"application/json"}), +attrspec_107=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-rtc"}),attrspec_108=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,dispatchKey:"NAME_VALUE_PARENT_DISPATCH",valueCasei:"application/json"}),attrspec_109=Object.assign(new amp$validator$AttrSpec("referrerpolicy"),{value:"no-referrer"}),urlspec_11=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!0,allowEmpty:!0}),attrspec_110=Object.assign(new amp$validator$AttrSpec("src"), +{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_11}),attrspec_111=Object.assign(new amp$validator$AttrSpec("autoplay"),{value:""}),attrspec_112=Object.assign(new amp$validator$AttrSpec("data-id"),{mandatory:!0}),attrspec_113=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,value:"amp-access",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_114=Object.assign(new amp$validator$AttrSpec("disable-session-states"),{value:""}),attrspec_115=Object.assign(new amp$validator$AttrSpec("expanded"), +{value:""}),attrspec_116=Object.assign(new amp$validator$AttrSpec("expand-single-section"),{value:""}),attrspec_117=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0}),attrspec_118=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,value:"application/json",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_119=Object.assign(new amp$validator$AttrSpec("data-multi-size"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_120=Object.assign(new amp$validator$AttrSpec("data-enable-refresh"), +{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_121=Object.assign(new amp$validator$AttrSpec("config"),{blacklistedValueRegex:-268,valueUrl:urlspec_11}),attrspec_122=Object.assign(new amp$validator$AttrSpec("trigger"),{value:"visibility"}),attrspec_123=Object.assign(new amp$validator$AttrSpec("data-apester-media-id"),{mandatoryOneof:-289,valueRegex:-290}),attrspec_124=Object.assign(new amp$validator$AttrSpec("data-apester-channel-token"),{mandatoryOneof:-289,valueRegex:-290}), +attrspec_125=Object.assign(new amp$validator$AttrSpec("preload"),{valueRegexCasei:-291}),attrspec_126=Object.assign(new amp$validator$AttrSpec("autoplay"),{mandatory:!0,value:""}),attrtriggerspec_0=new amp$validator$AttrTriggerSpec(["src"]),attrspec_127=Object.assign(new amp$validator$AttrSpec("credentials"),{trigger:attrtriggerspec_0}),attrspec_128=Object.assign(new amp$validator$AttrSpec("expression"),{mandatory:!0}),attrspec_129=Object.assign(new amp$validator$AttrSpec("data-outstream"),{mandatoryOneof:-292, +valueRegex:-293}),attrspec_130=Object.assign(new amp$validator$AttrSpec("data-partner"),{mandatory:!0,valueRegex:-293}),attrspec_131=Object.assign(new amp$validator$AttrSpec("data-player"),{mandatory:!0,valueRegex:-293}),attrspec_132=Object.assign(new amp$validator$AttrSpec("data-playlist"),{mandatoryOneof:-292,valueRegex:-293}),attrspec_133=Object.assign(new amp$validator$AttrSpec("data-video"),{mandatoryOneof:-292,valueRegex:-293}),attrspec_134=Object.assign(new amp$validator$AttrSpec("data-account"), +{mandatory:!0}),attrspec_135=Object.assign(new amp$validator$AttrSpec("data-label"),{mandatory:!0}),attrspec_136=Object.assign(new amp$validator$AttrSpec("data-webcare-id"),{mandatory:!0}),attrspec_137=Object.assign(new amp$validator$AttrSpec("config"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_10}),attrspec_138=Object.assign(new amp$validator$AttrSpec("arrows"),{value:""}),attrspec_139=Object.assign(new amp$validator$AttrSpec("delay"),{valueRegex:-293}),attrspec_140=Object.assign(new amp$validator$AttrSpec("dots"), +{value:""}),attrspec_141=Object.assign(new amp$validator$AttrSpec("loop"),{value:""}),attrspec_142=Object.assign(new amp$validator$AttrSpec("type"),{valueRegex:-294}),attrspec_143=Object.assign(new amp$validator$AttrSpec("data-endscreen-enable"),{valueRegex:-295}),attrspec_144=Object.assign(new amp$validator$AttrSpec("data-info"),{valueRegex:-295}),attrspec_145=Object.assign(new amp$validator$AttrSpec("data-mute"),{valueRegex:-295}),attrspec_146=Object.assign(new amp$validator$AttrSpec("data-sharing-enable"), +{valueRegex:-295}),attrspec_147=Object.assign(new amp$validator$AttrSpec("data-start"),{valueRegex:-293}),attrspec_148=Object.assign(new amp$validator$AttrSpec("data-ui-highlight"),{valueRegexCasei:-296}),attrspec_149=Object.assign(new amp$validator$AttrSpec("data-ui-logo"),{valueRegex:-295}),attrspec_150=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatory:!0,valueRegexCasei:-297}),attrspec_151=Object.assign(new amp$validator$AttrSpec("data-href"),{mandatory:!0}),urlspec_12=Object.assign(new amp$validator$UrlSpec(["http", +"https"]),{allowRelative:!1}),attrspec_152=Object.assign(new amp$validator$AttrSpec("data-href"),{mandatory:!0,valueUrl:urlspec_12}),attrspec_153=Object.assign(new amp$validator$AttrSpec("font-family"),{mandatory:!0}),attrspec_154=Object.assign(new amp$validator$AttrSpec("timeout"),{valueRegex:-293}),attrspec_155=Object.assign(new amp$validator$AttrSpec("height"),{mandatory:!0}),attrspec_156=Object.assign(new amp$validator$AttrSpec("data-gfyid"),{mandatory:!0}),attrspec_157=Object.assign(new amp$validator$AttrSpec("noautoplay"), +{value:""}),attrspec_158=Object.assign(new amp$validator$AttrSpec("data-gistid"),{mandatory:!0}),attrspec_159=Object.assign(new amp$validator$AttrSpec("data-eid"),{mandatory:!0}),attrspec_160=Object.assign(new amp$validator$AttrSpec("allowfullscreen"),{value:""}),attrspec_161=Object.assign(new amp$validator$AttrSpec("allowpaymentrequest"),{value:""}),attrspec_162=Object.assign(new amp$validator$AttrSpec("allowtransparency"),{value:""}),attrspec_163=Object.assign(new amp$validator$AttrSpec("src"), +{blacklistedValueRegex:-268,mandatoryOneof:-279,valueUrl:urlspec_7}),attrspec_164=Object.assign(new amp$validator$AttrSpec("[src]"),{trigger:attrtriggerspec_0}),attrspec_165=Object.assign(new amp$validator$AttrSpec("data-src"),{blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_166=Object.assign(new amp$validator$AttrSpec("data-tag"),{mandatory:!0,valueUrl:urlspec_4}),attrspec_167=Object.assign(new amp$validator$AttrSpec("data-imgur-id"),{mandatory:!0}),attrspec_168=Object.assign(new amp$validator$AttrSpec("data-shortcode"), +{mandatory:!0}),attrspec_169=Object.assign(new amp$validator$AttrSpec("data-iframe-src"),{blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_170=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatory:!0,valueRegex:-293}),attrspec_171=Object.assign(new amp$validator$AttrSpec("data-media-id"),{valueRegexCasei:-298,mandatoryOneof:-299}),attrspec_172=Object.assign(new amp$validator$AttrSpec("data-player-id"),{mandatory:!0,valueRegexCasei:-298}),attrspec_173=Object.assign(new amp$validator$AttrSpec("data-playlist-id"), +{valueRegexCasei:-298,mandatoryOneof:-299}),attrspec_174=Object.assign(new amp$validator$AttrSpec("data-partner"),{mandatory:!0}),attrspec_175=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-285,valueUrl:urlspec_10}),attrspec_176=Object.assign(new amp$validator$AttrSpec("data-max-items-per-page"),{mandatory:!0,valueRegex:-300}),attrspec_177=Object.assign(new amp$validator$AttrSpec("data-poll-interval"),{valueRegex:-301}),attrspec_178=Object.assign(new amp$validator$AttrSpec("update"), +{mandatory:!0}),attrspec_179=Object.assign(new amp$validator$AttrSpec("items"),{mandatory:!0}),attrspec_180=Object.assign(new amp$validator$AttrSpec("pagination"),{mandatory:!0}),attrspec_181=Object.assign(new amp$validator$AttrSpec("data-sort-time"),{mandatory:!0}),attrspec_182=Object.assign(new amp$validator$AttrSpec("data-formula"),{mandatory:!0}),attrspec_183=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,value:"amp-mustache"}),attrspec_184=Object.assign(new amp$validator$AttrSpec("data-client"), +{mandatory:!0}),attrspec_185=Object.assign(new amp$validator$AttrSpec("data-mediaid"),{mandatory:!0,valueRegex:-302}),attrspec_186=Object.assign(new amp$validator$AttrSpec("data-mode"),{valueRegex:-303}),urlspec_13=Object.assign(new amp$validator$UrlSpec(["https","http"]),{allowEmpty:!0}),attrspec_187=Object.assign(new amp$validator$AttrSpec("data-origin"),{valueUrl:urlspec_13}),attrspec_188=Object.assign(new amp$validator$AttrSpec("data-streamtype"),{valueRegex:-304}),attrspec_189=Object.assign(new amp$validator$AttrSpec("data-bcid"), +{mandatory:!0}),attrspec_190=Object.assign(new amp$validator$AttrSpec("data-pid"),{mandatory:!0}),attrspec_191=Object.assign(new amp$validator$AttrSpec("data-embedcode"),{mandatory:!0}),attrspec_192=Object.assign(new amp$validator$AttrSpec("data-pcode"),{mandatory:!0}),attrspec_193=Object.assign(new amp$validator$AttrSpec("data-playerid"),{mandatory:!0}),attrspec_194=Object.assign(new amp$validator$AttrSpec("data-do"),{mandatory:!0}),attrspec_195=Object.assign(new amp$validator$AttrSpec("src"),{mandatoryOneof:-305}), +attrspec_196=Object.assign(new amp$validator$AttrSpec("data-item"),{mandatoryOneof:-305}),attrspec_197=Object.assign(new amp$validator$AttrSpec("data-item-info"),{valueRegexCasei:-306}),attrspec_198=Object.assign(new amp$validator$AttrSpec("data-share-buttons"),{valueRegexCasei:-306}),attrspec_199=Object.assign(new amp$validator$AttrSpec("data-comments"),{valueRegexCasei:-306}),attrspec_200=Object.assign(new amp$validator$AttrSpec("intersection-ratios"),{valueRegex:-307}),attrspec_201=Object.assign(new amp$validator$AttrSpec("viewport-margins"), +{valueRegex:-308}),attrspec_202=Object.assign(new amp$validator$AttrSpec("data-embed-id"),{mandatory:!0,valueRegex:-309}),attrspec_203=Object.assign(new amp$validator$AttrSpec("data-embedlive"),{valueRegexCasei:-306}),attrspec_204=Object.assign(new amp$validator$AttrSpec("data-embedparent"),{valueRegexCasei:-306}),attrspec_205=Object.assign(new amp$validator$AttrSpec("data-embedtype"),{mandatory:!0,valueRegexCasei:-310}),attrspec_206=Object.assign(new amp$validator$AttrSpec("data-src"),{mandatory:!0}), +attrspec_207=Object.assign(new amp$validator$AttrSpec("data-riddle-id"),{mandatory:!0,valueRegex:-293}),attrspec_208=Object.assign(new amp$validator$AttrSpec("keyboard-select-mode"),{valueRegexCasei:-311}),attrspec_209=Object.assign(new amp$validator$AttrSpec("multiple"),{value:""}),attrspec_210=Object.assign(new amp$validator$AttrSpec("option"),{mandatory:!0}),attrspec_211=Object.assign(new amp$validator$AttrSpec("selected"),{value:""}),attrspec_212=Object.assign(new amp$validator$AttrSpec("side"), +{valueRegex:-312}),attrspec_213=Object.assign(new amp$validator$AttrSpec("toolbar"),{mandatory:!0,dispatchKey:"NAME_DISPATCH"}),attrspec_214=Object.assign(new amp$validator$AttrSpec("toolbar-target"),{mandatory:!0}),urlspec_14=Object.assign(new amp$validator$UrlSpec("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema viber whatsapp".split(" ")),{allowRelative:!1}),attrspec_215=Object.assign(new amp$validator$AttrSpec("data-share-endpoint"),{blacklistedValueRegex:-268, +valueUrl:urlspec_14}),attrspec_216=Object.assign(new amp$validator$AttrSpec("data-color"),{valueRegexCasei:-296}),attrspec_217=Object.assign(new amp$validator$AttrSpec("data-playlistid"),{mandatoryOneof:-313,valueRegex:-293}),attrspec_218=Object.assign(new amp$validator$AttrSpec("data-secret-token"),{valueRegex:-314}),attrspec_219=Object.assign(new amp$validator$AttrSpec("data-trackid"),{mandatoryOneof:-313,valueRegex:-293}),attrspec_220=Object.assign(new amp$validator$AttrSpec("data-visual"),{valueRegex:-295}), +attrspec_221=Object.assign(new amp$validator$AttrSpec("data-content-id"),{mandatory:!0}),attrspec_222=Object.assign(new amp$validator$AttrSpec("data-domain"),{mandatory:!0}),attrspec_223=Object.assign(new amp$validator$AttrSpec("data-items"),{mandatory:!0}),attrspec_224=Object.assign(new amp$validator$AttrSpec("data-mode"),{mandatory:!0,valueRegexCasei:-315}),attrspec_225=Object.assign(new amp$validator$AttrSpec("data-player-id"),{mandatory:!0,valueRegexCasei:-297}),attrspec_226=Object.assign(new amp$validator$AttrSpec("data-site-id"), +{mandatory:!0,valueRegex:-293}),attrspec_227=Object.assign(new amp$validator$AttrSpec("standalone"),{mandatory:!0,value:""}),urlspec_15=new amp$validator$UrlSpec(["http","https"]),attrspec_228=Object.assign(new amp$validator$AttrSpec("bookend-config-src"),{valueUrl:urlspec_15}),attrspec_229=Object.assign(new amp$validator$AttrSpec("background-audio"),{valueUrl:urlspec_15}),attrspec_230=Object.assign(new amp$validator$AttrSpec("template"),{mandatory:!0,valueRegex:-316}),attrspec_231=Object.assign(new amp$validator$AttrSpec("align-content"), +{valueRegex:-317}),attrspec_232=Object.assign(new amp$validator$AttrSpec("align-items"),{valueRegex:-318}),attrspec_233=Object.assign(new amp$validator$AttrSpec("align-self"),{valueRegex:-318}),attrspec_234=Object.assign(new amp$validator$AttrSpec("justify-content"),{valueRegex:-317}),attrspec_235=Object.assign(new amp$validator$AttrSpec("justify-items"),{valueRegex:-318}),attrspec_236=Object.assign(new amp$validator$AttrSpec("justify-self"),{valueRegex:-318}),attrspec_237=Object.assign(new amp$validator$AttrSpec("animate-in"), +{valueRegex:-319}),attrspec_238=Object.assign(new amp$validator$AttrSpec("cutoff"),{valueRegex:-300}),attrspec_239=Object.assign(new amp$validator$AttrSpec("datetime"),{mandatory:!0,valueRegex:-320}),attrspec_240=Object.assign(new amp$validator$AttrSpec("data-tweetid"),{mandatory:!0}),urlspec_16=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!1,allowEmpty:!1}),attrspec_241=Object.assign(new amp$validator$AttrSpec("data-dismiss-href"),{valueUrl:urlspec_16}),attrspec_242=Object.assign(new amp$validator$AttrSpec("data-show-if-href"), +{valueUrl:urlspec_16}),attrspec_243=Object.assign(new amp$validator$AttrSpec("enctype"),{value:"application/x-www-form-urlencoded"}),attrspec_244=Object.assign(new amp$validator$AttrSpec("poster"),{mandatory:!0}),attrspec_245=Object.assign(new amp$validator$AttrSpec("data-vineid"),{mandatory:!0}),attrspec_246=Object.assign(new amp$validator$AttrSpec("data-embedtype"),{mandatory:!0}),attrspec_247=Object.assign(new amp$validator$AttrSpec("helper-iframe-url"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_248= +Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,valueRegex:-321}),attrspec_249=Object.assign(new amp$validator$AttrSpec("permission-dialog-url"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_250=Object.assign(new amp$validator$AttrSpec("service-worker-url"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_251=Object.assign(new amp$validator$AttrSpec("visibility"),{mandatory:!0,valueRegex:-322}),attrspec_252=Object.assign(new amp$validator$AttrSpec("data-media-hashed-id"),{mandatory:!0,valueRegex:-290}), +attrspec_253=Object.assign(new amp$validator$AttrSpec("credentials"),{valueRegexCasei:-323}),attrspec_254=Object.assign(new amp$validator$AttrSpec("data-live-channelid"),{mandatoryOneof:-324,valueRegex:-302}),attrspec_255=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatoryOneof:-324,valueRegex:-302}),attrspec_256=Object.assign(new amp$validator$AttrSpec("charset"),{valueCasei:"utf-8"}),urlspec_17=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0,allowEmpty:!0}), +attrspec_257=Object.assign(new amp$validator$AttrSpec("cite"),{blacklistedValueRegex:-268,valueUrl:urlspec_17}),attrspec_258=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_10}),attrspec_259=Object.assign(new amp$validator$AttrSpec("default"),{value:""}),attrspec_260=Object.assign(new amp$validator$AttrSpec("kind"),{valueRegex:-325}),attrspec_261=Object.assign(new amp$validator$AttrSpec("kind"),{mandatory:!0,valueCasei:"subtitles"}),attrspec_262= +Object.assign(new amp$validator$AttrSpec("srclang"),{mandatory:!0}),urlspec_18=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0,allowEmpty:!1}),attrspec_263=Object.assign(new amp$validator$AttrSpec("xlink:href"),{alternativeNames:["href"],valueUrl:urlspec_18}),attrspec_264=Object.assign(new amp$validator$AttrSpec("style"),{blacklistedValueRegex:-326}),attrspec_265=Object.assign(new amp$validator$AttrSpec("name"),{blacklistedValueRegex:-327}),urlspec_19=Object.assign(new amp$validator$UrlSpec(["data", +"http","https"]),{allowRelative:!0}),attrspec_266=Object.assign(new amp$validator$AttrSpec("src"),{alternativeNames:["srcset"],mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_19}),attrspec_267=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-275,valueUrl:urlspec_10}),attrspec_268=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-275,valueUrl:urlspec_10}),attrspec_269=Object.assign(new amp$validator$AttrSpec("noloading"),{value:""}), +attrspec_270=Object.assign(new amp$validator$AttrSpec("rel"),{blacklistedValueRegex:-328}),attrspec_271=Object.assign(new amp$validator$AttrSpec("class"),{blacklistedValueRegex:-329}),attrspec_272=Object.assign(new amp$validator$AttrSpec("hidden"),{value:""}),attrspec_273=Object.assign(new amp$validator$AttrSpec("id"),{blacklistedValueRegex:-330}),attrtriggerspec_1=Object.assign(new amp$validator$AttrTriggerSpec(["role","tabindex"]),{ifValueRegex:-331}),attrspec_274=Object.assign(new amp$validator$AttrSpec("on"), +{trigger:attrtriggerspec_1}),attrspec_275=Object.assign(new amp$validator$AttrSpec("placeholder"),{value:""}),attrspec_276=Object.assign(new amp$validator$AttrSpec("fallback"),{value:""}),attrspec_277=Object.assign(new amp$validator$AttrSpec("validation-for"),{trigger:new amp$validator$AttrTriggerSpec(["visible-when-invalid"])}),attrspec_278=Object.assign(new amp$validator$AttrSpec("visible-when-invalid"),{valueRegex:-332,trigger:new amp$validator$AttrTriggerSpec(["validation-for"])}),attrspec_279= +Object.assign(new amp$validator$AttrSpec("amp-fx"),{valueCasei:"parallax",requiresExtension:["amp-fx-collection"]}),attrspec_280=Object.assign(new amp$validator$AttrSpec("muted"),{value:""}),attrspec_281=Object.assign(new amp$validator$AttrSpec("controls"),{value:""}),attrspec_282=Object.assign(new amp$validator$AttrSpec("disableremoteplayback"),{value:""}),attrspec_283=Object.assign(new amp$validator$AttrSpec("preload"),{valueRegex:-333});validatorrules_0.attrs=[attrspec_0,attrspec_1,attrspec_2, +attrspec_3,attrspec_4,attrspec_5,attrspec_6,attrspec_7,attrspec_8,attrspec_9,attrspec_10,attrspec_11,attrspec_12,attrspec_13,attrspec_14,attrspec_15,attrspec_16,attrspec_17,attrspec_18,attrspec_19,attrspec_20,attrspec_21,attrspec_22,attrspec_23,attrspec_24,attrspec_25,attrspec_26,attrspec_27,attrspec_28,attrspec_29,attrspec_30,attrspec_31,attrspec_32,attrspec_33,attrspec_34,attrspec_35,attrspec_36,attrspec_37,attrspec_38,attrspec_39,attrspec_40,attrspec_41,attrspec_42,attrspec_43,attrspec_44,attrspec_45, +attrspec_46,attrspec_47,attrspec_48,attrspec_49,attrspec_50,attrspec_51,attrspec_52,attrspec_53,attrspec_54,attrspec_55,attrspec_56,attrspec_57,attrspec_58,attrspec_59,attrspec_60,attrspec_61,attrspec_62,attrspec_63,attrspec_64,attrspec_65,attrspec_66,attrspec_67,attrspec_68,attrspec_69,attrspec_70,attrspec_71,attrspec_72,attrspec_73,attrspec_74,attrspec_75,attrspec_76,attrspec_77,attrspec_78,attrspec_79,attrspec_80,attrspec_81,attrspec_82,attrspec_83,attrspec_84,attrspec_85,attrspec_86,attrspec_87, +attrspec_88,attrspec_89,attrspec_90,attrspec_91,attrspec_92,attrspec_93,attrspec_94,attrspec_95,attrspec_96,attrspec_97,attrspec_98,attrspec_99,attrspec_100,attrspec_101,attrspec_102,attrspec_103,attrspec_104,attrspec_105,attrspec_106,attrspec_107,attrspec_108,attrspec_109,attrspec_110,attrspec_111,attrspec_112,attrspec_113,attrspec_114,attrspec_115,attrspec_116,attrspec_117,attrspec_118,attrspec_119,attrspec_120,attrspec_121,attrspec_122,attrspec_123,attrspec_124,attrspec_125,attrspec_126,attrspec_127, +attrspec_128,attrspec_129,attrspec_130,attrspec_131,attrspec_132,attrspec_133,attrspec_134,attrspec_135,attrspec_136,attrspec_137,attrspec_138,attrspec_139,attrspec_140,attrspec_141,attrspec_142,attrspec_143,attrspec_144,attrspec_145,attrspec_146,attrspec_147,attrspec_148,attrspec_149,attrspec_150,attrspec_151,attrspec_152,attrspec_153,attrspec_154,attrspec_155,attrspec_156,attrspec_157,attrspec_158,attrspec_159,attrspec_160,attrspec_161,attrspec_162,attrspec_163,attrspec_164,attrspec_165,attrspec_166, +attrspec_167,attrspec_168,attrspec_169,attrspec_170,attrspec_171,attrspec_172,attrspec_173,attrspec_174,attrspec_175,attrspec_176,attrspec_177,attrspec_178,attrspec_179,attrspec_180,attrspec_181,attrspec_182,attrspec_183,attrspec_184,attrspec_185,attrspec_186,attrspec_187,attrspec_188,attrspec_189,attrspec_190,attrspec_191,attrspec_192,attrspec_193,attrspec_194,attrspec_195,attrspec_196,attrspec_197,attrspec_198,attrspec_199,attrspec_200,attrspec_201,attrspec_202,attrspec_203,attrspec_204,attrspec_205, +attrspec_206,attrspec_207,attrspec_208,attrspec_209,attrspec_210,attrspec_211,attrspec_212,attrspec_213,attrspec_214,attrspec_215,attrspec_216,attrspec_217,attrspec_218,attrspec_219,attrspec_220,attrspec_221,attrspec_222,attrspec_223,attrspec_224,attrspec_225,attrspec_226,attrspec_227,attrspec_228,attrspec_229,attrspec_230,attrspec_231,attrspec_232,attrspec_233,attrspec_234,attrspec_235,attrspec_236,attrspec_237,attrspec_238,attrspec_239,attrspec_240,attrspec_241,attrspec_242,attrspec_243,attrspec_244, +attrspec_245,attrspec_246,attrspec_247,attrspec_248,attrspec_249,attrspec_250,attrspec_251,attrspec_252,attrspec_253,attrspec_254,attrspec_255,attrspec_256,attrspec_257,attrspec_258,attrspec_259,attrspec_260,attrspec_261,attrspec_262,attrspec_263,attrspec_264,attrspec_265,attrspec_266,attrspec_267,attrspec_268,attrspec_269,attrspec_270,attrspec_271,attrspec_272,attrspec_273,attrspec_274,attrspec_275,attrspec_276,attrspec_277,attrspec_278,attrspec_279,attrspec_280,attrspec_281,attrspec_282,attrspec_283]; +validatorrules_0.directAttrLists=[[256,-334,-7,-22,-6,-2,-257,-3],[257],[258,259,260,-198,-335],[258,259,261,-198,262],[-336,-337,-338],[-339,-340,-341,-342],[-31,-343,-32,-61,-62],[-344,-345,-346,-347,-348,-334,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-360,-361,-362,-363,-364,-365,-366,-367,-238,-239,-240,-368,-369,-370,-371,-372,-373,-374,-375,-376,-377,-378,-379,-380,-381,-123,-124,-382,-383,-384,-385,-386,-387,-388,-389,-97,-390,-391,-392,-393,-394,-395,-396],[-397,-398,-399,-122, +-400,-401,-402],[-64,-65,263,-66,-67,-68,-69],[264],[265],[266],[267],[268],[-6,269],[],[101,-12,103],[],[-509,-510,-511,-36,-512,141,280,74],[-509,-29,-510,-511,-217,111,281,-512,-7,282,141,280,-165,283,74,-513,-218,-514,-515,-219,-516,-517,-518,-519,-520,-42,-521]];validatorrules_0.amp_validator_ValidatorRules$globalAttrs=[-405,-10,-406,-407,-408,-409,-9,-410,-411,-412,-11,270,-413,-414,-415,-416,-153,271,-28,-417,272,273,-418,-172,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428,-429,-430,-431, +-432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,-444,-445,-446,-447,-448,-449,-450,-451,-452,-453,-454,-455,-456,274,-457,275,276,-458,-379,-459,-460,-461,-462,-463,-464,-465,-466,-467,-468,-469,-470,277,278,279,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500,-501,-502,-503,-504,-505,-506,-507,-508];validatorrules_0.amp_validator_ValidatorRules$ampLayoutAttrs=[-31,-403,-404,-2,-32,-179, +-195];validatorrules_0.internedStrings=["href","sizes","type","amp-app-banner data source","async","media","crossorigin","integrity","content","itemprop","property","nonce","(\x3c!--|(^|\\W)i-amphtml-|!important)","head > style[amp-boilerplate]","body ?{opacity: ?0}","noscript > style[amp-boilerplate]","body ?{opacity: ?1}","\\s*body{-webkit-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-moz-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-ms-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both}@-webkit-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}\\s*", +"\\s*body{visibility:hidden}\\s*","\\s*body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}\\s*","align","hreflang","download","border","name","[href]","datetime","dir","alt","ismap","height","width","referrerpolicy","sandbox","autoplay","controls","loop","playsinline","poster","preload","muted","[src]","[type]","[label]","[srclang]","externalresourcesrequired","transform","arabic-form","d","glyph-name","horiz-adv-x","orientation","unicode","vert-origin-x","vert-origin-y", +"vert-adv-y","dx","dy","format","glyphref","x","y","preserveaspectratio","xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type","markerunits","markerwidth","markerheight","orient","refx","refy","viewbox","pathlength","sketch:type","solid-color","solid-opacity","contentscripttype","contentstyletype","zoomandpan","viewtarget","cx","cy","r","rx","ry","x1","x2","y1","y2","points","lengthadjust","rotate","text-anchor","textlength","method","spacing","startoffset","clippathunits", +"filterres","filterunits","primitiveunits","g1","g2","k","u1","u2","gradientunits","gradienttransform","spreadmethod","maskcontentunits","maskunits","patternunits","patterncontentunits","patterntransform","fr","fx","fy","offset","stop-color","stop-opacity","in","values","in2","k1","k2","k3","k4","operator","edgemode","stddeviation","sortable","bgcolor","cellpadding","cellspacing","span","valign","colspan","headers","rowspan","abbr","scope","sorted","accept","accept-charset","autocomplete","enctype", +"novalidate","for","accesskey","autofocus","checked","disabled","inputmode","list","max","maxlength","min","minlength","multiple","pattern","placeholder","readonly","required","selectiondirection","size","spellcheck","step","tabindex","value","[accept]","[accesskey]","[autocomplete]","[checked]","[disabled]","[height]","[inputmode]","[max]","[maxlength]","[min]","[minlength]","[multiple]","[pattern]","[placeholder]","[readonly]","[required]","[selectiondirection]","[size]","[spellcheck]","[step]", +"[value]","[width]","amp-app-banner button[open-button]","[autofocus]","label","selected","[selected]","cols","rows","selectionend","selectionstart","wrap","[cols]","[rows]","[selectionend]","[selectionstart]","[wrap]","form","high","low","optimum","(.)","(\x3c!--)","attribution","[alt]","[attribution]","[srcset]","allow-ssr-img","amp-ad-exit configuration JSON","json","rtc-config","template","amp-animation extension .json script","overridable","arguments","[data-account]","[data-embed]","[data-player]", +"[data-player-id]","[data-playlist-id]","[data-video-id]","[slide]","max-font-size","min-font-size","font-style","font-variant","font-weight","on-error-add-class","on-error-remove-class","on-load-add-class","on-load-remove-class","timeline-event-prefix","allow","from","scrollable","credentials","items","max-items","single-item","[state]","data-update-time","data-tombstone","inline","target","amp-story-page","auto-advance-after","grid-area","animate-in-delay","animate-in-duration","animate-in-after", +"locale","[data-videoid]","(_blank|_self|_top)","(^|\\s)(canonical|components|import|manifest|serviceworker|stylesheet|subresource|)(\\s|$)","__amp_source_origin","https://cdn\\.materialdesignicons\\.com/([0-9]+\\.?)+/css/materialdesignicons\\.min\\.css|https://cloud\\.typography\\.com/[0-9]*/[0-9]*/css/fonts\\.css|https://fast\\.fonts\\.net/.*|https://fonts\\.googleapis\\.com/css\\?.*|https://fonts\\.googleapis\\.com/icon\\?.*|https://fonts\\.googleapis\\.com/earlyaccess/.*\\.css|https://maxcdn\\.bootstrapcdn\\.com/font-awesome/([0-9]+\\.?)+/css/font-awesome\\.min\\.css(\\?.*)?|https://use\\.typekit\\.net/[\\w\\p{L}\\p{N}_]+\\.css", +".*app-id=.*","(^|\\s)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\\s|$)","[0-9]*","[1AaIi]","(^|\\s)(components|dns-prefetch|import|manifest|preconnect|prefetch|preload|prerender|serviceworker|stylesheet|subresource|)(\\s|$)","(__amp_source_origin|(.|\\s){{|}}(.|\\s)|^{{.*[^}][^}]$|^[^{][^{].*}}$|^}}|{{$|{{#|{{/|{{\\^)","_blank","0|1","auto|yes|no","['src', 'srcdoc']","(^|\\s)data:image\\/svg\\+xml","(1.0|1.1)","(show-first-on-submit|show-all-on-submit|as-you-go|interact-and-submit)", +"(_blank|_top)","(show-first-on-submit|show-all-on-submit|as-you-go)","(__amp_source_origin|{{|}})","(as-you-go|interact-and-submit|show-all-on-submit|show-first-on-submit)","(as-you-go|show-all-on-submit|show-first-on-submit)","(^|\\s)(button|file|image|password|)(\\s|$)","['data-apester-media-id', 'data-apester-channel-token']","[0-9a-zA-Z]+","(auto|metadata|none|)","['data-outstream', 'data-playlist', 'data-video']","[0-9]+","slides|carousel","true|false","([0-9a-f]{3}){1,2}","[a-z0-9]+","[0-9a-z]{8}", +"data-media-id or data-playlist-id","\\d+","\\d{5,}","[^=/?:]+","api|static","album|audio|live|playlist|playlist-marked|video","['src', 'data-item']","(false|true)","^([0]*?\\.\\d*$|1$|0$)|([0]*?\\.\\d*|1|0)\\s{1}([0]*?\\.\\d*$|1$|0$)","^(\\d+$|\\d+px$|\\d+vh$)|((\\d+|\\d+px|\\d+vh)\\s{1}(\\d+$|\\d+px$|\\d+vh$))","[0-9a-z-]+","(comment|post)","focus|none|select","(left|right)","['data-trackid', 'data-playlistid']","[A-Za-z0-9_-]+","playlist|video","(fill|horizontal|vertical|thirds)","(start|end|center|stretch|space-around|space-between|space-evenly)", +"(start|end|center|stretch)","(drop|fade-in|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|pulse|rotate-in-left|rotate-in-right|twirl-in|whoosh-in-left|whoosh-in-right)","\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?(Z|[+-][0-1][0-9]:[0-5][0-9])","amp-web-push","(blocked|subscribed|unsubscribed)","(include|omit)","['data-live-channelid', 'data-videoid']","(captions|descriptions|chapters|metadata)","!important","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", +"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","(^|\\W)i-amphtml-","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", +"tap:.*","(badInput|customError|patternMismatch|rangeOverflow|rangeUnderflow|stepMismatch|tooLong|typeMismatch|valueMissing)","(none|metadata|auto|)","color","srclang","requiredextensions","requiredfeatures","systemlanguage","xml:lang","xml:space","xmlns","xmlns:xlink","result","alignment-baseline","baseline-shift","clip","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cursor","direction","display","dominant-baseline","enable-background", +"fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","glyph-orientation-horizontal","glyph-orientation-vertical","image-rendering","kerning","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","pointer-events","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-decoration", +"text-rendering","unicode-bidi","vector-effect","visibility","word-spacing","writing-mode","amplitude","exponent","intercept","slope","table","tablevalues","heights","layout","itemid","itemref","itemscope","itemtype","about","datatype","inlist","prefix","resource","rev","typeof","vocab","draggable","lang","title","translate","aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-controls","aria-current","aria-describedby","aria-disabled","aria-dropeffect","aria-expanded", +"aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","role","lightbox","amp-access","amp-access-behavior","amp-access-hide","amp-access-id","amp-access-loader","amp-access-loading", +"amp-access-off","amp-access-on","amp-access-show","amp-access-style","amp-access-template","i-amp-access-id","[aria-activedescendant]","[aria-atomic]","[aria-autocomplete]","[aria-busy]","[aria-checked]","[aria-controls]","[aria-describedby]","[aria-disabled]","[aria-dropeffect]","[aria-expanded]","[aria-flowto]","[aria-grabbed]","[aria-haspopup]","[aria-hidden]","[aria-invalid]","[aria-label]","[aria-labelledby]","[aria-level]","[aria-live]","[aria-multiline]","[aria-multiselectable]","[aria-orientation]", +"[aria-owns]","[aria-posinset]","[aria-pressed]","[aria-readonly]","[aria-relevant]","[aria-required]","[aria-selected]","[aria-setsize]","[aria-sort]","[aria-valuemax]","[aria-valuemin]","[aria-valuenow]","[aria-valuetext]","[class]","[hidden]","[text]","album","artist","artwork","controlslist","[album]","[artist]","[artwork]","[controls]","[controlslist]","[loop]","[poster]","[preload]","[title]"];return validatorrules_0};function sortAndUniquify(arrayValue){if(!(2>arrayValue.length)){goog$array$sort(arrayValue);for(var uniqIdx=0,i=1;iid?JSCompiler_StaticMethods_getNameByAttrSpecId$self.internedStrings_[-1-id]:JSCompiler_StaticMethods_getNameByAttrSpecId$self.attrSpecs_[id].name} function ParsedTagSpec(parsedAttrSpecs,shouldRecordTagspecValidated,tagSpec,id){this.ParsedTagSpec$spec_=tagSpec;this.ParsedTagSpec$id_=id;this.referencePoints_=new ParsedReferencePoints(tagSpec);this.isReferencePoint_="$REFERENCE_POINT"===tagSpec.tagName;this.attrsByName_=Object.create(null);this.mandatoryAttrIds_=[];this.mandatoryOneofs_=[];this.implicitAttrspecs_=[];this.containsUrl_=!1;null===tagSpec.ampLayout||this.isReferencePoint_||JSCompiler_StaticMethods_mergeAttrs(this,parsedAttrSpecs.ParsedAttrSpecs$ampLayoutAttrs, -parsedAttrSpecs);JSCompiler_StaticMethods_mergeAttrs(this,tagSpec.amp_validator_TagSpec$attrs,parsedAttrSpecs);shouldRecordTagspecValidated=$jscomp$makeIterator(tagSpec.amp_validator_TagSpec$attrLists);for(id=shouldRecordTagspecValidated.next();!id.done;id=shouldRecordTagspecValidated.next())JSCompiler_StaticMethods_mergeAttrs(this,parsedAttrSpecs.ParsedAttrSpecs$attrLists[id.value],parsedAttrSpecs);this.isReferencePoint_||JSCompiler_StaticMethods_mergeAttrs(this,parsedAttrSpecs.ParsedAttrSpecs$globalAttrs, -parsedAttrSpecs);sortAndUniquify(this.mandatoryOneofs_);null!==tagSpec.extensionSpec&&(this.ParsedTagSpec$spec_.specName=this.ParsedTagSpec$spec_.extensionSpec.name+" extension .js script",this.ParsedTagSpec$spec_.mandatoryParent="HEAD",this.ParsedTagSpec$spec_.extensionSpec.deprecatedAllowDuplicates?this.ParsedTagSpec$spec_.uniqueWarning=!0:this.ParsedTagSpec$spec_.unique=!0,this.ParsedTagSpec$spec_.amp_validator_TagSpec$cdata=new amp$validator$CdataSpec,this.ParsedTagSpec$spec_.amp_validator_TagSpec$cdata.whitespaceOnly= +parsedAttrSpecs);JSCompiler_StaticMethods_mergeAttrs(this,tagSpec.attrs,parsedAttrSpecs);shouldRecordTagspecValidated=$jscomp$makeIterator(tagSpec.attrLists);for(id=shouldRecordTagspecValidated.next();!id.done;id=shouldRecordTagspecValidated.next())JSCompiler_StaticMethods_mergeAttrs(this,parsedAttrSpecs.attrLists[id.value],parsedAttrSpecs);this.isReferencePoint_||JSCompiler_StaticMethods_mergeAttrs(this,parsedAttrSpecs.ParsedAttrSpecs$globalAttrs,parsedAttrSpecs);sortAndUniquify(this.mandatoryOneofs_); +null!==tagSpec.extensionSpec&&(parsedAttrSpecs=this.ParsedTagSpec$spec_.extensionSpec,null===this.ParsedTagSpec$spec_.specName&&(this.ParsedTagSpec$spec_.specName=parsedAttrSpecs.name+" extension .js script"),this.ParsedTagSpec$spec_.mandatoryParent="HEAD",this.ParsedTagSpec$spec_.extensionSpec.deprecatedAllowDuplicates?this.ParsedTagSpec$spec_.uniqueWarning=!0:this.ParsedTagSpec$spec_.unique=!0,this.ParsedTagSpec$spec_.cdata=new amp$validator$CdataSpec,this.ParsedTagSpec$spec_.cdata.whitespaceOnly= !0)} function JSCompiler_StaticMethods_mergeAttrs(JSCompiler_StaticMethods_mergeAttrs$self,attrs,parsedAttrSpecs){attrs=$jscomp$makeIterator(attrs);for(var $jscomp$key$attrId=attrs.next();!$jscomp$key$attrId.done;$jscomp$key$attrId=attrs.next()){$jscomp$key$attrId=$jscomp$key$attrId.value;var name=JSCompiler_StaticMethods_getNameByAttrSpecId(parsedAttrSpecs,$jscomp$key$attrId);if(!(name in JSCompiler_StaticMethods_mergeAttrs$self.attrsByName_||(JSCompiler_StaticMethods_mergeAttrs$self.attrsByName_[name]=$jscomp$key$attrId, -0>$jscomp$key$attrId))){name=JSCompiler_StaticMethods_getByAttrSpecId(parsedAttrSpecs,$jscomp$key$attrId).ParsedAttrSpec$spec_;name.amp_validator_AttrSpec$mandatory&&JSCompiler_StaticMethods_mergeAttrs$self.mandatoryAttrIds_.push($jscomp$key$attrId);null!==name.mandatoryOneof&&JSCompiler_StaticMethods_mergeAttrs$self.mandatoryOneofs_.push(name.mandatoryOneof);for(var $jscomp$iter$16=$jscomp$makeIterator(name.alternativeNames),$jscomp$key$altName=$jscomp$iter$16.next();!$jscomp$key$altName.done;$jscomp$key$altName= -$jscomp$iter$16.next())JSCompiler_StaticMethods_mergeAttrs$self.attrsByName_[$jscomp$key$altName.value]=$jscomp$key$attrId;name.implicit&&JSCompiler_StaticMethods_mergeAttrs$self.implicitAttrspecs_.push($jscomp$key$attrId);name.valueUrl&&(JSCompiler_StaticMethods_mergeAttrs$self.containsUrl_=!0)}}}ParsedTagSpec.prototype.id=function(){return this.ParsedTagSpec$id_};ParsedTagSpec.prototype.ParsedTagSpec_prototype$getSpec=function(){return this.ParsedTagSpec$spec_}; -ParsedTagSpec.prototype.cdataMatcher=function(lineCol){return null!==this.ParsedTagSpec$spec_.amp_validator_TagSpec$cdata?new CdataMatcher(this.ParsedTagSpec$spec_,lineCol):null};ParsedTagSpec.prototype.childTagMatcher=function(lineCol){return null!==this.ParsedTagSpec$spec_.childTags?new ChildTagMatcher(this.ParsedTagSpec$spec_,lineCol):null}; +0>$jscomp$key$attrId))){name=JSCompiler_StaticMethods_getByAttrSpecId(parsedAttrSpecs,$jscomp$key$attrId).ParsedAttrSpec$spec_;name.mandatory&&JSCompiler_StaticMethods_mergeAttrs$self.mandatoryAttrIds_.push($jscomp$key$attrId);null!==name.mandatoryOneof&&JSCompiler_StaticMethods_mergeAttrs$self.mandatoryOneofs_.push(name.mandatoryOneof);for(var $jscomp$iter$13=$jscomp$makeIterator(name.alternativeNames),$jscomp$key$altName=$jscomp$iter$13.next();!$jscomp$key$altName.done;$jscomp$key$altName=$jscomp$iter$13.next())JSCompiler_StaticMethods_mergeAttrs$self.attrsByName_[$jscomp$key$altName.value]= +$jscomp$key$attrId;name.implicit&&JSCompiler_StaticMethods_mergeAttrs$self.implicitAttrspecs_.push($jscomp$key$attrId);name.valueUrl&&(JSCompiler_StaticMethods_mergeAttrs$self.containsUrl_=!0)}}}ParsedTagSpec.prototype.id=function(){return this.ParsedTagSpec$id_};ParsedTagSpec.prototype.ParsedTagSpec_prototype$getSpec=function(){return this.ParsedTagSpec$spec_}; +ParsedTagSpec.prototype.cdataMatcher=function(lineCol){return null!==this.ParsedTagSpec$spec_.cdata?new CdataMatcher(this.ParsedTagSpec$spec_,lineCol):null};ParsedTagSpec.prototype.childTagMatcher=function(lineCol){return null!==this.ParsedTagSpec$spec_.childTags?new ChildTagMatcher(this.ParsedTagSpec$spec_,lineCol):null}; ParsedTagSpec.prototype.referencePointMatcher=function(rules,lineCol){return 0===this.referencePoints_.parentTagSpec_.referencePoints.length?null:new ReferencePointMatcher(rules,this.referencePoints_,lineCol)};ParsedTagSpec.prototype.requires=function(){return this.ParsedTagSpec$spec_.requires}; function JSCompiler_StaticMethods_mergeFrom(JSCompiler_StaticMethods_mergeFrom$self,other){goog$asserts$assert(null!==JSCompiler_StaticMethods_mergeFrom$self.status);goog$asserts$assert(null!==other.status);"FAIL"===other.status&&(JSCompiler_StaticMethods_mergeFrom$self.status="FAIL");Array.prototype.push.apply(JSCompiler_StaticMethods_mergeFrom$self.errors,other.errors)} function JSCompiler_StaticMethods_copyFrom(JSCompiler_StaticMethods_copyFrom$self,other){goog$asserts$assert(null!==JSCompiler_StaticMethods_copyFrom$self.status);goog$asserts$assert(null!==other.status);JSCompiler_StaticMethods_copyFrom$self.status=other.status;var newErrors=[];Array.prototype.push.apply(newErrors,other.errors);JSCompiler_StaticMethods_copyFrom$self.errors=newErrors} @@ -765,25 +661,24 @@ function ReferencePointMatcher(parsedValidatorRules,parsedReferencePoints,lineCo function TagStack(){this.TagStack$stack_=[];this.TagStack$stack_.push(JSCompiler_StaticMethods_createNewTagStackEntry("$ROOT"));this.allowedDescendantsList_=[]} function JSCompiler_StaticMethods_createNewTagStackEntry(tagName){return{tagName:tagName,tagSpec:null,referencePoint:null,hasDescendantConstraintLists:!1,numChildren:0,onlyChildTagName:"",onlyChildErrorLineCol:null,lastChildSiblingCount:0,lastChildTagName:"",lastChildUrl:"",lastChildErrorLineCol:null,cdataMatcher:null,childTagMatcher:null,referencePointMatcher:null}} function JSCompiler_StaticMethods_updateStackEntryFromTagResult_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self,result,parsedRules,lineCol){if(null!==result.bestMatchTagSpec){var parsedTagSpec=result.bestMatchTagSpec,matcher=parsedTagSpec.referencePointMatcher(parsedRules,lineCol);null!==matcher&&(JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).referencePointMatcher=matcher);if("PASS"===result.validationResult.status&&(result=parsedTagSpec.childTagMatcher(lineCol), -null!==result&&(JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).childTagMatcher=result),lineCol=parsedTagSpec.cdataMatcher(lineCol),null!==lineCol&&(JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).cdataMatcher=lineCol),null!==parsedTagSpec.ParsedTagSpec$spec_.amp_validator_TagSpec$descendantTagList)){lineCol=[];parsedRules=$jscomp$makeIterator(parsedRules.ParsedValidatorRules$rules_.amp_validator_ValidatorRules$descendantTagList); -for(result=parsedRules.next();!result.done;result=parsedRules.next())if(result=result.value,parsedTagSpec.ParsedTagSpec$spec_.amp_validator_TagSpec$descendantTagList===result.name)for(result=$jscomp$makeIterator(result.allowedTags),matcher=result.next();!matcher.done;matcher=result.next())lineCol.push(matcher.value);JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self.allowedDescendantsList_.push({tagName:getTagSpecName(parsedTagSpec.ParsedTagSpec$spec_),allowedTags:lineCol});JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).hasDescendantConstraintLists= +null!==result&&(JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).childTagMatcher=result),lineCol=parsedTagSpec.cdataMatcher(lineCol),null!==lineCol&&(JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).cdataMatcher=lineCol),null!==parsedTagSpec.ParsedTagSpec$spec_.descendantTagList)){lineCol=[];parsedRules=$jscomp$makeIterator(parsedRules.ParsedValidatorRules$rules_.descendantTagList);for(result=parsedRules.next();!result.done;result= +parsedRules.next())if(result=result.value,parsedTagSpec.ParsedTagSpec$spec_.descendantTagList===result.name)for(result=$jscomp$makeIterator(result.allowedTags),matcher=result.next();!matcher.done;matcher=result.next())lineCol.push(matcher.value);JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self.allowedDescendantsList_.push({tagName:getTagSpecName(parsedTagSpec.ParsedTagSpec$spec_),allowedTags:lineCol});JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_updateStackEntryFromTagResult_$self).hasDescendantConstraintLists= !0}}}function JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_back_$self){goog$asserts$assert(0attrId)attrspecsValidated[attrId]=0;else{var parsedAttrSpec=JSCompiler_StaticMethods_getByAttrSpecId(context$jscomp$3.Context$rules_.ParsedValidatorRules$parsedAttrSpecs_,attrId), -attrSpec=parsedAttrSpec.ParsedAttrSpec$spec_;null!==attrSpec.amp_validator_AttrSpec$deprecation&&JSCompiler_StaticMethods_addWarning("DEPRECATED_ATTR",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$3),[attr$jscomp$0.name,getTagSpecName(spec$jscomp$1),attrSpec.amp_validator_AttrSpec$deprecation],attrSpec.amp_validator_AttrSpec$deprecationUrl,resultForAttempt);if(!hasTemplateAncestor||!attrValueHasTemplateSyntax(attr$jscomp$0.value)){var context=context$jscomp$3,attr$jscomp$1= -attr$jscomp$0,result=resultForAttempt,spec$jscomp$3=parsedAttrSpec.ParsedAttrSpec$spec_;if(null!==spec$jscomp$3.value)attr$jscomp$1.value!==spec$jscomp$3.value&&JSCompiler_StaticMethods_addError("INVALID_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[attr$jscomp$1.name,getTagSpecName(spec$jscomp$1),attr$jscomp$1.value],getTagSpecUrl(spec$jscomp$1),result);else if(null!==spec$jscomp$3.valueCasei)attr$jscomp$1.value.toLowerCase()!==spec$jscomp$3.valueCasei&&JSCompiler_StaticMethods_addError("INVALID_ATTR_VALUE", -JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[attr$jscomp$1.name,getTagSpecName(spec$jscomp$1),attr$jscomp$1.value],getTagSpecUrl(spec$jscomp$1),result);else if(null!==spec$jscomp$3.valueRegex||null!==spec$jscomp$3.valueRegexCasei)(null!==spec$jscomp$3.valueRegex?JSCompiler_StaticMethods_getFullMatchRegex(context.Context$rules_,spec$jscomp$3.valueRegex):JSCompiler_StaticMethods_getFullMatchCaseiRegex(context.Context$rules_,spec$jscomp$3.valueRegexCasei)).test(attr$jscomp$1.value)|| -JSCompiler_StaticMethods_addError("INVALID_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[attr$jscomp$1.name,getTagSpecName(spec$jscomp$1),attr$jscomp$1.value],getTagSpecUrl(spec$jscomp$1),result);else if(null!==spec$jscomp$3.valueUrl)a:{var context$jscomp$0=context,attr$jscomp$2=attr$jscomp$1,result$jscomp$0=result,maybeUris=[];if("srcset"!==attr$jscomp$2.name)maybeUris.push(attr$jscomp$2.value);else{if(""===attr$jscomp$2.value){JSCompiler_StaticMethods_addError("MISSING_URL", -JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$0),[attr$jscomp$2.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$0);break a}var parseResult=parse_srcset$parseSrcset(attr$jscomp$2.value);if(!parseResult.success){"DUPLICATE_DIMENSION"===parseResult.parse_srcset_SrcsetParsingResult$errorCode?JSCompiler_StaticMethods_addError(parseResult.parse_srcset_SrcsetParsingResult$errorCode,JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$0), -[attr$jscomp$2.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$0):JSCompiler_StaticMethods_addError(parseResult.parse_srcset_SrcsetParsingResult$errorCode,JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$0),[attr$jscomp$2.name,getTagSpecName(spec$jscomp$1),attr$jscomp$2.value],getTagSpecUrl(spec$jscomp$1),result$jscomp$0);break a}if(null!==parseResult.srcsetImages)for(var $jscomp$inline_922=$jscomp$makeIterator(parseResult.srcsetImages),$jscomp$inline_923= -$jscomp$inline_922.next();!$jscomp$inline_923.done;$jscomp$inline_923=$jscomp$inline_922.next())maybeUris.push($jscomp$inline_923.value.url)}if(0===maybeUris.length)JSCompiler_StaticMethods_addError("MISSING_URL",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$0),[attr$jscomp$2.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$0);else{sortAndUniquify(maybeUris);for(var adapter=new UrlErrorInAttrAdapter(attr$jscomp$2.name),$jscomp$inline_925=$jscomp$makeIterator(maybeUris), -$jscomp$inline_926=$jscomp$inline_925.next();!$jscomp$inline_926.done;$jscomp$inline_926=$jscomp$inline_925.next()){var str=$jscomp$inline_926.value;var unescapedMaybeUri=-1!=str.indexOf("&")?"document"in goog$global?goog$string$unescapeEntitiesUsingDom_(str):goog$string$unescapePureXmlEntities_(str):str;null===parsedAttrSpec.valueUrlSpec_&&(parsedAttrSpec.valueUrlSpec_=new ParsedUrlSpec(parsedAttrSpec.ParsedAttrSpec$spec_.valueUrl));validateUrlAndProtocol(parsedAttrSpec.valueUrlSpec_,adapter,context$jscomp$0, -unescapedMaybeUri,spec$jscomp$1,result$jscomp$0);if("FAIL"===result$jscomp$0.status)break}}}else{if(null===parsedAttrSpec.ParsedAttrSpec$spec_.valueProperties)var valueProperties=null;else null===parsedAttrSpec.valueProperties_&&(parsedAttrSpec.valueProperties_=new ParsedValueProperties(parsedAttrSpec.ParsedAttrSpec$spec_.valueProperties)),valueProperties=parsedAttrSpec.valueProperties_;if(null!==valueProperties){for(var parsedValueProperties=valueProperties,context$jscomp$1=context,attr$jscomp$3= -attr$jscomp$1,result$jscomp$1=result,segments=attr$jscomp$3.value.split(/[,;]/),properties=Object.create(null),$jscomp$inline_938=$jscomp$makeIterator(segments),$jscomp$inline_939=$jscomp$inline_938.next();!$jscomp$inline_939.done;$jscomp$inline_939=$jscomp$inline_938.next()){var keyValue=$jscomp$inline_939.value.split("=");2>keyValue.length||(properties[keyValue[0].trim().toLowerCase()]=keyValue[1])}for(var names$jscomp$0=Object.keys(properties).sort(),$jscomp$inline_942=$jscomp$makeIterator(names$jscomp$0), -$jscomp$inline_943=$jscomp$inline_942.next();!$jscomp$inline_943.done;$jscomp$inline_943=$jscomp$inline_942.next()){var name=$jscomp$inline_943.value,value=properties[name],valuePropertyByName=parsedValueProperties.valuePropertyByName_;if(name in valuePropertyByName){var propertySpec=valuePropertyByName[name];null!==propertySpec.value?propertySpec.value!==value.toLowerCase()&&JSCompiler_StaticMethods_addError("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$1), -[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1),value],getTagSpecUrl(spec$jscomp$1),result$jscomp$1):null!==propertySpec.valueDouble&&parseFloat(value)!==propertySpec.valueDouble&&JSCompiler_StaticMethods_addError("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$1),[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1),value],getTagSpecUrl(spec$jscomp$1),result$jscomp$1)}else JSCompiler_StaticMethods_addError("DISALLOWED_PROPERTY_IN_ATTR_VALUE", -JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$1),[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$1)}for(var left=parsedValueProperties.mandatoryValuePropertyNames_,right=names$jscomp$0,l=0,r=0,diff=[];l=right.length?(diff.push(left[l]),l++):right[r]>left[l]?(diff.push(left[l]),l++):(right[r]attrId)attrspecsValidated[attrId]=0;else{var parsedAttrSpec=JSCompiler_StaticMethods_getByAttrSpecId(context$jscomp$4.Context$rules_.ParsedValidatorRules$parsedAttrSpecs_,attrId), +attrSpec=parsedAttrSpec.ParsedAttrSpec$spec_;null!==attrSpec.deprecation&&JSCompiler_StaticMethods_addWarning("DEPRECATED_ATTR",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$4),[attr$jscomp$0.name,getTagSpecName(spec$jscomp$1),attrSpec.deprecation],attrSpec.deprecationUrl,resultForAttempt);if(0keyValue.length|| +(properties[keyValue[0].trim().toLowerCase()]=keyValue[1])}for(var names$jscomp$0=Object.keys(properties).sort(),$jscomp$inline_947=$jscomp$makeIterator(names$jscomp$0),$jscomp$inline_948=$jscomp$inline_947.next();!$jscomp$inline_948.done;$jscomp$inline_948=$jscomp$inline_947.next()){var name=$jscomp$inline_948.value,value=properties[name],valuePropertyByName=parsedValueProperties.valuePropertyByName_;if(name in valuePropertyByName){var propertySpec=valuePropertyByName[name];null!==propertySpec.value? +propertySpec.value!==value.toLowerCase()&&JSCompiler_StaticMethods_addError("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$2),[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1),value],getTagSpecUrl(spec$jscomp$1),result$jscomp$1):null!==propertySpec.valueDouble&&parseFloat(value)!==propertySpec.valueDouble&&JSCompiler_StaticMethods_addError("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$2), +[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1),value],getTagSpecUrl(spec$jscomp$1),result$jscomp$1)}else JSCompiler_StaticMethods_addError("DISALLOWED_PROPERTY_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$2),[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$1)}for(var left=parsedValueProperties.mandatoryValuePropertyNames_,right=names$jscomp$0,l=0,r=0,diff=[];l=right.length?(diff.push(left[l]), +l++):right[r]>left[l]?(diff.push(left[l]),l++):(right[r]JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self, -resultB.errors))return!0;JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultB.errors);JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultA.errors);return!1} -function JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self,context,validationResult){for(var $jscomp$inline_501=$jscomp$makeIterator(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.mandatoryTagSpecs_),$jscomp$key$tagSpecId=$jscomp$inline_501.next();!$jscomp$key$tagSpecId.done;$jscomp$key$tagSpecId=$jscomp$inline_501.next())$jscomp$key$tagSpecId=$jscomp$key$tagSpecId.value,context.tagspecsValidated_.hasOwnProperty($jscomp$key$tagSpecId)|| -($jscomp$key$tagSpecId=JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self,$jscomp$key$tagSpecId).ParsedTagSpec$spec_,JSCompiler_StaticMethods_addError("MANDATORY_TAG_MISSING",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[getTagSpecName($jscomp$key$tagSpecId)],getTagSpecUrl($jscomp$key$tagSpecId),validationResult));$jscomp$inline_501=Object.keys(context.tagspecsValidated_).map(Number);goog$array$sort($jscomp$inline_501);$jscomp$inline_501= -$jscomp$makeIterator($jscomp$inline_501);for($jscomp$key$tagSpecId=$jscomp$inline_501.next();!$jscomp$key$tagSpecId.done;$jscomp$key$tagSpecId=$jscomp$inline_501.next()){$jscomp$key$tagSpecId=JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self,$jscomp$key$tagSpecId.value);for(var $jscomp$inline_513=$jscomp$makeIterator($jscomp$key$tagSpecId.requires()),$jscomp$key$condition=$jscomp$inline_513.next();!$jscomp$key$condition.done;$jscomp$key$condition= -$jscomp$inline_513.next())$jscomp$key$condition=$jscomp$key$condition.value,context.conditionsSatisfied_.hasOwnProperty($jscomp$key$condition)||JSCompiler_StaticMethods_addError("TAG_REQUIRED_BY_MISSING",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[context.Context$rules_.ParsedValidatorRules$rules_.internedStrings[-1-$jscomp$key$condition],getTagSpecName($jscomp$key$tagSpecId.ParsedTagSpec$spec_)],getTagSpecUrl($jscomp$key$tagSpecId),validationResult);$jscomp$inline_513=$jscomp$makeIterator($jscomp$key$tagSpecId.ParsedTagSpec$spec_.alsoRequiresTagWarning); -for($jscomp$key$condition=$jscomp$inline_513.next();!$jscomp$key$condition.done;$jscomp$key$condition=$jscomp$inline_513.next())$jscomp$key$condition=$jscomp$key$condition.value,context.tagspecsValidated_.hasOwnProperty($jscomp$key$condition)||($jscomp$key$condition=JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self,$jscomp$key$condition),JSCompiler_StaticMethods_addWarning("WARNING_TAG_REQUIRED_BY_MISSING",JSCompiler_StaticMethods_Context_prototype$getLineCol(context), -[getTagSpecName($jscomp$key$condition.ParsedTagSpec$spec_),getTagSpecName($jscomp$key$tagSpecId.ParsedTagSpec$spec_)],getTagSpecUrl($jscomp$key$tagSpecId),validationResult))}$jscomp$inline_501=context.extensions_;$jscomp$key$tagSpecId=[];$jscomp$inline_513=$jscomp$makeIterator($jscomp$inline_501.extensionsUnusedRequired_);for($jscomp$key$condition=$jscomp$inline_513.next();!$jscomp$key$condition.done;$jscomp$key$condition=$jscomp$inline_513.next())$jscomp$key$condition=$jscomp$key$condition.value, -$jscomp$key$condition in $jscomp$inline_501.extensionsUsed_||$jscomp$key$tagSpecId.push($jscomp$key$condition);$jscomp$key$tagSpecId.sort();$jscomp$inline_501=$jscomp$makeIterator($jscomp$key$tagSpecId);for($jscomp$key$tagSpecId=$jscomp$inline_501.next();!$jscomp$key$tagSpecId.done;$jscomp$key$tagSpecId=$jscomp$inline_501.next())JSCompiler_StaticMethods_addError("EXTENSION_UNUSED",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[$jscomp$key$tagSpecId.value],"",validationResult);$jscomp$key$tagSpecId= -context.mandatoryAlternativesSatisfied_;$jscomp$inline_513=[];$jscomp$inline_501=Object.create(null);$jscomp$key$condition=$jscomp$makeIterator(JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.ParsedValidatorRules$rules_.tags);for(var $jscomp$inline_531=$jscomp$key$condition.next();!$jscomp$inline_531.done;$jscomp$inline_531=$jscomp$key$condition.next())if($jscomp$inline_531=$jscomp$inline_531.value,null!==$jscomp$inline_531.mandatoryAlternatives&&JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.isTagSpecCorrectHtmlFormat_($jscomp$inline_531)){var alternative= -$jscomp$inline_531.mandatoryAlternatives;-1===$jscomp$key$tagSpecId.indexOf(alternative)&&(alternative=context.Context$rules_.ParsedValidatorRules$rules_.internedStrings[-1-alternative],$jscomp$inline_513.push(alternative),$jscomp$inline_501[alternative]=getTagSpecUrl($jscomp$inline_531))}sortAndUniquify($jscomp$inline_513);JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self=$jscomp$makeIterator($jscomp$inline_513);for($jscomp$key$tagSpecId=JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.next();!$jscomp$key$tagSpecId.done;$jscomp$key$tagSpecId= -JSCompiler_StaticMethods_maybeEmitGlobalTagValidationErrors$self.next())$jscomp$key$tagSpecId=$jscomp$key$tagSpecId.value,JSCompiler_StaticMethods_addError("MANDATORY_TAG_MISSING",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[$jscomp$key$tagSpecId],$jscomp$inline_501[$jscomp$key$tagSpecId],validationResult)} -function JSCompiler_StaticMethods_getByTagSpecId(JSCompiler_StaticMethods_getByTagSpecId$self,id){var parsed=JSCompiler_StaticMethods_getByTagSpecId$self.parsedTagSpecById_[id];if(void 0!==parsed)return parsed;parsed=JSCompiler_StaticMethods_getByTagSpecId$self.ParsedValidatorRules$rules_.tags[id];goog$asserts$assert(void 0!==parsed);parsed=new ParsedTagSpec(JSCompiler_StaticMethods_getByTagSpecId$self.ParsedValidatorRules$parsedAttrSpecs_,parsed.amp_validator_TagSpec$mandatory||parsed.unique||0< -parsed.requires.length||JSCompiler_StaticMethods_getByTagSpecId$self.tagSpecIdsToTrack_.hasOwnProperty(id)||parsed.uniqueWarning,parsed,id);return JSCompiler_StaticMethods_getByTagSpecId$self.parsedTagSpecById_[id]=parsed} +function JSCompiler_StaticMethods_betterValidationResultThan(JSCompiler_StaticMethods_betterValidationResultThan$self,resultA,resultB){return resultA.status!==resultB.status?JSCompiler_StaticMethods_betterValidationStatusThan_(resultA.status,resultB.status):JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultA.errors)>JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultB.errors)?!0:JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self, +resultB.errors)>JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultA.errors)?!1:resultA.errors.lengthcdataSpec.maxBytes){JSCompiler_StaticMethods_addError("STYLESHEET_TOO_LONG",JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[getTagSpecName(matcher.tagSpec_),JSCompiler_inline_result.toString(),cdataSpec.maxBytes.toString()],cdataSpec.maxBytesSpecUrl,validationResult);break a}}if(null!==matcher.tagSpec_.amp_validator_TagSpec$cdata.cdataRegex){if(!JSCompiler_StaticMethods_getFullMatchRegex(context.Context$rules_,matcher.tagSpec_.amp_validator_TagSpec$cdata.cdataRegex).test(text)){JSCompiler_StaticMethods_addError("MANDATORY_CDATA_MISSING_OR_INCORRECT", -JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[getTagSpecName(matcher.tagSpec_)],getTagSpecUrl(matcher.tagSpec_),validationResult);break a}}else if(null!==cdataSpec.amp_validator_CdataSpec$cssSpec){JSCompiler_inline_result=cdataSpec.amp_validator_CdataSpec$cssSpec;for(var cssErrors=[],tokenList=(new Tokenizer(text,matcher.CdataMatcher$lineCol_.LineCol$line_,matcher.CdataMatcher$lineCol_.LineCol$col_,cssErrors)).tokens_,ampAtRuleParsingSpec=Object.create(null),$jscomp$inline_824=$jscomp$makeIterator(JSCompiler_inline_result.atRuleSpec), -$jscomp$key$atRuleSpec=$jscomp$inline_824.next();!$jscomp$key$atRuleSpec.done;$jscomp$key$atRuleSpec=$jscomp$inline_824.next())$jscomp$key$atRuleSpec=$jscomp$key$atRuleSpec.value,"PARSE_AS_ERROR"===$jscomp$key$atRuleSpec.type||"PARSE_AS_IGNORE"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_IGNORE":"PARSE_AS_RULES"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_RULES":"PARSE_AS_DECLARATIONS"===$jscomp$key$atRuleSpec.type? -ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_DECLARATIONS":goog$asserts$fail("Unrecognized atRuleSpec type: "+$jscomp$key$atRuleSpec.type);$jscomp$key$atRuleSpec="PARSE_AS_IGNORE";0cdataSpec.maxBytes){JSCompiler_StaticMethods_addError("STYLESHEET_TOO_LONG", +JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[getTagSpecName(matcher.tagSpec_),JSCompiler_inline_result.toString(),cdataSpec.maxBytes.toString()],cdataSpec.maxBytesSpecUrl,validationResult);break a}}if(null!==matcher.tagSpec_.cdata.cdataRegex){if(!JSCompiler_StaticMethods_getFullMatchRegex(context.Context$rules_,matcher.tagSpec_.cdata.cdataRegex).test(text)){JSCompiler_StaticMethods_addError("MANDATORY_CDATA_MISSING_OR_INCORRECT",JSCompiler_StaticMethods_Context_prototype$getLineCol(context), +[getTagSpecName(matcher.tagSpec_)],getTagSpecUrl(matcher.tagSpec_),validationResult);break a}}else if(null!==cdataSpec.cssSpec){JSCompiler_inline_result=cdataSpec.cssSpec;for(var cssErrors=[],tokenList=(new Tokenizer(text,matcher.CdataMatcher$lineCol_.LineCol$line_,matcher.CdataMatcher$lineCol_.LineCol$col_,cssErrors)).tokens_,ampAtRuleParsingSpec=Object.create(null),$jscomp$inline_829=$jscomp$makeIterator(JSCompiler_inline_result.atRuleSpec),$jscomp$key$atRuleSpec=$jscomp$inline_829.next();!$jscomp$key$atRuleSpec.done;$jscomp$key$atRuleSpec= +$jscomp$inline_829.next())$jscomp$key$atRuleSpec=$jscomp$key$atRuleSpec.value,"PARSE_AS_ERROR"===$jscomp$key$atRuleSpec.type||"PARSE_AS_IGNORE"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_IGNORE":"PARSE_AS_RULES"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_RULES":"PARSE_AS_DECLARATIONS"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_DECLARATIONS":goog$asserts$fail("Unrecognized atRuleSpec type: "+ +$jscomp$key$atRuleSpec.type);$jscomp$key$atRuleSpec="PARSE_AS_IGNORE";0tagName&&(tagName= -inputDocContents.length);eflags&4?opt_htmlFormat.amp_htmlparser_HtmlSaxHandler_prototype$cdata&&opt_htmlFormat.amp_htmlparser_HtmlSaxHandler_prototype$cdata(inputDocContents.substring(0,tagName)):opt_htmlFormat.rcdata&&inputDocContents.substring(0,tagName).replace(amp$htmlparser$HtmlParser$LOOSE_AMP_RE_,"&$1").replace(amp$htmlparser$HtmlParser$LT_RE,"<").replace(amp$htmlparser$HtmlParser$GT_RE,">");if(locator){var eflags=locator;var openTag=inputDocContents.substring(0,tagName);eflags.previousPos_= -eflags.amp_htmlparser_HtmlParser_DocLocatorImpl$pos_;eflags.amp_htmlparser_HtmlParser_DocLocatorImpl$pos_+=openTag.length}inputDocContents=inputDocContents.substring(tagName)}tagName=eflags=openTag=void 0;attribs.length=0;locator&&JSCompiler_StaticMethods_snapshotPos(locator);inTag=!1}}else if(m[1])JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,m[0]);else if(m[3])openTag=!m[2],locator&&JSCompiler_StaticMethods_snapshotPos(locator),inTag=!0,tagName=amp$htmlparser$toUpperCase(m[3]), -eflags=amp$htmlparser$HtmlParser$Elements.hasOwnProperty(tagName)?amp$htmlparser$HtmlParser$Elements[tagName]:64;else if(m[4])locator&&JSCompiler_StaticMethods_snapshotPos(locator),JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,m[4]);else if(m[5])switch(m[5]){case "<":JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,"<");break;case ">":JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,">");break;default:JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack, -"&")}}for(!inTag&&locator&&JSCompiler_StaticMethods_snapshotPos(locator);0":JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,">");break;default:JSCompiler_StaticMethods_TagNameStack_prototype$pcdata(tagStack,"&")}}for(!inTag&&locator&&JSCompiler_StaticMethods_snapshotPos(locator);0{{{canonical_parsed_return.status}}} {{canonical_parsed_return.result}}
- {{{canonical_parsed_return.amphtml_url}}} + {{{canonical_parsed_return.amphtml_urls}}} From 7a256d5a374e630a0f91002aa27af3b2fec6540b Mon Sep 17 00:00:00 2001 From: Jeffrey Jose Date: Tue, 13 Mar 2018 10:32:06 -0700 Subject: [PATCH 07/13] Adding Bing Ads --- readiness-tool/icons/Bing Ads.png | Bin 0 -> 1429 bytes readiness-tool/vendors.json | 8 +++++++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 readiness-tool/icons/Bing Ads.png diff --git a/readiness-tool/icons/Bing Ads.png b/readiness-tool/icons/Bing Ads.png new file mode 100644 index 0000000000000000000000000000000000000000..d0eb5855acd1043363646dc85e948e970b55eb79 GIT binary patch literal 1429 zcmYjQ4NOy46uwA128NyN2)AZL|eGk#T|o0K!ADieWaI>ECp)NkX$96;Vboq zON0A|b4V83SRm6wCt39&WArpZANX|3v`ZKv9fP9;Wflx6Koz(` z_(lVG$@n?a?ih7^*z=3~Dg&nF2^#N?d^%ScYsc3{(7p*9`wd zm};x22(7>SMY**o>n^m>6^y!dKt%HH<&_Ih5iQ^p_d*g0g7$UT2&jFs4o#v-nIv1@dA zOT@N*>kS!SwBmN^4>>PxT5@V~@cZhO9^05-x_P`SZNSyv|4vyahf_Br*}q*U${zJ8 zQ{rwqTn9=6Zz*1W;JB~q4z^@jbhrHj)6WcsnO{{^(xsb{_vnLH0{<^O;F+sclGXk<<}s`?HJMu{6&^F zr#347Qrq&D(tvQwk_V0p#(*&0(sn+2c4nAo3}l~Yl0Vh;wKJadH`dydQkd1wnYkE~ z&gWc6ZWVZ$Xw?y`;bz8ox#ef)Iqlo=e_5p;=|p#Cw|RY<+^Xr!E{AzT_ds&t7(CexZ@pxK3C0q8+zR} z7f#e(JL}jb>l?QJuAM0#G^duWF%_CBOSAT@>JE-n33fGB*c1K9bJnS~uU)xv|HG5@ z{*LL7d6$=`C$8N1?ZqhX=#B51Pt{L4{~PT6N}7" ] + }, + "Bing Ads": { + "category": "Ads", + "regex": [ + "" + ] } } -} \ No newline at end of file +} From d98d214e65f8de209d8210c7d9fd5e44da1d7fe1 Mon Sep 17 00:00:00 2001 From: Jeffrey Jose Date: Tue, 20 Mar 2018 12:52:33 -0700 Subject: [PATCH 08/13] adding Branch.png and version bump --- readiness-tool/icons/Branch.png | Bin 0 -> 1491 bytes readiness-tool/manifest.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 readiness-tool/icons/Branch.png diff --git a/readiness-tool/icons/Branch.png b/readiness-tool/icons/Branch.png new file mode 100644 index 0000000000000000000000000000000000000000..13101764ecf735892b203397c2165882cbc9b61b GIT binary patch literal 1491 zcmV;^1uXiBP)#5Jeyy0ir7615FX3k@`^bfiDFWBxr!9AE2#-R8>`wTZ!_FQV`1{M0h>BjwvqC z5CIK&iZo&!yq?{?rysmyjqQz^UGX^5Nay_L+;jeO&b{Z3(1v)P*8^-7kwM^W;DD+= zSFhI}+`D)0C#}SiR+Ia_zZQ4_$4$Ha>q(q_9_H8~!na;V!^%-r%@vEqf1PeTyHx_f z6Nr^gZ~8Tf^DmeM-8EM-x$PHAv>N^fxaM?&S*>LDeZLb}nOJh}oa6wBrQIaXJs%Ot zv=Xx=0znW=0Uw%A4`YtbZM8Xmg!!`kpc7&!tjnFSM}<0Wz7)cU1LP!1@Rik)0y4 zwNNOG0pxNyyId~+0r*jqJPJG#1i{bSA^?!hW|tXbK8|c-%+gY+bTG0#&)Y5{cjLHp zTz(@??*NEU{pSeNyN1zP6%pCg&MBDr1l7*C?KsZjNFN#+O6=di{|=oZyu-3kyH&VN1E0E1*&r#J| zR5i=Y=KKhFAqavzGd-Ixb1I;!DS&~2f%9s$+AnGJJq%u@y(M+*wovXVqGql^G;q5xzY_ zwe$w4mclT+Ts+U)ARaf?!;NO7O@@7(NCCq`bnzq6aa#BI=wod&)1^3p66XB zBF{9bOeAFyd0bT&0k;C*Xy6}+$dh3hJ~}==e$p0^tpLfPjkuZb&91hVET!{~EtDVJ zggJK5FPF=M!1J*Lb6OCS<07)%ah%`o*|X<(1N&)TUth|yEN5(N>_ptz2D*U-qZL4G zo5Zpem}3VKkxTy%fy1i0EtyO{zI*rX^88riYlNe;{Nyqt(!A|fa2^?DFZ!HB@Uz{`~v|Kgg@{)_8h z2FVoWzz0n2d{CDLg6LgLSPWs0^FynKTaePJ)@(eSG%s;4crfW z)`;IRFF7KzIBri)POb))FIsm!j`v-#9VC?|dF^f3-&_f>uD`#(dv*{7K~M#DHJ&-r z*vX_W)702)@9e)URiefy??cbWzHA_>$i%UTf| zRHr3v{|_`FV5d^4Lrp!u3<4supaoM?Q>VJ1zIXyO8NFc`E^g-dWf55Lweex}wGeO| t=PM;J|2F(eD Date: Tue, 27 Mar 2018 14:43:48 -0700 Subject: [PATCH 09/13] Version bump + ignore all google.com domains --- readiness-tool/manifest.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/readiness-tool/manifest.json b/readiness-tool/manifest.json index c0f1485..63b2e54 100644 --- a/readiness-tool/manifest.json +++ b/readiness-tool/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "AMP Readiness Tool", "description": "See at a glance the various third party vendors on the page and whether they have AMP support.", - "version": "2.10", + "version": "2.11", "options_page": "options.html", "icons": { "16": "amp-readiness.png", @@ -29,7 +29,8 @@ "all_frames": false, "run_at": "document_end", "exclude_globs": [ - "*.corp.google.com/*" + "*.corp.google.com/*", + "*.google.com/*" ] } ], From 79bf8ba3f7355b0410436f300cb10e1d50fa014b Mon Sep 17 00:00:00 2001 From: Pieter Greyling Date: Mon, 30 Apr 2018 14:12:18 +0100 Subject: [PATCH 10/13] Applied fix for urls that contain accented characters to /api routes. See PR: https://github.com/ampproject/ampbench/pull/44# --- ampbench_routes.js | 130 ++++--- validator/validator.js | 852 +++++++++++++++++++++-------------------- 2 files changed, 514 insertions(+), 468 deletions(-) diff --git a/ampbench_routes.js b/ampbench_routes.js index 2921210..c155e6d 100644 --- a/ampbench_routes.js +++ b/ampbench_routes.js @@ -23,7 +23,7 @@ const handlers = require('./ampbench_handlers.js'); const VERSION_STRING = '[AMPBENCH:V.1.0]'; -function version_msg(msg){ +function version_msg(msg) { return VERSION_STRING + '[' + new Date().toISOString() + '] ' + msg; } @@ -58,14 +58,14 @@ function consoleLogRequestResponse(req, res) { } function ifdef(v) { // useful for outputting potentially undefined variable values - if(v) + if (v) return v; else return ''; } function format_dashes(dash_count) { // needs: const S = require('string'); - return ( S(('- ').repeat(dash_count)).s ); + return (S(('- ').repeat(dash_count)).s); } function print_dashes(dash_count) { // needs: const S = require('string'); @@ -83,19 +83,24 @@ const CHECK_WARN = 'WARNING', CHECK_NONE = 'UNKNOWN'; const // http://www.tutorialspoint.com/html/html_colors.htm - CHECK_FAIL_CSS = '' + CHECK_FAIL + '', - CHECK_PASS_CSS = '' + CHECK_PASS + '', - CHECK_INFO_CSS = '' + CHECK_INFO + '', - CHECK_WARN_CSS = '' + CHECK_WARN + '', - CHECK_NONE_CSS = '' + CHECK_NONE + ''; + CHECK_FAIL_CSS = '' + CHECK_FAIL + '', + CHECK_PASS_CSS = '' + CHECK_PASS + '', + CHECK_INFO_CSS = '' + CHECK_INFO + '', + CHECK_WARN_CSS = '' + CHECK_WARN + '', + CHECK_NONE_CSS = '' + CHECK_NONE + ''; const get_check_status_css = (status) => { - switch(status) { - case CHECK_FAIL: return CHECK_FAIL_CSS; - case CHECK_PASS: return CHECK_PASS_CSS; - case CHECK_INFO: return CHECK_INFO_CSS; - case CHECK_WARN: return CHECK_WARN_CSS; - default: return CHECK_NONE_CSS; + switch (status) { + case CHECK_FAIL: + return CHECK_FAIL_CSS; + case CHECK_PASS: + return CHECK_PASS_CSS; + case CHECK_INFO: + return CHECK_INFO_CSS; + case CHECK_WARN: + return CHECK_WARN_CSS; + default: + return CHECK_NONE_CSS; } }; @@ -110,7 +115,7 @@ const http = require('http'); const https = require('https'); const url = require('url'); const util = require('util'); -const inspect_obj = (obj) => {return util.inspect(obj, { showHidden: true, depth: null })}; +const inspect_obj = (obj) => { return util.inspect(obj, { showHidden: true, depth: null }) }; const S = require('string'); const express = require('express'); @@ -204,6 +209,9 @@ app.get('/version', (req, res) => { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function assert_url(req, res) { // handle bad urls + if (req.query && req.query.url) { + req.query.url = encodeURI(req.query.url); + } let url_to_validate = req.query.url || ''; if (!benchlib.check_url_is_valid(url_to_validate)) { console.log(version_msg( @@ -212,8 +220,7 @@ function assert_url(req, res) { // handle bad urls req.path + ' ' + url_to_validate)); let _err = { error: true, - error_message: - '[ERROR: INVALID URL] Please check the formatting of the requested URL', + error_message: '[ERROR: INVALID URL] Please check the formatting of the requested URL', error_url: url_to_validate, error_request_host: req.hostname, error_request_path: req.path, @@ -346,12 +353,12 @@ app.get('/debug/', (req, res) => { res.status(200).send(version_msg('No AMP URL parameter found.')); } else { _debug_results = - '\n==> GET: ' + amp_url + '\n\n' + '{"User-Agent": ' - + benchlib.UA_AMPBENCH_NAME + '}\n\n' + format_dashes(30) + '\n'; + '\n==> GET: ' + amp_url + '\n\n' + '{"User-Agent": ' + + benchlib.UA_AMPBENCH_NAME + '}\n\n' + format_dashes(30) + '\n'; // do the request request({ uri: amp_url, - headers: {'User-Agent': benchlib.UA_AMPBENCH}, + headers: { 'User-Agent': benchlib.UA_AMPBENCH }, rejectUnauthorized: false }, function(err, res_debug, body) { // console.log(_debug_results); @@ -371,12 +378,12 @@ app.get('/debug_cli/', (req, res) => { res.status(200).send(version_msg('No AMP URL parameter found.')); } else { _debug_results = - '\n==> GET: ' + amp_url + '\n\n' + '{"User-Agent": ' - + benchlib.UA_AMPBENCH_NAME + '}\n\n' + format_dashes(30) + '\n'; + '\n==> GET: ' + amp_url + '\n\n' + '{"User-Agent": ' + + benchlib.UA_AMPBENCH_NAME + '}\n\n' + format_dashes(30) + '\n'; // do the request request({ uri: amp_url, - headers: {'User-Agent': benchlib.UA_AMPBENCH}, + headers: { 'User-Agent': benchlib.UA_AMPBENCH }, rejectUnauthorized: false }, function(err, res_debug, body) { // console.log(_debug_results); @@ -400,7 +407,7 @@ app.get('/debug_curl/', (req, res) => { // do the request request({ uri: amp_url, - headers: {'User-Agent': benchlib.UA_CURL}, + headers: { 'User-Agent': benchlib.UA_CURL }, rejectUnauthorized: false }, function(err, res_debug, body) { // console.log(_debug_results); @@ -424,7 +431,7 @@ app.get('/debug_curl_cli/', (req, res) => { // do the request request({ uri: amp_url, - headers: {'User-Agent': benchlib.UA_CURL}, + headers: { 'User-Agent': benchlib.UA_CURL }, rejectUnauthorized: false }, function(err, res_debug, body) { // console.log(_debug_results); @@ -475,30 +482,30 @@ const make_api_http_response = (http_response) => { const make_api_amp_links = (parse_amplinks) => { return { - canonical_url: parse_amplinks.canonical_url, - amphtml_url: parse_amplinks.amphtml_url, - amphtml_urls: parse_amplinks.amphtml_urls, - amp_uses_feed: parse_amplinks.amp_uses_feed + canonical_url: parse_amplinks.canonical_url, + amphtml_url: parse_amplinks.amphtml_url, + amphtml_urls: parse_amplinks.amphtml_urls, + amp_uses_feed: parse_amplinks.amp_uses_feed }; }; const make_api_sd_validation = (api_validate_sd_return) => { return { - status: api_validate_sd_return.status, - result: api_validate_sd_return.result, - sd_json_error: api_validate_sd_return.json_error, - sd_kind: api_validate_sd_return.kind, - sd_type: api_validate_sd_return.type, - sd_type_is_amp: api_validate_sd_return.type_is_amp, - sd_context: api_validate_sd_return.context, - sd_headline: api_validate_sd_return.news_headline, - sd_author_name: api_validate_sd_return.author_name, - sd_publisher_name: api_validate_sd_return.publisher_name, - sd_date_published: api_validate_sd_return.date_published, - sd_date_modified: api_validate_sd_return.date_modified, - sd_logo_image: api_validate_sd_return.image, - sd_article_image: api_validate_sd_return.article_image, - sd_article: api_validate_sd_return.article + status: api_validate_sd_return.status, + result: api_validate_sd_return.result, + sd_json_error: api_validate_sd_return.json_error, + sd_kind: api_validate_sd_return.kind, + sd_type: api_validate_sd_return.type, + sd_type_is_amp: api_validate_sd_return.type_is_amp, + sd_context: api_validate_sd_return.context, + sd_headline: api_validate_sd_return.news_headline, + sd_author_name: api_validate_sd_return.author_name, + sd_publisher_name: api_validate_sd_return.publisher_name, + sd_date_published: api_validate_sd_return.date_published, + sd_date_modified: api_validate_sd_return.date_modified, + sd_logo_image: api_validate_sd_return.image, + sd_article_image: api_validate_sd_return.article_image, + sd_article: api_validate_sd_return.article }; }; @@ -624,22 +631,22 @@ app.get('/api2/', (req, res) => { api_validate_amp_warnings_return = null; let parse_amplinks = {}; // <== function parse_page_content(http_response): - // canonical_url: '', - // amphtml_url: '', - // amphtml_urls: '', - // check_robots_meta_results: 'Page content could not be read.', - // check_robots_meta_status: CHECK_FAIL, - // check_x_robots_tag_header_results: 'Response header could not be read.', - // check_x_robots_tag_header_status: CHECK_FAIL + // canonical_url: '', + // amphtml_url: '', + // amphtml_urls: '', + // check_robots_meta_results: 'Page content could not be read.', + // check_robots_meta_status: CHECK_FAIL, + // check_x_robots_tag_header_results: 'Response header could not be read.', + // check_x_robots_tag_header_status: CHECK_FAIL let check_amplinks = {}; // <== function review_amp_links(parse_amplinks... - // check_extra: '', - // check_amp_links_canonical_url: '', - // check_amp_links_canonical_status: CHECK_NONE, - // check_amp_links_canonical_results: '', - // check_amp_links_amphtml_url: '', - // check_amp_links_amphtml_status: CHECK_NONE, - // check_amp_links_amphtml_results: '' + // check_extra: '', + // check_amp_links_canonical_url: '', + // check_amp_links_canonical_status: CHECK_NONE, + // check_amp_links_canonical_results: '', + // check_amp_links_amphtml_url: '', + // check_amp_links_amphtml_status: CHECK_NONE, + // check_amp_links_amphtml_results: '' let check_robots_txt_return = null, check_google_amp_cache_return = null; @@ -746,8 +753,9 @@ class HttpServer { } var __server = null; -function init_server(server) { // called from main startup - if (null === __server) { // only once + +function init_server(server) { // called from main startup + if (null === __server) { // only once __server = new HttpServer(server); } return __server; @@ -761,4 +769,4 @@ exports.init_server = init_server; exports.version_msg = version_msg; exports.app = app; -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/validator/validator.js b/validator/validator.js index 267f2f7..8900a8b 100644 --- a/validator/validator.js +++ b/validator/validator.js @@ -2,9 +2,9 @@ * @license Apache-2.0 * Copyright 2018 The AMP HTML Authors. All Rights Reserved. */ -(function() {'use strict';function JSCompiler_emptyFn(){return function(){}}var $jscomp$objectCreate="function"==typeof Object.create?Object.create:function(prototype){function ctor(){}ctor.prototype=prototype;return new ctor},JSCompiler_temp$jscomp$89; -if("function"==typeof Object.setPrototypeOf)JSCompiler_temp$jscomp$89=Object.setPrototypeOf;else{var JSCompiler_inline_result$jscomp$90;a:{var x$jscomp$inline_130={a:!0},y$jscomp$inline_131={};try{y$jscomp$inline_131.__proto__=x$jscomp$inline_130;JSCompiler_inline_result$jscomp$90=y$jscomp$inline_131.a;break a}catch(e){}JSCompiler_inline_result$jscomp$90=!1}JSCompiler_temp$jscomp$89=JSCompiler_inline_result$jscomp$90?function(target,proto){target.__proto__=proto;if(target.__proto__!==proto)throw new TypeError(target+ -" is not extensible");return target}:null}var $jscomp$setPrototypeOf=JSCompiler_temp$jscomp$89; +(function() {'use strict';function JSCompiler_emptyFn(){return function(){}}var $jscomp$objectCreate="function"==typeof Object.create?Object.create:function(prototype){function ctor(){}ctor.prototype=prototype;return new ctor},JSCompiler_temp$jscomp$91; +if("function"==typeof Object.setPrototypeOf)JSCompiler_temp$jscomp$91=Object.setPrototypeOf;else{var JSCompiler_inline_result$jscomp$92;a:{var x$jscomp$inline_132={a:!0},y$jscomp$inline_133={};try{y$jscomp$inline_133.__proto__=x$jscomp$inline_132;JSCompiler_inline_result$jscomp$92=y$jscomp$inline_133.a;break a}catch(e){}JSCompiler_inline_result$jscomp$92=!1}JSCompiler_temp$jscomp$91=JSCompiler_inline_result$jscomp$92?function(target,proto){target.__proto__=proto;if(target.__proto__!==proto)throw new TypeError(target+ +" is not extensible");return target}:null}var $jscomp$setPrototypeOf=JSCompiler_temp$jscomp$91; function $jscomp$inherits(childCtor,parentCtor){childCtor.prototype=$jscomp$objectCreate(parentCtor.prototype);childCtor.prototype.constructor=childCtor;if($jscomp$setPrototypeOf)$jscomp$setPrototypeOf(childCtor,parentCtor);else for(var p in parentCtor)if("prototype"!=p)if(Object.defineProperties){var descriptor=Object.getOwnPropertyDescriptor(parentCtor,p);descriptor&&Object.defineProperty(childCtor,p,descriptor)}else childCtor[p]=parentCtor[p];childCtor.superClass_=parentCtor.prototype} var $jscomp$defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(target,property,descriptor){target!=Array.prototype&&target!=Object.prototype&&(target[property]=descriptor.value)},$jscomp$global="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;function $jscomp$initSymbol(){$jscomp$initSymbol=JSCompiler_emptyFn();$jscomp$global.Symbol||($jscomp$global.Symbol=$jscomp$Symbol)} var $jscomp$Symbol=function(){var counter=0;return function(opt_description){return"jscomp_symbol_"+(opt_description||"")+counter++}}(); @@ -14,12 +14,12 @@ function $jscomp$makeIterator(iterable){$jscomp$initSymbolIterator();var iterato function $jscomp$polyfill(target,polyfill){if(polyfill){var obj=$jscomp$global;target=target.split(".");for(var i=0;iopt_fromIndex&&(opt_fromIndex=Math.max(opt_fromIndex+len,0));opt_fromIndex>>0),goog$uidCounter_=0;function goog$bindNative_(fn,selfObj,var_args){return fn.call.apply(fn.bind,arguments)} function goog$bindJs_(fn,selfObj,var_args){if(!fn)throw Error();if(2b?1:aJSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.occupants_&&(JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.occupants_++,item.next=JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.head_,JSCompiler_StaticMethods_goog_async_FreeList_prototype$put$self.head_= item)};function goog$string$startsWith(str,prefix){return 0==str.lastIndexOf(prefix,0)}function goog$string$endsWith(str,suffix){var l=str.length-suffix.length;return 0<=l&&str.indexOf(suffix,l)==l} function goog$string$unescapeEntitiesUsingDom_(str){var seen={"&":"&","<":"<",">":">",""":'"'};var div=goog$global.document.createElement("div");return str.replace(goog$string$HTML_ENTITY_PATTERN_,function(s,entity){var value=seen[s];if(value)return value;"#"==entity.charAt(0)&&(entity=Number("0"+entity.substr(1)),isNaN(entity)||(value=String.fromCharCode(entity)));value||(div.innerHTML=s+" ",value=div.firstChild.nodeValue.slice(0,-1));return seen[s]=value})} -function goog$string$unescapePureXmlEntities_(str){return str.replace(/&([^;]+);/g,function(s,entity){switch(entity){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=entity.charAt(0)||(entity=Number("0"+entity.substr(1)),isNaN(entity))?s:String.fromCharCode(entity)}})}var goog$string$HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;var goog$labs$userAgent$util$userAgent_;a:{var navigator$jscomp$inline_152=goog$global.navigator;if(navigator$jscomp$inline_152){var userAgent$jscomp$inline_153=navigator$jscomp$inline_152.userAgent;if(userAgent$jscomp$inline_153){goog$labs$userAgent$util$userAgent_=userAgent$jscomp$inline_153;break a}}goog$labs$userAgent$util$userAgent_=""};function goog$async$throwException(exception){goog$global.setTimeout(function(){throw exception;},0)}var goog$async$nextTick$setImmediate_; +function goog$string$unescapePureXmlEntities_(str){return str.replace(/&([^;]+);/g,function(s,entity){switch(entity){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=entity.charAt(0)||(entity=Number("0"+entity.substr(1)),isNaN(entity))?s:String.fromCharCode(entity)}})}var goog$string$HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;var goog$labs$userAgent$util$userAgent_;a:{var navigator$jscomp$inline_154=goog$global.navigator;if(navigator$jscomp$inline_154){var userAgent$jscomp$inline_155=navigator$jscomp$inline_154.userAgent;if(userAgent$jscomp$inline_155){goog$labs$userAgent$util$userAgent_=userAgent$jscomp$inline_155;break a}}goog$labs$userAgent$util$userAgent_=""};function goog$async$throwException(exception){goog$global.setTimeout(function(){throw exception;},0)}var goog$async$nextTick$setImmediate_; function goog$async$nextTick$getSetImmediateEmulator_(){var Channel=goog$global.MessageChannel;"undefined"===typeof Channel&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Presto")&&(Channel=function(){var iframe=document.createElement("IFRAME");iframe.style.display="none";iframe.src="";document.documentElement.appendChild(iframe);var win=iframe.contentWindow;iframe=win.document;iframe.open();iframe.write("");iframe.close(); var message="callImmediate"+Math.random(),origin="file:"==win.location.protocol?"*":win.location.protocol+"//"+win.location.host;iframe=goog$bind(function(e){if(("*"==origin||e.origin==origin)&&e.data==message)this.port1.onmessage()},this);win.addEventListener("message",iframe,!1);this.port1={};this.port2={postMessage:function(){win.postMessage(message,origin)}}});if("undefined"!==typeof Channel&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Trident")&&-1==goog$labs$userAgent$util$userAgent_.indexOf("MSIE")){var channel= new Channel,head={},tail=head;channel.port1.onmessage=function(){if(void 0!==head.next){head=head.next;var cb=head.cb;head.cb=null;cb()}};return function(cb){tail.next={cb:cb};tail=tail.next;channel.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(cb){var script=document.createElement("SCRIPT");script.onreadystatechange=function(){script.onreadystatechange=null;script.parentNode.removeChild(script);script=null;cb();cb=null}; document.documentElement.appendChild(script)}:function(cb){goog$global.setTimeout(cb,0)}};function goog$async$WorkQueue(){this.workTail_=this.workHead_=null}var goog$async$WorkQueue$freelist_=new goog$async$FreeList(function(){return new goog$async$WorkItem},function(item){item.reset()});goog$async$WorkQueue.prototype.add=function(fn,scope){var item=goog$async$WorkQueue$freelist_.get();item.set(fn,scope);this.workTail_?this.workTail_.next=item:(goog$asserts$assert(!this.workHead_),this.workHead_=item);this.workTail_=item}; function JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove(){var JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self=goog$async$run$workQueue_,item=null;JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_&&(item=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_,JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_.next, JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workHead_||(JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove$self.workTail_=null),item.next=null);return item}function goog$async$WorkItem(){this.next=this.goog_async_WorkItem$scope=this.fn=null}goog$async$WorkItem.prototype.set=function(fn,scope){this.fn=fn;this.goog_async_WorkItem$scope=scope;this.next=null};goog$async$WorkItem.prototype.reset=function(){this.next=this.goog_async_WorkItem$scope=this.fn=null};function goog$async$run(callback,opt_context){goog$async$run$schedule_||goog$async$run$initializeRunner_();goog$async$run$workQueueScheduled_||(goog$async$run$schedule_(),goog$async$run$workQueueScheduled_=!0);goog$async$run$workQueue_.add(callback,opt_context)}var goog$async$run$schedule_; -function goog$async$run$initializeRunner_(){if(-1!=String(goog$global.Promise).indexOf("[native code]")){var promise=goog$global.Promise.resolve(void 0);goog$async$run$schedule_=function(){promise.then(goog$async$run$processWorkQueue)}}else goog$async$run$schedule_=function(){var cb=goog$async$run$processWorkQueue;!goog$isFunction(goog$global.setImmediate)||goog$global.Window&&goog$global.Window.prototype&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Edge")&&goog$global.Window.prototype.setImmediate== +function goog$async$run$initializeRunner_(){if(goog$global.Promise&&goog$global.Promise.resolve){var promise=goog$global.Promise.resolve(void 0);goog$async$run$schedule_=function(){promise.then(goog$async$run$processWorkQueue)}}else goog$async$run$schedule_=function(){var cb=goog$async$run$processWorkQueue;!goog$isFunction(goog$global.setImmediate)||goog$global.Window&&goog$global.Window.prototype&&-1==goog$labs$userAgent$util$userAgent_.indexOf("Edge")&&goog$global.Window.prototype.setImmediate== goog$global.setImmediate?(goog$async$nextTick$setImmediate_||(goog$async$nextTick$setImmediate_=goog$async$nextTick$getSetImmediateEmulator_()),goog$async$nextTick$setImmediate_(cb)):goog$global.setImmediate(cb)}}var goog$async$run$workQueueScheduled_=!1,goog$async$run$workQueue_=new goog$async$WorkQueue; function goog$async$run$processWorkQueue(){for(var item;item=JSCompiler_StaticMethods_goog_async_WorkQueue_prototype$remove();){try{item.fn.call(item.goog_async_WorkItem$scope)}catch(e){goog$async$throwException(e)}JSCompiler_StaticMethods_goog_async_FreeList_prototype$put(goog$async$WorkQueue$freelist_,item)}goog$async$run$workQueueScheduled_=!1};function goog$Promise(resolver){this.state_=0;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.hadUnhandledRejection_=this.executing_=!1;if(resolver!=goog$nullFunction)try{var self=this;resolver.call(void 0,function(value){JSCompiler_StaticMethods_resolve_(self,2,value)},function(reason){if(!(reason instanceof goog$Promise$CancellationError))try{if(reason instanceof Error)throw reason;throw Error("Promise rejected.");}catch(e){}JSCompiler_StaticMethods_resolve_(self, 3,reason)})}catch(e){JSCompiler_StaticMethods_resolve_(this,3,e)}}function goog$Promise$CallbackEntry_(){this.next=this.goog_Promise_CallbackEntry_$context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1}goog$Promise$CallbackEntry_.prototype.reset=function(){this.goog_Promise_CallbackEntry_$context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};var goog$Promise$freelist_=new goog$async$FreeList(function(){return new goog$Promise$CallbackEntry_},function(item){item.reset()}); @@ -74,7 +74,7 @@ function amp$validator$CdataSpec(){this.maxBytes=-1;this.cssSpec=this.cdataRegex function amp$validator$CssSpec(){this.atRuleSpec=EMPTY_amp_validator_AtRuleSpec_ARRAY;this.fontUrlSpec=this.imageUrlSpec=null;this.validateKeyframes=this.validateAmp4Ads=!1;this.allowedDeclarations=EMPTY_string_ARRAY}function amp$validator$DescendantTagList(){this.name=null;this.allowedTags=EMPTY_string_ARRAY}function amp$validator$ErrorFormat(code,format){this.code=code;this.format=format}function amp$validator$ErrorSpecificity(){this.code=null;this.specificity=0} function amp$validator$ExtensionSpec(){this.name=null;this.deprecatedVersions=this.allowedVersions=EMPTY_string_ARRAY;this.deprecatedAllowDuplicates=this.isCustomTemplate=!1;this.requiresUsage=null}goog$exportSymbol("amp.validator.ExtensionSpec.ExtensionUsageRequirement",{ERROR:"ERROR",GRANDFATHERED:"GRANDFATHERED",NONE:"NONE"});goog$exportSymbol("amp.validator.HtmlFormat.Code",{AMP:"AMP",AMP4ADS:"AMP4ADS",AMP4EMAIL:"AMP4EMAIL",EXPERIMENTAL:"EXPERIMENTAL"}); function amp$validator$PropertySpec(name){this.name=name;this.mandatory=!1;this.valueDouble=this.value=null}function amp$validator$PropertySpecList(properties){this.properties=properties}function amp$validator$ReferencePoint(){this.tagSpecName=null;this.unique=this.mandatory=!1} -function amp$validator$TagSpec(tagName){this.htmlFormat=EMPTY_amp_validator_HtmlFormat_Code_ARRAY;this.tagName=tagName;this.extensionSpec=this.specName=null;this.requiresExtension=EMPTY_string_ARRAY;this.mandatory=!1;this.mandatoryAlternatives=null;this.uniqueWarning=this.unique=!1;this.mandatoryAncestorSuggestedAlternative=this.mandatoryAncestor=this.mandatoryParent=null;this.disallowedAncestor=EMPTY_string_ARRAY;this.descendantTagList=null;this.requires=this.satisfies=this.alsoRequiresTagWarning= +function amp$validator$TagSpec(tagName){this.htmlFormat=EMPTY_amp_validator_HtmlFormat_Code_ARRAY;this.tagName=tagName;this.extensionSpec=this.specName=null;this.requiresExtension=EMPTY_string_ARRAY;this.mandatory=!1;this.mandatoryAlternatives=null;this.uniqueWarning=this.unique=!1;this.mandatoryAncestorSuggestedAlternative=this.mandatoryAncestor=this.mandatoryParent=null;this.disallowedAncestor=EMPTY_string_ARRAY;this.descendantTagList=null;this.excludes=this.requires=this.satisfies=this.alsoRequiresTagWarning= EMPTY_number_ARRAY;this.deprecationUrl=this.deprecation=null;this.attrLists=this.attrs=EMPTY_number_ARRAY;this.childTags=this.cdata=null;this.mandatoryLastChild=this.siblingsDisallowed=!1;this.referencePoints=EMPTY_amp_validator_ReferencePoint_ARRAY;this.ampLayout=this.specUrl=null}function amp$validator$UrlSpec(allowedProtocol){this.allowedProtocol=allowedProtocol;this.allowRelative=!0;this.allowEmpty=!1;this.amp_validator_UrlSpec$disallowedDomain=EMPTY_string_ARRAY} function amp$validator$ValidationError(){this.code=this.severity=null;this.line=1;this.col=0;this.specUrl=null;this.params=EMPTY_string_ARRAY;this.dataAmpReportTestValue=this.category=null}function amp$validator$ValidationResult(){this.status=null;this.errors=[];this.specFileRevision=this.validatorRevision=-1}goog$exportSymbol("amp.validator.ValidationResult",amp$validator$ValidationResult);amp$validator$ValidationResult.Status={UNKNOWN:"UNKNOWN",PASS:"PASS",FAIL:"FAIL"}; function amp$validator$ValidatorRules(tags){this.tags=tags;this.minValidatorRevisionRequired=0;this.specFileRevision=-1;this.scriptSpecUrl=this.stylesSpecUrl=this.templateSpecUrl=null;this.errorFormats=EMPTY_amp_validator_ErrorFormat_ARRAY;this.errorSpecificity=EMPTY_amp_validator_ErrorSpecificity_ARRAY;this.descendantTagList=EMPTY_amp_validator_DescendantTagList_ARRAY;this.dispatchKeyByTagSpecId=Array(tags.length);this.internedStrings=[];this.attrs=[];this.directAttrLists=[];this.amp_validator_ValidatorRules$globalAttrs= @@ -257,16 +257,18 @@ JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.region_=1:"BODY"== (JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.handler_.markManufacturedBody&&JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.handler_.markManufacturedBody(),JSCompiler_StaticMethods_TagNameStack_prototype$startTag(JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self,new amp$htmlparser$ParsedHtmlTag("BODY"))));break;case 1:HeadElements.hasOwnProperty(tag.amp_htmlparser_ParsedHtmlTag$tagName_)||(JSCompiler_StaticMethods_TagNameStack_prototype$endTag(JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self, new amp$htmlparser$ParsedHtmlTag("HEAD")),"BODY"!==tag.amp_htmlparser_ParsedHtmlTag$tagName_?(JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.handler_.markManufacturedBody&&JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.handler_.markManufacturedBody(),JSCompiler_StaticMethods_TagNameStack_prototype$startTag(JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self,new amp$htmlparser$ParsedHtmlTag("BODY"))):JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.region_= 3);break;case 2:"BODY"!==tag.amp_htmlparser_ParsedHtmlTag$tagName_?(JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.handler_.markManufacturedBody&&JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.handler_.markManufacturedBody(),JSCompiler_StaticMethods_TagNameStack_prototype$startTag(JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self,new amp$htmlparser$ParsedHtmlTag("BODY"))):JSCompiler_StaticMethods_TagNameStack_prototype$startTag$self.region_=3;break;case 3:if("BODY"=== -tag.amp_htmlparser_ParsedHtmlTag$tagName_)return;if(0idx;)JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag&&JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag(new amp$htmlparser$ParsedHtmlTag(JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.TagNameStack$stack_.pop()));break}} -function amp$htmlparser$HtmlParser(){}amp$htmlparser$HtmlParser.prototype.lookupEntity_=function(entity){entity=amp$htmlparser$toLowerCase(entity.substring(1,entity.length-1));if(amp$htmlparser$HtmlParser$Entities.hasOwnProperty(entity))return amp$htmlparser$HtmlParser$Entities[entity];var m=entity.match(amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_);return m?String.fromCharCode(parseInt(m[1],10)):(m=entity.match(amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_))?String.fromCharCode(parseInt(m[1],16)):entity}; +tag.amp_htmlparser_ParsedHtmlTag$tagName_){for(;JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.TagNameStack$stack_.length>idx;)"SVG"===JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.TagNameStack$stack_[JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.TagNameStack$stack_.length-1]&&(JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.region_=3),JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag&& +JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.handler_.amp_htmlparser_HtmlSaxHandler_prototype$endTag(new amp$htmlparser$ParsedHtmlTag(JSCompiler_StaticMethods_TagNameStack_prototype$endTag$self.TagNameStack$stack_.pop()));break}}function amp$htmlparser$HtmlParser(){} +amp$htmlparser$HtmlParser.prototype.lookupEntity_=function(entity){entity=amp$htmlparser$toLowerCase(entity.substring(1,entity.length-1));if(amp$htmlparser$HtmlParser$Entities.hasOwnProperty(entity))return amp$htmlparser$HtmlParser$Entities[entity];var m=entity.match(amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_);return m?String.fromCharCode(parseInt(m[1],10)):(m=entity.match(amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_))?String.fromCharCode(parseInt(m[1],16)):entity}; var amp$htmlparser$HtmlParser$Entities={colon:":",lt:"<",gt:">",amp:"&",nbsp:"\u00a0",quot:'"',apos:"'"},amp$htmlparser$HtmlParser$Elements={A:0,ABBR:0,ACRONYM:0,ADDRESS:0,APPLET:16,AREA:2,B:0,BASE:18,BASEFONT:18,BDO:0,BIG:0,BLOCKQUOTE:0,BODY:49,BR:2,BUTTON:0,CANVAS:0,CAPTION:0,CENTER:0,CITE:0,CODE:0,COL:2,COLGROUP:1,DD:1,DEL:0,DFN:0,DIR:0,DIV:0,DL:0,DT:1,EM:0,FIELDSET:0,FONT:0,FORM:0,FRAME:18,FRAMESET:16,H1:0,H2:0,H3:0,H4:0,H5:0,H6:0,HEAD:49,HR:2,HTML:49,I:0,IFRAME:20,IMG:2,INPUT:2,INS:0,ISINDEX:18, KBD:0,LABEL:0,LEGEND:0,LI:1,LINK:18,MAP:0,MENU:0,META:18,NOFRAMES:20,NOSCRIPT:16,OBJECT:16,OL:0,OPTGROUP:0,OPTION:1,P:1,PARAM:18,PRE:0,Q:0,S:0,SAMP:0,SCRIPT:20,SELECT:0,SMALL:0,SPAN:0,STRIKE:0,STRONG:0,STYLE:20,SUB:0,SUP:0,TABLE:0,TBODY:1,TD:1,TEXTAREA:8,TFOOT:1,TH:1,THEAD:1,TITLE:24,TR:1,TT:0,U:0,UL:0,VAR:0},amp$htmlparser$HtmlParser$LOOSE_AMP_RE_=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,amp$htmlparser$HtmlParser$LT_RE=//g,amp$htmlparser$HtmlParser$NULL_RE_= /\0/g,amp$htmlparser$HtmlParser$ENTITY_RE_=/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g,amp$htmlparser$HtmlParser$SPACE_RE_=/^\s*$/,amp$htmlparser$HtmlParser$DECIMAL_ESCAPE_RE_=/^#(\d+)$/,amp$htmlparser$HtmlParser$HEX_ESCAPE_RE_=/^#x([0-9A-Fa-f]+)$/,amp$htmlparser$HtmlParser$INSIDE_TAG_TOKEN_=/^[ \t\n\f\r\v]*(?:(?:([^\t\r\n /=>][^\t\r\n =>]*|[^\t\r\n =>]+[^ >]|\/+(?!>))(\s*=\s*("[^"]*"|'[^']*'|(?=[a-z][a-z-]*\s+=)|[^>\s]*))?)|(\/?>)|[^a-z\s>]+)/i,amp$htmlparser$HtmlParser$OUTSIDE_TAG_TOKEN_=/^(?:&(\#[0-9]+|\#[x][0-9a-f]+|\w+);|<[!]--[\s\S]*?(?:--\x3e|$)|<(\/)?([a-z!\?][^\0 \n\r\t\f\v>/]*)|([^<&>]+)|([<&>]))/i; @@ -291,238 +293,258 @@ var colon=unparsed.indexOf(":");if(-1===colon)return JSCompiler_StaticMethods_pa JSCompiler_StaticMethods_parseProtocol_$self.defaultProtocol,unparsed}JSCompiler_StaticMethods_parseProtocol_$self.hasProtocol=!0;JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol=unparsed.substr(0,colon).toLowerCase();unparsed=unparsed.substr(colon+1);"http"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&"https"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&"ftp"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&& "sftp"!=JSCompiler_StaticMethods_parseProtocol_$self.parse_url_URL$protocol&&(unparsed="");return unparsed};function amp$validator$createRules(){var tagspec_0=Object.assign(new amp$validator$TagSpec("!DOCTYPE"),{specName:"html doctype",mandatory:!0,unique:!0,mandatoryParent:"$ROOT",attrs:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup"}),tagspec_1=Object.assign(new amp$validator$TagSpec("HTML"),{specName:"html \u26a1 for top-level html",mandatory:!0,unique:!0,mandatoryParent:"!DOCTYPE",attrs:[1],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",htmlFormat:["AMP"]}), tagspec_2=Object.assign(new amp$validator$TagSpec("HTML"),{specName:"html \u26a14ads for top-level html",mandatory:!0,unique:!0,mandatoryParent:"!DOCTYPE",attrs:[2],specUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#a4a-format-rules",htmlFormat:["AMP4ADS"]}),tagspec_3=Object.assign(new amp$validator$TagSpec("HTML"),{specName:"html \u26a14email for top-level html",mandatory:!0,unique:!0,mandatoryParent:"!DOCTYPE",attrs:[3],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup", -htmlFormat:["AMP4EMAIL"]}),tagspec_4=Object.assign(new amp$validator$TagSpec("HEAD"),{mandatory:!0,unique:!0,mandatoryParent:"HTML",specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup"}),tagspec_5=Object.assign(new amp$validator$TagSpec("TITLE"),{specName:"title"}),tagspec_6=Object.assign(new amp$validator$TagSpec("BASE"),{unique:!0,mandatoryParent:"HEAD",attrs:[4,5],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_7=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link rel=", -attrs:[-1,6,-2,-3],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",disallowedAncestor:["TEMPLATE"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_8=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link rel=canonical",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[7,8],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_9=Object.assign(new amp$validator$TagSpec("LINK"), -{specName:"link rel=manifest",mandatoryParent:"HEAD",attrs:[9,10],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS"],satisfies:[-4]}),tagspec_10=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link rel=stylesheet for fonts",mandatoryParent:"HEAD",attrs:[-5,11,-6,12,13,-7,-8],specUrl:"https://www.ampproject.org/docs/reference/spec#custom-fonts",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_11=Object.assign(new amp$validator$TagSpec("LINK"), -{specName:"link itemprop=sameAs",attrs:[14,15],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_12=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link itemprop=",attrs:[14,16],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_13=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link property=",attrs:[14,17], -attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_14=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta charset=utf-8",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[18],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup"}),tagspec_15=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=viewport",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[19,20],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup", -htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_16=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=X-UA-Compatible",attrs:[21,22],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_17=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=apple-itunes-app",mandatoryParent:"HEAD",attrs:[23,24],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags", -htmlFormat:["AMP","AMP4ADS"],satisfies:[-4]}),tagspec_18=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-experiments-opt-in",mandatoryParent:"HEAD",attrs:[25,26],htmlFormat:["AMP","AMP4ADS"]}),tagspec_19=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-3p-iframe-src",mandatoryParent:"HEAD",attrs:[27,28],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",htmlFormat:["AMP"]}),tagspec_20=Object.assign(new amp$validator$TagSpec("META"), -{specName:"meta name=amp-experiment-token",mandatoryParent:"HEAD",attrs:[29,26],htmlFormat:["AMP"]}),tagspec_21=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-link-variable-allowed-origin",mandatoryParent:"HEAD",attrs:[30,26],htmlFormat:["AMP"]}),tagspec_22=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-google-clientid-id-api",mandatoryParent:"HEAD",attrs:[31,26],htmlFormat:["AMP"]}),tagspec_23=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-ad-doubleclick-sra", -mandatoryParent:"HEAD",attrs:[32],htmlFormat:["AMP"]}),tagspec_24=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp4ads-id",mandatoryParent:"HEAD",attrs:[33,26],htmlFormat:["AMP4ADS"]}),tagspec_25=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name= and content=",attrs:[34,-9,-10,-11],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_26=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=Content-Type",attrs:[35,36],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags", -mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_27=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=content-language",attrs:[37,26],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_28=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=pics-label",attrs:[38,26],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags", -mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_29=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=imagetoolbar",attrs:[39,26],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_30=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=Content-Style-Type",attrs:[40,41],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags", -mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_31=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=Content-Script-Type",attrs:[42,43],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_32=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=origin-trial",attrs:[44,26],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags", -mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_33=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=resource-type",attrs:[45,26],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_34=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-ad-enable-refresh",attrs:[46,26],mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS"]}),tagspec_35= -Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-to-amp-navigation",unique:!0,mandatoryParent:"HEAD",attrs:[47,26],htmlFormat:["AMP","EXPERIMENTAL"]}),blacklistedcdataregex_0=new amp$validator$BlackListedCDataRegex("\x3c!--","html comments"),blacklistedcdataregex_1=new amp$validator$BlackListedCDataRegex("(^|\\W)i-amphtml-","CSS i-amphtml- name prefix"),blacklistedcdataregex_2=new amp$validator$BlackListedCDataRegex("!important","CSS !important"),atrulespec_0=new amp$validator$AtRuleSpec("font-face", -"PARSE_AS_DECLARATIONS"),atrulespec_1=new amp$validator$AtRuleSpec("keyframes","PARSE_AS_RULES"),atrulespec_2=new amp$validator$AtRuleSpec("media","PARSE_AS_RULES"),atrulespec_3=new amp$validator$AtRuleSpec("supports","PARSE_AS_RULES"),atrulespec_4=new amp$validator$AtRuleSpec("$DEFAULT","PARSE_AS_ERROR"),urlspec_0=Object.assign(new amp$validator$UrlSpec(["https","http","data","absolute"]),{allowRelative:!0,allowEmpty:!0}),urlspec_1=Object.assign(new amp$validator$UrlSpec(["https","http","data"]), -{allowRelative:!0,allowEmpty:!0}),cssspec_0=Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_0,atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4],imageUrlSpec:urlspec_0,fontUrlSpec:urlspec_1}),cdataspec_0=Object.assign(new amp$validator$CdataSpec,{maxBytes:5E4,maxBytesSpecUrl:"https://www.ampproject.org/docs/reference/spec#maximum-size",blacklistedCdataRegex:[blacklistedcdataregex_0,blacklistedcdataregex_1,blacklistedcdataregex_2],cssSpec:cssspec_0});cdataspec_0.combinedBlacklistedCdataRegex= --13;var tagspec_36=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style amp-custom",unique:!0,mandatoryParent:"HEAD",attrs:[48,-12,13],specUrl:"https://www.ampproject.org/docs/reference/spec#stylesheets",cdata:cdataspec_0,htmlFormat:["AMP","EXPERIMENTAL"]}),cssspec_1=Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_0,atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4],imageUrlSpec:urlspec_0,fontUrlSpec:urlspec_1,validateAmp4Ads:!0}),cdataspec_1=Object.assign(new amp$validator$CdataSpec, -{maxBytes:2E4,maxBytesSpecUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#css",blacklistedCdataRegex:[blacklistedcdataregex_0,blacklistedcdataregex_1,blacklistedcdataregex_2],cssSpec:cssspec_1});cdataspec_1.combinedBlacklistedCdataRegex=-13;var tagspec_37=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style amp-custom (AMP4ADS)",unique:!0,mandatoryParent:"HEAD",attrs:[48,-12,13],specUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#css", -cdata:cdataspec_1,htmlFormat:["AMP4ADS"]}),urlspec_2=new amp$validator$UrlSpec(["https"]),cssspec_2=Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_2,atrulespec_4],imageUrlSpec:urlspec_2,allowedDeclarations:"azimuth background background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size border border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width box-sizing break-after break-before break-inside caption-side clear color column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width columns direction display elevation empty-cells float font font-family font-feature-settings font-kerning font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-weight height image-orientation image-resolution isolation letter-spacing line-height list-style list-style-position list-style-type margin margin-bottom margin-left margin-right margin-top max-height max-width min-height min-width mix-blend-mode object-fit object-position opacity outline outline-color outline-style outline-width overflow padding padding-bottom padding-left padding-right padding-top pause pause-after pause-before pitch pitch-range quotes richness speak speak-header speak-numeral speak-punctuation speech-rate stress table-layout text-align text-combine-upwrite text-decoration text-decoration-color text-decoration-line text-decoration-skip text-decoration-style text-emphasis text-emphasis-color text-emphasis-style text-indent text-orientation text-overflow text-transform text-underline-position unicode-bidi vertical-align voice-family width word-spacing writing-mode".split(" ")}), -cdataspec_2=Object.assign(new amp$validator$CdataSpec,{maxBytes:5E4,maxBytesSpecUrl:"https://www.ampproject.org/docs/reference/spec#maximum-size",blacklistedCdataRegex:[blacklistedcdataregex_0,blacklistedcdataregex_1,blacklistedcdataregex_2],cssSpec:cssspec_2});cdataspec_2.combinedBlacklistedCdataRegex=-13;var tagspec_38=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style amp-custom (AMP4EMAIL)",unique:!0,mandatoryParent:"HEAD",attrs:[48,-12,13],specUrl:"https://www.ampproject.org/docs/reference/spec#stylesheets", -cdata:cdataspec_2,htmlFormat:["AMP4EMAIL"]}),cdataspec_3=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-15}),tagspec_39=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp-boilerplate] - old variant",mandatoryAlternatives:-14,unique:!0,mandatoryParent:"HEAD",attrs:[-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_3,deprecation:"head > style[amp-boilerplate]",deprecationUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", -htmlFormat:["AMP","EXPERIMENTAL"]}),cdataspec_4=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-17}),tagspec_40=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"noscript > style[amp-boilerplate] - old variant",mandatoryAlternatives:-16,unique:!0,mandatoryParent:"NOSCRIPT",attrs:[-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_4,mandatoryAncestor:"HEAD",deprecation:"noscript > style[amp-boilerplate]",deprecationUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", -htmlFormat:["AMP"]}),cdataspec_5=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-18}),tagspec_41=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp-boilerplate]",mandatoryAlternatives:-14,unique:!0,mandatoryParent:"HEAD",attrs:[49,-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_5,htmlFormat:["AMP","EXPERIMENTAL"],satisfies:[-14],requires:[-16]}),cdataspec_6=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-19}), -tagspec_42=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp4ads-boilerplate]",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[50,-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#boilerplate",cdata:cdataspec_6,htmlFormat:["AMP4ADS"]}),tagspec_43=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp4email-boilerplate]",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[51,-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", -cdata:cdataspec_6,htmlFormat:["AMP4EMAIL"]}),cdataspec_7=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-20}),tagspec_44=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"noscript > style[amp-boilerplate]",mandatoryAlternatives:-16,unique:!0,mandatoryParent:"NOSCRIPT",attrs:[49,-12],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_7,mandatoryAncestor:"HEAD",htmlFormat:["AMP","EXPERIMENTAL"],satisfies:[-16],requires:[-14]}),cssspec_3= -Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4],validateKeyframes:!0,allowedDeclarations:["animation-timing-function","offset-distance","opacity","transform","visibility"]}),cdataspec_8=Object.assign(new amp$validator$CdataSpec,{maxBytes:5E5,maxBytesSpecUrl:"https://www.ampproject.org/docs/reference/spec#keyframes-stylesheet",cssSpec:cssspec_3}),tagspec_45=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style[amp-keyframes]",unique:!0, -mandatoryParent:"BODY",attrs:[52],cdata:cdataspec_8,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],mandatoryLastChild:!0}),tagspec_46=Object.assign(new amp$validator$TagSpec("BODY"),{mandatory:!0,unique:!0,mandatoryParent:"HTML",specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup"}),tagspec_47=new amp$validator$TagSpec("ARTICLE"),tagspec_48=Object.assign(new amp$validator$TagSpec("SECTION"),{disallowedAncestor:["AMP-ACCORDION"]}),tagspec_49=new amp$validator$TagSpec("NAV"),tagspec_50= -new amp$validator$TagSpec("ASIDE"),tagspec_51=Object.assign(new amp$validator$TagSpec("H1"),{attrs:[-21]}),tagspec_52=Object.assign(new amp$validator$TagSpec("H2"),{attrs:[-21]}),tagspec_53=Object.assign(new amp$validator$TagSpec("H3"),{attrs:[-21]}),tagspec_54=Object.assign(new amp$validator$TagSpec("H4"),{attrs:[-21]}),tagspec_55=Object.assign(new amp$validator$TagSpec("H5"),{attrs:[-21]}),tagspec_56=Object.assign(new amp$validator$TagSpec("H6"),{attrs:[-21]}),tagspec_57=new amp$validator$TagSpec("HEADER"), -tagspec_58=new amp$validator$TagSpec("FOOTER"),tagspec_59=new amp$validator$TagSpec("ADDRESS"),tagspec_60=Object.assign(new amp$validator$TagSpec("P"),{attrs:[-21]}),tagspec_61=new amp$validator$TagSpec("HR"),tagspec_62=new amp$validator$TagSpec("PRE"),tagspec_63=Object.assign(new amp$validator$TagSpec("BLOCKQUOTE"),{attrs:[-21],attrLists:[1]}),tagspec_64=Object.assign(new amp$validator$TagSpec("OL"),{attrs:[53,54,55]}),tagspec_65=new amp$validator$TagSpec("UL"),tagspec_66=Object.assign(new amp$validator$TagSpec("LI"), -{attrs:[56]}),tagspec_67=new amp$validator$TagSpec("DL"),tagspec_68=new amp$validator$TagSpec("DT"),tagspec_69=new amp$validator$TagSpec("DD"),tagspec_70=new amp$validator$TagSpec("FIGURE"),tagspec_71=new amp$validator$TagSpec("FIGCAPTION"),tagspec_72=Object.assign(new amp$validator$TagSpec("DIV"),{attrs:[-21]}),tagspec_73=new amp$validator$TagSpec("MAIN"),tagspec_74=Object.assign(new amp$validator$TagSpec("A"),{attrs:[57,-22,58,59,60,61,-23,-6,62,-24,-25,-26],specUrl:"https://www.ampproject.org/docs/reference/spec#links", -htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_75=Object.assign(new amp$validator$TagSpec("A"),{specName:"A (AMP4EMAIL)",attrs:[63,-22,59,60,64,-6,62,-24,-25],htmlFormat:["AMP4EMAIL"]}),tagspec_76=new amp$validator$TagSpec("EM"),tagspec_77=new amp$validator$TagSpec("STRONG"),tagspec_78=new amp$validator$TagSpec("SMALL"),tagspec_79=new amp$validator$TagSpec("S"),tagspec_80=new amp$validator$TagSpec("CITE"),tagspec_81=Object.assign(new amp$validator$TagSpec("Q"),{attrLists:[1]}),tagspec_82=new amp$validator$TagSpec("DFN"), -tagspec_83=new amp$validator$TagSpec("ABBR"),tagspec_84=new amp$validator$TagSpec("DATA"),tagspec_85=Object.assign(new amp$validator$TagSpec("TIME"),{attrs:[-27]}),tagspec_86=new amp$validator$TagSpec("CODE"),tagspec_87=new amp$validator$TagSpec("VAR"),tagspec_88=new amp$validator$TagSpec("SAMP"),tagspec_89=new amp$validator$TagSpec("KBD"),tagspec_90=new amp$validator$TagSpec("SUB"),tagspec_91=new amp$validator$TagSpec("SUP"),tagspec_92=new amp$validator$TagSpec("I"),tagspec_93=new amp$validator$TagSpec("B"), -tagspec_94=new amp$validator$TagSpec("U"),tagspec_95=new amp$validator$TagSpec("MARK"),tagspec_96=new amp$validator$TagSpec("RUBY"),tagspec_97=new amp$validator$TagSpec("RB"),tagspec_98=new amp$validator$TagSpec("RT"),tagspec_99=new amp$validator$TagSpec("RTC"),tagspec_100=new amp$validator$TagSpec("RP"),tagspec_101=new amp$validator$TagSpec("BDI"),tagspec_102=Object.assign(new amp$validator$TagSpec("BDO"),{attrs:[-28]}),tagspec_103=new amp$validator$TagSpec("SPAN"),tagspec_104=new amp$validator$TagSpec("BR"), -tagspec_105=new amp$validator$TagSpec("WBR"),tagspec_106=Object.assign(new amp$validator$TagSpec("INS"),{attrs:[-27],attrLists:[1]}),tagspec_107=Object.assign(new amp$validator$TagSpec("DEL"),{attrs:[-27],attrLists:[1]}),tagspec_108=Object.assign(new amp$validator$TagSpec("IMG"),{attrs:[-29,-30,65,66,-24,-31,-32],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-IMG",htmlFormat:["AMP"]}),tagspec_109=Object.assign(new amp$validator$TagSpec("IFRAME"), -{attrs:[-25,67,-33,68,-31,-34,69,70,71,-32],specUrl:"https://www.ampproject.org/docs/reference/components/amp-iframe",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-IFRAME",htmlFormat:["AMP"]}),tagspec_110=Object.assign(new amp$validator$TagSpec("VIDEO"),{attrs:[-35,-36,-31,-37,72,-38,-39,-40,73,-32],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-VIDEO",htmlFormat:["AMP"]}),tagspec_111= -Object.assign(new amp$validator$TagSpec("AUDIO"),{attrs:[-35,-36,-37,-41,-40,73],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-AUDIO",htmlFormat:["AMP"]}),tagspec_112=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-video > source",mandatoryParent:"AMP-VIDEO",attrs:[74,-6,-3,-42,-43],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",htmlFormat:["AMP","AMP4ADS", -"EXPERIMENTAL"]}),tagspec_113=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-audio > source",mandatoryParent:"AMP-AUDIO",attrs:[74,-6,-3,-42,-43],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_114=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"audio > source",mandatoryParent:"AUDIO",attrs:[75,76,-6],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",htmlFormat:["AMP", -"AMP4ADS","EXPERIMENTAL"]}),tagspec_115=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"video > source",mandatoryParent:"VIDEO",attrs:[75,76,-6],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_116=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-ima-video > source",mandatoryParent:"AMP-IMA-VIDEO",attrs:[-6,74,-3,-42,-43],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-ima-video"]}), -tagspec_117=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"audio > track",mandatoryParent:"AUDIO",attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_118=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"audio > track[kind=subtitles]",mandatoryParent:"AUDIO",attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_119=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"video > track",mandatoryParent:"VIDEO",attrLists:[2],htmlFormat:["AMP", -"AMP4ADS","EXPERIMENTAL"]}),tagspec_120=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"video > track[kind=subtitles]",mandatoryParent:"VIDEO",attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_121=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-audio > track",mandatoryParent:"AMP-AUDIO",attrs:[-44,-42,-45],attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_122=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-audio > track[kind=subtitles]", -mandatoryParent:"AMP-AUDIO",attrs:[-44,-42,-45],attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_123=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-video > track",mandatoryParent:"AMP-VIDEO",attrs:[-44,-42,-45],attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_124=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-video > track[kind=subtitles]",mandatoryParent:"AMP-VIDEO",attrs:[-44,-42,-45],attrLists:[3],htmlFormat:["AMP","AMP4ADS", -"EXPERIMENTAL"]}),tagspec_125=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-ima-video > track[kind=subtitles]",mandatoryParent:"AMP-IMA-VIDEO",attrs:[-44,-42,-45],attrLists:[3],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ima-video",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_126=Object.assign(new amp$validator$TagSpec("G"),{attrs:[-46,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", -"AMP4ADS","EXPERIMENTAL"]}),tagspec_127=Object.assign(new amp$validator$TagSpec("GLYPH"),{attrs:[-48,-49,-50,-51,-52,-53,-54,-55,-56],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_128=Object.assign(new amp$validator$TagSpec("GLYPHREF"),{attrs:[-57,-58,-59,-60,-61,-62],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", -"AMP4ADS","EXPERIMENTAL"]}),tagspec_129=Object.assign(new amp$validator$TagSpec("IMAGE"),{attrs:[-46,-31,-63,-47,-32,-61,-62,-64,-65,77,-66,-67,-68,-69],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_130=Object.assign(new amp$validator$TagSpec("MARKER"),{attrs:[-46,-70,-71,-72,-73,-63,-74,-75,-47,-76],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG", -htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_131=Object.assign(new amp$validator$TagSpec("METADATA"),{attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_132=Object.assign(new amp$validator$TagSpec("PATH"),{attrs:[-49,-46,-77,-78,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_133= -Object.assign(new amp$validator$TagSpec("SOLIDCOLOR"),{attrs:[-79,-80],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_134=Object.assign(new amp$validator$TagSpec("SVG"),{attrs:[-81,-82,-46,-31,-63,78,-76,-32,-61,-62,-83],attrLists:[4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_135=Object.assign(new amp$validator$TagSpec("SWITCH"), -{attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_136=Object.assign(new amp$validator$TagSpec("VIEW"),{attrs:[-46,-63,-76,-84,-83],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_137=Object.assign(new amp$validator$TagSpec("CIRCLE"),{attrs:[-85,-86,-46,-87,-78,-47],attrLists:[10,4, -5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_138=Object.assign(new amp$validator$TagSpec("ELLIPSE"),{attrs:[-85,-86,-46,-88,-89,-78,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_139=Object.assign(new amp$validator$TagSpec("LINE"),{attrs:[-46,-78,-47,-90,-91,-92,-93],attrLists:[10,4, -5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_140=Object.assign(new amp$validator$TagSpec("POLYGON"),{attrs:[-46,-94,-78,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_141=Object.assign(new amp$validator$TagSpec("POLYLINE"),{attrs:[-46,-94,-78,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", -mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_142=Object.assign(new amp$validator$TagSpec("RECT"),{attrs:[-46,-31,-88,-89,-78,-47,-32,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_143=Object.assign(new amp$validator$TagSpec("TEXT"),{attrs:[-57,-58,-46,-95,-96,-97,-98,-47,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", -mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_144=Object.assign(new amp$validator$TagSpec("TEXTPATH"),{attrs:[-46,-99,-100,-101],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_145=Object.assign(new amp$validator$TagSpec("TREF"),{attrs:[-46],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", -"AMP4ADS","EXPERIMENTAL"]}),tagspec_146=Object.assign(new amp$validator$TagSpec("TSPAN"),{attrs:[-57,-58,-46,-96,-95,-98,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_147=Object.assign(new amp$validator$TagSpec("CLIPPATH"),{attrs:[-102,-46,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", -"EXPERIMENTAL"]}),tagspec_148=Object.assign(new amp$validator$TagSpec("FILTER"),{attrs:[-46,-103,-104,-31,-105,-32,-61,-62],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_149=Object.assign(new amp$validator$TagSpec("HKERN"),{attrs:[-106,-107,-108,-109,-110],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", -"EXPERIMENTAL"]}),tagspec_150=Object.assign(new amp$validator$TagSpec("LINEARGRADIENT"),{attrs:[-46,-111,-112,-113,-90,-92,-91,-93],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_151=Object.assign(new amp$validator$TagSpec("MASK"),{attrs:[-46,-31,-114,-115,-32,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", -"AMP4ADS","EXPERIMENTAL"]}),tagspec_152=Object.assign(new amp$validator$TagSpec("PATTERN"),{attrs:[-46,-31,-116,-117,-118,-63,-76,-32,-61,-62],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_153=Object.assign(new amp$validator$TagSpec("RADIALGRADIENT"),{attrs:[-85,-86,-46,-119,-120,-121,-111,-112,-87,-113],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", -mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_154=Object.assign(new amp$validator$TagSpec("STOP"),{specName:"lineargradient > stop",attrs:[-122,-123,-124],attrLists:[10],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"LINEARGRADIENT",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_155=Object.assign(new amp$validator$TagSpec("STOP"),{specName:"radialgradient > stop",attrs:[-122,-123,-124],attrLists:[10],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", -mandatoryAncestor:"RADIALGRADIENT",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_156=Object.assign(new amp$validator$TagSpec("VKERN"),{attrs:[-106,-107,-108,-109,-110],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_157=Object.assign(new amp$validator$TagSpec("DEFS"),{attrs:[-46,-47],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG", -htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_158=Object.assign(new amp$validator$TagSpec("SYMBOL"),{attrs:[-46,-63,-76],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_159=Object.assign(new amp$validator$TagSpec("USE"),{attrs:[-46,-31,-47,-32,-61,-62],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", -"EXPERIMENTAL"]}),tagspec_160=Object.assign(new amp$validator$TagSpec("FECOLORMATRIX"),{attrs:[-125,-3,-126],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_161=Object.assign(new amp$validator$TagSpec("FECOMPOSITE"),{attrs:[-125,-127,-128,-129,-130,-131,-132],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", -"EXPERIMENTAL"]}),tagspec_162=Object.assign(new amp$validator$TagSpec("FEFLOOD"),{attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_163=Object.assign(new amp$validator$TagSpec("FEGAUSSIANBLUR"),{attrs:[-133,-125,-134],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_164=Object.assign(new amp$validator$TagSpec("FEMERGE"), -{attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_165=Object.assign(new amp$validator$TagSpec("FEMERGENODE"),{attrs:[-125],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_166=Object.assign(new amp$validator$TagSpec("FEOFFSET"),{attrs:[-57,-58,-125],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", -mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_167=Object.assign(new amp$validator$TagSpec("FOREIGNOBJECT"),{attrs:[-46,-31,-47,-32,-61,-62],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_168=Object.assign(new amp$validator$TagSpec("DESC"),{attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", -"AMP4ADS","EXPERIMENTAL"]}),tagspec_169=Object.assign(new amp$validator$TagSpec("TITLE"),{specName:"svg title",attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_170=Object.assign(new amp$validator$TagSpec("TABLE"),{attrs:[-135,-21,79,-136,-137,-138,-32]}),tagspec_171=new amp$validator$TagSpec("CAPTION"),tagspec_172=Object.assign(new amp$validator$TagSpec("COLGROUP"),{attrs:[-139]}),tagspec_173= -Object.assign(new amp$validator$TagSpec("COL"),{attrs:[-139]}),tagspec_174=new amp$validator$TagSpec("TBODY"),tagspec_175=new amp$validator$TagSpec("THEAD"),tagspec_176=new amp$validator$TagSpec("TFOOT"),tagspec_177=Object.assign(new amp$validator$TagSpec("TR"),{attrs:[-21,-136,-31,-140]}),tagspec_178=Object.assign(new amp$validator$TagSpec("TD"),{attrs:[-141,-142,-143,-21,-136,-31,-140,-32]}),tagspec_179=Object.assign(new amp$validator$TagSpec("TH"),{attrs:[-144,-141,-142,-143,-145,-146,-21,-136, --31,-140,-32]}),tagspec_180=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=GET]",attrs:[-147,-148,80,81,-149,82,-150,83,-25,-151,84,85],disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-form"]}),tagspec_181=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=POST]",attrs:[-147,-148,86,-149,87,-150,88,-25,-151,84,85],disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"], -requiresExtension:["amp-form"]}),tagspec_182=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=GET] (AMP4EMAIL)",attrs:[-147,-148,89,-149,90,-150,83,-25,-151,91],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-form"]}),tagspec_183=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=POST] (AMP4EMAIL)",attrs:[-147,-148,92,-149,93,-150,88,-25,-151,91],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-form"]}),tagspec_184=Object.assign(new amp$validator$TagSpec("DIV"), -{specName:"FORM > DIV [submitting]",mandatoryParent:"FORM",attrs:[-21,94]}),tagspec_185=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-success]",mandatoryParent:"FORM",attrs:[-21,95]}),tagspec_186=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-success][template]",mandatoryParent:"FORM",attrs:[-21,95,96]}),tagspec_187=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-error]",mandatoryParent:"FORM",attrs:[-21,97]}), -tagspec_188=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-error][template]",mandatoryParent:"FORM",attrs:[-21,97,96]}),tagspec_189=Object.assign(new amp$validator$TagSpec("LABEL"),{attrs:[-152],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_190=Object.assign(new amp$validator$TagSpec("INPUT"),{attrs:[-147,-153,-149,-154,-155,-156,-31,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,98,-173,-32,-174,-175, --176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-43,-194,-195],attrLists:[11],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_191=Object.assign(new amp$validator$TagSpec("BUTTON"),{attrs:[99,59,60,-3,-173,-178,-43,-194],attrLists:[11]}),tagspec_192=Object.assign(new amp$validator$TagSpec("BUTTON"),{specName:"amp-app-banner button[open-button]",attrs:[100,59,60,-3,-173],attrLists:[11],mandatoryAncestor:"AMP-APP-BANNER",htmlFormat:["AMP", -"AMP4ADS"],satisfies:[-196]}),tagspec_193=Object.assign(new amp$validator$TagSpec("SELECT"),{attrs:[-154,-156,-163,-167,-169,-197,-178,-185,-189,-191],attrLists:[11],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_194=Object.assign(new amp$validator$TagSpec("DATALIST"),{specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_195=Object.assign(new amp$validator$TagSpec("OPTGROUP"),{mandatoryParent:"SELECT",attrs:[-156,-198,-178,-44],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}), -tagspec_196=Object.assign(new amp$validator$TagSpec("OPTION"),{attrs:[-156,-198,-199,-173,-178,-44,-200,-194],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_197=Object.assign(new amp$validator$TagSpec("TEXTAREA"),{attrs:[-149,-154,-201,-156,-160,-162,-165,-166,-167,-202,-168,-203,-204,-170,-205,-176,-197,-206,-178,-182,-184,-187,-188,-189,-207,-190,-208,-209,-192,-210],attrLists:[11],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_198= -Object.assign(new amp$validator$TagSpec("OUTPUT"),{attrs:[-152,-211],attrLists:[11]}),tagspec_199=Object.assign(new amp$validator$TagSpec("PROGRESS"),{attrs:[-159,-173]}),tagspec_200=Object.assign(new amp$validator$TagSpec("METER"),{attrs:[-212,-213,-159,-161,-214,-173]}),tagspec_201=Object.assign(new amp$validator$TagSpec("FIELDSET"),{attrs:[-156,-178],attrLists:[11]}),tagspec_202=new amp$validator$TagSpec("LEGEND"),cdataspec_9=Object.assign(new amp$validator$CdataSpec,{blacklistedCdataRegex:[new amp$validator$BlackListedCDataRegex(".", -"contents")]});cdataspec_9.combinedBlacklistedCdataRegex=-215;var tagspec_203=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amphtml engine v0.js script",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[101,-12,102,103],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",cdata:cdataspec_9,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),tagspec_204=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp4ads engine amp4ads-v0.js script",mandatory:!0,unique:!0, -mandatoryParent:"HEAD",attrs:[101,-12,104,103],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",cdata:cdataspec_9,htmlFormat:["AMP4ADS"]}),cdataspec_10=Object.assign(new amp$validator$CdataSpec,{blacklistedCdataRegex:[blacklistedcdataregex_0]});cdataspec_10.combinedBlacklistedCdataRegex=-216;var tagspec_205=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"script type=application/ld+json",attrs:[-12,105],cdata:cdataspec_10}),tagspec_206=Object.assign(new amp$validator$TagSpec("SCRIPT"), -{specName:"script id=amp-rtc",unique:!0,mandatoryParent:"HEAD",attrs:[-12,106,107],cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_207=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-ima-video > script[type=application/json]",mandatoryParent:"AMP-IMA-VIDEO",attrs:[108],cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_208=Object.assign(new amp$validator$TagSpec("NOSCRIPT"),{specName:"noscript enclosure for boilerplate",mandatory:!0,unique:!0,mandatoryParent:"HEAD", -specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_209=Object.assign(new amp$validator$TagSpec("NOSCRIPT"),{disallowedAncestor:["NOSCRIPT"],mandatoryAncestor:"BODY",htmlFormat:["AMP"]}),tagspec_210=Object.assign(new amp$validator$TagSpec("ACRONYM"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_211=Object.assign(new amp$validator$TagSpec("BIG"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_212=Object.assign(new amp$validator$TagSpec("CENTER"), -{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_213=Object.assign(new amp$validator$TagSpec("DIR"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_214=Object.assign(new amp$validator$TagSpec("HGROUP"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_215=Object.assign(new amp$validator$TagSpec("LISTING"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_216=Object.assign(new amp$validator$TagSpec("MULTICOL"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_217=Object.assign(new amp$validator$TagSpec("NEXTID"),{htmlFormat:["AMP", -"EXPERIMENTAL"]}),tagspec_218=Object.assign(new amp$validator$TagSpec("NOBR"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_219=Object.assign(new amp$validator$TagSpec("SPACER"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_220=Object.assign(new amp$validator$TagSpec("STRIKE"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_221=Object.assign(new amp$validator$TagSpec("TT"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_222=Object.assign(new amp$validator$TagSpec("XMP"),{htmlFormat:["AMP","EXPERIMENTAL"]}), -tagspec_223=Object.assign(new amp$validator$TagSpec("SLOT"),{attrs:[-25],htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_224=Object.assign(new amp$validator$TagSpec("O:P"),{htmlFormat:["AMP"]}),amplayout_0=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM INTRINSIC NODISPLAY RESPONSIVE".split(" ")),tagspec_225=Object.assign(new amp$validator$TagSpec("AMP-IMG"),{attrs:[-29,-217,-165,-218,-219,-42,-220],attrLists:[15,12],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img", -ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),amplayout_1=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),tagspec_226=Object.assign(new amp$validator$TagSpec("AMP-IMG"),{specName:"AMP-IMG (AMP4EMAIL)",attrs:[-29,-217,-165,-218,-219],attrLists:[15,13],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img",ampLayout:amplayout_1,htmlFormat:["AMP4EMAIL"]}),tagspec_227=Object.assign(new amp$validator$TagSpec("AMP-LAYOUT"), -{attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-layout",ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),amplayout_2=Object.assign(new amp$validator$AmpLayout(["FIXED","NODISPLAY"]),{definesDefaultWidth:!0,definesDefaultHeight:!0}),tagspec_228=Object.assign(new amp$validator$TagSpec("AMP-PIXEL"),{attrs:[-221,109,110],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-pixel",ampLayout:amplayout_2,htmlFormat:["AMP","AMP4ADS", -"EXPERIMENTAL"]}),extensionspec_0=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-3q-player",allowedVersions:["0.1","latest"]}),tagspec_229=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_0}),amplayout_3=new amp$validator$AmpLayout(["FILL","FIXED","FLEX_ITEM","RESPONSIVE"]),tagspec_230=Object.assign(new amp$validator$TagSpec("AMP-3Q-PLAYER"),{attrs:[111,112],attrLists:[15],ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-3q-player"]}), -extensionspec_1=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access-laterpay",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_231=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_1,requiresExtension:["amp-access"]}),extensionspec_2=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access-scroll",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_232=Object.assign(new amp$validator$TagSpec("SCRIPT"), -{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_2,requiresExtension:["amp-access"]}),extensionspec_3=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_233=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_3}),tagspec_234=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-access extension .json script", -unique:!0,mandatoryParent:"HEAD",attrs:[113,-12,106],cdata:cdataspec_10,htmlFormat:["AMP"],requiresExtension:["amp-access","amp-analytics"]}),extensionspec_4=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-accordion",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_235=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_4}),amplayout_4=new amp$validator$AmpLayout(["CONTAINER"]),childtagspec_0=Object.assign(new amp$validator$ChildTagSpec, -{childTagNameOneof:["SECTION"]}),tagspec_236=Object.assign(new amp$validator$TagSpec("AMP-ACCORDION"),{attrs:[114],specUrl:"https://www.ampproject.org/docs/reference/components/amp-accordion",ampLayout:amplayout_4,childTags:childtagspec_0,requiresExtension:["amp-accordion"]}),childtagspec_1=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:2,firstChildTagNameOneof:"H1 H2 H3 H4 H5 H6 HEADER".split(" ")}),tagspec_237=Object.assign(new amp$validator$TagSpec("SECTION"),{specName:"amp-accordion > section", -mandatoryParent:"AMP-ACCORDION",attrs:[115,116],childTags:childtagspec_1}),extensionspec_5=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ad-exit",allowedVersions:["0.1","latest"]}),tagspec_238=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP4ADS"],extensionSpec:extensionspec_5}),amplayout_5=new amp$validator$AmpLayout(["NODISPLAY","CONTAINER"]),childtagspec_2=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["SCRIPT"]}), -tagspec_239=Object.assign(new amp$validator$TagSpec("AMP-AD-EXIT"),{attrs:[117],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad-exit",ampLayout:amplayout_5,childTags:childtagspec_2,htmlFormat:["AMP4ADS"],requires:[-222],requiresExtension:["amp-ad-exit"]}),tagspec_240=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-ad-exit configuration JSON",mandatoryParent:"AMP-AD-EXIT",attrs:[-12,118],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad-exit", -htmlFormat:["AMP4ADS"],satisfies:[-222],requiresExtension:["amp-ad-exit"]}),extensionspec_6=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ad",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_241=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-ad extension .js script",attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_6}),amplayout_6=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM FLUID INTRINSIC NODISPLAY RESPONSIVE".split(" ")), -tagspec_242=Object.assign(new amp$validator$TagSpec("AMP-AD"),{attrs:[-29,-223,-224,-225,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),tagspec_243=Object.assign(new amp$validator$TagSpec("AMP-AD"),{specName:"amp-ad with data-multi-size attribute",attrs:[-29,119,-223,-224,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad", -ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),tagspec_244=Object.assign(new amp$validator$TagSpec("AMP-AD"),{specName:"amp-ad with data-enable-refresh attribute",attrs:[-29,120,-223,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-FX-FLYING-CARPET", -"AMP-LIGHTBOX"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),tagspec_245=Object.assign(new amp$validator$TagSpec("AMP-EMBED"),{attrs:[-29,-223,-224,-225,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),tagspec_246=Object.assign(new amp$validator$TagSpec("AMP-EMBED"),{specName:"amp-embed with data-multi-size attribute", -attrs:[-29,119,-223,-224,74,76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"],htmlFormat:["AMP"],alsoRequiresTagWarning:[241],requiresExtension:["amp-ad"]}),extensionspec_7=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-analytics",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}), -tagspec_247=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_7}),tagspec_248=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-analytics extension .json script",mandatoryParent:"AMP-ANALYTICS",attrs:[-12,108],specUrl:"https://www.ampproject.org/docs/reference/components/amp-analytics",cdata:cdataspec_10,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-analytics"]}),tagspec_249= -Object.assign(new amp$validator$TagSpec("AMP-ANALYTICS"),{attrs:[-3,121],specUrl:"https://www.ampproject.org/docs/reference/components/amp-analytics",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-analytics"]}),extensionspec_8=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-anim",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_250=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP", -"AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_8}),extensionspec_9=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-anim",allowedVersions:["0.1","latest"]}),tagspec_251=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-anim extension .js script (AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_9}),tagspec_252=Object.assign(new amp$validator$TagSpec("AMP-ANIM"),{attrs:[-29,-217,-36],attrLists:[15,12],specUrl:"https://www.ampproject.org/docs/reference/components/amp-anim", -ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-anim"]}),tagspec_253=Object.assign(new amp$validator$TagSpec("AMP-ANIM"),{specName:"AMP-ANIM (AMP4EMAIL)",attrs:[-29,-217,-36],attrLists:[15,13],specUrl:"https://www.ampproject.org/docs/reference/components/amp-anim",ampLayout:amplayout_1,htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-anim"]}),extensionspec_10=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-animation",allowedVersions:["0.1","latest"]}), -tagspec_254=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_10}),tagspec_255=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-animation extension .json script",mandatoryParent:"AMP-ANIMATION",attrs:[-12,108],cdata:cdataspec_10,satisfies:[-226],requiresExtension:["amp-animation"]}),amplayout_7=new amp$validator$AmpLayout(["NODISPLAY"]),tagspec_256=Object.assign(new amp$validator$TagSpec("AMP-ANIMATION"), -{attrs:[122],attrLists:[15],ampLayout:amplayout_7,childTags:childtagspec_2,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requires:[-226],requiresExtension:["amp-animation"]}),extensionspec_11=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-apester-media",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_257=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_11}),tagspec_258=Object.assign(new amp$validator$TagSpec("AMP-APESTER-MEDIA"), -{attrs:[123,124],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-apester-media",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-apester-media"]}),extensionspec_12=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-app-banner",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0}),tagspec_259=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_12}),tagspec_260=Object.assign(new amp$validator$TagSpec("AMP-APP-BANNER"), -{unique:!0,mandatoryParent:"BODY",attrs:[117],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-app-banner",ampLayout:amplayout_7,htmlFormat:["AMP"],requires:[-4,-196],requiresExtension:["amp-app-banner"]}),extensionspec_13=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-audio",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_261=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_13}), -amplayout_8=Object.assign(new amp$validator$AmpLayout(["FIXED","FIXED_HEIGHT","NODISPLAY"]),{definesDefaultWidth:!0,definesDefaultHeight:!0}),tagspec_262=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{attrs:[111,125],attrLists:[19,15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",ampLayout:amplayout_8,disallowedAncestor:["AMP-STORY"],htmlFormat:["AMP"],requiresExtension:["amp-audio"]}),tagspec_263=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{specName:"amp-story >> amp-audio", -attrs:[126],attrLists:[19,15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",ampLayout:amplayout_8,mandatoryAncestor:"AMP-STORY",htmlFormat:["AMP"],requiresExtension:["amp-audio"]}),tagspec_264=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{specName:"amp-audio (A4A)",attrLists:[19,15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",ampLayout:amplayout_8,htmlFormat:["AMP4ADS"],requiresExtension:["amp-audio"]}),extensionspec_14=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-auto-ads",allowedVersions:["0.1","latest"]}),tagspec_265=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_14}),tagspec_266=Object.assign(new amp$validator$TagSpec("AMP-AUTO-ADS"),{mandatoryParent:"BODY",attrs:[76],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-auto-ads",htmlFormat:["AMP"],requiresExtension:["amp-auto-ads"]}),extensionspec_15=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-bind", -allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_267=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_15}),tagspec_268=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-bind extension .json script",mandatoryParent:"AMP-STATE",attrs:[-12,108],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",cdata:cdataspec_10,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-bind"]}), -childtagspec_3=Object.assign(new amp$validator$ChildTagSpec,{firstChildTagNameOneof:["SCRIPT"]}),tagspec_269=Object.assign(new amp$validator$TagSpec("AMP-STATE"),{specName:"amp-state",attrs:[127,117,-227,74,-42],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",childTags:childtagspec_3,htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-bind"]}),tagspec_270=Object.assign(new amp$validator$TagSpec("AMP-STATE"),{specName:"amp-state (AMP4EMAIL)",attrs:[117],attrLists:[14], -specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",disallowedAncestor:["AMP-LIST","AMP-STATE"],childTags:childtagspec_3,htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-bind"]}),tagspec_271=Object.assign(new amp$validator$TagSpec("AMP-BIND-MACRO"),{attrs:[-228,128,117],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-bind"]}),extensionspec_16=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-brid-player", -allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_272=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_16}),tagspec_273=Object.assign(new amp$validator$TagSpec("AMP-BRID-PLAYER"),{attrs:[-35,129,130,131,132,133],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-brid-player",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-brid-player"]}), -extensionspec_17=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-brightcove",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_274=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_17}),tagspec_275=Object.assign(new amp$validator$TagSpec("AMP-BRIGHTCOVE"),{attrs:[134,-229,-230,-231,-232,-233,-234],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-brightcove", -ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-brightcove"]}),extensionspec_18=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-byside-content",allowedVersions:["0.1","latest"]}),tagspec_276=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_18}),tagspec_277=Object.assign(new amp$validator$TagSpec("AMP-BYSIDE-CONTENT"),{attrs:[135,136],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-byside-content"]}), -extensionspec_19=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-call-tracking",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_278=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_19}),amplayout_9=new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM RESPONSIVE".split(" ")),childtagspec_4=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["A"]}), -tagspec_279=Object.assign(new amp$validator$TagSpec("AMP-CALL-TRACKING"),{attrs:[137],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-call-tracking",ampLayout:amplayout_9,childTags:childtagspec_4,htmlFormat:["AMP"],requiresExtension:["amp-call-tracking"]}),extensionspec_20=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-carousel",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_280=Object.assign(new amp$validator$TagSpec("SCRIPT"), -{attrLists:[17],extensionSpec:extensionspec_20}),tagspec_281=Object.assign(new amp$validator$TagSpec("AMP-CAROUSEL"),{attrs:[138,111,-36,139,140,141,142,-235],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-carousel",ampLayout:amplayout_0,requiresExtension:["amp-carousel"]}),extensionspec_21=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-dailymotion",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_282= -Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_21}),amplayout_10=new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT","FLEX_ITEM","RESPONSIVE"]),tagspec_283=Object.assign(new amp$validator$TagSpec("AMP-DAILYMOTION"),{attrs:[-35,143,144,145,146,147,148,149,150],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-dailymotion",ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-dailymotion"]}), -extensionspec_22=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-dynamic-css-classes",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"NONE"}),tagspec_284=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_22}),extensionspec_23=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-experiment",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_285= -Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_23}),tagspec_286=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-experiment extension .json script",mandatoryParent:"AMP-EXPERIMENT",attrs:[-12,108],specUrl:"https://www.ampproject.org/docs/reference/components/amp-experiment",cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_287=Object.assign(new amp$validator$TagSpec("AMP-EXPERIMENT"),{unique:!0, -specUrl:"https://www.ampproject.org/docs/reference/components/amp-experiment",htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-experiment"]}),extensionspec_24=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook-comments",allowedVersions:["0.1","latest"]}),tagspec_288=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_24}),tagspec_289=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-COMMENTS"),{attrs:[151],attrLists:[15], -ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-comments"]}),extensionspec_25=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook-like",allowedVersions:["0.1","latest"]}),tagspec_290=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_25}),tagspec_291=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-LIKE"),{attrs:[152],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-like"]}), -extensionspec_26=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook-page",allowedVersions:["0.1","latest"]}),tagspec_292=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_26}),tagspec_293=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-PAGE"),{attrs:[152],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-page"]}),extensionspec_27=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-facebook",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_294=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_27}),tagspec_295=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK"),{attrs:[151],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook"]}),extensionspec_28=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-fit-text", -allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_296=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_28}),tagspec_297=Object.assign(new amp$validator$TagSpec("AMP-FIT-TEXT"),{attrs:[-236,-237],attrLists:[15],ampLayout:amplayout_0,requiresExtension:["amp-fit-text"]}),extensionspec_29=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-font",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, -requiresUsage:"GRANDFATHERED"}),tagspec_298=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_29}),tagspec_299=Object.assign(new amp$validator$TagSpec("AMP-FONT"),{attrs:[153,-238,-239,154,-240,-241,-242,-243,-244],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-font"]}),extensionspec_30=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-form",allowedVersions:["0.1", -"latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_300=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_30}),extensionspec_31=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-fx-collection",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_301=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_31}),extensionspec_32=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-fx-flying-carpet",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_302=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_32}),tagspec_303=Object.assign(new amp$validator$TagSpec("AMP-FX-FLYING-CARPET"),{attrs:[155],attrLists:[15],htmlFormat:["AMP"],requiresExtension:["amp-fx-flying-carpet"]}),extensionspec_33=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-gfycat", -allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_304=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_33}),tagspec_305=Object.assign(new amp$validator$TagSpec("AMP-GFYCAT"),{attrs:[156,157],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-gfycat",ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-gfycat"]}),extensionspec_34=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-gist",allowedVersions:["0.1","latest"]}),tagspec_306=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_34}),amplayout_11=new amp$validator$AmpLayout(["FIXED_HEIGHT"]),tagspec_307=Object.assign(new amp$validator$TagSpec("AMP-GIST"),{attrs:[158],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-gist",ampLayout:amplayout_11,htmlFormat:["AMP"],requiresExtension:["amp-gist"]}),extensionspec_35=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-gwd-animation",allowedVersions:["0.1","latest"]}),tagspec_308=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP4ADS"],extensionSpec:extensionspec_35}),tagspec_309=Object.assign(new amp$validator$TagSpec("AMP-GWD-ANIMATION"),{attrs:[-245],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP4ADS"],requiresExtension:["amp-gwd-animation"]}),extensionspec_36=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-hulu",allowedVersions:["0.1","latest"]}),tagspec_310= -Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_36}),tagspec_311=Object.assign(new amp$validator$TagSpec("AMP-HULU"),{attrs:[159],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-hulu",ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-hulu"]}),extensionspec_37=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-iframe",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, -requiresUsage:"GRANDFATHERED"}),tagspec_312=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_37}),tagspec_313=Object.assign(new amp$validator$TagSpec("AMP-IFRAME"),{attrs:[-246,160,161,162,67,-33,68,-34,69,163,71,164],attrLists:[15],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-iframe"]}),extensionspec_38=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ima-video",allowedVersions:["0.1","latest"]}),tagspec_314= -Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_38}),tagspec_315=Object.assign(new amp$validator$TagSpec("AMP-IMA-VIDEO"),{attrs:[165,166],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ima-video",ampLayout:new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT","NODISPLAY","RESPONSIVE"]),htmlFormat:["AMP"],requiresExtension:["amp-ima-video"]}),extensionspec_39=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-image-lightbox",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_316=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_39}),extensionspec_40=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-image-lightbox",allowedVersions:["0.1","latest"]}),tagspec_317=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-image-lightbox] (AMP4EMAIL)", -attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_40}),tagspec_318=Object.assign(new amp$validator$TagSpec("AMP-IMAGE-LIGHTBOX"),{attrs:[-36],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL"],requiresExtension:["amp-image-lightbox"]}),extensionspec_41=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-imgur",allowedVersions:["0.1","latest"]}),tagspec_319=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_41}), -tagspec_320=Object.assign(new amp$validator$TagSpec("AMP-IMGUR"),{attrs:[167],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-imgur"]}),extensionspec_42=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-instagram",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_321=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_42}),tagspec_322=Object.assign(new amp$validator$TagSpec("AMP-INSTAGRAM"), -{attrs:[-29,168],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-instagram"]}),extensionspec_43=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-install-serviceworker",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_323=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_43}),tagspec_324=Object.assign(new amp$validator$TagSpec("AMP-INSTALL-SERVICEWORKER"), -{attrs:[75,169],ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-install-serviceworker"]}),extensionspec_44=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-izlesene",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_325=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_44}),tagspec_326=Object.assign(new amp$validator$TagSpec("AMP-IZLESENE"),{attrs:[170],attrLists:[15],ampLayout:amplayout_10, -htmlFormat:["AMP"],requiresExtension:["amp-izlesene"]}),extensionspec_45=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-jwplayer",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_327=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_45}),tagspec_328=Object.assign(new amp$validator$TagSpec("AMP-JWPLAYER"),{attrs:[171,172,173],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-jwplayer"]}), -extensionspec_46=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-kaltura-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_329=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_46}),tagspec_330=Object.assign(new amp$validator$TagSpec("AMP-KALTURA-PLAYER"),{attrs:[174],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-kaltura-player"]}),extensionspec_47= -Object.assign(new amp$validator$ExtensionSpec,{name:"amp-lightbox",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_331=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_47}),extensionspec_48=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-lightbox",allowedVersions:["0.1","latest"]}),tagspec_332=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-lightbox] (AMP4EMAIL)", -attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_48}),tagspec_333=Object.assign(new amp$validator$TagSpec("AMP-LIGHTBOX"),{attrs:[-36,-247,-248],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-lightbox"]}),extensionspec_49=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-list",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_334=Object.assign(new amp$validator$TagSpec("SCRIPT"), -{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_49}),extensionspec_50=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-list",allowedVersions:["0.1","latest"]}),tagspec_335=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-list] (AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_50}),tagspec_336=Object.assign(new amp$validator$TagSpec("AMP-LIST"),{attrs:[-249,-250,-251,-252,75,-225,-42,-253],attrLists:[15], -ampLayout:amplayout_1,htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-list"]}),tagspec_337=Object.assign(new amp$validator$TagSpec("AMP-LIST"),{specName:"AMP-LIST (AMP4EMAIL)",attrs:[175,-250,-251,-252,-225,-253],attrLists:[15],ampLayout:amplayout_1,disallowedAncestor:["AMP-LIST","AMP-STATE"],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-list"]}),extensionspec_51=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-live-list",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}), -tagspec_338=Object.assign(new amp$validator$TagSpec("SCRIPT"),{mandatoryParent:"HEAD",attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],uniqueWarning:!0,extensionSpec:extensionspec_51}),amplayout_13=new amp$validator$AmpLayout(["CONTAINER","FIXED_HEIGHT"]),referencepoint_0=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:340,mandatory:!0,unique:!0}),referencepoint_1=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:341,mandatory:!0,unique:!0}),referencepoint_2=Object.assign(new amp$validator$ReferencePoint, -{tagSpecName:342,unique:!0}),tagspec_339=Object.assign(new amp$validator$TagSpec("AMP-LIVE-LIST"),{attrs:[176,177,99,117],ampLayout:amplayout_13,referencePoints:[referencepoint_0,referencepoint_1,referencepoint_2],htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-live-list"]}),tagspec_340=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [update]",attrs:[178],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#update",htmlFormat:["AMP", -"EXPERIMENTAL"]}),referencepoint_3=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:343}),tagspec_341=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [items]",attrs:[179],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#items",referencePoints:[referencepoint_3],htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_342=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [pagination]",attrs:[180],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#pagination", -htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_343=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [items] item",attrs:[117,181,-254,-255],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#items",htmlFormat:["AMP","EXPERIMENTAL"]}),extensionspec_52=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-mathml",allowedVersions:["0.1","latest"]}),tagspec_344=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"], -extensionSpec:extensionspec_52}),tagspec_345=Object.assign(new amp$validator$TagSpec("AMP-MATHML"),{attrs:[182,-256],attrLists:[15],ampLayout:amplayout_4,htmlFormat:["AMP"],requiresExtension:["amp-mathml"]}),extensionspec_53=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-mustache",allowedVersions:["0.1","latest"],isCustomTemplate:!0,deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_346=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"], -extensionSpec:extensionspec_53}),extensionspec_54=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-mustache",allowedVersions:["0.1","latest"],isCustomTemplate:!0}),tagspec_347=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-mustache] (AMP4ADS/AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4ADS","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_54}),tagspec_348=Object.assign(new amp$validator$TagSpec("TEMPLATE"),{attrs:[183],disallowedAncestor:["TEMPLATE", -"FORM > DIV [submit-success][template]","FORM > DIV [submit-error][template]"],requiresExtension:["amp-mustache"]}),extensionspec_55=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-nexxtv-player",allowedVersions:["0.1","latest"]}),tagspec_349=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_55}),tagspec_350=Object.assign(new amp$validator$TagSpec("AMP-NEXXTV-PLAYER"),{attrs:[184,185,186,187,188],attrLists:[15],ampLayout:amplayout_1, -htmlFormat:["AMP"],requiresExtension:["amp-nexxtv-player"]}),extensionspec_56=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-o2-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_351=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_56}),tagspec_352=Object.assign(new amp$validator$TagSpec("AMP-O2-PLAYER"),{attrs:[189,190],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"], -requiresExtension:["amp-o2-player"]}),extensionspec_57=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ooyala-player",allowedVersions:["0.1","latest"]}),tagspec_353=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_57}),tagspec_354=Object.assign(new amp$validator$TagSpec("AMP-OOYALA-PLAYER"),{attrs:[191,192,193],attrLists:[15],ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-ooyala-player"]}),extensionspec_58= -Object.assign(new amp$validator$ExtensionSpec,{name:"amp-pinterest",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_355=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_58}),tagspec_356=Object.assign(new amp$validator$TagSpec("AMP-PINTEREST"),{attrs:[194,-29],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-pinterest",ampLayout:amplayout_1,htmlFormat:["AMP"], -requiresExtension:["amp-pinterest"]}),extensionspec_59=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-playbuzz",allowedVersions:["0.1","latest"]}),tagspec_357=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_59}),tagspec_358=Object.assign(new amp$validator$TagSpec("AMP-PLAYBUZZ"),{attrs:[195,196,197,198,199],attrLists:[15],ampLayout:new amp$validator$AmpLayout(["RESPONSIVE","FIXED_HEIGHT"]),htmlFormat:["AMP"],requiresExtension:["amp-playbuzz"]}), -extensionspec_60=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-position-observer",allowedVersions:["0.1","latest"]}),tagspec_359=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_60}),tagspec_360=Object.assign(new amp$validator$TagSpec("AMP-POSITION-OBSERVER"),{attrs:[200,-257,201],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-position-observer"]}), -extensionspec_61=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-reach-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_361=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_61}),tagspec_362=Object.assign(new amp$validator$TagSpec("AMP-REACH-PLAYER"),{attrs:[202],attrLists:[15],ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-reach-player"]}),extensionspec_62= -Object.assign(new amp$validator$ExtensionSpec,{name:"amp-reddit",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0}),tagspec_363=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_62}),tagspec_364=Object.assign(new amp$validator$TagSpec("AMP-REDDIT"),{attrs:[203,204,205,206],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-reddit"]}),extensionspec_63=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-riddle-quiz",allowedVersions:["0.1","latest"]}),tagspec_365=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_63}),tagspec_366=Object.assign(new amp$validator$TagSpec("AMP-RIDDLE-QUIZ"),{attrs:[207],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-riddle-quiz",ampLayout:new amp$validator$AmpLayout(["RESPONSIVE"]),htmlFormat:["AMP"],requiresExtension:["amp-riddle-quiz"]}),extensionspec_64=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-selector",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_367=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_64}),tagspec_368=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-selector] (AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_64}),amplayout_16=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT NODISPLAY RESPONSIVE CONTAINER".split(" ")), -referencepoint_4=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:370}),referencepoint_5=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:371}),tagspec_369=Object.assign(new amp$validator$TagSpec("AMP-SELECTOR"),{attrs:[99,-211,208,209,-178,-200],attrLists:[15,11],ampLayout:amplayout_16,disallowedAncestor:["AMP-SELECTOR"],referencePoints:[referencepoint_4,referencepoint_5],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-selector"]}),tagspec_370=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"), -{specName:"AMP-SELECTOR option",attrs:[210,99,211],specUrl:"https://www.ampproject.org/docs/reference/components/amp-selector",htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),tagspec_371=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-SELECTOR child",referencePoints:[referencepoint_4,referencepoint_5],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),extensionspec_65=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sidebar",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, -requiresUsage:"GRANDFATHERED"}),tagspec_372=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_65}),extensionspec_66=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sidebar",allowedVersions:["0.1","latest"]}),tagspec_373=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-sidebar] (AMP4EMAIL)",attrLists:[17],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_66}),tagspec_374= -Object.assign(new amp$validator$TagSpec("AMP-SIDEBAR"),{mandatoryParent:"BODY",attrs:[212],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-sidebar"]}),childtagspec_5=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["UL"]}),tagspec_375=Object.assign(new amp$validator$TagSpec("NAV"),{specName:"amp-sidebar > nav",mandatoryParent:"AMP-SIDEBAR",attrs:[213,214],childTags:childtagspec_5,htmlFormat:["AMP","AMP4EMAIL", -"EXPERIMENTAL"]}),extensionspec_67=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-slides",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"NONE"}),tagspec_376=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],deprecation:"amp-carousel",deprecationUrl:"https://www.ampproject.org/docs/reference/components/amp-carousel",htmlFormat:["AMP"],extensionSpec:extensionspec_67}),extensionspec_68=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-social-share", -allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_377=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4ADS"],extensionSpec:extensionspec_68}),tagspec_378=Object.assign(new amp$validator$TagSpec("AMP-SOCIAL-SHARE"),{attrs:[215,76],attrLists:[15],ampLayout:new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),htmlFormat:["AMP","AMP4ADS"],requiresExtension:["amp-social-share"]}), -extensionspec_69=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-soundcloud",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_379=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_69}),tagspec_380=Object.assign(new amp$validator$TagSpec("AMP-SOUNDCLOUD"),{attrs:[216,217,218,219,220],attrLists:[15],ampLayout:amplayout_11,htmlFormat:["AMP"],requiresExtension:["amp-soundcloud"]}), -extensionspec_70=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-springboard-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_381=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_70}),tagspec_382=Object.assign(new amp$validator$TagSpec("AMP-SPRINGBOARD-PLAYER"),{attrs:[221,222,223,224,225,226],attrLists:[15],ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-springboard-player"]}), -extensionspec_71=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sticky-ad",allowedVersions:["0.1","1.0","latest"],deprecatedVersions:["0.1"],requiresUsage:"GRANDFATHERED"}),tagspec_383=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_71}),childtagspec_6=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,firstChildTagNameOneof:["AMP-AD"]}),tagspec_384=Object.assign(new amp$validator$TagSpec("AMP-STICKY-AD"), -{unique:!0,attrLists:[15],ampLayout:amplayout_7,disallowedAncestor:["AMP-APP-BANNER"],childTags:childtagspec_6,htmlFormat:["AMP"],requiresExtension:["amp-sticky-ad"]}),extensionspec_72=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-story",allowedVersions:["0.1","latest"]}),tagspec_385=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_72}),childtagspec_7=Object.assign(new amp$validator$ChildTagSpec,{childTagNameOneof:["AMP-ANALYTICS", -"AMP-PIXEL","AMP-STORY-PAGE"],mandatoryMinNumChildTags:1}),tagspec_386=Object.assign(new amp$validator$TagSpec("AMP-STORY"),{mandatoryParent:"BODY",attrs:[227,228,229],childTags:childtagspec_7,htmlFormat:["AMP"],requires:[-258],requiresExtension:["amp-story"],siblingsDisallowed:!0}),childtagspec_8=Object.assign(new amp$validator$ChildTagSpec,{childTagNameOneof:["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-GRID-LAYER"],mandatoryMinNumChildTags:1}),tagspec_387=Object.assign(new amp$validator$TagSpec("AMP-STORY-PAGE"), -{mandatoryParent:"AMP-STORY",attrs:[117,-259,229],childTags:childtagspec_8,htmlFormat:["AMP"],satisfies:[-258],requiresExtension:["amp-story"]}),referencepoint_6=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:389}),referencepoint_7=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:390}),tagspec_388=Object.assign(new amp$validator$TagSpec("AMP-STORY-GRID-LAYER"),{attrs:[230],mandatoryAncestor:"AMP-STORY-PAGE",referencePoints:[referencepoint_6,referencepoint_7],htmlFormat:["AMP"], -descendantTagList:"amp-story-grid-layer-allowed-descendants"}),tagspec_389=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-STORY-GRID-LAYER default",attrs:[-260,231,232,233,234,235,236,237,-261,-262,-263],specUrl:"https://www.ampproject.org/docs/reference/components/amp-story",referencePoints:[referencepoint_7],htmlFormat:["AMP"]}),tagspec_390=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-STORY-GRID-LAYER animate-in",attrs:[237,-261,-262,-263], -specUrl:"https://www.ampproject.org/docs/reference/components/amp-story",referencePoints:[referencepoint_7],htmlFormat:["AMP"]}),extensionspec_73=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-timeago",allowedVersions:["0.1","latest"]}),tagspec_391=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_73}),tagspec_392=Object.assign(new amp$validator$TagSpec("AMP-TIMEAGO"),{attrs:[238,239,-264],attrLists:[15], -specUrl:"https://www.ampproject.org/docs/reference/components/amp-timeago",ampLayout:new amp$validator$AmpLayout(["FIXED","FIXED_HEIGHT","RESPONSIVE"]),htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-timeago"]}),extensionspec_74=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-twitter",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_393=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"], -extensionSpec:extensionspec_74}),tagspec_394=Object.assign(new amp$validator$TagSpec("AMP-TWITTER"),{attrs:[240],attrLists:[15],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-twitter"]}),extensionspec_75=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-user-notification",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_395=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_75}), -tagspec_396=Object.assign(new amp$validator$TagSpec("AMP-USER-NOTIFICATION"),{attrs:[241,242,243],attrLists:[15],ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-user-notification"]}),extensionspec_76=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-video",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_397=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-video extension .js script",attrLists:[17],htmlFormat:["AMP","AMP4ADS"],extensionSpec:extensionspec_76}), -tagspec_398=Object.assign(new amp$validator$TagSpec("AMP-VIDEO"),{attrs:[-39],attrLists:[15,20],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",ampLayout:amplayout_1,disallowedAncestor:["AMP-STORY"],htmlFormat:["AMP","AMP4ADS"],alsoRequiresTagWarning:[397]}),tagspec_399=Object.assign(new amp$validator$TagSpec("AMP-VIDEO"),{specName:"amp-story >> amp-video",attrs:[126,244],attrLists:[15,20],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",ampLayout:amplayout_1, -mandatoryAncestor:"AMP-STORY",htmlFormat:["AMP","AMP4ADS"],requiresExtension:["amp-video"]}),extensionspec_77=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vimeo",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_400=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_77}),tagspec_401=Object.assign(new amp$validator$TagSpec("AMP-VIMEO"),{attrs:[170],attrLists:[15],ampLayout:amplayout_10, -htmlFormat:["AMP"],requiresExtension:["amp-vimeo"]}),extensionspec_78=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vine",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_402=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_78}),tagspec_403=Object.assign(new amp$validator$TagSpec("AMP-VINE"),{attrs:[245],attrLists:[15],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-vine"]}), -extensionspec_79=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vk",allowedVersions:["0.1","latest"]}),tagspec_404=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_79}),tagspec_405=Object.assign(new amp$validator$TagSpec("AMP-VK"),{attrs:[246],attrLists:[15],ampLayout:new amp$validator$AmpLayout(["FIXED","FLEX_ITEM","RESPONSIVE"]),htmlFormat:["AMP"],requiresExtension:["amp-vk"]}),extensionspec_80=Object.assign(new amp$validator$ExtensionSpec, -{name:"amp-web-push",allowedVersions:["0.1","latest"]}),tagspec_406=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_80}),tagspec_407=Object.assign(new amp$validator$TagSpec("AMP-WEB-PUSH"),{attrs:[247,248,249,250],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-web-push",ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-web-push"]}),tagspec_408=Object.assign(new amp$validator$TagSpec("AMP-WEB-PUSH-WIDGET"), -{attrs:[251],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-web-push",ampLayout:new amp$validator$AmpLayout(["FIXED"]),htmlFormat:["AMP"],requiresExtension:["amp-web-push"]}),extensionspec_81=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-wistia-player",allowedVersions:["0.1","latest"]}),tagspec_409=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],htmlFormat:["AMP"],extensionSpec:extensionspec_81}),tagspec_410=Object.assign(new amp$validator$TagSpec("AMP-WISTIA-PLAYER"), -{attrs:[252],attrLists:[15],ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-wistia-player"]}),extensionspec_82=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-youtube",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_411=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[17],extensionSpec:extensionspec_82}),tagspec_412=Object.assign(new amp$validator$TagSpec("AMP-YOUTUBE"),{attrs:[-35,253,254,255,-265],attrLists:[15], -ampLayout:amplayout_1,requiresExtension:["amp-youtube"]}),errorformat_0=new amp$validator$ErrorFormat("UNKNOWN_CODE","Unknown error."),errorformat_1=new amp$validator$ErrorFormat("MANDATORY_TAG_MISSING","The mandatory tag '%1' is missing or incorrect."),errorformat_2=new amp$validator$ErrorFormat("TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'."),errorformat_3=new amp$validator$ErrorFormat("WARNING_TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'. This will soon be an error."), -errorformat_4=new amp$validator$ErrorFormat("WARNING_EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused (no '%2' tag seen). This may become an error in the future."),errorformat_5=new amp$validator$ErrorFormat("EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused. Please remove this extension."),errorformat_6=new amp$validator$ErrorFormat("WARNING_EXTENSION_DEPRECATED_VERSION","The extension '%1' is referenced at version '%2' which is a deprecated version. Please use a more recent version of this extension. This may become an error in the future."), -errorformat_7=new amp$validator$ErrorFormat("ATTR_REQUIRED_BUT_MISSING","The attribute '%1' in tag '%2' is missing or incorrect, but required by attribute '%3'."),errorformat_8=new amp$validator$ErrorFormat("DISALLOWED_TAG","The tag '%1' is disallowed."),errorformat_9=new amp$validator$ErrorFormat("GENERAL_DISALLOWED_TAG","The tag '%1' is disallowed except in specific forms."),errorformat_10=new amp$validator$ErrorFormat("DISALLOWED_SCRIPT_TAG","Only AMP runtime 'script' tags are allowed, and only in the document head."), -errorformat_11=new amp$validator$ErrorFormat("DISALLOWED_ATTR","The attribute '%1' may not appear in tag '%2'."),errorformat_12=new amp$validator$ErrorFormat("DISALLOWED_STYLE_ATTR","The inline 'style' attribute is not allowed in AMP documents. Use 'style amp-custom' tag instead."),errorformat_13=new amp$validator$ErrorFormat("INVALID_ATTR_VALUE","The attribute '%1' in tag '%2' is set to the invalid value '%3'."),errorformat_14=new amp$validator$ErrorFormat("DUPLICATE_ATTRIBUTE","The tag '%1' contains the attribute '%2' repeated multiple times."), -errorformat_15=new amp$validator$ErrorFormat("ATTR_VALUE_REQUIRED_BY_LAYOUT","Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."),errorformat_16=new amp$validator$ErrorFormat("IMPLIED_LAYOUT_INVALID","The implied layout '%1' is not supported by tag '%2'."),errorformat_17=new amp$validator$ErrorFormat("SPECIFIED_LAYOUT_INVALID","The specified layout '%1' is not supported by tag '%2'."),errorformat_18=new amp$validator$ErrorFormat("MANDATORY_ATTR_MISSING", -"The mandatory attribute '%1' is missing in tag '%2'."),errorformat_19=new amp$validator$ErrorFormat("INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT","Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."),errorformat_20=new amp$validator$ErrorFormat("STYLESHEET_TOO_LONG","The author stylesheet specified in tag '%1' is too long - we saw %2 bytes whereas the limit is %3 bytes."),errorformat_21=new amp$validator$ErrorFormat("MANDATORY_CDATA_MISSING_OR_INCORRECT", -"The mandatory text inside tag '%1' is missing or incorrect."),errorformat_22=new amp$validator$ErrorFormat("CDATA_VIOLATES_BLACKLIST","The text inside tag '%1' contains '%2', which is disallowed."),errorformat_23=new amp$validator$ErrorFormat("NON_WHITESPACE_CDATA_ENCOUNTERED","The tag '%1' contains text, which is disallowed."),errorformat_24=new amp$validator$ErrorFormat("DISALLOWED_PROPERTY_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is disallowed."),errorformat_25=new amp$validator$ErrorFormat("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE", -"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."),errorformat_26=new amp$validator$ErrorFormat("DUPLICATE_DIMENSION","Multiple image candidates with the same width or pixel density found in attribute '%1' in tag '%2'."),errorformat_27=new amp$validator$ErrorFormat("MISSING_URL","Missing URL for attribute '%1' in tag '%2'."),errorformat_28=new amp$validator$ErrorFormat("INVALID_URL","Malformed URL '%3' for attribute '%1' in tag '%2'."),errorformat_29=new amp$validator$ErrorFormat("INVALID_URL_PROTOCOL", -"Invalid URL protocol '%3:' for attribute '%1' in tag '%2'."),errorformat_30=new amp$validator$ErrorFormat("DISALLOWED_DOMAIN","The domain '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_31=new amp$validator$ErrorFormat("DISALLOWED_RELATIVE_URL","The relative URL '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_32=new amp$validator$ErrorFormat("MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE","The property '%1' is missing from attribute '%2' in tag '%3'."),errorformat_33= -new amp$validator$ErrorFormat("UNESCAPED_TEMPLATE_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."),errorformat_34=new amp$validator$ErrorFormat("TEMPLATE_PARTIAL_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."),errorformat_35=new amp$validator$ErrorFormat("DEPRECATED_TAG","The tag '%1' is deprecated - use '%2' instead."),errorformat_36=new amp$validator$ErrorFormat("DEPRECATED_ATTR", -"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."),errorformat_37=new amp$validator$ErrorFormat("MUTUALLY_EXCLUSIVE_ATTRS","Mutually exclusive attributes encountered in tag '%1' - pick one of %2."),errorformat_38=new amp$validator$ErrorFormat("MANDATORY_ONEOF_ATTR_MISSING","The tag '%1' is missing a mandatory attribute - pick one of %2."),errorformat_39=new amp$validator$ErrorFormat("WRONG_PARENT_TAG","The parent tag of tag '%1' is '%2', but it can only be '%3'."),errorformat_40= -new amp$validator$ErrorFormat("DISALLOWED_TAG_ANCESTOR","The tag '%1' may not appear as a descendant of tag '%2'."),errorformat_41=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR","The tag '%1' may only appear as a descendant of tag '%2'."),errorformat_42=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR_WITH_HINT","The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"),errorformat_43=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG","The tag '%1' appears more than once in the document."), -errorformat_44=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG_WARNING","The tag '%1' appears more than once in the document. This will soon be an error."),errorformat_45=new amp$validator$ErrorFormat("TEMPLATE_IN_ATTR_NAME","Mustache template syntax in attribute name '%1' in tag '%2'."),errorformat_46=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_IMPLIED_LAYOUT","The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."),errorformat_47=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT", -"The attribute '%1' in tag '%2' is disallowed by specified layout '%3'."),errorformat_48=new amp$validator$ErrorFormat("INCORRECT_NUM_CHILD_TAGS","Tag '%1' must have %2 child tags - saw %3 child tags."),errorformat_49=new amp$validator$ErrorFormat("INCORRECT_MIN_NUM_CHILD_TAGS","Tag '%1' must have a minimum of %2 child tags - saw %3 child tags."),errorformat_50=new amp$validator$ErrorFormat("TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS","Tag '%1' is not allowed to have any sibling tags ('%2' should only have 1 child)."), -errorformat_51=new amp$validator$ErrorFormat("MANDATORY_LAST_CHILD_TAG","Tag '%1', if present, must be the last child of tag '%2'."),errorformat_52=new amp$validator$ErrorFormat("DISALLOWED_CHILD_TAG_NAME","Tag '%1' is disallowed as child of tag '%2'. Child tag must be one of %3."),errorformat_53=new amp$validator$ErrorFormat("DISALLOWED_FIRST_CHILD_TAG_NAME","Tag '%1' is disallowed as first child of tag '%2'. First child tag must be one of %3."),errorformat_54=new amp$validator$ErrorFormat("DISALLOWED_MANUFACTURED_BODY", -"Tag or text which is only allowed inside the body section found outside of the body section."),errorformat_55=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT","The tag '%1', a child tag of '%2', does not satisfy one of the acceptable reference points: %3."),errorformat_56=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR","The tag '%1', a child tag of '%2', does not satisfy the reference point '%3'."),errorformat_57=new amp$validator$ErrorFormat("MANDATORY_REFERENCE_POINT_MISSING", -"The mandatory reference point '%1' for '%2' is missing."),errorformat_58=new amp$validator$ErrorFormat("DUPLICATE_REFERENCE_POINT","The reference point '%1' for '%2' must be unique but a duplicate was encountered."),errorformat_59=new amp$validator$ErrorFormat("TAG_REFERENCE_POINT_CONFLICT","The tag '%1' conflicts with reference point '%2' because both define reference points."),errorformat_60=new amp$validator$ErrorFormat("BASE_TAG_MUST_PRECEED_ALL_URLS","The tag '%1', which contains URLs, was found earlier in the document than the BASE element."), -errorformat_61=new amp$validator$ErrorFormat("MISSING_REQUIRED_EXTENSION","The tag '%1' requires including the '%2' extension JavaScript."),errorformat_62=new amp$validator$ErrorFormat("ATTR_MISSING_REQUIRED_EXTENSION","The attribute '%1' requires including the '%2' extension JavaScript."),errorformat_63=new amp$validator$ErrorFormat("DOCUMENT_TOO_COMPLEX","The document is too complex."),errorformat_64=new amp$validator$ErrorFormat("INVALID_UTF8","The document contains invalid UTF8."),errorformat_65= -new amp$validator$ErrorFormat("CSS_SYNTAX","CSS syntax error in tag '%1' - %2."),errorformat_66=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_AT_RULE","CSS syntax error in tag '%1' - saw invalid at rule '@%2'."),errorformat_67=new amp$validator$ErrorFormat("CSS_SYNTAX_STRAY_TRAILING_BACKSLASH","CSS syntax error in tag '%1' - stray trailing backslash."),errorformat_68=new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_COMMENT","CSS syntax error in tag '%1' - unterminated comment."),errorformat_69= -new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_STRING","CSS syntax error in tag '%1' - unterminated string."),errorformat_70=new amp$validator$ErrorFormat("CSS_SYNTAX_BAD_URL","CSS syntax error in tag '%1' - bad url."),errorformat_71=new amp$validator$ErrorFormat("CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE","CSS syntax error in tag '%1' - end of stylesheet encountered in prelude of a qualified rule."),errorformat_72=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY","CSS syntax error in tag '%1' - invalid property '%2'. The only allowed properties are '%3'."), -errorformat_73=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY_NOLIST","CSS syntax error in tag '%1' - invalid property '%2'."),errorformat_74=new amp$validator$ErrorFormat("CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS","CSS syntax error in tag '%1' - qualified rule '%2' has no declarations."),errorformat_75=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - qualified rule '%2' must be located inside of a keyframe."), -errorformat_76=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - keyframe inside keyframe is not allowed."),errorformat_77=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_DECLARATION","CSS syntax error in tag '%1' - invalid declaration."),errorformat_78=new amp$validator$ErrorFormat("CSS_SYNTAX_INCOMPLETE_DECLARATION","CSS syntax error in tag '%1' - incomplete declaration."),errorformat_79=new amp$validator$ErrorFormat("CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR", -"CSS syntax error in tag '%1' - invalid pseudo selector."),errorformat_80=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_SELECTOR","CSS syntax error in tag '%1' - missing selector."),errorformat_81=new amp$validator$ErrorFormat("CSS_SYNTAX_NOT_A_SELECTOR_START","CSS syntax error in tag '%1' - not a selector start."),errorformat_82=new amp$validator$ErrorFormat("CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR","CSS syntax error in tag '%1' - unparsed input remains in selector."),errorformat_83=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_URL", -"CSS syntax error in tag '%1' - missing url."),errorformat_84=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL","CSS syntax error in tag '%1' - invalid url '%2'."),errorformat_85=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL_PROTOCOL","CSS syntax error in tag '%1' - invalid url protocol '%2:'."),errorformat_86=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_DOMAIN","CSS syntax error in tag '%1' - invalid domain '%2'."),errorformat_87=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_RELATIVE_URL", -"CSS syntax error in tag '%1' - disallowed relative url '%2'."),errorformat_88=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_ATTR_SELECTOR","CSS syntax error in tag '%1' - invalid attribute selector."),errorformat_89=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'."),errorformat_90=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'. Allowed values: %4."), -errorformat_91=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE","CSS syntax error in tag '%1' - the property '%2' is disallowed within @%3. Allowed properties: %4."),errorformat_92=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH","CSS syntax error in tag '%1' - the property '%2' is disallowed together with '%3'. Allowed properties: %4."),errorformat_93=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION","CSS syntax error in tag '%1' - the property '%2' is disallowed unless the enclosing rule is prefixed with the '%3' qualification."), -errorformat_94=new amp$validator$ErrorFormat("CSS_SYNTAX_MALFORMED_MEDIA_QUERY","CSS syntax error in tag '%1' - malformed media query."),errorformat_95=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_MEDIA_TYPE","CSS syntax error in tag '%1' - disallowed media type '%2'."),errorformat_96=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE","CSS syntax error in tag '%1' - disallowed media feature '%2'."),errorspecificity_0=Object.assign(new amp$validator$ErrorSpecificity,{code:"UNKNOWN_CODE", +htmlFormat:["AMP4EMAIL"]}),tagspec_4=Object.assign(new amp$validator$TagSpec("HEAD"),{mandatory:!0,unique:!0,mandatoryParent:"HTML",specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup"}),tagspec_5=Object.assign(new amp$validator$TagSpec("TITLE"),{specName:"title",attrs:[-1]}),tagspec_6=Object.assign(new amp$validator$TagSpec("BASE"),{unique:!0,mandatoryParent:"HEAD",attrs:[4,5],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_7=Object.assign(new amp$validator$TagSpec("LINK"), +{specName:"link rel=",attrs:[-2,6],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",disallowedAncestor:["TEMPLATE"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_8=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link rel=canonical",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[7,8],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_9=Object.assign(new amp$validator$TagSpec("LINK"), +{specName:"link rel=manifest",mandatoryParent:"HEAD",attrs:[9,10],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS"],satisfies:[-3]}),tagspec_10=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link rel=preload",attrs:[-4,-2,11],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",disallowedAncestor:["TEMPLATE"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_11=Object.assign(new amp$validator$TagSpec("LINK"), +{specName:"link rel=stylesheet for fonts",mandatoryParent:"HEAD",attrs:[-5,12,-6,13,14,-7,-8],specUrl:"https://www.ampproject.org/docs/reference/spec#custom-fonts",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_12=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link itemprop=sameAs",attrs:[15,16],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_13=Object.assign(new amp$validator$TagSpec("LINK"), +{specName:"link itemprop=",attrs:[15,17],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_14=Object.assign(new amp$validator$TagSpec("LINK"),{specName:"link property=",attrs:[15,18],attrLists:[0],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_15=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta charset=utf-8",mandatory:!0,unique:!0, +mandatoryParent:"HEAD",attrs:[19],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup"}),tagspec_16=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=viewport",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[20,21],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_17=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=X-UA-Compatible",attrs:[22,23],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags", +mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_18=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=apple-itunes-app",mandatoryParent:"HEAD",attrs:[24,25],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",htmlFormat:["AMP","AMP4ADS"],satisfies:[-3]}),tagspec_19=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-experiments-opt-in",mandatoryParent:"HEAD",attrs:[26,27],htmlFormat:["AMP","AMP4ADS"]}),tagspec_20= +Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-3p-iframe-src",mandatoryParent:"HEAD",attrs:[28,29],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",htmlFormat:["AMP"]}),tagspec_21=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-experiment-token",mandatoryParent:"HEAD",attrs:[30,27],htmlFormat:["AMP"]}),tagspec_22=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-link-variable-allowed-origin",mandatoryParent:"HEAD", +attrs:[31,27],htmlFormat:["AMP"]}),tagspec_23=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-google-clientid-id-api",mandatoryParent:"HEAD",attrs:[32,27],htmlFormat:["AMP"]}),tagspec_24=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-ad-doubleclick-sra",mandatoryParent:"HEAD",attrs:[33],htmlFormat:["AMP"]}),tagspec_25=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp4ads-id",mandatoryParent:"HEAD",attrs:[34,27],htmlFormat:["AMP4ADS"]}), +tagspec_26=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name= and content=",attrs:[35,-9,-10,-11,-12],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_27=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=Content-Type",attrs:[36,37],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_28=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=content-language", +attrs:[38,27],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_29=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=pics-label",attrs:[39,27],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_30=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=imagetoolbar", +attrs:[40,27],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_31=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=Content-Style-Type",attrs:[41,42],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_32=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=Content-Script-Type", +attrs:[43,44],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_33=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=origin-trial",attrs:[45,27],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_34=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=resource-type", +attrs:[46,27],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_35=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta http-equiv=x-dns-prefetch-control",attrs:[47,48],specUrl:"https://www.ampproject.org/docs/reference/spec#html-tags",mandatoryAncestor:"HEAD",htmlFormat:["AMP"]}),tagspec_36=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-ad-enable-refresh",attrs:[49, +27],mandatoryAncestor:"HEAD",htmlFormat:["AMP","AMP4ADS"]}),tagspec_37=Object.assign(new amp$validator$TagSpec("META"),{specName:"meta name=amp-to-amp-navigation",unique:!0,mandatoryParent:"HEAD",attrs:[50,27],htmlFormat:["AMP","EXPERIMENTAL"]}),blacklistedcdataregex_0=new amp$validator$BlackListedCDataRegex("\x3c!--","html comments"),blacklistedcdataregex_1=new amp$validator$BlackListedCDataRegex("(^|\\W)i-amphtml-","CSS i-amphtml- name prefix"),blacklistedcdataregex_2=new amp$validator$BlackListedCDataRegex("!important", +"CSS !important"),atrulespec_0=new amp$validator$AtRuleSpec("font-face","PARSE_AS_DECLARATIONS"),atrulespec_1=new amp$validator$AtRuleSpec("keyframes","PARSE_AS_RULES"),atrulespec_2=new amp$validator$AtRuleSpec("media","PARSE_AS_RULES"),atrulespec_3=new amp$validator$AtRuleSpec("supports","PARSE_AS_RULES"),atrulespec_4=new amp$validator$AtRuleSpec("$DEFAULT","PARSE_AS_ERROR"),urlspec_0=Object.assign(new amp$validator$UrlSpec(["https","http","data","absolute"]),{allowRelative:!0,allowEmpty:!0}),urlspec_1= +Object.assign(new amp$validator$UrlSpec(["https","http","data"]),{allowRelative:!0,allowEmpty:!0}),cssspec_0=Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_0,atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4],imageUrlSpec:urlspec_0,fontUrlSpec:urlspec_1}),cdataspec_0=Object.assign(new amp$validator$CdataSpec,{maxBytes:5E4,maxBytesSpecUrl:"https://www.ampproject.org/docs/reference/spec#maximum-size",blacklistedCdataRegex:[blacklistedcdataregex_0,blacklistedcdataregex_1,blacklistedcdataregex_2], +cssSpec:cssspec_0});cdataspec_0.combinedBlacklistedCdataRegex=-14;var tagspec_38=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style amp-custom",unique:!0,mandatoryParent:"HEAD",attrs:[51,-13,14],specUrl:"https://www.ampproject.org/docs/reference/spec#stylesheets",cdata:cdataspec_0,htmlFormat:["AMP","EXPERIMENTAL"]}),cssspec_1=Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_0,atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4],imageUrlSpec:urlspec_0,fontUrlSpec:urlspec_1, +validateAmp4Ads:!0}),cdataspec_1=Object.assign(new amp$validator$CdataSpec,{maxBytes:2E4,maxBytesSpecUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#css",blacklistedCdataRegex:[blacklistedcdataregex_0,blacklistedcdataregex_1,blacklistedcdataregex_2],cssSpec:cssspec_1});cdataspec_1.combinedBlacklistedCdataRegex=-14;var tagspec_39=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style amp-custom (AMP4ADS)",unique:!0,mandatoryParent:"HEAD",attrs:[51, +-13,14],specUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#css",cdata:cdataspec_1,htmlFormat:["AMP4ADS"]}),urlspec_2=new amp$validator$UrlSpec(["https"]),cssspec_2=Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_2,atrulespec_4],imageUrlSpec:urlspec_2,allowedDeclarations:"azimuth background background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size border border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width box-sizing break-after break-before break-inside caption-side clear color column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width columns direction display elevation empty-cells float font font-family font-feature-settings font-kerning font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-weight height image-orientation image-resolution isolation letter-spacing line-height list-style list-style-position list-style-type margin margin-bottom margin-left margin-right margin-top max-height max-width min-height min-width mix-blend-mode object-fit object-position opacity outline outline-color outline-style outline-width overflow padding padding-bottom padding-left padding-right padding-top pause pause-after pause-before pitch pitch-range quotes richness speak speak-header speak-numeral speak-punctuation speech-rate stress table-layout text-align text-combine-upright text-decoration text-decoration-color text-decoration-line text-decoration-skip text-decoration-style text-emphasis text-emphasis-color text-emphasis-style text-indent text-orientation text-overflow text-transform text-underline-position unicode-bidi vertical-align voice-family width word-spacing writing-mode".split(" ")}), +cdataspec_2=Object.assign(new amp$validator$CdataSpec,{maxBytes:5E4,maxBytesSpecUrl:"https://www.ampproject.org/docs/reference/spec#maximum-size",blacklistedCdataRegex:[blacklistedcdataregex_0,blacklistedcdataregex_1,blacklistedcdataregex_2],cssSpec:cssspec_2});cdataspec_2.combinedBlacklistedCdataRegex=-14;var tagspec_40=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style amp-custom (AMP4EMAIL)",unique:!0,mandatoryParent:"HEAD",attrs:[51,-13,14],specUrl:"https://www.ampproject.org/docs/reference/spec#stylesheets", +cdata:cdataspec_2,htmlFormat:["AMP4EMAIL"]}),cdataspec_3=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-16}),tagspec_41=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp-boilerplate] - old variant",mandatoryAlternatives:-15,unique:!0,mandatoryParent:"HEAD",attrs:[-13],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_3,deprecation:"head > style[amp-boilerplate]",deprecationUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", +htmlFormat:["AMP","EXPERIMENTAL"]}),cdataspec_4=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-18}),tagspec_42=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"noscript > style[amp-boilerplate] - old variant",mandatoryAlternatives:-17,unique:!0,mandatoryParent:"NOSCRIPT",attrs:[-13],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_4,mandatoryAncestor:"HEAD",deprecation:"noscript > style[amp-boilerplate]",deprecationUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", +htmlFormat:["AMP"]}),cdataspec_5=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-19}),tagspec_43=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp-boilerplate]",mandatoryAlternatives:-15,unique:!0,mandatoryParent:"HEAD",attrs:[52,-13],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_5,htmlFormat:["AMP","EXPERIMENTAL"],satisfies:[-15],requires:[-17]}),cdataspec_6=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-20}), +tagspec_44=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp4ads-boilerplate]",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[53,-13],specUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-a4a/amp-a4a-format.md#boilerplate",cdata:cdataspec_6,htmlFormat:["AMP4ADS"]}),tagspec_45=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"head > style[amp4email-boilerplate]",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[54,-13],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md", +cdata:cdataspec_6,htmlFormat:["AMP4EMAIL"]}),cdataspec_7=Object.assign(new amp$validator$CdataSpec,{cdataRegex:-21}),tagspec_46=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"noscript > style[amp-boilerplate]",mandatoryAlternatives:-17,unique:!0,mandatoryParent:"NOSCRIPT",attrs:[52,-13],specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",cdata:cdataspec_7,mandatoryAncestor:"HEAD",htmlFormat:["AMP","EXPERIMENTAL"],satisfies:[-17],requires:[-15]}),cssspec_3= +Object.assign(new amp$validator$CssSpec,{atRuleSpec:[atrulespec_1,atrulespec_2,atrulespec_3,atrulespec_4],validateKeyframes:!0,allowedDeclarations:["animation-timing-function","offset-distance","opacity","transform","visibility"]}),cdataspec_8=Object.assign(new amp$validator$CdataSpec,{maxBytes:5E5,maxBytesSpecUrl:"https://www.ampproject.org/docs/reference/spec#keyframes-stylesheet",cssSpec:cssspec_3}),tagspec_47=Object.assign(new amp$validator$TagSpec("STYLE"),{specName:"style[amp-keyframes]",unique:!0, +mandatoryParent:"BODY",attrs:[55],cdata:cdataspec_8,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],mandatoryLastChild:!0}),tagspec_48=Object.assign(new amp$validator$TagSpec("BODY"),{mandatory:!0,unique:!0,mandatoryParent:"HTML",specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup"}),tagspec_49=new amp$validator$TagSpec("ARTICLE"),tagspec_50=Object.assign(new amp$validator$TagSpec("SECTION"),{disallowedAncestor:["AMP-ACCORDION"]}),tagspec_51=new amp$validator$TagSpec("NAV"),tagspec_52= +new amp$validator$TagSpec("ASIDE"),tagspec_53=Object.assign(new amp$validator$TagSpec("H1"),{attrs:[-22]}),tagspec_54=Object.assign(new amp$validator$TagSpec("H2"),{attrs:[-22]}),tagspec_55=Object.assign(new amp$validator$TagSpec("H3"),{attrs:[-22]}),tagspec_56=Object.assign(new amp$validator$TagSpec("H4"),{attrs:[-22]}),tagspec_57=Object.assign(new amp$validator$TagSpec("H5"),{attrs:[-22]}),tagspec_58=Object.assign(new amp$validator$TagSpec("H6"),{attrs:[-22]}),tagspec_59=new amp$validator$TagSpec("HEADER"), +tagspec_60=new amp$validator$TagSpec("FOOTER"),tagspec_61=new amp$validator$TagSpec("ADDRESS"),tagspec_62=Object.assign(new amp$validator$TagSpec("P"),{attrs:[-22]}),tagspec_63=new amp$validator$TagSpec("HR"),tagspec_64=new amp$validator$TagSpec("PRE"),tagspec_65=Object.assign(new amp$validator$TagSpec("BLOCKQUOTE"),{attrs:[-22],attrLists:[1]}),tagspec_66=Object.assign(new amp$validator$TagSpec("OL"),{attrs:[56,57,58]}),tagspec_67=new amp$validator$TagSpec("UL"),tagspec_68=Object.assign(new amp$validator$TagSpec("LI"), +{attrs:[59]}),tagspec_69=new amp$validator$TagSpec("DL"),tagspec_70=new amp$validator$TagSpec("DT"),tagspec_71=new amp$validator$TagSpec("DD"),tagspec_72=new amp$validator$TagSpec("FIGURE"),tagspec_73=new amp$validator$TagSpec("FIGCAPTION"),tagspec_74=Object.assign(new amp$validator$TagSpec("DIV"),{attrs:[-22]}),tagspec_75=new amp$validator$TagSpec("MAIN"),tagspec_76=Object.assign(new amp$validator$TagSpec("A"),{attrs:[60,-23,-24,61,62,63,64,-25,-6,65,-26,-27,-28],specUrl:"https://www.ampproject.org/docs/reference/spec#links", +htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_77=Object.assign(new amp$validator$TagSpec("A"),{specName:"A (AMP4EMAIL)",attrs:[66,-23,62,63,67,-6,65,-26,-27],htmlFormat:["AMP4EMAIL"]}),tagspec_78=new amp$validator$TagSpec("EM"),tagspec_79=new amp$validator$TagSpec("STRONG"),tagspec_80=new amp$validator$TagSpec("SMALL"),tagspec_81=new amp$validator$TagSpec("S"),tagspec_82=new amp$validator$TagSpec("CITE"),tagspec_83=Object.assign(new amp$validator$TagSpec("Q"),{attrLists:[1]}),tagspec_84=new amp$validator$TagSpec("DFN"), +tagspec_85=new amp$validator$TagSpec("ABBR"),tagspec_86=new amp$validator$TagSpec("DATA"),tagspec_87=Object.assign(new amp$validator$TagSpec("TIME"),{attrs:[-29]}),tagspec_88=new amp$validator$TagSpec("CODE"),tagspec_89=new amp$validator$TagSpec("VAR"),tagspec_90=new amp$validator$TagSpec("SAMP"),tagspec_91=new amp$validator$TagSpec("KBD"),tagspec_92=new amp$validator$TagSpec("SUB"),tagspec_93=new amp$validator$TagSpec("SUP"),tagspec_94=new amp$validator$TagSpec("I"),tagspec_95=new amp$validator$TagSpec("B"), +tagspec_96=new amp$validator$TagSpec("U"),tagspec_97=new amp$validator$TagSpec("MARK"),tagspec_98=new amp$validator$TagSpec("RUBY"),tagspec_99=new amp$validator$TagSpec("RB"),tagspec_100=new amp$validator$TagSpec("RT"),tagspec_101=new amp$validator$TagSpec("RTC"),tagspec_102=new amp$validator$TagSpec("RP"),tagspec_103=new amp$validator$TagSpec("BDI"),tagspec_104=Object.assign(new amp$validator$TagSpec("BDO"),{attrs:[-30]}),tagspec_105=new amp$validator$TagSpec("SPAN"),tagspec_106=new amp$validator$TagSpec("BR"), +tagspec_107=new amp$validator$TagSpec("WBR"),tagspec_108=Object.assign(new amp$validator$TagSpec("INS"),{attrs:[-29],attrLists:[1]}),tagspec_109=Object.assign(new amp$validator$TagSpec("DEL"),{attrs:[-29],attrLists:[1]}),tagspec_110=Object.assign(new amp$validator$TagSpec("IMG"),{attrs:[-31,-32,68,69,-26,-33,-34],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-IMG",htmlFormat:["AMP"]}),tagspec_111=Object.assign(new amp$validator$TagSpec("IFRAME"), +{attrs:[-27,70,-24,71,-33,-35,72,73,74,-34],specUrl:"https://www.ampproject.org/docs/reference/components/amp-iframe",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-IFRAME",htmlFormat:["AMP"]}),tagspec_112=Object.assign(new amp$validator$TagSpec("VIDEO"),{attrs:[-36,-37,-33,-38,75,-39,-40,-41,76,-34],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-VIDEO",htmlFormat:["AMP"]}),tagspec_113= +Object.assign(new amp$validator$TagSpec("AUDIO"),{attrs:[-36,-37,-38,-42,-41,76],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",mandatoryAncestor:"NOSCRIPT",mandatoryAncestorSuggestedAlternative:"AMP-AUDIO",htmlFormat:["AMP"]}),tagspec_114=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-video > source",mandatoryParent:"AMP-VIDEO",attrs:[77,-6,-43,-44,-45],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_115=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-audio > source",mandatoryParent:"AMP-AUDIO",attrs:[77,-6,-43,-44,-45],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_116=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"audio > source",mandatoryParent:"AUDIO",attrs:[78,79,-6],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_117=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"video > source",mandatoryParent:"VIDEO",attrs:[78,79,-6],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_118=Object.assign(new amp$validator$TagSpec("SOURCE"),{specName:"amp-ima-video > source",mandatoryParent:"AMP-IMA-VIDEO",attrs:[-6,77,-43,-44,-45],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-ima-video"]}), +tagspec_119=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"audio > track",mandatoryParent:"AUDIO",attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_120=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"audio > track[kind=subtitles]",mandatoryParent:"AUDIO",attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_121=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"video > track",mandatoryParent:"VIDEO",attrLists:[2],htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_122=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"video > track[kind=subtitles]",mandatoryParent:"VIDEO",attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_123=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-audio > track",mandatoryParent:"AMP-AUDIO",attrs:[-46,-44,-47],attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_124=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-audio > track[kind=subtitles]", +mandatoryParent:"AMP-AUDIO",attrs:[-46,-44,-47],attrLists:[3],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_125=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-video > track",mandatoryParent:"AMP-VIDEO",attrs:[-46,-44,-47],attrLists:[2],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_126=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-video > track[kind=subtitles]",mandatoryParent:"AMP-VIDEO",attrs:[-46,-44,-47],attrLists:[3],htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_127=Object.assign(new amp$validator$TagSpec("TRACK"),{specName:"amp-ima-video > track[kind=subtitles]",mandatoryParent:"AMP-IMA-VIDEO",attrs:[-46,-44,-47],attrLists:[3],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ima-video",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_128=Object.assign(new amp$validator$TagSpec("G"),{attrs:[-48,-49],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_129=Object.assign(new amp$validator$TagSpec("GLYPH"),{attrs:[-50,-51,-52,-53,-54,-55,-56,-57,-58],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_130=Object.assign(new amp$validator$TagSpec("GLYPHREF"),{attrs:[-59,-60,-61,-62,-63,-64],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_131=Object.assign(new amp$validator$TagSpec("IMAGE"),{attrs:[-48,-33,-65,-49,-34,-63,-64,-66,-67,80,-68,-69,-70,-71],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_132=Object.assign(new amp$validator$TagSpec("MARKER"),{attrs:[-48,-72,-73,-74,-75,-65,-76,-77,-49,-78],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG", +htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_133=Object.assign(new amp$validator$TagSpec("METADATA"),{attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_134=Object.assign(new amp$validator$TagSpec("PATH"),{attrs:[-51,-48,-79,-80,-49],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_135= +Object.assign(new amp$validator$TagSpec("SOLIDCOLOR"),{attrs:[-81,-82],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_136=Object.assign(new amp$validator$TagSpec("SVG"),{attrs:[-83,-84,-48,-33,-65,81,-78,-34,-63,-64,-85],attrLists:[4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_137=Object.assign(new amp$validator$TagSpec("SWITCH"), +{attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_138=Object.assign(new amp$validator$TagSpec("VIEW"),{attrs:[-48,-65,-78,-86,-85],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_139=Object.assign(new amp$validator$TagSpec("CIRCLE"),{attrs:[-87,-88,-48,-89,-80,-49],attrLists:[10,4, +5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_140=Object.assign(new amp$validator$TagSpec("ELLIPSE"),{attrs:[-87,-88,-48,-90,-91,-80,-49],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_141=Object.assign(new amp$validator$TagSpec("LINE"),{attrs:[-48,-80,-49,-92,-93,-94,-95],attrLists:[10,4, +5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_142=Object.assign(new amp$validator$TagSpec("POLYGON"),{attrs:[-48,-96,-80,-49],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_143=Object.assign(new amp$validator$TagSpec("POLYLINE"),{attrs:[-48,-96,-80,-49],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_144=Object.assign(new amp$validator$TagSpec("RECT"),{attrs:[-48,-33,-90,-91,-80,-49,-34,-63,-64],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_145=Object.assign(new amp$validator$TagSpec("TEXT"),{attrs:[-59,-60,-48,-97,-98,-99,-100,-49,-63,-64],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_146=Object.assign(new amp$validator$TagSpec("TEXTPATH"),{attrs:[-48,-101,-102,-103],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_147=Object.assign(new amp$validator$TagSpec("TREF"),{attrs:[-48],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_148=Object.assign(new amp$validator$TagSpec("TSPAN"),{attrs:[-59,-60,-48,-98,-97,-100,-63,-64],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_149=Object.assign(new amp$validator$TagSpec("CLIPPATH"),{attrs:[-104,-48,-49],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_150=Object.assign(new amp$validator$TagSpec("FILTER"),{attrs:[-48,-105,-106,-33,-107,-34,-63,-64],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_151=Object.assign(new amp$validator$TagSpec("HKERN"),{attrs:[-108,-109,-110,-111,-112],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_152=Object.assign(new amp$validator$TagSpec("LINEARGRADIENT"),{attrs:[-48,-113,-114,-115,-92,-94,-93,-95],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_153=Object.assign(new amp$validator$TagSpec("MASK"),{attrs:[-48,-33,-116,-117,-34,-63,-64],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP", +"AMP4ADS","EXPERIMENTAL"]}),tagspec_154=Object.assign(new amp$validator$TagSpec("PATTERN"),{attrs:[-48,-33,-118,-119,-120,-65,-78,-34,-63,-64],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_155=Object.assign(new amp$validator$TagSpec("RADIALGRADIENT"),{attrs:[-87,-88,-48,-121,-122,-123,-113,-114,-89,-115],attrLists:[10,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_156=Object.assign(new amp$validator$TagSpec("STOP"),{specName:"lineargradient > stop",attrs:[-124,-125,-126],attrLists:[10],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"LINEARGRADIENT",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_157=Object.assign(new amp$validator$TagSpec("STOP"),{specName:"radialgradient > stop",attrs:[-124,-125,-126],attrLists:[10],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"RADIALGRADIENT",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_158=Object.assign(new amp$validator$TagSpec("VKERN"),{attrs:[-108,-109,-110,-111,-112],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_159=Object.assign(new amp$validator$TagSpec("DEFS"),{attrs:[-48,-49],attrLists:[10,4,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG", +htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_160=Object.assign(new amp$validator$TagSpec("SYMBOL"),{attrs:[-48,-65,-78],attrLists:[10,5,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_161=Object.assign(new amp$validator$TagSpec("USE"),{attrs:[-48,-33,-49,-34,-63,-64],attrLists:[10,4,5,7,9],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_162=Object.assign(new amp$validator$TagSpec("FECOLORMATRIX"),{attrs:[-127,-43,-128],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_163=Object.assign(new amp$validator$TagSpec("FECOMPOSITE"),{attrs:[-127,-129,-130,-131,-132,-133,-134],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS", +"EXPERIMENTAL"]}),tagspec_164=Object.assign(new amp$validator$TagSpec("FEFLOOD"),{attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_165=Object.assign(new amp$validator$TagSpec("FEGAUSSIANBLUR"),{attrs:[-135,-127,-136],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_166=Object.assign(new amp$validator$TagSpec("FEMERGE"), +{attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_167=Object.assign(new amp$validator$TagSpec("FEMERGENODE"),{attrs:[-127],attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_168=Object.assign(new amp$validator$TagSpec("FEOFFSET"),{attrs:[-59,-60,-127],attrLists:[10,5,6,7],specUrl:"https://www.ampproject.org/docs/reference/spec#svg", +mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_169=Object.assign(new amp$validator$TagSpec("DESC"),{attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),tagspec_170=Object.assign(new amp$validator$TagSpec("TITLE"),{specName:"svg title",attrLists:[10,5],specUrl:"https://www.ampproject.org/docs/reference/spec#svg",mandatoryAncestor:"SVG",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}), +tagspec_171=Object.assign(new amp$validator$TagSpec("TABLE"),{attrs:[-137,-22,82,-138,-139,-140,-34]}),tagspec_172=new amp$validator$TagSpec("CAPTION"),tagspec_173=Object.assign(new amp$validator$TagSpec("COLGROUP"),{attrs:[-141]}),tagspec_174=Object.assign(new amp$validator$TagSpec("COL"),{attrs:[-141]}),tagspec_175=new amp$validator$TagSpec("TBODY"),tagspec_176=new amp$validator$TagSpec("THEAD"),tagspec_177=new amp$validator$TagSpec("TFOOT"),tagspec_178=Object.assign(new amp$validator$TagSpec("TR"), +{attrs:[-22,-138,-33,-142]}),tagspec_179=Object.assign(new amp$validator$TagSpec("TD"),{attrs:[-143,-144,-145,-22,-138,-33,-142,-34]}),tagspec_180=Object.assign(new amp$validator$TagSpec("TH"),{attrs:[-146,-143,-144,-145,-147,-148,-22,-138,-33,-142,-34]}),tagspec_181=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=GET]",attrs:[-149,-150,83,84,-151,85,-152,86,-27,-153,87,88],disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-form"]}), +tagspec_182=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=POST]",attrs:[-149,-150,89,-151,85,-152,90,-27,-153,87,88],disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-form"]}),tagspec_183=Object.assign(new amp$validator$TagSpec("FORM"),{specName:"FORM [method=GET] (AMP4EMAIL)",attrs:[-149,-150,91,-151,85,-152,86,-27,-153,92],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-form"]}),tagspec_184=Object.assign(new amp$validator$TagSpec("FORM"), +{specName:"FORM [method=POST] (AMP4EMAIL)",attrs:[-149,-150,93,-151,85,-152,90,-27,-153,92],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-form"]}),tagspec_185=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submitting]",mandatoryParent:"FORM",attrs:[-22,94]}),tagspec_186=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-success]",mandatoryParent:"FORM",attrs:[-22,95]}),tagspec_187=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-success][template]", +mandatoryParent:"FORM",attrs:[-22,95,96]}),tagspec_188=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-error]",mandatoryParent:"FORM",attrs:[-22,97]}),tagspec_189=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"FORM > DIV [submit-error][template]",mandatoryParent:"FORM",attrs:[-22,97,96]}),tagspec_190=Object.assign(new amp$validator$TagSpec("LABEL"),{attrs:[-154],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_191=Object.assign(new amp$validator$TagSpec("INPUT"), +{attrs:[98],attrLists:[11,12],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_192=Object.assign(new amp$validator$TagSpec("INPUT"),{specName:"INPUT [type=password]",attrs:[99],attrLists:[11,12],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form",mandatoryAncestor:"FORM [method=POST]",htmlFormat:["AMP"]}),tagspec_193=Object.assign(new amp$validator$TagSpec("BUTTON"),{attrs:[100,62,63,-43,-155,-156,-45,-157],attrLists:[12]}),tagspec_194=Object.assign(new amp$validator$TagSpec("BUTTON"), +{specName:"amp-app-banner button[open-button]",attrs:[101,62,63,-43,-155],attrLists:[12],mandatoryAncestor:"AMP-APP-BANNER",htmlFormat:["AMP","AMP4ADS"],satisfies:[-158]}),tagspec_195=Object.assign(new amp$validator$TagSpec("SELECT"),{attrs:[-159,-160,-161,-162,-163,-164,-156,-165,-166,-167],attrLists:[12],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_196=Object.assign(new amp$validator$TagSpec("DATALIST"),{specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}), +tagspec_197=Object.assign(new amp$validator$TagSpec("OPTGROUP"),{mandatoryParent:"SELECT",attrs:[-160,-168,-156,-46],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_198=Object.assign(new amp$validator$TagSpec("OPTION"),{attrs:[-160,-168,-169,-155,-156,-46,-170,-157],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_199=Object.assign(new amp$validator$TagSpec("TEXTAREA"),{attrs:[-151,-159,-171,-160,-172,-173,-174,-175,-162,-176,-177, +-178,-179,-180,-181,-182,-164,-183,-156,-184,-185,-186,-187,-166,-188,-189,-190,-191,-192,-193],attrLists:[12],specUrl:"https://www.ampproject.org/docs/reference/components/amp-form"}),tagspec_200=Object.assign(new amp$validator$TagSpec("OUTPUT"),{attrs:[-154,-194],attrLists:[12]}),tagspec_201=Object.assign(new amp$validator$TagSpec("PROGRESS"),{attrs:[-195,-155]}),tagspec_202=Object.assign(new amp$validator$TagSpec("METER"),{attrs:[-196,-197,-195,-198,-199,-155]}),tagspec_203=Object.assign(new amp$validator$TagSpec("FIELDSET"), +{attrs:[-160,-156],attrLists:[12]}),tagspec_204=new amp$validator$TagSpec("LEGEND"),cdataspec_9=Object.assign(new amp$validator$CdataSpec,{blacklistedCdataRegex:[new amp$validator$BlackListedCDataRegex(".","contents")]});cdataspec_9.combinedBlacklistedCdataRegex=-200;var tagspec_205=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amphtml engine v0.js script",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[102,-13,103,104],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup", +cdata:cdataspec_9,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),tagspec_206=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp4ads engine amp4ads-v0.js script",mandatory:!0,unique:!0,mandatoryParent:"HEAD",attrs:[102,-13,105,104],specUrl:"https://www.ampproject.org/docs/reference/spec#required-markup",cdata:cdataspec_9,htmlFormat:["AMP4ADS"]}),cdataspec_10=Object.assign(new amp$validator$CdataSpec,{blacklistedCdataRegex:[blacklistedcdataregex_0]});cdataspec_10.combinedBlacklistedCdataRegex= +-201;var tagspec_207=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"script type=application/ld+json",attrs:[-13,106],cdata:cdataspec_10}),tagspec_208=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"script id=amp-rtc",unique:!0,mandatoryParent:"HEAD",attrs:[-13,107,108],cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_209=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-ima-video > script[type=application/json]",mandatoryParent:"AMP-IMA-VIDEO", +attrs:[109],cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_210=Object.assign(new amp$validator$TagSpec("NOSCRIPT"),{specName:"noscript enclosure for boilerplate",mandatory:!0,unique:!0,mandatoryParent:"HEAD",specUrl:"https://github.com/ampproject/amphtml/blob/master/spec/amp-boilerplate.md",htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_211=Object.assign(new amp$validator$TagSpec("NOSCRIPT"),{disallowedAncestor:["NOSCRIPT"],mandatoryAncestor:"BODY",htmlFormat:["AMP"]}),tagspec_212=Object.assign(new amp$validator$TagSpec("ACRONYM"), +{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_213=Object.assign(new amp$validator$TagSpec("BIG"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_214=Object.assign(new amp$validator$TagSpec("CENTER"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_215=Object.assign(new amp$validator$TagSpec("DIR"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_216=Object.assign(new amp$validator$TagSpec("HGROUP"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_217=Object.assign(new amp$validator$TagSpec("LISTING"),{htmlFormat:["AMP", +"EXPERIMENTAL"]}),tagspec_218=Object.assign(new amp$validator$TagSpec("MULTICOL"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_219=Object.assign(new amp$validator$TagSpec("NEXTID"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_220=Object.assign(new amp$validator$TagSpec("NOBR"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_221=Object.assign(new amp$validator$TagSpec("SPACER"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_222=Object.assign(new amp$validator$TagSpec("STRIKE"),{htmlFormat:["AMP","EXPERIMENTAL"]}), +tagspec_223=Object.assign(new amp$validator$TagSpec("TT"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_224=Object.assign(new amp$validator$TagSpec("XMP"),{htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_225=Object.assign(new amp$validator$TagSpec("SLOT"),{attrs:[-27],htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_226=Object.assign(new amp$validator$TagSpec("O:P"),{htmlFormat:["AMP"]}),amplayout_0=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM INTRINSIC NODISPLAY RESPONSIVE".split(" ")),tagspec_227= +Object.assign(new amp$validator$TagSpec("AMP-IMG"),{attrs:[-31,-202,-174,-203,-204,-44,-205],attrLists:[16,25,13],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img",ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),amplayout_1=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")),tagspec_228=Object.assign(new amp$validator$TagSpec("AMP-IMG"),{specName:"AMP-IMG (AMP4EMAIL)",attrs:[-31,-202,-174,-203,-204],attrLists:[16, +14],specUrl:"https://www.ampproject.org/docs/reference/components/amp-img",ampLayout:amplayout_1,htmlFormat:["AMP4EMAIL"]}),tagspec_229=Object.assign(new amp$validator$TagSpec("AMP-LAYOUT"),{attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-layout",ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),amplayout_2=Object.assign(new amp$validator$AmpLayout(["FIXED","NODISPLAY"]),{definesDefaultWidth:!0,definesDefaultHeight:!0}),tagspec_230=Object.assign(new amp$validator$TagSpec("AMP-PIXEL"), +{attrs:[-206,110,111],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-pixel",ampLayout:amplayout_2,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"]}),extensionspec_0=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-3q-player",allowedVersions:["0.1","latest"]}),tagspec_231=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_0}),amplayout_3=new amp$validator$AmpLayout(["FILL","FIXED","FLEX_ITEM","RESPONSIVE"]), +tagspec_232=Object.assign(new amp$validator$TagSpec("AMP-3Q-PLAYER"),{attrs:[112,113],attrLists:[16],ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-3q-player"]}),extensionspec_1=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access-laterpay",allowedVersions:["0.1","0.2","latest"],requiresUsage:"NONE"}),tagspec_233=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_1,requiresExtension:["amp-access"]}),extensionspec_2= +Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access-scroll",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_234=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_2,requiresExtension:["amp-access"]}),extensionspec_3=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-access",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_235=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_3}),tagspec_236=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-access extension .json script",unique:!0,mandatoryParent:"HEAD",attrs:[114,-13,107],cdata:cdataspec_10,htmlFormat:["AMP"],satisfies:[-207],requiresExtension:["amp-access","amp-analytics"],excludes:[-208]}),extensionspec_4=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-accordion",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}), +tagspec_237=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],extensionSpec:extensionspec_4}),amplayout_4=new amp$validator$AmpLayout(["CONTAINER"]),childtagspec_0=Object.assign(new amp$validator$ChildTagSpec,{childTagNameOneof:["SECTION"]}),tagspec_238=Object.assign(new amp$validator$TagSpec("AMP-ACCORDION"),{attrs:[115,116],specUrl:"https://www.ampproject.org/docs/reference/components/amp-accordion",ampLayout:amplayout_4,childTags:childtagspec_0,requiresExtension:["amp-accordion"]}), +childtagspec_1=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:2,firstChildTagNameOneof:"H1 H2 H3 H4 H5 H6 HEADER".split(" ")}),tagspec_239=Object.assign(new amp$validator$TagSpec("SECTION"),{specName:"amp-accordion > section",mandatoryParent:"AMP-ACCORDION",attrs:[117],childTags:childtagspec_1}),extensionspec_5=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ad-exit",allowedVersions:["0.1","latest"]}),tagspec_240=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18], +htmlFormat:["AMP4ADS"],extensionSpec:extensionspec_5}),amplayout_5=new amp$validator$AmpLayout(["NODISPLAY","CONTAINER"]),childtagspec_2=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["SCRIPT"]}),tagspec_241=Object.assign(new amp$validator$TagSpec("AMP-AD-EXIT"),{attrs:[118],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad-exit",ampLayout:amplayout_5,childTags:childtagspec_2,htmlFormat:["AMP4ADS"],requires:[-209],requiresExtension:["amp-ad-exit"]}), +tagspec_242=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-ad-exit configuration JSON",mandatoryParent:"AMP-AD-EXIT",attrs:[-13,119],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad-exit",htmlFormat:["AMP4ADS"],satisfies:[-209],requiresExtension:["amp-ad-exit"]}),extensionspec_6=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ad",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_243=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{specName:"amp-ad extension .js script",attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_6}),amplayout_6=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT FLEX_ITEM FLUID INTRINSIC NODISPLAY RESPONSIVE".split(" ")),tagspec_244=Object.assign(new amp$validator$TagSpec("AMP-AD"),{attrs:[-31,-210,-211,-212,77,79],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP"],alsoRequiresTagWarning:[243], +requiresExtension:["amp-ad"]}),tagspec_245=Object.assign(new amp$validator$TagSpec("AMP-AD"),{specName:"amp-ad with data-multi-size attribute",attrs:[-31,120,-210,-211,77,79],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"],htmlFormat:["AMP"],alsoRequiresTagWarning:[243],requiresExtension:["amp-ad"]}),tagspec_246=Object.assign(new amp$validator$TagSpec("AMP-AD"), +{specName:"amp-ad with data-enable-refresh attribute",attrs:[-31,121,-210,77,79],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX"],htmlFormat:["AMP"],alsoRequiresTagWarning:[243],requiresExtension:["amp-ad"]}),tagspec_247=Object.assign(new amp$validator$TagSpec("AMP-EMBED"),{attrs:[-31,-210,-211,-212,77,79],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad", +ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER"],htmlFormat:["AMP"],alsoRequiresTagWarning:[243],requiresExtension:["amp-ad"]}),tagspec_248=Object.assign(new amp$validator$TagSpec("AMP-EMBED"),{specName:"amp-embed with data-multi-size attribute",attrs:[-31,120,-210,-211,77,79],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ad",ampLayout:amplayout_6,disallowedAncestor:["AMP-APP-BANNER","AMP-CAROUSEL","AMP-FX-FLYING-CARPET","AMP-LIGHTBOX","AMP-STICKY-AD"], +htmlFormat:["AMP"],alsoRequiresTagWarning:[243],requiresExtension:["amp-ad"]}),extensionspec_7=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-addthis",allowedVersions:["0.1","latest"]}),tagspec_249=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_7}),tagspec_250=Object.assign(new amp$validator$TagSpec("AMP-ADDTHIS"),{attrs:[122,123,124,125],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-addthis"]}), +extensionspec_8=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-analytics",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_251=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_8}),tagspec_252=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-analytics extension .json script",mandatoryParent:"AMP-ANALYTICS",attrs:[-13,109],specUrl:"https://www.ampproject.org/docs/reference/components/amp-analytics", +cdata:cdataspec_10,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-analytics"]}),tagspec_253=Object.assign(new amp$validator$TagSpec("AMP-ANALYTICS"),{attrs:[-43,126],specUrl:"https://www.ampproject.org/docs/reference/components/amp-analytics",htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-analytics"]}),extensionspec_9=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-anim",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}), +tagspec_254=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_9}),extensionspec_10=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-anim",allowedVersions:["0.1","latest"]}),tagspec_255=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-anim extension .js script (AMP4EMAIL)",attrLists:[18],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_10}),tagspec_256=Object.assign(new amp$validator$TagSpec("AMP-ANIM"), +{attrs:[-31,-202,-37],attrLists:[16,13],specUrl:"https://www.ampproject.org/docs/reference/components/amp-anim",ampLayout:amplayout_0,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-anim"]}),tagspec_257=Object.assign(new amp$validator$TagSpec("AMP-ANIM"),{specName:"AMP-ANIM (AMP4EMAIL)",attrs:[-31,-202,-37],attrLists:[16,14],specUrl:"https://www.ampproject.org/docs/reference/components/amp-anim",ampLayout:amplayout_1,htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-anim"]}),extensionspec_11= +Object.assign(new amp$validator$ExtensionSpec,{name:"amp-animation",allowedVersions:["0.1","latest"]}),tagspec_258=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_11}),tagspec_259=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-animation extension .json script",mandatoryParent:"AMP-ANIMATION",attrs:[-13,109],cdata:cdataspec_10,satisfies:[-213],requiresExtension:["amp-animation"]}),amplayout_7= +new amp$validator$AmpLayout(["NODISPLAY"]),tagspec_260=Object.assign(new amp$validator$TagSpec("AMP-ANIMATION"),{attrs:[127],attrLists:[16],ampLayout:amplayout_7,childTags:childtagspec_2,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requires:[-213],requiresExtension:["amp-animation"]}),extensionspec_12=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-apester-media",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_261=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_12}),tagspec_262=Object.assign(new amp$validator$TagSpec("AMP-APESTER-MEDIA"),{attrs:[128,129],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-apester-media",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-apester-media"]}),extensionspec_13=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-app-banner",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0}),tagspec_263=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_13}),tagspec_264=Object.assign(new amp$validator$TagSpec("AMP-APP-BANNER"),{unique:!0,mandatoryParent:"BODY",attrs:[118],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-app-banner",ampLayout:amplayout_7,htmlFormat:["AMP"],requires:[-3,-158],requiresExtension:["amp-app-banner"]}),extensionspec_14=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-audio",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, +requiresUsage:"GRANDFATHERED"}),tagspec_265=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],extensionSpec:extensionspec_14}),amplayout_8=Object.assign(new amp$validator$AmpLayout(["FIXED","FIXED_HEIGHT","NODISPLAY"]),{definesDefaultWidth:!0,definesDefaultHeight:!0}),tagspec_266=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{attrs:[112,130],attrLists:[20,16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",ampLayout:amplayout_8,disallowedAncestor:["AMP-STORY"], +htmlFormat:["AMP"],requiresExtension:["amp-audio"]}),tagspec_267=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{specName:"amp-story >> amp-audio",attrs:[131],attrLists:[20,16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio",ampLayout:amplayout_8,mandatoryAncestor:"AMP-STORY",htmlFormat:["AMP"],requiresExtension:["amp-audio"]}),tagspec_268=Object.assign(new amp$validator$TagSpec("AMP-AUDIO"),{specName:"amp-audio (A4A)",attrLists:[20,16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-audio", +ampLayout:amplayout_8,htmlFormat:["AMP4ADS"],requiresExtension:["amp-audio"]}),extensionspec_15=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-auto-ads",allowedVersions:["0.1","latest"]}),tagspec_269=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_15}),tagspec_270=Object.assign(new amp$validator$TagSpec("AMP-AUTO-ADS"),{mandatoryParent:"BODY",attrs:[79],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-auto-ads", +htmlFormat:["AMP"],requiresExtension:["amp-auto-ads"]}),extensionspec_16=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-beopinion",allowedVersions:["0.1","latest"]}),tagspec_271=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_16}),tagspec_272=Object.assign(new amp$validator$TagSpec("AMP-BEOPINION"),{attrs:[132,133,134,-214],attrLists:[16],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-beopinion"]}),extensionspec_17= +Object.assign(new amp$validator$ExtensionSpec,{name:"amp-bind",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_273=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_17}),cdataspec_11=Object.assign(new amp$validator$CdataSpec,{maxBytes:1E5,maxBytesSpecUrl:"https://www.ampproject.org/docs/reference/components/dynamic/amp-bind#state",blacklistedCdataRegex:[blacklistedcdataregex_0]});cdataspec_11.combinedBlacklistedCdataRegex= +-201;var tagspec_274=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-bind extension .json script",mandatoryParent:"AMP-STATE",attrs:[-13,109],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",cdata:cdataspec_11,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-bind"]}),childtagspec_3=Object.assign(new amp$validator$ChildTagSpec,{firstChildTagNameOneof:["SCRIPT"]}),tagspec_275=Object.assign(new amp$validator$TagSpec("AMP-STATE"),{specName:"amp-state", +attrs:[135,118,-215,77,-44],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",childTags:childtagspec_3,htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-bind"]}),tagspec_276=Object.assign(new amp$validator$TagSpec("AMP-STATE"),{specName:"amp-state (AMP4EMAIL)",attrs:[118],attrLists:[15],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",disallowedAncestor:["AMP-LIST","AMP-STATE"],childTags:childtagspec_3,htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-bind"]}), +tagspec_277=Object.assign(new amp$validator$TagSpec("AMP-BIND-MACRO"),{attrs:[-216,136,118],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bind",htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-bind"]}),extensionspec_18=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-bodymovin-animation",allowedVersions:["0.1","latest"]}),tagspec_278=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_18}),tagspec_279= +Object.assign(new amp$validator$TagSpec("AMP-BODYMOVIN-ANIMATION"),{attrs:[137,138,139],specUrl:"https://www.ampproject.org/docs/reference/components/amp-bodymovin-animation",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-bodymovin-animation"]}),extensionspec_19=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-brid-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_280=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_19}),tagspec_281=Object.assign(new amp$validator$TagSpec("AMP-BRID-PLAYER"),{attrs:[-36,140,141,142,143,144],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-brid-player",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-brid-player"]}),extensionspec_20=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-brightcove",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}), +tagspec_282=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_20}),tagspec_283=Object.assign(new amp$validator$TagSpec("AMP-BRIGHTCOVE"),{attrs:[145,-217,-218,-219,-220,-221,-222],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-brightcove",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-brightcove"]}),extensionspec_21=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-byside-content", +allowedVersions:["0.1","latest"]}),tagspec_284=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_21}),tagspec_285=Object.assign(new amp$validator$TagSpec("AMP-BYSIDE-CONTENT"),{attrs:[146,147],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-byside-content"]}),extensionspec_22=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-call-tracking",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}), +tagspec_286=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_22}),amplayout_9=new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM RESPONSIVE".split(" ")),childtagspec_4=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["A"]}),tagspec_287=Object.assign(new amp$validator$TagSpec("AMP-CALL-TRACKING"),{attrs:[148],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-call-tracking", +ampLayout:amplayout_9,childTags:childtagspec_4,htmlFormat:["AMP"],requiresExtension:["amp-call-tracking"]}),extensionspec_23=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-carousel",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_288=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],extensionSpec:extensionspec_23}),tagspec_289=Object.assign(new amp$validator$TagSpec("AMP-CAROUSEL"),{attrs:[149,112,-37,150,151,152,153, +-223],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-carousel",ampLayout:amplayout_0,requiresExtension:["amp-carousel"]}),referencepoint_0=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:291}),referencepoint_1=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:292}),tagspec_290=Object.assign(new amp$validator$TagSpec("AMP-CAROUSEL"),{specName:"AMP-CAROUSEL [lightbox]",attrs:[149,112,-37,150,151,154,152,153,-223],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-carousel", +ampLayout:amplayout_0,referencePoints:[referencepoint_0,referencepoint_1],requiresExtension:["amp-carousel","amp-lightbox-gallery"]}),tagspec_291=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-CAROUSEL lightbox [lightbox-exclude]",attrs:[155]}),tagspec_292=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-CAROUSEL lightbox [child]",attrs:[156]}),extensionspec_24=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-consent",allowedVersions:["0.1", +"latest"]}),tagspec_293=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_24}),tagspec_294=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-consent extension .json script",unique:!0,mandatoryParent:"AMP-CONSENT",attrs:[-13,109],cdata:cdataspec_10,htmlFormat:["AMP"],satisfies:[-224],requiresExtension:["amp-consent"]}),tagspec_295=Object.assign(new amp$validator$TagSpec("AMP-CONSENT"),{unique:!0,attrLists:[16],ampLayout:amplayout_7, +htmlFormat:["AMP"],requires:[-224],requiresExtension:["amp-consent"]}),extensionspec_25=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-dailymotion",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_296=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_25}),amplayout_10=new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT","FLEX_ITEM","RESPONSIVE"]),tagspec_297=Object.assign(new amp$validator$TagSpec("AMP-DAILYMOTION"), +{attrs:[-36,157,158,159,160,161,162,163,164],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-dailymotion",ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-dailymotion"]}),extensionspec_26=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-date-picker",allowedVersions:["0.1","latest"]}),tagspec_298=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_26}),tagspec_299=Object.assign(new amp$validator$TagSpec("AMP-DATE-PICKER"), +{specName:"amp-date-picker[type=single][mode=static]",attrs:[165,166],attrLists:[21,23,24,16],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-date-picker"]}),amplayout_11=new amp$validator$AmpLayout(["CONTAINER","NODISPLAY"]),tagspec_300=Object.assign(new amp$validator$TagSpec("AMP-DATE-PICKER"),{specName:"amp-date-picker[type=single][mode=overlay]",attrs:[167,166],attrLists:[21,23,16],ampLayout:amplayout_11,htmlFormat:["AMP"],requiresExtension:["amp-date-picker"]}),tagspec_301=Object.assign(new amp$validator$TagSpec("AMP-DATE-PICKER"), +{specName:"amp-date-picker[type=range][mode=static]",attrs:[165,168],attrLists:[21,22,24,16],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-date-picker"]}),tagspec_302=Object.assign(new amp$validator$TagSpec("AMP-DATE-PICKER"),{specName:"amp-date-picker[type=range][mode=overlay]",attrs:[167,168],attrLists:[21,22,16],ampLayout:amplayout_11,htmlFormat:["AMP"],requiresExtension:["amp-date-picker"]}),extensionspec_27=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-dynamic-css-classes", +allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"NONE"}),tagspec_303=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_27}),extensionspec_28=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-experiment",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_304=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","EXPERIMENTAL"], +extensionSpec:extensionspec_28}),tagspec_305=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-experiment extension .json script",mandatoryParent:"AMP-EXPERIMENT",attrs:[-13,109],specUrl:"https://www.ampproject.org/docs/reference/components/amp-experiment",cdata:cdataspec_10,htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_306=Object.assign(new amp$validator$TagSpec("AMP-EXPERIMENT"),{unique:!0,specUrl:"https://www.ampproject.org/docs/reference/components/amp-experiment",htmlFormat:["AMP", +"EXPERIMENTAL"],requiresExtension:["amp-experiment"]}),extensionspec_29=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook-comments",allowedVersions:["0.1","latest"]}),tagspec_307=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_29}),tagspec_308=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-COMMENTS"),{attrs:[169],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-comments"]}), +extensionspec_30=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook-like",allowedVersions:["0.1","latest"]}),tagspec_309=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_30}),tagspec_310=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-LIKE"),{attrs:[170],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-like"]}),extensionspec_31=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-facebook-page",allowedVersions:["0.1","latest"]}),tagspec_311=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_31}),tagspec_312=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK-PAGE"),{attrs:[170],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook-page"]}),extensionspec_32=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-facebook",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, +requiresUsage:"GRANDFATHERED"}),tagspec_313=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_32}),tagspec_314=Object.assign(new amp$validator$TagSpec("AMP-FACEBOOK"),{attrs:[169],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-facebook"]}),extensionspec_33=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-fit-text",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}), +tagspec_315=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],extensionSpec:extensionspec_33}),tagspec_316=Object.assign(new amp$validator$TagSpec("AMP-FIT-TEXT"),{attrs:[-225,-226],attrLists:[16],ampLayout:amplayout_0,requiresExtension:["amp-fit-text"]}),extensionspec_34=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-font",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_317=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_34}),tagspec_318=Object.assign(new amp$validator$TagSpec("AMP-FONT"),{attrs:[171,-227,-228,172,-229,-230,-231,-232,-233],attrLists:[16],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-font"]}),extensionspec_35=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-form",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_319= +Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],extensionSpec:extensionspec_35}),extensionspec_36=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-fx-collection",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_320=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_36}),extensionspec_37=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-fx-flying-carpet",allowedVersions:["0.1", +"latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_321=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_37}),tagspec_322=Object.assign(new amp$validator$TagSpec("AMP-FX-FLYING-CARPET"),{attrs:[173],attrLists:[16],htmlFormat:["AMP"],requiresExtension:["amp-fx-flying-carpet"]}),extensionspec_38=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-geo",allowedVersions:["0.1","latest"]}),tagspec_323=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_38}),tagspec_324=Object.assign(new amp$validator$TagSpec("AMP-GEO"),{unique:!0,attrLists:[16],ampLayout:amplayout_7,childTags:childtagspec_3,htmlFormat:["AMP"],requiresExtension:["amp-geo"]}),tagspec_325=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-geo extension .json script",mandatoryParent:"AMP-GEO",attrs:[-13,109],specUrl:"https://www.ampproject.org/docs/reference/components/amp-geo",cdata:cdataspec_10,htmlFormat:["AMP"], +requiresExtension:["amp-geo"]}),extensionspec_39=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-gfycat",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_326=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_39}),tagspec_327=Object.assign(new amp$validator$TagSpec("AMP-GFYCAT"),{attrs:[174,138],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-gfycat", +ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-gfycat"]}),extensionspec_40=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-gist",allowedVersions:["0.1","latest"]}),tagspec_328=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_40}),amplayout_12=new amp$validator$AmpLayout(["FIXED_HEIGHT"]),tagspec_329=Object.assign(new amp$validator$TagSpec("AMP-GIST"),{attrs:[175],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-gist", +ampLayout:amplayout_12,htmlFormat:["AMP"],requiresExtension:["amp-gist"]}),extensionspec_41=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-gwd-animation",allowedVersions:["0.1","latest"]}),tagspec_330=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP4ADS"],extensionSpec:extensionspec_41}),tagspec_331=Object.assign(new amp$validator$TagSpec("AMP-GWD-ANIMATION"),{attrs:[-234],attrLists:[16],ampLayout:amplayout_7,htmlFormat:["AMP4ADS"],requiresExtension:["amp-gwd-animation"]}), +extensionspec_42=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-hulu",allowedVersions:["0.1","latest"]}),tagspec_332=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_42}),tagspec_333=Object.assign(new amp$validator$TagSpec("AMP-HULU"),{attrs:[176],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-hulu",ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-hulu"]}),extensionspec_43= +Object.assign(new amp$validator$ExtensionSpec,{name:"amp-iframe",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_334=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_43}),tagspec_335=Object.assign(new amp$validator$TagSpec("AMP-IFRAME"),{attrs:[-235,177,178,179,70,-24,71,-35,72,180,74,181],attrLists:[16],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-iframe"]}),extensionspec_44= +Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ima-video",allowedVersions:["0.1","latest"]}),tagspec_336=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_44}),tagspec_337=Object.assign(new amp$validator$TagSpec("AMP-IMA-VIDEO"),{attrs:[112,182,183],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-ima-video",ampLayout:new amp$validator$AmpLayout(["FILL","FIXED","FIXED_HEIGHT","NODISPLAY","RESPONSIVE"]), +htmlFormat:["AMP"],requiresExtension:["amp-ima-video"]}),extensionspec_45=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-image-lightbox",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_338=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_45}),extensionspec_46=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-image-lightbox",allowedVersions:["0.1","latest"]}), +tagspec_339=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-image-lightbox] (AMP4EMAIL)",attrLists:[18],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_46}),tagspec_340=Object.assign(new amp$validator$TagSpec("AMP-IMAGE-LIGHTBOX"),{attrs:[-37],attrLists:[16],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL"],requiresExtension:["amp-image-lightbox"]}),extensionspec_47=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-imgur",allowedVersions:["0.1", +"latest"]}),tagspec_341=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_47}),tagspec_342=Object.assign(new amp$validator$TagSpec("AMP-IMGUR"),{attrs:[184],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-imgur"]}),extensionspec_48=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-instagram",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_343= +Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_48}),tagspec_344=Object.assign(new amp$validator$TagSpec("AMP-INSTAGRAM"),{attrs:[-31,185],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-instagram"]}),extensionspec_49=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-install-serviceworker",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_345= +Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_49}),tagspec_346=Object.assign(new amp$validator$TagSpec("AMP-INSTALL-SERVICEWORKER"),{attrs:[78,186],ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-install-serviceworker"]}),extensionspec_50=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-izlesene",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_347=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_50}),tagspec_348=Object.assign(new amp$validator$TagSpec("AMP-IZLESENE"),{attrs:[187],attrLists:[16],ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-izlesene"]}),extensionspec_51=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-jwplayer",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_349=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"], +extensionSpec:extensionspec_51}),tagspec_350=Object.assign(new amp$validator$TagSpec("AMP-JWPLAYER"),{attrs:[188,189,190],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-jwplayer"]}),extensionspec_52=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-kaltura-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_351=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_52}), +tagspec_352=Object.assign(new amp$validator$TagSpec("AMP-KALTURA-PLAYER"),{attrs:[191],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-kaltura-player"]}),extensionspec_53=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-lightbox-gallery",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_353=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_53}),extensionspec_54=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-lightbox",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_354=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_54}),extensionspec_55=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-lightbox",allowedVersions:["0.1","latest"]}),tagspec_355=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-lightbox] (AMP4EMAIL)", +attrLists:[18],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_55}),tagspec_356=Object.assign(new amp$validator$TagSpec("AMP-LIGHTBOX"),{attrs:[-37,-236,-237],attrLists:[16],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-lightbox"]}),extensionspec_56=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-list",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_357=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_56}),extensionspec_57=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-list",allowedVersions:["0.1","latest"]}),tagspec_358=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-list] (AMP4EMAIL)",attrLists:[18],htmlFormat:["AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_57}),tagspec_359=Object.assign(new amp$validator$TagSpec("AMP-LIST"),{attrs:[-238,-239,-240,192,-241,78,-212,-44,193], +attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-list"]}),tagspec_360=Object.assign(new amp$validator$TagSpec("AMP-LIST"),{specName:"AMP-LIST [SRC]",attrs:[-238,-239,-240,-241,77,-212,194],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP","EXPERIMENTAL"],requiresExtension:["amp-list"]}),tagspec_361=Object.assign(new amp$validator$TagSpec("AMP-LIST"),{specName:"AMP-LIST (AMP4EMAIL)",attrs:[195,-239,-240,-241,-212,-242],attrLists:[16],ampLayout:amplayout_1, +disallowedAncestor:["AMP-LIST","AMP-STATE"],htmlFormat:["AMP4EMAIL"],requiresExtension:["amp-list"]}),extensionspec_58=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-live-list",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_362=Object.assign(new amp$validator$TagSpec("SCRIPT"),{mandatoryParent:"HEAD",attrLists:[18],htmlFormat:["AMP","EXPERIMENTAL"],uniqueWarning:!0,extensionSpec:extensionspec_58}),amplayout_14=new amp$validator$AmpLayout(["CONTAINER","FIXED_HEIGHT"]), +referencepoint_2=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:364,mandatory:!0,unique:!0}),referencepoint_3=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:365,mandatory:!0,unique:!0}),referencepoint_4=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:366,unique:!0}),tagspec_363=Object.assign(new amp$validator$TagSpec("AMP-LIVE-LIST"),{attrs:[196,197,100,118,198],ampLayout:amplayout_14,referencePoints:[referencepoint_2,referencepoint_3,referencepoint_4],htmlFormat:["AMP", +"EXPERIMENTAL"],requiresExtension:["amp-live-list"]}),tagspec_364=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [update]",attrs:[199],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#update",htmlFormat:["AMP","EXPERIMENTAL"]}),referencepoint_5=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:367}),tagspec_365=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [items]",attrs:[200],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#items", +referencePoints:[referencepoint_5],htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_366=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [pagination]",attrs:[201],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#pagination",htmlFormat:["AMP","EXPERIMENTAL"]}),tagspec_367=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-LIVE-LIST [items] item",attrs:[118,202,-243,-244],specUrl:"https://www.ampproject.org/docs/reference/components/amp-live-list#items", +htmlFormat:["AMP","EXPERIMENTAL"]}),extensionspec_59=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-mathml",allowedVersions:["0.1","latest"]}),tagspec_368=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_59}),tagspec_369=Object.assign(new amp$validator$TagSpec("AMP-MATHML"),{attrs:[203,-245],attrLists:[16],ampLayout:amplayout_4,htmlFormat:["AMP"],requiresExtension:["amp-mathml"]}),extensionspec_60=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-mustache",allowedVersions:["0.1","latest"],isCustomTemplate:!0,deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_370=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_60}),extensionspec_61=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-mustache",allowedVersions:["0.1","latest"],isCustomTemplate:!0}),tagspec_371=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-mustache] (AMP4ADS/AMP4EMAIL)", +attrLists:[18],htmlFormat:["AMP4ADS","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_61}),tagspec_372=Object.assign(new amp$validator$TagSpec("TEMPLATE"),{attrs:[204],disallowedAncestor:["TEMPLATE","AMP-STORY-AUTO-ADS","FORM > DIV [submit-success][template]","FORM > DIV [submit-error][template]"],requiresExtension:["amp-mustache"]}),extensionspec_62=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-next-page",allowedVersions:["0.1","latest"]}),tagspec_373=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{htmlFormat:["AMP"],extensionSpec:extensionspec_62}),tagspec_374=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-next-page extension .json configuration",mandatoryParent:"AMP-NEXT-PAGE",attrs:[109],specUrl:"https://www.ampproject.org/docs/reference/components/amp-next-page",htmlFormat:["AMP"],requiresExtension:["amp-next-page"]}),tagspec_375=Object.assign(new amp$validator$TagSpec("DIV"),{specName:"AMP-NEXT-PAGE > DIV [separator]",mandatoryParent:"AMP-NEXT-PAGE",attrs:[205]}),tagspec_376= +Object.assign(new amp$validator$TagSpec("AMP-NEXT-PAGE"),{mandatoryParent:"BODY",specUrl:"https://www.ampproject.org/docs/reference/components/amp-next-page",htmlFormat:["AMP"],requiresExtension:["amp-next-page"],mandatoryLastChild:!0}),extensionspec_63=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-nexxtv-player",allowedVersions:["0.1","latest"]}),tagspec_377=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_63}),tagspec_378= +Object.assign(new amp$validator$TagSpec("AMP-NEXXTV-PLAYER"),{attrs:[206,207,208,209,210],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-nexxtv-player"]}),extensionspec_64=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-o2-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_379=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_64}),tagspec_380= +Object.assign(new amp$validator$TagSpec("AMP-O2-PLAYER"),{attrs:[211,212],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-o2-player"]}),extensionspec_65=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-ooyala-player",allowedVersions:["0.1","latest"]}),tagspec_381=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_65}),tagspec_382=Object.assign(new amp$validator$TagSpec("AMP-OOYALA-PLAYER"),{attrs:[213, +214,215],attrLists:[16],ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-ooyala-player"]}),extensionspec_66=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-pinterest",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_383=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_66}),tagspec_384=Object.assign(new amp$validator$TagSpec("AMP-PINTEREST"),{attrs:[216,-31], +attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-pinterest",ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-pinterest"]}),extensionspec_67=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-playbuzz",allowedVersions:["0.1","latest"]}),tagspec_385=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_67}),tagspec_386=Object.assign(new amp$validator$TagSpec("AMP-PLAYBUZZ"),{attrs:[217,218, +219,220,221],attrLists:[16],ampLayout:new amp$validator$AmpLayout(["RESPONSIVE","FIXED_HEIGHT"]),htmlFormat:["AMP"],requiresExtension:["amp-playbuzz"]}),extensionspec_68=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-position-observer",allowedVersions:["0.1","latest"]}),tagspec_387=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_68}),tagspec_388=Object.assign(new amp$validator$TagSpec("AMP-POSITION-OBSERVER"), +{attrs:[222,-246,223],attrLists:[16],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-position-observer"]}),extensionspec_69=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-reach-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_389=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_69}),tagspec_390=Object.assign(new amp$validator$TagSpec("AMP-REACH-PLAYER"), +{attrs:[224],attrLists:[16],ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-reach-player"]}),extensionspec_70=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-reddit",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0}),tagspec_391=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_70}),tagspec_392=Object.assign(new amp$validator$TagSpec("AMP-REDDIT"),{attrs:[225,226,227,228],attrLists:[16],ampLayout:amplayout_1, +htmlFormat:["AMP"],requiresExtension:["amp-reddit"]}),extensionspec_71=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-riddle-quiz",allowedVersions:["0.1","latest"]}),tagspec_393=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_71}),tagspec_394=Object.assign(new amp$validator$TagSpec("AMP-RIDDLE-QUIZ"),{attrs:[229],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-riddle-quiz",ampLayout:new amp$validator$AmpLayout(["RESPONSIVE"]), +htmlFormat:["AMP"],requiresExtension:["amp-riddle-quiz"]}),extensionspec_72=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-selector",allowedVersions:["0.1","latest"],requiresUsage:"GRANDFATHERED"}),tagspec_395=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_72}),tagspec_396=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"SCRIPT[custom-element=amp-selector] (AMP4EMAIL)",attrLists:[18],htmlFormat:["AMP4EMAIL"], +extensionSpec:extensionspec_72}),amplayout_17=new amp$validator$AmpLayout("FILL FIXED FIXED_HEIGHT NODISPLAY RESPONSIVE CONTAINER".split(" ")),referencepoint_6=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:398}),referencepoint_7=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:399}),tagspec_397=Object.assign(new amp$validator$TagSpec("AMP-SELECTOR"),{attrs:[100,-194,230,231,-156,-170],attrLists:[16,12],ampLayout:amplayout_17,disallowedAncestor:["AMP-SELECTOR"],referencePoints:[referencepoint_6, +referencepoint_7],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-selector"]}),tagspec_398=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-SELECTOR option",attrs:[232,100,233],specUrl:"https://www.ampproject.org/docs/reference/components/amp-selector",htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),tagspec_399=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-SELECTOR child",referencePoints:[referencepoint_6,referencepoint_7], +htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),extensionspec_73=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sidebar",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_400=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","EXPERIMENTAL"],extensionSpec:extensionspec_73}),extensionspec_74=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sidebar",allowedVersions:["0.1","latest"]}),tagspec_401=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{specName:"SCRIPT[custom-element=amp-sidebar] (AMP4EMAIL)",attrLists:[18],htmlFormat:["AMP4EMAIL"],extensionSpec:extensionspec_74}),tagspec_402=Object.assign(new amp$validator$TagSpec("AMP-SIDEBAR"),{mandatoryParent:"BODY",attrs:[234],attrLists:[16],ampLayout:amplayout_7,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-sidebar"]}),childtagspec_5=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,childTagNameOneof:["UL"]}),tagspec_403=Object.assign(new amp$validator$TagSpec("NAV"), +{specName:"amp-sidebar > nav",mandatoryParent:"AMP-SIDEBAR",attrs:[235,236],childTags:childtagspec_5,htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"]}),extensionspec_75=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-slides",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"NONE"}),tagspec_404=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],deprecation:"amp-carousel",deprecationUrl:"https://www.ampproject.org/docs/reference/components/amp-carousel", +htmlFormat:["AMP"],extensionSpec:extensionspec_75}),extensionspec_76=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-social-share",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_405=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","AMP4ADS"],extensionSpec:extensionspec_76}),tagspec_406=Object.assign(new amp$validator$TagSpec("AMP-SOCIAL-SHARE"),{attrs:[237,79],attrLists:[16],ampLayout:new amp$validator$AmpLayout("CONTAINER FILL FIXED FIXED_HEIGHT FLEX_ITEM NODISPLAY RESPONSIVE".split(" ")), +htmlFormat:["AMP","AMP4ADS"],requiresExtension:["amp-social-share"]}),extensionspec_77=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-soundcloud",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_407=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_77}),tagspec_408=Object.assign(new amp$validator$TagSpec("AMP-SOUNDCLOUD"),{attrs:[238,239,240,241,242],attrLists:[16],ampLayout:amplayout_12, +htmlFormat:["AMP"],requiresExtension:["amp-soundcloud"]}),extensionspec_78=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-springboard-player",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_409=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_78}),tagspec_410=Object.assign(new amp$validator$TagSpec("AMP-SPRINGBOARD-PLAYER"),{attrs:[243,244,245,246,247,248],attrLists:[16], +ampLayout:amplayout_3,htmlFormat:["AMP"],requiresExtension:["amp-springboard-player"]}),extensionspec_79=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-sticky-ad",allowedVersions:["0.1","1.0","latest"],deprecatedVersions:["0.1"],requiresUsage:"GRANDFATHERED"}),tagspec_411=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_79}),childtagspec_6=Object.assign(new amp$validator$ChildTagSpec,{mandatoryNumChildTags:1,firstChildTagNameOneof:["AMP-AD"]}), +tagspec_412=Object.assign(new amp$validator$TagSpec("AMP-STICKY-AD"),{unique:!0,attrLists:[16],ampLayout:amplayout_7,disallowedAncestor:["AMP-APP-BANNER"],childTags:childtagspec_6,htmlFormat:["AMP"],requiresExtension:["amp-sticky-ad"]}),extensionspec_80=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-story-auto-ads",allowedVersions:["0.1","latest"]}),tagspec_413=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_80}),tagspec_414= +Object.assign(new amp$validator$TagSpec("AMP-STORY-AUTO-ADS"),{unique:!0,mandatoryParent:"AMP-STORY",specUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-story/amp-story-auto-ads.md",htmlFormat:["AMP"],requiresExtension:["amp-story-auto-ads"]}),tagspec_415=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-story-auto-ads config script",mandatoryParent:"AMP-STORY-AUTO-ADS",attrs:[-13,109],specUrl:"https://github.com/ampproject/amphtml/blob/master/extensions/amp-story/amp-story-auto-ads.md", +cdata:cdataspec_10,htmlFormat:["AMP"],requiresExtension:["amp-story-auto-ads"]}),referencepoint_8=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:422}),referencepoint_9=Object.assign(new amp$validator$ReferencePoint,{tagSpecName:423}),tagspec_416=Object.assign(new amp$validator$TagSpec("TEMPLATE"),{specName:"amp-story-auto-ads > template",mandatoryParent:"AMP-STORY-AUTO-ADS",attrs:[204],referencePoints:[referencepoint_8,referencepoint_9],htmlFormat:["AMP"],requiresExtension:["amp-mustache"], +descendantTagList:"amp-story-grid-layer-allowed-descendants"}),extensionspec_81=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-story",allowedVersions:["0.1","1.0","latest"]}),tagspec_417=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_81}),childtagspec_7=Object.assign(new amp$validator$ChildTagSpec,{childTagNameOneof:["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-AUTO-ADS","AMP-STORY-PAGE"],mandatoryMinNumChildTags:1}),tagspec_418= +Object.assign(new amp$validator$TagSpec("AMP-STORY"),{mandatoryParent:"BODY",attrs:[249,250,251,252,253,254,255,256,257],childTags:childtagspec_7,htmlFormat:["AMP"],requires:[-247],requiresExtension:["amp-story"],siblingsDisallowed:!0}),tagspec_419=Object.assign(new amp$validator$TagSpec("AMP-STORY"),{specName:"AMP-STORY (beta)",mandatoryParent:"BODY",attrs:[258,259,256],deprecation:"AMP-STORY",deprecationUrl:"https://www.ampproject.org/docs/reference/components/amp-story#announcements",childTags:childtagspec_7, +htmlFormat:["AMP"],requires:[-247],requiresExtension:["amp-story"],siblingsDisallowed:!0}),childtagspec_8=Object.assign(new amp$validator$ChildTagSpec,{childTagNameOneof:["AMP-ANALYTICS","AMP-PIXEL","AMP-STORY-CTA-LAYER","AMP-STORY-GRID-LAYER"],mandatoryMinNumChildTags:1}),tagspec_420=Object.assign(new amp$validator$TagSpec("AMP-STORY-PAGE"),{mandatoryParent:"AMP-STORY",attrs:[118,-248,258],childTags:childtagspec_8,htmlFormat:["AMP"],satisfies:[-247],requiresExtension:["amp-story"]}),tagspec_421= +Object.assign(new amp$validator$TagSpec("AMP-STORY-GRID-LAYER"),{attrs:[260],mandatoryAncestor:"AMP-STORY-PAGE",referencePoints:[referencepoint_8,referencepoint_9],htmlFormat:["AMP"],descendantTagList:"amp-story-grid-layer-allowed-descendants"}),tagspec_422=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-STORY-GRID-LAYER default",attrs:[-249,261,262,263,264,265,266,267,-250,-251,-252],specUrl:"https://www.ampproject.org/docs/reference/components/amp-story",referencePoints:[referencepoint_9], +htmlFormat:["AMP"]}),tagspec_423=Object.assign(new amp$validator$TagSpec("$REFERENCE_POINT"),{specName:"AMP-STORY-GRID-LAYER animate-in",attrs:[267,-250,-251,-252],specUrl:"https://www.ampproject.org/docs/reference/components/amp-story",referencePoints:[referencepoint_9],htmlFormat:["AMP"]}),tagspec_424=Object.assign(new amp$validator$TagSpec("AMP-STORY-CTA-LAYER"),{mandatoryAncestor:"AMP-STORY-PAGE",htmlFormat:["AMP"],descendantTagList:"amp-story-cta-layer-allowed-descendants",mandatoryLastChild:!0}), +extensionspec_82=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-subscriptions",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_425=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_82}),tagspec_426=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-subscriptions extension .json script",unique:!0,mandatoryParent:"HEAD",attrs:[268,-13,107],cdata:cdataspec_10,htmlFormat:["AMP"],satisfies:[-208],requiresExtension:["amp-subscriptions"], +excludes:[-207]}),extensionspec_83=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-subscriptions-google",allowedVersions:["0.1","latest"],requiresUsage:"NONE"}),tagspec_427=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_83,requiresExtension:["amp-subscriptions"]}),extensionspec_84=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-timeago",allowedVersions:["0.1","latest"]}),tagspec_428=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],extensionSpec:extensionspec_84}),tagspec_429=Object.assign(new amp$validator$TagSpec("AMP-TIMEAGO"),{attrs:[269,270,-253],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-timeago",ampLayout:new amp$validator$AmpLayout(["FIXED","FIXED_HEIGHT","RESPONSIVE"]),htmlFormat:["AMP","AMP4EMAIL","EXPERIMENTAL"],requiresExtension:["amp-timeago"]}),extensionspec_85=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-twitter", +allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_430=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_85}),tagspec_431=Object.assign(new amp$validator$TagSpec("AMP-TWITTER"),{attrs:[271],attrLists:[16],ampLayout:amplayout_0,htmlFormat:["AMP"],requiresExtension:["amp-twitter"]}),extensionspec_86=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-user-notification",allowedVersions:["0.1", +"latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_432=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_86}),tagspec_433=Object.assign(new amp$validator$TagSpec("AMP-USER-NOTIFICATION"),{attrs:[272,273,274],attrLists:[16],ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-user-notification"]}),extensionspec_87=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-video",allowedVersions:["0.1", +"latest"],requiresUsage:"NONE"}),tagspec_434=Object.assign(new amp$validator$TagSpec("SCRIPT"),{specName:"amp-video extension .js script",attrLists:[18],htmlFormat:["AMP","AMP4ADS"],extensionSpec:extensionspec_87}),tagspec_435=Object.assign(new amp$validator$TagSpec("AMP-VIDEO"),{attrs:[-40],attrLists:[16,26,25],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",ampLayout:amplayout_1,disallowedAncestor:["AMP-STORY"],htmlFormat:["AMP","AMP4ADS"],alsoRequiresTagWarning:[434]}), +tagspec_436=Object.assign(new amp$validator$TagSpec("AMP-VIDEO"),{specName:"amp-story >> amp-video",attrs:[131,275],attrLists:[16,26],specUrl:"https://www.ampproject.org/docs/reference/components/amp-video",ampLayout:amplayout_1,mandatoryAncestor:"AMP-STORY",htmlFormat:["AMP","AMP4ADS"],requiresExtension:["amp-video"]}),extensionspec_88=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vimeo",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_437= +Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_88}),tagspec_438=Object.assign(new amp$validator$TagSpec("AMP-VIMEO"),{attrs:[187],attrLists:[16],ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-vimeo"]}),extensionspec_89=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vine",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0,requiresUsage:"GRANDFATHERED"}),tagspec_439=Object.assign(new amp$validator$TagSpec("SCRIPT"), +{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_89}),tagspec_440=Object.assign(new amp$validator$TagSpec("AMP-VINE"),{attrs:[276],attrLists:[16],ampLayout:amplayout_1,htmlFormat:["AMP"],requiresExtension:["amp-vine"]}),extensionspec_90=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-vk",allowedVersions:["0.1","latest"]}),tagspec_441=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_90}),tagspec_442=Object.assign(new amp$validator$TagSpec("AMP-VK"), +{attrs:[277],attrLists:[16],ampLayout:new amp$validator$AmpLayout(["FIXED","FLEX_ITEM","RESPONSIVE"]),htmlFormat:["AMP"],requiresExtension:["amp-vk"]}),extensionspec_91=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-web-push",allowedVersions:["0.1","latest"]}),tagspec_443=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_91}),tagspec_444=Object.assign(new amp$validator$TagSpec("AMP-WEB-PUSH"),{attrs:[278,279,280,281],attrLists:[16], +specUrl:"https://www.ampproject.org/docs/reference/components/amp-web-push",ampLayout:amplayout_7,htmlFormat:["AMP"],requiresExtension:["amp-web-push"]}),tagspec_445=Object.assign(new amp$validator$TagSpec("AMP-WEB-PUSH-WIDGET"),{attrs:[282],attrLists:[16],specUrl:"https://www.ampproject.org/docs/reference/components/amp-web-push",ampLayout:new amp$validator$AmpLayout(["FIXED"]),htmlFormat:["AMP"],requiresExtension:["amp-web-push"]}),extensionspec_92=Object.assign(new amp$validator$ExtensionSpec, +{name:"amp-wistia-player",allowedVersions:["0.1","latest"]}),tagspec_446=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP"],extensionSpec:extensionspec_92}),tagspec_447=Object.assign(new amp$validator$TagSpec("AMP-WISTIA-PLAYER"),{attrs:[283],attrLists:[16],ampLayout:amplayout_10,htmlFormat:["AMP"],requiresExtension:["amp-wistia-player"]}),extensionspec_93=Object.assign(new amp$validator$ExtensionSpec,{name:"amp-youtube",allowedVersions:["0.1","latest"],deprecatedAllowDuplicates:!0, +requiresUsage:"GRANDFATHERED"}),tagspec_448=Object.assign(new amp$validator$TagSpec("SCRIPT"),{attrLists:[18],htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],extensionSpec:extensionspec_93}),tagspec_449=Object.assign(new amp$validator$TagSpec("AMP-YOUTUBE"),{attrs:[-36,284,285,286,-254],attrLists:[16,25],ampLayout:amplayout_1,htmlFormat:["AMP","AMP4ADS","EXPERIMENTAL"],requiresExtension:["amp-youtube"]}),errorformat_0=new amp$validator$ErrorFormat("UNKNOWN_CODE","Unknown error."),errorformat_1=new amp$validator$ErrorFormat("MANDATORY_TAG_MISSING", +"The mandatory tag '%1' is missing or incorrect."),errorformat_2=new amp$validator$ErrorFormat("TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'."),errorformat_3=new amp$validator$ErrorFormat("WARNING_TAG_REQUIRED_BY_MISSING","The tag '%1' is missing or incorrect, but required by '%2'. This will soon be an error."),errorformat_4=new amp$validator$ErrorFormat("TAG_EXCLUDED_BY_TAG","The tag '%1' is present, but is excluded by the presence of '%2'."),errorformat_5= +new amp$validator$ErrorFormat("WARNING_EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused (no '%2' tag seen). This may become an error in the future."),errorformat_6=new amp$validator$ErrorFormat("EXTENSION_UNUSED","The extension '%1' was found on this page, but is unused. Please remove this extension."),errorformat_7=new amp$validator$ErrorFormat("WARNING_EXTENSION_DEPRECATED_VERSION","The extension '%1' is referenced at version '%2' which is a deprecated version. Please use a more recent version of this extension. This may become an error in the future."), +errorformat_8=new amp$validator$ErrorFormat("ATTR_REQUIRED_BUT_MISSING","The attribute '%1' in tag '%2' is missing or incorrect, but required by attribute '%3'."),errorformat_9=new amp$validator$ErrorFormat("DISALLOWED_TAG","The tag '%1' is disallowed."),errorformat_10=new amp$validator$ErrorFormat("GENERAL_DISALLOWED_TAG","The tag '%1' is disallowed except in specific forms."),errorformat_11=new amp$validator$ErrorFormat("DISALLOWED_SCRIPT_TAG","Only AMP runtime 'script' tags are allowed, and only in the document head."), +errorformat_12=new amp$validator$ErrorFormat("DISALLOWED_ATTR","The attribute '%1' may not appear in tag '%2'."),errorformat_13=new amp$validator$ErrorFormat("DISALLOWED_STYLE_ATTR","The inline 'style' attribute is not allowed in AMP documents. Use 'style amp-custom' tag instead."),errorformat_14=new amp$validator$ErrorFormat("INVALID_ATTR_VALUE","The attribute '%1' in tag '%2' is set to the invalid value '%3'."),errorformat_15=new amp$validator$ErrorFormat("DUPLICATE_ATTRIBUTE","The tag '%1' contains the attribute '%2' repeated multiple times."), +errorformat_16=new amp$validator$ErrorFormat("ATTR_VALUE_REQUIRED_BY_LAYOUT","Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."),errorformat_17=new amp$validator$ErrorFormat("IMPLIED_LAYOUT_INVALID","The implied layout '%1' is not supported by tag '%2'."),errorformat_18=new amp$validator$ErrorFormat("SPECIFIED_LAYOUT_INVALID","The specified layout '%1' is not supported by tag '%2'."),errorformat_19=new amp$validator$ErrorFormat("MANDATORY_ATTR_MISSING", +"The mandatory attribute '%1' is missing in tag '%2'."),errorformat_20=new amp$validator$ErrorFormat("INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT","Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."),errorformat_21=new amp$validator$ErrorFormat("STYLESHEET_TOO_LONG","The author stylesheet specified in tag '%1' is too long - we saw %2 bytes whereas the limit is %3 bytes."),errorformat_22=new amp$validator$ErrorFormat("MANDATORY_CDATA_MISSING_OR_INCORRECT", +"The mandatory text inside tag '%1' is missing or incorrect."),errorformat_23=new amp$validator$ErrorFormat("CDATA_VIOLATES_BLACKLIST","The text inside tag '%1' contains '%2', which is disallowed."),errorformat_24=new amp$validator$ErrorFormat("NON_WHITESPACE_CDATA_ENCOUNTERED","The tag '%1' contains text, which is disallowed."),errorformat_25=new amp$validator$ErrorFormat("DISALLOWED_PROPERTY_IN_ATTR_VALUE","The property '%1' in attribute '%2' in tag '%3' is disallowed."),errorformat_26=new amp$validator$ErrorFormat("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE", +"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."),errorformat_27=new amp$validator$ErrorFormat("DUPLICATE_DIMENSION","Multiple image candidates with the same width or pixel density found in attribute '%1' in tag '%2'."),errorformat_28=new amp$validator$ErrorFormat("MISSING_URL","Missing URL for attribute '%1' in tag '%2'."),errorformat_29=new amp$validator$ErrorFormat("INVALID_URL","Malformed URL '%3' for attribute '%1' in tag '%2'."),errorformat_30=new amp$validator$ErrorFormat("INVALID_URL_PROTOCOL", +"Invalid URL protocol '%3:' for attribute '%1' in tag '%2'."),errorformat_31=new amp$validator$ErrorFormat("DISALLOWED_DOMAIN","The domain '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_32=new amp$validator$ErrorFormat("DISALLOWED_RELATIVE_URL","The relative URL '%3' for attribute '%1' in tag '%2' is disallowed."),errorformat_33=new amp$validator$ErrorFormat("MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE","The property '%1' is missing from attribute '%2' in tag '%3'."),errorformat_34= +new amp$validator$ErrorFormat("UNESCAPED_TEMPLATE_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."),errorformat_35=new amp$validator$ErrorFormat("TEMPLATE_PARTIAL_IN_ATTR_VALUE","The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."),errorformat_36=new amp$validator$ErrorFormat("DEPRECATED_TAG","The tag '%1' is deprecated - use '%2' instead."),errorformat_37=new amp$validator$ErrorFormat("DEPRECATED_ATTR", +"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."),errorformat_38=new amp$validator$ErrorFormat("MUTUALLY_EXCLUSIVE_ATTRS","Mutually exclusive attributes encountered in tag '%1' - pick one of %2."),errorformat_39=new amp$validator$ErrorFormat("MANDATORY_ONEOF_ATTR_MISSING","The tag '%1' is missing a mandatory attribute - pick one of %2."),errorformat_40=new amp$validator$ErrorFormat("WRONG_PARENT_TAG","The parent tag of tag '%1' is '%2', but it can only be '%3'."),errorformat_41= +new amp$validator$ErrorFormat("DISALLOWED_TAG_ANCESTOR","The tag '%1' may not appear as a descendant of tag '%2'."),errorformat_42=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR","The tag '%1' may only appear as a descendant of tag '%2'."),errorformat_43=new amp$validator$ErrorFormat("MANDATORY_TAG_ANCESTOR_WITH_HINT","The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"),errorformat_44=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG","The tag '%1' appears more than once in the document."), +errorformat_45=new amp$validator$ErrorFormat("DUPLICATE_UNIQUE_TAG_WARNING","The tag '%1' appears more than once in the document. This will soon be an error."),errorformat_46=new amp$validator$ErrorFormat("TEMPLATE_IN_ATTR_NAME","Mustache template syntax in attribute name '%1' in tag '%2'."),errorformat_47=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_IMPLIED_LAYOUT","The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."),errorformat_48=new amp$validator$ErrorFormat("ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT", +"The attribute '%1' in tag '%2' is disallowed by specified layout '%3'."),errorformat_49=new amp$validator$ErrorFormat("INCORRECT_NUM_CHILD_TAGS","Tag '%1' must have %2 child tags - saw %3 child tags."),errorformat_50=new amp$validator$ErrorFormat("INCORRECT_MIN_NUM_CHILD_TAGS","Tag '%1' must have a minimum of %2 child tags - saw %3 child tags."),errorformat_51=new amp$validator$ErrorFormat("TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS","Tag '%1' is not allowed to have any sibling tags ('%2' should only have 1 child)."), +errorformat_52=new amp$validator$ErrorFormat("MANDATORY_LAST_CHILD_TAG","Tag '%1', if present, must be the last child of tag '%2'."),errorformat_53=new amp$validator$ErrorFormat("DISALLOWED_CHILD_TAG_NAME","Tag '%1' is disallowed as child of tag '%2'. Child tag must be one of %3."),errorformat_54=new amp$validator$ErrorFormat("DISALLOWED_FIRST_CHILD_TAG_NAME","Tag '%1' is disallowed as first child of tag '%2'. First child tag must be one of %3."),errorformat_55=new amp$validator$ErrorFormat("DISALLOWED_MANUFACTURED_BODY", +"Tag or text which is only allowed inside the body section found outside of the body section."),errorformat_56=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT","The tag '%1', a child tag of '%2', does not satisfy one of the acceptable reference points: %3."),errorformat_57=new amp$validator$ErrorFormat("CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR","The tag '%1', a child tag of '%2', does not satisfy the reference point '%3'."),errorformat_58=new amp$validator$ErrorFormat("MANDATORY_REFERENCE_POINT_MISSING", +"The mandatory reference point '%1' for '%2' is missing."),errorformat_59=new amp$validator$ErrorFormat("DUPLICATE_REFERENCE_POINT","The reference point '%1' for '%2' must be unique but a duplicate was encountered."),errorformat_60=new amp$validator$ErrorFormat("TAG_REFERENCE_POINT_CONFLICT","The tag '%1' conflicts with reference point '%2' because both define reference points."),errorformat_61=new amp$validator$ErrorFormat("BASE_TAG_MUST_PRECEED_ALL_URLS","The tag '%1', which contains URLs, was found earlier in the document than the BASE element."), +errorformat_62=new amp$validator$ErrorFormat("MISSING_REQUIRED_EXTENSION","The tag '%1' requires including the '%2' extension JavaScript."),errorformat_63=new amp$validator$ErrorFormat("ATTR_MISSING_REQUIRED_EXTENSION","The attribute '%1' requires including the '%2' extension JavaScript."),errorformat_64=new amp$validator$ErrorFormat("DOCUMENT_TOO_COMPLEX","The document is too complex."),errorformat_65=new amp$validator$ErrorFormat("INVALID_UTF8","The document contains invalid UTF8."),errorformat_66= +new amp$validator$ErrorFormat("CSS_SYNTAX","CSS syntax error in tag '%1' - %2."),errorformat_67=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_AT_RULE","CSS syntax error in tag '%1' - saw invalid at rule '@%2'."),errorformat_68=new amp$validator$ErrorFormat("CSS_SYNTAX_STRAY_TRAILING_BACKSLASH","CSS syntax error in tag '%1' - stray trailing backslash."),errorformat_69=new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_COMMENT","CSS syntax error in tag '%1' - unterminated comment."),errorformat_70= +new amp$validator$ErrorFormat("CSS_SYNTAX_UNTERMINATED_STRING","CSS syntax error in tag '%1' - unterminated string."),errorformat_71=new amp$validator$ErrorFormat("CSS_SYNTAX_BAD_URL","CSS syntax error in tag '%1' - bad url."),errorformat_72=new amp$validator$ErrorFormat("CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE","CSS syntax error in tag '%1' - end of stylesheet encountered in prelude of a qualified rule."),errorformat_73=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY","CSS syntax error in tag '%1' - invalid property '%2'. The only allowed properties are '%3'."), +errorformat_74=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_PROPERTY_NOLIST","CSS syntax error in tag '%1' - invalid property '%2'."),errorformat_75=new amp$validator$ErrorFormat("CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS","CSS syntax error in tag '%1' - qualified rule '%2' has no declarations."),errorformat_76=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - qualified rule '%2' must be located inside of a keyframe."), +errorformat_77=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME","CSS syntax error in tag '%1' - keyframe inside keyframe is not allowed."),errorformat_78=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_DECLARATION","CSS syntax error in tag '%1' - invalid declaration."),errorformat_79=new amp$validator$ErrorFormat("CSS_SYNTAX_INCOMPLETE_DECLARATION","CSS syntax error in tag '%1' - incomplete declaration."),errorformat_80=new amp$validator$ErrorFormat("CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR", +"CSS syntax error in tag '%1' - invalid pseudo selector."),errorformat_81=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_SELECTOR","CSS syntax error in tag '%1' - missing selector."),errorformat_82=new amp$validator$ErrorFormat("CSS_SYNTAX_NOT_A_SELECTOR_START","CSS syntax error in tag '%1' - not a selector start."),errorformat_83=new amp$validator$ErrorFormat("CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR","CSS syntax error in tag '%1' - unparsed input remains in selector."),errorformat_84=new amp$validator$ErrorFormat("CSS_SYNTAX_MISSING_URL", +"CSS syntax error in tag '%1' - missing url."),errorformat_85=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL","CSS syntax error in tag '%1' - invalid url '%2'."),errorformat_86=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_URL_PROTOCOL","CSS syntax error in tag '%1' - invalid url protocol '%2:'."),errorformat_87=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_DOMAIN","CSS syntax error in tag '%1' - invalid domain '%2'."),errorformat_88=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_RELATIVE_URL", +"CSS syntax error in tag '%1' - disallowed relative url '%2'."),errorformat_89=new amp$validator$ErrorFormat("CSS_SYNTAX_INVALID_ATTR_SELECTOR","CSS syntax error in tag '%1' - invalid attribute selector."),errorformat_90=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'."),errorformat_91=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT","CSS syntax error in tag '%1' - the property '%2' is set to the disallowed value '%3'. Allowed values: %4."), +errorformat_92=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE","CSS syntax error in tag '%1' - the property '%2' is disallowed within @%3. Allowed properties: %4."),errorformat_93=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH","CSS syntax error in tag '%1' - the property '%2' is disallowed together with '%3'. Allowed properties: %4."),errorformat_94=new amp$validator$ErrorFormat("CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION","CSS syntax error in tag '%1' - the property '%2' is disallowed unless the enclosing rule is prefixed with the '%3' qualification."), +errorformat_95=new amp$validator$ErrorFormat("CSS_SYNTAX_MALFORMED_MEDIA_QUERY","CSS syntax error in tag '%1' - malformed media query."),errorformat_96=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_MEDIA_TYPE","CSS syntax error in tag '%1' - disallowed media type '%2'."),errorformat_97=new amp$validator$ErrorFormat("CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE","CSS syntax error in tag '%1' - disallowed media feature '%2'."),errorspecificity_0=Object.assign(new amp$validator$ErrorSpecificity,{code:"UNKNOWN_CODE", specificity:0}),errorspecificity_1=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_CDATA_MISSING_OR_INCORRECT",specificity:1}),errorspecificity_2=Object.assign(new amp$validator$ErrorSpecificity,{code:"CDATA_VIOLATES_BLACKLIST",specificity:2}),errorspecificity_3=Object.assign(new amp$validator$ErrorSpecificity,{code:"NON_WHITESPACE_CDATA_ENCOUNTERED",specificity:3}),errorspecificity_4=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_TAG_ANCESTOR",specificity:4}), errorspecificity_5=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_TAG_ANCESTOR",specificity:5}),errorspecificity_6=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_TAG_ANCESTOR_WITH_HINT",specificity:6}),errorspecificity_7=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_TAG_MISSING",specificity:7}),errorspecificity_8=Object.assign(new amp$validator$ErrorSpecificity,{code:"WRONG_PARENT_TAG",specificity:8}),errorspecificity_9=Object.assign(new amp$validator$ErrorSpecificity, -{code:"TAG_REQUIRED_BY_MISSING",specificity:9}),errorspecificity_10=Object.assign(new amp$validator$ErrorSpecificity,{code:"MISSING_REQUIRED_EXTENSION",specificity:10}),errorspecificity_11=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_MISSING_REQUIRED_EXTENSION",specificity:11}),errorspecificity_12=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_TAG_REQUIRED_BY_MISSING",specificity:12}),errorspecificity_13=Object.assign(new amp$validator$ErrorSpecificity,{code:"EXTENSION_UNUSED", -specificity:13}),errorspecificity_14=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_EXTENSION_UNUSED",specificity:14}),errorspecificity_15=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_EXTENSION_DEPRECATED_VERSION",specificity:15}),errorspecificity_16=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_TAG",specificity:16}),errorspecificity_17=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_ATTR",specificity:17}),errorspecificity_18= -Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_ATTR_VALUE",specificity:18}),errorspecificity_19=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_ATTRIBUTE",specificity:19}),errorspecificity_20=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_VALUE_REQUIRED_BY_LAYOUT",specificity:20}),errorspecificity_21=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_ATTR_MISSING",specificity:21}),errorspecificity_22=Object.assign(new amp$validator$ErrorSpecificity, -{code:"MANDATORY_ONEOF_ATTR_MISSING",specificity:22}),errorspecificity_23=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_REQUIRED_BUT_MISSING",specificity:23}),errorspecificity_24=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_UNIQUE_TAG",specificity:24}),errorspecificity_25=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_UNIQUE_TAG_WARNING",specificity:25}),errorspecificity_26=Object.assign(new amp$validator$ErrorSpecificity,{code:"STYLESHEET_TOO_LONG", -specificity:26}),errorspecificity_27=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX",specificity:27}),errorspecificity_28=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_AT_RULE",specificity:28}),errorspecificity_29=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE",specificity:29}),errorspecificity_30=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",specificity:30}), -errorspecificity_31=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_PROPERTY_IN_ATTR_VALUE",specificity:31}),errorspecificity_32=Object.assign(new amp$validator$ErrorSpecificity,{code:"MUTUALLY_EXCLUSIVE_ATTRS",specificity:32}),errorspecificity_33=Object.assign(new amp$validator$ErrorSpecificity,{code:"UNESCAPED_TEMPLATE_IN_ATTR_VALUE",specificity:33}),errorspecificity_34=Object.assign(new amp$validator$ErrorSpecificity,{code:"TEMPLATE_PARTIAL_IN_ATTR_VALUE",specificity:34}),errorspecificity_35= -Object.assign(new amp$validator$ErrorSpecificity,{code:"TEMPLATE_IN_ATTR_NAME",specificity:35}),errorspecificity_36=Object.assign(new amp$validator$ErrorSpecificity,{code:"INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT",specificity:36}),errorspecificity_37=Object.assign(new amp$validator$ErrorSpecificity,{code:"IMPLIED_LAYOUT_INVALID",specificity:37}),errorspecificity_38=Object.assign(new amp$validator$ErrorSpecificity,{code:"SPECIFIED_LAYOUT_INVALID",specificity:38}),errorspecificity_39=Object.assign(new amp$validator$ErrorSpecificity, -{code:"ATTR_DISALLOWED_BY_IMPLIED_LAYOUT",specificity:39}),errorspecificity_40=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT",specificity:40}),errorspecificity_41=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_DIMENSION",specificity:41}),errorspecificity_42=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_RELATIVE_URL",specificity:42}),errorspecificity_43=Object.assign(new amp$validator$ErrorSpecificity,{code:"MISSING_URL", -specificity:43}),errorspecificity_44=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_DOMAIN",specificity:44}),errorspecificity_45=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_URL_PROTOCOL",specificity:45}),errorspecificity_46=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_URL",specificity:46}),errorspecificity_47=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_STYLE_ATTR",specificity:47}),errorspecificity_48=Object.assign(new amp$validator$ErrorSpecificity, -{code:"CSS_SYNTAX_STRAY_TRAILING_BACKSLASH",specificity:48}),errorspecificity_49=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNTERMINATED_COMMENT",specificity:49}),errorspecificity_50=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNTERMINATED_STRING",specificity:50}),errorspecificity_51=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_BAD_URL",specificity:51}),errorspecificity_52=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE", -specificity:52}),errorspecificity_53=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_DECLARATION",specificity:53}),errorspecificity_54=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INCOMPLETE_DECLARATION",specificity:54}),errorspecificity_55=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR",specificity:55}),errorspecificity_56=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_MISSING_SELECTOR", -specificity:56}),errorspecificity_57=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_NOT_A_SELECTOR_START",specificity:57}),errorspecificity_58=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR",specificity:58}),errorspecificity_59=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_MISSING_URL",specificity:59}),errorspecificity_60=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_DOMAIN", -specificity:60}),errorspecificity_61=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_URL",specificity:61}),errorspecificity_62=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_URL_PROTOCOL",specificity:62}),errorspecificity_63=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_RELATIVE_URL",specificity:63}),errorspecificity_64=Object.assign(new amp$validator$ErrorSpecificity,{code:"INCORRECT_NUM_CHILD_TAGS",specificity:64}), -errorspecificity_65=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_CHILD_TAG_NAME",specificity:65}),errorspecificity_66=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_FIRST_CHILD_TAG_NAME",specificity:66}),errorspecificity_67=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_ATTR_SELECTOR",specificity:67}),errorspecificity_68=Object.assign(new amp$validator$ErrorSpecificity,{code:"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT",specificity:68}), -errorspecificity_69=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_REFERENCE_POINT_MISSING",specificity:69}),errorspecificity_70=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_REFERENCE_POINT",specificity:70}),errorspecificity_71=Object.assign(new amp$validator$ErrorSpecificity,{code:"TAG_REFERENCE_POINT_CONFLICT",specificity:71}),errorspecificity_72=Object.assign(new amp$validator$ErrorSpecificity,{code:"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR",specificity:72}), -errorspecificity_73=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE",specificity:73}),errorspecificity_74=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT",specificity:74}),errorspecificity_75=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE",specificity:75}),errorspecificity_76=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH", -specificity:76}),errorspecificity_77=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION",specificity:77}),errorspecificity_78=Object.assign(new amp$validator$ErrorSpecificity,{code:"BASE_TAG_MUST_PRECEED_ALL_URLS",specificity:78}),errorspecificity_79=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_SCRIPT_TAG",specificity:100}),errorspecificity_80=Object.assign(new amp$validator$ErrorSpecificity,{code:"GENERAL_DISALLOWED_TAG",specificity:101}), -errorspecificity_81=Object.assign(new amp$validator$ErrorSpecificity,{code:"DEPRECATED_ATTR",specificity:102}),errorspecificity_82=Object.assign(new amp$validator$ErrorSpecificity,{code:"DEPRECATED_TAG",specificity:103}),errorspecificity_83=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_MANUFACTURED_BODY",specificity:104}),errorspecificity_84=Object.assign(new amp$validator$ErrorSpecificity,{code:"DOCUMENT_TOO_COMPLEX",specificity:105}),errorspecificity_85=Object.assign(new amp$validator$ErrorSpecificity, -{code:"INCORRECT_MIN_NUM_CHILD_TAGS",specificity:106}),errorspecificity_86=Object.assign(new amp$validator$ErrorSpecificity,{code:"TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS",specificity:107}),errorspecificity_87=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_LAST_CHILD_TAG",specificity:108}),errorspecificity_88=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_PROPERTY",specificity:109}),errorspecificity_89=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_PROPERTY_NOLIST", -specificity:110}),errorspecificity_90=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS",specificity:111}),errorspecificity_91=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME",specificity:112}),errorspecificity_92=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME",specificity:113}),errorspecificity_93=Object.assign(new amp$validator$ErrorSpecificity, -{code:"CSS_SYNTAX_MALFORMED_MEDIA_QUERY",specificity:115}),errorspecificity_94=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_MEDIA_TYPE",specificity:116}),errorspecificity_95=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE",specificity:117}),errorspecificity_96=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_UTF8",specificity:118}),descendanttaglist_0=Object.assign(new amp$validator$DescendantTagList,{name:"amp-story-grid-layer-allowed-descendants", -allowedTags:"ABBR ADDRESS AMP-ANALYTICS AMP-AUDIO AMP-EXPERIMENT AMP-FIT-TEXT AMP-FONT AMP-GFYCAT AMP-GIST AMP-GOOGLE-VRVIEW-IMAGE AMP-IMG AMP-INSTALL-SERVICEWORKER AMP-LIST AMP-LIVE-LIST AMP-PIXEL AMP-VIDEO ARTICLE ASIDE B BDI BDO BLOCKQUOTE BR CAPTION CITE CODE COL COLGROUP DATA DD DEL DFN DIV DL DT EM FIGCAPTION FIGURE FOOTER H1 H2 H3 H4 H5 H6 HEADER HGROUP HR I INS KBD LI MAIN MARK NAV NOSCRIPT OL P PRE Q RP RT RTC RUBY S SAMP SECTION SMALL SOURCE SPAN STRONG SUB SUP TABLE TBODY TD TFOOT TH THEAD TIME TR TRACK U UL VAR WBR".split(" ")}), +{code:"TAG_REQUIRED_BY_MISSING",specificity:9}),errorspecificity_10=Object.assign(new amp$validator$ErrorSpecificity,{code:"TAG_EXCLUDED_BY_TAG",specificity:10}),errorspecificity_11=Object.assign(new amp$validator$ErrorSpecificity,{code:"MISSING_REQUIRED_EXTENSION",specificity:11}),errorspecificity_12=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_MISSING_REQUIRED_EXTENSION",specificity:12}),errorspecificity_13=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_TAG_REQUIRED_BY_MISSING", +specificity:13}),errorspecificity_14=Object.assign(new amp$validator$ErrorSpecificity,{code:"EXTENSION_UNUSED",specificity:14}),errorspecificity_15=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_EXTENSION_UNUSED",specificity:15}),errorspecificity_16=Object.assign(new amp$validator$ErrorSpecificity,{code:"WARNING_EXTENSION_DEPRECATED_VERSION",specificity:16}),errorspecificity_17=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_TAG",specificity:17}),errorspecificity_18= +Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_ATTR",specificity:18}),errorspecificity_19=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_ATTR_VALUE",specificity:19}),errorspecificity_20=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_ATTRIBUTE",specificity:20}),errorspecificity_21=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_VALUE_REQUIRED_BY_LAYOUT",specificity:21}),errorspecificity_22=Object.assign(new amp$validator$ErrorSpecificity, +{code:"MANDATORY_ATTR_MISSING",specificity:22}),errorspecificity_23=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_ONEOF_ATTR_MISSING",specificity:23}),errorspecificity_24=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_REQUIRED_BUT_MISSING",specificity:24}),errorspecificity_25=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_UNIQUE_TAG",specificity:25}),errorspecificity_26=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_UNIQUE_TAG_WARNING", +specificity:26}),errorspecificity_27=Object.assign(new amp$validator$ErrorSpecificity,{code:"STYLESHEET_TOO_LONG",specificity:27}),errorspecificity_28=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX",specificity:28}),errorspecificity_29=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_AT_RULE",specificity:29}),errorspecificity_30=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE",specificity:30}),errorspecificity_31= +Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",specificity:31}),errorspecificity_32=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_PROPERTY_IN_ATTR_VALUE",specificity:32}),errorspecificity_33=Object.assign(new amp$validator$ErrorSpecificity,{code:"MUTUALLY_EXCLUSIVE_ATTRS",specificity:33}),errorspecificity_34=Object.assign(new amp$validator$ErrorSpecificity,{code:"UNESCAPED_TEMPLATE_IN_ATTR_VALUE",specificity:34}),errorspecificity_35= +Object.assign(new amp$validator$ErrorSpecificity,{code:"TEMPLATE_PARTIAL_IN_ATTR_VALUE",specificity:35}),errorspecificity_36=Object.assign(new amp$validator$ErrorSpecificity,{code:"TEMPLATE_IN_ATTR_NAME",specificity:36}),errorspecificity_37=Object.assign(new amp$validator$ErrorSpecificity,{code:"INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT",specificity:37}),errorspecificity_38=Object.assign(new amp$validator$ErrorSpecificity,{code:"IMPLIED_LAYOUT_INVALID",specificity:38}),errorspecificity_39=Object.assign(new amp$validator$ErrorSpecificity, +{code:"SPECIFIED_LAYOUT_INVALID",specificity:39}),errorspecificity_40=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_DISALLOWED_BY_IMPLIED_LAYOUT",specificity:40}),errorspecificity_41=Object.assign(new amp$validator$ErrorSpecificity,{code:"ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT",specificity:41}),errorspecificity_42=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_DIMENSION",specificity:42}),errorspecificity_43=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_RELATIVE_URL", +specificity:43}),errorspecificity_44=Object.assign(new amp$validator$ErrorSpecificity,{code:"MISSING_URL",specificity:44}),errorspecificity_45=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_DOMAIN",specificity:45}),errorspecificity_46=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_URL_PROTOCOL",specificity:46}),errorspecificity_47=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_URL",specificity:47}),errorspecificity_48=Object.assign(new amp$validator$ErrorSpecificity, +{code:"DISALLOWED_STYLE_ATTR",specificity:48}),errorspecificity_49=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_STRAY_TRAILING_BACKSLASH",specificity:49}),errorspecificity_50=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNTERMINATED_COMMENT",specificity:50}),errorspecificity_51=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNTERMINATED_STRING",specificity:51}),errorspecificity_52=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_BAD_URL", +specificity:52}),errorspecificity_53=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE",specificity:53}),errorspecificity_54=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_DECLARATION",specificity:54}),errorspecificity_55=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INCOMPLETE_DECLARATION",specificity:55}),errorspecificity_56=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR", +specificity:56}),errorspecificity_57=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_MISSING_SELECTOR",specificity:57}),errorspecificity_58=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_NOT_A_SELECTOR_START",specificity:58}),errorspecificity_59=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR",specificity:59}),errorspecificity_60=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_MISSING_URL", +specificity:60}),errorspecificity_61=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_DOMAIN",specificity:61}),errorspecificity_62=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_URL",specificity:62}),errorspecificity_63=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_URL_PROTOCOL",specificity:63}),errorspecificity_64=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_RELATIVE_URL",specificity:64}), +errorspecificity_65=Object.assign(new amp$validator$ErrorSpecificity,{code:"INCORRECT_NUM_CHILD_TAGS",specificity:65}),errorspecificity_66=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_CHILD_TAG_NAME",specificity:66}),errorspecificity_67=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_FIRST_CHILD_TAG_NAME",specificity:67}),errorspecificity_68=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_ATTR_SELECTOR",specificity:68}),errorspecificity_69= +Object.assign(new amp$validator$ErrorSpecificity,{code:"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT",specificity:69}),errorspecificity_70=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_REFERENCE_POINT_MISSING",specificity:70}),errorspecificity_71=Object.assign(new amp$validator$ErrorSpecificity,{code:"DUPLICATE_REFERENCE_POINT",specificity:71}),errorspecificity_72=Object.assign(new amp$validator$ErrorSpecificity,{code:"TAG_REFERENCE_POINT_CONFLICT",specificity:72}),errorspecificity_73= +Object.assign(new amp$validator$ErrorSpecificity,{code:"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR",specificity:73}),errorspecificity_74=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE",specificity:74}),errorspecificity_75=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT",specificity:75}),errorspecificity_76=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE", +specificity:76}),errorspecificity_77=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH",specificity:77}),errorspecificity_78=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION",specificity:78}),errorspecificity_79=Object.assign(new amp$validator$ErrorSpecificity,{code:"BASE_TAG_MUST_PRECEED_ALL_URLS",specificity:79}),errorspecificity_80=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_SCRIPT_TAG", +specificity:100}),errorspecificity_81=Object.assign(new amp$validator$ErrorSpecificity,{code:"GENERAL_DISALLOWED_TAG",specificity:101}),errorspecificity_82=Object.assign(new amp$validator$ErrorSpecificity,{code:"DEPRECATED_ATTR",specificity:102}),errorspecificity_83=Object.assign(new amp$validator$ErrorSpecificity,{code:"DEPRECATED_TAG",specificity:103}),errorspecificity_84=Object.assign(new amp$validator$ErrorSpecificity,{code:"DISALLOWED_MANUFACTURED_BODY",specificity:104}),errorspecificity_85= +Object.assign(new amp$validator$ErrorSpecificity,{code:"DOCUMENT_TOO_COMPLEX",specificity:105}),errorspecificity_86=Object.assign(new amp$validator$ErrorSpecificity,{code:"INCORRECT_MIN_NUM_CHILD_TAGS",specificity:106}),errorspecificity_87=Object.assign(new amp$validator$ErrorSpecificity,{code:"TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS",specificity:107}),errorspecificity_88=Object.assign(new amp$validator$ErrorSpecificity,{code:"MANDATORY_LAST_CHILD_TAG",specificity:108}),errorspecificity_89=Object.assign(new amp$validator$ErrorSpecificity, +{code:"CSS_SYNTAX_INVALID_PROPERTY",specificity:109}),errorspecificity_90=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_INVALID_PROPERTY_NOLIST",specificity:110}),errorspecificity_91=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS",specificity:111}),errorspecificity_92=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME",specificity:112}),errorspecificity_93= +Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME",specificity:113}),errorspecificity_94=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_MALFORMED_MEDIA_QUERY",specificity:115}),errorspecificity_95=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_MEDIA_TYPE",specificity:116}),errorspecificity_96=Object.assign(new amp$validator$ErrorSpecificity,{code:"CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE",specificity:117}), +errorspecificity_97=Object.assign(new amp$validator$ErrorSpecificity,{code:"INVALID_UTF8",specificity:118}),descendanttaglist_0=Object.assign(new amp$validator$DescendantTagList,{name:"amp-story-cta-layer-allowed-descendants",allowedTags:"A ABBR ADDRESS AMP-CALL-TRACKING AMP-FIT-TEXT AMP-FONT AMP-IMG AMP-TIMEAGO B BDI BDO BLOCKQUOTE BR BUTTON CAPTION CITE CODE DATA DEL DFN DIV EM FIGCAPTION FIGURE FOOTER H1 H2 H3 H4 H5 H6 HEADER HGROUP HR I INS KBD LI MAIN MARK NAV NOSCRIPT OL P PRE Q RP RT RTC RUBY S SAMP SECTION SMALL SPAN STRONG SUB SUP TIME TR U UL VAR WBR".split(" ")}), +descendanttaglist_1=Object.assign(new amp$validator$DescendantTagList,{name:"amp-story-grid-layer-allowed-descendants",allowedTags:"ABBR ADDRESS AMP-ANALYTICS AMP-AUDIO AMP-EXPERIMENT AMP-FIT-TEXT AMP-FONT AMP-GFYCAT AMP-GIST AMP-GOOGLE-VRVIEW-IMAGE AMP-IMG AMP-INSTALL-SERVICEWORKER AMP-LIST AMP-LIVE-LIST AMP-PIXEL AMP-VIDEO ARTICLE ASIDE B BDI BDO BLOCKQUOTE BR CAPTION CITE CODE COL COLGROUP DATA DD DEL DFN DIV DL DT EM FIGCAPTION FIGURE FOOTER H1 H2 H3 H4 H5 H6 HEADER HGROUP HR I INS KBD LI MAIN MARK NAV NOSCRIPT OL P PRE Q RP RT RTC RUBY S SAMP SECTION SMALL SOURCE SPAN STRONG SUB SUP TABLE TBODY TD TFOOT TH THEAD TIME TR TRACK U UL VAR WBR".split(" ")}), validatorrules_0=Object.assign(new amp$validator$ValidatorRules([tagspec_0,tagspec_1,tagspec_2,tagspec_3,tagspec_4,tagspec_5,tagspec_6,tagspec_7,tagspec_8,tagspec_9,tagspec_10,tagspec_11,tagspec_12,tagspec_13,tagspec_14,tagspec_15,tagspec_16,tagspec_17,tagspec_18,tagspec_19,tagspec_20,tagspec_21,tagspec_22,tagspec_23,tagspec_24,tagspec_25,tagspec_26,tagspec_27,tagspec_28,tagspec_29,tagspec_30,tagspec_31,tagspec_32,tagspec_33,tagspec_34,tagspec_35,tagspec_36,tagspec_37,tagspec_38,tagspec_39,tagspec_40, tagspec_41,tagspec_42,tagspec_43,tagspec_44,tagspec_45,tagspec_46,tagspec_47,tagspec_48,tagspec_49,tagspec_50,tagspec_51,tagspec_52,tagspec_53,tagspec_54,tagspec_55,tagspec_56,tagspec_57,tagspec_58,tagspec_59,tagspec_60,tagspec_61,tagspec_62,tagspec_63,tagspec_64,tagspec_65,tagspec_66,tagspec_67,tagspec_68,tagspec_69,tagspec_70,tagspec_71,tagspec_72,tagspec_73,tagspec_74,tagspec_75,tagspec_76,tagspec_77,tagspec_78,tagspec_79,tagspec_80,tagspec_81,tagspec_82,tagspec_83,tagspec_84,tagspec_85,tagspec_86, tagspec_87,tagspec_88,tagspec_89,tagspec_90,tagspec_91,tagspec_92,tagspec_93,tagspec_94,tagspec_95,tagspec_96,tagspec_97,tagspec_98,tagspec_99,tagspec_100,tagspec_101,tagspec_102,tagspec_103,tagspec_104,tagspec_105,tagspec_106,tagspec_107,tagspec_108,tagspec_109,tagspec_110,tagspec_111,tagspec_112,tagspec_113,tagspec_114,tagspec_115,tagspec_116,tagspec_117,tagspec_118,tagspec_119,tagspec_120,tagspec_121,tagspec_122,tagspec_123,tagspec_124,tagspec_125,tagspec_126,tagspec_127,tagspec_128,tagspec_129, @@ -532,111 +554,125 @@ tagspec_214,tagspec_215,tagspec_216,tagspec_217,tagspec_218,tagspec_219,tagspec_ tagspec_256,tagspec_257,tagspec_258,tagspec_259,tagspec_260,tagspec_261,tagspec_262,tagspec_263,tagspec_264,tagspec_265,tagspec_266,tagspec_267,tagspec_268,tagspec_269,tagspec_270,tagspec_271,tagspec_272,tagspec_273,tagspec_274,tagspec_275,tagspec_276,tagspec_277,tagspec_278,tagspec_279,tagspec_280,tagspec_281,tagspec_282,tagspec_283,tagspec_284,tagspec_285,tagspec_286,tagspec_287,tagspec_288,tagspec_289,tagspec_290,tagspec_291,tagspec_292,tagspec_293,tagspec_294,tagspec_295,tagspec_296,tagspec_297, tagspec_298,tagspec_299,tagspec_300,tagspec_301,tagspec_302,tagspec_303,tagspec_304,tagspec_305,tagspec_306,tagspec_307,tagspec_308,tagspec_309,tagspec_310,tagspec_311,tagspec_312,tagspec_313,tagspec_314,tagspec_315,tagspec_316,tagspec_317,tagspec_318,tagspec_319,tagspec_320,tagspec_321,tagspec_322,tagspec_323,tagspec_324,tagspec_325,tagspec_326,tagspec_327,tagspec_328,tagspec_329,tagspec_330,tagspec_331,tagspec_332,tagspec_333,tagspec_334,tagspec_335,tagspec_336,tagspec_337,tagspec_338,tagspec_339, tagspec_340,tagspec_341,tagspec_342,tagspec_343,tagspec_344,tagspec_345,tagspec_346,tagspec_347,tagspec_348,tagspec_349,tagspec_350,tagspec_351,tagspec_352,tagspec_353,tagspec_354,tagspec_355,tagspec_356,tagspec_357,tagspec_358,tagspec_359,tagspec_360,tagspec_361,tagspec_362,tagspec_363,tagspec_364,tagspec_365,tagspec_366,tagspec_367,tagspec_368,tagspec_369,tagspec_370,tagspec_371,tagspec_372,tagspec_373,tagspec_374,tagspec_375,tagspec_376,tagspec_377,tagspec_378,tagspec_379,tagspec_380,tagspec_381, -tagspec_382,tagspec_383,tagspec_384,tagspec_385,tagspec_386,tagspec_387,tagspec_388,tagspec_389,tagspec_390,tagspec_391,tagspec_392,tagspec_393,tagspec_394,tagspec_395,tagspec_396,tagspec_397,tagspec_398,tagspec_399,tagspec_400,tagspec_401,tagspec_402,tagspec_403,tagspec_404,tagspec_405,tagspec_406,tagspec_407,tagspec_408,tagspec_409,tagspec_410,tagspec_411,tagspec_412]),{minValidatorRevisionRequired:319,specFileRevision:573,templateSpecUrl:"https://www.ampproject.org/docs/reference/components/dynamic/amp-mustache", -errorFormats:[errorformat_0,errorformat_1,errorformat_2,errorformat_3,errorformat_4,errorformat_5,errorformat_6,errorformat_7,errorformat_8,errorformat_9,errorformat_10,errorformat_11,errorformat_12,errorformat_13,errorformat_14,errorformat_15,errorformat_16,errorformat_17,errorformat_18,errorformat_19,errorformat_20,errorformat_21,errorformat_22,errorformat_23,errorformat_24,errorformat_25,errorformat_26,errorformat_27,errorformat_28,errorformat_29,errorformat_30,errorformat_31,errorformat_32,errorformat_33, -errorformat_34,errorformat_35,errorformat_36,errorformat_37,errorformat_38,errorformat_39,errorformat_40,errorformat_41,errorformat_42,errorformat_43,errorformat_44,errorformat_45,errorformat_46,errorformat_47,errorformat_48,errorformat_49,errorformat_50,errorformat_51,errorformat_52,errorformat_53,errorformat_54,errorformat_55,errorformat_56,errorformat_57,errorformat_58,errorformat_59,errorformat_60,errorformat_61,errorformat_62,errorformat_63,errorformat_64,errorformat_65,errorformat_66,errorformat_67, -errorformat_68,errorformat_69,errorformat_70,errorformat_71,errorformat_72,errorformat_73,errorformat_74,errorformat_75,errorformat_76,errorformat_77,errorformat_78,errorformat_79,errorformat_80,errorformat_81,errorformat_82,errorformat_83,errorformat_84,errorformat_85,errorformat_86,errorformat_87,errorformat_88,errorformat_89,errorformat_90,errorformat_91,errorformat_92,errorformat_93,errorformat_94,errorformat_95,errorformat_96],errorSpecificity:[errorspecificity_0,errorspecificity_1,errorspecificity_2, -errorspecificity_3,errorspecificity_4,errorspecificity_5,errorspecificity_6,errorspecificity_7,errorspecificity_8,errorspecificity_9,errorspecificity_10,errorspecificity_11,errorspecificity_12,errorspecificity_13,errorspecificity_14,errorspecificity_15,errorspecificity_16,errorspecificity_17,errorspecificity_18,errorspecificity_19,errorspecificity_20,errorspecificity_21,errorspecificity_22,errorspecificity_23,errorspecificity_24,errorspecificity_25,errorspecificity_26,errorspecificity_27,errorspecificity_28, -errorspecificity_29,errorspecificity_30,errorspecificity_31,errorspecificity_32,errorspecificity_33,errorspecificity_34,errorspecificity_35,errorspecificity_36,errorspecificity_37,errorspecificity_38,errorspecificity_39,errorspecificity_40,errorspecificity_41,errorspecificity_42,errorspecificity_43,errorspecificity_44,errorspecificity_45,errorspecificity_46,errorspecificity_47,errorspecificity_48,errorspecificity_49,errorspecificity_50,errorspecificity_51,errorspecificity_52,errorspecificity_53,errorspecificity_54, -errorspecificity_55,errorspecificity_56,errorspecificity_57,errorspecificity_58,errorspecificity_59,errorspecificity_60,errorspecificity_61,errorspecificity_62,errorspecificity_63,errorspecificity_64,errorspecificity_65,errorspecificity_66,errorspecificity_67,errorspecificity_68,errorspecificity_69,errorspecificity_70,errorspecificity_71,errorspecificity_72,errorspecificity_73,errorspecificity_74,errorspecificity_75,errorspecificity_76,errorspecificity_77,errorspecificity_78,errorspecificity_79,errorspecificity_80, -errorspecificity_81,errorspecificity_82,errorspecificity_83,errorspecificity_84,errorspecificity_85,errorspecificity_86,errorspecificity_87,errorspecificity_88,errorspecificity_89,errorspecificity_90,errorspecificity_91,errorspecificity_92,errorspecificity_93,errorspecificity_94,errorspecificity_95,errorspecificity_96],stylesSpecUrl:"https://www.ampproject.org/docs/guides/author-develop/responsive/style_pages",descendantTagList:[descendanttaglist_0],scriptSpecUrl:"https://www.ampproject.org/docs/reference/spec#html-tags"}); -validatorrules_0.dispatchKeyByTagSpecId[8]="rel\x00canonical";validatorrules_0.dispatchKeyByTagSpecId[9]="rel\x00manifest";validatorrules_0.dispatchKeyByTagSpecId[10]="rel\x00stylesheet";validatorrules_0.dispatchKeyByTagSpecId[11]="itemprop\x00sameas";validatorrules_0.dispatchKeyByTagSpecId[14]="charset";validatorrules_0.dispatchKeyByTagSpecId[15]="name\x00viewport";validatorrules_0.dispatchKeyByTagSpecId[16]="http-equiv\x00x-ua-compatible";validatorrules_0.dispatchKeyByTagSpecId[17]="name\x00apple-itunes-app"; -validatorrules_0.dispatchKeyByTagSpecId[18]="name\x00amp-experiments-opt-in";validatorrules_0.dispatchKeyByTagSpecId[19]="name\x00amp-3p-iframe-src";validatorrules_0.dispatchKeyByTagSpecId[20]="name\x00amp-experiment-token";validatorrules_0.dispatchKeyByTagSpecId[21]="name\x00amp-link-variable-allowed-origin";validatorrules_0.dispatchKeyByTagSpecId[22]="name\x00amp-google-client-id-api";validatorrules_0.dispatchKeyByTagSpecId[23]="name\x00amp-ad-doubleclick-sra";validatorrules_0.dispatchKeyByTagSpecId[24]= -"name\x00amp4ads-id";validatorrules_0.dispatchKeyByTagSpecId[26]="http-equiv\x00content-type";validatorrules_0.dispatchKeyByTagSpecId[27]="http-equiv\x00content-language";validatorrules_0.dispatchKeyByTagSpecId[28]="http-equiv\x00pics-label";validatorrules_0.dispatchKeyByTagSpecId[29]="http-equiv\x00imagetoolbar";validatorrules_0.dispatchKeyByTagSpecId[30]="http-equiv\x00content-style-type";validatorrules_0.dispatchKeyByTagSpecId[31]="http-equiv\x00content-script-type";validatorrules_0.dispatchKeyByTagSpecId[32]= -"http-equiv\x00origin-trial";validatorrules_0.dispatchKeyByTagSpecId[33]="http-equiv\x00resource-type";validatorrules_0.dispatchKeyByTagSpecId[34]="name\x00amp-ad-enable-refresh";validatorrules_0.dispatchKeyByTagSpecId[35]="name\x00amp-to-amp-navigation";validatorrules_0.dispatchKeyByTagSpecId[41]="amp-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[42]="amp4ads-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[43]="amp4email-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[44]= -"amp-boilerplate\x00\x00NOSCRIPT";validatorrules_0.dispatchKeyByTagSpecId[45]="amp-keyframes";validatorrules_0.dispatchKeyByTagSpecId[181]="method\x00post";validatorrules_0.dispatchKeyByTagSpecId[183]="method\x00post";validatorrules_0.dispatchKeyByTagSpecId[184]="submitting";validatorrules_0.dispatchKeyByTagSpecId[203]="src\x00https://cdn.ampproject.org/v0.js";validatorrules_0.dispatchKeyByTagSpecId[204]="src\x00https://cdn.ampproject.org/amp4ads-v0.js";validatorrules_0.dispatchKeyByTagSpecId[205]= -"type\x00application/ld+json";validatorrules_0.dispatchKeyByTagSpecId[206]="id\x00amp-rtc";validatorrules_0.dispatchKeyByTagSpecId[207]="type\x00application/json\x00AMP-IMA-VIDEO";validatorrules_0.dispatchKeyByTagSpecId[234]="id\x00amp-access";validatorrules_0.dispatchKeyByTagSpecId[240]="type\x00application/json\x00AMP-AD-EXIT";validatorrules_0.dispatchKeyByTagSpecId[243]="data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[244]="data-enable-refresh\x00";validatorrules_0.dispatchKeyByTagSpecId[246]= -"data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[248]="type\x00application/json\x00AMP-ANALYTICS";validatorrules_0.dispatchKeyByTagSpecId[255]="type\x00application/json\x00AMP-ANIMATION";validatorrules_0.dispatchKeyByTagSpecId[268]="type\x00application/json\x00AMP-STATE";validatorrules_0.dispatchKeyByTagSpecId[286]="type\x00application/json\x00AMP-EXPERIMENT";validatorrules_0.dispatchKeyByTagSpecId[375]="toolbar";var attrspec_0=Object.assign(new amp$validator$AttrSpec("html"),{mandatory:!0, -value:""}),attrspec_1=Object.assign(new amp$validator$AttrSpec("\u26a1"),{alternativeNames:["amp"],mandatory:!0,value:""}),attrspec_2=Object.assign(new amp$validator$AttrSpec("\u26a14ads"),{alternativeNames:["amp4ads"],mandatory:!0,value:""}),attrspec_3=Object.assign(new amp$validator$AttrSpec("\u26a14email"),{alternativeNames:["amp4email"],mandatory:!0,value:""}),attrspec_4=Object.assign(new amp$validator$AttrSpec("href"),{value:"/"}),attrspec_5=Object.assign(new amp$validator$AttrSpec("target"), -{valueRegexCasei:-266}),attrspec_6=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,blacklistedValueRegex:-267}),urlspec_3=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0}),attrspec_7=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_3}),attrspec_8=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"canonical"}),urlspec_4=Object.assign(new amp$validator$UrlSpec(["https"]), -{allowRelative:!0}),attrspec_9=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_10=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"manifest"}),attrspec_11=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,valueRegex:-269}),attrspec_12=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"stylesheet"}), -attrspec_13=Object.assign(new amp$validator$AttrSpec("type"),{valueCasei:"text/css"}),attrspec_14=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0}),attrspec_15=Object.assign(new amp$validator$AttrSpec("itemprop"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"sameas"}),attrspec_16=Object.assign(new amp$validator$AttrSpec("itemprop"),{mandatory:!0}),attrspec_17=Object.assign(new amp$validator$AttrSpec("property"),{mandatory:!0}),attrspec_18=Object.assign(new amp$validator$AttrSpec("charset"), -{mandatory:!0,dispatchKey:"NAME_DISPATCH",valueCasei:"utf-8"}),propertyspec_0=Object.assign(new amp$validator$PropertySpec("width"),{mandatory:!0,value:"device-width"}),propertyspec_1=new amp$validator$PropertySpec("height"),propertyspec_2=new amp$validator$PropertySpec("initial-scale"),propertyspec_3=Object.assign(new amp$validator$PropertySpec("minimum-scale"),{mandatory:!0,valueDouble:1}),attrspec_19=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueProperties:new amp$validator$PropertySpecList([propertyspec_0, -propertyspec_1,propertyspec_2,propertyspec_3,new amp$validator$PropertySpec("maximum-scale"),new amp$validator$PropertySpec("shrink-to-fit"),new amp$validator$PropertySpec("user-scalable"),new amp$validator$PropertySpec("viewport-fit")])}),attrspec_20=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,value:"viewport",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_21=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"x-ua-compatible"}), -propertyspec_8=Object.assign(new amp$validator$PropertySpec("ie"),{value:"edge"}),propertyspec_9=Object.assign(new amp$validator$PropertySpec("chrome"),{value:"1"}),attrspec_22=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueProperties:new amp$validator$PropertySpecList([propertyspec_8,propertyspec_9])}),attrspec_23=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"apple-itunes-app"}),attrspec_24=Object.assign(new amp$validator$AttrSpec("content"), -{mandatory:!0,valueRegex:-270}),attrspec_25=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-experiments-opt-in"}),attrspec_26=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0}),attrspec_27=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-3p-iframe-src"}),attrspec_28=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueUrl:urlspec_2}),attrspec_29= -Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-experiment-token"}),attrspec_30=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-link-variable-allowed-origin"}),attrspec_31=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-google-client-id-api"}),attrspec_32=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0, -dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-ad-doubleclick-sra"}),attrspec_33=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp4ads-id"}),attrspec_34=Object.assign(new amp$validator$AttrSpec("name"),{blacklistedValueRegex:-271}),attrspec_35=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-type"}),attrspec_36=Object.assign(new amp$validator$AttrSpec("content"), -{mandatory:!0,valueCasei:"text/html; charset=utf-8"}),attrspec_37=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-language"}),attrspec_38=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"pics-label"}),attrspec_39=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"imagetoolbar"}),attrspec_40=Object.assign(new amp$validator$AttrSpec("http-equiv"), -{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-style-type"}),attrspec_41=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueCasei:"text/css"}),attrspec_42=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-script-type"}),attrspec_43=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueCasei:"text/javascript"}),attrspec_44=Object.assign(new amp$validator$AttrSpec("http-equiv"), -{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"origin-trial"}),attrspec_45=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"resource-type"}),attrspec_46=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-ad-enable-refresh"}),attrspec_47=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-to-amp-navigation"}), -attrspec_48=Object.assign(new amp$validator$AttrSpec("amp-custom"),{mandatory:!0,value:""}),attrspec_49=Object.assign(new amp$validator$AttrSpec("amp-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_50=Object.assign(new amp$validator$AttrSpec("amp4ads-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_51=Object.assign(new amp$validator$AttrSpec("amp4email-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}), -attrspec_52=Object.assign(new amp$validator$AttrSpec("amp-keyframes"),{mandatory:!0,value:"",dispatchKey:"NAME_DISPATCH"}),attrspec_53=Object.assign(new amp$validator$AttrSpec("reversed"),{value:""}),attrspec_54=Object.assign(new amp$validator$AttrSpec("start"),{valueRegex:-272}),attrspec_55=Object.assign(new amp$validator$AttrSpec("type"),{valueRegex:-273}),attrspec_56=Object.assign(new amp$validator$AttrSpec("value"),{valueRegex:-272}),urlspec_5=Object.assign(new amp$validator$UrlSpec("ftp geo http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema twitter viber whatsapp".split(" ")), -{allowRelative:!0,allowEmpty:!0}),attrspec_57=Object.assign(new amp$validator$AttrSpec("href"),{blacklistedValueRegex:-268,valueUrl:urlspec_5}),attrspec_58=Object.assign(new amp$validator$AttrSpec("rel"),{blacklistedValueRegex:-274}),attrspec_59=Object.assign(new amp$validator$AttrSpec("role"),{implicit:!0}),attrspec_60=Object.assign(new amp$validator$AttrSpec("tabindex"),{implicit:!0}),attrspec_61=Object.assign(new amp$validator$AttrSpec("target"),{valueRegex:-266}),attrspec_62=Object.assign(new amp$validator$AttrSpec("type"), -{valueCasei:"text/html"}),urlspec_6=Object.assign(new amp$validator$UrlSpec(["https","mailto"]),{allowRelative:!1}),attrspec_63=Object.assign(new amp$validator$AttrSpec("href"),{blacklistedValueRegex:-275,valueUrl:urlspec_6}),attrspec_64=Object.assign(new amp$validator$AttrSpec("target"),{valueRegex:-276}),attrspec_65=Object.assign(new amp$validator$AttrSpec("longdesc"),{blacklistedValueRegex:-268,valueUrl:urlspec_3}),urlspec_7=Object.assign(new amp$validator$UrlSpec(["data","https"]),{allowRelative:!0}), -attrspec_66=Object.assign(new amp$validator$AttrSpec("src"),{alternativeNames:["srcset"],mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_7}),attrspec_67=Object.assign(new amp$validator$AttrSpec("frameborder"),{valueRegex:-277}),attrspec_68=Object.assign(new amp$validator$AttrSpec("resizable"),{value:""}),attrspec_69=Object.assign(new amp$validator$AttrSpec("scrolling"),{valueRegex:-278}),urlspec_8=Object.assign(new amp$validator$UrlSpec(["data","https"]),{allowRelative:!1}),attrspec_70=Object.assign(new amp$validator$AttrSpec("src"), -{blacklistedValueRegex:-268,mandatoryOneof:-279,valueUrl:urlspec_8}),attrspec_71=Object.assign(new amp$validator$AttrSpec("srcdoc"),{mandatoryOneof:-279}),attrspec_72=Object.assign(new amp$validator$AttrSpec("muted"),{deprecation:"autoplay",deprecationUrl:"https://www.ampproject.org/docs/reference/components/amp-video"}),attrspec_73=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-268,valueUrl:urlspec_8}),attrspec_74=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-268, -valueUrl:urlspec_4}),attrspec_75=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_76=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0}),urlspec_9=Object.assign(new amp$validator$UrlSpec(["data","http","https"]),{allowRelative:!0,allowEmpty:!1}),attrspec_77=Object.assign(new amp$validator$AttrSpec("xlink:href"),{alternativeNames:["href"],blacklistedValueRegex:-280,valueUrl:urlspec_9}),attrspec_78=Object.assign(new amp$validator$AttrSpec("version"), -{valueRegex:-281}),attrspec_79=Object.assign(new amp$validator$AttrSpec("border"),{valueRegex:-277}),attrspec_80=Object.assign(new amp$validator$AttrSpec("action"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_81=Object.assign(new amp$validator$AttrSpec("action-xhr"),{blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_82=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-282}),attrspec_83=Object.assign(new amp$validator$AttrSpec("method"), -{valueCasei:"get"}),attrspec_84=Object.assign(new amp$validator$AttrSpec("target"),{mandatory:!0,valueRegexCasei:-283}),attrspec_85=Object.assign(new amp$validator$AttrSpec("verify-xhr"),{blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_86=Object.assign(new amp$validator$AttrSpec("action-xhr"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_87=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-284}),attrspec_88=Object.assign(new amp$validator$AttrSpec("method"), -{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"post"}),attrspec_89=Object.assign(new amp$validator$AttrSpec("action-xhr"),{blacklistedValueRegex:-285,valueUrl:urlspec_2}),attrspec_90=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-286}),urlspec_10=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!1}),attrspec_91=Object.assign(new amp$validator$AttrSpec("verify-xhr"),{blacklistedValueRegex:-268,valueUrl:urlspec_10}),attrspec_92=Object.assign(new amp$validator$AttrSpec("action-xhr"), -{mandatory:!0,blacklistedValueRegex:-285,valueUrl:urlspec_10}),attrspec_93=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-287}),attrspec_94=Object.assign(new amp$validator$AttrSpec("submitting"),{mandatory:!0,dispatchKey:"NAME_DISPATCH"}),attrspec_95=Object.assign(new amp$validator$AttrSpec("submit-success"),{mandatory:!0}),attrspec_96=Object.assign(new amp$validator$AttrSpec("template"),{mandatory:!0}),attrspec_97=Object.assign(new amp$validator$AttrSpec("submit-error"), -{mandatory:!0}),attrspec_98=Object.assign(new amp$validator$AttrSpec("type"),{blacklistedValueRegex:-288}),attrspec_99=Object.assign(new amp$validator$AttrSpec("disabled"),{value:""}),attrspec_100=Object.assign(new amp$validator$AttrSpec("open-button"),{value:""}),attrspec_101=Object.assign(new amp$validator$AttrSpec("async"),{mandatory:!0,value:""}),attrspec_102=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,value:"https://cdn.ampproject.org/v0.js",dispatchKey:"NAME_VALUE_DISPATCH"}), -attrspec_103=Object.assign(new amp$validator$AttrSpec("type"),{valueCasei:"text/javascript"}),attrspec_104=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,value:"https://cdn.ampproject.org/amp4ads-v0.js",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_105=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"application/ld+json"}),attrspec_106=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,valueCasei:"application/json"}), -attrspec_107=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-rtc"}),attrspec_108=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,dispatchKey:"NAME_VALUE_PARENT_DISPATCH",valueCasei:"application/json"}),attrspec_109=Object.assign(new amp$validator$AttrSpec("referrerpolicy"),{value:"no-referrer"}),urlspec_11=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!0,allowEmpty:!0}),attrspec_110=Object.assign(new amp$validator$AttrSpec("src"), -{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_11}),attrspec_111=Object.assign(new amp$validator$AttrSpec("autoplay"),{value:""}),attrspec_112=Object.assign(new amp$validator$AttrSpec("data-id"),{mandatory:!0}),attrspec_113=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,value:"amp-access",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_114=Object.assign(new amp$validator$AttrSpec("disable-session-states"),{value:""}),attrspec_115=Object.assign(new amp$validator$AttrSpec("expanded"), -{value:""}),attrspec_116=Object.assign(new amp$validator$AttrSpec("expand-single-section"),{value:""}),attrspec_117=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0}),attrspec_118=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,value:"application/json",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_119=Object.assign(new amp$validator$AttrSpec("data-multi-size"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_120=Object.assign(new amp$validator$AttrSpec("data-enable-refresh"), -{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_121=Object.assign(new amp$validator$AttrSpec("config"),{blacklistedValueRegex:-268,valueUrl:urlspec_11}),attrspec_122=Object.assign(new amp$validator$AttrSpec("trigger"),{value:"visibility"}),attrspec_123=Object.assign(new amp$validator$AttrSpec("data-apester-media-id"),{mandatoryOneof:-289,valueRegex:-290}),attrspec_124=Object.assign(new amp$validator$AttrSpec("data-apester-channel-token"),{mandatoryOneof:-289,valueRegex:-290}), -attrspec_125=Object.assign(new amp$validator$AttrSpec("preload"),{valueRegexCasei:-291}),attrspec_126=Object.assign(new amp$validator$AttrSpec("autoplay"),{mandatory:!0,value:""}),attrtriggerspec_0=new amp$validator$AttrTriggerSpec(["src"]),attrspec_127=Object.assign(new amp$validator$AttrSpec("credentials"),{trigger:attrtriggerspec_0}),attrspec_128=Object.assign(new amp$validator$AttrSpec("expression"),{mandatory:!0}),attrspec_129=Object.assign(new amp$validator$AttrSpec("data-outstream"),{mandatoryOneof:-292, -valueRegex:-293}),attrspec_130=Object.assign(new amp$validator$AttrSpec("data-partner"),{mandatory:!0,valueRegex:-293}),attrspec_131=Object.assign(new amp$validator$AttrSpec("data-player"),{mandatory:!0,valueRegex:-293}),attrspec_132=Object.assign(new amp$validator$AttrSpec("data-playlist"),{mandatoryOneof:-292,valueRegex:-293}),attrspec_133=Object.assign(new amp$validator$AttrSpec("data-video"),{mandatoryOneof:-292,valueRegex:-293}),attrspec_134=Object.assign(new amp$validator$AttrSpec("data-account"), -{mandatory:!0}),attrspec_135=Object.assign(new amp$validator$AttrSpec("data-label"),{mandatory:!0}),attrspec_136=Object.assign(new amp$validator$AttrSpec("data-webcare-id"),{mandatory:!0}),attrspec_137=Object.assign(new amp$validator$AttrSpec("config"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_10}),attrspec_138=Object.assign(new amp$validator$AttrSpec("arrows"),{value:""}),attrspec_139=Object.assign(new amp$validator$AttrSpec("delay"),{valueRegex:-293}),attrspec_140=Object.assign(new amp$validator$AttrSpec("dots"), -{value:""}),attrspec_141=Object.assign(new amp$validator$AttrSpec("loop"),{value:""}),attrspec_142=Object.assign(new amp$validator$AttrSpec("type"),{valueRegex:-294}),attrspec_143=Object.assign(new amp$validator$AttrSpec("data-endscreen-enable"),{valueRegex:-295}),attrspec_144=Object.assign(new amp$validator$AttrSpec("data-info"),{valueRegex:-295}),attrspec_145=Object.assign(new amp$validator$AttrSpec("data-mute"),{valueRegex:-295}),attrspec_146=Object.assign(new amp$validator$AttrSpec("data-sharing-enable"), -{valueRegex:-295}),attrspec_147=Object.assign(new amp$validator$AttrSpec("data-start"),{valueRegex:-293}),attrspec_148=Object.assign(new amp$validator$AttrSpec("data-ui-highlight"),{valueRegexCasei:-296}),attrspec_149=Object.assign(new amp$validator$AttrSpec("data-ui-logo"),{valueRegex:-295}),attrspec_150=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatory:!0,valueRegexCasei:-297}),attrspec_151=Object.assign(new amp$validator$AttrSpec("data-href"),{mandatory:!0}),urlspec_12=Object.assign(new amp$validator$UrlSpec(["http", -"https"]),{allowRelative:!1}),attrspec_152=Object.assign(new amp$validator$AttrSpec("data-href"),{mandatory:!0,valueUrl:urlspec_12}),attrspec_153=Object.assign(new amp$validator$AttrSpec("font-family"),{mandatory:!0}),attrspec_154=Object.assign(new amp$validator$AttrSpec("timeout"),{valueRegex:-293}),attrspec_155=Object.assign(new amp$validator$AttrSpec("height"),{mandatory:!0}),attrspec_156=Object.assign(new amp$validator$AttrSpec("data-gfyid"),{mandatory:!0}),attrspec_157=Object.assign(new amp$validator$AttrSpec("noautoplay"), -{value:""}),attrspec_158=Object.assign(new amp$validator$AttrSpec("data-gistid"),{mandatory:!0}),attrspec_159=Object.assign(new amp$validator$AttrSpec("data-eid"),{mandatory:!0}),attrspec_160=Object.assign(new amp$validator$AttrSpec("allowfullscreen"),{value:""}),attrspec_161=Object.assign(new amp$validator$AttrSpec("allowpaymentrequest"),{value:""}),attrspec_162=Object.assign(new amp$validator$AttrSpec("allowtransparency"),{value:""}),attrspec_163=Object.assign(new amp$validator$AttrSpec("src"), -{blacklistedValueRegex:-268,mandatoryOneof:-279,valueUrl:urlspec_7}),attrspec_164=Object.assign(new amp$validator$AttrSpec("[src]"),{trigger:attrtriggerspec_0}),attrspec_165=Object.assign(new amp$validator$AttrSpec("data-src"),{blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_166=Object.assign(new amp$validator$AttrSpec("data-tag"),{mandatory:!0,valueUrl:urlspec_4}),attrspec_167=Object.assign(new amp$validator$AttrSpec("data-imgur-id"),{mandatory:!0}),attrspec_168=Object.assign(new amp$validator$AttrSpec("data-shortcode"), -{mandatory:!0}),attrspec_169=Object.assign(new amp$validator$AttrSpec("data-iframe-src"),{blacklistedValueRegex:-268,valueUrl:urlspec_4}),attrspec_170=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatory:!0,valueRegex:-293}),attrspec_171=Object.assign(new amp$validator$AttrSpec("data-media-id"),{valueRegexCasei:-298,mandatoryOneof:-299}),attrspec_172=Object.assign(new amp$validator$AttrSpec("data-player-id"),{mandatory:!0,valueRegexCasei:-298}),attrspec_173=Object.assign(new amp$validator$AttrSpec("data-playlist-id"), -{valueRegexCasei:-298,mandatoryOneof:-299}),attrspec_174=Object.assign(new amp$validator$AttrSpec("data-partner"),{mandatory:!0}),attrspec_175=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-285,valueUrl:urlspec_10}),attrspec_176=Object.assign(new amp$validator$AttrSpec("data-max-items-per-page"),{mandatory:!0,valueRegex:-300}),attrspec_177=Object.assign(new amp$validator$AttrSpec("data-poll-interval"),{valueRegex:-301}),attrspec_178=Object.assign(new amp$validator$AttrSpec("update"), -{mandatory:!0}),attrspec_179=Object.assign(new amp$validator$AttrSpec("items"),{mandatory:!0}),attrspec_180=Object.assign(new amp$validator$AttrSpec("pagination"),{mandatory:!0}),attrspec_181=Object.assign(new amp$validator$AttrSpec("data-sort-time"),{mandatory:!0}),attrspec_182=Object.assign(new amp$validator$AttrSpec("data-formula"),{mandatory:!0}),attrspec_183=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,value:"amp-mustache"}),attrspec_184=Object.assign(new amp$validator$AttrSpec("data-client"), -{mandatory:!0}),attrspec_185=Object.assign(new amp$validator$AttrSpec("data-mediaid"),{mandatory:!0,valueRegex:-302}),attrspec_186=Object.assign(new amp$validator$AttrSpec("data-mode"),{valueRegex:-303}),urlspec_13=Object.assign(new amp$validator$UrlSpec(["https","http"]),{allowEmpty:!0}),attrspec_187=Object.assign(new amp$validator$AttrSpec("data-origin"),{valueUrl:urlspec_13}),attrspec_188=Object.assign(new amp$validator$AttrSpec("data-streamtype"),{valueRegex:-304}),attrspec_189=Object.assign(new amp$validator$AttrSpec("data-bcid"), -{mandatory:!0}),attrspec_190=Object.assign(new amp$validator$AttrSpec("data-pid"),{mandatory:!0}),attrspec_191=Object.assign(new amp$validator$AttrSpec("data-embedcode"),{mandatory:!0}),attrspec_192=Object.assign(new amp$validator$AttrSpec("data-pcode"),{mandatory:!0}),attrspec_193=Object.assign(new amp$validator$AttrSpec("data-playerid"),{mandatory:!0}),attrspec_194=Object.assign(new amp$validator$AttrSpec("data-do"),{mandatory:!0}),attrspec_195=Object.assign(new amp$validator$AttrSpec("src"),{mandatoryOneof:-305}), -attrspec_196=Object.assign(new amp$validator$AttrSpec("data-item"),{mandatoryOneof:-305}),attrspec_197=Object.assign(new amp$validator$AttrSpec("data-item-info"),{valueRegexCasei:-306}),attrspec_198=Object.assign(new amp$validator$AttrSpec("data-share-buttons"),{valueRegexCasei:-306}),attrspec_199=Object.assign(new amp$validator$AttrSpec("data-comments"),{valueRegexCasei:-306}),attrspec_200=Object.assign(new amp$validator$AttrSpec("intersection-ratios"),{valueRegex:-307}),attrspec_201=Object.assign(new amp$validator$AttrSpec("viewport-margins"), -{valueRegex:-308}),attrspec_202=Object.assign(new amp$validator$AttrSpec("data-embed-id"),{mandatory:!0,valueRegex:-309}),attrspec_203=Object.assign(new amp$validator$AttrSpec("data-embedlive"),{valueRegexCasei:-306}),attrspec_204=Object.assign(new amp$validator$AttrSpec("data-embedparent"),{valueRegexCasei:-306}),attrspec_205=Object.assign(new amp$validator$AttrSpec("data-embedtype"),{mandatory:!0,valueRegexCasei:-310}),attrspec_206=Object.assign(new amp$validator$AttrSpec("data-src"),{mandatory:!0}), -attrspec_207=Object.assign(new amp$validator$AttrSpec("data-riddle-id"),{mandatory:!0,valueRegex:-293}),attrspec_208=Object.assign(new amp$validator$AttrSpec("keyboard-select-mode"),{valueRegexCasei:-311}),attrspec_209=Object.assign(new amp$validator$AttrSpec("multiple"),{value:""}),attrspec_210=Object.assign(new amp$validator$AttrSpec("option"),{mandatory:!0}),attrspec_211=Object.assign(new amp$validator$AttrSpec("selected"),{value:""}),attrspec_212=Object.assign(new amp$validator$AttrSpec("side"), -{valueRegex:-312}),attrspec_213=Object.assign(new amp$validator$AttrSpec("toolbar"),{mandatory:!0,dispatchKey:"NAME_DISPATCH"}),attrspec_214=Object.assign(new amp$validator$AttrSpec("toolbar-target"),{mandatory:!0}),urlspec_14=Object.assign(new amp$validator$UrlSpec("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema viber whatsapp".split(" ")),{allowRelative:!1}),attrspec_215=Object.assign(new amp$validator$AttrSpec("data-share-endpoint"),{blacklistedValueRegex:-268, -valueUrl:urlspec_14}),attrspec_216=Object.assign(new amp$validator$AttrSpec("data-color"),{valueRegexCasei:-296}),attrspec_217=Object.assign(new amp$validator$AttrSpec("data-playlistid"),{mandatoryOneof:-313,valueRegex:-293}),attrspec_218=Object.assign(new amp$validator$AttrSpec("data-secret-token"),{valueRegex:-314}),attrspec_219=Object.assign(new amp$validator$AttrSpec("data-trackid"),{mandatoryOneof:-313,valueRegex:-293}),attrspec_220=Object.assign(new amp$validator$AttrSpec("data-visual"),{valueRegex:-295}), -attrspec_221=Object.assign(new amp$validator$AttrSpec("data-content-id"),{mandatory:!0}),attrspec_222=Object.assign(new amp$validator$AttrSpec("data-domain"),{mandatory:!0}),attrspec_223=Object.assign(new amp$validator$AttrSpec("data-items"),{mandatory:!0}),attrspec_224=Object.assign(new amp$validator$AttrSpec("data-mode"),{mandatory:!0,valueRegexCasei:-315}),attrspec_225=Object.assign(new amp$validator$AttrSpec("data-player-id"),{mandatory:!0,valueRegexCasei:-297}),attrspec_226=Object.assign(new amp$validator$AttrSpec("data-site-id"), -{mandatory:!0,valueRegex:-293}),attrspec_227=Object.assign(new amp$validator$AttrSpec("standalone"),{mandatory:!0,value:""}),urlspec_15=new amp$validator$UrlSpec(["http","https"]),attrspec_228=Object.assign(new amp$validator$AttrSpec("bookend-config-src"),{valueUrl:urlspec_15}),attrspec_229=Object.assign(new amp$validator$AttrSpec("background-audio"),{valueUrl:urlspec_15}),attrspec_230=Object.assign(new amp$validator$AttrSpec("template"),{mandatory:!0,valueRegex:-316}),attrspec_231=Object.assign(new amp$validator$AttrSpec("align-content"), -{valueRegex:-317}),attrspec_232=Object.assign(new amp$validator$AttrSpec("align-items"),{valueRegex:-318}),attrspec_233=Object.assign(new amp$validator$AttrSpec("align-self"),{valueRegex:-318}),attrspec_234=Object.assign(new amp$validator$AttrSpec("justify-content"),{valueRegex:-317}),attrspec_235=Object.assign(new amp$validator$AttrSpec("justify-items"),{valueRegex:-318}),attrspec_236=Object.assign(new amp$validator$AttrSpec("justify-self"),{valueRegex:-318}),attrspec_237=Object.assign(new amp$validator$AttrSpec("animate-in"), -{valueRegex:-319}),attrspec_238=Object.assign(new amp$validator$AttrSpec("cutoff"),{valueRegex:-300}),attrspec_239=Object.assign(new amp$validator$AttrSpec("datetime"),{mandatory:!0,valueRegex:-320}),attrspec_240=Object.assign(new amp$validator$AttrSpec("data-tweetid"),{mandatory:!0}),urlspec_16=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!1,allowEmpty:!1}),attrspec_241=Object.assign(new amp$validator$AttrSpec("data-dismiss-href"),{valueUrl:urlspec_16}),attrspec_242=Object.assign(new amp$validator$AttrSpec("data-show-if-href"), -{valueUrl:urlspec_16}),attrspec_243=Object.assign(new amp$validator$AttrSpec("enctype"),{value:"application/x-www-form-urlencoded"}),attrspec_244=Object.assign(new amp$validator$AttrSpec("poster"),{mandatory:!0}),attrspec_245=Object.assign(new amp$validator$AttrSpec("data-vineid"),{mandatory:!0}),attrspec_246=Object.assign(new amp$validator$AttrSpec("data-embedtype"),{mandatory:!0}),attrspec_247=Object.assign(new amp$validator$AttrSpec("helper-iframe-url"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_248= -Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,valueRegex:-321}),attrspec_249=Object.assign(new amp$validator$AttrSpec("permission-dialog-url"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_250=Object.assign(new amp$validator$AttrSpec("service-worker-url"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_251=Object.assign(new amp$validator$AttrSpec("visibility"),{mandatory:!0,valueRegex:-322}),attrspec_252=Object.assign(new amp$validator$AttrSpec("data-media-hashed-id"),{mandatory:!0,valueRegex:-290}), -attrspec_253=Object.assign(new amp$validator$AttrSpec("credentials"),{valueRegexCasei:-323}),attrspec_254=Object.assign(new amp$validator$AttrSpec("data-live-channelid"),{mandatoryOneof:-324,valueRegex:-302}),attrspec_255=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatoryOneof:-324,valueRegex:-302}),attrspec_256=Object.assign(new amp$validator$AttrSpec("charset"),{valueCasei:"utf-8"}),urlspec_17=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0,allowEmpty:!0}), -attrspec_257=Object.assign(new amp$validator$AttrSpec("cite"),{blacklistedValueRegex:-268,valueUrl:urlspec_17}),attrspec_258=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_10}),attrspec_259=Object.assign(new amp$validator$AttrSpec("default"),{value:""}),attrspec_260=Object.assign(new amp$validator$AttrSpec("kind"),{valueRegex:-325}),attrspec_261=Object.assign(new amp$validator$AttrSpec("kind"),{mandatory:!0,valueCasei:"subtitles"}),attrspec_262= -Object.assign(new amp$validator$AttrSpec("srclang"),{mandatory:!0}),urlspec_18=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0,allowEmpty:!1}),attrspec_263=Object.assign(new amp$validator$AttrSpec("xlink:href"),{alternativeNames:["href"],valueUrl:urlspec_18}),attrspec_264=Object.assign(new amp$validator$AttrSpec("style"),{blacklistedValueRegex:-326}),attrspec_265=Object.assign(new amp$validator$AttrSpec("name"),{blacklistedValueRegex:-327}),urlspec_19=Object.assign(new amp$validator$UrlSpec(["data", -"http","https"]),{allowRelative:!0}),attrspec_266=Object.assign(new amp$validator$AttrSpec("src"),{alternativeNames:["srcset"],mandatory:!0,blacklistedValueRegex:-268,valueUrl:urlspec_19}),attrspec_267=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-275,valueUrl:urlspec_10}),attrspec_268=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-275,valueUrl:urlspec_10}),attrspec_269=Object.assign(new amp$validator$AttrSpec("noloading"),{value:""}), -attrspec_270=Object.assign(new amp$validator$AttrSpec("rel"),{blacklistedValueRegex:-328}),attrspec_271=Object.assign(new amp$validator$AttrSpec("class"),{blacklistedValueRegex:-329}),attrspec_272=Object.assign(new amp$validator$AttrSpec("hidden"),{value:""}),attrspec_273=Object.assign(new amp$validator$AttrSpec("id"),{blacklistedValueRegex:-330}),attrtriggerspec_1=Object.assign(new amp$validator$AttrTriggerSpec(["role","tabindex"]),{ifValueRegex:-331}),attrspec_274=Object.assign(new amp$validator$AttrSpec("on"), -{trigger:attrtriggerspec_1}),attrspec_275=Object.assign(new amp$validator$AttrSpec("placeholder"),{value:""}),attrspec_276=Object.assign(new amp$validator$AttrSpec("fallback"),{value:""}),attrspec_277=Object.assign(new amp$validator$AttrSpec("validation-for"),{trigger:new amp$validator$AttrTriggerSpec(["visible-when-invalid"])}),attrspec_278=Object.assign(new amp$validator$AttrSpec("visible-when-invalid"),{valueRegex:-332,trigger:new amp$validator$AttrTriggerSpec(["validation-for"])}),attrspec_279= -Object.assign(new amp$validator$AttrSpec("amp-fx"),{valueCasei:"parallax",requiresExtension:["amp-fx-collection"]}),attrspec_280=Object.assign(new amp$validator$AttrSpec("muted"),{value:""}),attrspec_281=Object.assign(new amp$validator$AttrSpec("controls"),{value:""}),attrspec_282=Object.assign(new amp$validator$AttrSpec("disableremoteplayback"),{value:""}),attrspec_283=Object.assign(new amp$validator$AttrSpec("preload"),{valueRegex:-333});validatorrules_0.attrs=[attrspec_0,attrspec_1,attrspec_2, -attrspec_3,attrspec_4,attrspec_5,attrspec_6,attrspec_7,attrspec_8,attrspec_9,attrspec_10,attrspec_11,attrspec_12,attrspec_13,attrspec_14,attrspec_15,attrspec_16,attrspec_17,attrspec_18,attrspec_19,attrspec_20,attrspec_21,attrspec_22,attrspec_23,attrspec_24,attrspec_25,attrspec_26,attrspec_27,attrspec_28,attrspec_29,attrspec_30,attrspec_31,attrspec_32,attrspec_33,attrspec_34,attrspec_35,attrspec_36,attrspec_37,attrspec_38,attrspec_39,attrspec_40,attrspec_41,attrspec_42,attrspec_43,attrspec_44,attrspec_45, -attrspec_46,attrspec_47,attrspec_48,attrspec_49,attrspec_50,attrspec_51,attrspec_52,attrspec_53,attrspec_54,attrspec_55,attrspec_56,attrspec_57,attrspec_58,attrspec_59,attrspec_60,attrspec_61,attrspec_62,attrspec_63,attrspec_64,attrspec_65,attrspec_66,attrspec_67,attrspec_68,attrspec_69,attrspec_70,attrspec_71,attrspec_72,attrspec_73,attrspec_74,attrspec_75,attrspec_76,attrspec_77,attrspec_78,attrspec_79,attrspec_80,attrspec_81,attrspec_82,attrspec_83,attrspec_84,attrspec_85,attrspec_86,attrspec_87, -attrspec_88,attrspec_89,attrspec_90,attrspec_91,attrspec_92,attrspec_93,attrspec_94,attrspec_95,attrspec_96,attrspec_97,attrspec_98,attrspec_99,attrspec_100,attrspec_101,attrspec_102,attrspec_103,attrspec_104,attrspec_105,attrspec_106,attrspec_107,attrspec_108,attrspec_109,attrspec_110,attrspec_111,attrspec_112,attrspec_113,attrspec_114,attrspec_115,attrspec_116,attrspec_117,attrspec_118,attrspec_119,attrspec_120,attrspec_121,attrspec_122,attrspec_123,attrspec_124,attrspec_125,attrspec_126,attrspec_127, -attrspec_128,attrspec_129,attrspec_130,attrspec_131,attrspec_132,attrspec_133,attrspec_134,attrspec_135,attrspec_136,attrspec_137,attrspec_138,attrspec_139,attrspec_140,attrspec_141,attrspec_142,attrspec_143,attrspec_144,attrspec_145,attrspec_146,attrspec_147,attrspec_148,attrspec_149,attrspec_150,attrspec_151,attrspec_152,attrspec_153,attrspec_154,attrspec_155,attrspec_156,attrspec_157,attrspec_158,attrspec_159,attrspec_160,attrspec_161,attrspec_162,attrspec_163,attrspec_164,attrspec_165,attrspec_166, -attrspec_167,attrspec_168,attrspec_169,attrspec_170,attrspec_171,attrspec_172,attrspec_173,attrspec_174,attrspec_175,attrspec_176,attrspec_177,attrspec_178,attrspec_179,attrspec_180,attrspec_181,attrspec_182,attrspec_183,attrspec_184,attrspec_185,attrspec_186,attrspec_187,attrspec_188,attrspec_189,attrspec_190,attrspec_191,attrspec_192,attrspec_193,attrspec_194,attrspec_195,attrspec_196,attrspec_197,attrspec_198,attrspec_199,attrspec_200,attrspec_201,attrspec_202,attrspec_203,attrspec_204,attrspec_205, -attrspec_206,attrspec_207,attrspec_208,attrspec_209,attrspec_210,attrspec_211,attrspec_212,attrspec_213,attrspec_214,attrspec_215,attrspec_216,attrspec_217,attrspec_218,attrspec_219,attrspec_220,attrspec_221,attrspec_222,attrspec_223,attrspec_224,attrspec_225,attrspec_226,attrspec_227,attrspec_228,attrspec_229,attrspec_230,attrspec_231,attrspec_232,attrspec_233,attrspec_234,attrspec_235,attrspec_236,attrspec_237,attrspec_238,attrspec_239,attrspec_240,attrspec_241,attrspec_242,attrspec_243,attrspec_244, -attrspec_245,attrspec_246,attrspec_247,attrspec_248,attrspec_249,attrspec_250,attrspec_251,attrspec_252,attrspec_253,attrspec_254,attrspec_255,attrspec_256,attrspec_257,attrspec_258,attrspec_259,attrspec_260,attrspec_261,attrspec_262,attrspec_263,attrspec_264,attrspec_265,attrspec_266,attrspec_267,attrspec_268,attrspec_269,attrspec_270,attrspec_271,attrspec_272,attrspec_273,attrspec_274,attrspec_275,attrspec_276,attrspec_277,attrspec_278,attrspec_279,attrspec_280,attrspec_281,attrspec_282,attrspec_283]; -validatorrules_0.directAttrLists=[[256,-334,-7,-22,-6,-2,-257,-3],[257],[258,259,260,-198,-335],[258,259,261,-198,262],[-336,-337,-338],[-339,-340,-341,-342],[-31,-343,-32,-61,-62],[-344,-345,-346,-347,-348,-334,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-360,-361,-362,-363,-364,-365,-366,-367,-238,-239,-240,-368,-369,-370,-371,-372,-373,-374,-375,-376,-377,-378,-379,-380,-381,-123,-124,-382,-383,-384,-385,-386,-387,-388,-389,-97,-390,-391,-392,-393,-394,-395,-396],[-397,-398,-399,-122, --400,-401,-402],[-64,-65,263,-66,-67,-68,-69],[264],[265],[266],[267],[268],[-6,269],[],[101,-12,103],[],[-509,-510,-511,-36,-512,141,280,74],[-509,-29,-510,-511,-217,111,281,-512,-7,282,141,280,-165,283,74,-513,-218,-514,-515,-219,-516,-517,-518,-519,-520,-42,-521]];validatorrules_0.amp_validator_ValidatorRules$globalAttrs=[-405,-10,-406,-407,-408,-409,-9,-410,-411,-412,-11,270,-413,-414,-415,-416,-153,271,-28,-417,272,273,-418,-172,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428,-429,-430,-431, --432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,-444,-445,-446,-447,-448,-449,-450,-451,-452,-453,-454,-455,-456,274,-457,275,276,-458,-379,-459,-460,-461,-462,-463,-464,-465,-466,-467,-468,-469,-470,277,278,279,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500,-501,-502,-503,-504,-505,-506,-507,-508];validatorrules_0.amp_validator_ValidatorRules$ampLayoutAttrs=[-31,-403,-404,-2,-32,-179, --195];validatorrules_0.internedStrings=["href","sizes","type","amp-app-banner data source","async","media","crossorigin","integrity","content","itemprop","property","nonce","(\x3c!--|(^|\\W)i-amphtml-|!important)","head > style[amp-boilerplate]","body ?{opacity: ?0}","noscript > style[amp-boilerplate]","body ?{opacity: ?1}","\\s*body{-webkit-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-moz-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-ms-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both}@-webkit-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}\\s*", -"\\s*body{visibility:hidden}\\s*","\\s*body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}\\s*","align","hreflang","download","border","name","[href]","datetime","dir","alt","ismap","height","width","referrerpolicy","sandbox","autoplay","controls","loop","playsinline","poster","preload","muted","[src]","[type]","[label]","[srclang]","externalresourcesrequired","transform","arabic-form","d","glyph-name","horiz-adv-x","orientation","unicode","vert-origin-x","vert-origin-y", +tagspec_382,tagspec_383,tagspec_384,tagspec_385,tagspec_386,tagspec_387,tagspec_388,tagspec_389,tagspec_390,tagspec_391,tagspec_392,tagspec_393,tagspec_394,tagspec_395,tagspec_396,tagspec_397,tagspec_398,tagspec_399,tagspec_400,tagspec_401,tagspec_402,tagspec_403,tagspec_404,tagspec_405,tagspec_406,tagspec_407,tagspec_408,tagspec_409,tagspec_410,tagspec_411,tagspec_412,tagspec_413,tagspec_414,tagspec_415,tagspec_416,tagspec_417,tagspec_418,tagspec_419,tagspec_420,tagspec_421,tagspec_422,tagspec_423, +tagspec_424,tagspec_425,tagspec_426,tagspec_427,tagspec_428,tagspec_429,tagspec_430,tagspec_431,tagspec_432,tagspec_433,tagspec_434,tagspec_435,tagspec_436,tagspec_437,tagspec_438,tagspec_439,tagspec_440,tagspec_441,tagspec_442,tagspec_443,tagspec_444,tagspec_445,tagspec_446,tagspec_447,tagspec_448,tagspec_449]),{minValidatorRevisionRequired:322,specFileRevision:614,templateSpecUrl:"https://www.ampproject.org/docs/reference/components/dynamic/amp-mustache",errorFormats:[errorformat_0,errorformat_1, +errorformat_2,errorformat_3,errorformat_4,errorformat_5,errorformat_6,errorformat_7,errorformat_8,errorformat_9,errorformat_10,errorformat_11,errorformat_12,errorformat_13,errorformat_14,errorformat_15,errorformat_16,errorformat_17,errorformat_18,errorformat_19,errorformat_20,errorformat_21,errorformat_22,errorformat_23,errorformat_24,errorformat_25,errorformat_26,errorformat_27,errorformat_28,errorformat_29,errorformat_30,errorformat_31,errorformat_32,errorformat_33,errorformat_34,errorformat_35, +errorformat_36,errorformat_37,errorformat_38,errorformat_39,errorformat_40,errorformat_41,errorformat_42,errorformat_43,errorformat_44,errorformat_45,errorformat_46,errorformat_47,errorformat_48,errorformat_49,errorformat_50,errorformat_51,errorformat_52,errorformat_53,errorformat_54,errorformat_55,errorformat_56,errorformat_57,errorformat_58,errorformat_59,errorformat_60,errorformat_61,errorformat_62,errorformat_63,errorformat_64,errorformat_65,errorformat_66,errorformat_67,errorformat_68,errorformat_69, +errorformat_70,errorformat_71,errorformat_72,errorformat_73,errorformat_74,errorformat_75,errorformat_76,errorformat_77,errorformat_78,errorformat_79,errorformat_80,errorformat_81,errorformat_82,errorformat_83,errorformat_84,errorformat_85,errorformat_86,errorformat_87,errorformat_88,errorformat_89,errorformat_90,errorformat_91,errorformat_92,errorformat_93,errorformat_94,errorformat_95,errorformat_96,errorformat_97],errorSpecificity:[errorspecificity_0,errorspecificity_1,errorspecificity_2,errorspecificity_3, +errorspecificity_4,errorspecificity_5,errorspecificity_6,errorspecificity_7,errorspecificity_8,errorspecificity_9,errorspecificity_10,errorspecificity_11,errorspecificity_12,errorspecificity_13,errorspecificity_14,errorspecificity_15,errorspecificity_16,errorspecificity_17,errorspecificity_18,errorspecificity_19,errorspecificity_20,errorspecificity_21,errorspecificity_22,errorspecificity_23,errorspecificity_24,errorspecificity_25,errorspecificity_26,errorspecificity_27,errorspecificity_28,errorspecificity_29, +errorspecificity_30,errorspecificity_31,errorspecificity_32,errorspecificity_33,errorspecificity_34,errorspecificity_35,errorspecificity_36,errorspecificity_37,errorspecificity_38,errorspecificity_39,errorspecificity_40,errorspecificity_41,errorspecificity_42,errorspecificity_43,errorspecificity_44,errorspecificity_45,errorspecificity_46,errorspecificity_47,errorspecificity_48,errorspecificity_49,errorspecificity_50,errorspecificity_51,errorspecificity_52,errorspecificity_53,errorspecificity_54,errorspecificity_55, +errorspecificity_56,errorspecificity_57,errorspecificity_58,errorspecificity_59,errorspecificity_60,errorspecificity_61,errorspecificity_62,errorspecificity_63,errorspecificity_64,errorspecificity_65,errorspecificity_66,errorspecificity_67,errorspecificity_68,errorspecificity_69,errorspecificity_70,errorspecificity_71,errorspecificity_72,errorspecificity_73,errorspecificity_74,errorspecificity_75,errorspecificity_76,errorspecificity_77,errorspecificity_78,errorspecificity_79,errorspecificity_80,errorspecificity_81, +errorspecificity_82,errorspecificity_83,errorspecificity_84,errorspecificity_85,errorspecificity_86,errorspecificity_87,errorspecificity_88,errorspecificity_89,errorspecificity_90,errorspecificity_91,errorspecificity_92,errorspecificity_93,errorspecificity_94,errorspecificity_95,errorspecificity_96,errorspecificity_97],stylesSpecUrl:"https://www.ampproject.org/docs/guides/author-develop/responsive/style_pages",descendantTagList:[descendanttaglist_0,descendanttaglist_1],scriptSpecUrl:"https://www.ampproject.org/docs/reference/spec#html-tags"}); +validatorrules_0.dispatchKeyByTagSpecId[8]="rel\x00canonical";validatorrules_0.dispatchKeyByTagSpecId[9]="rel\x00manifest";validatorrules_0.dispatchKeyByTagSpecId[10]="rel\x00preload";validatorrules_0.dispatchKeyByTagSpecId[11]="rel\x00stylesheet";validatorrules_0.dispatchKeyByTagSpecId[12]="itemprop\x00sameas";validatorrules_0.dispatchKeyByTagSpecId[15]="charset";validatorrules_0.dispatchKeyByTagSpecId[16]="name\x00viewport";validatorrules_0.dispatchKeyByTagSpecId[17]="http-equiv\x00x-ua-compatible"; +validatorrules_0.dispatchKeyByTagSpecId[18]="name\x00apple-itunes-app";validatorrules_0.dispatchKeyByTagSpecId[19]="name\x00amp-experiments-opt-in";validatorrules_0.dispatchKeyByTagSpecId[20]="name\x00amp-3p-iframe-src";validatorrules_0.dispatchKeyByTagSpecId[21]="name\x00amp-experiment-token";validatorrules_0.dispatchKeyByTagSpecId[22]="name\x00amp-link-variable-allowed-origin";validatorrules_0.dispatchKeyByTagSpecId[23]="name\x00amp-google-client-id-api";validatorrules_0.dispatchKeyByTagSpecId[24]= +"name\x00amp-ad-doubleclick-sra";validatorrules_0.dispatchKeyByTagSpecId[25]="name\x00amp4ads-id";validatorrules_0.dispatchKeyByTagSpecId[27]="http-equiv\x00content-type";validatorrules_0.dispatchKeyByTagSpecId[28]="http-equiv\x00content-language";validatorrules_0.dispatchKeyByTagSpecId[29]="http-equiv\x00pics-label";validatorrules_0.dispatchKeyByTagSpecId[30]="http-equiv\x00imagetoolbar";validatorrules_0.dispatchKeyByTagSpecId[31]="http-equiv\x00content-style-type";validatorrules_0.dispatchKeyByTagSpecId[32]= +"http-equiv\x00content-script-type";validatorrules_0.dispatchKeyByTagSpecId[33]="http-equiv\x00origin-trial";validatorrules_0.dispatchKeyByTagSpecId[34]="http-equiv\x00resource-type";validatorrules_0.dispatchKeyByTagSpecId[35]="http-equiv\x00x-dns-prefetch-control";validatorrules_0.dispatchKeyByTagSpecId[36]="name\x00amp-ad-enable-refresh";validatorrules_0.dispatchKeyByTagSpecId[37]="name\x00amp-to-amp-navigation";validatorrules_0.dispatchKeyByTagSpecId[43]="amp-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[44]= +"amp4ads-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[45]="amp4email-boilerplate\x00\x00HEAD";validatorrules_0.dispatchKeyByTagSpecId[46]="amp-boilerplate\x00\x00NOSCRIPT";validatorrules_0.dispatchKeyByTagSpecId[47]="amp-keyframes";validatorrules_0.dispatchKeyByTagSpecId[182]="method\x00post";validatorrules_0.dispatchKeyByTagSpecId[184]="method\x00post";validatorrules_0.dispatchKeyByTagSpecId[185]="submitting";validatorrules_0.dispatchKeyByTagSpecId[192]="type\x00password";validatorrules_0.dispatchKeyByTagSpecId[205]= +"src\x00https://cdn.ampproject.org/v0.js";validatorrules_0.dispatchKeyByTagSpecId[206]="src\x00https://cdn.ampproject.org/amp4ads-v0.js";validatorrules_0.dispatchKeyByTagSpecId[207]="type\x00application/ld+json";validatorrules_0.dispatchKeyByTagSpecId[208]="id\x00amp-rtc";validatorrules_0.dispatchKeyByTagSpecId[209]="type\x00application/json\x00AMP-IMA-VIDEO";validatorrules_0.dispatchKeyByTagSpecId[236]="id\x00amp-access";validatorrules_0.dispatchKeyByTagSpecId[242]="type\x00application/json\x00AMP-AD-EXIT"; +validatorrules_0.dispatchKeyByTagSpecId[245]="data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[246]="data-enable-refresh\x00";validatorrules_0.dispatchKeyByTagSpecId[248]="data-multi-size\x00";validatorrules_0.dispatchKeyByTagSpecId[252]="type\x00application/json\x00AMP-ANALYTICS";validatorrules_0.dispatchKeyByTagSpecId[259]="type\x00application/json\x00AMP-ANIMATION";validatorrules_0.dispatchKeyByTagSpecId[274]="type\x00application/json\x00AMP-STATE";validatorrules_0.dispatchKeyByTagSpecId[294]= +"type\x00application/json\x00AMP-CONSENT";validatorrules_0.dispatchKeyByTagSpecId[305]="type\x00application/json\x00AMP-EXPERIMENT";validatorrules_0.dispatchKeyByTagSpecId[325]="type\x00application/json\x00AMP-GEO";validatorrules_0.dispatchKeyByTagSpecId[374]="type\x00application/json\x00AMP-NEXT-PAGE";validatorrules_0.dispatchKeyByTagSpecId[403]="toolbar";validatorrules_0.dispatchKeyByTagSpecId[415]="type\x00application/json\x00AMP-STORY-AUTO-ADS";validatorrules_0.dispatchKeyByTagSpecId[426]="id\x00amp-subscriptions"; +var attrspec_0=Object.assign(new amp$validator$AttrSpec("html"),{mandatory:!0,value:""}),attrspec_1=Object.assign(new amp$validator$AttrSpec("\u26a1"),{alternativeNames:["amp"],mandatory:!0,value:""}),attrspec_2=Object.assign(new amp$validator$AttrSpec("\u26a14ads"),{alternativeNames:["amp4ads"],mandatory:!0,value:""}),attrspec_3=Object.assign(new amp$validator$AttrSpec("\u26a14email"),{alternativeNames:["amp4email"],mandatory:!0,value:""}),attrspec_4=Object.assign(new amp$validator$AttrSpec("href"), +{value:"/"}),attrspec_5=Object.assign(new amp$validator$AttrSpec("target"),{valueRegexCasei:-255}),attrspec_6=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,blacklistedValueRegex:-256}),urlspec_3=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0}),attrspec_7=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_3}),attrspec_8=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH", +valueCasei:"canonical"}),urlspec_4=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!0}),attrspec_9=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_4}),attrspec_10=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"manifest"}),attrspec_11=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"preload"}),attrspec_12= +Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0,valueRegex:-258}),attrspec_13=Object.assign(new amp$validator$AttrSpec("rel"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"stylesheet"}),attrspec_14=Object.assign(new amp$validator$AttrSpec("type"),{valueCasei:"text/css"}),attrspec_15=Object.assign(new amp$validator$AttrSpec("href"),{mandatory:!0}),attrspec_16=Object.assign(new amp$validator$AttrSpec("itemprop"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"sameas"}), +attrspec_17=Object.assign(new amp$validator$AttrSpec("itemprop"),{mandatory:!0}),attrspec_18=Object.assign(new amp$validator$AttrSpec("property"),{mandatory:!0}),attrspec_19=Object.assign(new amp$validator$AttrSpec("charset"),{mandatory:!0,dispatchKey:"NAME_DISPATCH",valueCasei:"utf-8"}),propertyspec_0=Object.assign(new amp$validator$PropertySpec("width"),{mandatory:!0,value:"device-width"}),propertyspec_1=new amp$validator$PropertySpec("height"),propertyspec_2=new amp$validator$PropertySpec("initial-scale"), +propertyspec_3=Object.assign(new amp$validator$PropertySpec("minimum-scale"),{mandatory:!0,valueDouble:1}),attrspec_20=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueProperties:new amp$validator$PropertySpecList([propertyspec_0,propertyspec_1,propertyspec_2,propertyspec_3,new amp$validator$PropertySpec("maximum-scale"),new amp$validator$PropertySpec("shrink-to-fit"),new amp$validator$PropertySpec("user-scalable"),new amp$validator$PropertySpec("viewport-fit")])}),attrspec_21= +Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,value:"viewport",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_22=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"x-ua-compatible"}),propertyspec_8=Object.assign(new amp$validator$PropertySpec("ie"),{value:"edge"}),propertyspec_9=Object.assign(new amp$validator$PropertySpec("chrome"),{value:"1"}),attrspec_23=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0, +valueProperties:new amp$validator$PropertySpecList([propertyspec_8,propertyspec_9])}),attrspec_24=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"apple-itunes-app"}),attrspec_25=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueRegex:-259}),attrspec_26=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-experiments-opt-in"}),attrspec_27=Object.assign(new amp$validator$AttrSpec("content"), +{mandatory:!0}),attrspec_28=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-3p-iframe-src"}),attrspec_29=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueUrl:urlspec_2}),attrspec_30=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-experiment-token"}),attrspec_31=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH", +valueCasei:"amp-link-variable-allowed-origin"}),attrspec_32=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-google-client-id-api"}),attrspec_33=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-ad-doubleclick-sra"}),attrspec_34=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp4ads-id"}),attrspec_35=Object.assign(new amp$validator$AttrSpec("name"), +{blacklistedValueRegex:-260}),attrspec_36=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-type"}),attrspec_37=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueCasei:"text/html; charset=utf-8"}),attrspec_38=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-language"}),attrspec_39=Object.assign(new amp$validator$AttrSpec("http-equiv"), +{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"pics-label"}),attrspec_40=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"imagetoolbar"}),attrspec_41=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-style-type"}),attrspec_42=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueCasei:"text/css"}),attrspec_43=Object.assign(new amp$validator$AttrSpec("http-equiv"), +{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"content-script-type"}),attrspec_44=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueCasei:"text/javascript"}),attrspec_45=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"origin-trial"}),attrspec_46=Object.assign(new amp$validator$AttrSpec("http-equiv"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"resource-type"}),attrspec_47=Object.assign(new amp$validator$AttrSpec("http-equiv"), +{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"x-dns-prefetch-control"}),attrspec_48=Object.assign(new amp$validator$AttrSpec("content"),{mandatory:!0,valueRegexCasei:-261}),attrspec_49=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-ad-enable-refresh"}),attrspec_50=Object.assign(new amp$validator$AttrSpec("name"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"amp-to-amp-navigation"}),attrspec_51=Object.assign(new amp$validator$AttrSpec("amp-custom"), +{mandatory:!0,value:""}),attrspec_52=Object.assign(new amp$validator$AttrSpec("amp-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_53=Object.assign(new amp$validator$AttrSpec("amp4ads-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_54=Object.assign(new amp$validator$AttrSpec("amp4email-boilerplate"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_55=Object.assign(new amp$validator$AttrSpec("amp-keyframes"), +{mandatory:!0,value:"",dispatchKey:"NAME_DISPATCH"}),attrspec_56=Object.assign(new amp$validator$AttrSpec("reversed"),{value:""}),attrspec_57=Object.assign(new amp$validator$AttrSpec("start"),{valueRegex:-262}),attrspec_58=Object.assign(new amp$validator$AttrSpec("type"),{valueRegex:-263}),attrspec_59=Object.assign(new amp$validator$AttrSpec("value"),{valueRegex:-262}),urlspec_5=Object.assign(new amp$validator$UrlSpec("ftp geo http https mailto maps bbmi fb-messenger intent line skype sms snapchat tel tg threema twitter viber webcal web+mastodon whatsapp".split(" ")), +{allowRelative:!0,allowEmpty:!0}),attrspec_60=Object.assign(new amp$validator$AttrSpec("href"),{blacklistedValueRegex:-257,valueUrl:urlspec_5}),attrspec_61=Object.assign(new amp$validator$AttrSpec("rel"),{blacklistedValueRegex:-264}),attrspec_62=Object.assign(new amp$validator$AttrSpec("role"),{implicit:!0}),attrspec_63=Object.assign(new amp$validator$AttrSpec("tabindex"),{implicit:!0}),attrspec_64=Object.assign(new amp$validator$AttrSpec("target"),{valueRegex:-255}),attrspec_65=Object.assign(new amp$validator$AttrSpec("type"), +{valueCasei:"text/html"}),urlspec_6=Object.assign(new amp$validator$UrlSpec(["https","mailto"]),{allowRelative:!1}),attrspec_66=Object.assign(new amp$validator$AttrSpec("href"),{blacklistedValueRegex:-265,valueUrl:urlspec_6}),attrspec_67=Object.assign(new amp$validator$AttrSpec("target"),{valueRegex:-266}),attrspec_68=Object.assign(new amp$validator$AttrSpec("longdesc"),{blacklistedValueRegex:-257,valueUrl:urlspec_3}),urlspec_7=Object.assign(new amp$validator$UrlSpec(["data","https"]),{allowRelative:!0}), +attrspec_69=Object.assign(new amp$validator$AttrSpec("src"),{alternativeNames:["srcset"],mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_7}),attrspec_70=Object.assign(new amp$validator$AttrSpec("frameborder"),{valueRegex:-267}),attrspec_71=Object.assign(new amp$validator$AttrSpec("resizable"),{value:""}),attrspec_72=Object.assign(new amp$validator$AttrSpec("scrolling"),{valueRegex:-268}),urlspec_8=Object.assign(new amp$validator$UrlSpec(["data","https"]),{allowRelative:!1}),attrspec_73=Object.assign(new amp$validator$AttrSpec("src"), +{blacklistedValueRegex:-257,mandatoryOneof:-269,valueUrl:urlspec_8}),attrspec_74=Object.assign(new amp$validator$AttrSpec("srcdoc"),{mandatoryOneof:-269}),attrspec_75=Object.assign(new amp$validator$AttrSpec("muted"),{deprecation:"autoplay",deprecationUrl:"https://www.ampproject.org/docs/reference/components/amp-video"}),attrspec_76=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-257,valueUrl:urlspec_8}),attrspec_77=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-257, +valueUrl:urlspec_4}),attrspec_78=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_4}),attrspec_79=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0}),urlspec_9=Object.assign(new amp$validator$UrlSpec(["data","http","https"]),{allowRelative:!0,allowEmpty:!1}),attrspec_80=Object.assign(new amp$validator$AttrSpec("xlink:href"),{alternativeNames:["href"],blacklistedValueRegex:-270,valueUrl:urlspec_9}),attrspec_81=Object.assign(new amp$validator$AttrSpec("version"), +{valueRegex:-271}),attrspec_82=Object.assign(new amp$validator$AttrSpec("border"),{valueRegex:-267}),attrspec_83=Object.assign(new amp$validator$AttrSpec("action"),{mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_4}),attrspec_84=Object.assign(new amp$validator$AttrSpec("action-xhr"),{blacklistedValueRegex:-257,valueUrl:urlspec_4}),attrspec_85=Object.assign(new amp$validator$AttrSpec("custom-validation-reporting"),{valueRegex:-272}),attrspec_86=Object.assign(new amp$validator$AttrSpec("method"), +{valueCasei:"get"}),attrspec_87=Object.assign(new amp$validator$AttrSpec("target"),{mandatory:!0,valueRegexCasei:-273}),attrspec_88=Object.assign(new amp$validator$AttrSpec("verify-xhr"),{blacklistedValueRegex:-257,valueUrl:urlspec_4}),attrspec_89=Object.assign(new amp$validator$AttrSpec("action-xhr"),{mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_4}),attrspec_90=Object.assign(new amp$validator$AttrSpec("method"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"post"}),attrspec_91= +Object.assign(new amp$validator$AttrSpec("action-xhr"),{blacklistedValueRegex:-274,valueUrl:urlspec_2}),urlspec_10=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!1}),attrspec_92=Object.assign(new amp$validator$AttrSpec("verify-xhr"),{blacklistedValueRegex:-257,valueUrl:urlspec_10}),attrspec_93=Object.assign(new amp$validator$AttrSpec("action-xhr"),{mandatory:!0,blacklistedValueRegex:-274,valueUrl:urlspec_10}),attrspec_94=Object.assign(new amp$validator$AttrSpec("submitting"),{mandatory:!0, +dispatchKey:"NAME_DISPATCH"}),attrspec_95=Object.assign(new amp$validator$AttrSpec("submit-success"),{mandatory:!0}),attrspec_96=Object.assign(new amp$validator$AttrSpec("template"),{mandatory:!0}),attrspec_97=Object.assign(new amp$validator$AttrSpec("submit-error"),{mandatory:!0}),attrspec_98=Object.assign(new amp$validator$AttrSpec("type"),{blacklistedValueRegex:-275}),attrspec_99=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"password"}), +attrspec_100=Object.assign(new amp$validator$AttrSpec("disabled"),{value:""}),attrspec_101=Object.assign(new amp$validator$AttrSpec("open-button"),{value:""}),attrspec_102=Object.assign(new amp$validator$AttrSpec("async"),{mandatory:!0,value:""}),attrspec_103=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,value:"https://cdn.ampproject.org/v0.js",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_104=Object.assign(new amp$validator$AttrSpec("type"),{valueCasei:"text/javascript"}),attrspec_105= +Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,value:"https://cdn.ampproject.org/amp4ads-v0.js",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_106=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH",valueCasei:"application/ld+json"}),attrspec_107=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,valueCasei:"application/json"}),attrspec_108=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,dispatchKey:"NAME_VALUE_DISPATCH", +valueCasei:"amp-rtc"}),attrspec_109=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,dispatchKey:"NAME_VALUE_PARENT_DISPATCH",valueCasei:"application/json"}),attrspec_110=Object.assign(new amp$validator$AttrSpec("referrerpolicy"),{value:"no-referrer"}),urlspec_11=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!0,allowEmpty:!0}),attrspec_111=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_11}),attrspec_112=Object.assign(new amp$validator$AttrSpec("autoplay"), +{value:""}),attrspec_113=Object.assign(new amp$validator$AttrSpec("data-id"),{mandatory:!0}),attrspec_114=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,value:"amp-access",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_115=Object.assign(new amp$validator$AttrSpec("disable-session-states"),{value:""}),attrspec_116=Object.assign(new amp$validator$AttrSpec("expand-single-section"),{value:""}),attrspec_117=Object.assign(new amp$validator$AttrSpec("expanded"),{value:""}),attrspec_118=Object.assign(new amp$validator$AttrSpec("id"), +{mandatory:!0}),attrspec_119=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,value:"application/json",dispatchKey:"NAME_VALUE_PARENT_DISPATCH"}),attrspec_120=Object.assign(new amp$validator$AttrSpec("data-multi-size"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_121=Object.assign(new amp$validator$AttrSpec("data-enable-refresh"),{mandatory:!0,value:"",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_122=Object.assign(new amp$validator$AttrSpec("data-pub-id"),{mandatory:!0}), +urlspec_12=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0,allowEmpty:!0}),attrspec_123=Object.assign(new amp$validator$AttrSpec("data-share-media"),{valueUrl:urlspec_12}),attrspec_124=Object.assign(new amp$validator$AttrSpec("data-share-url"),{valueUrl:urlspec_12}),attrspec_125=Object.assign(new amp$validator$AttrSpec("data-widget-id"),{mandatory:!0}),attrspec_126=Object.assign(new amp$validator$AttrSpec("config"),{blacklistedValueRegex:-257,valueUrl:urlspec_11}),attrspec_127= +Object.assign(new amp$validator$AttrSpec("trigger"),{value:"visibility"}),attrspec_128=Object.assign(new amp$validator$AttrSpec("data-apester-media-id"),{mandatoryOneof:-276,valueRegex:-277}),attrspec_129=Object.assign(new amp$validator$AttrSpec("data-apester-channel-token"),{mandatoryOneof:-276,valueRegex:-277}),attrspec_130=Object.assign(new amp$validator$AttrSpec("preload"),{valueRegexCasei:-278}),attrspec_131=Object.assign(new amp$validator$AttrSpec("autoplay"),{mandatory:!0,value:""}),attrspec_132= +Object.assign(new amp$validator$AttrSpec("data-account"),{mandatory:!0,valueRegexCasei:-279}),attrspec_133=Object.assign(new amp$validator$AttrSpec("data-content"),{valueRegexCasei:-279}),attrspec_134=Object.assign(new amp$validator$AttrSpec("data-my-content"),{valueRegex:-267}),attrtriggerspec_0=new amp$validator$AttrTriggerSpec(["src"]),attrspec_135=Object.assign(new amp$validator$AttrSpec("credentials"),{trigger:attrtriggerspec_0}),attrspec_136=Object.assign(new amp$validator$AttrSpec("expression"), +{mandatory:!0}),attrspec_137=Object.assign(new amp$validator$AttrSpec("loop"),{valueRegexCasei:-280}),attrspec_138=Object.assign(new amp$validator$AttrSpec("noautoplay"),{value:""}),attrspec_139=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_140=Object.assign(new amp$validator$AttrSpec("data-outstream"),{mandatoryOneof:-281,valueRegex:-282}),attrspec_141=Object.assign(new amp$validator$AttrSpec("data-partner"),{mandatory:!0,valueRegex:-282}),attrspec_142= +Object.assign(new amp$validator$AttrSpec("data-player"),{mandatory:!0,valueRegex:-282}),attrspec_143=Object.assign(new amp$validator$AttrSpec("data-playlist"),{mandatoryOneof:-281,valueRegex:-282}),attrspec_144=Object.assign(new amp$validator$AttrSpec("data-video"),{mandatoryOneof:-281,valueRegex:-282}),attrspec_145=Object.assign(new amp$validator$AttrSpec("data-account"),{mandatory:!0}),attrspec_146=Object.assign(new amp$validator$AttrSpec("data-label"),{mandatory:!0}),attrspec_147=Object.assign(new amp$validator$AttrSpec("data-webcare-id"), +{mandatory:!0}),attrspec_148=Object.assign(new amp$validator$AttrSpec("config"),{mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_10}),attrspec_149=Object.assign(new amp$validator$AttrSpec("arrows"),{value:""}),attrspec_150=Object.assign(new amp$validator$AttrSpec("delay"),{valueRegex:-282}),attrspec_151=Object.assign(new amp$validator$AttrSpec("dots"),{value:""}),attrspec_152=Object.assign(new amp$validator$AttrSpec("loop"),{value:""}),attrspec_153=Object.assign(new amp$validator$AttrSpec("type"), +{valueRegex:-283}),attrspec_154=Object.assign(new amp$validator$AttrSpec("lightbox"),{mandatory:!0}),attrspec_155=Object.assign(new amp$validator$AttrSpec("lightbox-exclude"),{mandatory:!0}),attrspec_156=Object.assign(new amp$validator$AttrSpec("lightbox-thumbnail-id"),{valueRegexCasei:-284}),attrspec_157=Object.assign(new amp$validator$AttrSpec("data-endscreen-enable"),{valueRegex:-285}),attrspec_158=Object.assign(new amp$validator$AttrSpec("data-info"),{valueRegex:-285}),attrspec_159=Object.assign(new amp$validator$AttrSpec("data-mute"), +{valueRegex:-285}),attrspec_160=Object.assign(new amp$validator$AttrSpec("data-sharing-enable"),{valueRegex:-285}),attrspec_161=Object.assign(new amp$validator$AttrSpec("data-start"),{valueRegex:-282}),attrspec_162=Object.assign(new amp$validator$AttrSpec("data-ui-highlight"),{valueRegexCasei:-286}),attrspec_163=Object.assign(new amp$validator$AttrSpec("data-ui-logo"),{valueRegex:-285}),attrspec_164=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatory:!0,valueRegexCasei:-287}),attrspec_165= +Object.assign(new amp$validator$AttrSpec("mode"),{valueCasei:"static"}),attrspec_166=Object.assign(new amp$validator$AttrSpec("type"),{valueCasei:"single"}),attrspec_167=Object.assign(new amp$validator$AttrSpec("mode"),{mandatory:!0,valueCasei:"overlay"}),attrspec_168=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,valueCasei:"range"}),attrspec_169=Object.assign(new amp$validator$AttrSpec("data-href"),{mandatory:!0}),urlspec_13=Object.assign(new amp$validator$UrlSpec(["http","https"]), +{allowRelative:!1}),attrspec_170=Object.assign(new amp$validator$AttrSpec("data-href"),{mandatory:!0,valueUrl:urlspec_13}),attrspec_171=Object.assign(new amp$validator$AttrSpec("font-family"),{mandatory:!0}),attrspec_172=Object.assign(new amp$validator$AttrSpec("timeout"),{valueRegex:-282}),attrspec_173=Object.assign(new amp$validator$AttrSpec("height"),{mandatory:!0}),attrspec_174=Object.assign(new amp$validator$AttrSpec("data-gfyid"),{mandatory:!0}),attrspec_175=Object.assign(new amp$validator$AttrSpec("data-gistid"), +{mandatory:!0}),attrspec_176=Object.assign(new amp$validator$AttrSpec("data-eid"),{mandatory:!0}),attrspec_177=Object.assign(new amp$validator$AttrSpec("allowfullscreen"),{value:""}),attrspec_178=Object.assign(new amp$validator$AttrSpec("allowpaymentrequest"),{value:""}),attrspec_179=Object.assign(new amp$validator$AttrSpec("allowtransparency"),{value:""}),attrspec_180=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-257,mandatoryOneof:-269,valueUrl:urlspec_7}),attrspec_181= +Object.assign(new amp$validator$AttrSpec("[src]"),{trigger:attrtriggerspec_0}),attrspec_182=Object.assign(new amp$validator$AttrSpec("data-src"),{blacklistedValueRegex:-257,valueUrl:urlspec_4}),attrspec_183=Object.assign(new amp$validator$AttrSpec("data-tag"),{mandatory:!0,valueUrl:urlspec_4}),attrspec_184=Object.assign(new amp$validator$AttrSpec("data-imgur-id"),{mandatory:!0}),attrspec_185=Object.assign(new amp$validator$AttrSpec("data-shortcode"),{mandatory:!0}),attrspec_186=Object.assign(new amp$validator$AttrSpec("data-iframe-src"), +{blacklistedValueRegex:-257,valueUrl:urlspec_4}),attrspec_187=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatory:!0,valueRegex:-282}),attrspec_188=Object.assign(new amp$validator$AttrSpec("data-media-id"),{valueRegexCasei:-288,mandatoryOneof:-289}),attrspec_189=Object.assign(new amp$validator$AttrSpec("data-player-id"),{mandatory:!0,valueRegexCasei:-288}),attrspec_190=Object.assign(new amp$validator$AttrSpec("data-playlist-id"),{valueRegexCasei:-288,mandatoryOneof:-289}),attrspec_191= +Object.assign(new amp$validator$AttrSpec("data-partner"),{mandatory:!0}),attrspec_192=Object.assign(new amp$validator$AttrSpec("reset-on-refresh"),{value:""}),attrspec_193=Object.assign(new amp$validator$AttrSpec("[state]"),{deprecation:"[src]"}),attrspec_194=Object.assign(new amp$validator$AttrSpec("[src]"),{mandatory:!0}),attrspec_195=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-274,valueUrl:urlspec_10}),attrspec_196=Object.assign(new amp$validator$AttrSpec("data-max-items-per-page"), +{mandatory:!0,valueRegex:-290}),attrspec_197=Object.assign(new amp$validator$AttrSpec("data-poll-interval"),{valueRegex:-291}),attrspec_198=Object.assign(new amp$validator$AttrSpec("sort"),{valueRegex:-292}),attrspec_199=Object.assign(new amp$validator$AttrSpec("update"),{mandatory:!0}),attrspec_200=Object.assign(new amp$validator$AttrSpec("items"),{mandatory:!0}),attrspec_201=Object.assign(new amp$validator$AttrSpec("pagination"),{mandatory:!0}),attrspec_202=Object.assign(new amp$validator$AttrSpec("data-sort-time"), +{mandatory:!0}),attrspec_203=Object.assign(new amp$validator$AttrSpec("data-formula"),{mandatory:!0}),attrspec_204=Object.assign(new amp$validator$AttrSpec("type"),{mandatory:!0,value:"amp-mustache"}),attrspec_205=Object.assign(new amp$validator$AttrSpec("separator"),{mandatory:!0}),attrspec_206=Object.assign(new amp$validator$AttrSpec("data-client"),{mandatory:!0}),attrspec_207=Object.assign(new amp$validator$AttrSpec("data-mediaid"),{mandatory:!0,valueRegex:-293}),attrspec_208=Object.assign(new amp$validator$AttrSpec("data-mode"), +{valueRegex:-294}),urlspec_14=Object.assign(new amp$validator$UrlSpec(["https","http"]),{allowEmpty:!0}),attrspec_209=Object.assign(new amp$validator$AttrSpec("data-origin"),{valueUrl:urlspec_14}),attrspec_210=Object.assign(new amp$validator$AttrSpec("data-streamtype"),{valueRegex:-295}),attrspec_211=Object.assign(new amp$validator$AttrSpec("data-bcid"),{mandatory:!0}),attrspec_212=Object.assign(new amp$validator$AttrSpec("data-pid"),{mandatory:!0}),attrspec_213=Object.assign(new amp$validator$AttrSpec("data-embedcode"), +{mandatory:!0}),attrspec_214=Object.assign(new amp$validator$AttrSpec("data-pcode"),{mandatory:!0}),attrspec_215=Object.assign(new amp$validator$AttrSpec("data-playerid"),{mandatory:!0}),attrspec_216=Object.assign(new amp$validator$AttrSpec("data-do"),{mandatory:!0}),attrspec_217=Object.assign(new amp$validator$AttrSpec("src"),{mandatoryOneof:-296}),attrspec_218=Object.assign(new amp$validator$AttrSpec("data-item"),{mandatoryOneof:-296}),attrspec_219=Object.assign(new amp$validator$AttrSpec("data-item-info"), +{valueRegexCasei:-297}),attrspec_220=Object.assign(new amp$validator$AttrSpec("data-share-buttons"),{valueRegexCasei:-297}),attrspec_221=Object.assign(new amp$validator$AttrSpec("data-comments"),{valueRegexCasei:-297}),attrspec_222=Object.assign(new amp$validator$AttrSpec("intersection-ratios"),{valueRegex:-298}),attrspec_223=Object.assign(new amp$validator$AttrSpec("viewport-margins"),{valueRegex:-299}),attrspec_224=Object.assign(new amp$validator$AttrSpec("data-embed-id"),{mandatory:!0,valueRegex:-300}), +attrspec_225=Object.assign(new amp$validator$AttrSpec("data-embedlive"),{valueRegexCasei:-297}),attrspec_226=Object.assign(new amp$validator$AttrSpec("data-embedparent"),{valueRegexCasei:-297}),attrspec_227=Object.assign(new amp$validator$AttrSpec("data-embedtype"),{mandatory:!0,valueRegexCasei:-301}),attrspec_228=Object.assign(new amp$validator$AttrSpec("data-src"),{mandatory:!0}),attrspec_229=Object.assign(new amp$validator$AttrSpec("data-riddle-id"),{mandatory:!0,valueRegex:-282}),attrspec_230= +Object.assign(new amp$validator$AttrSpec("keyboard-select-mode"),{valueRegexCasei:-302}),attrspec_231=Object.assign(new amp$validator$AttrSpec("multiple"),{value:""}),attrspec_232=Object.assign(new amp$validator$AttrSpec("option"),{mandatory:!0}),attrspec_233=Object.assign(new amp$validator$AttrSpec("selected"),{value:""}),attrspec_234=Object.assign(new amp$validator$AttrSpec("side"),{valueRegex:-303}),attrspec_235=Object.assign(new amp$validator$AttrSpec("toolbar"),{mandatory:!0,dispatchKey:"NAME_DISPATCH"}), +attrspec_236=Object.assign(new amp$validator$AttrSpec("toolbar-target"),{mandatory:!0}),urlspec_15=Object.assign(new amp$validator$UrlSpec("ftp http https mailto bbmi fb-messenger intent line skype sms snapchat tel tg threema viber whatsapp".split(" ")),{allowRelative:!1}),attrspec_237=Object.assign(new amp$validator$AttrSpec("data-share-endpoint"),{blacklistedValueRegex:-257,valueUrl:urlspec_15}),attrspec_238=Object.assign(new amp$validator$AttrSpec("data-color"),{valueRegexCasei:-286}),attrspec_239= +Object.assign(new amp$validator$AttrSpec("data-playlistid"),{mandatoryOneof:-304,valueRegex:-282}),attrspec_240=Object.assign(new amp$validator$AttrSpec("data-secret-token"),{valueRegex:-305}),attrspec_241=Object.assign(new amp$validator$AttrSpec("data-trackid"),{mandatoryOneof:-304,valueRegex:-282}),attrspec_242=Object.assign(new amp$validator$AttrSpec("data-visual"),{valueRegex:-285}),attrspec_243=Object.assign(new amp$validator$AttrSpec("data-content-id"),{mandatory:!0}),attrspec_244=Object.assign(new amp$validator$AttrSpec("data-domain"), +{mandatory:!0}),attrspec_245=Object.assign(new amp$validator$AttrSpec("data-items"),{mandatory:!0}),attrspec_246=Object.assign(new amp$validator$AttrSpec("data-mode"),{mandatory:!0,valueRegexCasei:-306}),attrspec_247=Object.assign(new amp$validator$AttrSpec("data-player-id"),{mandatory:!0,valueRegexCasei:-287}),attrspec_248=Object.assign(new amp$validator$AttrSpec("data-site-id"),{mandatory:!0,valueRegex:-282}),attrspec_249=Object.assign(new amp$validator$AttrSpec("background-audio"),{valueUrl:urlspec_13}), +attrspec_250=Object.assign(new amp$validator$AttrSpec("bookend-config-src"),{valueUrl:urlspec_13}),attrspec_251=Object.assign(new amp$validator$AttrSpec("poster-landscape-src"),{valueUrl:urlspec_13}),attrspec_252=Object.assign(new amp$validator$AttrSpec("poster-portrait-src"),{mandatory:!0,valueUrl:urlspec_13}),attrspec_253=Object.assign(new amp$validator$AttrSpec("poster-square-src"),{valueUrl:urlspec_13}),attrspec_254=Object.assign(new amp$validator$AttrSpec("publisher"),{mandatory:!0}),attrspec_255= +Object.assign(new amp$validator$AttrSpec("publisher-logo-src"),{mandatory:!0,valueUrl:urlspec_13}),attrspec_256=Object.assign(new amp$validator$AttrSpec("standalone"),{mandatory:!0,value:""}),attrspec_257=Object.assign(new amp$validator$AttrSpec("title"),{mandatory:!0}),urlspec_16=new amp$validator$UrlSpec(["http","https"]),attrspec_258=Object.assign(new amp$validator$AttrSpec("background-audio"),{valueUrl:urlspec_16}),attrspec_259=Object.assign(new amp$validator$AttrSpec("bookend-config-src"),{valueUrl:urlspec_16}), +attrspec_260=Object.assign(new amp$validator$AttrSpec("template"),{mandatory:!0,valueRegex:-307}),attrspec_261=Object.assign(new amp$validator$AttrSpec("align-content"),{valueRegex:-308}),attrspec_262=Object.assign(new amp$validator$AttrSpec("align-items"),{valueRegex:-309}),attrspec_263=Object.assign(new amp$validator$AttrSpec("align-self"),{valueRegex:-309}),attrspec_264=Object.assign(new amp$validator$AttrSpec("justify-content"),{valueRegex:-308}),attrspec_265=Object.assign(new amp$validator$AttrSpec("justify-items"), +{valueRegex:-309}),attrspec_266=Object.assign(new amp$validator$AttrSpec("justify-self"),{valueRegex:-309}),attrspec_267=Object.assign(new amp$validator$AttrSpec("animate-in"),{valueRegex:-310}),attrspec_268=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,value:"amp-subscriptions",dispatchKey:"NAME_VALUE_DISPATCH"}),attrspec_269=Object.assign(new amp$validator$AttrSpec("cutoff"),{valueRegex:-290}),attrspec_270=Object.assign(new amp$validator$AttrSpec("datetime"),{mandatory:!0,valueRegex:-311}), +attrspec_271=Object.assign(new amp$validator$AttrSpec("data-tweetid"),{mandatory:!0}),urlspec_17=Object.assign(new amp$validator$UrlSpec(["https"]),{allowRelative:!1,allowEmpty:!1}),attrspec_272=Object.assign(new amp$validator$AttrSpec("data-dismiss-href"),{valueUrl:urlspec_17}),attrspec_273=Object.assign(new amp$validator$AttrSpec("data-show-if-href"),{valueUrl:urlspec_17}),attrspec_274=Object.assign(new amp$validator$AttrSpec("enctype"),{value:"application/x-www-form-urlencoded"}),attrspec_275= +Object.assign(new amp$validator$AttrSpec("poster"),{mandatory:!0}),attrspec_276=Object.assign(new amp$validator$AttrSpec("data-vineid"),{mandatory:!0}),attrspec_277=Object.assign(new amp$validator$AttrSpec("data-embedtype"),{mandatory:!0}),attrspec_278=Object.assign(new amp$validator$AttrSpec("helper-iframe-url"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_279=Object.assign(new amp$validator$AttrSpec("id"),{mandatory:!0,valueRegex:-312}),attrspec_280=Object.assign(new amp$validator$AttrSpec("permission-dialog-url"), +{mandatory:!0,valueUrl:urlspec_10}),attrspec_281=Object.assign(new amp$validator$AttrSpec("service-worker-url"),{mandatory:!0,valueUrl:urlspec_10}),attrspec_282=Object.assign(new amp$validator$AttrSpec("visibility"),{mandatory:!0,valueRegex:-313}),attrspec_283=Object.assign(new amp$validator$AttrSpec("data-media-hashed-id"),{mandatory:!0,valueRegex:-277}),attrspec_284=Object.assign(new amp$validator$AttrSpec("credentials"),{valueRegexCasei:-314}),attrspec_285=Object.assign(new amp$validator$AttrSpec("data-live-channelid"), +{mandatoryOneof:-315,valueRegex:-293}),attrspec_286=Object.assign(new amp$validator$AttrSpec("data-videoid"),{mandatoryOneof:-315,valueRegex:-293}),attrspec_287=Object.assign(new amp$validator$AttrSpec("charset"),{valueCasei:"utf-8"}),attrspec_288=Object.assign(new amp$validator$AttrSpec("cite"),{blacklistedValueRegex:-257,valueUrl:urlspec_12}),attrspec_289=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_10}),attrspec_290=Object.assign(new amp$validator$AttrSpec("default"), +{value:""}),attrspec_291=Object.assign(new amp$validator$AttrSpec("kind"),{valueRegex:-316}),attrspec_292=Object.assign(new amp$validator$AttrSpec("kind"),{mandatory:!0,valueCasei:"subtitles"}),attrspec_293=Object.assign(new amp$validator$AttrSpec("srclang"),{mandatory:!0}),urlspec_18=Object.assign(new amp$validator$UrlSpec(["http","https"]),{allowRelative:!0,allowEmpty:!1}),attrspec_294=Object.assign(new amp$validator$AttrSpec("xlink:href"),{alternativeNames:["href"],valueUrl:urlspec_18}),attrspec_295= +Object.assign(new amp$validator$AttrSpec("style"),{blacklistedValueRegex:-317}),attrspec_296=Object.assign(new amp$validator$AttrSpec("name"),{blacklistedValueRegex:-318}),urlspec_19=Object.assign(new amp$validator$UrlSpec(["data","http","https"]),{allowRelative:!0}),attrspec_297=Object.assign(new amp$validator$AttrSpec("src"),{alternativeNames:["srcset"],mandatory:!0,blacklistedValueRegex:-257,valueUrl:urlspec_19}),attrspec_298=Object.assign(new amp$validator$AttrSpec("src"),{mandatory:!0,blacklistedValueRegex:-265, +valueUrl:urlspec_10}),attrspec_299=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-265,valueUrl:urlspec_10}),attrspec_300=Object.assign(new amp$validator$AttrSpec("noloading"),{value:""}),attrspec_301=Object.assign(new amp$validator$AttrSpec("rel"),{blacklistedValueRegex:-319}),attrspec_302=Object.assign(new amp$validator$AttrSpec("class"),{blacklistedValueRegex:-320}),attrspec_303=Object.assign(new amp$validator$AttrSpec("hidden"),{value:""}),attrspec_304=Object.assign(new amp$validator$AttrSpec("id"), +{blacklistedValueRegex:-321}),attrtriggerspec_1=Object.assign(new amp$validator$AttrTriggerSpec(["role","tabindex"]),{ifValueRegex:-322}),attrspec_305=Object.assign(new amp$validator$AttrSpec("on"),{trigger:attrtriggerspec_1}),attrspec_306=Object.assign(new amp$validator$AttrSpec("placeholder"),{value:""}),attrspec_307=Object.assign(new amp$validator$AttrSpec("fallback"),{value:""}),attrspec_308=Object.assign(new amp$validator$AttrSpec("validation-for"),{trigger:new amp$validator$AttrTriggerSpec(["visible-when-invalid"])}), +attrspec_309=Object.assign(new amp$validator$AttrSpec("visible-when-invalid"),{valueRegex:-323,trigger:new amp$validator$AttrTriggerSpec(["validation-for"])}),attrspec_310=Object.assign(new amp$validator$AttrSpec("amp-fx"),{valueRegexCasei:-324,requiresExtension:["amp-fx-collection"]}),attrspec_311=Object.assign(new amp$validator$AttrSpec("subscriptions-action"),{requiresExtension:["amp-subscriptions"]}),attrspec_312=Object.assign(new amp$validator$AttrSpec("subscriptions-actions"),{value:"",requiresExtension:["amp-subscriptions"]}), +attrspec_313=Object.assign(new amp$validator$AttrSpec("subscriptions-dialog"),{value:"",requiresExtension:["amp-subscriptions"]}),attrspec_314=Object.assign(new amp$validator$AttrSpec("subscriptions-display"),{requiresExtension:["amp-subscriptions"]}),attrspec_315=Object.assign(new amp$validator$AttrSpec("subscriptions-section"),{valueRegexCasei:-325,requiresExtension:["amp-subscriptions"]}),attrspec_316=Object.assign(new amp$validator$AttrSpec("subscriptions-service"),{requiresExtension:["amp-subscriptions"]}), +attrspec_317=Object.assign(new amp$validator$AttrSpec("muted"),{value:""}),attrspec_318=Object.assign(new amp$validator$AttrSpec("allow-blocked-ranges"),{value:""}),attrspec_319=Object.assign(new amp$validator$AttrSpec("day-size"),{valueRegex:-282}),attrspec_320=Object.assign(new amp$validator$AttrSpec("first-day-of-week"),{valueRegex:-326}),attrspec_321=Object.assign(new amp$validator$AttrSpec("number-of-months"),{valueRegex:-282}),attrspec_322=Object.assign(new amp$validator$AttrSpec("open-after-clear"), +{value:""}),attrspec_323=Object.assign(new amp$validator$AttrSpec("open-after-select"),{value:""}),attrspec_324=Object.assign(new amp$validator$AttrSpec("src"),{blacklistedValueRegex:-257,valueUrl:urlspec_10}),attrspec_325=Object.assign(new amp$validator$AttrSpec("fullscreen"),{value:""}),attrspec_326=Object.assign(new amp$validator$AttrSpec("controls"),{value:""}),attrspec_327=Object.assign(new amp$validator$AttrSpec("disableremoteplayback"),{value:""}),attrspec_328=Object.assign(new amp$validator$AttrSpec("preload"), +{valueRegex:-327});validatorrules_0.attrs=[attrspec_0,attrspec_1,attrspec_2,attrspec_3,attrspec_4,attrspec_5,attrspec_6,attrspec_7,attrspec_8,attrspec_9,attrspec_10,attrspec_11,attrspec_12,attrspec_13,attrspec_14,attrspec_15,attrspec_16,attrspec_17,attrspec_18,attrspec_19,attrspec_20,attrspec_21,attrspec_22,attrspec_23,attrspec_24,attrspec_25,attrspec_26,attrspec_27,attrspec_28,attrspec_29,attrspec_30,attrspec_31,attrspec_32,attrspec_33,attrspec_34,attrspec_35,attrspec_36,attrspec_37,attrspec_38, +attrspec_39,attrspec_40,attrspec_41,attrspec_42,attrspec_43,attrspec_44,attrspec_45,attrspec_46,attrspec_47,attrspec_48,attrspec_49,attrspec_50,attrspec_51,attrspec_52,attrspec_53,attrspec_54,attrspec_55,attrspec_56,attrspec_57,attrspec_58,attrspec_59,attrspec_60,attrspec_61,attrspec_62,attrspec_63,attrspec_64,attrspec_65,attrspec_66,attrspec_67,attrspec_68,attrspec_69,attrspec_70,attrspec_71,attrspec_72,attrspec_73,attrspec_74,attrspec_75,attrspec_76,attrspec_77,attrspec_78,attrspec_79,attrspec_80, +attrspec_81,attrspec_82,attrspec_83,attrspec_84,attrspec_85,attrspec_86,attrspec_87,attrspec_88,attrspec_89,attrspec_90,attrspec_91,attrspec_92,attrspec_93,attrspec_94,attrspec_95,attrspec_96,attrspec_97,attrspec_98,attrspec_99,attrspec_100,attrspec_101,attrspec_102,attrspec_103,attrspec_104,attrspec_105,attrspec_106,attrspec_107,attrspec_108,attrspec_109,attrspec_110,attrspec_111,attrspec_112,attrspec_113,attrspec_114,attrspec_115,attrspec_116,attrspec_117,attrspec_118,attrspec_119,attrspec_120, +attrspec_121,attrspec_122,attrspec_123,attrspec_124,attrspec_125,attrspec_126,attrspec_127,attrspec_128,attrspec_129,attrspec_130,attrspec_131,attrspec_132,attrspec_133,attrspec_134,attrspec_135,attrspec_136,attrspec_137,attrspec_138,attrspec_139,attrspec_140,attrspec_141,attrspec_142,attrspec_143,attrspec_144,attrspec_145,attrspec_146,attrspec_147,attrspec_148,attrspec_149,attrspec_150,attrspec_151,attrspec_152,attrspec_153,attrspec_154,attrspec_155,attrspec_156,attrspec_157,attrspec_158,attrspec_159, +attrspec_160,attrspec_161,attrspec_162,attrspec_163,attrspec_164,attrspec_165,attrspec_166,attrspec_167,attrspec_168,attrspec_169,attrspec_170,attrspec_171,attrspec_172,attrspec_173,attrspec_174,attrspec_175,attrspec_176,attrspec_177,attrspec_178,attrspec_179,attrspec_180,attrspec_181,attrspec_182,attrspec_183,attrspec_184,attrspec_185,attrspec_186,attrspec_187,attrspec_188,attrspec_189,attrspec_190,attrspec_191,attrspec_192,attrspec_193,attrspec_194,attrspec_195,attrspec_196,attrspec_197,attrspec_198, +attrspec_199,attrspec_200,attrspec_201,attrspec_202,attrspec_203,attrspec_204,attrspec_205,attrspec_206,attrspec_207,attrspec_208,attrspec_209,attrspec_210,attrspec_211,attrspec_212,attrspec_213,attrspec_214,attrspec_215,attrspec_216,attrspec_217,attrspec_218,attrspec_219,attrspec_220,attrspec_221,attrspec_222,attrspec_223,attrspec_224,attrspec_225,attrspec_226,attrspec_227,attrspec_228,attrspec_229,attrspec_230,attrspec_231,attrspec_232,attrspec_233,attrspec_234,attrspec_235,attrspec_236,attrspec_237, +attrspec_238,attrspec_239,attrspec_240,attrspec_241,attrspec_242,attrspec_243,attrspec_244,attrspec_245,attrspec_246,attrspec_247,attrspec_248,attrspec_249,attrspec_250,attrspec_251,attrspec_252,attrspec_253,attrspec_254,attrspec_255,attrspec_256,attrspec_257,attrspec_258,attrspec_259,attrspec_260,attrspec_261,attrspec_262,attrspec_263,attrspec_264,attrspec_265,attrspec_266,attrspec_267,attrspec_268,attrspec_269,attrspec_270,attrspec_271,attrspec_272,attrspec_273,attrspec_274,attrspec_275,attrspec_276, +attrspec_277,attrspec_278,attrspec_279,attrspec_280,attrspec_281,attrspec_282,attrspec_283,attrspec_284,attrspec_285,attrspec_286,attrspec_287,attrspec_288,attrspec_289,attrspec_290,attrspec_291,attrspec_292,attrspec_293,attrspec_294,attrspec_295,attrspec_296,attrspec_297,attrspec_298,attrspec_299,attrspec_300,attrspec_301,attrspec_302,attrspec_303,attrspec_304,attrspec_305,attrspec_306,attrspec_307,attrspec_308,attrspec_309,attrspec_310,attrspec_311,attrspec_312,attrspec_313,attrspec_314,attrspec_315, +attrspec_316,attrspec_317,attrspec_318,attrspec_319,attrspec_320,attrspec_321,attrspec_322,attrspec_323,attrspec_324,attrspec_325,attrspec_326,attrspec_327,attrspec_328];validatorrules_0.directAttrLists=[[287,-328,-7,-23,-6,-329,-246,-43],[288],[289,290,291,-168,-330],[289,290,292,-168,293],[-331,-332,-333],[-334,-335,-336,-337],[-33,-338,-34,-63,-64],[-339,-340,-341,-342,-343,-328,-344,-345,-346,-347,-348,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-360,-361,-362,-227,-228,-229,-363,-364, +-365,-366,-367,-368,-369,-370,-371,-372,-373,-374,-375,-376,-125,-126,-377,-378,-379,-380,-381,-382,-383,-384,-99,-385,-386,-387,-388,-389,-390,-391],[-392,-393,-394,-124,-395,-396,-397],[-66,-67,294,-68,-69,-70,-71],[295],[-149,-398,-151,-159,-399,-160,-33,-400,-401,-195,-172,-198,-173,-161,-402,-174,-175,-162,-177,-163,-180,-403,-404,-155,-34,-405,-406,-182,-407,-156,-408,-409,-410,-184,-411,-185,-165,-412,-186,-187,-166,-189,-167,-192,-413,-45,-157,-414],[296],[297],[298],[299],[-6,300],[],[102, +-13,104],[],[-519,-520,-521,-37,-522,152,317,77],[318,-523,319,320,-61,-524,-253,-195,-198,-525,321,322,323,324,-526],[-527,-528],[-529],[325],[-530,156],[-519,-31,-520,-521,-202,112,326,-522,-7,327,152,317,-174,328,77,-531,-203,-532,-533,-204,-534,-535,-536,-537,-538,-44,-539]];validatorrules_0.amp_validator_ValidatorRules$globalAttrs=[-417,-10,-418,-419,-420,-421,-9,-422,-423,-424,-11,301,-425,-426,-427,-428,-398,302,-30,-429,303,304,-430,-404,-431,-432,-433,-434,-435,-436,-437,-438,-439,-440,-441, +-442,-443,-444,-445,-446,-447,-448,-449,-450,-451,-452,-453,-454,-455,-456,-457,-458,-459,-460,-461,-462,-463,-464,-465,-466,-467,-468,305,-469,306,307,-374,-470,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,308,309,310,311,312,313,314,315,316,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500,-501,-502,-503,-504,-505,-506,-507,-508,-509,-510,-511,-512,-513,-514,-515,-516,-517,-518,-1];validatorrules_0.amp_validator_ValidatorRules$ampLayoutAttrs= +[-33,-415,-416,-329,-34,-408,-414];validatorrules_0.internedStrings=["[text]","href","amp-app-banner data source","as","async","media","crossorigin","integrity","content","itemprop","property","scheme","nonce","(\x3c!--|(^|\\W)i-amphtml-|!important)","head > style[amp-boilerplate]","body ?{opacity: ?0}","noscript > style[amp-boilerplate]","body ?{opacity: ?1}","\\s*body{-webkit-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-moz-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;-ms-animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both;animation:-amp-start\\s+8s\\s+steps\\(1,end\\)\\s+0s\\s+1\\s+normal\\s+both}@-webkit-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes\\s+-amp-start{from{visibility:hidden}to{visibility:visible}}\\s*", +"\\s*body{visibility:hidden}\\s*","\\s*body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}\\s*","align","hreflang","referrerpolicy","download","border","name","[href]","datetime","dir","alt","ismap","height","width","sandbox","autoplay","controls","loop","playsinline","poster","preload","muted","type","[src]","[type]","[label]","[srclang]","externalresourcesrequired","transform","arabic-form","d","glyph-name","horiz-adv-x","orientation","unicode","vert-origin-x","vert-origin-y", "vert-adv-y","dx","dy","format","glyphref","x","y","preserveaspectratio","xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type","markerunits","markerwidth","markerheight","orient","refx","refy","viewbox","pathlength","sketch:type","solid-color","solid-opacity","contentscripttype","contentstyletype","zoomandpan","viewtarget","cx","cy","r","rx","ry","x1","x2","y1","y2","points","lengthadjust","rotate","text-anchor","textlength","method","spacing","startoffset","clippathunits", "filterres","filterunits","primitiveunits","g1","g2","k","u1","u2","gradientunits","gradienttransform","spreadmethod","maskcontentunits","maskunits","patternunits","patterncontentunits","patterntransform","fr","fx","fy","offset","stop-color","stop-opacity","in","values","in2","k1","k2","k3","k4","operator","edgemode","stddeviation","sortable","bgcolor","cellpadding","cellspacing","span","valign","colspan","headers","rowspan","abbr","scope","sorted","accept","accept-charset","autocomplete","enctype", -"novalidate","for","accesskey","autofocus","checked","disabled","inputmode","list","max","maxlength","min","minlength","multiple","pattern","placeholder","readonly","required","selectiondirection","size","spellcheck","step","tabindex","value","[accept]","[accesskey]","[autocomplete]","[checked]","[disabled]","[height]","[inputmode]","[max]","[maxlength]","[min]","[minlength]","[multiple]","[pattern]","[placeholder]","[readonly]","[required]","[selectiondirection]","[size]","[spellcheck]","[step]", -"[value]","[width]","amp-app-banner button[open-button]","[autofocus]","label","selected","[selected]","cols","rows","selectionend","selectionstart","wrap","[cols]","[rows]","[selectionend]","[selectionstart]","[wrap]","form","high","low","optimum","(.)","(\x3c!--)","attribution","[alt]","[attribution]","[srcset]","allow-ssr-img","amp-ad-exit configuration JSON","json","rtc-config","template","amp-animation extension .json script","overridable","arguments","[data-account]","[data-embed]","[data-player]", -"[data-player-id]","[data-playlist-id]","[data-video-id]","[slide]","max-font-size","min-font-size","font-style","font-variant","font-weight","on-error-add-class","on-error-remove-class","on-load-add-class","on-load-remove-class","timeline-event-prefix","allow","from","scrollable","credentials","items","max-items","single-item","[state]","data-update-time","data-tombstone","inline","target","amp-story-page","auto-advance-after","grid-area","animate-in-delay","animate-in-duration","animate-in-after", -"locale","[data-videoid]","(_blank|_self|_top)","(^|\\s)(canonical|components|import|manifest|serviceworker|stylesheet|subresource|)(\\s|$)","__amp_source_origin","https://cdn\\.materialdesignicons\\.com/([0-9]+\\.?)+/css/materialdesignicons\\.min\\.css|https://cloud\\.typography\\.com/[0-9]*/[0-9]*/css/fonts\\.css|https://fast\\.fonts\\.net/.*|https://fonts\\.googleapis\\.com/css\\?.*|https://fonts\\.googleapis\\.com/icon\\?.*|https://fonts\\.googleapis\\.com/earlyaccess/.*\\.css|https://maxcdn\\.bootstrapcdn\\.com/font-awesome/([0-9]+\\.?)+/css/font-awesome\\.min\\.css(\\?.*)?|https://use\\.typekit\\.net/[\\w\\p{L}\\p{N}_]+\\.css", -".*app-id=.*","(^|\\s)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\\s|$)","[0-9]*","[1AaIi]","(^|\\s)(components|dns-prefetch|import|manifest|preconnect|prefetch|preload|prerender|serviceworker|stylesheet|subresource|)(\\s|$)","(__amp_source_origin|(.|\\s){{|}}(.|\\s)|^{{.*[^}][^}]$|^[^{][^{].*}}$|^}}|{{$|{{#|{{/|{{\\^)","_blank","0|1","auto|yes|no","['src', 'srcdoc']","(^|\\s)data:image\\/svg\\+xml","(1.0|1.1)","(show-first-on-submit|show-all-on-submit|as-you-go|interact-and-submit)", -"(_blank|_top)","(show-first-on-submit|show-all-on-submit|as-you-go)","(__amp_source_origin|{{|}})","(as-you-go|interact-and-submit|show-all-on-submit|show-first-on-submit)","(as-you-go|show-all-on-submit|show-first-on-submit)","(^|\\s)(button|file|image|password|)(\\s|$)","['data-apester-media-id', 'data-apester-channel-token']","[0-9a-zA-Z]+","(auto|metadata|none|)","['data-outstream', 'data-playlist', 'data-video']","[0-9]+","slides|carousel","true|false","([0-9a-f]{3}){1,2}","[a-z0-9]+","[0-9a-z]{8}", -"data-media-id or data-playlist-id","\\d+","\\d{5,}","[^=/?:]+","api|static","album|audio|live|playlist|playlist-marked|video","['src', 'data-item']","(false|true)","^([0]*?\\.\\d*$|1$|0$)|([0]*?\\.\\d*|1|0)\\s{1}([0]*?\\.\\d*$|1$|0$)","^(\\d+$|\\d+px$|\\d+vh$)|((\\d+|\\d+px|\\d+vh)\\s{1}(\\d+$|\\d+px$|\\d+vh$))","[0-9a-z-]+","(comment|post)","focus|none|select","(left|right)","['data-trackid', 'data-playlistid']","[A-Za-z0-9_-]+","playlist|video","(fill|horizontal|vertical|thirds)","(start|end|center|stretch|space-around|space-between|space-evenly)", -"(start|end|center|stretch)","(drop|fade-in|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|pulse|rotate-in-left|rotate-in-right|twirl-in|whoosh-in-left|whoosh-in-right)","\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?(Z|[+-][0-1][0-9]:[0-5][0-9])","amp-web-push","(blocked|subscribed|unsubscribed)","(include|omit)","['data-live-channelid', 'data-videoid']","(captions|descriptions|chapters|metadata)","!important","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", +"novalidate","for","value","[disabled]","[value]","amp-app-banner button[open-button]","autofocus","disabled","multiple","required","size","[autofocus]","[multiple]","[required]","[size]","label","selected","[selected]","cols","maxlength","minlength","placeholder","readonly","rows","selectiondirection","selectionend","selectionstart","spellcheck","wrap","[autocomplete]","[cols]","[maxlength]","[minlength]","[placeholder]","[readonly]","[rows]","[selectiondirection]","[selectionend]","[selectionstart]", +"[spellcheck]","[wrap]","form","max","high","low","min","optimum","(.)","(\x3c!--)","attribution","[alt]","[attribution]","[srcset]","allow-ssr-img","amp-access extension .json script","amp-subscriptions extension .json script","amp-ad-exit configuration JSON","json","rtc-config","template","amp-animation extension .json script","data-name","overridable","arguments","[data-account]","[data-embed]","[data-player]","[data-player-id]","[data-playlist-id]","[data-video-id]","[slide]","amp-consent extension .json script", +"max-font-size","min-font-size","font-style","font-variant","font-weight","on-error-add-class","on-error-remove-class","on-load-add-class","on-load-remove-class","timeline-event-prefix","allow","from","scrollable","credentials","items","max-items","single-item","[state]","data-update-time","data-tombstone","inline","target","amp-story-page","auto-advance-after","grid-area","animate-in-delay","animate-in-duration","animate-in-after","locale","[data-videoid]","(_blank|_self|_top)","(^|\\s)(canonical|components|import|manifest|preload|serviceworker|stylesheet|subresource|)(\\s|$)", +"__amp_source_origin","https://cdn\\.materialdesignicons\\.com/([0-9]+\\.?)+/css/materialdesignicons\\.min\\.css|https://cloud\\.typography\\.com/[0-9]*/[0-9]*/css/fonts\\.css|https://fast\\.fonts\\.net/.*|https://fonts\\.googleapis\\.com/css\\?.*|https://fonts\\.googleapis\\.com/icon\\?.*|https://fonts\\.googleapis\\.com/earlyaccess/.*\\.css|https://maxcdn\\.bootstrapcdn\\.com/font-awesome/([0-9]+\\.?)+/css/font-awesome\\.min\\.css(\\?.*)?|https://use\\.fontawesome\\.com/releases/v([0-9]+\\.?)+/css/(all|brands|solids|fontawesome)\\.css|https://use\\.typekit\\.net/[\\w\\p{L}\\p{N}_]+\\.css", +".*app-id=.*","(^|\\s)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\\s|$)","(off|on)","[0-9]*","[1AaIi]","(^|\\s)(components|dns-prefetch|import|manifest|preconnect|prefetch|preload|prerender|serviceworker|stylesheet|subresource|)(\\s|$)","(__amp_source_origin|(.|\\s){{|}}(.|\\s)|^{{.*[^}][^}]$|^[^{][^{].*}}$|^}}|{{$|{{#|{{/|{{\\^)","_blank","0|1","auto|yes|no","['src', 'srcdoc']","(^|\\s)data:image\\/svg\\+xml","(1.0|1.1)","(as-you-go|interact-and-submit|show-all-on-submit|show-first-on-submit)", +"(_blank|_top)","(__amp_source_origin|{{|}})","(^|\\s)(button|file|image|password|)(\\s|$)","['data-apester-media-id', 'data-apester-channel-token']","[0-9a-zA-Z]+","(auto|metadata|none|)","[0-9a-f]{24}","(false|number|true)","['data-outstream', 'data-playlist', 'data-video']","[0-9]+","slides|carousel","^[a-z][a-z\\d_-]*","true|false","([0-9a-f]{3}){1,2}","[a-z0-9]+","[0-9a-z]{8}","data-media-id or data-playlist-id","\\d+","\\d{5,}","ascending","[^=/?:]+","api|static","album|audio|live|playlist|playlist-marked|video", +"['src', 'data-item']","(false|true)","^([0]*?\\.\\d*$|1$|0$)|([0]*?\\.\\d*|1|0)\\s{1}([0]*?\\.\\d*$|1$|0$)","^(\\d+$|\\d+px$|\\d+vh$)|((\\d+|\\d+px|\\d+vh)\\s{1}(\\d+$|\\d+px$|\\d+vh$))","[0-9a-z-]+","(comment|post)","focus|none|select","(left|right)","['data-trackid', 'data-playlistid']","[A-Za-z0-9_-]+","playlist|video","(fill|horizontal|vertical|thirds)","(start|end|center|stretch|space-around|space-between|space-evenly)","(start|end|center|stretch)","(drop|fade-in|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|pan-down|pan-left|pan-right|pan-up|pulse|rotate-in-left|rotate-in-right|twirl-in|whoosh-in-left|whoosh-in-right|zoom-in|zoom-out)", +"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?(Z|[+-][0-1][0-9]:[0-5][0-9])","amp-web-push","(blocked|subscribed|unsubscribed)","(include|omit)","['data-live-channelid', 'data-videoid']","(captions|descriptions|chapters|metadata)","!important","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", "(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","(^|\\W)i-amphtml-","(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)", -"tap:.*","(badInput|customError|patternMismatch|rangeOverflow|rangeUnderflow|stepMismatch|tooLong|typeMismatch|valueMissing)","(none|metadata|auto|)","color","srclang","requiredextensions","requiredfeatures","systemlanguage","xml:lang","xml:space","xmlns","xmlns:xlink","result","alignment-baseline","baseline-shift","clip","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cursor","direction","display","dominant-baseline","enable-background", -"fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","glyph-orientation-horizontal","glyph-orientation-vertical","image-rendering","kerning","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","pointer-events","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-decoration", -"text-rendering","unicode-bidi","vector-effect","visibility","word-spacing","writing-mode","amplitude","exponent","intercept","slope","table","tablevalues","heights","layout","itemid","itemref","itemscope","itemtype","about","datatype","inlist","prefix","resource","rev","typeof","vocab","draggable","lang","title","translate","aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-controls","aria-current","aria-describedby","aria-disabled","aria-dropeffect","aria-expanded", -"aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","role","lightbox","amp-access","amp-access-behavior","amp-access-hide","amp-access-id","amp-access-loader","amp-access-loading", -"amp-access-off","amp-access-on","amp-access-show","amp-access-style","amp-access-template","i-amp-access-id","[aria-activedescendant]","[aria-atomic]","[aria-autocomplete]","[aria-busy]","[aria-checked]","[aria-controls]","[aria-describedby]","[aria-disabled]","[aria-dropeffect]","[aria-expanded]","[aria-flowto]","[aria-grabbed]","[aria-haspopup]","[aria-hidden]","[aria-invalid]","[aria-label]","[aria-labelledby]","[aria-level]","[aria-live]","[aria-multiline]","[aria-multiselectable]","[aria-orientation]", -"[aria-owns]","[aria-posinset]","[aria-pressed]","[aria-readonly]","[aria-relevant]","[aria-required]","[aria-selected]","[aria-setsize]","[aria-sort]","[aria-valuemax]","[aria-valuemin]","[aria-valuenow]","[aria-valuetext]","[class]","[hidden]","[text]","album","artist","artwork","controlslist","[album]","[artist]","[artwork]","[controls]","[controlslist]","[loop]","[poster]","[preload]","[title]"];return validatorrules_0};function sortAndUniquify(arrayValue){if(!(2>arrayValue.length)){goog$array$sort(arrayValue);for(var uniqIdx=0,i=1;iarrayValue.length)){goog$array$sort(arrayValue);for(var uniqIdx=0,i=1;i$jscomp$key$attrId))){name=JSCompiler_StaticMethods_getByAttrSpecId(parsedAttrSpecs,$jscomp$key$attrId).ParsedAttrSpec$spec_;name.mandatory&&JSCompiler_StaticMethods_mergeAttrs$self.mandatoryAttrIds_.push($jscomp$key$attrId);null!==name.mandatoryOneof&&JSCompiler_StaticMethods_mergeAttrs$self.mandatoryOneofs_.push(name.mandatoryOneof);for(var $jscomp$iter$13=$jscomp$makeIterator(name.alternativeNames),$jscomp$key$altName=$jscomp$iter$13.next();!$jscomp$key$altName.done;$jscomp$key$altName=$jscomp$iter$13.next())JSCompiler_StaticMethods_mergeAttrs$self.attrsByName_[$jscomp$key$altName.value]= $jscomp$key$attrId;name.implicit&&JSCompiler_StaticMethods_mergeAttrs$self.implicitAttrspecs_.push($jscomp$key$attrId);name.valueUrl&&(JSCompiler_StaticMethods_mergeAttrs$self.containsUrl_=!0)}}}ParsedTagSpec.prototype.id=function(){return this.ParsedTagSpec$id_};ParsedTagSpec.prototype.ParsedTagSpec_prototype$getSpec=function(){return this.ParsedTagSpec$spec_}; ParsedTagSpec.prototype.cdataMatcher=function(lineCol){return null!==this.ParsedTagSpec$spec_.cdata?new CdataMatcher(this.ParsedTagSpec$spec_,lineCol):null};ParsedTagSpec.prototype.childTagMatcher=function(lineCol){return null!==this.ParsedTagSpec$spec_.childTags?new ChildTagMatcher(this.ParsedTagSpec$spec_,lineCol):null}; -ParsedTagSpec.prototype.referencePointMatcher=function(rules,lineCol){return 0===this.referencePoints_.parentTagSpec_.referencePoints.length?null:new ReferencePointMatcher(rules,this.referencePoints_,lineCol)};ParsedTagSpec.prototype.requires=function(){return this.ParsedTagSpec$spec_.requires}; +ParsedTagSpec.prototype.referencePointMatcher=function(rules,lineCol){return 0===this.referencePoints_.parentTagSpec_.referencePoints.length?null:new ReferencePointMatcher(rules,this.referencePoints_,lineCol)};ParsedTagSpec.prototype.requires=function(){return this.ParsedTagSpec$spec_.requires};ParsedTagSpec.prototype.excludes=function(){return this.ParsedTagSpec$spec_.excludes}; function JSCompiler_StaticMethods_mergeFrom(JSCompiler_StaticMethods_mergeFrom$self,other){goog$asserts$assert(null!==JSCompiler_StaticMethods_mergeFrom$self.status);goog$asserts$assert(null!==other.status);"FAIL"===other.status&&(JSCompiler_StaticMethods_mergeFrom$self.status="FAIL");Array.prototype.push.apply(JSCompiler_StaticMethods_mergeFrom$self.errors,other.errors)} function JSCompiler_StaticMethods_copyFrom(JSCompiler_StaticMethods_copyFrom$self,other){goog$asserts$assert(null!==JSCompiler_StaticMethods_copyFrom$self.status);goog$asserts$assert(null!==other.status);JSCompiler_StaticMethods_copyFrom$self.status=other.status;var newErrors=[];Array.prototype.push.apply(newErrors,other.errors);JSCompiler_StaticMethods_copyFrom$self.errors=newErrors} function ChildTagMatcher(parentSpec,lineCol){this.parentSpec_=parentSpec;this.ChildTagMatcher$lineCol_=lineCol;goog$asserts$assert(null!==this.parentSpec_.childTags)} @@ -667,8 +703,8 @@ parsedRules.next())if(result=result.value,parsedTagSpec.ParsedTagSpec$spec_.desc function JSCompiler_StaticMethods_parentStackEntry_(JSCompiler_StaticMethods_parentStackEntry_$self){goog$asserts$assert(1<=JSCompiler_StaticMethods_parentStackEntry_$self.TagStack$stack_.length,"Parent of empty $ROOT tag requested.");return JSCompiler_StaticMethods_back_(JSCompiler_StaticMethods_parentStackEntry_$self)} function JSCompiler_StaticMethods_hasAncestor(JSCompiler_StaticMethods_hasAncestor$self,ancestor){for(var i=1;iattrId)attrspecsValidated[attrId]=0;else{var parsedAttrSpec=JSCompiler_StaticMethods_getByAttrSpecId(context$jscomp$4.Context$rules_.ParsedValidatorRules$parsedAttrSpecs_,attrId), +"TEMPLATE"),mandatoryAttrsSeen=[],mandatoryOneofsSeen=[],triggersToCheck=[],attrspecsValidated=[],$jscomp$inline_434=$jscomp$makeIterator(parsedTagSpec$jscomp$0.implicitAttrspecs_),$jscomp$inline_435=$jscomp$inline_434.next();!$jscomp$inline_435.done;$jscomp$inline_435=$jscomp$inline_434.next())attrspecsValidated[$jscomp$inline_435.value]=0;for(var attrsByName=parsedTagSpec$jscomp$0.attrsByName_,$jscomp$inline_437=$jscomp$makeIterator(encounteredTag.attrs()),$jscomp$key$attr=$jscomp$inline_437.next();!$jscomp$key$attr.done;$jscomp$key$attr= +$jscomp$inline_437.next()){var attr$jscomp$0=$jscomp$key$attr.value;if(attr$jscomp$0.name in attrsByName){if(hasTemplateAncestor&&(validateAttrValueBelowTemplateTag(parsedTagSpec$jscomp$0,context$jscomp$4,attr$jscomp$0,resultForAttempt),"FAIL"===resultForAttempt.status))continue;var attrId=attrsByName[attr$jscomp$0.name];if(0>attrId)attrspecsValidated[attrId]=0;else{var parsedAttrSpec=JSCompiler_StaticMethods_getByAttrSpecId(context$jscomp$4.Context$rules_.ParsedValidatorRules$parsedAttrSpecs_,attrId), attrSpec=parsedAttrSpec.ParsedAttrSpec$spec_;null!==attrSpec.deprecation&&JSCompiler_StaticMethods_addWarning("DEPRECATED_ATTR",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$4),[attr$jscomp$0.name,getTagSpecName(spec$jscomp$1),attrSpec.deprecation],attrSpec.deprecationUrl,resultForAttempt);if(0keyValue.length|| -(properties[keyValue[0].trim().toLowerCase()]=keyValue[1])}for(var names$jscomp$0=Object.keys(properties).sort(),$jscomp$inline_947=$jscomp$makeIterator(names$jscomp$0),$jscomp$inline_948=$jscomp$inline_947.next();!$jscomp$inline_948.done;$jscomp$inline_948=$jscomp$inline_947.next()){var name=$jscomp$inline_948.value,value=properties[name],valuePropertyByName=parsedValueProperties.valuePropertyByName_;if(name in valuePropertyByName){var propertySpec=valuePropertyByName[name];null!==propertySpec.value? +valueProperties=parsedAttrSpec.valueProperties_;if(null!==valueProperties){for(var parsedValueProperties=valueProperties,context$jscomp$2=context$jscomp$0,attr$jscomp$3=attr$jscomp$1,result$jscomp$1=result,segments=attr$jscomp$3.value.split(/[,;]/),properties=Object.create(null),$jscomp$inline_947=$jscomp$makeIterator(segments),$jscomp$inline_948=$jscomp$inline_947.next();!$jscomp$inline_948.done;$jscomp$inline_948=$jscomp$inline_947.next()){var keyValue=$jscomp$inline_948.value.split("=");2>keyValue.length|| +(properties[keyValue[0].trim().toLowerCase()]=keyValue[1])}for(var names$jscomp$0=Object.keys(properties).sort(),$jscomp$inline_951=$jscomp$makeIterator(names$jscomp$0),$jscomp$inline_952=$jscomp$inline_951.next();!$jscomp$inline_952.done;$jscomp$inline_952=$jscomp$inline_951.next()){var name=$jscomp$inline_952.value,value=properties[name],valuePropertyByName=parsedValueProperties.valuePropertyByName_;if(name in valuePropertyByName){var propertySpec=valuePropertyByName[name];null!==propertySpec.value? propertySpec.value!==value.toLowerCase()&&JSCompiler_StaticMethods_addError("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$2),[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1),value],getTagSpecUrl(spec$jscomp$1),result$jscomp$1):null!==propertySpec.valueDouble&&parseFloat(value)!==propertySpec.valueDouble&&JSCompiler_StaticMethods_addError("INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$2), [name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1),value],getTagSpecUrl(spec$jscomp$1),result$jscomp$1)}else JSCompiler_StaticMethods_addError("DISALLOWED_PROPERTY_IN_ATTR_VALUE",JSCompiler_StaticMethods_Context_prototype$getLineCol(context$jscomp$2),[name,attr$jscomp$3.name,getTagSpecName(spec$jscomp$1)],getTagSpecUrl(spec$jscomp$1),result$jscomp$1)}for(var left=parsedValueProperties.mandatoryValuePropertyNames_,right=names$jscomp$0,l=0,r=0,diff=[];l=right.length?(diff.push(left[l]), -l++):right[r]>left[l]?(diff.push(left[l]),l++):(right[r]left[l]?(diff.push(left[l]),l++):(right[r]JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultB.errors)?!0:JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self, resultB.errors)>JSCompiler_StaticMethods_maxSpecificity(JSCompiler_StaticMethods_betterValidationResultThan$self,resultA.errors)?!1:resultA.errors.lengthcdataSpec.maxBytes){JSCompiler_StaticMethods_addError("STYLESHEET_TOO_LONG", JSCompiler_StaticMethods_Context_prototype$getLineCol(context),[getTagSpecName(matcher.tagSpec_),JSCompiler_inline_result.toString(),cdataSpec.maxBytes.toString()],cdataSpec.maxBytesSpecUrl,validationResult);break a}}if(null!==matcher.tagSpec_.cdata.cdataRegex){if(!JSCompiler_StaticMethods_getFullMatchRegex(context.Context$rules_,matcher.tagSpec_.cdata.cdataRegex).test(text)){JSCompiler_StaticMethods_addError("MANDATORY_CDATA_MISSING_OR_INCORRECT",JSCompiler_StaticMethods_Context_prototype$getLineCol(context), -[getTagSpecName(matcher.tagSpec_)],getTagSpecUrl(matcher.tagSpec_),validationResult);break a}}else if(null!==cdataSpec.cssSpec){JSCompiler_inline_result=cdataSpec.cssSpec;for(var cssErrors=[],tokenList=(new Tokenizer(text,matcher.CdataMatcher$lineCol_.LineCol$line_,matcher.CdataMatcher$lineCol_.LineCol$col_,cssErrors)).tokens_,ampAtRuleParsingSpec=Object.create(null),$jscomp$inline_829=$jscomp$makeIterator(JSCompiler_inline_result.atRuleSpec),$jscomp$key$atRuleSpec=$jscomp$inline_829.next();!$jscomp$key$atRuleSpec.done;$jscomp$key$atRuleSpec= -$jscomp$inline_829.next())$jscomp$key$atRuleSpec=$jscomp$key$atRuleSpec.value,"PARSE_AS_ERROR"===$jscomp$key$atRuleSpec.type||"PARSE_AS_IGNORE"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_IGNORE":"PARSE_AS_RULES"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_RULES":"PARSE_AS_DECLARATIONS"===$jscomp$key$atRuleSpec.type?ampAtRuleParsingSpec[$jscomp$key$atRuleSpec.name]="PARSE_AS_DECLARATIONS":goog$asserts$fail("Unrecognized atRuleSpec type: "+ -$jscomp$key$atRuleSpec.type);$jscomp$key$atRuleSpec="PARSE_AS_IGNORE";0 Date: Mon, 25 Jun 2018 13:30:19 -0700 Subject: [PATCH 11/13] Fixing LICENSE --- readiness-tool/options.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/readiness-tool/options.html b/readiness-tool/options.html index 3ed6d62..b152703 100644 --- a/readiness-tool/options.html +++ b/readiness-tool/options.html @@ -827,12 +827,12 @@ submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communiampion sent +means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to -communiampion on electronic mailing lists, source code control systems, +communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but -excluding communiampion that is conspicuously marked or otherwise +excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity @@ -981,4 +981,4 @@ - \ No newline at end of file + From 324aaf2334efd3876c818badeec99ca6895e956f Mon Sep 17 00:00:00 2001 From: Phillip Kriegel Date: Wed, 8 Aug 2018 16:39:01 -0700 Subject: [PATCH 12/13] Added support for 'CMS' tag in vendors.json. Added support for BlueKai (needs more testing), Wordpress (Wappalyzer regex), and Adobe Experience Manager (Wappalyzer regex). Still uses legacy Wappalyzer JSON formatting. --- readiness-tool/content_script.js | 27 +++++++++++++++++++++++---- readiness-tool/icons/BlueKai.png | Bin 0 -> 1323 bytes readiness-tool/popup.html | 21 ++++++++++++++++++--- readiness-tool/popup.js | 31 ++++++++++++++++++++++++++----- readiness-tool/vendors.json | 22 +++++++++++++++++++++- 5 files changed, 88 insertions(+), 13 deletions(-) create mode 100644 readiness-tool/icons/BlueKai.png diff --git a/readiness-tool/content_script.js b/readiness-tool/content_script.js index 90295c6..2bb9219 100644 --- a/readiness-tool/content_script.js +++ b/readiness-tool/content_script.js @@ -29,15 +29,19 @@ function findDetectedVendors(html, tabId) { totalTags = detectedVendors.supported.ads.length + detectedVendors.supported.analytics.length + + detectedVendors.supported.cms.length + detectedVendors.notSupported.ads.length + - detectedVendors.notSupported.analytics.length; + detectedVendors.notSupported.analytics.length + + detectedVendors.notSupported.cms.length; notSupported = detectedVendors.notSupported.ads.length + - detectedVendors.notSupported.analytics.length; + detectedVendors.notSupported.analytics.length + + detectedVendors.notSupported.cms.length; supported = detectedVendors.supported.ads.length + - detectedVendors.supported.analytics.length; + detectedVendors.supported.analytics.length + + detectedVendors.supported.cms.length; if (notSupported == 0 && supported > 0) { color = [122, 186, 122, 255]; @@ -86,10 +90,12 @@ function filteredVendors(htmlString, listAllVendors) { supported: { ads: [], analytics: [], + cms: [], }, notSupported: { ads: [], analytics: [], + cms: [], }, }; // for all the vendor objects in the vendors.json file @@ -107,7 +113,8 @@ function filteredVendors(htmlString, listAllVendors) { return; } else if ( vendorConfig.category != 'Ads' && - vendorConfig.category != 'Analytics' + vendorConfig.category != 'Analytics' && + vendorConfig.category != 'CMS' ) { console.error( 'The vendor', @@ -165,6 +172,12 @@ function addToDict( filteredVendors.notSupported.ads.push(vendorName); } break; + case 'CMS': + if (isSupported(vendorName)) { + filteredVendors.supported.cms.push(vendorName); + } else { + filteredVendors.notSupported.cms.push(vendorName); + } } } } @@ -184,12 +197,18 @@ function isVendorNameUnique(obj, vendorName) { if (obj.supported.analytics.includes(vendorName)) { count++; } + if (obj.supported.cms.includes(vendorName)) { + count++; + } if (obj.notSupported.ads.includes(vendorName)) { count++; } if (obj.notSupported.analytics.includes(vendorName)) { count++; } + if (obj.notSupported.cms.includes(vendorName)) { + count++; + } return count < 1; } diff --git a/readiness-tool/icons/BlueKai.png b/readiness-tool/icons/BlueKai.png new file mode 100644 index 0000000000000000000000000000000000000000..25dacd85cf398f06d414ed3c81068b2a3aad72ce GIT binary patch literal 1323 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0XB zj({-ZRBb+Kpn}NEkcg59UmvUF{9L`nl>DSry^7odplSvNn+hu+GdHy)QK2F?C$HG5 z!d3~a!V1U+3F|8Y3;nDA{o-C@9zzrKDK}xwt{K19`Se z86_nJR{Hwo<>h+i#(Mch>H3D2mX`VkM*2oZx=P7{9O-#x!EwNQn0$BtH5O0c3d|4@L;p!@;Rg)$-uyz?djqeVj<`o z9G@fND)B!ptvv0U|N7&h8&tR2?z%cbC}>_zw~+Ur%a>d_)!JDCnP*%%vf_x_Tj#~E zo7+Ax1Woy|$V^Ijhn<9T(=z^T{B~QIIy*0RxHbxiZe2d*ao+c`^0YZSSxU{UC+8dO zzyJPs?R}o6|NRC>thHFHCI2LdX3S4{H*Nn4(;XKV&fZm9x7GHz-x(Q+S%wpeA}7Y~ zp5XBRQM)s@*r78=jyB7SWjlOs*?oPzY}J>d{0g<}vy1P)efjRzZKZsjwWohB?VNaT zb=whv7x6P)pUT@`iC3-(GP2`26U%*O;*F)#na~C{t~nMx&nFPvjQWo_*K5syAxz#SCvxtt(mzwKRmq7vh?<^ zch=#Xzic?UE%Ts!b?F|z=zEhRJ{#V<@Jb|#t3#;9b;p-2m_itl)_Jw^Z zfqUKrceJ!P-Z3=0D69H1aOSaD{!6QpIs}fm+HAEv|LaI}KhKMT=#ZaVkLB9@yOif|81A@y5k&7+m(=iB+Od+!Rc_v@{D8OGBI&Y)KY2%kC_-yc(XyJa2wleck>GTRb^q1ia49%2iG56=B*E!zbKw zYs;p_*Z$cv8Uxac_i}9b@T*|5ta456yXRArABx`>T{7u!KrUy(8HyEaH zrf^Jc>zg9`<4-Hwo{bJ(PmO-2)V$uV-CiCxdG^gEu9dS-Y)KBVkKFa?Im5$TsT>ZS z6G4hH`#--adYoc7r~X&bj=#H3Rv-T&dF`QSoM1!zwO3AsN{)*xuY9}E&0Mct9e68* z@%xm0HWAwcUziCweaOF){<++M%e9}kY+d&2NaxKu5&N$#nozg%|2^LCk5Ap%sM_@~ zdBHr*uuEH-8XSbUJ3Zac7JcV<_LlMVyUZ*3ZY;vueOb4*&bjh@Yr3sj;QvUiMXtVw zX79bAYntPcCV6CQThHo=9@4z0WZMO}U9`&H?^d_SzQ@!S)H%mq_L}*#X!!?`e^oZ+ z
+
@@ -300,8 +305,13 @@

-
+
+ +
+
+ + @@ -314,14 +324,19 @@

- +
- +
+ +
+ +
+
diff --git a/readiness-tool/popup.js b/readiness-tool/popup.js index 126c11a..96d340b 100644 --- a/readiness-tool/popup.js +++ b/readiness-tool/popup.js @@ -8,12 +8,18 @@ let supportedAds; /* @const {!Element} */ let supportedAnalytics; +/* @const {!Element} */ +let supportedCMS; + /* @const {!Element} */ let notSupportedAds; /* @const {!Element} */ let notSupportedAnalytics; +/* @const {!Element} */ +let notSupportedCMS; + /* @const {string} */ const loadingMessage = "Loading..."; @@ -30,19 +36,25 @@ chrome.storage.onChanged.addListener(function(changes, namespace) { function showLoading() { supportedAds = document.getElementById('ads-supported'); supportedAnalytics = document.getElementById('analytics-supported'); + supportedCMS = document.getElementById('cms-supported'); notSupportedAds = document.getElementById('ads-notSupported'); notSupportedAnalytics = document.getElementById('analytics-notSupported'); + notSupportedCMS = document.getElementById('cms-notSupported'); - supportedAds.textContent = supportedAnalytics.textContent = - notSupportedAds.textContent = notSupportedAnalytics.textContent = + + supportedAds.textContent = supportedAnalytics.textContent = + supportedCMS.textContent = notSupportedAds.textContent = + notSupportedAnalytics.textContent = notSupportedCMS.textContent = loadingMessage; } window.onload = function onWindowLoad() { supportedAds = document.getElementById('ads-supported'); supportedAnalytics = document.getElementById('analytics-supported'); + supportedCMS = document.getElementById('cms-supported'); notSupportedAds = document.getElementById('ads-notSupported'); notSupportedAnalytics = document.getElementById('analytics-notSupported'); + notSupportedCMS = document.getElementById('cms-notSupported'); }; /** @@ -103,8 +115,9 @@ function showSupportedVendorsInView(detectedVendors, listAllVendors) { return; } - supportedAds.textContent = supportedAnalytics.textContent = - notSupportedAds.textContent = notSupportedAnalytics.textContent = + supportedAds.textContent = supportedAnalytics.textContent = + supportedCMS.textContent = notSupportedAds.textContent = + notSupportedAnalytics.textContent = notSupportedCMS.textContent = blankMessage; supportedAds.appendChild( makeList(detectedVendors.supported.ads, false, listAllVendors) @@ -112,18 +125,26 @@ function showSupportedVendorsInView(detectedVendors, listAllVendors) { supportedAnalytics.appendChild( makeList(detectedVendors.supported.analytics, false, listAllVendors) ); + supportedCMS.appendChild( + makeList(detectedVendors.supported.cms, false, listAllVendors) + ); notSupportedAds.appendChild( makeList(detectedVendors.notSupported.ads, true, listAllVendors) ); notSupportedAnalytics.appendChild( makeList(detectedVendors.notSupported.analytics, true, listAllVendors) ); + notSupportedCMS.appendChild( + makeList(detectedVendors.notSupported.cms, true, listAllVendors) + ); totalTags = detectedVendors.supported.ads.length + detectedVendors.supported.analytics.length + + detectedVendors.supported.cms.length + detectedVendors.notSupported.ads.length + - detectedVendors.notSupported.analytics.length; + detectedVendors.notSupported.analytics.length + + detectedVendors.notSupported.cms.length; } /** diff --git a/readiness-tool/vendors.json b/readiness-tool/vendors.json index 1dc7e80..2b557bc 100644 --- a/readiness-tool/vendors.json +++ b/readiness-tool/vendors.json @@ -220,7 +220,7 @@ "regex": [ "googletagmanager\\.com/ns\\.html[^>]+>" ] + }, + "BlueKai": { + "category": "Ads", + "regex":[ + "__bkframe" + ] + }, + "Adobe Experience Manager": { + "category": "CMS", + "regex":[ + "
]+data-component-path=\"[^\"+]jcr:" + ] + }, + "Wordpress": { + "category": "CMS", + "regex":[ + "]+wp-(?:content|includes)", + "]+s\\d+\\.wp\\.com" + ] } } } From c1a8fb6496447041a76328e798303901ac53726a Mon Sep 17 00:00:00 2001 From: Jeffrey Jose Date: Fri, 10 Aug 2018 11:58:54 -0700 Subject: [PATCH 13/13] version bump --- readiness-tool/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readiness-tool/manifest.json b/readiness-tool/manifest.json index 63b2e54..e935b05 100644 --- a/readiness-tool/manifest.json +++ b/readiness-tool/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "AMP Readiness Tool", "description": "See at a glance the various third party vendors on the page and whether they have AMP support.", - "version": "2.11", + "version": "2.12", "options_page": "options.html", "icons": { "16": "amp-readiness.png",